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

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

Issue 56016: Fix renderer hang caused when a synchronous XHR is disallowed for security... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 11 years, 9 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 <sstream> 5 #include <sstream>
6 #include <string> 6 #include <string>
7 7
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 L"files/sync_xmlhttprequest.html")); 100 L"files/sync_xmlhttprequest.html"));
101 101
102 // Let's check the XMLHttpRequest ran successfully. 102 // Let's check the XMLHttpRequest ran successfully.
103 bool success = false; 103 bool success = false;
104 EXPECT_TRUE(tab->ExecuteAndExtractBool(L"", 104 EXPECT_TRUE(tab->ExecuteAndExtractBool(L"",
105 L"window.domAutomationController.send(DidSyncRequestSucceed());", 105 L"window.domAutomationController.send(DidSyncRequestSucceed());",
106 &success)); 106 &success));
107 EXPECT_TRUE(success); 107 EXPECT_TRUE(success);
108 } 108 }
109 109
110 TEST_F(ResourceDispatcherTest, SyncXMLHttpRequest_Disallowed) {
111 const wchar_t kDocRoot[] = L"chrome/test/data";
112 scoped_refptr<HTTPTestServer> server =
113 HTTPTestServer::CreateServer(kDocRoot, NULL);
114 ASSERT_TRUE(NULL != server.get());
115
116 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0));
117 EXPECT_TRUE(browser_proxy.get());
118 scoped_ptr<TabProxy> tab(browser_proxy->GetActiveTab());
119 tab->NavigateToURL(server->TestServerPageW(
120 L"files/sync_xmlhttprequest_disallowed.html"));
121
122 // Let's check the XMLHttpRequest ran successfully.
123 bool success = false;
124 EXPECT_TRUE(tab->ExecuteAndExtractBool(L"",
125 L"window.domAutomationController.send(DidSucceed());",
126 &success));
127 EXPECT_TRUE(success);
128 }
129
110 // Test for bug #1159553 -- A synchronous xhr (whose content-type is 130 // Test for bug #1159553 -- A synchronous xhr (whose content-type is
111 // downloadable) would trigger download and hang the renderer process, 131 // downloadable) would trigger download and hang the renderer process,
112 // if executed while navigating to a new page. 132 // if executed while navigating to a new page.
113 TEST_F(ResourceDispatcherTest, SyncXMLHttpRequestDuringUnload) { 133 TEST_F(ResourceDispatcherTest, SyncXMLHttpRequest_DuringUnload) {
114 const wchar_t kDocRoot[] = L"chrome/test/data"; 134 const wchar_t kDocRoot[] = L"chrome/test/data";
115 scoped_refptr<HTTPTestServer> server = 135 scoped_refptr<HTTPTestServer> server =
116 HTTPTestServer::CreateServer(kDocRoot, NULL); 136 HTTPTestServer::CreateServer(kDocRoot, NULL);
117 ASSERT_TRUE(NULL != server.get()); 137 ASSERT_TRUE(NULL != server.get());
118 138
119 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); 139 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0));
120 EXPECT_TRUE(browser_proxy.get()); 140 EXPECT_TRUE(browser_proxy.get());
121 scoped_ptr<TabProxy> tab(browser_proxy->GetActiveTab()); 141 scoped_ptr<TabProxy> tab(browser_proxy->GetActiveTab());
122 142
123 tab->NavigateToURL( 143 tab->NavigateToURL(
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 // the onunload handler, and the navigation would fail. 289 // the onunload handler, and the navigation would fail.
270 // (Test by redirecting to javascript:window.location='someURL'.) 290 // (Test by redirecting to javascript:window.location='someURL'.)
271 GURL test_url(server->TestServerPageW(L"files/title2.html")); 291 GURL test_url(server->TestServerPageW(L"files/title2.html"));
272 std::wstring redirect_url = L"javascript:window.location='" + 292 std::wstring redirect_url = L"javascript:window.location='" +
273 ASCIIToWide(test_url.possibly_invalid_spec()) + L"'"; 293 ASCIIToWide(test_url.possibly_invalid_spec()) + L"'";
274 tab->NavigateToURLAsync(GURL(redirect_url)); 294 tab->NavigateToURLAsync(GURL(redirect_url));
275 Sleep(sleep_timeout_ms()); // Wait for JavaScript redirect to happen. 295 Sleep(sleep_timeout_ms()); // Wait for JavaScript redirect to happen.
276 EXPECT_TRUE(tab->GetTabTitle(&tab_title)); 296 EXPECT_TRUE(tab->GetTabTitle(&tab_title));
277 EXPECT_EQ(L"Title Of Awesomeness", tab_title); 297 EXPECT_EQ(L"Title Of Awesomeness", tab_title);
278 } 298 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/resource_dispatcher_host.cc ('k') | chrome/browser/renderer_host/resource_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698