summaryrefslogtreecommitdiffstats
path: root/tests/DumpRenderTree
diff options
context:
space:
mode:
authorJonathan Dixon <joth@google.com>2012-02-28 18:45:06 +0000
committerJonathan Dixon <joth@google.com>2012-03-02 11:17:47 +0000
commit3c90952036a5ff7ddb2946c643f1a0bf1c31d53a (patch)
tree974ef2a94c60a2c72b8fbd804613792480a9c3e5 /tests/DumpRenderTree
parent0dc0da67d9775b2364a38d015e0610492708a02e (diff)
downloadframeworks_base-3c90952036a5ff7ddb2946c643f1a0bf1c31d53a.zip
frameworks_base-3c90952036a5ff7ddb2946c643f1a0bf1c31d53a.tar.gz
frameworks_base-3c90952036a5ff7ddb2946c643f1a0bf1c31d53a.tar.bz2
Refactor WebView to be a thin proxy class
Splits interface and implementation; all client calls are forwarded to an abstract WebViewProvider interface, and the existing implementation moved into the WebViewClassic implementor of this interface. Originally taken from a snapshot from the development branch, by: git diff HEAD 9a4c328a54cc05e5 | git apply - but then rebased to keep up to date with master Interdepends on webkit and Browser changes: https://android-git.corp.google.com/g/158979 https://android-git.corp.google.com/g/167911 Change-Id: I91403f32654ff308934e95c832d17b292a7d9b2e
Diffstat (limited to 'tests/DumpRenderTree')
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java29
1 files changed, 17 insertions, 12 deletions
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java
index 83c9c3d..856ebcc 100644
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java
+++ b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java
@@ -45,8 +45,10 @@ import android.webkit.JsResult;
import android.webkit.SslErrorHandler;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
+import android.webkit.WebSettingsClassic;
import android.webkit.WebStorage;
import android.webkit.WebView;
+import android.webkit.WebViewClassic;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
@@ -112,10 +114,10 @@ public class TestShellActivity extends Activity implements LayoutTestController
case DUMP_AS_TEXT:
callback.arg1 = mDumpTopFrameAsText ? 1 : 0;
callback.arg2 = mDumpChildFramesAsText ? 1 : 0;
- mWebView.documentAsText(callback);
+ mWebViewClassic.documentAsText(callback);
break;
case EXT_REPR:
- mWebView.externalRepresentation(callback);
+ mWebViewClassic.externalRepresentation(callback);
break;
default:
finished();
@@ -144,6 +146,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
CookieManager.setAcceptFileSchemeCookies(true);
mWebView = new WebView(this);
+ mWebViewClassic = WebViewClassic.fromWebView(mWebView);
mEventSender = new WebViewEventSender(mWebView);
mCallbackProxy = new CallbackProxy(mEventSender, this);
@@ -158,7 +161,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
// Expose window.gc function to JavaScript. JSC build exposes
// this function by default, but V8 requires the flag to turn it on.
// WebView::setJsFlags is noop in JSC build.
- mWebView.setJsFlags("--expose_gc");
+ mWebViewClassic.setJsFlags("--expose_gc");
mHandler = new AsyncHandler();
@@ -168,7 +171,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
}
// This is asynchronous, but it gets processed by WebCore before it starts loading pages.
- mWebView.useMockDeviceOrientation();
+ mWebViewClassic.useMockDeviceOrientation();
}
@Override
@@ -290,6 +293,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
super.onDestroy();
mWebView.destroy();
mWebView = null;
+ mWebViewClassic = null;
}
@Override
@@ -531,8 +535,8 @@ public class TestShellActivity extends Activity implements LayoutTestController
public void setMockDeviceOrientation(boolean canProvideAlpha, double alpha,
boolean canProvideBeta, double beta, boolean canProvideGamma, double gamma) {
- mWebView.setMockDeviceOrientation(canProvideAlpha, alpha, canProvideBeta, beta,
- canProvideGamma, gamma);
+ WebViewClassic.fromWebView(mWebView).setMockDeviceOrientation(canProvideAlpha, alpha,
+ canProvideBeta, beta, canProvideGamma, gamma);
}
public void overridePreference(String key, boolean value) {
@@ -541,10 +545,10 @@ public class TestShellActivity extends Activity implements LayoutTestController
// WebView for the main frame. EventSender suffers from the same
// problem.
if (WEBKIT_OFFLINE_WEB_APPLICATION_CACHE_ENABLED.equals(key)) {
- mWebView.getSettings().setAppCacheEnabled(value);
+ mWebViewClassic.getSettings().setAppCacheEnabled(value);
} else if (WEBKIT_USES_PAGE_CACHE_PREFERENCE_KEY.equals(key)) {
// Cache the maximum possible number of pages.
- mWebView.getSettings().setPageCacheCapacity(Integer.MAX_VALUE);
+ mWebViewClassic.getSettings().setPageCacheCapacity(Integer.MAX_VALUE);
} else {
Log.w(LOGTAG, "LayoutTestController.overridePreference(): " +
"Unsupported preference '" + key + "'");
@@ -552,7 +556,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
}
public void setXSSAuditorEnabled (boolean flag) {
- mWebView.getSettings().setXSSAuditorEnabled(flag);
+ mWebViewClassic.getSettings().setXSSAuditorEnabled(flag);
}
private final WebViewClient mViewClient = new WebViewClient(){
@@ -855,7 +859,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
Bitmap bitmap = Bitmap.createBitmap(view.getContentWidth(), view.getContentHeight(),
Config.ARGB_8888);
canvas.setBitmap(bitmap);
- view.drawPage(canvas);
+ WebViewClassic.fromWebView(view).drawPage(canvas);
try {
FileOutputStream fos = new FileOutputStream(fileName);
if(!bitmap.compress(CompressFormat.PNG, 90, fos)) {
@@ -885,11 +889,11 @@ public class TestShellActivity extends Activity implements LayoutTestController
// single event rather than a stream of events (like what would generally happen in
// a real use of touch events in a WebView) and so if the WebView drops the event,
// the test will fail as the test expects one callback for every touch it synthesizes.
- webview.setTouchInterval(-1);
+ WebViewClassic.fromWebView(webview).setTouchInterval(-1);
}
public void setDefaultWebSettings(WebView webview) {
- WebSettings settings = webview.getSettings();
+ WebSettingsClassic settings = WebViewClassic.fromWebView(webview).getSettings();
settings.setAppCacheEnabled(true);
settings.setAppCachePath(getApplicationContext().getCacheDir().getPath());
settings.setAppCacheMaxSize(Long.MAX_VALUE);
@@ -906,6 +910,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
settings.setProperty("use_minimal_memory", "false");
}
+ private WebViewClassic mWebViewClassic;
private WebView mWebView;
private WebViewEventSender mEventSender;
private AsyncHandler mHandler;