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

Unified Diff: chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc

Issue 7049010: Finish removing url_constants from content/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: constants Created 9 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/chrome_tests.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc
diff --git a/chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc b/chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..31295f673a0d8c78b814ffdbfbe521563d5ba899
--- /dev/null
+++ b/chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc
@@ -0,0 +1,120 @@
+// Copyright (c) 2011 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 "content/browser/renderer_host/render_process_host_browsertest.h"
+
+#include "base/command_line.h"
+#include "chrome/browser/debugger/devtools_manager.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/common/chrome_switches.h"
+#include "chrome/common/url_constants.h"
+#include "chrome/test/ui_test_utils.h"
+#include "content/browser/renderer_host/render_process_host.h"
+#include "content/browser/renderer_host/render_view_host.h"
+#include "content/browser/renderer_host/render_view_host_delegate.h"
+
+namespace {
+
+RenderViewHost* FindFirstDevToolsHost() {
+ RenderProcessHost::iterator hosts = RenderProcessHost::AllHostsIterator();
+ for (; !hosts.IsAtEnd(); hosts.Advance()) {
+ RenderProcessHost* render_process_host = hosts.GetCurrentValue();
+ DCHECK(render_process_host);
+ if (!render_process_host->HasConnection())
+ continue;
+ RenderProcessHost::listeners_iterator iter(
+ render_process_host->ListenersIterator());
+ for (; !iter.IsAtEnd(); iter.Advance()) {
+ const RenderWidgetHost* widget =
+ static_cast<const RenderWidgetHost*>(iter.GetCurrentValue());
+ DCHECK(widget);
+ if (!widget || !widget->IsRenderView())
+ continue;
+ RenderViewHost* host = const_cast<RenderViewHost*>(
+ static_cast<const RenderViewHost*>(widget));
+ RenderViewHostDelegate* host_delegate = host->delegate();
+ GURL url = host_delegate->GetURL();
+ if (url.SchemeIs(chrome::kChromeDevToolsScheme))
+ return host;
+ }
+ }
+ return NULL;
+}
+
+} // namespace
+
+// Ensure that DevTools opened to debug DevTools is launched in a separate
+// process when --process-per-tab is set. See crbug.com/69873.
+IN_PROC_BROWSER_TEST_F(RenderProcessHostTest, DevToolsOnSelfInOwnProcessPPT) {
+ CommandLine& parsed_command_line = *CommandLine::ForCurrentProcess();
+ parsed_command_line.AppendSwitch(switches::kProcessPerTab);
+
+ int tab_count = 1;
+ int host_count = 1;
+
+#if defined(TOUCH_UI)
+ ++host_count; // For the touch keyboard.
+#endif
+
+ GURL page1("data:text/html,hello world1");
+ browser()->ShowSingletonTab(page1);
+ if (browser()->tab_count() == tab_count)
+ ui_test_utils::WaitForNewTab(browser());
+ tab_count++;
+ host_count++;
+ EXPECT_EQ(tab_count, browser()->tab_count());
+ EXPECT_EQ(host_count, RenderProcessHostCount());
+
+ // DevTools start in docked mode (no new tab), in a separate process.
+ browser()->ToggleDevToolsWindow(DEVTOOLS_TOGGLE_ACTION_INSPECT);
+ host_count++;
+ EXPECT_EQ(tab_count, browser()->tab_count());
+ EXPECT_EQ(host_count, RenderProcessHostCount());
+
+ RenderViewHost* devtools = FindFirstDevToolsHost();
+ DCHECK(devtools);
+
+ // DevTools start in a separate process.
+ DevToolsManager::GetInstance()->ToggleDevToolsWindow(
+ devtools, DEVTOOLS_TOGGLE_ACTION_INSPECT);
+ host_count++;
+ EXPECT_EQ(tab_count, browser()->tab_count());
+ EXPECT_EQ(host_count, RenderProcessHostCount());
+}
+
+// Ensure that DevTools opened to debug DevTools is launched in a separate
+// process. See crbug.com/69873.
+IN_PROC_BROWSER_TEST_F(RenderProcessHostTest, DevToolsOnSelfInOwnProcess) {
+ int tab_count = 1;
+ int host_count = 1;
+
+#if defined(TOUCH_UI)
+ ++host_count; // For the touch keyboard.
+#endif
+
+ GURL page1("data:text/html,hello world1");
+ browser()->ShowSingletonTab(page1);
+ if (browser()->tab_count() == tab_count)
+ ui_test_utils::WaitForNewTab(browser());
+ tab_count++;
+ host_count++;
+ EXPECT_EQ(tab_count, browser()->tab_count());
+ EXPECT_EQ(host_count, RenderProcessHostCount());
+
+ // DevTools start in docked mode (no new tab), in a separate process.
+ browser()->ToggleDevToolsWindow(DEVTOOLS_TOGGLE_ACTION_INSPECT);
+ host_count++;
+ EXPECT_EQ(tab_count, browser()->tab_count());
+ EXPECT_EQ(host_count, RenderProcessHostCount());
+
+ RenderViewHost* devtools = FindFirstDevToolsHost();
+ DCHECK(devtools);
+
+ // DevTools start in a separate process.
+ DevToolsManager::GetInstance()->ToggleDevToolsWindow(
+ devtools, DEVTOOLS_TOGGLE_ACTION_INSPECT);
+ host_count++;
+ EXPECT_EQ(tab_count, browser()->tab_count());
+ EXPECT_EQ(host_count, RenderProcessHostCount());
+}
« no previous file with comments | « no previous file | chrome/chrome_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698