chrome_extensions_api_client.cc revision 116680a4aac90f2aa7413d9095a592090648e557
1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// found in the LICENSE file. 4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "chrome/browser/extensions/api/chrome_extensions_api_client.h" 6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "base/files/file_path.h" 8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "chrome/browser/extensions/api/storage/sync_value_store_cache.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/guest_view/app_view/app_view_guest.h" 10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "content/public/browser/browser_context.h" 11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#if defined(ENABLE_CONFIGURATION_POLICY) 13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "chrome/browser/extensions/api/storage/managed_value_store_cache.h" 14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif 15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)namespace extensions { 17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)ChromeExtensionsAPIClient::ChromeExtensionsAPIClient() {} 19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)ChromeExtensionsAPIClient::~ChromeExtensionsAPIClient() {} 21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void ChromeExtensionsAPIClient::AddAdditionalValueStoreCaches( 23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) content::BrowserContext* context, 24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const scoped_refptr<SettingsStorageFactory>& factory, 25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const scoped_refptr<ObserverListThreadSafe<SettingsObserver> >& observers, 26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) std::map<settings_namespace::Namespace, ValueStoreCache*>* caches) { 27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Add support for chrome.storage.sync. 28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) (*caches)[settings_namespace::SYNC] = 29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) new SyncValueStoreCache(factory, observers, context->GetPath()); 30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#if defined(ENABLE_CONFIGURATION_POLICY) 32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Add support for chrome.storage.managed. 33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) (*caches)[settings_namespace::MANAGED] = 34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) new ManagedValueStoreCache(context, factory, observers); 35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif 36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool ChromeExtensionsAPIClient::AppViewInternalAttachFrame( 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch content::BrowserContext* browser_context, 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const GURL& url, 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch int guest_instance_id, 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& guest_extension_id) { 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return AppViewGuest::CompletePendingRequest(browser_context, 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch url, 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch guest_instance_id, 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch guest_extension_id); 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool ChromeExtensionsAPIClient::AppViewInternalDenyRequest( 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch content::BrowserContext* browser_context, 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch int guest_instance_id, 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& guest_extension_id) { 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return AppViewGuest::CompletePendingRequest(browser_context, 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch GURL(), 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch guest_instance_id, 56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch guest_extension_id); 57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 59a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} // namespace extensions 60