Re-factored printing defines and build configs.
[chromium-blink-merge.git] / athena / extensions / chrome / athena_chrome_app_delegate.cc
blobdd264f626ba6d2f3220257eefa174cc94789dca0
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"
21 #else
22 #include "chrome/browser/printing/print_view_manager_basic.h"
23 #endif // defined(ENABLE_PRINT_PREVIEW)
24 #endif // defined(ENABLE_PRINTING)
26 namespace athena {
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);
42 #else
43 printing::PrintViewManagerBasic::CreateForWebContents(web_contents);
44 #endif // defined(ENABLE_PRINT_PREVIEW)
45 #endif // defined(ENABLE_PRINTING)
46 extensions::ChromeExtensionWebContentsObserver::CreateForWebContents(
47 web_contents);
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,
83 bool blocked) {
84 // RenderViewHost may be nullptr during shutdown.
85 content::RenderViewHost* host = web_contents->GetRenderViewHost();
86 if (host) {
87 host->Send(new ChromeViewMsg_SetVisuallyDeemphasized(host->GetRoutingID(),
88 blocked));
92 } // namespace athena