OLD | NEW |
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 "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/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 using content::WorkerServiceObserver; | 49 using content::WorkerServiceObserver; |
50 | 50 |
51 namespace { | 51 namespace { |
52 | 52 |
53 // Used to block until a dev tools client window's browser is closed. | 53 // Used to block until a dev tools client window's browser is closed. |
54 class BrowserClosedObserver : public content::NotificationObserver { | 54 class BrowserClosedObserver : public content::NotificationObserver { |
55 public: | 55 public: |
56 explicit BrowserClosedObserver(Browser* browser) { | 56 explicit BrowserClosedObserver(Browser* browser) { |
57 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED, | 57 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED, |
58 content::Source<Browser>(browser)); | 58 content::Source<Browser>(browser)); |
59 ui_test_utils::RunMessageLoop(); | 59 content::RunMessageLoop(); |
60 } | 60 } |
61 | 61 |
62 virtual void Observe(int type, | 62 virtual void Observe(int type, |
63 const content::NotificationSource& source, | 63 const content::NotificationSource& source, |
64 const content::NotificationDetails& details) { | 64 const content::NotificationDetails& details) { |
65 MessageLoopForUI::current()->Quit(); | 65 MessageLoopForUI::current()->Quit(); |
66 } | 66 } |
67 | 67 |
68 private: | 68 private: |
69 content::NotificationRegistrar registrar_; | 69 content::NotificationRegistrar registrar_; |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 size_t num_before = service->extensions()->size(); | 197 size_t num_before = service->extensions()->size(); |
198 { | 198 { |
199 content::NotificationRegistrar registrar; | 199 content::NotificationRegistrar registrar; |
200 registrar.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, | 200 registrar.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, |
201 content::NotificationService::AllSources()); | 201 content::NotificationService::AllSources()); |
202 base::CancelableClosure timeout( | 202 base::CancelableClosure timeout( |
203 base::Bind(&TimeoutCallback, "Extension load timed out.")); | 203 base::Bind(&TimeoutCallback, "Extension load timed out.")); |
204 MessageLoop::current()->PostDelayedTask( | 204 MessageLoop::current()->PostDelayedTask( |
205 FROM_HERE, timeout.callback(), base::TimeDelta::FromSeconds(4)); | 205 FROM_HERE, timeout.callback(), base::TimeDelta::FromSeconds(4)); |
206 extensions::UnpackedInstaller::Create(service)->Load(path); | 206 extensions::UnpackedInstaller::Create(service)->Load(path); |
207 ui_test_utils::RunMessageLoop(); | 207 content::RunMessageLoop(); |
208 timeout.Cancel(); | 208 timeout.Cancel(); |
209 } | 209 } |
210 size_t num_after = service->extensions()->size(); | 210 size_t num_after = service->extensions()->size(); |
211 if (num_after != (num_before + 1)) | 211 if (num_after != (num_before + 1)) |
212 return false; | 212 return false; |
213 | 213 |
214 return WaitForExtensionViewsToLoad(); | 214 return WaitForExtensionViewsToLoad(); |
215 } | 215 } |
216 | 216 |
217 bool WaitForExtensionViewsToLoad() { | 217 bool WaitForExtensionViewsToLoad() { |
(...skipping 11 matching lines...) Expand all Loading... |
229 | 229 |
230 ExtensionProcessManager* manager = | 230 ExtensionProcessManager* manager = |
231 browser()->profile()->GetExtensionProcessManager(); | 231 browser()->profile()->GetExtensionProcessManager(); |
232 ExtensionProcessManager::ViewSet all_views = manager->GetAllViews(); | 232 ExtensionProcessManager::ViewSet all_views = manager->GetAllViews(); |
233 for (ExtensionProcessManager::ViewSet::const_iterator iter = | 233 for (ExtensionProcessManager::ViewSet::const_iterator iter = |
234 all_views.begin(); | 234 all_views.begin(); |
235 iter != all_views.end();) { | 235 iter != all_views.end();) { |
236 if (!(*iter)->IsLoading()) | 236 if (!(*iter)->IsLoading()) |
237 ++iter; | 237 ++iter; |
238 else | 238 else |
239 ui_test_utils::RunMessageLoop(); | 239 content::RunMessageLoop(); |
240 } | 240 } |
241 | 241 |
242 timeout.Cancel(); | 242 timeout.Cancel(); |
243 return true; | 243 return true; |
244 } | 244 } |
245 | 245 |
246 void Observe(int type, | 246 void Observe(int type, |
247 const content::NotificationSource& source, | 247 const content::NotificationSource& source, |
248 const content::NotificationDetails& details) { | 248 const content::NotificationDetails& details) { |
249 switch (type) { | 249 switch (type) { |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 new WorkerTerminationObserver(worker_data)); | 345 new WorkerTerminationObserver(worker_data)); |
346 return; | 346 return; |
347 } | 347 } |
348 FAIL() << "Failed to terminate worker.\n"; | 348 FAIL() << "Failed to terminate worker.\n"; |
349 } | 349 } |
350 | 350 |
351 static void TerminateWorker(scoped_refptr<WorkerData> worker_data) { | 351 static void TerminateWorker(scoped_refptr<WorkerData> worker_data) { |
352 BrowserThread::PostTask( | 352 BrowserThread::PostTask( |
353 BrowserThread::IO, FROM_HERE, | 353 BrowserThread::IO, FROM_HERE, |
354 base::Bind(&TerminateWorkerOnIOThread, worker_data)); | 354 base::Bind(&TerminateWorkerOnIOThread, worker_data)); |
355 ui_test_utils::RunMessageLoop(); | 355 content::RunMessageLoop(); |
356 } | 356 } |
357 | 357 |
358 static void WaitForFirstSharedWorkerOnIOThread( | 358 static void WaitForFirstSharedWorkerOnIOThread( |
359 scoped_refptr<WorkerData> worker_data) { | 359 scoped_refptr<WorkerData> worker_data) { |
360 std::vector<WorkerService::WorkerInfo> worker_info = | 360 std::vector<WorkerService::WorkerInfo> worker_info = |
361 WorkerService::GetInstance()->GetWorkers(); | 361 WorkerService::GetInstance()->GetWorkers(); |
362 if (!worker_info.empty()) { | 362 if (!worker_info.empty()) { |
363 worker_data->worker_process_id = worker_info[0].process_id; | 363 worker_data->worker_process_id = worker_info[0].process_id; |
364 worker_data->worker_route_id = worker_info[0].route_id; | 364 worker_data->worker_route_id = worker_info[0].route_id; |
365 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 365 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
366 MessageLoop::QuitClosure()); | 366 MessageLoop::QuitClosure()); |
367 return; | 367 return; |
368 } | 368 } |
369 | 369 |
370 WorkerService::GetInstance()->AddObserver( | 370 WorkerService::GetInstance()->AddObserver( |
371 new WorkerCreationObserver(worker_data.get())); | 371 new WorkerCreationObserver(worker_data.get())); |
372 } | 372 } |
373 | 373 |
374 static scoped_refptr<WorkerData> WaitForFirstSharedWorker() { | 374 static scoped_refptr<WorkerData> WaitForFirstSharedWorker() { |
375 scoped_refptr<WorkerData> worker_data(new WorkerData()); | 375 scoped_refptr<WorkerData> worker_data(new WorkerData()); |
376 BrowserThread::PostTask( | 376 BrowserThread::PostTask( |
377 BrowserThread::IO, FROM_HERE, | 377 BrowserThread::IO, FROM_HERE, |
378 base::Bind(&WaitForFirstSharedWorkerOnIOThread, worker_data)); | 378 base::Bind(&WaitForFirstSharedWorkerOnIOThread, worker_data)); |
379 ui_test_utils::RunMessageLoop(); | 379 content::RunMessageLoop(); |
380 return worker_data; | 380 return worker_data; |
381 } | 381 } |
382 | 382 |
383 void OpenDevToolsWindowForSharedWorker(WorkerData* worker_data) { | 383 void OpenDevToolsWindowForSharedWorker(WorkerData* worker_data) { |
384 Profile* profile = browser()->profile(); | 384 Profile* profile = browser()->profile(); |
385 window_ = DevToolsWindow::CreateDevToolsWindowForWorker(profile); | 385 window_ = DevToolsWindow::CreateDevToolsWindowForWorker(profile); |
386 window_->Show(DEVTOOLS_TOGGLE_ACTION_NONE); | 386 window_->Show(DEVTOOLS_TOGGLE_ACTION_NONE); |
387 DevToolsAgentHost* agent_host = | 387 DevToolsAgentHost* agent_host = |
388 DevToolsAgentHostRegistry::GetDevToolsAgentHostForWorker( | 388 DevToolsAgentHostRegistry::GetDevToolsAgentHostForWorker( |
389 worker_data->worker_process_id, | 389 worker_data->worker_process_id, |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
603 content::CONSOLE_MESSAGE_LEVEL_LOG, | 603 content::CONSOLE_MESSAGE_LEVEL_LOG, |
604 "log"); | 604 "log"); |
605 devtools_manager->AddMessageToConsole(agent_host, | 605 devtools_manager->AddMessageToConsole(agent_host, |
606 content::CONSOLE_MESSAGE_LEVEL_ERROR, | 606 content::CONSOLE_MESSAGE_LEVEL_ERROR, |
607 "error"); | 607 "error"); |
608 RunTestFunction(window_, "checkLogAndErrorMessages"); | 608 RunTestFunction(window_, "checkLogAndErrorMessages"); |
609 CloseDevToolsWindow(); | 609 CloseDevToolsWindow(); |
610 } | 610 } |
611 | 611 |
612 } // namespace | 612 } // namespace |
OLD | NEW |