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 EXTENSIONS_BROWSER_GUEST_VIEW_WEB_VIEW_JAVASCRIPT_DIALOG_HELPER_H_ 6#define EXTENSIONS_BROWSER_GUEST_VIEW_WEB_VIEW_JAVASCRIPT_DIALOG_HELPER_H_ 7 8#include "content/public/browser/javascript_dialog_manager.h" 9 10namespace extensions { 11 12class WebViewGuest; 13 14class JavaScriptDialogHelper : public content::JavaScriptDialogManager { 15 public: 16 explicit JavaScriptDialogHelper(WebViewGuest* guest); 17 virtual ~JavaScriptDialogHelper(); 18 19 // JavaScriptDialogManager implementation. 20 virtual void RunJavaScriptDialog( 21 content::WebContents* web_contents, 22 const GURL& origin_url, 23 const std::string& accept_lang, 24 content::JavaScriptMessageType javascript_message_type, 25 const base::string16& message_text, 26 const base::string16& default_prompt_text, 27 const DialogClosedCallback& callback, 28 bool* did_suppress_message) OVERRIDE; 29 virtual void RunBeforeUnloadDialog( 30 content::WebContents* web_contents, 31 const base::string16& message_text, 32 bool is_reload, 33 const DialogClosedCallback& callback) OVERRIDE; 34 virtual bool HandleJavaScriptDialog( 35 content::WebContents* web_contents, 36 bool accept, 37 const base::string16* prompt_override) OVERRIDE; 38 virtual void CancelActiveAndPendingDialogs( 39 content::WebContents* web_contents) OVERRIDE; 40 virtual void WebContentsDestroyed( 41 content::WebContents* web_contents) OVERRIDE; 42 43 private: 44 void OnPermissionResponse( 45 const DialogClosedCallback& callback, 46 bool allow, 47 const std::string& user_input); 48 49 // Pointer to the webview that is being helped. 50 WebViewGuest* const web_view_guest_; 51 52 DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogHelper); 53}; 54 55} // namespace extensions 56 57#endif // EXTENSIONS_BROWSER_GUEST_VIEW_WEB_VIEW_JAVASCRIPT_DIALOG_HELPER_H_ 58