diff options
author | Steve Block <steveblock@google.com> | 2010-09-22 07:28:29 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-09-22 07:28:29 -0700 |
commit | 70727d1f750b7bf9e583845fc108d936c3fbc64e (patch) | |
tree | 6a18a263a21b2048bf3e8569370778edc437549e /tests/DumpRenderTree2 | |
parent | 33404191eb4ee51251368362be79aea555c5e6c1 (diff) | |
parent | f0c289e24cc2315f5570f5643456ad8191c1216b (diff) | |
download | frameworks_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.java | 23 |
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 |