summaryrefslogtreecommitdiffstats
path: root/tests/DumpRenderTree2
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-09-22 07:28:29 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-09-22 07:28:29 -0700
commit70727d1f750b7bf9e583845fc108d936c3fbc64e (patch)
tree6a18a263a21b2048bf3e8569370778edc437549e /tests/DumpRenderTree2
parent33404191eb4ee51251368362be79aea555c5e6c1 (diff)
parentf0c289e24cc2315f5570f5643456ad8191c1216b (diff)
downloadframeworks_base-70727d1f750b7bf9e583845fc108d936c3fbc64e.zip
frameworks_base-70727d1f750b7bf9e583845fc108d936c3fbc64e.tar.gz
frameworks_base-70727d1f750b7bf9e583845fc108d936c3fbc64e.tar.bz2
Merge "Fix DumpRenderTree2 to correctly add JavaScript interfaces to new windows"
Diffstat (limited to 'tests/DumpRenderTree2')
-rw-r--r--tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestsExecutor.java23
1 files changed, 19 insertions, 4 deletions
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestsExecutor.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestsExecutor.java
index b9fc274..20687e5 100644
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestsExecutor.java
+++ b/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestsExecutor.java
@@ -236,7 +236,7 @@ public class LayoutTestsExecutor extends Activity {
* We never display the new window, just create the view and allow it's content to
* execute and be recorded by the executor.
*/
- newWindowWebView = new WebView(LayoutTestsExecutor.this);
+ newWindowWebView = createWebViewWithJavascriptInterfaces();
setupWebView(newWindowWebView);
}
@@ -317,7 +317,7 @@ public class LayoutTestsExecutor extends Activity {
mCurrentResult = null;
mCurrentAdditionalTextOutput = null;
- mCurrentWebView = new WebView(this);
+ mCurrentWebView = createWebViewWithJavascriptInterfaces();
setupWebView(mCurrentWebView);
mEventSender.reset(mCurrentWebView);
@@ -329,11 +329,26 @@ public class LayoutTestsExecutor extends Activity {
}
}
+ private static class WebViewWithJavascriptInterfaces extends WebView {
+ public WebViewWithJavascriptInterfaces(
+ Context context, Map<String, Object> javascriptInterfaces) {
+ super(context,
+ null, // attribute set
+ 0, // default style resource ID
+ javascriptInterfaces,
+ false); // is private browsing
+ }
+ }
+ private WebView createWebViewWithJavascriptInterfaces() {
+ Map<String, Object> javascriptInterfaces = new HashMap<String, Object>();
+ javascriptInterfaces.put("layoutTestController", mLayoutTestController);
+ javascriptInterfaces.put("eventSender", mEventSender);
+ return new WebViewWithJavascriptInterfaces(this, javascriptInterfaces);
+ }
+
private void setupWebView(WebView webView) {
webView.setWebViewClient(mWebViewClient);
webView.setWebChromeClient(mWebChromeClient);
- webView.addJavascriptInterface(mLayoutTestController, "layoutTestController");
- webView.addJavascriptInterface(mEventSender, "eventSender");
/**
* Setting a touch interval of -1 effectively disables the optimisation in WebView