diff options
author | jochen <jochen@chromium.org> | 2015-07-23 23:40:38 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-24 06:41:23 +0000 |
commit | 904f14ebdc3bdb8e893df0a3211d09de42d5619c (patch) | |
tree | 80df6a22ae7a5762ada15063c4e4f71cfaf5afe3 /content/public/browser | |
parent | a8604cd20009b661384308e4cb6a522eae22968f (diff) | |
download | chromium_src-904f14ebdc3bdb8e893df0a3211d09de42d5619c.zip chromium_src-904f14ebdc3bdb8e893df0a3211d09de42d5619c.tar.gz chromium_src-904f14ebdc3bdb8e893df0a3211d09de42d5619c.tar.bz2 |
Add ExecuteJavaScriptForTest and make all tests use it
Additionally, restrict the URLs that ExecuteJavaScript can be invoked on
to chrome-controlled URLs.
R=jam@chromium.org
BUG=507809
Review URL: https://codereview.chromium.org/1123783002
Cr-Commit-Position: refs/heads/master@{#340231}
Diffstat (limited to 'content/public/browser')
-rw-r--r-- | content/public/browser/render_frame_host.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/content/public/browser/render_frame_host.h b/content/public/browser/render_frame_host.h index 3097ff1..e47441d 100644 --- a/content/public/browser/render_frame_host.h +++ b/content/public/browser/render_frame_host.h @@ -35,6 +35,11 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, // Returns nullptr if the IDs do not correspond to a live RenderFrameHost. static RenderFrameHost* FromID(int render_process_id, int render_frame_id); + // Globally allows for injecting JavaScript into the main world. This feature + // is present only to support Android WebView and must not be used in other + // configurations. + static void AllowInjectingJavaScriptForAndroidWebView(); + ~RenderFrameHost() override {} // Returns the route id for this frame. @@ -74,17 +79,24 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, // Runs some JavaScript in this frame's context. If a callback is provided, it // will be used to return the result, when the result is available. + // This API can only be called on chrome:// or chrome-devtools:// URLs. typedef base::Callback<void(const base::Value*)> JavaScriptResultCallback; virtual void ExecuteJavaScript(const base::string16& javascript) = 0; virtual void ExecuteJavaScript(const base::string16& javascript, const JavaScriptResultCallback& callback) = 0; + + // Runs some JavaScript in an isolated world of top of this frame's context. virtual void ExecuteJavaScriptInIsolatedWorld( const base::string16& javascript, const JavaScriptResultCallback& callback, int world_id) = 0; - // ONLY FOR TESTS: Same as above but adds a fake UserGestureIndicator around - // execution. (crbug.com/408426) + // ONLY FOR TESTS: Same as above but without restrictions. Optionally, adds a + // fake UserGestureIndicator around execution. (crbug.com/408426) + virtual void ExecuteJavaScriptForTests(const base::string16& javascript) = 0; + virtual void ExecuteJavaScriptForTests( + const base::string16& javascript, + const JavaScriptResultCallback& callback) = 0; virtual void ExecuteJavaScriptWithUserGestureForTests( const base::string16& javascript) = 0; |