Chromium Code Reviews| 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_ |