diff options
-rw-r--r-- | chrome/test/data/window.open.blank.html | 20 | ||||
-rw-r--r-- | content/browser/renderer_host/render_view_host_browsertest.cc | 39 | ||||
-rw-r--r-- | content/renderer/render_view.cc | 2 |
3 files changed, 57 insertions, 4 deletions
diff --git a/chrome/test/data/window.open.blank.html b/chrome/test/data/window.open.blank.html new file mode 100644 index 0000000..03a8328 --- /dev/null +++ b/chrome/test/data/window.open.blank.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> + <title>88129</title> + <script> + function openWindow1() { + var name = window.open('window.open.blank.html', 'blank').name; + window.domAutomationController.send(name); + } + + function openWindow2() { + var name = window.open('window.open.blank.html', '_blank').name; + window.domAutomationController.send(name); + } + </script> +</head> +<body> + <h1>88129</h1> +</body> +</html> diff --git a/content/browser/renderer_host/render_view_host_browsertest.cc b/content/browser/renderer_host/render_view_host_browsertest.cc index fa2c9e6..89e30ef 100644 --- a/content/browser/renderer_host/render_view_host_browsertest.cc +++ b/content/browser/renderer_host/render_view_host_browsertest.cc @@ -50,7 +50,9 @@ class ExecuteNotificationObserver : public NotificationObserver { class RenderViewHostTest : public InProcessBrowserTest { public: - RenderViewHostTest() : last_execute_id_(0) {} + RenderViewHostTest() : last_execute_id_(0) { + EnableDOMAutomation(); + } void ExecuteJavascriptAndGetValue(const char* script, ExecuteNotificationObserver* out_result) { @@ -71,6 +73,17 @@ class RenderViewHostTest : public InProcessBrowserTest { last_execute_id_ = execute_id; } + protected: + bool GetCreatedWindowName(const GURL& url, + const wchar_t* function, + std::string* window_name) { + ui_test_utils::NavigateToURL(browser(), url); + + return ui_test_utils::ExecuteJavaScriptAndExtractString( + browser()->GetSelectedTabContents()->render_view_host(), + L"", function, window_name); + } + private: int last_execute_id_; }; @@ -235,7 +248,7 @@ class RenderViewHostTestTabContentsObserver : public TabContentsObserver { IN_PROC_BROWSER_TEST_F(RenderViewHostTest, FrameNavigateSocketAddress) { ASSERT_TRUE(test_server()->Start()); RenderViewHostTestTabContentsObserver observer( - browser()->GetSelectedTabContents()); + browser()->GetSelectedTabContents()); GURL test_url = test_server()->GetURL("files/simple.html"); ui_test_utils::NavigateToURL(browser(), test_url); @@ -244,3 +257,25 @@ IN_PROC_BROWSER_TEST_F(RenderViewHostTest, FrameNavigateSocketAddress) { observer.observed_socket_address().ToString()); EXPECT_EQ(1, observer.navigation_count()); } + +// Regression test for http://crbug.com/88129 +IN_PROC_BROWSER_TEST_F(RenderViewHostTest, WindowOpen1) { + ASSERT_TRUE(test_server()->Start()); + + GURL url(test_server()->GetURL("files/window.open.blank.html")); + std::string window_name; + ASSERT_TRUE(GetCreatedWindowName(url, L"openWindow1();", &window_name)); + + EXPECT_EQ(window_name, "blank") << "Actual Window Name: " << window_name; +} + +// Regression test for http://crbug.com/88129 +IN_PROC_BROWSER_TEST_F(RenderViewHostTest, WindowOpen2) { + ASSERT_TRUE(test_server()->Start()); + + GURL url(test_server()->GetURL("files/window.open.blank.html")); + std::string window_name; + ASSERT_TRUE(GetCreatedWindowName(url, L"openWindow2();", &window_name)); + + EXPECT_EQ(window_name, "") << "Actual Window Name: " << window_name; +} diff --git a/content/renderer/render_view.cc b/content/renderer/render_view.cc index 7259547..718fd2b 100644 --- a/content/renderer/render_view.cc +++ b/content/renderer/render_view.cc @@ -405,8 +405,6 @@ RenderView::RenderView(RenderThreadBase* render_thread, g_view_map.Get().insert(std::make_pair(webview(), this)); webkit_preferences_.Apply(webview()); webview()->initializeMainFrame(this); - if (!frame_name.empty()) - webview()->mainFrame()->setName(frame_name); webview()->settings()->setMinimumTimerInterval( is_hidden() ? webkit_glue::kBackgroundTabTimerInterval : webkit_glue::kForegroundTabTimerInterval); |