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

Side by Side Diff: content/shell/browser/webkit_test_controller.cc

Issue 870883008: Test runner: make inspector tests reuse a single inspector process. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: for landing Created 5 years, 10 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
« no previous file with comments | « content/shell/browser/webkit_test_controller.h ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/browser/webkit_test_controller.h" 5 #include "content/shell/browser/webkit_test_controller.h"
6 6
7 #include <iostream> 7 #include <iostream>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 DCHECK(instance_); 198 DCHECK(instance_);
199 return instance_; 199 return instance_;
200 } 200 }
201 201
202 WebKitTestController::WebKitTestController() 202 WebKitTestController::WebKitTestController()
203 : main_window_(NULL), 203 : main_window_(NULL),
204 test_phase_(BETWEEN_TESTS), 204 test_phase_(BETWEEN_TESTS),
205 is_leak_detection_enabled_( 205 is_leak_detection_enabled_(
206 base::CommandLine::ForCurrentProcess()->HasSwitch( 206 base::CommandLine::ForCurrentProcess()->HasSwitch(
207 switches::kEnableLeakDetection)), 207 switches::kEnableLeakDetection)),
208 crash_when_leak_found_(false) { 208 crash_when_leak_found_(false),
209 devtools_frontend_(NULL) {
209 CHECK(!instance_); 210 CHECK(!instance_);
210 instance_ = this; 211 instance_ = this;
211 212
212 if (is_leak_detection_enabled_) { 213 if (is_leak_detection_enabled_) {
213 std::string switchValue = 214 std::string switchValue =
214 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 215 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
215 switches::kEnableLeakDetection); 216 switches::kEnableLeakDetection);
216 crash_when_leak_found_ = switchValue == switches::kCrashOnFailure; 217 crash_when_leak_found_ = switchValue == switches::kCrashOnFailure;
217 } 218 }
218 219
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 base::IntToString(current_pid_) + ")"); 427 base::IntToString(current_pid_) + ")");
427 } else { 428 } else {
428 printer_->AddErrorMessage("#CRASHED - renderer"); 429 printer_->AddErrorMessage("#CRASHED - renderer");
429 } 430 }
430 DiscardMainWindow(); 431 DiscardMainWindow();
431 } 432 }
432 433
433 void WebKitTestController::DevToolsProcessCrashed() { 434 void WebKitTestController::DevToolsProcessCrashed() {
434 DCHECK(CalledOnValidThread()); 435 DCHECK(CalledOnValidThread());
435 printer_->AddErrorMessage("#CRASHED - devtools"); 436 printer_->AddErrorMessage("#CRASHED - devtools");
436 DiscardMainWindow(); 437 if (devtools_frontend_)
438 devtools_frontend_->Close();
439 devtools_frontend_ = NULL;
437 } 440 }
438 441
439 void WebKitTestController::WebContentsDestroyed() { 442 void WebKitTestController::WebContentsDestroyed() {
440 DCHECK(CalledOnValidThread()); 443 DCHECK(CalledOnValidThread());
441 printer_->AddErrorMessage("FAIL: main window was destroyed"); 444 printer_->AddErrorMessage("FAIL: main window was destroyed");
442 DiscardMainWindow(); 445 DiscardMainWindow();
443 } 446 }
444 447
445 void WebKitTestController::Observe(int type, 448 void WebKitTestController::Observe(int type,
446 const NotificationSource& source, 449 const NotificationSource& source,
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 ShellContentBrowserClient::Get()->browser_context(); 582 ShellContentBrowserClient::Get()->browser_context();
580 StoragePartition* storage_partition = 583 StoragePartition* storage_partition =
581 BrowserContext::GetStoragePartition(browser_context, NULL); 584 BrowserContext::GetStoragePartition(browser_context, NULL);
582 storage_partition->GetDOMStorageContext()->DeleteLocalStorage( 585 storage_partition->GetDOMStorageContext()->DeleteLocalStorage(
583 content::LayoutTestDevToolsFrontend::GetDevToolsPathAsURL("", "") 586 content::LayoutTestDevToolsFrontend::GetDevToolsPathAsURL("", "")
584 .GetOrigin()); 587 .GetOrigin());
585 } 588 }
586 589
587 void WebKitTestController::OnShowDevTools(const std::string& settings, 590 void WebKitTestController::OnShowDevTools(const std::string& settings,
588 const std::string& frontend_url) { 591 const std::string& frontend_url) {
589 main_window_->ShowDevToolsForTest(settings, frontend_url); 592 if (!devtools_frontend_) {
593 devtools_frontend_ = LayoutTestDevToolsFrontend::Show(
594 main_window_->web_contents(), settings, frontend_url);
595 } else {
596 devtools_frontend_->ReuseFrontend(
597 main_window_->web_contents(), settings, frontend_url);
598 }
599 devtools_frontend_->Activate();
600 devtools_frontend_->Focus();
590 } 601 }
591 602
592 void WebKitTestController::OnCloseDevTools() { 603 void WebKitTestController::OnCloseDevTools() {
593 main_window_->CloseDevTools(); 604 if (devtools_frontend_)
605 devtools_frontend_->DisconnectFromTarget();
594 } 606 }
595 607
596 void WebKitTestController::OnGoToOffset(int offset) { 608 void WebKitTestController::OnGoToOffset(int offset) {
597 main_window_->GoBackOrForward(offset); 609 main_window_->GoBackOrForward(offset);
598 } 610 }
599 611
600 void WebKitTestController::OnReload() { 612 void WebKitTestController::OnReload() {
601 main_window_->Reload(); 613 main_window_->Reload();
602 } 614 }
603 615
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 658
647 Send(new ShellViewMsg_SessionHistory(render_view_host->GetRoutingID(), 659 Send(new ShellViewMsg_SessionHistory(render_view_host->GetRoutingID(),
648 routing_ids, 660 routing_ids,
649 session_histories, 661 session_histories,
650 current_entry_indexes)); 662 current_entry_indexes));
651 } 663 }
652 664
653 void WebKitTestController::OnCloseRemainingWindows() { 665 void WebKitTestController::OnCloseRemainingWindows() {
654 DevToolsAgentHost::DetachAllClients(); 666 DevToolsAgentHost::DetachAllClients();
655 std::vector<Shell*> open_windows(Shell::windows()); 667 std::vector<Shell*> open_windows(Shell::windows());
668 Shell* devtools_shell = devtools_frontend_ ?
669 devtools_frontend_->frontend_shell() : NULL;
656 for (size_t i = 0; i < open_windows.size(); ++i) { 670 for (size_t i = 0; i < open_windows.size(); ++i) {
657 if (open_windows[i] != main_window_) 671 if (open_windows[i] != main_window_ && open_windows[i] != devtools_shell)
658 open_windows[i]->Close(); 672 open_windows[i]->Close();
659 } 673 }
660 base::MessageLoop::current()->RunUntilIdle(); 674 base::MessageLoop::current()->RunUntilIdle();
661 } 675 }
662 676
663 void WebKitTestController::OnResetDone() { 677 void WebKitTestController::OnResetDone() {
664 if (is_leak_detection_enabled_) { 678 if (is_leak_detection_enabled_) {
665 if (main_window_ && main_window_->web_contents()) { 679 if (main_window_ && main_window_->web_contents()) {
666 RenderViewHost* render_view_host = 680 RenderViewHost* render_view_host =
667 main_window_->web_contents()->GetRenderViewHost(); 681 main_window_->web_contents()->GetRenderViewHost();
(...skipping 17 matching lines...) Expand all
685 699
686 printer_->AddErrorMessage( 700 printer_->AddErrorMessage(
687 base::StringPrintf("#LEAK - renderer pid %d (%s)", current_pid_, 701 base::StringPrintf("#LEAK - renderer pid %d (%s)", current_pid_,
688 result.detail.c_str())); 702 result.detail.c_str()));
689 CHECK(!crash_when_leak_found_); 703 CHECK(!crash_when_leak_found_);
690 704
691 DiscardMainWindow(); 705 DiscardMainWindow();
692 } 706 }
693 707
694 } // namespace content 708 } // namespace content
OLDNEW
« no previous file with comments | « content/shell/browser/webkit_test_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698