Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Unified Diff: components/test_runner/web_test_proxy.cc

Issue 1589643003: OOPIF support for testRunner.dumpAsText and similar layout dumps. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebasing... Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/test_runner/web_test_proxy.h ('k') | components/test_runner/web_test_runner.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/test_runner/web_test_proxy.cc
diff --git a/components/test_runner/web_test_proxy.cc b/components/test_runner/web_test_proxy.cc
index 76fa57052f5a7315482ac1cbdb4458b716291ac3..2de0450181911acd596e016272e66b6659548af8 100644
--- a/components/test_runner/web_test_proxy.cc
+++ b/components/test_runner/web_test_proxy.cc
@@ -21,6 +21,7 @@
#include "base/trace_event/trace_event.h"
#include "components/test_runner/accessibility_controller.h"
#include "components/test_runner/event_sender.h"
+#include "components/test_runner/layout_dump.h"
#include "components/test_runner/mock_color_chooser.h"
#include "components/test_runner/mock_credential_manager_client.h"
#include "components/test_runner/mock_screen_orientation_client.h"
@@ -289,90 +290,20 @@ const char* WebNavigationPolicyToString(blink::WebNavigationPolicy policy) {
}
}
-std::string DumpFrameHeaderIfNeeded(blink::WebFrame* frame) {
- std::string result;
-
- // Add header for all but the main frame. Skip empty frames.
- if (frame->parent() && !frame->document().documentElement().isNull()) {
- result.append("\n--------\nFrame: '");
- result.append(frame->uniqueName().utf8().data());
- result.append("'\n--------\n");
- }
-
- return result;
-}
-
-std::string DumpFramesAsMarkup(blink::WebFrame* frame, bool recursive) {
- std::string result = DumpFrameHeaderIfNeeded(frame);
- result.append(frame->contentAsMarkup().utf8());
- result.append("\n");
-
- if (recursive) {
- for (blink::WebFrame* child = frame->firstChild(); child;
- child = child->nextSibling())
- result.append(DumpFramesAsMarkup(child, recursive));
- }
-
- return result;
-}
-
-std::string DumpDocumentText(blink::WebFrame* frame) {
- return frame->document().contentAsTextForTesting().utf8();
-}
-
-std::string DumpFramesAsText(blink::WebFrame* frame, bool recursive) {
- std::string result = DumpFrameHeaderIfNeeded(frame);
- result.append(DumpDocumentText(frame));
- result.append("\n");
-
- if (recursive) {
- for (blink::WebFrame* child = frame->firstChild(); child;
- child = child->nextSibling())
- result.append(DumpFramesAsText(child, recursive));
- }
-
- return result;
-}
-
-std::string DumpFramesAsPrintedText(blink::WebFrame* frame, bool recursive) {
- // Cannot do printed format for anything other than HTML
- if (!frame->document().isHTMLDocument())
- return std::string();
-
- std::string result = DumpFrameHeaderIfNeeded(frame);
- result.append(
- frame->layoutTreeAsText(blink::WebFrame::LayoutAsTextPrinting).utf8());
- result.append("\n");
+std::string DumpDeepLayout(blink::WebFrame* frame,
+ LayoutDumpFlags flags,
+ bool recursive) {
+ std::string result = DumpLayout(frame->toWebLocalFrame(), flags);
if (recursive) {
for (blink::WebFrame* child = frame->firstChild(); child;
child = child->nextSibling())
- result.append(DumpFramesAsPrintedText(child, recursive));
+ result.append(DumpDeepLayout(child, flags, recursive));
}
return result;
}
-std::string DumpFrameScrollPosition(blink::WebFrame* frame, bool recursive) {
- std::string result;
- blink::WebSize offset = frame->scrollOffset();
- if (offset.width > 0 || offset.height > 0) {
- if (frame->parent()) {
- result =
- std::string("frame '") + frame->uniqueName().utf8().data() + "' ";
- }
- base::StringAppendF(
- &result, "scrolled to %d,%d\n", offset.width, offset.height);
- }
-
- if (!recursive)
- return result;
- for (blink::WebFrame* child = frame->firstChild(); child;
- child = child->nextSibling())
- result += DumpFrameScrollPosition(child, recursive);
- return result;
-}
-
std::string DumpAllBackForwardLists(TestInterfaces* interfaces,
WebTestDelegate* delegate) {
std::string result;
@@ -488,50 +419,27 @@ void WebTestProxyBase::ShowValidationMessage(
std::string WebTestProxyBase::CaptureTree(
bool debug_render_tree,
bool dump_line_box_trees) {
- bool should_dump_custom_text =
- test_interfaces_->GetTestRunner()->shouldDumpAsCustomText();
- bool should_dump_as_text =
- test_interfaces_->GetTestRunner()->shouldDumpAsText();
- bool should_dump_as_markup =
- test_interfaces_->GetTestRunner()->shouldDumpAsMarkup();
- bool should_dump_as_printed = test_interfaces_->GetTestRunner()->isPrinting();
+ TestRunner* test_runner = test_interfaces_->GetTestRunner();
blink::WebFrame* frame = GetWebView()->mainFrame();
std::string data_utf8;
- if (should_dump_custom_text) {
+ if (test_runner->shouldDumpAsCustomText()) {
// Append a newline for the test driver.
data_utf8 = test_interfaces_->GetTestRunner()->customDumpText() + "\n";
- } else if (should_dump_as_text) {
- bool recursive =
- test_interfaces_->GetTestRunner()->shouldDumpChildFramesAsText();
- data_utf8 = should_dump_as_printed ?
- DumpFramesAsPrintedText(frame, recursive) :
- DumpFramesAsText(frame, recursive);
- } else if (should_dump_as_markup) {
- bool recursive =
- test_interfaces_->GetTestRunner()->shouldDumpChildFramesAsMarkup();
- // Append a newline for the test driver.
- data_utf8 = DumpFramesAsMarkup(frame, recursive);
} else {
- bool recursive = test_interfaces_->GetTestRunner()
- ->shouldDumpChildFrameScrollPositions();
- blink::WebFrame::LayoutAsTextControls layout_text_behavior =
- blink::WebFrame::LayoutAsTextNormal;
- if (should_dump_as_printed)
- layout_text_behavior |= blink::WebFrame::LayoutAsTextPrinting;
- if (debug_render_tree)
- layout_text_behavior |= blink::WebFrame::LayoutAsTextDebug;
- if (dump_line_box_trees)
- layout_text_behavior |= blink::WebFrame::LayoutAsTextWithLineTrees;
- data_utf8 = frame->layoutTreeAsText(layout_text_behavior).utf8();
- data_utf8 += DumpFrameScrollPosition(frame, recursive);
+ LayoutDumpFlags flags = test_runner->GetLayoutDumpFlags();
+ data_utf8 = DumpDeepLayout(frame, flags, flags.dump_child_frames);
}
if (test_interfaces_->GetTestRunner()->ShouldDumpBackForwardList())
- data_utf8 += DumpAllBackForwardLists(test_interfaces_, delegate_);
+ data_utf8 += DumpBackForwardLists();
return data_utf8;
}
+std::string WebTestProxyBase::DumpBackForwardLists() {
+ return DumpAllBackForwardLists(test_interfaces_, delegate_);
+}
+
void WebTestProxyBase::DrawSelectionRect(SkCanvas* canvas) {
// See if we need to draw the selection bounds rect. Selection bounds
// rect is the rect enclosing the (possibly transformed) selection.
« no previous file with comments | « components/test_runner/web_test_proxy.h ('k') | components/test_runner/web_test_runner.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698