Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Side by Side Diff: chrome/browser/ui/app_modal_dialogs/javascript_dialog_creator.cc

Issue 10389228: browser: Rename message_box_handler.* to javascript_dialog_creator.* (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/app_modal_dialogs/message_box_handler.h" 5 #include "chrome/browser/ui/app_modal_dialogs/javascript_dialog_creator.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/i18n/rtl.h"
10 #include "base/memory/singleton.h" 11 #include "base/memory/singleton.h"
11 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
12 #include "base/i18n/rtl.h"
13 #include "chrome/browser/extensions/extension_host.h" 13 #include "chrome/browser/extensions/extension_host.h"
14 #include "chrome/browser/extensions/extension_service.h" 14 #include "chrome/browser/extensions/extension_service.h"
15 #include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h" 15 #include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h"
16 #include "chrome/browser/ui/app_modal_dialogs/js_modal_dialog.h" 16 #include "chrome/browser/ui/app_modal_dialogs/js_modal_dialog.h"
17 #include "chrome/common/chrome_constants.h" 17 #include "chrome/common/chrome_constants.h"
18 #include "chrome/common/chrome_notification_types.h" 18 #include "chrome/common/chrome_notification_types.h"
19 #include "content/public/browser/notification_observer.h" 19 #include "content/public/browser/notification_observer.h"
20 #include "content/public/browser/notification_registrar.h" 20 #include "content/public/browser/notification_registrar.h"
21 #include "content/public/browser/notification_service.h" 21 #include "content/public/browser/notification_service.h"
22 #include "content/public/common/content_client.h" 22 #include "content/public/common/content_client.h"
23 #include "grit/generated_resources.h" 23 #include "grit/generated_resources.h"
24 #include "net/base/net_util.h" 24 #include "net/base/net_util.h"
25 #include "ui/base/javascript_message_type.h" 25 #include "ui/base/javascript_message_type.h"
26 #include "ui/base/l10n/l10n_util.h" 26 #include "ui/base/l10n/l10n_util.h"
27 27
28 using content::JavaScriptDialogCreator; 28 using content::JavaScriptDialogCreator;
29 using content::WebContents; 29 using content::WebContents;
30 30
31 class ChromeJavaScriptDialogCreator 31 namespace {
32 : public JavaScriptDialogCreator, 32
33 public content::NotificationObserver { 33 class ChromeJavaScriptDialogCreator : public JavaScriptDialogCreator,
34 public content::NotificationObserver {
34 public: 35 public:
35 static ChromeJavaScriptDialogCreator* GetInstance(); 36 static ChromeJavaScriptDialogCreator* GetInstance();
36 37
37 explicit ChromeJavaScriptDialogCreator(ExtensionHost* extension_host); 38 explicit ChromeJavaScriptDialogCreator(ExtensionHost* extension_host);
38 virtual ~ChromeJavaScriptDialogCreator(); 39 virtual ~ChromeJavaScriptDialogCreator();
39 40
40 virtual void RunJavaScriptDialog( 41 virtual void RunJavaScriptDialog(
41 WebContents* web_contents, 42 WebContents* web_contents,
42 const GURL& origin_url, 43 const GURL& origin_url,
43 const std::string& accept_lang, 44 const std::string& accept_lang,
44 ui::JavascriptMessageType javascript_message_type, 45 ui::JavascriptMessageType javascript_message_type,
45 const string16& message_text, 46 const string16& message_text,
46 const string16& default_prompt_text, 47 const string16& default_prompt_text,
47 const DialogClosedCallback& callback, 48 const DialogClosedCallback& callback,
48 bool* did_suppress_message) OVERRIDE; 49 bool* did_suppress_message) OVERRIDE;
49 50
50 virtual void RunBeforeUnloadDialog( 51 virtual void RunBeforeUnloadDialog(
51 WebContents* web_contents, 52 WebContents* web_contents,
52 const string16& message_text, 53 const string16& message_text,
53 bool is_reload, 54 bool is_reload,
54 const DialogClosedCallback& callback) OVERRIDE; 55 const DialogClosedCallback& callback) OVERRIDE;
55 56
56 virtual void ResetJavaScriptState(WebContents* web_contents) OVERRIDE; 57 virtual void ResetJavaScriptState(WebContents* web_contents) OVERRIDE;
57 58
58 private: 59 private:
59 explicit ChromeJavaScriptDialogCreator(); 60 ChromeJavaScriptDialogCreator();
60 61
61 friend struct DefaultSingletonTraits<ChromeJavaScriptDialogCreator>; 62 friend struct DefaultSingletonTraits<ChromeJavaScriptDialogCreator>;
62 63
63 // content::NotificationObserver 64 // Overridden from content::NotificationObserver:
64 virtual void Observe(int type, 65 virtual void Observe(int type,
65 const content::NotificationSource& source, 66 const content::NotificationSource& source,
66 const content::NotificationDetails& details) OVERRIDE; 67 const content::NotificationDetails& details) OVERRIDE;
67 68
68 string16 GetTitle(const GURL& origin_url, 69 string16 GetTitle(const GURL& origin_url,
69 const std::string& accept_lang, 70 const std::string& accept_lang,
70 bool is_alert); 71 bool is_alert);
71 72
72 void CancelPendingDialogs(WebContents* web_contents); 73 void CancelPendingDialogs(WebContents* web_contents);
73 74
(...skipping 12 matching lines...) Expand all
86 // Extension Host which owns the ChromeJavaScriptDialogCreator instance. 87 // Extension Host which owns the ChromeJavaScriptDialogCreator instance.
87 // It's used to get a extension name from a URL. 88 // It's used to get a extension name from a URL.
88 // If it's not owned by any Extension, it should be NULL. 89 // If it's not owned by any Extension, it should be NULL.
89 ExtensionHost* extension_host_; 90 ExtensionHost* extension_host_;
90 91
91 content::NotificationRegistrar registrar_; 92 content::NotificationRegistrar registrar_;
92 93
93 DISALLOW_COPY_AND_ASSIGN(ChromeJavaScriptDialogCreator); 94 DISALLOW_COPY_AND_ASSIGN(ChromeJavaScriptDialogCreator);
94 }; 95 };
95 96
96 //------------------------------------------------------------------------------ 97 ////////////////////////////////////////////////////////////////////////////////
98 // ChromeJavaScriptDialogCreator, public:
97 99
98 ChromeJavaScriptDialogCreator::ChromeJavaScriptDialogCreator() 100 ChromeJavaScriptDialogCreator::ChromeJavaScriptDialogCreator()
99 : extension_host_(NULL) { 101 : extension_host_(NULL) {
100 } 102 }
101 103
102 ChromeJavaScriptDialogCreator::~ChromeJavaScriptDialogCreator() { 104 ChromeJavaScriptDialogCreator::~ChromeJavaScriptDialogCreator() {
103 extension_host_ = NULL; 105 extension_host_ = NULL;
104 } 106 }
105 107
106 ChromeJavaScriptDialogCreator::ChromeJavaScriptDialogCreator( 108 ChromeJavaScriptDialogCreator::ChromeJavaScriptDialogCreator(
107 ExtensionHost* extension_host) 109 ExtensionHost* extension_host)
108 : extension_host_(extension_host) { 110 : extension_host_(extension_host) {
109 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED, 111 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED,
110 content::Source<Profile>(extension_host_->profile())); 112 content::Source<Profile>(extension_host_->profile()));
111 } 113 }
112 114
113 /* static */ 115 // static
114 ChromeJavaScriptDialogCreator* ChromeJavaScriptDialogCreator::GetInstance() { 116 ChromeJavaScriptDialogCreator* ChromeJavaScriptDialogCreator::GetInstance() {
115 return Singleton<ChromeJavaScriptDialogCreator>::get(); 117 return Singleton<ChromeJavaScriptDialogCreator>::get();
116 } 118 }
117 119
118 void ChromeJavaScriptDialogCreator::RunJavaScriptDialog( 120 void ChromeJavaScriptDialogCreator::RunJavaScriptDialog(
119 WebContents* web_contents, 121 WebContents* web_contents,
120 const GURL& origin_url, 122 const GURL& origin_url,
121 const std::string& accept_lang, 123 const std::string& accept_lang,
122 ui::JavascriptMessageType javascript_message_type, 124 ui::JavascriptMessageType javascript_message_type,
123 const string16& message_text, 125 const string16& message_text,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 } 168 }
167 169
168 void ChromeJavaScriptDialogCreator::RunBeforeUnloadDialog( 170 void ChromeJavaScriptDialogCreator::RunBeforeUnloadDialog(
169 WebContents* web_contents, 171 WebContents* web_contents,
170 const string16& message_text, 172 const string16& message_text,
171 bool is_reload, 173 bool is_reload,
172 const DialogClosedCallback& callback) { 174 const DialogClosedCallback& callback) {
173 ChromeJavaScriptDialogExtraData* extra_data = 175 ChromeJavaScriptDialogExtraData* extra_data =
174 &javascript_dialog_extra_data_[web_contents]; 176 &javascript_dialog_extra_data_[web_contents];
175 177
176 string16 title = l10n_util::GetStringUTF16( 178 const string16 title = l10n_util::GetStringUTF16(is_reload ?
177 is_reload ? 179 IDS_BEFORERELOAD_MESSAGEBOX_TITLE : IDS_BEFOREUNLOAD_MESSAGEBOX_TITLE);
178 IDS_BEFORERELOAD_MESSAGEBOX_TITLE : 180 const string16 footer = l10n_util::GetStringUTF16(is_reload ?
179 IDS_BEFOREUNLOAD_MESSAGEBOX_TITLE); 181 IDS_BEFORERELOAD_MESSAGEBOX_FOOTER : IDS_BEFOREUNLOAD_MESSAGEBOX_FOOTER);
180 string16 footer = l10n_util::GetStringUTF16(
181 is_reload ?
182 IDS_BEFORERELOAD_MESSAGEBOX_FOOTER :
183 IDS_BEFOREUNLOAD_MESSAGEBOX_FOOTER);
184 182
185 string16 full_message = message_text + ASCIIToUTF16("\n\n") + footer; 183 string16 full_message = message_text + ASCIIToUTF16("\n\n") + footer;
186 184
187 if (extension_host_) 185 if (extension_host_)
188 extension_host_->WillRunJavaScriptDialog(); 186 extension_host_->WillRunJavaScriptDialog();
189 187
190 AppModalDialogQueue::GetInstance()->AddDialog(new JavaScriptAppModalDialog( 188 AppModalDialogQueue::GetInstance()->AddDialog(new JavaScriptAppModalDialog(
191 web_contents, 189 web_contents,
192 extra_data, 190 extra_data,
193 title, 191 title,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 if (active_dialog && active_dialog->web_contents() == web_contents) 249 if (active_dialog && active_dialog->web_contents() == web_contents)
252 active_dialog->Invalidate(); 250 active_dialog->Invalidate();
253 for (AppModalDialogQueue::iterator i = queue->begin(); 251 for (AppModalDialogQueue::iterator i = queue->begin();
254 i != queue->end(); ++i) { 252 i != queue->end(); ++i) {
255 if ((*i)->web_contents() == web_contents) 253 if ((*i)->web_contents() == web_contents)
256 (*i)->Invalidate(); 254 (*i)->Invalidate();
257 } 255 }
258 } 256 }
259 257
260 void ChromeJavaScriptDialogCreator::OnDialogClosed( 258 void ChromeJavaScriptDialogCreator::OnDialogClosed(
261 DialogClosedCallback callback, bool success, const string16& user_input) { 259 DialogClosedCallback callback,
260 bool success,
261 const string16& user_input) {
262 if (extension_host_) 262 if (extension_host_)
263 extension_host_->DidCloseJavaScriptDialog(); 263 extension_host_->DidCloseJavaScriptDialog();
264 callback.Run(success, user_input); 264 callback.Run(success, user_input);
265 } 265 }
266 266
267 //------------------------------------------------------------------------------ 267 } // namespace
268 268
269 content::JavaScriptDialogCreator* GetJavaScriptDialogCreatorInstance() { 269 content::JavaScriptDialogCreator* GetJavaScriptDialogCreatorInstance() {
270 return ChromeJavaScriptDialogCreator::GetInstance(); 270 return ChromeJavaScriptDialogCreator::GetInstance();
271 } 271 }
272 272
273 content::JavaScriptDialogCreator* CreateJavaScriptDialogCreatorInstance( 273 content::JavaScriptDialogCreator* CreateJavaScriptDialogCreatorInstance(
274 ExtensionHost* extension_host) { 274 ExtensionHost* extension_host) {
275 return new ChromeJavaScriptDialogCreator(extension_host); 275 return new ChromeJavaScriptDialogCreator(extension_host);
276 } 276 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698