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

Side by Side Diff: content/shell/renderer/test_runner/web_test_proxy.cc

Issue 302043002: Add testRunner callbacks for better handling of view-source frames (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/shell/renderer/test_runner/test_runner.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/shell/renderer/test_runner/web_test_proxy.h" 5 #include "content/shell/renderer/test_runner/web_test_proxy.h"
6 6
7 #include <cctype> 7 #include <cctype>
8 8
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 case blink::WebNavigationTypeReload: 198 case blink::WebNavigationTypeReload:
199 return kReloadString; 199 return kReloadString;
200 case blink::WebNavigationTypeFormResubmitted: 200 case blink::WebNavigationTypeFormResubmitted:
201 return kFormResubmittedString; 201 return kFormResubmittedString;
202 case blink::WebNavigationTypeOther: 202 case blink::WebNavigationTypeOther:
203 return kOtherString; 203 return kOtherString;
204 } 204 }
205 return kIllegalString; 205 return kIllegalString;
206 } 206 }
207 207
208 std::string DumpFrameHeaderIfNeeded(blink::WebFrame* frame) {
209 std::string result;
210
211 // Add header for all but the main frame. Skip empty frames.
212 if (frame->parent() && !frame->document().documentElement().isNull()) {
213 result.append("\n--------\nFrame: '");
214 result.append(frame->uniqueName().utf8().data());
215 result.append("'\n--------\n");
216 }
217
218 return result;
219 }
220
221 std::string DumpFramesAsMarkup(blink::WebFrame* frame, bool recursive) {
222 std::string result = DumpFrameHeaderIfNeeded(frame);
223 result.append(frame->contentAsMarkup().utf8());
224 result.append("\n");
225
226 if (recursive) {
227 for (blink::WebFrame* child = frame->firstChild(); child;
228 child = child->nextSibling())
229 result.append(DumpFramesAsMarkup(child, recursive));
230 }
231
232 return result;
233 }
234
208 std::string DumpDocumentText(blink::WebFrame* frame) { 235 std::string DumpDocumentText(blink::WebFrame* frame) {
209 // We use the document element's text instead of the body text here because 236 // We use the document element's text instead of the body text here because
210 // not all documents have a body, such as XML documents. 237 // not all documents have a body, such as XML documents.
211 blink::WebElement document_element = frame->document().documentElement(); 238 blink::WebElement document_element = frame->document().documentElement();
212 if (document_element.isNull()) 239 if (document_element.isNull())
213 return std::string(); 240 return std::string();
214 return document_element.innerText().utf8(); 241 return document_element.innerText().utf8();
215 } 242 }
216 243
217 std::string DumpFramesAsText(blink::WebFrame* frame, bool recursive) { 244 std::string DumpFramesAsText(blink::WebFrame* frame, bool recursive) {
218 std::string result; 245 std::string result = DumpFrameHeaderIfNeeded(frame);
219
220 // Add header for all but the main frame. Skip empty frames.
221 if (frame->parent() && !frame->document().documentElement().isNull()) {
222 result.append("\n--------\nFrame: '");
223 result.append(frame->uniqueName().utf8().data());
224 result.append("'\n--------\n");
225 }
226
227 result.append(DumpDocumentText(frame)); 246 result.append(DumpDocumentText(frame));
228 result.append("\n"); 247 result.append("\n");
229 248
230 if (recursive) { 249 if (recursive) {
231 for (blink::WebFrame* child = frame->firstChild(); child; 250 for (blink::WebFrame* child = frame->firstChild(); child;
232 child = child->nextSibling()) 251 child = child->nextSibling())
233 result.append(DumpFramesAsText(child, recursive)); 252 result.append(DumpFramesAsText(child, recursive));
234 } 253 }
235 254
236 return result; 255 return result;
237 } 256 }
238 257
239 std::string DumpFramesAsPrintedText(blink::WebFrame* frame, bool recursive) { 258 std::string DumpFramesAsPrintedText(blink::WebFrame* frame, bool recursive) {
240 std::string result;
241
242 // Cannot do printed format for anything other than HTML 259 // Cannot do printed format for anything other than HTML
243 if (!frame->document().isHTMLDocument()) 260 if (!frame->document().isHTMLDocument())
244 return std::string(); 261 return std::string();
245 262
246 // Add header for all but the main frame. Skip empty frames. 263 std::string result = DumpFrameHeaderIfNeeded(frame);
247 if (frame->parent() && !frame->document().documentElement().isNull()) {
248 result.append("\n--------\nFrame: '");
249 result.append(frame->uniqueName().utf8().data());
250 result.append("'\n--------\n");
251 }
252
253 result.append( 264 result.append(
254 frame->renderTreeAsText(blink::WebFrame::RenderAsTextPrinting).utf8()); 265 frame->renderTreeAsText(blink::WebFrame::RenderAsTextPrinting).utf8());
255 result.append("\n"); 266 result.append("\n");
256 267
257 if (recursive) { 268 if (recursive) {
258 for (blink::WebFrame* child = frame->firstChild(); child; 269 for (blink::WebFrame* child = frame->firstChild(); child;
259 child = child->nextSibling()) 270 child = child->nextSibling())
260 result.append(DumpFramesAsPrintedText(child, recursive)); 271 result.append(DumpFramesAsPrintedText(child, recursive));
261 } 272 }
262 273
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 test_interfaces_->testRunner()->shouldDumpAsMarkup(); 386 test_interfaces_->testRunner()->shouldDumpAsMarkup();
376 bool should_dump_as_printed = test_interfaces_->testRunner()->isPrinting(); 387 bool should_dump_as_printed = test_interfaces_->testRunner()->isPrinting();
377 blink::WebFrame* frame = GetWebView()->mainFrame(); 388 blink::WebFrame* frame = GetWebView()->mainFrame();
378 std::string data_utf8; 389 std::string data_utf8;
379 if (should_dump_custom_text) { 390 if (should_dump_custom_text) {
380 // Append a newline for the test driver. 391 // Append a newline for the test driver.
381 data_utf8 = test_interfaces_->testRunner()->customDumpText() + "\n"; 392 data_utf8 = test_interfaces_->testRunner()->customDumpText() + "\n";
382 } else if (should_dump_as_text) { 393 } else if (should_dump_as_text) {
383 bool recursive = 394 bool recursive =
384 test_interfaces_->testRunner()->shouldDumpChildFramesAsText(); 395 test_interfaces_->testRunner()->shouldDumpChildFramesAsText();
385 data_utf8 = should_dump_as_printed 396 data_utf8 = should_dump_as_printed ?
386 ? DumpFramesAsPrintedText(frame, recursive) 397 DumpFramesAsPrintedText(frame, recursive) :
387 : DumpFramesAsText(frame, recursive); 398 DumpFramesAsText(frame, recursive);
388 } else if (should_dump_as_markup) { 399 } else if (should_dump_as_markup) {
400 bool recursive =
401 test_interfaces_->testRunner()->shouldDumpChildFramesAsMarkup();
389 // Append a newline for the test driver. 402 // Append a newline for the test driver.
390 data_utf8 = frame->contentAsMarkup().utf8() + "\n"; 403 data_utf8 = DumpFramesAsMarkup(frame, recursive);
391 } else { 404 } else {
392 bool recursive = 405 bool recursive =
393 test_interfaces_->testRunner()->shouldDumpChildFrameScrollPositions(); 406 test_interfaces_->testRunner()->shouldDumpChildFrameScrollPositions();
394 blink::WebFrame::RenderAsTextControls render_text_behavior = 407 blink::WebFrame::RenderAsTextControls render_text_behavior =
395 blink::WebFrame::RenderAsTextNormal; 408 blink::WebFrame::RenderAsTextNormal;
396 if (should_dump_as_printed) 409 if (should_dump_as_printed)
397 render_text_behavior |= blink::WebFrame::RenderAsTextPrinting; 410 render_text_behavior |= blink::WebFrame::RenderAsTextPrinting;
398 if (debug_render_tree) 411 if (debug_render_tree)
399 render_text_behavior |= blink::WebFrame::RenderAsTextDebug; 412 render_text_behavior |= blink::WebFrame::RenderAsTextDebug;
400 data_utf8 = frame->renderTreeAsText(render_text_behavior).utf8(); 413 data_utf8 = frame->renderTreeAsText(render_text_behavior).utf8();
(...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after
1195 // to cancel the input method's ongoing composition session. 1208 // to cancel the input method's ongoing composition session.
1196 if (web_widget_) 1209 if (web_widget_)
1197 web_widget_->confirmComposition(); 1210 web_widget_->confirmComposition();
1198 } 1211 }
1199 1212
1200 blink::WebString WebTestProxyBase::acceptLanguages() { 1213 blink::WebString WebTestProxyBase::acceptLanguages() {
1201 return blink::WebString::fromUTF8(accept_languages_); 1214 return blink::WebString::fromUTF8(accept_languages_);
1202 } 1215 }
1203 1216
1204 } // namespace content 1217 } // namespace content
OLDNEW
« no previous file with comments | « content/shell/renderer/test_runner/test_runner.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698