| Index: chrome/browser/devtools/devtools_sanity_browsertest.cc
|
| diff --git a/chrome/browser/devtools/devtools_sanity_browsertest.cc b/chrome/browser/devtools/devtools_sanity_browsertest.cc
|
| index 9a63ac85cd8e0e4e245b51b0ef35e194a42a6461..7aca3686a5c0cd6e9027f0da7da889297f6c04a5 100644
|
| --- a/chrome/browser/devtools/devtools_sanity_browsertest.cc
|
| +++ b/chrome/browser/devtools/devtools_sanity_browsertest.cc
|
| @@ -76,8 +76,12 @@ const char kSlowTestPage[] =
|
| "chunked?waitBeforeHeaders=100&waitBetweenChunks=100&chunksNumber=2";
|
| const char kSharedWorkerTestPage[] =
|
| "files/workers/workers_ui_shared_worker.html";
|
| +const char kSharedWorkerTestWorker[] =
|
| + "files/workers/workers_ui_shared_worker.js";
|
| const char kReloadSharedWorkerTestPage[] =
|
| "files/workers/debug_shared_worker_initialization.html";
|
| +const char kReloadSharedWorkerTestWorker[] =
|
| + "files/workers/debug_shared_worker_initialization.js";
|
|
|
| void RunTestFunction(DevToolsWindow* window, const char* test_name) {
|
| std::string result;
|
| @@ -407,9 +411,9 @@ class WorkerDevToolsSanityTest : public InProcessBrowserTest {
|
|
|
| class WorkerCreationObserver : public WorkerServiceObserver {
|
| public:
|
| - explicit WorkerCreationObserver(WorkerData* worker_data)
|
| - : worker_data_(worker_data) {
|
| - }
|
| + explicit WorkerCreationObserver(const std::string& path,
|
| + WorkerData* worker_data)
|
| + : path_(path), worker_data_(worker_data) {}
|
|
|
| private:
|
| virtual ~WorkerCreationObserver() {}
|
| @@ -419,6 +423,8 @@ class WorkerDevToolsSanityTest : public InProcessBrowserTest {
|
| const base::string16& name,
|
| int process_id,
|
| int route_id) override {
|
| + if (url.path().rfind(path_) == std::string::npos)
|
| + return;
|
| worker_data_->worker_process_id = process_id;
|
| worker_data_->worker_route_id = route_id;
|
| WorkerService::GetInstance()->RemoveObserver(this);
|
| @@ -426,6 +432,7 @@ class WorkerDevToolsSanityTest : public InProcessBrowserTest {
|
| base::MessageLoop::QuitClosure());
|
| delete this;
|
| }
|
| + std::string path_;
|
| scoped_refptr<WorkerData> worker_data_;
|
| };
|
|
|
| @@ -449,12 +456,15 @@ class WorkerDevToolsSanityTest : public InProcessBrowserTest {
|
| scoped_refptr<WorkerData> worker_data_;
|
| };
|
|
|
| - void RunTest(const char* test_name, const char* test_page) {
|
| + void RunTest(const char* test_name,
|
| + const char* test_page,
|
| + const char* worker_path) {
|
| ASSERT_TRUE(test_server()->Start());
|
| GURL url = test_server()->GetURL(test_page);
|
| ui_test_utils::NavigateToURL(browser(), url);
|
|
|
| - scoped_refptr<WorkerData> worker_data = WaitForFirstSharedWorker();
|
| + scoped_refptr<WorkerData> worker_data =
|
| + WaitForFirstSharedWorker(worker_path);
|
| OpenDevToolsWindowForSharedWorker(worker_data.get());
|
| RunTestFunction(window_, test_name);
|
| CloseDevToolsWindow();
|
| @@ -476,10 +486,13 @@ class WorkerDevToolsSanityTest : public InProcessBrowserTest {
|
| }
|
|
|
| static void WaitForFirstSharedWorkerOnIOThread(
|
| + const std::string& path,
|
| scoped_refptr<WorkerData> worker_data) {
|
| std::vector<WorkerService::WorkerInfo> worker_info =
|
| WorkerService::GetInstance()->GetWorkers();
|
| - if (!worker_info.empty()) {
|
| + for (size_t i = 0; i < worker_info.size(); i++) {
|
| + if (worker_info[i].url.path().rfind(path) == std::string::npos)
|
| + continue;
|
| 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,
|
| @@ -488,14 +501,15 @@ class WorkerDevToolsSanityTest : public InProcessBrowserTest {
|
| }
|
|
|
| WorkerService::GetInstance()->AddObserver(
|
| - new WorkerCreationObserver(worker_data.get()));
|
| + new WorkerCreationObserver(path, worker_data.get()));
|
| }
|
|
|
| - static scoped_refptr<WorkerData> WaitForFirstSharedWorker() {
|
| + static scoped_refptr<WorkerData> WaitForFirstSharedWorker(const char* path) {
|
| scoped_refptr<WorkerData> worker_data(new WorkerData());
|
| BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&WaitForFirstSharedWorkerOnIOThread, worker_data));
|
| + BrowserThread::IO,
|
| + FROM_HERE,
|
| + base::Bind(&WaitForFirstSharedWorkerOnIOThread, path, worker_data));
|
| content::RunMessageLoop();
|
| return worker_data;
|
| }
|
| @@ -856,14 +870,14 @@ IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestPageWithNoJavaScript) {
|
| }
|
|
|
| // Flakily fails: http://crbug.com/403007 http://crbug.com/89845
|
| -IN_PROC_BROWSER_TEST_F(WorkerDevToolsSanityTest, DISABLED_InspectSharedWorker) {
|
| +IN_PROC_BROWSER_TEST_F(WorkerDevToolsSanityTest, InspectSharedWorker) {
|
| #if defined(OS_WIN) && defined(USE_ASH)
|
| // Disable this test in Metro+Ash for now (http://crbug.com/262796).
|
| if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests))
|
| return;
|
| #endif
|
|
|
| - RunTest("testSharedWorker", kSharedWorkerTestPage);
|
| + RunTest("testSharedWorker", kSharedWorkerTestPage, kSharedWorkerTestWorker);
|
| }
|
|
|
| // http://crbug.com/100538
|
| @@ -873,7 +887,8 @@ IN_PROC_BROWSER_TEST_F(WorkerDevToolsSanityTest,
|
| GURL url = test_server()->GetURL(kReloadSharedWorkerTestPage);
|
| ui_test_utils::NavigateToURL(browser(), url);
|
|
|
| - scoped_refptr<WorkerData> worker_data = WaitForFirstSharedWorker();
|
| + scoped_refptr<WorkerData> worker_data =
|
| + WaitForFirstSharedWorker(kReloadSharedWorkerTestWorker);
|
| OpenDevToolsWindowForSharedWorker(worker_data.get());
|
|
|
| TerminateWorker(worker_data);
|
|
|