Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/layout_test/blink_test_controller.h" | 5 #include "content/shell/browser/layout_test/blink_test_controller.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <iostream> | 9 #include <iostream> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 222 } | 222 } |
| 223 | 223 |
| 224 BlinkTestController::BlinkTestController() | 224 BlinkTestController::BlinkTestController() |
| 225 : main_window_(NULL), | 225 : main_window_(NULL), |
| 226 test_phase_(BETWEEN_TESTS), | 226 test_phase_(BETWEEN_TESTS), |
| 227 is_leak_detection_enabled_( | 227 is_leak_detection_enabled_( |
| 228 base::CommandLine::ForCurrentProcess()->HasSwitch( | 228 base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 229 switches::kEnableLeakDetection)), | 229 switches::kEnableLeakDetection)), |
| 230 crash_when_leak_found_(false), | 230 crash_when_leak_found_(false), |
| 231 devtools_frontend_(NULL), | 231 devtools_frontend_(NULL), |
| 232 inspected_window_(NULL), | |
|
dgozman
2017/03/10 00:17:17
nullptr
| |
| 232 render_process_host_observer_(this) { | 233 render_process_host_observer_(this) { |
| 233 CHECK(!instance_); | 234 CHECK(!instance_); |
| 234 instance_ = this; | 235 instance_ = this; |
| 235 | 236 |
| 236 if (is_leak_detection_enabled_) { | 237 if (is_leak_detection_enabled_) { |
| 237 std::string switchValue = | 238 std::string switchValue = |
| 238 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( | 239 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
| 239 switches::kEnableLeakDetection); | 240 switches::kEnableLeakDetection); |
| 240 crash_when_leak_found_ = switchValue == switches::kCrashOnFailure; | 241 crash_when_leak_found_ = switchValue == switches::kCrashOnFailure; |
| 241 } | 242 } |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 266 bool enable_pixel_dumping, | 267 bool enable_pixel_dumping, |
| 267 const std::string& expected_pixel_hash) { | 268 const std::string& expected_pixel_hash) { |
| 268 DCHECK(CalledOnValidThread()); | 269 DCHECK(CalledOnValidThread()); |
| 269 test_phase_ = DURING_TEST; | 270 test_phase_ = DURING_TEST; |
| 270 current_working_directory_ = current_working_directory; | 271 current_working_directory_ = current_working_directory; |
| 271 enable_pixel_dumping_ = enable_pixel_dumping; | 272 enable_pixel_dumping_ = enable_pixel_dumping; |
| 272 expected_pixel_hash_ = expected_pixel_hash; | 273 expected_pixel_hash_ = expected_pixel_hash; |
| 273 if (test_url.spec().find("/inspector-unit/") == std::string::npos) | 274 if (test_url.spec().find("/inspector-unit/") == std::string::npos) |
| 274 test_url_ = test_url; | 275 test_url_ = test_url; |
| 275 else | 276 else |
| 276 test_url_ = LayoutTestDevToolsFrontend::MapJSTestURL(test_url); | 277 test_url_ = LayoutTestDevToolsFrontend::MapUnitTestURL(test_url); |
| 277 did_send_initial_test_configuration_ = false; | 278 did_send_initial_test_configuration_ = false; |
| 278 printer_->reset(); | 279 printer_->reset(); |
| 279 frame_to_layout_dump_map_.clear(); | 280 frame_to_layout_dump_map_.clear(); |
| 280 render_process_host_observer_.RemoveAll(); | 281 render_process_host_observer_.RemoveAll(); |
| 281 all_observed_render_process_hosts_.clear(); | 282 all_observed_render_process_hosts_.clear(); |
| 282 main_window_render_process_hosts_.clear(); | 283 main_window_render_process_hosts_.clear(); |
| 283 accumulated_layout_test_runtime_flags_changes_.Clear(); | 284 accumulated_layout_test_runtime_flags_changes_.Clear(); |
| 284 layout_test_control_map_.clear(); | 285 layout_test_control_map_.clear(); |
| 285 ShellBrowserContext* browser_context = | 286 ShellBrowserContext* browser_context = |
| 286 ShellContentBrowserClient::Get()->browser_context(); | 287 ShellContentBrowserClient::Get()->browser_context(); |
| 287 is_compositing_test_ = | 288 is_compositing_test_ = |
| 288 test_url_.spec().find("compositing/") != std::string::npos; | 289 test_url_.spec().find("compositing/") != std::string::npos; |
| 289 initial_size_ = Shell::GetShellDefaultSize(); | 290 initial_size_ = Shell::GetShellDefaultSize(); |
| 290 // The W3C SVG layout tests use a different size than the other layout tests. | 291 // The W3C SVG layout tests use a different size than the other layout tests. |
| 291 if (test_url_.spec().find("W3C-SVG-1.1") != std::string::npos) | 292 if (test_url_.spec().find("W3C-SVG-1.1") != std::string::npos) |
| 292 initial_size_ = gfx::Size(kTestSVGWindowWidthDip, kTestSVGWindowHeightDip); | 293 initial_size_ = gfx::Size(kTestSVGWindowWidthDip, kTestSVGWindowHeightDip); |
| 293 if (!main_window_) { | 294 if (test_url_.spec().find("/devtools-js/") != std::string::npos) { |
| 295 if (devtools_frontend_ && inspected_window_) { | |
| 296 inspected_window_->LoadURL(GURL(url::kAboutBlankURL)); | |
|
dgozman
2017/03/10 00:17:17
Did we detach at the end of previous test? It woul
| |
| 297 test_url_ = LayoutTestDevToolsFrontend::MapIntegrationTestURL(test_url); | |
| 298 main_window_->LoadURL(test_url_); | |
| 299 } else { | |
| 300 inspected_window_ = content::Shell::CreateNewWindow( | |
| 301 browser_context, GURL(), NULL, initial_size_); | |
| 302 inspected_window_->LoadURL(GURL(url::kAboutBlankURL)); | |
| 303 devtools_frontend_ = LayoutTestDevToolsFrontend::CreateDevToolsMainWindow( | |
| 304 *inspected_window_, test_url_.spec()); | |
| 305 main_window_ = devtools_frontend_->frontend_shell(); | |
| 306 test_url_ = LayoutTestDevToolsFrontend::MapIntegrationTestURL(test_url); | |
| 307 WebContentsObserver::Observe(main_window_->web_contents()); | |
| 308 current_pid_ = base::kNullProcessId; | |
| 309 default_prefs_ = main_window_->web_contents() | |
| 310 ->GetRenderViewHost() | |
| 311 ->GetWebkitPreferences(); | |
| 312 main_window_->LoadURL(test_url_); | |
| 313 } | |
| 314 } else if (!main_window_) { | |
| 294 main_window_ = content::Shell::CreateNewWindow( | 315 main_window_ = content::Shell::CreateNewWindow( |
| 295 browser_context, | 316 browser_context, |
| 296 GURL(), | 317 GURL(), |
| 297 NULL, | 318 NULL, |
| 298 initial_size_); | 319 initial_size_); |
| 299 WebContentsObserver::Observe(main_window_->web_contents()); | 320 WebContentsObserver::Observe(main_window_->web_contents()); |
| 300 current_pid_ = base::kNullProcessId; | 321 current_pid_ = base::kNullProcessId; |
| 301 default_prefs_ = | 322 default_prefs_ = |
| 302 main_window_->web_contents()->GetRenderViewHost()->GetWebkitPreferences(); | 323 main_window_->web_contents()->GetRenderViewHost()->GetWebkitPreferences(); |
| 303 main_window_->LoadURL(test_url_); | 324 main_window_->LoadURL(test_url_); |
| (...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 876 session_histories, | 897 session_histories, |
| 877 current_entry_indexes)); | 898 current_entry_indexes)); |
| 878 } | 899 } |
| 879 | 900 |
| 880 void BlinkTestController::OnCloseRemainingWindows() { | 901 void BlinkTestController::OnCloseRemainingWindows() { |
| 881 DevToolsAgentHost::DetachAllClients(); | 902 DevToolsAgentHost::DetachAllClients(); |
| 882 std::vector<Shell*> open_windows(Shell::windows()); | 903 std::vector<Shell*> open_windows(Shell::windows()); |
| 883 Shell* devtools_shell = devtools_frontend_ ? | 904 Shell* devtools_shell = devtools_frontend_ ? |
| 884 devtools_frontend_->frontend_shell() : NULL; | 905 devtools_frontend_->frontend_shell() : NULL; |
| 885 for (size_t i = 0; i < open_windows.size(); ++i) { | 906 for (size_t i = 0; i < open_windows.size(); ++i) { |
| 886 if (open_windows[i] != main_window_ && open_windows[i] != devtools_shell) | 907 if (open_windows[i] != main_window_ && open_windows[i] != devtools_shell && |
| 908 open_windows[i] != inspected_window_) | |
| 887 open_windows[i]->Close(); | 909 open_windows[i]->Close(); |
| 888 } | 910 } |
| 889 base::RunLoop().RunUntilIdle(); | 911 base::RunLoop().RunUntilIdle(); |
| 890 } | 912 } |
| 891 | 913 |
| 892 void BlinkTestController::OnResetDone() { | 914 void BlinkTestController::OnResetDone() { |
| 893 if (is_leak_detection_enabled_) { | 915 if (is_leak_detection_enabled_) { |
| 894 if (main_window_ && main_window_->web_contents()) { | 916 if (main_window_ && main_window_->web_contents()) { |
| 895 RenderViewHost* render_view_host = | 917 RenderViewHost* render_view_host = |
| 896 main_window_->web_contents()->GetRenderViewHost(); | 918 main_window_->web_contents()->GetRenderViewHost(); |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 975 } | 997 } |
| 976 DCHECK(layout_test_control_map_[frame].get()); | 998 DCHECK(layout_test_control_map_[frame].get()); |
| 977 return layout_test_control_map_[frame].get(); | 999 return layout_test_control_map_[frame].get(); |
| 978 } | 1000 } |
| 979 | 1001 |
| 980 void BlinkTestController::HandleLayoutTestControlError(RenderFrameHost* frame) { | 1002 void BlinkTestController::HandleLayoutTestControlError(RenderFrameHost* frame) { |
| 981 layout_test_control_map_.erase(frame); | 1003 layout_test_control_map_.erase(frame); |
| 982 } | 1004 } |
| 983 | 1005 |
| 984 } // namespace content | 1006 } // namespace content |
| OLD | NEW |