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.
5 #include "chrome/browser/extensions/api/chrome_extensions_api_client.h"
7 #include "base/files/file_path.h"
8 #include "chrome/browser/extensions/api/storage/sync_value_store_cache.h"
9 #include "chrome/browser/guest_view/app_view/app_view_guest.h"
10 #include "chrome/browser/guest_view/extension_options/extension_options_guest.h"
11 #include "chrome/browser/guest_view/web_view/web_view_guest.h"
12 #include "content/public/browser/browser_context.h"
13 #include "content/public/browser/browser_thread.h"
14 #include "device/hid/hid_service.h"
16 #if defined(ENABLE_CONFIGURATION_POLICY)
17 #include "chrome/browser/extensions/api/storage/managed_value_store_cache.h"
20 namespace extensions {
22 ChromeExtensionsAPIClient::ChromeExtensionsAPIClient() {}
24 ChromeExtensionsAPIClient::~ChromeExtensionsAPIClient() {}
26 void ChromeExtensionsAPIClient::AddAdditionalValueStoreCaches(
27 content::BrowserContext* context,
28 const scoped_refptr<SettingsStorageFactory>& factory,
29 const scoped_refptr<ObserverListThreadSafe<SettingsObserver> >& observers,
30 std::map<settings_namespace::Namespace, ValueStoreCache*>* caches) {
31 // Add support for chrome.storage.sync.
32 (*caches)[settings_namespace::SYNC] =
33 new SyncValueStoreCache(factory, observers, context->GetPath());
35 #if defined(ENABLE_CONFIGURATION_POLICY)
36 // Add support for chrome.storage.managed.
37 (*caches)[settings_namespace::MANAGED] =
38 new ManagedValueStoreCache(context, factory, observers);
42 bool ChromeExtensionsAPIClient::AppViewInternalAttachFrame(
43 content::BrowserContext* browser_context,
45 int guest_instance_id,
46 const std::string& guest_extension_id) {
47 return AppViewGuest::CompletePendingRequest(browser_context,
53 bool ChromeExtensionsAPIClient::AppViewInternalDenyRequest(
54 content::BrowserContext* browser_context,
55 int guest_instance_id,
56 const std::string& guest_extension_id) {
57 return AppViewGuest::CompletePendingRequest(browser_context,
63 device::HidService* ChromeExtensionsAPIClient::GetHidService() {
65 hid_service_.reset(device::HidService::Create(
66 content::BrowserThread::GetMessageLoopProxyForThread(
67 content::BrowserThread::UI)));
69 return hid_service_.get();
72 void ChromeExtensionsAPIClient::RegisterGuestViewTypes() {
73 AppViewGuest::Register();
74 ExtensionOptionsGuest::Register();
75 WebViewGuest::Register();
78 } // namespace extensions