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

Side by Side Diff: content/shell/webkit_test_runner.cc

Issue 11829002: [content shell] add support for dumping frame load callbacks (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/shell/webkit_test_runner.h ('k') | content/shell/webkit_test_runner.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/webkit_test_runner.h" 5 #include "content/shell/webkit_test_runner.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/md5.h" 10 #include "base/md5.h"
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 // Only the expected PNGs for Mac have a valid alpha channel. 148 // Only the expected PNGs for Mac have a valid alpha channel.
149 MakeBitmapOpaque(snapshot); 149 MakeBitmapOpaque(snapshot);
150 #endif 150 #endif
151 151
152 } 152 }
153 153
154 } // namespace 154 } // namespace
155 155
156 WebKitTestRunner::WebKitTestRunner(RenderView* render_view) 156 WebKitTestRunner::WebKitTestRunner(RenderView* render_view)
157 : RenderViewObserver(render_view), 157 : RenderViewObserver(render_view),
158 dump_editing_callbacks_(false) { 158 dump_editing_callbacks_(false),
159 dump_frame_load_callbacks_(false),
160 dump_user_gesture_in_frame_load_callbacks_(false),
161 stop_provisional_frame_loads_(false),
162 dump_title_changes_(false),
163 test_is_running_(true),
164 wait_until_done_(false) {
159 } 165 }
160 166
161 WebKitTestRunner::~WebKitTestRunner() { 167 WebKitTestRunner::~WebKitTestRunner() {
162 } 168 }
163 169
164 // WebTestDelegate ----------------------------------------------------------- 170 // WebTestDelegate -----------------------------------------------------------
165 171
166 void WebKitTestRunner::clearContextMenuData() { 172 void WebKitTestRunner::clearContextMenuData() {
167 last_context_menu_data_.reset(); 173 last_context_menu_data_.reset();
168 } 174 }
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 render_view()->SetWebkitPreferences(prefs); 296 render_view()->SetWebkitPreferences(prefs);
291 Send(new ShellViewHostMsg_OverridePreferences(routing_id(), prefs)); 297 Send(new ShellViewHostMsg_OverridePreferences(routing_id(), prefs));
292 } 298 }
293 299
294 // WebTestRunner ------------------------------------------------------------- 300 // WebTestRunner -------------------------------------------------------------
295 301
296 bool WebKitTestRunner::shouldDumpEditingCallbacks() const { 302 bool WebKitTestRunner::shouldDumpEditingCallbacks() const {
297 return dump_editing_callbacks_; 303 return dump_editing_callbacks_;
298 } 304 }
299 305
306 bool WebKitTestRunner::shouldDumpFrameLoadCallbacks() const {
307 return test_is_running_ && dump_frame_load_callbacks_;
308 }
309
310 bool WebKitTestRunner::shouldDumpUserGestureInFrameLoadCallbacks() const {
311 return test_is_running_ && dump_user_gesture_in_frame_load_callbacks_;
312 }
313
314 bool WebKitTestRunner::stopProvisionalFrameLoads() const {
315 return stop_provisional_frame_loads_;
316 }
317
318 bool WebKitTestRunner::shouldDumpTitleChanges() const {
319 return dump_title_changes_;
320 }
321
300 // RenderViewObserver -------------------------------------------------------- 322 // RenderViewObserver --------------------------------------------------------
301 323
302 void WebKitTestRunner::DidClearWindowObject(WebFrame* frame) { 324 void WebKitTestRunner::DidClearWindowObject(WebFrame* frame) {
303 ShellRenderProcessObserver::GetInstance()->BindTestRunnersToWindow(frame); 325 ShellRenderProcessObserver::GetInstance()->BindTestRunnersToWindow(frame);
304 } 326 }
305 327
306 void WebKitTestRunner::DidFinishLoad(WebFrame* frame) { 328 void WebKitTestRunner::DidFinishLoad(WebFrame* frame) {
307 if (!frame->parent()) 329 if (!frame->parent()) {
330 if (!wait_until_done_)
331 test_is_running_ = false;
308 Send(new ShellViewHostMsg_DidFinishLoad(routing_id())); 332 Send(new ShellViewHostMsg_DidFinishLoad(routing_id()));
333 }
309 } 334 }
310 335
311 void WebKitTestRunner::DidRequestShowContextMenu( 336 void WebKitTestRunner::DidRequestShowContextMenu(
312 WebFrame* frame, 337 WebFrame* frame,
313 const WebContextMenuData& data) { 338 const WebContextMenuData& data) {
314 last_context_menu_data_.reset(new WebContextMenuData(data)); 339 last_context_menu_data_.reset(new WebContextMenuData(data));
315 } 340 }
316 341
317 bool WebKitTestRunner::OnMessageReceived(const IPC::Message& message) { 342 bool WebKitTestRunner::OnMessageReceived(const IPC::Message& message) {
318 bool handled = true; 343 bool handled = true;
(...skipping 17 matching lines...) Expand all
336 PaintInvalidatedRegion(); 361 PaintInvalidatedRegion();
337 DisplayRepaintMask(); 362 DisplayRepaintMask();
338 } 363 }
339 364
340 void WebKitTestRunner::SetXSSAuditorEnabled(bool enabled) { 365 void WebKitTestRunner::SetXSSAuditorEnabled(bool enabled) {
341 prefs_.XSSAuditorEnabled = enabled; 366 prefs_.XSSAuditorEnabled = enabled;
342 applyPreferences(); 367 applyPreferences();
343 } 368 }
344 369
345 void WebKitTestRunner::NotifyDone() { 370 void WebKitTestRunner::NotifyDone() {
371 test_is_running_ = false;
346 Send(new ShellViewHostMsg_NotifyDone(routing_id())); 372 Send(new ShellViewHostMsg_NotifyDone(routing_id()));
347 } 373 }
348 374
349 void WebKitTestRunner::DumpAsText() { 375 void WebKitTestRunner::DumpAsText() {
350 Send(new ShellViewHostMsg_DumpAsText(routing_id())); 376 Send(new ShellViewHostMsg_DumpAsText(routing_id()));
351 } 377 }
352 378
353 void WebKitTestRunner::DumpChildFramesAsText() { 379 void WebKitTestRunner::DumpChildFramesAsText() {
354 Send(new ShellViewHostMsg_DumpChildFramesAsText(routing_id())); 380 Send(new ShellViewHostMsg_DumpChildFramesAsText(routing_id()));
355 } 381 }
356 382
357 void WebKitTestRunner::SetPrinting() { 383 void WebKitTestRunner::SetPrinting() {
358 Send(new ShellViewHostMsg_SetPrinting(routing_id())); 384 Send(new ShellViewHostMsg_SetPrinting(routing_id()));
359 } 385 }
360 386
361 void WebKitTestRunner::SetShouldStayOnPageAfterHandlingBeforeUnload( 387 void WebKitTestRunner::SetShouldStayOnPageAfterHandlingBeforeUnload(
362 bool should_stay_on_page) { 388 bool should_stay_on_page) {
363 Send(new ShellViewHostMsg_SetShouldStayOnPageAfterHandlingBeforeUnload( 389 Send(new ShellViewHostMsg_SetShouldStayOnPageAfterHandlingBeforeUnload(
364 routing_id(), should_stay_on_page)); 390 routing_id(), should_stay_on_page));
365 } 391 }
366 392
367 void WebKitTestRunner::WaitUntilDone() { 393 void WebKitTestRunner::WaitUntilDone() {
394 wait_until_done_ = true;
368 Send(new ShellViewHostMsg_WaitUntilDone(routing_id())); 395 Send(new ShellViewHostMsg_WaitUntilDone(routing_id()));
369 } 396 }
370 397
371 void WebKitTestRunner::CanOpenWindows() { 398 void WebKitTestRunner::CanOpenWindows() {
372 Send(new ShellViewHostMsg_CanOpenWindows(routing_id())); 399 Send(new ShellViewHostMsg_CanOpenWindows(routing_id()));
373 } 400 }
374 401
375 void WebKitTestRunner::ShowWebInspector() { 402 void WebKitTestRunner::ShowWebInspector() {
376 Send(new ShellViewHostMsg_ShowWebInspector(routing_id())); 403 Send(new ShellViewHostMsg_ShowWebInspector(routing_id()));
377 } 404 }
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 std::string message("CONSOLE MESSAGE: Invalid name for preference: "); 471 std::string message("CONSOLE MESSAGE: Invalid name for preference: ");
445 printMessage(message + key + "\n"); 472 printMessage(message + key + "\n");
446 } 473 }
447 applyPreferences(); 474 applyPreferences();
448 } 475 }
449 476
450 void WebKitTestRunner::DumpEditingCallbacks() { 477 void WebKitTestRunner::DumpEditingCallbacks() {
451 dump_editing_callbacks_ = true; 478 dump_editing_callbacks_ = true;
452 } 479 }
453 480
481 void WebKitTestRunner::DumpFrameLoadCallbacks() {
482 dump_frame_load_callbacks_ = true;
483 }
484
485 void WebKitTestRunner::DumpUserGestureInFrameLoadCallbacks() {
486 dump_user_gesture_in_frame_load_callbacks_ = true;
487 }
488
489 void WebKitTestRunner::StopProvisionalFrameLoads() {
490 stop_provisional_frame_loads_ = true;
491 }
492
493 void WebKitTestRunner::DumpTitleChanges() {
494 dump_title_changes_ = true;
495 }
496
454 void WebKitTestRunner::NotImplemented(const std::string& object, 497 void WebKitTestRunner::NotImplemented(const std::string& object,
455 const std::string& method) { 498 const std::string& method) {
456 Send(new ShellViewHostMsg_NotImplemented(routing_id(), object, method)); 499 Send(new ShellViewHostMsg_NotImplemented(routing_id(), object, method));
457 } 500 }
458 501
459 void WebKitTestRunner::Reset() { 502 void WebKitTestRunner::Reset() {
460 prefs_.reset(); 503 prefs_.reset();
461 webkit_glue::WebPreferences prefs = render_view()->GetWebkitPreferences(); 504 webkit_glue::WebPreferences prefs = render_view()->GetWebkitPreferences();
462 ExportLayoutTestSpecificPreferences(prefs_, &prefs); 505 ExportLayoutTestSpecificPreferences(prefs_, &prefs);
463 render_view()->SetWebkitPreferences(prefs); 506 render_view()->SetWebkitPreferences(prefs);
464 dump_editing_callbacks_ = false; 507 dump_editing_callbacks_ = false;
508 dump_frame_load_callbacks_ = false;
509 dump_user_gesture_in_frame_load_callbacks_ = false;
510 stop_provisional_frame_loads_ = false;
511 dump_title_changes_ = false;
512 test_is_running_ = true;
513 wait_until_done_ = false;
465 } 514 }
466 515
467 // Private methods ----------------------------------------------------------- 516 // Private methods -----------------------------------------------------------
468 517
469 void WebKitTestRunner::OnCaptureTextDump(bool as_text, 518 void WebKitTestRunner::OnCaptureTextDump(bool as_text,
470 bool printing, 519 bool printing,
471 bool recursive) { 520 bool recursive) {
472 WebFrame* frame = render_view()->GetWebView()->mainFrame(); 521 WebFrame* frame = render_view()->GetWebView()->mainFrame();
473 std::string dump; 522 std::string dump;
474 if (as_text) { 523 if (as_text) {
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 PaintRect(rect); 633 PaintRect(rect);
585 } 634 }
586 CHECK(proxy_->paintRect().isEmpty()); 635 CHECK(proxy_->paintRect().isEmpty());
587 } 636 }
588 637
589 void WebKitTestRunner::DisplayRepaintMask() { 638 void WebKitTestRunner::DisplayRepaintMask() {
590 GetCanvas()->drawARGB(167, 0, 0, 0); 639 GetCanvas()->drawARGB(167, 0, 0, 0);
591 } 640 }
592 641
593 } // namespace content 642 } // namespace content
OLDNEW
« no previous file with comments | « content/shell/webkit_test_runner.h ('k') | content/shell/webkit_test_runner.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698