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 12namespace extensions { 13 14SocketsManifestHandler::SocketsManifestHandler() {} 15 16SocketsManifestHandler::~SocketsManifestHandler() {} 17 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 31ManifestPermission* SocketsManifestHandler::CreatePermission() { 32 return new SocketsManifestPermission(); 33} 34 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 43const std::vector<std::string> SocketsManifestHandler::Keys() const { 44 return SingleKey(manifest_keys::kSockets); 45} 46 47} // namespace extensions 48