| // 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 "athena/extensions/chrome/athena_chrome_app_delegate.h" |
| |
| #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" |
| #include "chrome/browser/favicon/favicon_tab_helper.h" |
| #include "chrome/browser/file_select_helper.h" |
| #include "chrome/browser/media/media_capture_devices_dispatcher.h" |
| #include "chrome/browser/platform_util.h" |
| #include "chrome/browser/ui/browser_dialogs.h" |
| #include "chrome/common/extensions/chrome_extension_messages.h" |
| #include "content/public/browser/render_view_host.h" |
| #include "content/public/browser/web_contents.h" |
| |
| #if defined(ENABLE_PRINTING) |
| #if defined(ENABLE_PRINT_PREVIEW) |
| #include "chrome/browser/printing/print_preview_message_handler.h" |
| #include "chrome/browser/printing/print_view_manager.h" |
| #else |
| #include "chrome/browser/printing/print_view_manager_basic.h" |
| #endif // defined(ENABLE_PRINT_PREVIEW) |
| #endif // defined(ENABLE_PRINTING) |
| |
| namespace athena { |
| |
| AthenaChromeAppDelegate::AthenaChromeAppDelegate() { |
| } |
| |
| AthenaChromeAppDelegate::~AthenaChromeAppDelegate() { |
| } |
| |
| void AthenaChromeAppDelegate::InitWebContents( |
| content::WebContents* web_contents) { |
| FaviconTabHelper::CreateForWebContents(web_contents); |
| |
| #if defined(ENABLE_PRINTING) |
| #if defined(ENABLE_PRINT_PREVIEW) |
| printing::PrintViewManager::CreateForWebContents(web_contents); |
| printing::PrintPreviewMessageHandler::CreateForWebContents(web_contents); |
| #else |
| printing::PrintViewManagerBasic::CreateForWebContents(web_contents); |
| #endif // defined(ENABLE_PRINT_PREVIEW) |
| #endif // defined(ENABLE_PRINTING) |
| extensions::ChromeExtensionWebContentsObserver::CreateForWebContents( |
| web_contents); |
| } |
| |
| content::ColorChooser* AthenaChromeAppDelegate::ShowColorChooser( |
| content::WebContents* web_contents, |
| SkColor initial_color) { |
| return chrome::ShowColorChooser(web_contents, initial_color); |
| } |
| |
| void AthenaChromeAppDelegate::RunFileChooser( |
| content::WebContents* tab, |
| const content::FileChooserParams& params) { |
| FileSelectHelper::RunFileChooser(tab, params); |
| } |
| |
| void AthenaChromeAppDelegate::RequestMediaAccessPermission( |
| content::WebContents* web_contents, |
| const content::MediaStreamRequest& request, |
| const content::MediaResponseCallback& callback, |
| const extensions::Extension* extension) { |
| MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest( |
| web_contents, request, callback, extension); |
| } |
| |
| bool AthenaChromeAppDelegate::CheckMediaAccessPermission( |
| content::WebContents* web_contents, |
| const GURL& security_origin, |
| content::MediaStreamType type, |
| const extensions::Extension* extension) { |
| return MediaCaptureDevicesDispatcher::GetInstance() |
| ->CheckMediaAccessPermission( |
| web_contents, security_origin, type, extension); |
| } |
| |
| void AthenaChromeAppDelegate::SetWebContentsBlocked( |
| content::WebContents* web_contents, |
| bool blocked) { |
| // RenderViewHost may be nullptr during shutdown. |
| content::RenderViewHost* host = web_contents->GetRenderViewHost(); |
| if (host) { |
| host->Send(new ChromeViewMsg_SetVisuallyDeemphasized(host->GetRoutingID(), |
| blocked)); |
| } |
| } |
| |
| } // namespace athena |