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

Side by Side Diff: chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc

Issue 442303002: DevTools: migrate DevTools APIs to use WebContents instead of RenderViewHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: for landing Created 6 years, 4 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 | Annotate | Revision Log
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/command_line.h" 5 #include "base/command_line.h"
6 #include "chrome/browser/chrome_notification_types.h" 6 #include "chrome/browser/chrome_notification_types.h"
7 #include "chrome/browser/devtools/devtools_window.h" 7 #include "chrome/browser/devtools/devtools_window.h"
8 #include "chrome/browser/search/search.h" 8 #include "chrome/browser/search/search.h"
9 #include "chrome/browser/ui/browser.h" 9 #include "chrome/browser/ui/browser.h"
10 #include "chrome/browser/ui/browser_commands.h" 10 #include "chrome/browser/ui/browser_commands.h"
(...skipping 23 matching lines...) Expand all
34 content::RenderProcessHost::AllHostsIterator(); 34 content::RenderProcessHost::AllHostsIterator();
35 int count = 0; 35 int count = 0;
36 while (!hosts.IsAtEnd()) { 36 while (!hosts.IsAtEnd()) {
37 if (hosts.GetCurrentValue()->HasConnection()) 37 if (hosts.GetCurrentValue()->HasConnection())
38 count++; 38 count++;
39 hosts.Advance(); 39 hosts.Advance();
40 } 40 }
41 return count; 41 return count;
42 } 42 }
43 43
44 RenderViewHost* FindFirstDevToolsHost() { 44 WebContents* FindFirstDevToolsContents() {
45 scoped_ptr<content::RenderWidgetHostIterator> widgets( 45 scoped_ptr<content::RenderWidgetHostIterator> widgets(
46 RenderWidgetHost::GetRenderWidgetHosts()); 46 RenderWidgetHost::GetRenderWidgetHosts());
47 while (content::RenderWidgetHost* widget = widgets->GetNextHost()) { 47 while (content::RenderWidgetHost* widget = widgets->GetNextHost()) {
48 if (!widget->GetProcess()->HasConnection()) 48 if (!widget->GetProcess()->HasConnection())
49 continue; 49 continue;
50 if (!widget->IsRenderView()) 50 if (!widget->IsRenderView())
51 continue; 51 continue;
52 RenderViewHost* host = RenderViewHost::From(widget); 52 RenderViewHost* host = RenderViewHost::From(widget);
53 WebContents* contents = WebContents::FromRenderViewHost(host); 53 WebContents* contents = WebContents::FromRenderViewHost(host);
54 GURL url = contents->GetURL(); 54 GURL url = contents->GetURL();
55 if (url.SchemeIs(content::kChromeDevToolsScheme)) 55 if (url.SchemeIs(content::kChromeDevToolsScheme))
56 return host; 56 return contents;
57 } 57 }
58 return NULL; 58 return NULL;
59 } 59 }
60 60
61 } // namespace 61 } // namespace
62 62
63 class ChromeRenderProcessHostTest : public InProcessBrowserTest { 63 class ChromeRenderProcessHostTest : public InProcessBrowserTest {
64 public: 64 public:
65 ChromeRenderProcessHostTest() {} 65 ChromeRenderProcessHostTest() {}
66 66
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 host_count++; 361 host_count++;
362 EXPECT_EQ(tab_count, browser()->tab_strip_model()->count()); 362 EXPECT_EQ(tab_count, browser()->tab_strip_model()->count());
363 EXPECT_EQ(host_count, RenderProcessHostCount()); 363 EXPECT_EQ(host_count, RenderProcessHostCount());
364 364
365 // DevTools start in docked mode (no new tab), in a separate process. 365 // DevTools start in docked mode (no new tab), in a separate process.
366 chrome::ToggleDevToolsWindow(browser(), DevToolsToggleAction::Inspect()); 366 chrome::ToggleDevToolsWindow(browser(), DevToolsToggleAction::Inspect());
367 host_count++; 367 host_count++;
368 EXPECT_EQ(tab_count, browser()->tab_strip_model()->count()); 368 EXPECT_EQ(tab_count, browser()->tab_strip_model()->count());
369 EXPECT_EQ(host_count, RenderProcessHostCount()); 369 EXPECT_EQ(host_count, RenderProcessHostCount());
370 370
371 RenderViewHost* devtools = FindFirstDevToolsHost(); 371 WebContents* devtools = FindFirstDevToolsContents();
372 DCHECK(devtools); 372 DCHECK(devtools);
373 373
374 // DevTools start in a separate process. 374 // DevTools start in a separate process.
375 DevToolsWindow::OpenDevToolsWindow(devtools, DevToolsToggleAction::Inspect()); 375 DevToolsWindow::OpenDevToolsWindow(devtools, DevToolsToggleAction::Inspect());
376 host_count++; 376 host_count++;
377 EXPECT_EQ(tab_count, browser()->tab_strip_model()->count()); 377 EXPECT_EQ(tab_count, browser()->tab_strip_model()->count());
378 EXPECT_EQ(host_count, RenderProcessHostCount()); 378 EXPECT_EQ(host_count, RenderProcessHostCount());
379 379
380 // close docked devtools 380 // close docked devtools
381 content::WindowedNotificationObserver close_observer( 381 content::WindowedNotificationObserver close_observer(
382 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 382 content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
383 content::Source<WebContents>(WebContents::FromRenderViewHost(devtools))); 383 content::Source<WebContents>(devtools));
384 384
385 chrome::ToggleDevToolsWindow(browser(), DevToolsToggleAction::Toggle()); 385 chrome::ToggleDevToolsWindow(browser(), DevToolsToggleAction::Toggle());
386 close_observer.Wait(); 386 close_observer.Wait();
387 } 387 }
388 388
389 // Ensure that DevTools opened to debug DevTools is launched in a separate 389 // Ensure that DevTools opened to debug DevTools is launched in a separate
390 // process. See crbug.com/69873. 390 // process. See crbug.com/69873.
391 IN_PROC_BROWSER_TEST_F(ChromeRenderProcessHostTest, 391 IN_PROC_BROWSER_TEST_F(ChromeRenderProcessHostTest,
392 DevToolsOnSelfInOwnProcess) { 392 DevToolsOnSelfInOwnProcess) {
393 #if defined(OS_WIN) && defined(USE_ASH) 393 #if defined(OS_WIN) && defined(USE_ASH)
(...skipping 14 matching lines...) Expand all
408 host_count++; 408 host_count++;
409 EXPECT_EQ(tab_count, browser()->tab_strip_model()->count()); 409 EXPECT_EQ(tab_count, browser()->tab_strip_model()->count());
410 EXPECT_EQ(host_count, RenderProcessHostCount()); 410 EXPECT_EQ(host_count, RenderProcessHostCount());
411 411
412 // DevTools start in docked mode (no new tab), in a separate process. 412 // DevTools start in docked mode (no new tab), in a separate process.
413 chrome::ToggleDevToolsWindow(browser(), DevToolsToggleAction::Inspect()); 413 chrome::ToggleDevToolsWindow(browser(), DevToolsToggleAction::Inspect());
414 host_count++; 414 host_count++;
415 EXPECT_EQ(tab_count, browser()->tab_strip_model()->count()); 415 EXPECT_EQ(tab_count, browser()->tab_strip_model()->count());
416 EXPECT_EQ(host_count, RenderProcessHostCount()); 416 EXPECT_EQ(host_count, RenderProcessHostCount());
417 417
418 RenderViewHost* devtools = FindFirstDevToolsHost(); 418 WebContents* devtools = FindFirstDevToolsContents();
419 DCHECK(devtools); 419 DCHECK(devtools);
420 420
421 // DevTools start in a separate process. 421 // DevTools start in a separate process.
422 DevToolsWindow::OpenDevToolsWindow(devtools, DevToolsToggleAction::Inspect()); 422 DevToolsWindow::OpenDevToolsWindow(devtools, DevToolsToggleAction::Inspect());
423 host_count++; 423 host_count++;
424 EXPECT_EQ(tab_count, browser()->tab_strip_model()->count()); 424 EXPECT_EQ(tab_count, browser()->tab_strip_model()->count());
425 EXPECT_EQ(host_count, RenderProcessHostCount()); 425 EXPECT_EQ(host_count, RenderProcessHostCount());
426 426
427 // close docked devtools 427 // close docked devtools
428 content::WindowedNotificationObserver close_observer( 428 content::WindowedNotificationObserver close_observer(
429 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 429 content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
430 content::Source<content::WebContents>( 430 content::Source<content::WebContents>(devtools));
431 WebContents::FromRenderViewHost(devtools)));
432 chrome::ToggleDevToolsWindow(browser(), DevToolsToggleAction::Toggle()); 431 chrome::ToggleDevToolsWindow(browser(), DevToolsToggleAction::Toggle());
433 close_observer.Wait(); 432 close_observer.Wait();
434 } 433 }
435 434
436 // This class's goal is to close the browser window when a renderer process has 435 // This class's goal is to close the browser window when a renderer process has
437 // crashed. It does so by monitoring WebContents for RenderProcessGone event and 436 // crashed. It does so by monitoring WebContents for RenderProcessGone event and
438 // closing the passed in TabStripModel. This is used in the following test case. 437 // closing the passed in TabStripModel. This is used in the following test case.
439 class WindowDestroyer : public content::WebContentsObserver { 438 class WindowDestroyer : public content::WebContentsObserver {
440 public: 439 public:
441 WindowDestroyer(content::WebContents* web_contents, TabStripModel* model) 440 WindowDestroyer(content::WebContents* web_contents, TabStripModel* model)
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 chrome::NOTIFICATION_BROWSER_CLOSED, 487 chrome::NOTIFICATION_BROWSER_CLOSED,
489 content::NotificationService::AllSources()); 488 content::NotificationService::AllSources());
490 489
491 // Kill the renderer process, simulating a crash. This should the ProcessDied 490 // Kill the renderer process, simulating a crash. This should the ProcessDied
492 // method to be called. Alternatively, RenderProcessHost::OnChannelError can 491 // method to be called. Alternatively, RenderProcessHost::OnChannelError can
493 // be called to directly force a call to ProcessDied. 492 // be called to directly force a call to ProcessDied.
494 base::KillProcess(wc1->GetRenderProcessHost()->GetHandle(), -1, true); 493 base::KillProcess(wc1->GetRenderProcessHost()->GetHandle(), -1, true);
495 494
496 observer.Wait(); 495 observer.Wait();
497 } 496 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_context_menu/render_view_context_menu.cc ('k') | chrome/browser/task_manager/renderer_resource.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698