Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / chrome_extensions_api_client.cc
index ba5d82a..ee7974f 100644 (file)
@@ -5,13 +5,19 @@
 #include "chrome/browser/extensions/api/chrome_extensions_api_client.h"
 
 #include "base/files/file_path.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/guest_view/app_view/app_view_guest.h"
-#include "chrome/browser/guest_view/extension_options/extension_options_guest.h"
-#include "chrome/browser/guest_view/web_view/web_view_guest.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 "device/hid/hid_service.h"
+#include "extensions/browser/api/declarative/rules_registry_service.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"
@@ -39,40 +45,55 @@ void ChromeExtensionsAPIClient::AddAdditionalValueStoreCaches(
 #endif
 }
 
-bool ChromeExtensionsAPIClient::AppViewInternalAttachFrame(
-    content::BrowserContext* browser_context,
-    const GURL& url,
-    int guest_instance_id,
-    const std::string& guest_extension_id) {
-  return AppViewGuest::CompletePendingRequest(browser_context,
-                                              url,
-                                              guest_instance_id,
-                                              guest_extension_id);
+AppViewGuestDelegate* ChromeExtensionsAPIClient::CreateAppViewGuestDelegate()
+    const {
+  return new ChromeAppViewGuestDelegate();
+}
+
+ExtensionOptionsGuestDelegate*
+ChromeExtensionsAPIClient::CreateExtensionOptionsGuestDelegate(
+    ExtensionOptionsGuest* guest) const {
+  return new ChromeExtensionOptionsGuestDelegate(guest);
+}
+
+scoped_ptr<MimeHandlerViewGuestDelegate>
+ChromeExtensionsAPIClient::CreateMimeHandlerViewGuestDelegate(
+    MimeHandlerViewGuest* guest) const {
+  return scoped_ptr<ChromeMimeHandlerViewGuestDelegate>(
+             new ChromeMimeHandlerViewGuestDelegate(guest))
+      .PassAs<MimeHandlerViewGuestDelegate>();
 }
 
-bool ChromeExtensionsAPIClient::AppViewInternalDenyRequest(
+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);
+}
+
+scoped_refptr<RulesRegistry> ChromeExtensionsAPIClient::GetRulesRegistry(
     content::BrowserContext* browser_context,
-    int guest_instance_id,
-    const std::string& guest_extension_id) {
-  return AppViewGuest::CompletePendingRequest(browser_context,
-                                              GURL(),
-                                              guest_instance_id,
-                                              guest_extension_id);
+    const RulesRegistry::WebViewKey& webview_key,
+    const std::string& event_name) {
+  return RulesRegistryService::Get(browser_context)->
+      GetRulesRegistry(webview_key, event_name);
 }
 
-device::HidService* ChromeExtensionsAPIClient::GetHidService() {
-  if (!hid_service_) {
-    hid_service_.reset(device::HidService::Create(
-        content::BrowserThread::GetMessageLoopProxyForThread(
-            content::BrowserThread::UI)));
-  }
-  return hid_service_.get();
+WebRequestEventRouterDelegate*
+ChromeExtensionsAPIClient::CreateWebRequestEventRouterDelegate() const {
+  return new ChromeExtensionWebRequestEventRouterDelegate();
 }
 
-void ChromeExtensionsAPIClient::RegisterGuestViewTypes() {
-  AppViewGuest::Register();
-  ExtensionOptionsGuest::Register();
-  WebViewGuest::Register();
+scoped_refptr<ContentRulesRegistry>
+ChromeExtensionsAPIClient::CreateContentRulesRegistry(
+    content::BrowserContext* browser_context,
+    RulesCacheDelegate* cache_delegate) const {
+  return scoped_refptr<ContentRulesRegistry>(
+      new ChromeContentRulesRegistry(browser_context, cache_delegate));
 }
 
 }  // namespace extensions