Index: chrome/common/extensions/api/sockets/sockets_manifest_data.cc |
diff --git a/chrome/common/extensions/api/sockets/sockets_manifest_data.cc b/chrome/common/extensions/api/sockets/sockets_manifest_data.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b00c8e0f312a23f1da21046736b8630f92731d17 |
--- /dev/null |
+++ b/chrome/common/extensions/api/sockets/sockets_manifest_data.cc |
@@ -0,0 +1,51 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/common/extensions/api/sockets/sockets_manifest_data.h" |
+ |
+#include "chrome/common/extensions/api/sockets/sockets_manifest_permission.h" |
+#include "extensions/common/manifest_constants.h" |
+ |
+namespace extensions { |
+ |
+SocketsManifestData::SocketsManifestData( |
+ scoped_ptr<SocketsManifestPermission> permission) |
+ : permission_(permission.Pass()) { |
+ DCHECK(permission_); |
+} |
+ |
+SocketsManifestData::~SocketsManifestData() {} |
+ |
+// static |
+SocketsManifestData* SocketsManifestData::Get( |
+ const Extension* extension) { |
+ return static_cast<SocketsManifestData*>( |
+ extension->GetManifestData(manifest_keys::kSockets)); |
+} |
+ |
+// static |
+bool SocketsManifestData::CheckRequest( |
+ const Extension* extension, |
+ const content::SocketPermissionRequest& request) { |
+ const SocketsManifestData* data = SocketsManifestData::Get(extension); |
+ if (data) |
+ return data->permission()->CheckRequest(extension, request); |
+ |
+ return false; |
+} |
+ |
+// static |
+scoped_ptr<SocketsManifestData> SocketsManifestData::FromValue( |
+ const base::Value& value, |
+ string16* error) { |
+ scoped_ptr<SocketsManifestPermission> permission = |
+ SocketsManifestPermission::FromValue(value, error); |
+ if (!permission) |
+ return scoped_ptr<SocketsManifestData>(); |
+ |
+ return scoped_ptr<SocketsManifestData>( |
+ new SocketsManifestData(permission.Pass())).Pass(); |
+} |
+ |
+} // namespace extensions |