Index: chrome/browser/ui/apps/chrome_shell_window_delegate.cc |
diff --git a/chrome/browser/ui/apps/chrome_shell_window_delegate.cc b/chrome/browser/ui/apps/chrome_shell_window_delegate.cc |
deleted file mode 100644 |
index ee201d2c526c62d1d201998fed80c1373515ae1e..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/apps/chrome_shell_window_delegate.cc |
+++ /dev/null |
@@ -1,225 +0,0 @@ |
-// Copyright 2013 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 "chrome/browser/ui/apps/chrome_shell_window_delegate.h" |
- |
-#include "base/strings/stringprintf.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/profiles/profile.h" |
-#include "chrome/browser/shell_integration.h" |
-#include "chrome/browser/ui/browser.h" |
-#include "chrome/browser/ui/browser_dialogs.h" |
-#include "chrome/browser/ui/browser_tabstrip.h" |
-#include "chrome/browser/ui/browser_window.h" |
-#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" |
-#include "chrome/common/render_messages.h" |
-#include "content/public/browser/browser_context.h" |
-#include "content/public/browser/render_view_host.h" |
-#include "content/public/browser/web_contents.h" |
-#include "content/public/browser/web_contents_view.h" |
- |
-#if defined(USE_ASH) |
-#include "ash/shelf/shelf_constants.h" |
-#endif |
- |
-#if defined(ENABLE_PRINTING) |
-#if defined(ENABLE_FULL_PRINTING) |
-#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_FULL_PRINTING) |
-#endif // defined(ENABLE_PRINTING) |
- |
-namespace { |
- |
-bool disable_external_open_for_testing_ = false; |
- |
-// Opens a URL with Chromium (not external browser) with the right profile. |
-content::WebContents* OpenURLFromTabInternal( |
- content::BrowserContext* context, |
- content::WebContents* source, |
- const content::OpenURLParams& params) { |
- // Force all links to open in a new tab, even if they were trying to open a |
- // window. |
- chrome::NavigateParams new_tab_params( |
- static_cast<Browser*>(NULL), params.url, params.transition); |
- new_tab_params.disposition = params.disposition == NEW_BACKGROUND_TAB |
- ? params.disposition |
- : NEW_FOREGROUND_TAB; |
- new_tab_params.initiating_profile = Profile::FromBrowserContext(context); |
- chrome::Navigate(&new_tab_params); |
- |
- return new_tab_params.target_contents; |
-} |
- |
-// Helper class that opens a URL based on if this browser instance is the |
-// default system browser. If it is the default, open the URL directly instead |
-// of asking the system to open it. |
-class OpenURLFromTabBasedOnBrowserDefault |
- : public ShellIntegration::DefaultWebClientObserver { |
- public: |
- OpenURLFromTabBasedOnBrowserDefault(content::WebContents* source, |
- const content::OpenURLParams& params) |
- : source_(source), params_(params) {} |
- |
- // Opens a URL when called with the result of if this is the default system |
- // browser or not. |
- virtual void SetDefaultWebClientUIState( |
- ShellIntegration::DefaultWebClientUIState state) OVERRIDE { |
- Profile* profile = |
- Profile::FromBrowserContext(source_->GetBrowserContext()); |
- DCHECK(profile); |
- if (!profile) |
- return; |
- switch (state) { |
- case ShellIntegration::STATE_PROCESSING: |
- break; |
- case ShellIntegration::STATE_IS_DEFAULT: |
- OpenURLFromTabInternal(profile, source_, params_); |
- break; |
- case ShellIntegration::STATE_NOT_DEFAULT: |
- case ShellIntegration::STATE_UNKNOWN: |
- platform_util::OpenExternal(profile, params_.url); |
- break; |
- } |
- } |
- |
- virtual bool IsOwnedByWorker() OVERRIDE { return true; } |
- |
- private: |
- content::WebContents* source_; |
- const content::OpenURLParams params_; |
-}; |
- |
-} // namespace |
- |
-ShellWindowLinkDelegate::ShellWindowLinkDelegate() {} |
- |
-ShellWindowLinkDelegate::~ShellWindowLinkDelegate() {} |
- |
-// TODO(rockot): Add a test that exercises this code. See |
-// http://crbug.com/254260. |
-content::WebContents* ShellWindowLinkDelegate::OpenURLFromTab( |
- content::WebContents* source, |
- const content::OpenURLParams& params) { |
- if (source) { |
- scoped_refptr<ShellIntegration::DefaultWebClientWorker> |
- check_if_default_browser_worker = |
- new ShellIntegration::DefaultBrowserWorker( |
- new OpenURLFromTabBasedOnBrowserDefault(source, params)); |
- // Object lifetime notes: The OpenURLFromTabBasedOnBrowserDefault is owned |
- // by check_if_default_browser_worker. StartCheckIsDefault() takes lifetime |
- // ownership of check_if_default_browser_worker and will clean up after |
- // the asynchronous tasks. |
- check_if_default_browser_worker->StartCheckIsDefault(); |
- } |
- return NULL; |
-} |
- |
-ChromeShellWindowDelegate::ChromeShellWindowDelegate() {} |
- |
-ChromeShellWindowDelegate::~ChromeShellWindowDelegate() {} |
- |
-void ChromeShellWindowDelegate::DisableExternalOpenForTesting() { |
- disable_external_open_for_testing_ = true; |
-} |
- |
-void ChromeShellWindowDelegate::InitWebContents( |
- content::WebContents* web_contents) { |
- FaviconTabHelper::CreateForWebContents(web_contents); |
- |
-#if defined(ENABLE_PRINTING) |
-#if defined(ENABLE_FULL_PRINTING) |
- printing::PrintViewManager::CreateForWebContents(web_contents); |
- printing::PrintPreviewMessageHandler::CreateForWebContents(web_contents); |
-#else |
- printing::PrintViewManagerBasic::CreateForWebContents(web_contents); |
-#endif // defined(ENABLE_FULL_PRINTING) |
-#endif // defined(ENABLE_PRINTING) |
-} |
- |
-apps::NativeAppWindow* ChromeShellWindowDelegate::CreateNativeAppWindow( |
- apps::AppWindow* window, |
- const apps::AppWindow::CreateParams& params) { |
- return CreateNativeAppWindowImpl(window, params); |
-} |
- |
-content::WebContents* ChromeShellWindowDelegate::OpenURLFromTab( |
- content::BrowserContext* context, |
- content::WebContents* source, |
- const content::OpenURLParams& params) { |
- return OpenURLFromTabInternal(context, source, params); |
-} |
- |
-void ChromeShellWindowDelegate::AddNewContents( |
- content::BrowserContext* context, |
- content::WebContents* new_contents, |
- WindowOpenDisposition disposition, |
- const gfx::Rect& initial_pos, |
- bool user_gesture, |
- bool* was_blocked) { |
- if (!disable_external_open_for_testing_) { |
- if (!shell_window_link_delegate_.get()) |
- shell_window_link_delegate_.reset(new ShellWindowLinkDelegate()); |
- new_contents->SetDelegate(shell_window_link_delegate_.get()); |
- return; |
- } |
- chrome::ScopedTabbedBrowserDisplayer displayer( |
- Profile::FromBrowserContext(context), chrome::GetActiveDesktop()); |
- // Force all links to open in a new tab, even if they were trying to open a |
- // new window. |
- disposition = |
- disposition == NEW_BACKGROUND_TAB ? disposition : NEW_FOREGROUND_TAB; |
- chrome::AddWebContents(displayer.browser(), NULL, new_contents, disposition, |
- initial_pos, user_gesture, was_blocked); |
-} |
- |
-content::ColorChooser* ChromeShellWindowDelegate::ShowColorChooser( |
- content::WebContents* web_contents, |
- SkColor initial_color) { |
- return chrome::ShowColorChooser(web_contents, initial_color); |
-} |
- |
-void ChromeShellWindowDelegate::RunFileChooser( |
- content::WebContents* tab, |
- const content::FileChooserParams& params) { |
- FileSelectHelper::RunFileChooser(tab, params); |
-} |
- |
-void ChromeShellWindowDelegate::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); |
-} |
- |
-int ChromeShellWindowDelegate::PreferredIconSize() { |
-#if defined(USE_ASH) |
- return ash::kShelfPreferredSize; |
-#else |
- return extension_misc::EXTENSION_ICON_SMALL; |
-#endif |
-} |
- |
-void ChromeShellWindowDelegate::SetWebContentsBlocked( |
- content::WebContents* web_contents, |
- bool blocked) { |
- // RenderViewHost may be NULL during shutdown. |
- content::RenderViewHost* host = web_contents->GetRenderViewHost(); |
- if (host) { |
- host->Send(new ChromeViewMsg_SetVisuallyDeemphasized( |
- host->GetRoutingID(), blocked)); |
- } |
-} |
- |
-bool ChromeShellWindowDelegate::IsWebContentsVisible( |
- content::WebContents* web_contents) { |
- return platform_util::IsVisible(web_contents->GetView()->GetNativeView()); |
-} |