Loading core/java/android/webkit/BrowserFrame.java +16 −2 Original line number Original line Diff line number Diff line Loading @@ -517,12 +517,21 @@ class BrowserFrame extends Handler { private native String externalRepresentation(); 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. * the message and sends the message. * @param callback the message to use to send the visual text * @param callback the message to use to send the visual text */ */ public void documentAsText(Message callback) { 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(); callback.sendToTarget(); } } Loading @@ -531,6 +540,11 @@ class BrowserFrame extends Handler { */ */ private native String documentAsText(); 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 * This method is called by WebCore to inform the frame that * the Javascript window object has been cleared. * the Javascript window object has been cleared. Loading tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java +9 −0 Original line number Original line Diff line number Diff line Loading @@ -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 LAYOUT_SET_CAN_OPEN_WINDOWS = 42; private static final int SET_GEOLOCATION_PERMISSION = 43; private static final int SET_GEOLOCATION_PERMISSION = 43; private static final int OVERRIDE_PREFERENCE = 44; private static final int OVERRIDE_PREFERENCE = 44; private static final int LAYOUT_DUMP_CHILD_FRAMES_TEXT = 45; CallbackProxy(EventSender eventSender, CallbackProxy(EventSender eventSender, LayoutTestController layoutTestController) { LayoutTestController layoutTestController) { Loading Loading @@ -178,6 +179,10 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon mLayoutTestController.dumpAsText(); mLayoutTestController.dumpAsText(); break; break; case LAYOUT_DUMP_CHILD_FRAMES_TEXT: mLayoutTestController.dumpChildFramesAsText(); break; case LAYOUT_DUMP_HISTORY: case LAYOUT_DUMP_HISTORY: mLayoutTestController.dumpBackForwardList(); mLayoutTestController.dumpBackForwardList(); break; break; Loading Loading @@ -380,6 +385,10 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon obtainMessage(LAYOUT_DUMP_TEXT).sendToTarget(); obtainMessage(LAYOUT_DUMP_TEXT).sendToTarget(); } } public void dumpChildFramesAsText() { obtainMessage(LAYOUT_DUMP_CHILD_FRAMES_TEXT).sendToTarget(); } public void dumpBackForwardList() { public void dumpBackForwardList() { obtainMessage(LAYOUT_DUMP_HISTORY).sendToTarget(); obtainMessage(LAYOUT_DUMP_HISTORY).sendToTarget(); } } Loading tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.dumprendertree; public interface LayoutTestController { public interface LayoutTestController { public void dumpAsText(); public void dumpAsText(); public void dumpChildFramesAsText(); public void waitUntilDone(); public void waitUntilDone(); public void notifyDone(); public void notifyDone(); Loading tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java +16 −0 Original line number Original line Diff line number Diff line Loading @@ -100,6 +100,8 @@ public class TestShellActivity extends Activity implements LayoutTestController Log.v(LOGTAG, "message sent to WebView to dump text."); Log.v(LOGTAG, "message sent to WebView to dump text."); switch (mDumpDataType) { switch (mDumpDataType) { case DUMP_AS_TEXT: case DUMP_AS_TEXT: callback.arg1 = mDumpTopFrameAsText ? 1 : 0; callback.arg2 = mDumpChildFramesAsText ? 1 : 0; mWebView.documentAsText(callback); mWebView.documentAsText(callback); break; break; case EXT_REPR: case EXT_REPR: Loading Loading @@ -341,12 +343,22 @@ public class TestShellActivity extends Activity implements LayoutTestController // LayoutTestController Functions // LayoutTestController Functions public void dumpAsText() { public void dumpAsText() { mDumpDataType = DumpDataType.DUMP_AS_TEXT; mDumpDataType = DumpDataType.DUMP_AS_TEXT; mDumpTopFrameAsText = true; if (mWebView != null) { if (mWebView != null) { String url = mWebView.getUrl(); String url = mWebView.getUrl(); Log.v(LOGTAG, "dumpAsText called: "+url); 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() { public void waitUntilDone() { mWaitUntilDone = true; mWaitUntilDone = true; String url = mWebView.getUrl(); String url = mWebView.getUrl(); Loading Loading @@ -738,6 +750,8 @@ public class TestShellActivity extends Activity implements LayoutTestController private void resetTestStatus() { private void resetTestStatus() { mWaitUntilDone = false; mWaitUntilDone = false; mDumpDataType = mDefaultDumpDataType; mDumpDataType = mDefaultDumpDataType; mDumpTopFrameAsText = false; mDumpChildFramesAsText = false; mTimedOut = false; mTimedOut = false; mDumpTitleChanges = false; mDumpTitleChanges = false; mRequestedWebKitData = false; mRequestedWebKitData = false; Loading Loading @@ -847,6 +861,8 @@ public class TestShellActivity extends Activity implements LayoutTestController // Layout test controller variables. // Layout test controller variables. private DumpDataType mDumpDataType; private DumpDataType mDumpDataType; private DumpDataType mDefaultDumpDataType = DumpDataType.EXT_REPR; private DumpDataType mDefaultDumpDataType = DumpDataType.EXT_REPR; private boolean mDumpTopFrameAsText; private boolean mDumpChildFramesAsText; private boolean mWaitUntilDone; private boolean mWaitUntilDone; private boolean mDumpTitleChanges; private boolean mDumpTitleChanges; private StringBuffer mTitleChanges; private StringBuffer mTitleChanges; Loading Loading
core/java/android/webkit/BrowserFrame.java +16 −2 Original line number Original line Diff line number Diff line Loading @@ -517,12 +517,21 @@ class BrowserFrame extends Handler { private native String externalRepresentation(); 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. * the message and sends the message. * @param callback the message to use to send the visual text * @param callback the message to use to send the visual text */ */ public void documentAsText(Message callback) { 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(); callback.sendToTarget(); } } Loading @@ -531,6 +540,11 @@ class BrowserFrame extends Handler { */ */ private native String documentAsText(); 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 * This method is called by WebCore to inform the frame that * the Javascript window object has been cleared. * the Javascript window object has been cleared. Loading
tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java +9 −0 Original line number Original line Diff line number Diff line Loading @@ -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 LAYOUT_SET_CAN_OPEN_WINDOWS = 42; private static final int SET_GEOLOCATION_PERMISSION = 43; private static final int SET_GEOLOCATION_PERMISSION = 43; private static final int OVERRIDE_PREFERENCE = 44; private static final int OVERRIDE_PREFERENCE = 44; private static final int LAYOUT_DUMP_CHILD_FRAMES_TEXT = 45; CallbackProxy(EventSender eventSender, CallbackProxy(EventSender eventSender, LayoutTestController layoutTestController) { LayoutTestController layoutTestController) { Loading Loading @@ -178,6 +179,10 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon mLayoutTestController.dumpAsText(); mLayoutTestController.dumpAsText(); break; break; case LAYOUT_DUMP_CHILD_FRAMES_TEXT: mLayoutTestController.dumpChildFramesAsText(); break; case LAYOUT_DUMP_HISTORY: case LAYOUT_DUMP_HISTORY: mLayoutTestController.dumpBackForwardList(); mLayoutTestController.dumpBackForwardList(); break; break; Loading Loading @@ -380,6 +385,10 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon obtainMessage(LAYOUT_DUMP_TEXT).sendToTarget(); obtainMessage(LAYOUT_DUMP_TEXT).sendToTarget(); } } public void dumpChildFramesAsText() { obtainMessage(LAYOUT_DUMP_CHILD_FRAMES_TEXT).sendToTarget(); } public void dumpBackForwardList() { public void dumpBackForwardList() { obtainMessage(LAYOUT_DUMP_HISTORY).sendToTarget(); obtainMessage(LAYOUT_DUMP_HISTORY).sendToTarget(); } } Loading
tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.dumprendertree; public interface LayoutTestController { public interface LayoutTestController { public void dumpAsText(); public void dumpAsText(); public void dumpChildFramesAsText(); public void waitUntilDone(); public void waitUntilDone(); public void notifyDone(); public void notifyDone(); Loading
tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java +16 −0 Original line number Original line Diff line number Diff line Loading @@ -100,6 +100,8 @@ public class TestShellActivity extends Activity implements LayoutTestController Log.v(LOGTAG, "message sent to WebView to dump text."); Log.v(LOGTAG, "message sent to WebView to dump text."); switch (mDumpDataType) { switch (mDumpDataType) { case DUMP_AS_TEXT: case DUMP_AS_TEXT: callback.arg1 = mDumpTopFrameAsText ? 1 : 0; callback.arg2 = mDumpChildFramesAsText ? 1 : 0; mWebView.documentAsText(callback); mWebView.documentAsText(callback); break; break; case EXT_REPR: case EXT_REPR: Loading Loading @@ -341,12 +343,22 @@ public class TestShellActivity extends Activity implements LayoutTestController // LayoutTestController Functions // LayoutTestController Functions public void dumpAsText() { public void dumpAsText() { mDumpDataType = DumpDataType.DUMP_AS_TEXT; mDumpDataType = DumpDataType.DUMP_AS_TEXT; mDumpTopFrameAsText = true; if (mWebView != null) { if (mWebView != null) { String url = mWebView.getUrl(); String url = mWebView.getUrl(); Log.v(LOGTAG, "dumpAsText called: "+url); 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() { public void waitUntilDone() { mWaitUntilDone = true; mWaitUntilDone = true; String url = mWebView.getUrl(); String url = mWebView.getUrl(); Loading Loading @@ -738,6 +750,8 @@ public class TestShellActivity extends Activity implements LayoutTestController private void resetTestStatus() { private void resetTestStatus() { mWaitUntilDone = false; mWaitUntilDone = false; mDumpDataType = mDefaultDumpDataType; mDumpDataType = mDefaultDumpDataType; mDumpTopFrameAsText = false; mDumpChildFramesAsText = false; mTimedOut = false; mTimedOut = false; mDumpTitleChanges = false; mDumpTitleChanges = false; mRequestedWebKitData = false; mRequestedWebKitData = false; Loading Loading @@ -847,6 +861,8 @@ public class TestShellActivity extends Activity implements LayoutTestController // Layout test controller variables. // Layout test controller variables. private DumpDataType mDumpDataType; private DumpDataType mDumpDataType; private DumpDataType mDefaultDumpDataType = DumpDataType.EXT_REPR; private DumpDataType mDefaultDumpDataType = DumpDataType.EXT_REPR; private boolean mDumpTopFrameAsText; private boolean mDumpChildFramesAsText; private boolean mWaitUntilDone; private boolean mWaitUntilDone; private boolean mDumpTitleChanges; private boolean mDumpTitleChanges; private StringBuffer mTitleChanges; private StringBuffer mTitleChanges; Loading