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

Side by Side Diff: chrome/browser/debugger/devtools_sanity_unittest.cc

Issue 8549022: Define DevTools content API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 9 years 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/cancelable_callback.h" 6 #include "base/cancelable_callback.h"
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "base/stringprintf.h" 10 #include "base/stringprintf.h"
11 #include "base/test/test_timeouts.h" 11 #include "base/test/test_timeouts.h"
12 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
13 #include "chrome/browser/debugger/devtools_window.h" 13 #include "chrome/browser/debugger/devtools_window.h"
14 #include "chrome/browser/extensions/extension_host.h" 14 #include "chrome/browser/extensions/extension_host.h"
15 #include "chrome/browser/extensions/extension_service.h" 15 #include "chrome/browser/extensions/extension_service.h"
16 #include "chrome/browser/extensions/unpacked_installer.h" 16 #include "chrome/browser/extensions/unpacked_installer.h"
17 #include "chrome/browser/profiles/profile.h" 17 #include "chrome/browser/profiles/profile.h"
18 #include "chrome/browser/ui/browser.h" 18 #include "chrome/browser/ui/browser.h"
19 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 19 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
20 #include "chrome/common/chrome_notification_types.h" 20 #include "chrome/common/chrome_notification_types.h"
21 #include "chrome/common/chrome_paths.h" 21 #include "chrome/common/chrome_paths.h"
22 #include "chrome/test/base/in_process_browser_test.h" 22 #include "chrome/test/base/in_process_browser_test.h"
23 #include "chrome/test/base/ui_test_utils.h" 23 #include "chrome/test/base/ui_test_utils.h"
24 #include "content/browser/debugger/devtools_client_host.h"
25 #include "content/browser/debugger/devtools_manager.h"
26 #include "content/browser/debugger/worker_devtools_manager.h"
27 #include "content/browser/renderer_host/render_view_host.h" 24 #include "content/browser/renderer_host/render_view_host.h"
28 #include "content/browser/tab_contents/tab_contents.h" 25 #include "content/browser/tab_contents/tab_contents.h"
29 #include "content/browser/worker_host/worker_process_host.h" 26 #include "content/browser/worker_host/worker_process_host.h"
30 #include "content/browser/worker_host/worker_service.h" 27 #include "content/browser/worker_host/worker_service.h"
31 #include "content/browser/worker_host/worker_service_observer.h" 28 #include "content/browser/worker_host/worker_service_observer.h"
29 #include "content/public/browser/devtools_agent_host_registry.h"
30 #include "content/public/browser/devtools_client_host.h"
31 #include "content/public/browser/devtools_manager.h"
32 #include "content/public/browser/content_browser_client.h" 32 #include "content/public/browser/content_browser_client.h"
33 #include "content/public/browser/notification_registrar.h" 33 #include "content/public/browser/notification_registrar.h"
34 #include "content/public/browser/notification_service.h" 34 #include "content/public/browser/notification_service.h"
35 #include "net/test/test_server.h" 35 #include "net/test/test_server.h"
36 36
37 using content::BrowserThread; 37 using content::BrowserThread;
38 using content::DevToolsManager;
39 using content::DevToolsAgentHost;
40 using content::DevToolsAgentHostRegistry;
38 41
39 namespace { 42 namespace {
40 43
41 // Used to block until a dev tools client window's browser is closed. 44 // Used to block until a dev tools client window's browser is closed.
42 class BrowserClosedObserver : public content::NotificationObserver { 45 class BrowserClosedObserver : public content::NotificationObserver {
43 public: 46 public:
44 explicit BrowserClosedObserver(Browser* browser) { 47 explicit BrowserClosedObserver(Browser* browser) {
45 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED, 48 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED,
46 content::Source<Browser>(browser)); 49 content::Source<Browser>(browser));
47 ui_test_utils::RunMessageLoop(); 50 ui_test_utils::RunMessageLoop();
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 141
139 TabContents* GetInspectedTab() { 142 TabContents* GetInspectedTab() {
140 return browser()->GetTabContentsAt(0); 143 return browser()->GetTabContentsAt(0);
141 } 144 }
142 145
143 void CloseDevToolsWindow() { 146 void CloseDevToolsWindow() {
144 DevToolsManager* devtools_manager = DevToolsManager::GetInstance(); 147 DevToolsManager* devtools_manager = DevToolsManager::GetInstance();
145 // UnregisterDevToolsClientHostFor may destroy window_ so store the browser 148 // UnregisterDevToolsClientHostFor may destroy window_ so store the browser
146 // first. 149 // first.
147 Browser* browser = window_->browser(); 150 Browser* browser = window_->browser();
148 devtools_manager->UnregisterDevToolsClientHostFor(inspected_rvh_); 151 DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost(
152 inspected_rvh_);
153 devtools_manager->UnregisterDevToolsClientHostFor(agent);
149 154
150 // Wait only when DevToolsWindow has a browser. For docked DevTools, this 155 // Wait only when DevToolsWindow has a browser. For docked DevTools, this
151 // is NULL and we skip the wait. 156 // is NULL and we skip the wait.
152 if (browser) 157 if (browser)
153 BrowserClosedObserver close_observer(browser); 158 BrowserClosedObserver close_observer(browser);
154 } 159 }
155 160
156 DevToolsWindow* window_; 161 DevToolsWindow* window_;
157 RenderViewHost* inspected_rvh_; 162 RenderViewHost* inspected_rvh_;
158 }; 163 };
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 base::Bind(&WaitForFirstSharedWorkerOnIOThread, worker_data)); 385 base::Bind(&WaitForFirstSharedWorkerOnIOThread, worker_data));
381 ui_test_utils::RunMessageLoop(); 386 ui_test_utils::RunMessageLoop();
382 return worker_data; 387 return worker_data;
383 } 388 }
384 389
385 void OpenDevToolsWindowForSharedWorker(WorkerData* worker_data) { 390 void OpenDevToolsWindowForSharedWorker(WorkerData* worker_data) {
386 Profile* profile = browser()->profile(); 391 Profile* profile = browser()->profile();
387 window_ = DevToolsWindow::CreateDevToolsWindowForWorker(profile); 392 window_ = DevToolsWindow::CreateDevToolsWindowForWorker(profile);
388 window_->Show(DEVTOOLS_TOGGLE_ACTION_NONE); 393 window_->Show(DEVTOOLS_TOGGLE_ACTION_NONE);
389 DevToolsAgentHost* agent_host = 394 DevToolsAgentHost* agent_host =
390 WorkerDevToolsManager::GetDevToolsAgentHostForWorker( 395 DevToolsAgentHostRegistry::GetDevToolsAgentHostForWorker(
391 worker_data->worker_process_id, 396 worker_data->worker_process_id,
392 worker_data->worker_route_id); 397 worker_data->worker_route_id);
393 DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor( 398 DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor(
394 agent_host, 399 agent_host,
395 window_); 400 window_->devtools_client_host());
396 RenderViewHost* client_rvh = window_->GetRenderViewHost(); 401 RenderViewHost* client_rvh = window_->GetRenderViewHost();
397 TabContents* client_contents = client_rvh->delegate()->GetAsTabContents(); 402 TabContents* client_contents = client_rvh->delegate()->GetAsTabContents();
398 if (client_contents->IsLoading()) { 403 if (client_contents->IsLoading()) {
399 ui_test_utils::WindowedNotificationObserver observer( 404 ui_test_utils::WindowedNotificationObserver observer(
400 content::NOTIFICATION_LOAD_STOP, 405 content::NOTIFICATION_LOAD_STOP,
401 content::Source<NavigationController>( 406 content::Source<NavigationController>(
402 &client_contents->controller())); 407 &client_contents->controller()));
403 observer.Wait(); 408 observer.Wait();
404 } 409 }
405 } 410 }
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 555
551 // Reload page to restart the worker. 556 // Reload page to restart the worker.
552 ui_test_utils::NavigateToURL(browser(), url); 557 ui_test_utils::NavigateToURL(browser(), url);
553 558
554 // Wait until worker script is paused on the debugger statement. 559 // Wait until worker script is paused on the debugger statement.
555 RunTestFuntion(window_, "testPauseInSharedWorkerInitialization"); 560 RunTestFuntion(window_, "testPauseInSharedWorkerInitialization");
556 CloseDevToolsWindow(); 561 CloseDevToolsWindow();
557 } 562 }
558 563
559 } // namespace 564 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698