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

Side by Side Diff: chrome/browser/devtools/devtools_sanity_browsertest.cc

Issue 108213012: [DevTools] Remove dock side knowledge from browser. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 11 months 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
OLDNEW
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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 content::ExecuteScriptAndExtractString( 99 content::ExecuteScriptAndExtractString(
100 window->GetRenderViewHost(), 100 window->GetRenderViewHost(),
101 base::StringPrintf("uiTests.runTest('%s')", test_name), 101 base::StringPrintf("uiTests.runTest('%s')", test_name),
102 &result)); 102 &result));
103 EXPECT_EQ("[OK]", result); 103 EXPECT_EQ("[OK]", result);
104 } else { 104 } else {
105 FAIL() << "DevTools front-end is broken."; 105 FAIL() << "DevTools front-end is broken.";
106 } 106 }
107 } 107 }
108 108
109 } // namespace
110
109 class DevToolsSanityTest : public InProcessBrowserTest { 111 class DevToolsSanityTest : public InProcessBrowserTest {
110 public: 112 public:
111 DevToolsSanityTest() 113 DevToolsSanityTest()
112 : window_(NULL), 114 : window_(NULL),
113 inspected_rvh_(NULL) {} 115 inspected_rvh_(NULL) {}
114 116
115 protected: 117 protected:
116 void RunTest(const std::string& test_name, const std::string& test_page) { 118 void RunTest(const std::string& test_name, const std::string& test_page) {
117 OpenDevToolsWindow(test_page); 119 OpenDevToolsWindow(test_page);
118 RunTestFunction(window_, test_name.c_str()); 120 RunTestFunction(window_, test_name.c_str());
(...skipping 27 matching lines...) Expand all
146 148
147 void ToggleDevToolsWindow() { 149 void ToggleDevToolsWindow() {
148 content::WindowedNotificationObserver close_observer( 150 content::WindowedNotificationObserver close_observer(
149 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 151 content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
150 content::Source<content::WebContents>(window_->web_contents())); 152 content::Source<content::WebContents>(window_->web_contents()));
151 DevToolsWindow::ToggleDevToolsWindow(inspected_rvh_, false, 153 DevToolsWindow::ToggleDevToolsWindow(inspected_rvh_, false,
152 DevToolsToggleAction::Toggle()); 154 DevToolsToggleAction::Toggle());
153 close_observer.Wait(); 155 close_observer.Wait();
154 } 156 }
155 157
158 void ToggleDevToolsWindowDontWait() {
159 DevToolsWindow::ToggleDevToolsWindow(inspected_rvh_, false,
160 DevToolsToggleAction::Toggle());
161 }
162
156 void CloseDevToolsWindow() { 163 void CloseDevToolsWindow() {
157 DevToolsManager* devtools_manager = DevToolsManager::GetInstance(); 164 DevToolsManager* devtools_manager = DevToolsManager::GetInstance();
158 content::WindowedNotificationObserver close_observer( 165 content::WindowedNotificationObserver close_observer(
159 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 166 content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
160 content::Source<content::WebContents>(window_->web_contents())); 167 content::Source<content::WebContents>(window_->web_contents()));
161 devtools_manager->CloseAllClientHosts(); 168 devtools_manager->CloseAllClientHosts();
162 close_observer.Wait(); 169 close_observer.Wait();
163 } 170 }
164 171
165 DevToolsWindow* window_; 172 DevToolsWindow* window_;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 command_line->AppendSwitch( 214 command_line->AppendSwitch(
208 switches::kDisableHangMonitor); 215 switches::kDisableHangMonitor);
209 } 216 }
210 217
211 void CloseInspectedTab() { 218 void CloseInspectedTab() {
212 browser()->tab_strip_model()->CloseWebContentsAt(0, 219 browser()->tab_strip_model()->CloseWebContentsAt(0,
213 TabStripModel::CLOSE_NONE); 220 TabStripModel::CLOSE_NONE);
214 } 221 }
215 222
216 void CloseDockedDevTools() { 223 void CloseDockedDevTools() {
217 DevToolsWindow::ToggleDevToolsWindow(inspected_rvh_, false, 224 ToggleDevToolsWindowDontWait();
218 DevToolsToggleAction::Toggle());
219 } 225 }
220 226
221 void CloseUndockedDevTools() { 227 void CloseUndockedDevTools() {
222 chrome::CloseWindow(window_->browser()); 228 chrome::CloseWindow(window_->browser());
223 } 229 }
224 230
225 void CloseInspectedBrowser() { 231 void CloseInspectedBrowser() {
226 chrome::CloseWindow(browser()); 232 chrome::CloseWindow(browser());
227 } 233 }
228 protected: 234 protected:
229 void InjectBeforeUnloadListener(content::WebContents* web_contents) { 235 void InjectBeforeUnloadListener(content::WebContents* web_contents) {
230 ASSERT_TRUE(content::ExecuteScript(web_contents->GetRenderViewHost(), 236 ASSERT_TRUE(content::ExecuteScript(web_contents->GetRenderViewHost(),
231 "window.addEventListener('beforeunload'," 237 "window.addEventListener('beforeunload',"
232 "function(event) { event.returnValue = 'Foo'; });")); 238 "function(event) { event.returnValue = 'Foo'; });"));
233 } 239 }
234 240
235 void RunBeforeUnloadSanityTest(DevToolsDockSide dock_side, 241 void RunBeforeUnloadSanityTest(bool is_docked,
236 base::Callback<void(void)> close_method, 242 base::Callback<void(void)> close_method,
237 bool wait_for_browser_close = true) { 243 bool wait_for_browser_close = true) {
238 OpenDevToolsWindow(kDebuggerTestPage); 244 OpenDevToolsWindow(kDebuggerTestPage);
239 window_->SetDockSideForTest(dock_side); 245 window_->SetIsDockedForTest(is_docked);
240 content::WindowedNotificationObserver devtools_close_observer( 246 content::WindowedNotificationObserver devtools_close_observer(
241 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 247 content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
242 content::Source<content::WebContents>(window_->web_contents())); 248 content::Source<content::WebContents>(window_->web_contents()));
243 InjectBeforeUnloadListener(window_->web_contents()); 249 InjectBeforeUnloadListener(window_->web_contents());
244 { 250 {
245 DevToolsWindowBeforeUnloadObserver before_unload_observer(window_); 251 DevToolsWindowBeforeUnloadObserver before_unload_observer(window_);
246 close_method.Run(); 252 close_method.Run();
247 CancelModalDialog(); 253 CancelModalDialog();
248 before_unload_observer.Wait(); 254 before_unload_observer.Wait();
249 } 255 }
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 scoped_refptr<WorkerData> worker_data(new WorkerData()); 542 scoped_refptr<WorkerData> worker_data(new WorkerData());
537 BrowserThread::PostTask( 543 BrowserThread::PostTask(
538 BrowserThread::IO, FROM_HERE, 544 BrowserThread::IO, FROM_HERE,
539 base::Bind(&WaitForFirstSharedWorkerOnIOThread, worker_data)); 545 base::Bind(&WaitForFirstSharedWorkerOnIOThread, worker_data));
540 content::RunMessageLoop(); 546 content::RunMessageLoop();
541 return worker_data; 547 return worker_data;
542 } 548 }
543 549
544 void OpenDevToolsWindowForSharedWorker(WorkerData* worker_data) { 550 void OpenDevToolsWindowForSharedWorker(WorkerData* worker_data) {
545 Profile* profile = browser()->profile(); 551 Profile* profile = browser()->profile();
546 window_ = DevToolsWindow::CreateDevToolsWindowForWorker(profile);
547 window_->Show(DevToolsToggleAction::Show());
548 scoped_refptr<DevToolsAgentHost> agent_host( 552 scoped_refptr<DevToolsAgentHost> agent_host(
549 DevToolsAgentHost::GetForWorker( 553 DevToolsAgentHost::GetForWorker(
550 worker_data->worker_process_id, 554 worker_data->worker_process_id,
551 worker_data->worker_route_id)); 555 worker_data->worker_route_id));
552 DevToolsManager::GetInstance()->RegisterDevToolsClientHostFor( 556 window_ = DevToolsWindow::OpenDevToolsWindowForWorker(profile, agent_host);
553 agent_host.get(), window_->GetDevToolsClientHostForTest());
554 RenderViewHost* client_rvh = window_->GetRenderViewHost(); 557 RenderViewHost* client_rvh = window_->GetRenderViewHost();
555 WebContents* client_contents = WebContents::FromRenderViewHost(client_rvh); 558 WebContents* client_contents = WebContents::FromRenderViewHost(client_rvh);
556 if (client_contents->IsLoading()) { 559 if (client_contents->IsLoading()) {
557 content::WindowedNotificationObserver observer( 560 content::WindowedNotificationObserver observer(
558 content::NOTIFICATION_LOAD_STOP, 561 content::NOTIFICATION_LOAD_STOP,
559 content::Source<NavigationController>( 562 content::Source<NavigationController>(
560 &client_contents->GetController())); 563 &client_contents->GetController()));
561 observer.Wait(); 564 observer.Wait();
562 } 565 }
563 } 566 }
564 567
565 void CloseDevToolsWindow() { 568 void CloseDevToolsWindow() {
566 Browser* browser = window_->browser(); 569 Browser* browser = window_->browser();
567 content::WindowedNotificationObserver close_observer( 570 content::WindowedNotificationObserver close_observer(
568 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 571 content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
569 content::Source<content::WebContents>(window_->web_contents())); 572 content::Source<content::WebContents>(window_->web_contents()));
570 browser->tab_strip_model()->CloseAllTabs(); 573 browser->tab_strip_model()->CloseAllTabs();
571 close_observer.Wait(); 574 close_observer.Wait();
572 } 575 }
573 576
574 DevToolsWindow* window_; 577 DevToolsWindow* window_;
575 }; 578 };
576 579
577 // Tests that BeforeUnload event gets called on docked devtools if 580 // Tests that BeforeUnload event gets called on docked devtools if
578 // we try to close them. 581 // we try to close them.
579 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest, TestDockedDevToolsClose) { 582 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest, TestDockedDevToolsClose) {
580 RunBeforeUnloadSanityTest(DEVTOOLS_DOCK_SIDE_BOTTOM, base::Bind( 583 RunBeforeUnloadSanityTest(true, base::Bind(
581 &DevToolsBeforeUnloadTest::CloseDockedDevTools, this), false); 584 &DevToolsBeforeUnloadTest::CloseDockedDevTools, this), false);
582 } 585 }
583 586
584 // Tests that BeforeUnload event gets called on docked devtools if 587 // Tests that BeforeUnload event gets called on docked devtools if
585 // we try to close the inspected page. 588 // we try to close the inspected page.
586 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest, 589 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest,
587 TestDockedDevToolsInspectedTabClose) { 590 TestDockedDevToolsInspectedTabClose) {
588 RunBeforeUnloadSanityTest(DEVTOOLS_DOCK_SIDE_BOTTOM, base::Bind( 591 RunBeforeUnloadSanityTest(true, base::Bind(
589 &DevToolsBeforeUnloadTest::CloseInspectedTab, this)); 592 &DevToolsBeforeUnloadTest::CloseInspectedTab, this));
590 } 593 }
591 594
592 // Tests that BeforeUnload event gets called on docked devtools if 595 // Tests that BeforeUnload event gets called on docked devtools if
593 // we try to close the inspected browser. 596 // we try to close the inspected browser.
594 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest, 597 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest,
595 TestDockedDevToolsInspectedBrowserClose) { 598 TestDockedDevToolsInspectedBrowserClose) {
596 RunBeforeUnloadSanityTest(DEVTOOLS_DOCK_SIDE_BOTTOM, base::Bind( 599 RunBeforeUnloadSanityTest(true, base::Bind(
597 &DevToolsBeforeUnloadTest::CloseInspectedBrowser, this)); 600 &DevToolsBeforeUnloadTest::CloseInspectedBrowser, this));
598 } 601 }
599 602
600 // Tests that BeforeUnload event gets called on undocked devtools if 603 // Tests that BeforeUnload event gets called on undocked devtools if
601 // we try to close them. 604 // we try to close them.
602 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest, TestUndockedDevToolsClose) { 605 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest, TestUndockedDevToolsClose) {
603 RunBeforeUnloadSanityTest(DEVTOOLS_DOCK_SIDE_UNDOCKED, base::Bind( 606 RunBeforeUnloadSanityTest(false, base::Bind(
604 &DevToolsBeforeUnloadTest::CloseUndockedDevTools, this), false); 607 &DevToolsBeforeUnloadTest::CloseUndockedDevTools, this), false);
605 } 608 }
606 609
607 // Tests that BeforeUnload event gets called on undocked devtools if 610 // Tests that BeforeUnload event gets called on undocked devtools if
608 // we try to close the inspected page. 611 // we try to close the inspected page.
609 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest, 612 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest,
610 TestUndockedDevToolsInspectedTabClose) { 613 TestUndockedDevToolsInspectedTabClose) {
611 RunBeforeUnloadSanityTest(DEVTOOLS_DOCK_SIDE_UNDOCKED, base::Bind( 614 RunBeforeUnloadSanityTest(false, base::Bind(
612 &DevToolsBeforeUnloadTest::CloseInspectedTab, this)); 615 &DevToolsBeforeUnloadTest::CloseInspectedTab, this));
613 } 616 }
614 617
615 // Tests that BeforeUnload event gets called on undocked devtools if 618 // Tests that BeforeUnload event gets called on undocked devtools if
616 // we try to close the inspected browser. 619 // we try to close the inspected browser.
617 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest, 620 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest,
618 TestUndockedDevToolsInspectedBrowserClose) { 621 TestUndockedDevToolsInspectedBrowserClose) {
619 RunBeforeUnloadSanityTest(DEVTOOLS_DOCK_SIDE_UNDOCKED, base::Bind( 622 RunBeforeUnloadSanityTest(false, base::Bind(
620 &DevToolsBeforeUnloadTest::CloseInspectedBrowser, this)); 623 &DevToolsBeforeUnloadTest::CloseInspectedBrowser, this));
621 } 624 }
622 625
623 // Tests that BeforeUnload event gets called on undocked devtools if 626 // Tests that BeforeUnload event gets called on undocked devtools if
624 // we try to exit application. 627 // we try to exit application.
625 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest, 628 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest,
626 TestUndockedDevToolsApplicationClose) { 629 TestUndockedDevToolsApplicationClose) {
627 RunBeforeUnloadSanityTest(DEVTOOLS_DOCK_SIDE_UNDOCKED, base::Bind( 630 RunBeforeUnloadSanityTest(false, base::Bind(
628 &chrome::CloseAllBrowsers)); 631 &chrome::CloseAllBrowsers));
629 } 632 }
630 633
631 // Tests that inspected tab gets closed if devtools renderer 634 // Tests that inspected tab gets closed if devtools renderer
632 // becomes unresponsive during beforeunload event interception. 635 // becomes unresponsive during beforeunload event interception.
633 // @see http://crbug.com/322380 636 // @see http://crbug.com/322380
634 IN_PROC_BROWSER_TEST_F(DevToolsUnresponsiveBeforeUnloadTest, 637 IN_PROC_BROWSER_TEST_F(DevToolsUnresponsiveBeforeUnloadTest,
635 TestUndockedDevToolsUnresponsive) { 638 TestUndockedDevToolsUnresponsive) {
636 ASSERT_TRUE(test_server()->Start()); 639 ASSERT_TRUE(test_server()->Start());
637 LoadTestPage(kDebuggerTestPage); 640 LoadTestPage(kDebuggerTestPage);
638 DevToolsWindow* devtools_window = OpenDevToolWindowOnWebContents( 641 DevToolsWindow* devtools_window = OpenDevToolWindowOnWebContents(
639 GetInspectedTab()); 642 GetInspectedTab());
640 devtools_window->SetDockSideForTest(DEVTOOLS_DOCK_SIDE_UNDOCKED); 643 devtools_window->SetIsDockedForTest(false);
641 content::WindowedNotificationObserver devtools_close_observer( 644 content::WindowedNotificationObserver devtools_close_observer(
642 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 645 content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
643 content::Source<content::WebContents>( 646 content::Source<content::WebContents>(
644 devtools_window->web_contents())); 647 devtools_window->web_contents()));
645 648
646 ASSERT_TRUE(content::ExecuteScript( 649 ASSERT_TRUE(content::ExecuteScript(
647 devtools_window->web_contents()->GetRenderViewHost(), 650 devtools_window->web_contents()->GetRenderViewHost(),
648 "window.addEventListener('beforeunload'," 651 "window.addEventListener('beforeunload',"
649 "function(event) { while (true); });")); 652 "function(event) { while (true); });"));
650 CloseInspectedTab(); 653 CloseInspectedTab();
651 devtools_close_observer.Wait(); 654 devtools_close_observer.Wait();
652 } 655 }
653 656
654 // Tests that closing worker inspector window does not cause browser crash 657 // Tests that closing worker inspector window does not cause browser crash
655 // @see http://crbug.com/323031 658 // @see http://crbug.com/323031
656 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest, 659 IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest,
657 TestWorkerWindowClosing) { 660 TestWorkerWindowClosing) {
658 ASSERT_TRUE(test_server()->Start()); 661 ASSERT_TRUE(test_server()->Start());
659 LoadTestPage(kDebuggerTestPage); 662 LoadTestPage(kDebuggerTestPage);
660 DevToolsWindow* devtools_window = OpenDevToolWindowOnWebContents( 663 DevToolsWindow* devtools_window = OpenDevToolWindowOnWebContents(
661 GetInspectedTab()); 664 GetInspectedTab());
662 devtools_window->SetDockSideForTest(DEVTOOLS_DOCK_SIDE_UNDOCKED); 665 devtools_window->SetIsDockedForTest(false);
663 content::WindowedNotificationObserver devtools_close_observer( 666 content::WindowedNotificationObserver devtools_close_observer(
664 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 667 content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
665 content::Source<content::WebContents>( 668 content::Source<content::WebContents>(
666 devtools_window->web_contents())); 669 devtools_window->web_contents()));
667 670
668 OpenDevToolsPopupWindow(devtools_window); 671 OpenDevToolsPopupWindow(devtools_window);
669 CloseDevToolsPopupWindow(devtools_window); 672 CloseDevToolsPopupWindow(devtools_window);
670 } 673 }
671 674
672 // Tests that BeforeUnload event gets called on devtools that are opened 675 // Tests that BeforeUnload event gets called on devtools that are opened
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
852 // Tests that console messages are not duplicated on navigation back. 855 // Tests that console messages are not duplicated on navigation back.
853 IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestConsoleOnNavigateBack) { 856 IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestConsoleOnNavigateBack) {
854 RunTest("testConsoleOnNavigateBack", kNavigateBackTestPage); 857 RunTest("testConsoleOnNavigateBack", kNavigateBackTestPage);
855 } 858 }
856 859
857 860
858 // Tests that external navigation from inspector page is always handled by 861 // Tests that external navigation from inspector page is always handled by
859 // DevToolsWindow and results in inspected page navigation. 862 // DevToolsWindow and results in inspected page navigation.
860 IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestDevToolsExternalNavigation) { 863 IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestDevToolsExternalNavigation) {
861 OpenDevToolsWindow(kDebuggerTestPage); 864 OpenDevToolsWindow(kDebuggerTestPage);
865 window_->SetIsDockedForTest(true);
862 GURL url = test_server()->GetURL(kNavigateBackTestPage); 866 GURL url = test_server()->GetURL(kNavigateBackTestPage);
863 content::WindowedNotificationObserver observer( 867 content::WindowedNotificationObserver observer(
864 content::NOTIFICATION_LOAD_STOP, 868 content::NOTIFICATION_LOAD_STOP,
865 content::NotificationService::AllSources()); 869 content::NotificationService::AllSources());
866 ASSERT_TRUE(content::ExecuteScript( 870 ASSERT_TRUE(content::ExecuteScript(
867 window_->web_contents(), 871 window_->web_contents(),
868 std::string("window.location = \"") + url.spec() + "\"")); 872 std::string("window.location = \"") + url.spec() + "\""));
869 observer.Wait(); 873 observer.Wait();
870 874
871 ASSERT_TRUE(window_->web_contents()->GetURL(). 875 ASSERT_TRUE(window_->web_contents()->GetURL().
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
986 990
987 IN_PROC_BROWSER_TEST_F(RemoteDebuggingTest, RemoteDebugger) { 991 IN_PROC_BROWSER_TEST_F(RemoteDebuggingTest, RemoteDebugger) {
988 #if defined(OS_WIN) && defined(USE_ASH) 992 #if defined(OS_WIN) && defined(USE_ASH)
989 // Disable this test in Metro+Ash for now (http://crbug.com/262796). 993 // Disable this test in Metro+Ash for now (http://crbug.com/262796).
990 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) 994 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests))
991 return; 995 return;
992 #endif 996 #endif
993 997
994 ASSERT_TRUE(RunExtensionTest("target_list")) << message_; 998 ASSERT_TRUE(RunExtensionTest("target_list")) << message_;
995 } 999 }
996
997 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698