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 "athena/extensions/chrome/athena_chrome_app_delegate.h"
7 #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
8 #include "chrome/browser/favicon/favicon_tab_helper.h"
9 #include "chrome/browser/file_select_helper.h"
10 #include "chrome/browser/media/media_capture_devices_dispatcher.h"
11 #include "chrome/browser/platform_util.h"
12 #include "chrome/browser/ui/browser_dialogs.h"
13 #include "chrome/common/extensions/chrome_extension_messages.h"
14 #include "content/public/browser/render_view_host.h"
15 #include "content/public/browser/web_contents.h"
17 #if defined(ENABLE_PRINTING)
18 #if defined(ENABLE_PRINT_PREVIEW)
19 #include "chrome/browser/printing/print_preview_message_handler.h"
20 #include "chrome/browser/printing/print_view_manager.h"
22 #include "chrome/browser/printing/print_view_manager_basic.h"
23 #endif // defined(ENABLE_PRINT_PREVIEW)
24 #endif // defined(ENABLE_PRINTING)
28 AthenaChromeAppDelegate::AthenaChromeAppDelegate() {
31 AthenaChromeAppDelegate::~AthenaChromeAppDelegate() {
34 void AthenaChromeAppDelegate::InitWebContents(
35 content::WebContents
* web_contents
) {
36 FaviconTabHelper::CreateForWebContents(web_contents
);
38 #if defined(ENABLE_PRINTING)
39 #if defined(ENABLE_PRINT_PREVIEW)
40 printing::PrintViewManager::CreateForWebContents(web_contents
);
41 printing::PrintPreviewMessageHandler::CreateForWebContents(web_contents
);
43 printing::PrintViewManagerBasic::CreateForWebContents(web_contents
);
44 #endif // defined(ENABLE_PRINT_PREVIEW)
45 #endif // defined(ENABLE_PRINTING)
46 extensions::ChromeExtensionWebContentsObserver::CreateForWebContents(
50 content::ColorChooser
* AthenaChromeAppDelegate::ShowColorChooser(
51 content::WebContents
* web_contents
,
52 SkColor initial_color
) {
53 return chrome::ShowColorChooser(web_contents
, initial_color
);
56 void AthenaChromeAppDelegate::RunFileChooser(
57 content::WebContents
* tab
,
58 const content::FileChooserParams
& params
) {
59 FileSelectHelper::RunFileChooser(tab
, params
);
62 void AthenaChromeAppDelegate::RequestMediaAccessPermission(
63 content::WebContents
* web_contents
,
64 const content::MediaStreamRequest
& request
,
65 const content::MediaResponseCallback
& callback
,
66 const extensions::Extension
* extension
) {
67 MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest(
68 web_contents
, request
, callback
, extension
);
71 bool AthenaChromeAppDelegate::CheckMediaAccessPermission(
72 content::WebContents
* web_contents
,
73 const GURL
& security_origin
,
74 content::MediaStreamType type
,
75 const extensions::Extension
* extension
) {
76 return MediaCaptureDevicesDispatcher::GetInstance()
77 ->CheckMediaAccessPermission(
78 web_contents
, security_origin
, type
, extension
);
81 void AthenaChromeAppDelegate::SetWebContentsBlocked(
82 content::WebContents
* web_contents
,
84 // RenderViewHost may be nullptr during shutdown.
85 content::RenderViewHost
* host
= web_contents
->GetRenderViewHost();
87 host
->Send(new ChromeViewMsg_SetVisuallyDeemphasized(host
->GetRoutingID(),