Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / api / sockets / sockets_manifest_data.cc
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/common/extensions/api/sockets/sockets_manifest_data.h"
6
7 #include "chrome/common/extensions/api/sockets/sockets_manifest_permission.h"
8 #include "extensions/common/manifest_constants.h"
9
10 namespace extensions {
11
12 SocketsManifestData::SocketsManifestData(
13     scoped_ptr<SocketsManifestPermission> permission)
14     : permission_(permission.Pass()) {
15   DCHECK(permission_);
16 }
17
18 SocketsManifestData::~SocketsManifestData() {}
19
20 // static
21 SocketsManifestData* SocketsManifestData::Get(
22     const Extension* extension) {
23   return static_cast<SocketsManifestData*>(
24       extension->GetManifestData(manifest_keys::kSockets));
25 }
26
27 // static
28 bool SocketsManifestData::CheckRequest(
29     const Extension* extension,
30     const content::SocketPermissionRequest& request) {
31   const SocketsManifestData* data = SocketsManifestData::Get(extension);
32   if (data)
33     return data->permission()->CheckRequest(extension, request);
34
35   return false;
36 }
37
38 // static
39 scoped_ptr<SocketsManifestData> SocketsManifestData::FromValue(
40     const base::Value& value,
41     base::string16* error) {
42   scoped_ptr<SocketsManifestPermission> permission =
43       SocketsManifestPermission::FromValue(value, error);
44   if (!permission)
45     return scoped_ptr<SocketsManifestData>();
46
47   return scoped_ptr<SocketsManifestData>(
48       new SocketsManifestData(permission.Pass())).Pass();
49 }
50
51 }  // namespace extensions