diff options
author | Shimeng (Simon) Wang <swang@google.com> | 2010-06-16 17:32:24 -0700 |
---|---|---|
committer | Shimeng (Simon) Wang <swang@google.com> | 2010-06-21 10:05:34 -0700 |
commit | ad45686d727c8c9a602ba0534d3b052fdaf6c8d6 (patch) | |
tree | 5eb3de7326f8340c0d955d7a7144dc25090d06f9 | |
parent | 535c17a747adbf4540c47af599427ed705e609ef (diff) | |
download | frameworks_base-ad45686d727c8c9a602ba0534d3b052fdaf6c8d6.zip frameworks_base-ad45686d727c8c9a602ba0534d3b052fdaf6c8d6.tar.gz frameworks_base-ad45686d727c8c9a602ba0534d3b052fdaf6c8d6.tar.bz2 |
Add dumpChildFramesAsText function support in LayoutTestController.
Change-Id: I8af0bbca1d2166a25486d5a12fb6a985bbe264ef
4 files changed, 42 insertions, 2 deletions
diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java index 7bdefd0..7b1aab2 100644 --- a/core/java/android/webkit/BrowserFrame.java +++ b/core/java/android/webkit/BrowserFrame.java @@ -517,12 +517,21 @@ class BrowserFrame extends Handler { private native String externalRepresentation(); /** - * Retrieves the visual text of the current frame, puts it as the object for + * Retrieves the visual text of the frames, puts it as the object for * the message and sends the message. * @param callback the message to use to send the visual text */ public void documentAsText(Message callback) { - callback.obj = documentAsText();; + StringBuilder text = new StringBuilder(); + if (callback.arg1 != 0) { + // Dump top frame as text. + text.append(documentAsText()); + } + if (callback.arg2 != 0) { + // Dump child frames as text. + text.append(childFramesAsText()); + } + callback.obj = text.toString(); callback.sendToTarget(); } @@ -531,6 +540,11 @@ class BrowserFrame extends Handler { */ private native String documentAsText(); + /** + * Return the text drawn on the child frames as a string + */ + private native String childFramesAsText(); + /* * This method is called by WebCore to inform the frame that * the Javascript window object has been cleared. diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java b/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java index 5780c43..f0c1054 100644 --- a/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java +++ b/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java @@ -74,6 +74,7 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon private static final int LAYOUT_SET_CAN_OPEN_WINDOWS = 42; private static final int SET_GEOLOCATION_PERMISSION = 43; private static final int OVERRIDE_PREFERENCE = 44; + private static final int LAYOUT_DUMP_CHILD_FRAMES_TEXT = 45; CallbackProxy(EventSender eventSender, LayoutTestController layoutTestController) { @@ -178,6 +179,10 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon mLayoutTestController.dumpAsText(); break; + case LAYOUT_DUMP_CHILD_FRAMES_TEXT: + mLayoutTestController.dumpChildFramesAsText(); + break; + case LAYOUT_DUMP_HISTORY: mLayoutTestController.dumpBackForwardList(); break; @@ -380,6 +385,10 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon obtainMessage(LAYOUT_DUMP_TEXT).sendToTarget(); } + public void dumpChildFramesAsText() { + obtainMessage(LAYOUT_DUMP_CHILD_FRAMES_TEXT).sendToTarget(); + } + public void dumpBackForwardList() { obtainMessage(LAYOUT_DUMP_HISTORY).sendToTarget(); } diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java index 9236345..57ae487 100644 --- a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java +++ b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java @@ -19,6 +19,7 @@ package com.android.dumprendertree; public interface LayoutTestController { public void dumpAsText(); + public void dumpChildFramesAsText(); public void waitUntilDone(); public void notifyDone(); diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java index e6f7a27..d805b8a 100644 --- a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java +++ b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java @@ -100,6 +100,8 @@ public class TestShellActivity extends Activity implements LayoutTestController Log.v(LOGTAG, "message sent to WebView to dump text."); switch (mDumpDataType) { case DUMP_AS_TEXT: + callback.arg1 = mDumpTopFrameAsText ? 1 : 0; + callback.arg2 = mDumpChildFramesAsText ? 1 : 0; mWebView.documentAsText(callback); break; case EXT_REPR: @@ -341,12 +343,22 @@ public class TestShellActivity extends Activity implements LayoutTestController // LayoutTestController Functions public void dumpAsText() { mDumpDataType = DumpDataType.DUMP_AS_TEXT; + mDumpTopFrameAsText = true; if (mWebView != null) { String url = mWebView.getUrl(); Log.v(LOGTAG, "dumpAsText called: "+url); } } + public void dumpChildFramesAsText() { + mDumpDataType = DumpDataType.DUMP_AS_TEXT; + mDumpChildFramesAsText = true; + if (mWebView != null) { + String url = mWebView.getUrl(); + Log.v(LOGTAG, "dumpChildFramesAsText called: "+url); + } + } + public void waitUntilDone() { mWaitUntilDone = true; String url = mWebView.getUrl(); @@ -738,6 +750,8 @@ public class TestShellActivity extends Activity implements LayoutTestController private void resetTestStatus() { mWaitUntilDone = false; mDumpDataType = mDefaultDumpDataType; + mDumpTopFrameAsText = false; + mDumpChildFramesAsText = false; mTimedOut = false; mDumpTitleChanges = false; mRequestedWebKitData = false; @@ -847,6 +861,8 @@ public class TestShellActivity extends Activity implements LayoutTestController // Layout test controller variables. private DumpDataType mDumpDataType; private DumpDataType mDefaultDumpDataType = DumpDataType.EXT_REPR; + private boolean mDumpTopFrameAsText; + private boolean mDumpChildFramesAsText; private boolean mWaitUntilDone; private boolean mDumpTitleChanges; private StringBuffer mTitleChanges; |