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 #ifndef CONTENT_PUBLIC_BROWSER_WEB_UI_MESSAGE_HANDLER_H_ | 5 #ifndef CONTENT_PUBLIC_BROWSER_WEB_UI_MESSAGE_HANDLER_H_ |
6 #define CONTENT_PUBLIC_BROWSER_WEB_UI_MESSAGE_HANDLER_H_ | 6 #define CONTENT_PUBLIC_BROWSER_WEB_UI_MESSAGE_HANDLER_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/gtest_prod_util.h" | 10 #include "base/gtest_prod_util.h" |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
81 // the renderer. This is asynchronous; there's no way to get the result | 81 // the renderer. This is asynchronous; there's no way to get the result |
82 // of the call, and should be thought of more like sending a message to | 82 // of the call, and should be thought of more like sending a message to |
83 // the page. | 83 // the page. |
84 // All function names in WebUI must consist of only ASCII characters. | 84 // All function names in WebUI must consist of only ASCII characters. |
85 // These functions will crash if JavaScript is not currently allowed. | 85 // These functions will crash if JavaScript is not currently allowed. |
86 template <typename... Values> | 86 template <typename... Values> |
87 void CallJavascriptFunction(const std::string& function_name, | 87 void CallJavascriptFunction(const std::string& function_name, |
88 const Values&... values) { | 88 const Values&... values) { |
89 CHECK(IsJavascriptAllowed()) << "Cannot CallJavascriptFunction before " | 89 CHECK(IsJavascriptAllowed()) << "Cannot CallJavascriptFunction before " |
90 "explicitly allowing JavaScript."; | 90 "explicitly allowing JavaScript."; |
91 web_ui()->CallJavascriptFunction(function_name, values...); | 91 web_ui()->CallJavascriptFunctionUnsafe(function_name, values...); |
Charlie Reis
2016/05/23 20:26:00
Maybe put a comment here saying that the check abo
tommycli
2016/06/03 17:52:44
Done.
| |
92 } | 92 } |
93 | 93 |
94 // Returns the attached WebUI for this handler. | 94 // Returns the attached WebUI for this handler. |
95 WebUI* web_ui() const { return web_ui_; } | 95 WebUI* web_ui() const { return web_ui_; } |
96 | 96 |
97 // Sets the attached WebUI - exposed to subclasses for testing purposes. | 97 // Sets the attached WebUI - exposed to subclasses for testing purposes. |
98 void set_web_ui(WebUI* web_ui) { web_ui_ = web_ui; } | 98 void set_web_ui(WebUI* web_ui) { web_ui_ = web_ui; } |
99 | 99 |
100 private: | 100 private: |
101 // Provide external classes access to web_ui(), set_web_ui(), and | 101 // Provide external classes access to web_ui(), set_web_ui(), and |
102 // RenderViewReused. | 102 // RenderViewReused. |
103 friend class WebUIImpl; | 103 friend class WebUIImpl; |
104 friend class ::WebUIBrowserTest; | 104 friend class ::WebUIBrowserTest; |
105 | 105 |
106 // Called when a RenderView is reused to display a page (i.e. reload). | 106 // Called when a RenderView is reused to display a page (i.e. reload). |
107 void RenderViewReused(); | 107 void RenderViewReused(); |
108 | 108 |
109 // TODO(dbeam): disallow JavaScript when a renderer process crashes. | 109 // TODO(dbeam): disallow JavaScript when a renderer process crashes. |
110 // http://crbug.com/610450 | 110 // http://crbug.com/610450 |
111 | 111 |
112 // True if the page is for JavaScript calls from this handler. | 112 // True if the page is for JavaScript calls from this handler. |
113 bool javascript_allowed_; | 113 bool javascript_allowed_; |
114 | 114 |
115 WebUI* web_ui_; | 115 WebUI* web_ui_; |
116 }; | 116 }; |
117 | 117 |
118 } // namespace content | 118 } // namespace content |
119 | 119 |
120 #endif // CONTENT_PUBLIC_BROWSER_WEB_UI_MESSAGE_HANDLER_H_ | 120 #endif // CONTENT_PUBLIC_BROWSER_WEB_UI_MESSAGE_HANDLER_H_ |
OLD | NEW |