Home | History | Annotate | Download | only in web_view
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_GUEST_VIEW_WEB_VIEW_JAVASCRIPT_DIALOG_HELPER_H_
      6 #define CHROME_BROWSER_GUEST_VIEW_WEB_VIEW_JAVASCRIPT_DIALOG_HELPER_H_
      7 
      8 #include "content/public/browser/javascript_dialog_manager.h"
      9 
     10 class WebViewGuest;
     11 
     12 class JavaScriptDialogHelper : public content::JavaScriptDialogManager {
     13  public:
     14   explicit JavaScriptDialogHelper(WebViewGuest* guest);
     15   virtual ~JavaScriptDialogHelper();
     16 
     17   // JavaScriptDialogManager implementation.
     18   virtual void RunJavaScriptDialog(
     19       content::WebContents* web_contents,
     20       const GURL& origin_url,
     21       const std::string& accept_lang,
     22       content::JavaScriptMessageType javascript_message_type,
     23       const base::string16& message_text,
     24       const base::string16& default_prompt_text,
     25       const DialogClosedCallback& callback,
     26       bool* did_suppress_message) OVERRIDE;
     27   virtual void RunBeforeUnloadDialog(
     28       content::WebContents* web_contents,
     29       const base::string16& message_text,
     30       bool is_reload,
     31       const DialogClosedCallback& callback) OVERRIDE;
     32   virtual bool HandleJavaScriptDialog(
     33       content::WebContents* web_contents,
     34       bool accept,
     35       const base::string16* prompt_override) OVERRIDE;
     36   virtual void CancelActiveAndPendingDialogs(
     37       content::WebContents* web_contents) OVERRIDE;
     38   virtual void WebContentsDestroyed(
     39       content::WebContents* web_contents) OVERRIDE;
     40 
     41  private:
     42   void OnPermissionResponse(
     43       const DialogClosedCallback& callback,
     44       bool allow,
     45       const std::string& user_input);
     46 
     47   // Pointer to the webview that is being helped.
     48   WebViewGuest* const webview_guest_;
     49 
     50   DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogHelper);
     51 };
     52 
     53 #endif  // CHROME_BROWSER_GUEST_VIEW_WEB_VIEW_JAVASCRIPT_DIALOG_HELPER_H_
     54