Home | History | Annotate | Download | only in extensions
      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 "chrome/browser/extensions/chrome_extension_host_delegate.h"
      6 
      7 #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
      8 #include "chrome/browser/extensions/extension_service.h"
      9 #include "chrome/browser/extensions/extension_tab_util.h"
     10 #include "chrome/browser/media/media_capture_devices_dispatcher.h"
     11 #include "chrome/browser/ui/app_modal_dialogs/javascript_dialog_manager.h"
     12 #include "chrome/browser/ui/prefs/prefs_tab_helper.h"
     13 #include "extensions/browser/extension_host.h"
     14 #include "extensions/browser/extension_system.h"
     15 
     16 namespace extensions {
     17 
     18 ChromeExtensionHostDelegate::ChromeExtensionHostDelegate() {}
     19 
     20 ChromeExtensionHostDelegate::~ChromeExtensionHostDelegate() {}
     21 
     22 void ChromeExtensionHostDelegate::OnExtensionHostCreated(
     23     content::WebContents* web_contents) {
     24   ChromeExtensionWebContentsObserver::CreateForWebContents(web_contents);
     25   PrefsTabHelper::CreateForWebContents(web_contents);
     26 }
     27 
     28 void ChromeExtensionHostDelegate::OnRenderViewCreatedForBackgroundPage(
     29     ExtensionHost* host) {
     30   ExtensionService* service =
     31       ExtensionSystem::Get(host->browser_context())->extension_service();
     32   if (service)
     33     service->DidCreateRenderViewForBackgroundPage(host);
     34 }
     35 
     36 content::JavaScriptDialogManager*
     37 ChromeExtensionHostDelegate::GetJavaScriptDialogManager() {
     38   return GetJavaScriptDialogManagerInstance();
     39 }
     40 
     41 void ChromeExtensionHostDelegate::CreateTab(content::WebContents* web_contents,
     42                                             const std::string& extension_id,
     43                                             WindowOpenDisposition disposition,
     44                                             const gfx::Rect& initial_pos,
     45                                             bool user_gesture) {
     46   ExtensionTabUtil::CreateTab(
     47       web_contents, extension_id, disposition, initial_pos, user_gesture);
     48 }
     49 
     50 void ChromeExtensionHostDelegate::ProcessMediaAccessRequest(
     51     content::WebContents* web_contents,
     52     const content::MediaStreamRequest& request,
     53     const content::MediaResponseCallback& callback,
     54     const Extension* extension) {
     55   MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest(
     56       web_contents, request, callback, extension);
     57 }
     58 
     59 bool ChromeExtensionHostDelegate::CheckMediaAccessPermission(
     60     content::WebContents* web_contents,
     61     const GURL& security_origin,
     62     content::MediaStreamType type,
     63     const Extension* extension) {
     64   return MediaCaptureDevicesDispatcher::GetInstance()
     65       ->CheckMediaAccessPermission(
     66           web_contents, security_origin, type, extension);
     67 }
     68 
     69 }  // namespace extensions
     70