Index: chrome/browser/debugger/devtools_sanity_browsertest.cc |
diff --git a/chrome/browser/debugger/devtools_sanity_browsertest.cc b/chrome/browser/debugger/devtools_sanity_browsertest.cc |
deleted file mode 100644 |
index 4266e6624b8d8868b73962bff497db34195c4ac8..0000000000000000000000000000000000000000 |
--- a/chrome/browser/debugger/devtools_sanity_browsertest.cc |
+++ /dev/null |
@@ -1,600 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "base/bind.h" |
-#include "base/cancelable_callback.h" |
-#include "base/command_line.h" |
-#include "base/compiler_specific.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/path_service.h" |
-#include "base/stringprintf.h" |
-#include "base/test/test_timeouts.h" |
-#include "base/utf_string_conversions.h" |
-#include "chrome/browser/debugger/devtools_window.h" |
-#include "chrome/browser/extensions/extension_service.h" |
-#include "chrome/browser/extensions/extension_system.h" |
-#include "chrome/browser/extensions/unpacked_installer.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/ui/browser.h" |
-#include "chrome/browser/ui/browser_commands.h" |
-#include "chrome/browser/ui/browser_tabstrip.h" |
-#include "chrome/browser/ui/tabs/tab_strip_model.h" |
-#include "chrome/common/chrome_notification_types.h" |
-#include "chrome/common/chrome_paths.h" |
-#include "chrome/common/chrome_switches.h" |
-#include "chrome/test/base/in_process_browser_test.h" |
-#include "chrome/test/base/ui_test_utils.h" |
-#include "content/public/browser/child_process_data.h" |
-#include "content/public/browser/content_browser_client.h" |
-#include "content/public/browser/devtools_agent_host_registry.h" |
-#include "content/public/browser/devtools_client_host.h" |
-#include "content/public/browser/devtools_manager.h" |
-#include "content/public/browser/notification_registrar.h" |
-#include "content/public/browser/notification_service.h" |
-#include "content/public/browser/render_view_host.h" |
-#include "content/public/browser/web_contents.h" |
-#include "content/public/browser/worker_service.h" |
-#include "content/public/browser/worker_service_observer.h" |
-#include "content/public/test/browser_test_utils.h" |
-#include "net/test/test_server.h" |
- |
-using content::BrowserThread; |
-using content::DevToolsManager; |
-using content::DevToolsAgentHost; |
-using content::DevToolsAgentHostRegistry; |
-using content::NavigationController; |
-using content::RenderViewHost; |
-using content::WebContents; |
-using content::WorkerService; |
-using content::WorkerServiceObserver; |
- |
-namespace { |
- |
-// Used to block until a dev tools client window's browser is closed. |
-class BrowserClosedObserver : public content::NotificationObserver { |
- public: |
- explicit BrowserClosedObserver(Browser* browser) { |
- registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED, |
- content::Source<Browser>(browser)); |
- content::RunMessageLoop(); |
- } |
- |
- virtual void Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
- MessageLoopForUI::current()->Quit(); |
- } |
- |
- private: |
- content::NotificationRegistrar registrar_; |
- DISALLOW_COPY_AND_ASSIGN(BrowserClosedObserver); |
-}; |
- |
-// The delay waited in some cases where we don't have a notifications for an |
-// action we take. |
-const int kActionDelayMs = 500; |
- |
-const char kDebuggerTestPage[] = "files/devtools/debugger_test_page.html"; |
-const char kPauseWhenLoadingDevTools[] = |
- "files/devtools/pause_when_loading_devtools.html"; |
-const char kPauseWhenScriptIsRunning[] = |
- "files/devtools/pause_when_script_is_running.html"; |
-const char kPageWithContentScript[] = |
- "files/devtools/page_with_content_script.html"; |
-const char kNavigateBackTestPage[] = |
- "files/devtools/navigate_back.html"; |
-const char kChunkedTestPage[] = "chunked"; |
-const char kSlowTestPage[] = |
- "chunked?waitBeforeHeaders=100&waitBetweenChunks=100&chunksNumber=2"; |
-const char kSharedWorkerTestPage[] = |
- "files/workers/workers_ui_shared_worker.html"; |
-const char kReloadSharedWorkerTestPage[] = |
- "files/workers/debug_shared_worker_initialization.html"; |
- |
-void RunTestFunction(DevToolsWindow* window, const char* test_name) { |
- std::string result; |
- |
- // At first check that JavaScript part of the front-end is loaded by |
- // checking that global variable uiTests exists(it's created after all js |
- // files have been loaded) and has runTest method. |
- ASSERT_TRUE( |
- content::ExecuteJavaScriptAndExtractString( |
- window->GetRenderViewHost(), |
- L"", |
- L"window.domAutomationController.send(" |
- L"'' + (window.uiTests && (typeof uiTests.runTest)));", |
- &result)); |
- |
- if (result == "function") { |
- ASSERT_TRUE( |
- content::ExecuteJavaScriptAndExtractString( |
- window->GetRenderViewHost(), |
- L"", |
- UTF8ToWide(base::StringPrintf("uiTests.runTest('%s')", |
- test_name)), |
- &result)); |
- EXPECT_EQ("[OK]", result); |
- } else { |
- FAIL() << "DevTools front-end is broken."; |
- } |
-} |
- |
-class DevToolsSanityTest : public InProcessBrowserTest { |
- public: |
- DevToolsSanityTest() |
- : window_(NULL), |
- inspected_rvh_(NULL) {} |
- |
- protected: |
- void RunTest(const std::string& test_name, const std::string& test_page) { |
- OpenDevToolsWindow(test_page); |
- RunTestFunction(window_, test_name.c_str()); |
- CloseDevToolsWindow(); |
- } |
- |
- void OpenDevToolsWindow(const std::string& test_page) { |
- ASSERT_TRUE(test_server()->Start()); |
- GURL url = test_server()->GetURL(test_page); |
- ui_test_utils::NavigateToURL(browser(), url); |
- |
- content::WindowedNotificationObserver observer( |
- content::NOTIFICATION_LOAD_STOP, |
- content::NotificationService::AllSources()); |
- inspected_rvh_ = GetInspectedTab()->GetRenderViewHost(); |
- window_ = DevToolsWindow::OpenDevToolsWindow(inspected_rvh_); |
- observer.Wait(); |
- } |
- |
- WebContents* GetInspectedTab() { |
- return chrome::GetWebContentsAt(browser(), 0); |
- } |
- |
- void CloseDevToolsWindow() { |
- DevToolsManager* devtools_manager = DevToolsManager::GetInstance(); |
- // UnregisterDevToolsClientHostFor may destroy window_ so store the browser |
- // first. |
- Browser* browser = window_->browser(); |
- DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost( |
- inspected_rvh_); |
- devtools_manager->UnregisterDevToolsClientHostFor(agent); |
- |
- // Wait only when DevToolsWindow has a browser. For docked DevTools, this |
- // is NULL and we skip the wait. |
- if (browser) |
- BrowserClosedObserver close_observer(browser); |
- } |
- |
- DevToolsWindow* window_; |
- RenderViewHost* inspected_rvh_; |
-}; |
- |
-void TimeoutCallback(const std::string& timeout_message) { |
- FAIL() << timeout_message; |
- MessageLoop::current()->Quit(); |
-} |
- |
-// Base class for DevTools tests that test devtools functionality for |
-// extensions and content scripts. |
-class DevToolsExtensionTest : public DevToolsSanityTest, |
- public content::NotificationObserver { |
- public: |
- DevToolsExtensionTest() : DevToolsSanityTest() { |
- PathService::Get(chrome::DIR_TEST_DATA, &test_extensions_dir_); |
- test_extensions_dir_ = test_extensions_dir_.AppendASCII("devtools"); |
- test_extensions_dir_ = test_extensions_dir_.AppendASCII("extensions"); |
- } |
- |
- protected: |
- // Load an extension from test\data\devtools\extensions\<extension_name> |
- void LoadExtension(const char* extension_name) { |
- FilePath path = test_extensions_dir_.AppendASCII(extension_name); |
- ASSERT_TRUE(LoadExtensionFromPath(path)) << "Failed to load extension."; |
- } |
- |
- private: |
- bool LoadExtensionFromPath(const FilePath& path) { |
- ExtensionService* service = extensions::ExtensionSystem::Get( |
- browser()->profile())->extension_service(); |
- size_t num_before = service->extensions()->size(); |
- { |
- content::NotificationRegistrar registrar; |
- registrar.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, |
- content::NotificationService::AllSources()); |
- base::CancelableClosure timeout( |
- base::Bind(&TimeoutCallback, "Extension load timed out.")); |
- MessageLoop::current()->PostDelayedTask( |
- FROM_HERE, timeout.callback(), base::TimeDelta::FromSeconds(4)); |
- extensions::UnpackedInstaller::Create(service)->Load(path); |
- content::RunMessageLoop(); |
- timeout.Cancel(); |
- } |
- size_t num_after = service->extensions()->size(); |
- if (num_after != (num_before + 1)) |
- return false; |
- |
- return WaitForExtensionViewsToLoad(); |
- } |
- |
- bool WaitForExtensionViewsToLoad() { |
- // Wait for all the extension render views that exist to finish loading. |
- // NOTE: This assumes that the extension views list is not changing while |
- // this method is running. |
- |
- content::NotificationRegistrar registrar; |
- registrar.Add(this, chrome::NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING, |
- content::NotificationService::AllSources()); |
- base::CancelableClosure timeout( |
- base::Bind(&TimeoutCallback, "Extension host load timed out.")); |
- MessageLoop::current()->PostDelayedTask( |
- FROM_HERE, timeout.callback(), base::TimeDelta::FromSeconds(4)); |
- |
- ExtensionProcessManager* manager = |
- extensions::ExtensionSystem::Get(browser()->profile())-> |
- process_manager(); |
- ExtensionProcessManager::ViewSet all_views = manager->GetAllViews(); |
- for (ExtensionProcessManager::ViewSet::const_iterator iter = |
- all_views.begin(); |
- iter != all_views.end();) { |
- if (!(*iter)->IsLoading()) |
- ++iter; |
- else |
- content::RunMessageLoop(); |
- } |
- |
- timeout.Cancel(); |
- return true; |
- } |
- |
- void Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
- switch (type) { |
- case chrome::NOTIFICATION_EXTENSION_LOADED: |
- case chrome::NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING: |
- MessageLoopForUI::current()->Quit(); |
- break; |
- default: |
- NOTREACHED(); |
- break; |
- } |
- } |
- |
- FilePath test_extensions_dir_; |
-}; |
- |
-class DevToolsExperimentalExtensionTest : public DevToolsExtensionTest { |
- public: |
- void SetUpCommandLine(CommandLine* command_line) OVERRIDE { |
- command_line->AppendSwitch(switches::kEnableExperimentalExtensionApis); |
- } |
-}; |
- |
-class WorkerDevToolsSanityTest : public InProcessBrowserTest { |
- public: |
- WorkerDevToolsSanityTest() : window_(NULL) {} |
- |
- protected: |
- class WorkerData : public base::RefCountedThreadSafe<WorkerData> { |
- public: |
- WorkerData() : worker_process_id(0), worker_route_id(0) {} |
- int worker_process_id; |
- int worker_route_id; |
- |
- private: |
- friend class base::RefCountedThreadSafe<WorkerData>; |
- ~WorkerData() {} |
- }; |
- |
- class WorkerCreationObserver : public WorkerServiceObserver { |
- public: |
- explicit WorkerCreationObserver(WorkerData* worker_data) |
- : worker_data_(worker_data) { |
- } |
- |
- private: |
- virtual ~WorkerCreationObserver() {} |
- |
- virtual void WorkerCreated ( |
- const GURL& url, |
- const string16& name, |
- int process_id, |
- int route_id) OVERRIDE { |
- worker_data_->worker_process_id = process_id; |
- worker_data_->worker_route_id = route_id; |
- WorkerService::GetInstance()->RemoveObserver(this); |
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
- MessageLoop::QuitClosure()); |
- delete this; |
- } |
- scoped_refptr<WorkerData> worker_data_; |
- }; |
- |
- class WorkerTerminationObserver : public WorkerServiceObserver { |
- public: |
- explicit WorkerTerminationObserver(WorkerData* worker_data) |
- : worker_data_(worker_data) { |
- } |
- |
- private: |
- virtual ~WorkerTerminationObserver() {} |
- |
- virtual void WorkerDestroyed(int process_id, int route_id) OVERRIDE { |
- ASSERT_EQ(worker_data_->worker_process_id, process_id); |
- ASSERT_EQ(worker_data_->worker_route_id, route_id); |
- WorkerService::GetInstance()->RemoveObserver(this); |
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
- MessageLoop::QuitClosure()); |
- delete this; |
- } |
- scoped_refptr<WorkerData> worker_data_; |
- }; |
- |
- void RunTest(const char* test_name, const char* test_page) { |
- ASSERT_TRUE(test_server()->Start()); |
- GURL url = test_server()->GetURL(test_page); |
- ui_test_utils::NavigateToURL(browser(), url); |
- |
- scoped_refptr<WorkerData> worker_data = WaitForFirstSharedWorker(); |
- OpenDevToolsWindowForSharedWorker(worker_data.get()); |
- RunTestFunction(window_, test_name); |
- CloseDevToolsWindow(); |
- } |
- |
- static void TerminateWorkerOnIOThread(scoped_refptr<WorkerData> worker_data) { |
- if (WorkerService::GetInstance()->TerminateWorker( |
- worker_data->worker_process_id, worker_data->worker_route_id)) { |
- WorkerService::GetInstance()->AddObserver( |
- new WorkerTerminationObserver(worker_data)); |
- return; |
- } |
- FAIL() << "Failed to terminate worker.\n"; |
- } |
- |
- static void TerminateWorker(scoped_refptr<WorkerData> worker_data) { |
- BrowserThread::PostTask( |
- BrowserThread::IO, FROM_HERE, |
- base::Bind(&TerminateWorkerOnIOThread, worker_data)); |
- content::RunMessageLoop(); |
- } |
- |
- static void WaitForFirstSharedWorkerOnIOThread( |
- scoped_refptr<WorkerData> worker_data) { |
- std::vector<WorkerService::WorkerInfo> worker_info = |
- WorkerService::GetInstance()->GetWorkers(); |
- if (!worker_info.empty()) { |
- worker_data->worker_process_id = worker_info[0].process_id; |
- worker_data->worker_route_id = worker_info[0].route_id; |
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
- MessageLoop::QuitClosure()); |
- return; |
- } |
- |
- WorkerService::GetInstance()->AddObserver( |
- new WorkerCreationObserver(worker_data.get())); |
- } |
- |
- static scoped_refptr<WorkerData> WaitForFirstSharedWorker() { |
- scoped_refptr<WorkerData> worker_data(new WorkerData()); |
- BrowserThread::PostTask( |
- BrowserThread::IO, FROM_HERE, |
- base::Bind(&WaitForFirstSharedWorkerOnIOThread, worker_data)); |
- content::RunMessageLoop(); |
- return worker_data; |
- } |
- |
- void OpenDevToolsWindowForSharedWorker(WorkerData* worker_data) { |
- Profile* profile = browser()->profile(); |
- window_ = DevToolsWindow::CreateDevToolsWindowForWorker(profile); |
- window_->Show(DEVTOOLS_TOGGLE_ACTION_SHOW); |
- DevToolsAgentHost* agent_host = |
- DevToolsAgentHostRegistry::GetDevToolsAgentHostForWorker( |
- worker_data->worker_process_id, |
- worker_data->worker_route_id); |
- DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor( |
- agent_host, |
- window_->devtools_client_host()); |
- RenderViewHost* client_rvh = window_->GetRenderViewHost(); |
- WebContents* client_contents = WebContents::FromRenderViewHost(client_rvh); |
- if (client_contents->IsLoading()) { |
- content::WindowedNotificationObserver observer( |
- content::NOTIFICATION_LOAD_STOP, |
- content::Source<NavigationController>( |
- &client_contents->GetController())); |
- observer.Wait(); |
- } |
- } |
- |
- void CloseDevToolsWindow() { |
- Browser* browser = window_->browser(); |
- browser->tab_strip_model()->CloseAllTabs(); |
- BrowserClosedObserver close_observer(browser); |
- } |
- |
- DevToolsWindow* window_; |
-}; |
- |
- |
-// Tests scripts panel showing. |
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestShowScriptsTab) { |
- RunTest("testShowScriptsTab", kDebuggerTestPage); |
-} |
- |
-// Tests that scripts tab is populated with inspected scripts even if it |
-// hadn't been shown by the moment inspected paged refreshed. |
-// @see http://crbug.com/26312 |
-IN_PROC_BROWSER_TEST_F( |
- DevToolsSanityTest, |
- TestScriptsTabIsPopulatedOnInspectedPageRefresh) { |
- // Clear inspector settings to ensure that Elements will be |
- // current panel when DevTools window is open. |
- content::GetContentClient()->browser()->ClearInspectorSettings( |
- GetInspectedTab()->GetRenderViewHost()); |
- RunTest("testScriptsTabIsPopulatedOnInspectedPageRefresh", |
- kDebuggerTestPage); |
-} |
- |
-// Tests that chrome.devtools extension is correctly exposed. |
-IN_PROC_BROWSER_TEST_F(DevToolsExtensionTest, |
- TestDevToolsExtensionAPI) { |
- LoadExtension("devtools_extension"); |
- RunTest("waitForTestResultsInConsole", ""); |
-} |
- |
-// Tests that chrome.devtools extension can communicate with background page |
-// using extension messaging. |
-IN_PROC_BROWSER_TEST_F(DevToolsExtensionTest, |
- TestDevToolsExtensionMessaging) { |
- LoadExtension("devtools_messaging"); |
- RunTest("waitForTestResultsInConsole", ""); |
-} |
- |
-// Tests that chrome.experimental.devtools extension is correctly exposed |
-// when the extension has experimental permission. |
-IN_PROC_BROWSER_TEST_F(DevToolsExperimentalExtensionTest, |
- TestDevToolsExperimentalExtensionAPI) { |
- LoadExtension("devtools_experimental"); |
- RunTest("waitForTestResultsInConsole", ""); |
-} |
- |
-// Tests that a content script is in the scripts list. |
-// http://crbug.com/114104 |
-IN_PROC_BROWSER_TEST_F(DevToolsExtensionTest, |
- TestContentScriptIsPresent) { |
- LoadExtension("simple_content_script"); |
- RunTest("testContentScriptIsPresent", kPageWithContentScript); |
-} |
- |
-// Tests that scripts are not duplicated after Scripts Panel switch. |
-// Disabled - see http://crbug.com/124300 |
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, |
- TestNoScriptDuplicatesOnPanelSwitch) { |
- RunTest("testNoScriptDuplicatesOnPanelSwitch", kDebuggerTestPage); |
-} |
- |
-// Tests that debugger works correctly if pause event occurs when DevTools |
-// frontend is being loaded. |
-// http://crbug.com/106114 |
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, |
- TestPauseWhenLoadingDevTools) { |
- RunTest("testPauseWhenLoadingDevTools", kPauseWhenLoadingDevTools); |
-} |
- |
-// Tests that pressing 'Pause' will pause script execution if the script |
-// is already running. |
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestPauseWhenScriptIsRunning) { |
- RunTest("testPauseWhenScriptIsRunning", kPauseWhenScriptIsRunning); |
-} |
- |
-// Tests network timing. |
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestNetworkTiming) { |
- RunTest("testNetworkTiming", kSlowTestPage); |
-} |
- |
-// Tests network size. |
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestNetworkSize) { |
- RunTest("testNetworkSize", kChunkedTestPage); |
-} |
- |
-// Tests raw headers text. |
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestNetworkSyncSize) { |
- RunTest("testNetworkSyncSize", kChunkedTestPage); |
-} |
- |
-// Tests raw headers text. |
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestNetworkRawHeadersText) { |
- RunTest("testNetworkRawHeadersText", kChunkedTestPage); |
-} |
- |
-// Tests that console messages are not duplicated on navigation back. |
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestConsoleOnNavigateBack) { |
- RunTest("testConsoleOnNavigateBack", kNavigateBackTestPage); |
-} |
- |
-// Tests that inspector will reattach to inspected page when it is reloaded |
-// after a crash. See http://crbug.com/101952 |
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestReattachAfterCrash) { |
- OpenDevToolsWindow(kDebuggerTestPage); |
- |
- content::CrashTab(GetInspectedTab()); |
- content::WindowedNotificationObserver observer( |
- content::NOTIFICATION_LOAD_STOP, |
- content::Source<NavigationController>( |
- &chrome::GetActiveWebContents(browser())->GetController())); |
- chrome::Reload(browser(), CURRENT_TAB); |
- observer.Wait(); |
- |
- RunTestFunction(window_, "testReattachAfterCrash"); |
- CloseDevToolsWindow(); |
-} |
- |
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestPageWithNoJavaScript) { |
- OpenDevToolsWindow("about:blank"); |
- std::string result; |
- ASSERT_TRUE( |
- content::ExecuteJavaScriptAndExtractString( |
- window_->GetRenderViewHost(), |
- L"", |
- L"window.domAutomationController.send(" |
- L"'' + (window.uiTests && (typeof uiTests.runTest)));", |
- &result)); |
- ASSERT_EQ("function", result) << "DevTools front-end is broken."; |
- CloseDevToolsWindow(); |
-} |
- |
-#if defined(OS_MACOSX) |
-#define MAYBE_InspectSharedWorker DISABLED_InspectSharedWorker |
-#else |
-#define MAYBE_InspectSharedWorker InspectSharedWorker |
-#endif |
-// Flakily fails with 25s timeout: http://crbug.com/89845 |
-IN_PROC_BROWSER_TEST_F(WorkerDevToolsSanityTest, MAYBE_InspectSharedWorker) { |
- RunTest("testSharedWorker", kSharedWorkerTestPage); |
-} |
- |
-// http://crbug.com/100538 |
-#if defined(OS_MACOSX) || defined(OS_WIN) |
-#define MAYBE_PauseInSharedWorkerInitialization DISABLED_PauseInSharedWorkerInitialization |
-#else |
-#define MAYBE_PauseInSharedWorkerInitialization PauseInSharedWorkerInitialization |
-#endif |
- |
-// http://crbug.com/106114 is masking |
-// MAYBE_PauseInSharedWorkerInitialization into |
-// DISABLED_PauseInSharedWorkerInitialization |
-IN_PROC_BROWSER_TEST_F(WorkerDevToolsSanityTest, |
- MAYBE_PauseInSharedWorkerInitialization) { |
- ASSERT_TRUE(test_server()->Start()); |
- GURL url = test_server()->GetURL(kReloadSharedWorkerTestPage); |
- ui_test_utils::NavigateToURL(browser(), url); |
- |
- scoped_refptr<WorkerData> worker_data = WaitForFirstSharedWorker(); |
- OpenDevToolsWindowForSharedWorker(worker_data.get()); |
- |
- TerminateWorker(worker_data); |
- |
- // Reload page to restart the worker. |
- ui_test_utils::NavigateToURL(browser(), url); |
- |
- // Wait until worker script is paused on the debugger statement. |
- RunTestFunction(window_, "testPauseInSharedWorkerInitialization"); |
- CloseDevToolsWindow(); |
-} |
- |
-// Tests DevToolsAgentHost::AddMessageToConsole. |
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestAddMessageToConsole) { |
- OpenDevToolsWindow("about:blank"); |
- DevToolsManager* devtools_manager = DevToolsManager::GetInstance(); |
- DevToolsAgentHost* agent_host = |
- DevToolsAgentHostRegistry::GetDevToolsAgentHost(inspected_rvh_); |
- devtools_manager->AddMessageToConsole(agent_host, |
- content::CONSOLE_MESSAGE_LEVEL_LOG, |
- "log"); |
- devtools_manager->AddMessageToConsole(agent_host, |
- content::CONSOLE_MESSAGE_LEVEL_ERROR, |
- "error"); |
- RunTestFunction(window_, "checkLogAndErrorMessages"); |
- CloseDevToolsWindow(); |
-} |
- |
-} // namespace |