Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / external_protocol / external_protocol_handler.h
index 7c934c5..6780d10 100644 (file)
@@ -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,8 @@ 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);
 };
 
 #endif  // CHROME_BROWSER_EXTERNAL_PROTOCOL_EXTERNAL_PROTOCOL_HANDLER_H_