Index: chrome/browser/external_protocol/external_protocol_handler.h |
diff --git a/chrome/browser/external_protocol/external_protocol_handler.h b/chrome/browser/external_protocol/external_protocol_handler.h |
index 7c934c5f7c6db51fe133bc4f5e2ad581836dd512..5837f62097538f0a7b0495b465eb82645d299f55 100644 |
--- a/chrome/browser/external_protocol/external_protocol_handler.h |
+++ b/chrome/browser/external_protocol/external_protocol_handler.h |
@@ -30,7 +30,8 @@ class ExternalProtocolHandler { |
virtual ShellIntegration::DefaultProtocolClientWorker* CreateShellWorker( |
ShellIntegration::DefaultWebClientObserver* observer, |
const std::string& protocol) = 0; |
- virtual BlockState GetBlockState(const std::string& scheme) = 0; |
+ virtual BlockState GetBlockState(const std::string& scheme, |
+ bool initiated_by_user_gesture) = 0; |
virtual void BlockRequest() = 0; |
virtual void RunExternalProtocolDialog(const GURL& url, |
int render_process_host_id, |
@@ -41,27 +42,17 @@ class ExternalProtocolHandler { |
}; |
// Returns whether we should block a given scheme. |
- static BlockState GetBlockState(const std::string& scheme); |
+ static BlockState GetBlockState(const std::string& scheme, |
+ bool initiated_by_user_gesture); |
// Sets whether we should block a given scheme. |
static void SetBlockState(const std::string& scheme, BlockState state); |
- // Checks to see if the protocol is allowed, if it is whitelisted, |
- // the application associated with the protocol is launched on the io thread, |
- // if it is blacklisted, returns silently. Otherwise, an |
- // ExternalProtocolDialog is created asking the user. If the user accepts, |
- // LaunchUrlWithoutSecurityCheck is called on the io thread and the |
- // application is launched. |
- // Must run on the UI thread. |
- static void LaunchUrl(const GURL& url, int render_process_host_id, |
- int tab_contents_id) { |
- LaunchUrlWithDelegate(url, render_process_host_id, tab_contents_id, NULL); |
- } |
- |
// Version of LaunchUrl allowing use of a delegate to facilitate unit |
// testing. |
static void LaunchUrlWithDelegate(const GURL& url, int render_process_host_id, |
- int tab_contents_id, Delegate* delegate); |
+ int tab_contents_id, Delegate* delegate, |
+ bool initiated_by_user_gesture); |
// Creates and runs a External Protocol dialog box. |
// |url| - The url of the request. |
@@ -96,11 +87,9 @@ class ExternalProtocolHandler { |
// preferences for them do not already exist. |
static void PrepopulateDictionary(base::DictionaryValue* win_pref); |
- // Allows LaunchUrl to proceed with launching an external protocol handler. |
- // This is typically triggered by a user gesture, but is also called for |
- // each extension API function. Note that each call to LaunchUrl resets |
- // the state to false (not allowed). |
- static void PermitLaunchUrl(); |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(ExternalProtocolHandler); |
}; |
+ |
mmenke
2014/03/31 21:38:27
nit: Remove extra blank line.
meacer
2014/03/31 22:00:45
Done.
|
#endif // CHROME_BROWSER_EXTERNAL_PROTOCOL_EXTERNAL_PROTOCOL_HANDLER_H_ |