summaryrefslogtreecommitdiffstats
path: root/content/public/browser
diff options
context:
space:
mode:
authorjochen <jochen@chromium.org>2015-07-23 23:40:38 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-24 06:41:23 +0000
commit904f14ebdc3bdb8e893df0a3211d09de42d5619c (patch)
tree80df6a22ae7a5762ada15063c4e4f71cfaf5afe3 /content/public/browser
parenta8604cd20009b661384308e4cb6a522eae22968f (diff)
downloadchromium_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.h16
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;