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.
5 #include "chrome/common/extensions/api/sockets/sockets_manifest_data.h"
7 #include "chrome/common/extensions/api/sockets/sockets_manifest_permission.h"
8 #include "extensions/common/manifest_constants.h"
10 namespace extensions {
12 SocketsManifestData::SocketsManifestData(
13 scoped_ptr<SocketsManifestPermission> permission)
14 : permission_(permission.Pass()) {
18 SocketsManifestData::~SocketsManifestData() {}
21 SocketsManifestData* SocketsManifestData::Get(
22 const Extension* extension) {
23 return static_cast<SocketsManifestData*>(
24 extension->GetManifestData(manifest_keys::kSockets));
28 bool SocketsManifestData::CheckRequest(
29 const Extension* extension,
30 const content::SocketPermissionRequest& request) {
31 const SocketsManifestData* data = SocketsManifestData::Get(extension);
33 return data->permission()->CheckRequest(extension, request);
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);
45 return scoped_ptr<SocketsManifestData>();
47 return scoped_ptr<SocketsManifestData>(
48 new SocketsManifestData(permission.Pass())).Pass();
51 } // namespace extensions