| 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/location.h" | 
| 9 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" | 
| 10 #include "base/path_service.h" | 11 #include "base/path_service.h" | 
| 11 #include "base/prefs/pref_service.h" | 12 #include "base/prefs/pref_service.h" | 
|  | 13 #include "base/single_thread_task_runner.h" | 
| 12 #include "base/strings/string_number_conversions.h" | 14 #include "base/strings/string_number_conversions.h" | 
| 13 #include "base/strings/stringprintf.h" | 15 #include "base/strings/stringprintf.h" | 
| 14 #include "base/strings/utf_string_conversions.h" | 16 #include "base/strings/utf_string_conversions.h" | 
| 15 #include "base/test/test_timeouts.h" | 17 #include "base/test/test_timeouts.h" | 
|  | 18 #include "base/thread_task_runner_handle.h" | 
| 16 #include "chrome/browser/chrome_notification_types.h" | 19 #include "chrome/browser/chrome_notification_types.h" | 
| 17 #include "chrome/browser/devtools/device/self_device_provider.h" | 20 #include "chrome/browser/devtools/device/self_device_provider.h" | 
| 18 #include "chrome/browser/devtools/devtools_window_testing.h" | 21 #include "chrome/browser/devtools/devtools_window_testing.h" | 
| 19 #include "chrome/browser/extensions/extension_apitest.h" | 22 #include "chrome/browser/extensions/extension_apitest.h" | 
| 20 #include "chrome/browser/extensions/extension_browsertest.h" | 23 #include "chrome/browser/extensions/extension_browsertest.h" | 
| 21 #include "chrome/browser/extensions/extension_service.h" | 24 #include "chrome/browser/extensions/extension_service.h" | 
| 22 #include "chrome/browser/extensions/unpacked_installer.h" | 25 #include "chrome/browser/extensions/unpacked_installer.h" | 
| 23 #include "chrome/browser/lifetime/application_lifetime.h" | 26 #include "chrome/browser/lifetime/application_lifetime.h" | 
| 24 #include "chrome/browser/profiles/profile.h" | 27 #include "chrome/browser/profiles/profile.h" | 
| 25 #include "chrome/browser/ui/browser.h" | 28 #include "chrome/browser/ui/browser.h" | 
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 322     extensions::ExtensionRegistry* registry = | 325     extensions::ExtensionRegistry* registry = | 
| 323         extensions::ExtensionRegistry::Get(browser()->profile()); | 326         extensions::ExtensionRegistry::Get(browser()->profile()); | 
| 324     size_t num_before = registry->enabled_extensions().size(); | 327     size_t num_before = registry->enabled_extensions().size(); | 
| 325     { | 328     { | 
| 326       content::NotificationRegistrar registrar; | 329       content::NotificationRegistrar registrar; | 
| 327       registrar.Add(this, | 330       registrar.Add(this, | 
| 328                     extensions::NOTIFICATION_EXTENSION_LOADED_DEPRECATED, | 331                     extensions::NOTIFICATION_EXTENSION_LOADED_DEPRECATED, | 
| 329                     content::NotificationService::AllSources()); | 332                     content::NotificationService::AllSources()); | 
| 330       base::CancelableClosure timeout( | 333       base::CancelableClosure timeout( | 
| 331           base::Bind(&TimeoutCallback, "Extension load timed out.")); | 334           base::Bind(&TimeoutCallback, "Extension load timed out.")); | 
| 332       base::MessageLoop::current()->PostDelayedTask( | 335       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 
| 333           FROM_HERE, timeout.callback(), TestTimeouts::action_timeout()); | 336           FROM_HERE, timeout.callback(), TestTimeouts::action_timeout()); | 
| 334       extensions::UnpackedInstaller::Create(service)->Load(path); | 337       extensions::UnpackedInstaller::Create(service)->Load(path); | 
| 335       content::RunMessageLoop(); | 338       content::RunMessageLoop(); | 
| 336       timeout.Cancel(); | 339       timeout.Cancel(); | 
| 337     } | 340     } | 
| 338     size_t num_after = registry->enabled_extensions().size(); | 341     size_t num_after = registry->enabled_extensions().size(); | 
| 339     if (num_after != (num_before + 1)) | 342     if (num_after != (num_before + 1)) | 
| 340       return false; | 343       return false; | 
| 341 | 344 | 
| 342     return WaitForExtensionViewsToLoad(); | 345     return WaitForExtensionViewsToLoad(); | 
| 343   } | 346   } | 
| 344 | 347 | 
| 345   bool WaitForExtensionViewsToLoad() { | 348   bool WaitForExtensionViewsToLoad() { | 
| 346     // Wait for all the extension render views that exist to finish loading. | 349     // Wait for all the extension render views that exist to finish loading. | 
| 347     // NOTE: This assumes that the extension views list is not changing while | 350     // NOTE: This assumes that the extension views list is not changing while | 
| 348     // this method is running. | 351     // this method is running. | 
| 349 | 352 | 
| 350     content::NotificationRegistrar registrar; | 353     content::NotificationRegistrar registrar; | 
| 351     registrar.Add(this, | 354     registrar.Add(this, | 
| 352                   extensions::NOTIFICATION_EXTENSION_HOST_DID_STOP_FIRST_LOAD, | 355                   extensions::NOTIFICATION_EXTENSION_HOST_DID_STOP_FIRST_LOAD, | 
| 353                   content::NotificationService::AllSources()); | 356                   content::NotificationService::AllSources()); | 
| 354     base::CancelableClosure timeout( | 357     base::CancelableClosure timeout( | 
| 355         base::Bind(&TimeoutCallback, "Extension host load timed out.")); | 358         base::Bind(&TimeoutCallback, "Extension host load timed out.")); | 
| 356     base::MessageLoop::current()->PostDelayedTask( | 359     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 
| 357         FROM_HERE, timeout.callback(), TestTimeouts::action_timeout()); | 360         FROM_HERE, timeout.callback(), TestTimeouts::action_timeout()); | 
| 358 | 361 | 
| 359     extensions::ProcessManager* manager = | 362     extensions::ProcessManager* manager = | 
| 360         extensions::ProcessManager::Get(browser()->profile()); | 363         extensions::ProcessManager::Get(browser()->profile()); | 
| 361     extensions::ProcessManager::FrameSet all_frames = manager->GetAllFrames(); | 364     extensions::ProcessManager::FrameSet all_frames = manager->GetAllFrames(); | 
| 362     for (extensions::ProcessManager::FrameSet::const_iterator iter = | 365     for (extensions::ProcessManager::FrameSet::const_iterator iter = | 
| 363              all_frames.begin(); | 366              all_frames.begin(); | 
| 364          iter != all_frames.end();) { | 367          iter != all_frames.end();) { | 
| 365       if (!content::WebContents::FromRenderFrameHost(*iter)->IsLoading()) | 368       if (!content::WebContents::FromRenderFrameHost(*iter)->IsLoading()) | 
| 366         ++iter; | 369         ++iter; | 
| (...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 966   browser()->profile()->GetPrefs()->SetBoolean(prefs::kDevToolsDisabled, true); | 969   browser()->profile()->GetPrefs()->SetBoolean(prefs::kDevToolsDisabled, true); | 
| 967   ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); | 970   ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); | 
| 968   content::WebContents* web_contents = | 971   content::WebContents* web_contents = | 
| 969       browser()->tab_strip_model()->GetWebContentsAt(0); | 972       browser()->tab_strip_model()->GetWebContentsAt(0); | 
| 970   scoped_refptr<content::DevToolsAgentHost> agent( | 973   scoped_refptr<content::DevToolsAgentHost> agent( | 
| 971       content::DevToolsAgentHost::GetOrCreateFor(web_contents)); | 974       content::DevToolsAgentHost::GetOrCreateFor(web_contents)); | 
| 972   DevToolsWindow::OpenDevToolsWindow(web_contents); | 975   DevToolsWindow::OpenDevToolsWindow(web_contents); | 
| 973   DevToolsWindow* window = DevToolsWindow::FindDevToolsWindow(agent.get()); | 976   DevToolsWindow* window = DevToolsWindow::FindDevToolsWindow(agent.get()); | 
| 974   ASSERT_FALSE(window); | 977   ASSERT_FALSE(window); | 
| 975 } | 978 } | 
| OLD | NEW | 
|---|