1 // Copyright 2014 Samsung Electronics. 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.
5 #ifndef JAVASCRIPT_DIALOG_MANAGER_EFL_H_
6 #define JAVASCRIPT_DIALOG_MANAGER_EFL_H_
9 #include "base/strings/string16.h"
10 #include "content/public/browser/javascript_dialog_manager.h"
11 #include "eweb_view.h"
12 #include "public/ewk_view.h"
18 class JavaScriptModalDialogEfl;
20 class JavaScriptModalCallbacksData {
22 bool Run(Evas_Object* obj,
23 const char* content_text,
24 const char* default_text);
25 static JavaScriptModalCallbacksData* CreateWithAlertDialogData(
26 Ewk_View_JavaScript_Alert_Callback callback,
28 static JavaScriptModalCallbacksData* CreateWithConfirmDialogData(
29 Ewk_View_JavaScript_Confirm_Callback callback,
31 static JavaScriptModalCallbacksData* CreateWithPromptDialogData(
32 Ewk_View_JavaScript_Prompt_Callback callback,
34 ~JavaScriptModalCallbacksData() {}
37 JavaScriptModalCallbacksData(
38 content::JavaScriptDialogType javascript_dialog_type,
41 Ewk_View_JavaScript_Alert_Callback alert_callback_;
42 Ewk_View_JavaScript_Confirm_Callback confirm_callback_;
43 Ewk_View_JavaScript_Prompt_Callback prompt_callback_;
46 content::JavaScriptDialogType javascript_dialog_type_;
49 class JavaScriptDialogManagerEfl : public content::JavaScriptDialogManager {
51 JavaScriptDialogManagerEfl();
52 virtual ~JavaScriptDialogManagerEfl();
54 // JavaScriptDialogManager:
55 void RunJavaScriptDialog(content::WebContents* web_contents,
56 content::RenderFrameHost* render_frame_host,
57 content::JavaScriptDialogType dialog_type,
58 const base::string16& message_text,
59 const base::string16& default_prompt_text,
60 DialogClosedCallback callback,
61 bool* did_suppress_message) override;
62 void RunBeforeUnloadDialog(content::WebContents* web_contents,
63 content::RenderFrameHost* render_frame_host,
65 DialogClosedCallback callback) override;
66 bool HandleJavaScriptDialog(content::WebContents* web_contents,
68 const base::string16* prompt_override) override;
69 void CancelDialogs(content::WebContents* web_contents,
70 bool reset_state) override;
72 void SetAlertCallback(Ewk_View_JavaScript_Alert_Callback callback,
74 void SetConfirmCallback(Ewk_View_JavaScript_Confirm_Callback callback,
76 void SetPromptCallback(Ewk_View_JavaScript_Prompt_Callback callback,
78 void ExecuteDialogClosedCallBack(bool result, const std::string prompt_data);
79 void SetPopupSize(int width, int height);
82 std::unique_ptr<JavaScriptModalDialogEfl> dialog_;
83 std::unique_ptr<JavaScriptModalCallbacksData> alert_callback_data_;
84 std::unique_ptr<JavaScriptModalCallbacksData> confirm_callback_data_;
85 std::unique_ptr<JavaScriptModalCallbacksData> prompt_callback_data_;
86 DialogClosedCallback dialog_closed_callback_;
88 DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogManagerEfl);
91 #endif /* JAVASCRIPT_DIALOG_MANAGER_EFL_H_ */