// Copyright 2014 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/browser/extensions/api/chrome_extensions_api_client.h" #include "base/files/file_path.h" #include "chrome/browser/extensions/api/chrome_device_permissions_prompt.h" #include "chrome/browser/extensions/api/declarative_content/chrome_content_rules_registry.h" #include "chrome/browser/extensions/api/storage/sync_value_store_cache.h" #include "chrome/browser/extensions/api/web_request/chrome_extension_web_request_event_router_delegate.h" #include "chrome/browser/guest_view/app_view/chrome_app_view_guest_delegate.h" #include "chrome/browser/guest_view/extension_options/chrome_extension_options_guest_delegate.h" #include "chrome/browser/guest_view/mime_handler_view/chrome_mime_handler_view_guest_delegate.h" #include "chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h" #include "chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" #include "extensions/browser/api/virtual_keyboard_private/virtual_keyboard_delegate.h" #include "extensions/browser/guest_view/web_view/web_view_guest.h" #include "extensions/browser/guest_view/web_view/web_view_permission_helper.h" #if defined(ENABLE_CONFIGURATION_POLICY) #include "chrome/browser/extensions/api/storage/managed_value_store_cache.h" #endif #if defined(OS_CHROMEOS) #include "chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.h" #endif namespace extensions { ChromeExtensionsAPIClient::ChromeExtensionsAPIClient() {} ChromeExtensionsAPIClient::~ChromeExtensionsAPIClient() {} void ChromeExtensionsAPIClient::AddAdditionalValueStoreCaches( content::BrowserContext* context, const scoped_refptr& factory, const scoped_refptr >& observers, std::map* caches) { // Add support for chrome.storage.sync. (*caches)[settings_namespace::SYNC] = new SyncValueStoreCache(factory, observers, context->GetPath()); #if defined(ENABLE_CONFIGURATION_POLICY) // Add support for chrome.storage.managed. (*caches)[settings_namespace::MANAGED] = new ManagedValueStoreCache(context, factory, observers); #endif } AppViewGuestDelegate* ChromeExtensionsAPIClient::CreateAppViewGuestDelegate() const { return new ChromeAppViewGuestDelegate(); } ExtensionOptionsGuestDelegate* ChromeExtensionsAPIClient::CreateExtensionOptionsGuestDelegate( ExtensionOptionsGuest* guest) const { return new ChromeExtensionOptionsGuestDelegate(guest); } scoped_ptr ChromeExtensionsAPIClient::CreateMimeHandlerViewGuestDelegate( MimeHandlerViewGuest* guest) const { return make_scoped_ptr(new ChromeMimeHandlerViewGuestDelegate(guest)); } WebViewGuestDelegate* ChromeExtensionsAPIClient::CreateWebViewGuestDelegate( WebViewGuest* web_view_guest) const { return new ChromeWebViewGuestDelegate(web_view_guest); } WebViewPermissionHelperDelegate* ChromeExtensionsAPIClient:: CreateWebViewPermissionHelperDelegate( WebViewPermissionHelper* web_view_permission_helper) const { return new ChromeWebViewPermissionHelperDelegate(web_view_permission_helper); } WebRequestEventRouterDelegate* ChromeExtensionsAPIClient::CreateWebRequestEventRouterDelegate() const { return new ChromeExtensionWebRequestEventRouterDelegate(); } scoped_refptr ChromeExtensionsAPIClient::CreateContentRulesRegistry( content::BrowserContext* browser_context, RulesCacheDelegate* cache_delegate) const { return scoped_refptr( new ChromeContentRulesRegistry(browser_context, cache_delegate)); } scoped_ptr ChromeExtensionsAPIClient::CreateDevicePermissionsPrompt( content::WebContents* web_contents) const { return make_scoped_ptr(new ChromeDevicePermissionsPrompt(web_contents)); } scoped_ptr ChromeExtensionsAPIClient::CreateVirtualKeyboardDelegate() const { #if defined(OS_CHROMEOS) return make_scoped_ptr(new ChromeVirtualKeyboardDelegate()); #else return nullptr; #endif } } // namespace extensions