summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/test/data/window.open.blank.html20
-rw-r--r--content/browser/renderer_host/render_view_host_browsertest.cc39
-rw-r--r--content/renderer/render_view.cc2
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);