1 // Copyright 2014 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 "extensions/common/api/sockets/sockets_manifest_handler.h" 6 7 #include "extensions/common/api/sockets/sockets_manifest_data.h" 8 #include "extensions/common/api/sockets/sockets_manifest_permission.h" 9 #include "extensions/common/extension.h" 10 #include "extensions/common/manifest_constants.h" 11 12 namespace extensions { 13 SocketsManifestHandler()14SocketsManifestHandler::SocketsManifestHandler() {} 15 ~SocketsManifestHandler()16SocketsManifestHandler::~SocketsManifestHandler() {} 17 Parse(Extension * extension,base::string16 * error)18bool SocketsManifestHandler::Parse(Extension* extension, 19 base::string16* error) { 20 const base::Value* sockets = NULL; 21 CHECK(extension->manifest()->Get(manifest_keys::kSockets, &sockets)); 22 scoped_ptr<SocketsManifestData> data = 23 SocketsManifestData::FromValue(*sockets, error); 24 if (!data) 25 return false; 26 27 extension->SetManifestData(manifest_keys::kSockets, data.release()); 28 return true; 29 } 30 CreatePermission()31ManifestPermission* SocketsManifestHandler::CreatePermission() { 32 return new SocketsManifestPermission(); 33 } 34 CreateInitialRequiredPermission(const Extension * extension)35ManifestPermission* SocketsManifestHandler::CreateInitialRequiredPermission( 36 const Extension* extension) { 37 SocketsManifestData* data = SocketsManifestData::Get(extension); 38 if (data) 39 return data->permission()->Clone(); 40 return NULL; 41 } 42 Keys() const43const std::vector<std::string> SocketsManifestHandler::Keys() const { 44 return SingleKey(manifest_keys::kSockets); 45 } 46 47 } // namespace extensions 48