diff options
author | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-25 14:12:10 +0000 |
---|---|---|
committer | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-25 14:12:10 +0000 |
commit | ed2b10090d8bb61951e0572e4e134ef62d091d9c (patch) | |
tree | 923e7b160af96ae643f30fe541f8773956fa0e37 | |
parent | e257d5b82922051e9a9ee75fd282c46c1a5cf5c2 (diff) | |
download | chromium_src-ed2b10090d8bb61951e0572e4e134ef62d091d9c.zip chromium_src-ed2b10090d8bb61951e0572e4e134ef62d091d9c.tar.gz chromium_src-ed2b10090d8bb61951e0572e4e134ef62d091d9c.tar.bz2 |
Move external protocol handling from TC.
BUG=71097
TEST=no change
Review URL: http://codereview.chromium.org/7065038
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86613 0039d316-1c4b-4281-b951-d872f2087c98
17 files changed, 68 insertions, 19 deletions
diff --git a/chrome/browser/autocomplete/autocomplete.cc b/chrome/browser/autocomplete/autocomplete.cc index 5d241dc..1f0305c 100644 --- a/chrome/browser/autocomplete/autocomplete.cc +++ b/chrome/browser/autocomplete/autocomplete.cc @@ -23,7 +23,7 @@ #include "chrome/browser/autocomplete/keyword_provider.h" #include "chrome/browser/autocomplete/search_provider.h" #include "chrome/browser/bookmarks/bookmark_model.h" -#include "chrome/browser/external_protocol_handler.h" +#include "chrome/browser/external_protocol/external_protocol_handler.h" #include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" diff --git a/chrome/browser/chromeos/external_protocol_dialog.cc b/chrome/browser/chromeos/external_protocol_dialog.cc index 446917a..8ce2264 100644 --- a/chrome/browser/chromeos/external_protocol_dialog.cc +++ b/chrome/browser/chromeos/external_protocol_dialog.cc @@ -7,7 +7,7 @@ #include "base/metrics/histogram.h" #include "base/string_util.h" #include "base/utf_string_conversions.h" -#include "chrome/browser/external_protocol_handler.h" +#include "chrome/browser/external_protocol/external_protocol_handler.h" #include "chrome/browser/tab_contents/tab_util.h" #include "chrome/browser/ui/views/window.h" #include "content/browser/tab_contents/tab_contents.h" diff --git a/chrome/browser/extensions/extension_function_dispatcher.cc b/chrome/browser/extensions/extension_function_dispatcher.cc index 62eabd0..2329ae7 100644 --- a/chrome/browser/extensions/extension_function_dispatcher.cc +++ b/chrome/browser/extensions/extension_function_dispatcher.cc @@ -43,7 +43,7 @@ #include "chrome/browser/extensions/extension_webrequest_api.h" #include "chrome/browser/extensions/extension_webstore_private_api.h" #include "chrome/browser/extensions/extensions_quota_service.h" -#include "chrome/browser/external_protocol_handler.h" +#include "chrome/browser/external_protocol/external_protocol_handler.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/browser_window.h" diff --git a/chrome/browser/external_protocol_handler.cc b/chrome/browser/external_protocol/external_protocol_handler.cc index 24b5984..7388dd9 100644 --- a/chrome/browser/external_protocol_handler.cc +++ b/chrome/browser/external_protocol/external_protocol_handler.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/external_protocol_handler.h" +#include "chrome/browser/external_protocol/external_protocol_handler.h" #include <set> diff --git a/chrome/browser/external_protocol_handler.h b/chrome/browser/external_protocol/external_protocol_handler.h index f822cc8..72bcbcf 100644 --- a/chrome/browser/external_protocol_handler.h +++ b/chrome/browser/external_protocol/external_protocol_handler.h @@ -1,9 +1,9 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 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. -#ifndef CHROME_BROWSER_EXTERNAL_PROTOCOL_HANDLER_H_ -#define CHROME_BROWSER_EXTERNAL_PROTOCOL_HANDLER_H_ +#ifndef CHROME_BROWSER_EXTERNAL_PROTOCOL_EXTERNAL_PROTOCOL_HANDLER_H_ +#define CHROME_BROWSER_EXTERNAL_PROTOCOL_EXTERNAL_PROTOCOL_HANDLER_H_ #pragma once #include <string> @@ -75,4 +75,4 @@ class ExternalProtocolHandler { static void PermitLaunchUrl(); }; -#endif // CHROME_BROWSER_EXTERNAL_PROTOCOL_HANDLER_H_ +#endif // CHROME_BROWSER_EXTERNAL_PROTOCOL_EXTERNAL_PROTOCOL_HANDLER_H_ diff --git a/chrome/browser/external_protocol/external_protocol_observer.cc b/chrome/browser/external_protocol/external_protocol_observer.cc new file mode 100644 index 0000000..c1be1ef --- /dev/null +++ b/chrome/browser/external_protocol/external_protocol_observer.cc @@ -0,0 +1,19 @@ +// Copyright (c) 2011 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/external_protocol/external_protocol_observer.h" + +#include "chrome/browser/external_protocol/external_protocol_handler.h" +#include "content/browser/tab_contents/tab_contents.h" + +ExternalProtocolObserver::ExternalProtocolObserver(TabContents* tab_contents) + : TabContentsObserver(tab_contents) { +} + +ExternalProtocolObserver::~ExternalProtocolObserver() { +} + +void ExternalProtocolObserver::DidGetUserGesture() { + ExternalProtocolHandler::PermitLaunchUrl(); +} diff --git a/chrome/browser/external_protocol/external_protocol_observer.h b/chrome/browser/external_protocol/external_protocol_observer.h new file mode 100644 index 0000000..dad04b4 --- /dev/null +++ b/chrome/browser/external_protocol/external_protocol_observer.h @@ -0,0 +1,26 @@ +// Copyright (c) 2011 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. + +#ifndef CHROME_BROWSER_EXTERNAL_PROTOCOL_EXTERNAL_PROTOCOL_OBSERVER_H_ +#define CHROME_BROWSER_EXTERNAL_PROTOCOL_EXTERNAL_PROTOCOL_OBSERVER_H_ + +#include "content/browser/tab_contents/tab_contents_observer.h" + +class TabContents; + +// ExternalProtocolObserver is responsible for handling messages from +// TabContents relating to external protocols. +class ExternalProtocolObserver : public TabContentsObserver { + public: + explicit ExternalProtocolObserver(TabContents* tab_contents); + virtual ~ExternalProtocolObserver(); + + // TabContentsObserver overrides. + virtual void DidGetUserGesture() OVERRIDE; + + private: + DISALLOW_COPY_AND_ASSIGN(ExternalProtocolObserver); +}; + +#endif // CHROME_BROWSER_EXTERNAL_PROTOCOL_EXTERNAL_PROTOCOL_OBSERVER_H_ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc index 9dcf9a7..d320a1a 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc @@ -18,7 +18,7 @@ #include "chrome/browser/extensions/extension_prefs.h" #include "chrome/browser/extensions/extension_web_ui.h" #include "chrome/browser/extensions/extensions_ui.h" -#include "chrome/browser/external_protocol_handler.h" +#include "chrome/browser/external_protocol/external_protocol_handler.h" #include "chrome/browser/geolocation/geolocation_content_settings_map.h" #include "chrome/browser/geolocation/geolocation_prefs.h" #include "chrome/browser/google/google_url_tracker.h" diff --git a/chrome/browser/ui/cocoa/external_protocol_dialog.mm b/chrome/browser/ui/cocoa/external_protocol_dialog.mm index 1fe4783..2b6c2ab 100644 --- a/chrome/browser/ui/cocoa/external_protocol_dialog.mm +++ b/chrome/browser/ui/cocoa/external_protocol_dialog.mm @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 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. @@ -9,7 +9,7 @@ #include "base/string_util.h" #include "base/sys_string_conversions.h" #include "base/utf_string_conversions.h" -#include "chrome/browser/external_protocol_handler.h" +#include "chrome/browser/external_protocol/external_protocol_handler.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" #include "ui/base/l10n/l10n_util_mac.h" diff --git a/chrome/browser/ui/gtk/external_protocol_dialog_gtk.cc b/chrome/browser/ui/gtk/external_protocol_dialog_gtk.cc index a52eba1..6d26a0b 100644 --- a/chrome/browser/ui/gtk/external_protocol_dialog_gtk.cc +++ b/chrome/browser/ui/gtk/external_protocol_dialog_gtk.cc @@ -12,7 +12,7 @@ #include "base/metrics/histogram.h" #include "base/string_util.h" #include "base/utf_string_conversions.h" -#include "chrome/browser/external_protocol_handler.h" +#include "chrome/browser/external_protocol/external_protocol_handler.h" #include "chrome/browser/tab_contents/tab_util.h" #include "chrome/browser/ui/gtk/gtk_util.h" #include "grit/chromium_strings.h" diff --git a/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc b/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc index faec87b..9d38983 100644 --- a/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc +++ b/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc @@ -15,6 +15,7 @@ #include "chrome/browser/custom_handlers/register_protocol_handler_infobar_delegate.h" #include "chrome/browser/extensions/extension_tab_helper.h" #include "chrome/browser/extensions/extension_webnavigation_api.h" +#include "chrome/browser/external_protocol/external_protocol_observer.h" #include "chrome/browser/favicon/favicon_tab_helper.h" #include "chrome/browser/file_select_helper.h" #include "chrome/browser/history/history_tab_helper.h" @@ -91,6 +92,7 @@ TabContentsWrapper::TabContentsWrapper(TabContents* contents) print_view_manager_.reset(new printing::PrintViewManager(contents)); // Create the per-tab observers. + external_protocol_observer_.reset(new ExternalProtocolObserver(contents)); file_select_observer_.reset(new FileSelectObserver(contents)); plugin_observer_.reset(new PluginObserver(this)); prerender_observer_.reset(new prerender::PrerenderObserver(contents)); diff --git a/chrome/browser/ui/tab_contents/tab_contents_wrapper.h b/chrome/browser/ui/tab_contents/tab_contents_wrapper.h index 371e142..667f6a5 100644 --- a/chrome/browser/ui/tab_contents/tab_contents_wrapper.h +++ b/chrome/browser/ui/tab_contents/tab_contents_wrapper.h @@ -34,6 +34,7 @@ class DownloadTabHelper; class Extension; class ExtensionTabHelper; class ExtensionWebNavigationTabObserver; +class ExternalProtocolObserver; class FaviconTabHelper; class FileSelectObserver; class FindTabHelper; @@ -270,6 +271,7 @@ class TabContentsWrapper : public TabContentsObserver, // (These provide no API for callers; objects that need to exist 1:1 with tabs // and silently do their thing live here.) + scoped_ptr<ExternalProtocolObserver> external_protocol_observer_; scoped_ptr<FileSelectObserver> file_select_observer_; scoped_ptr<PluginObserver> plugin_observer_; scoped_ptr<prerender::PrerenderObserver> prerender_observer_; diff --git a/chrome/browser/ui/views/external_protocol_dialog.cc b/chrome/browser/ui/views/external_protocol_dialog.cc index b3485c3..3a9b63f 100644 --- a/chrome/browser/ui/views/external_protocol_dialog.cc +++ b/chrome/browser/ui/views/external_protocol_dialog.cc @@ -10,7 +10,7 @@ #include "base/threading/thread_restrictions.h" #include "base/utf_string_conversions.h" #include "base/win/registry.h" -#include "chrome/browser/external_protocol_handler.h" +#include "chrome/browser/external_protocol/external_protocol_handler.h" #include "chrome/browser/tab_contents/tab_util.h" #include "content/browser/tab_contents/tab_contents.h" #include "grit/chromium_strings.h" diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 5d8ceb6..307203b 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -1083,8 +1083,10 @@ 'browser/extensions/user_script_listener.h', 'browser/extensions/user_script_master.cc', 'browser/extensions/user_script_master.h', - 'browser/external_protocol_handler.cc', - 'browser/external_protocol_handler.h', + 'browser/external_protocol/external_protocol_handler.cc', + 'browser/external_protocol/external_protocol_handler.h', + 'browser/external_protocol/external_protocol_observer.cc', + 'browser/external_protocol/external_protocol_observer.h', 'browser/external_tab_container_win.cc', 'browser/external_tab_container_win.h', 'browser/favicon/favicon_handler.cc', diff --git a/content/browser/DEPS b/content/browser/DEPS index 7abd313..b3b6dbb 100644 --- a/content/browser/DEPS +++ b/content/browser/DEPS @@ -34,7 +34,7 @@ include_rules = [ "+chrome/common/extensions/extension.h",
"+chrome/common/extensions/user_script.h",
- "+chrome/browser/external_protocol_handler.h",
+ "+chrome/browser/external_protocol/external_protocol_handler.h",
"+chrome/browser/load_from_memory_cache_details.h",
diff --git a/content/browser/renderer_host/resource_dispatcher_host.cc b/content/browser/renderer_host/resource_dispatcher_host.cc index 37e7e8e..3567285 100644 --- a/content/browser/renderer_host/resource_dispatcher_host.cc +++ b/content/browser/renderer_host/resource_dispatcher_host.cc @@ -23,7 +23,7 @@ #include "chrome/browser/download/download_request_limiter.h" #include "chrome/browser/download/download_util.h" #include "chrome/browser/download/save_file_manager.h" -#include "chrome/browser/external_protocol_handler.h" +#include "chrome/browser/external_protocol/external_protocol_handler.h" #include "chrome/browser/prerender/prerender_manager.h" #include "chrome/browser/prerender/prerender_tracker.h" #include "chrome/browser/profiles/profile.h" diff --git a/content/browser/tab_contents/tab_contents.cc b/content/browser/tab_contents/tab_contents.cc index 19b36c3..51b9623 100644 --- a/content/browser/tab_contents/tab_contents.cc +++ b/content/browser/tab_contents/tab_contents.cc @@ -16,7 +16,6 @@ #include "chrome/browser/browser_shutdown.h" #include "chrome/browser/debugger/devtools_manager.h" #include "chrome/browser/defaults.h" -#include "chrome/browser/external_protocol_handler.h" #include "chrome/browser/load_from_memory_cache_details.h" #include "chrome/browser/notifications/desktop_notification_service.h" #include "chrome/browser/notifications/desktop_notification_service_factory.h" @@ -1737,7 +1736,6 @@ WebPreferences TabContents::GetWebkitPrefs() { void TabContents::OnUserGesture() { // Notify observers. FOR_EACH_OBSERVER(TabContentsObserver, observers_, DidGetUserGesture()); - ExternalProtocolHandler::PermitLaunchUrl(); } void TabContents::OnIgnoredUIEvent() { |