summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-25 14:12:10 +0000
committeravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-25 14:12:10 +0000
commited2b10090d8bb61951e0572e4e134ef62d091d9c (patch)
tree923e7b160af96ae643f30fe541f8773956fa0e37
parente257d5b82922051e9a9ee75fd282c46c1a5cf5c2 (diff)
downloadchromium_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
-rw-r--r--chrome/browser/autocomplete/autocomplete.cc2
-rw-r--r--chrome/browser/chromeos/external_protocol_dialog.cc2
-rw-r--r--chrome/browser/extensions/extension_function_dispatcher.cc2
-rw-r--r--chrome/browser/external_protocol/external_protocol_handler.cc (renamed from chrome/browser/external_protocol_handler.cc)2
-rw-r--r--chrome/browser/external_protocol/external_protocol_handler.h (renamed from chrome/browser/external_protocol_handler.h)8
-rw-r--r--chrome/browser/external_protocol/external_protocol_observer.cc19
-rw-r--r--chrome/browser/external_protocol/external_protocol_observer.h26
-rw-r--r--chrome/browser/prefs/browser_prefs.cc2
-rw-r--r--chrome/browser/ui/cocoa/external_protocol_dialog.mm4
-rw-r--r--chrome/browser/ui/gtk/external_protocol_dialog_gtk.cc2
-rw-r--r--chrome/browser/ui/tab_contents/tab_contents_wrapper.cc2
-rw-r--r--chrome/browser/ui/tab_contents/tab_contents_wrapper.h2
-rw-r--r--chrome/browser/ui/views/external_protocol_dialog.cc2
-rw-r--r--chrome/chrome_browser.gypi6
-rw-r--r--content/browser/DEPS2
-rw-r--r--content/browser/renderer_host/resource_dispatcher_host.cc2
-rw-r--r--content/browser/tab_contents/tab_contents.cc2
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() {