OLD | NEW |
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/javascript_dialog_creator.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/i18n/rtl.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 using content::JavaScriptDialogCreator; | 28 using content::JavaScriptDialogCreator; |
29 using content::WebContents; | 29 using content::WebContents; |
30 | 30 |
31 namespace { | 31 namespace { |
32 | 32 |
33 class ChromeJavaScriptDialogCreator : public JavaScriptDialogCreator, | 33 class ChromeJavaScriptDialogCreator : public JavaScriptDialogCreator, |
34 public content::NotificationObserver { | 34 public content::NotificationObserver { |
35 public: | 35 public: |
36 static ChromeJavaScriptDialogCreator* GetInstance(); | 36 static ChromeJavaScriptDialogCreator* GetInstance(); |
37 | 37 |
38 explicit ChromeJavaScriptDialogCreator(ExtensionHost* extension_host); | 38 explicit ChromeJavaScriptDialogCreator( |
| 39 extensions::ExtensionHost* extension_host); |
39 virtual ~ChromeJavaScriptDialogCreator(); | 40 virtual ~ChromeJavaScriptDialogCreator(); |
40 | 41 |
41 virtual void RunJavaScriptDialog( | 42 virtual void RunJavaScriptDialog( |
42 WebContents* web_contents, | 43 WebContents* web_contents, |
43 const GURL& origin_url, | 44 const GURL& origin_url, |
44 const std::string& accept_lang, | 45 const std::string& accept_lang, |
45 content::JavaScriptMessageType message_type, | 46 content::JavaScriptMessageType message_type, |
46 const string16& message_text, | 47 const string16& message_text, |
47 const string16& default_prompt_text, | 48 const string16& default_prompt_text, |
48 const DialogClosedCallback& callback, | 49 const DialogClosedCallback& callback, |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 | 81 |
81 // Mapping between the WebContents and their extra data. The key | 82 // Mapping between the WebContents and their extra data. The key |
82 // is a void* because the pointer is just a cookie and is never dereferenced. | 83 // is a void* because the pointer is just a cookie and is never dereferenced. |
83 typedef std::map<void*, ChromeJavaScriptDialogExtraData> | 84 typedef std::map<void*, ChromeJavaScriptDialogExtraData> |
84 JavaScriptDialogExtraDataMap; | 85 JavaScriptDialogExtraDataMap; |
85 JavaScriptDialogExtraDataMap javascript_dialog_extra_data_; | 86 JavaScriptDialogExtraDataMap javascript_dialog_extra_data_; |
86 | 87 |
87 // Extension Host which owns the ChromeJavaScriptDialogCreator instance. | 88 // Extension Host which owns the ChromeJavaScriptDialogCreator instance. |
88 // It's used to get a extension name from a URL. | 89 // It's used to get a extension name from a URL. |
89 // If it's not owned by any Extension, it should be NULL. | 90 // If it's not owned by any Extension, it should be NULL. |
90 ExtensionHost* extension_host_; | 91 extensions::ExtensionHost* extension_host_; |
91 | 92 |
92 content::NotificationRegistrar registrar_; | 93 content::NotificationRegistrar registrar_; |
93 | 94 |
94 DISALLOW_COPY_AND_ASSIGN(ChromeJavaScriptDialogCreator); | 95 DISALLOW_COPY_AND_ASSIGN(ChromeJavaScriptDialogCreator); |
95 }; | 96 }; |
96 | 97 |
97 //////////////////////////////////////////////////////////////////////////////// | 98 //////////////////////////////////////////////////////////////////////////////// |
98 // ChromeJavaScriptDialogCreator, public: | 99 // ChromeJavaScriptDialogCreator, public: |
99 | 100 |
100 ChromeJavaScriptDialogCreator::ChromeJavaScriptDialogCreator() | 101 ChromeJavaScriptDialogCreator::ChromeJavaScriptDialogCreator() |
101 : extension_host_(NULL) { | 102 : extension_host_(NULL) { |
102 } | 103 } |
103 | 104 |
104 ChromeJavaScriptDialogCreator::~ChromeJavaScriptDialogCreator() { | 105 ChromeJavaScriptDialogCreator::~ChromeJavaScriptDialogCreator() { |
105 extension_host_ = NULL; | 106 extension_host_ = NULL; |
106 } | 107 } |
107 | 108 |
108 ChromeJavaScriptDialogCreator::ChromeJavaScriptDialogCreator( | 109 ChromeJavaScriptDialogCreator::ChromeJavaScriptDialogCreator( |
109 ExtensionHost* extension_host) | 110 extensions::ExtensionHost* extension_host) |
110 : extension_host_(extension_host) { | 111 : extension_host_(extension_host) { |
111 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED, | 112 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED, |
112 content::Source<Profile>(extension_host_->profile())); | 113 content::Source<Profile>(extension_host_->profile())); |
113 } | 114 } |
114 | 115 |
115 // static | 116 // static |
116 ChromeJavaScriptDialogCreator* ChromeJavaScriptDialogCreator::GetInstance() { | 117 ChromeJavaScriptDialogCreator* ChromeJavaScriptDialogCreator::GetInstance() { |
117 return Singleton<ChromeJavaScriptDialogCreator>::get(); | 118 return Singleton<ChromeJavaScriptDialogCreator>::get(); |
118 } | 119 } |
119 | 120 |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
264 callback.Run(success, user_input); | 265 callback.Run(success, user_input); |
265 } | 266 } |
266 | 267 |
267 } // namespace | 268 } // namespace |
268 | 269 |
269 content::JavaScriptDialogCreator* GetJavaScriptDialogCreatorInstance() { | 270 content::JavaScriptDialogCreator* GetJavaScriptDialogCreatorInstance() { |
270 return ChromeJavaScriptDialogCreator::GetInstance(); | 271 return ChromeJavaScriptDialogCreator::GetInstance(); |
271 } | 272 } |
272 | 273 |
273 content::JavaScriptDialogCreator* CreateJavaScriptDialogCreatorInstance( | 274 content::JavaScriptDialogCreator* CreateJavaScriptDialogCreatorInstance( |
274 ExtensionHost* extension_host) { | 275 extensions::ExtensionHost* extension_host) { |
275 return new ChromeJavaScriptDialogCreator(extension_host); | 276 return new ChromeJavaScriptDialogCreator(extension_host); |
276 } | 277 } |
OLD | NEW |