Index: content/browser/loader/url_loader_factory_impl_unittest.cc |
diff --git a/content/browser/loader/url_loader_factory_impl_unittest.cc b/content/browser/loader/url_loader_factory_impl_unittest.cc |
index 9620798638c1750f87bf2490e64d34cf5b9e5a3f..8eefe67405012bdcfd50ff06e5f1270e58628ae6 100644 |
--- a/content/browser/loader/url_loader_factory_impl_unittest.cc |
+++ b/content/browser/loader/url_loader_factory_impl_unittest.cc |
@@ -33,7 +33,6 @@ |
#include "content/public/browser/resource_context.h" |
#include "content/public/browser/resource_dispatcher_host_delegate.h" |
#include "content/public/common/content_paths.h" |
-#include "content/public/common/process_type.h" |
#include "content/public/test/test_browser_context.h" |
#include "content/public/test/test_browser_thread_bundle.h" |
#include "mojo/public/c/system/data_pipe.h" |
@@ -52,6 +51,7 @@ |
#include "net/url_request/url_request_filter.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "url/gurl.h" |
+#include "url/origin.h" |
namespace content { |
@@ -83,23 +83,19 @@ class URLLoaderFactoryImplTest : public ::testing::TestWithParam<size_t> { |
browser_context_(new TestBrowserContext()), |
resource_message_filter_(new ResourceMessageFilter( |
kChildId, |
- // If browser side navigation is enabled then |
- // ResourceDispatcherHostImpl prevents main frame URL requests from |
- // the renderer. Ensure that these checks don't trip us up by |
- // setting the process type in ResourceMessageFilter as |
- // PROCESS_TYPE_UNKNOWN. |
- PROCESS_TYPE_UNKNOWN, |
nullptr, |
nullptr, |
nullptr, |
nullptr, |
base::Bind(&URLLoaderFactoryImplTest::GetContexts, |
base::Unretained(this)))) { |
+ resource_message_filter_->InitializeForTest(); |
MojoAsyncResourceHandler::SetAllocationSizeForTesting(GetParam()); |
rdh_.SetLoaderDelegate(&loader_deleate_); |
- URLLoaderFactoryImpl::Create(resource_message_filter_, |
- mojo::GetProxy(&factory_)); |
+ URLLoaderFactoryImpl::Create( |
+ resource_message_filter_->requester_info_for_test(), |
+ mojo::GetProxy(&factory_)); |
// Calling this function creates a request context. |
browser_context_->GetResourceContext()->GetRequestContext(); |
@@ -149,7 +145,12 @@ TEST_P(URLLoaderFactoryImplTest, GetResponse) { |
// Assume the file contents is small enough to be stored in the data pipe. |
request.url = net::URLRequestMockHTTPJob::GetMockUrl("hello.html"); |
request.method = "GET"; |
- request.is_main_frame = true; |
+ // |resource_type| can't be a frame type. It is because when PlzNavigate is |
+ // enabled, the url scheme of frame type requests from the renderer process |
+ // must be blob scheme. |
+ request.resource_type = RESOURCE_TYPE_XHR; |
+ // Need to set |request_initiator| for non main frame type request. |
+ request.request_initiator = url::Origin(); |
factory_->CreateLoaderAndStart( |
mojo::GetProxy(&loader, factory_.associated_group()), kRoutingId, |
kRequestId, request, |
@@ -218,6 +219,12 @@ TEST_P(URLLoaderFactoryImplTest, GetFailedResponse) { |
request.url = net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( |
net::URLRequestFailedJob::START, net::ERR_TIMED_OUT); |
request.method = "GET"; |
+ // |resource_type| can't be a frame type. It is because when PlzNavigate is |
+ // enabled, the url scheme of frame type requests from the renderer process |
+ // must be blob scheme. |
+ request.resource_type = RESOURCE_TYPE_XHR; |
+ // Need to set |request_initiator| for non main frame type request. |
+ request.request_initiator = url::Origin(); |
factory_->CreateLoaderAndStart( |
mojo::GetProxy(&loader, factory_.associated_group()), 2, 1, request, |
client.CreateRemoteAssociatedPtrInfo(factory_.associated_group())); |
@@ -241,7 +248,12 @@ TEST_P(URLLoaderFactoryImplTest, GetFailedResponse2) { |
request.url = net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( |
net::URLRequestFailedJob::READ_ASYNC, net::ERR_TIMED_OUT); |
request.method = "GET"; |
- request.is_main_frame = true; |
+ // |resource_type| can't be a frame type. It is because when PlzNavigate is |
+ // enabled, the url scheme of frame type requests from the renderer process |
+ // must be blob scheme. |
+ request.resource_type = RESOURCE_TYPE_XHR; |
+ // Need to set |request_initiator| for non main frame type request. |
+ request.request_initiator = url::Origin(); |
factory_->CreateLoaderAndStart( |
mojo::GetProxy(&loader, factory_.associated_group()), 2, 1, request, |
client.CreateRemoteAssociatedPtrInfo(factory_.associated_group())); |
@@ -262,6 +274,12 @@ TEST_P(URLLoaderFactoryImplTest, InvalidURL) { |
TestURLLoaderClient client; |
request.url = GURL(); |
request.method = "GET"; |
+ // |resource_type| can't be a frame type. It is because when PlzNavigate is |
+ // enabled, the url scheme of frame type requests from the renderer process |
+ // must be blob scheme. |
+ request.resource_type = RESOURCE_TYPE_XHR; |
+ // Need to set |request_initiator| for non main frame type request. |
+ request.request_initiator = url::Origin(); |
ASSERT_FALSE(request.url.is_valid()); |
factory_->CreateLoaderAndStart( |
mojo::GetProxy(&loader, factory_.associated_group()), 2, 1, request, |
@@ -283,6 +301,12 @@ TEST_P(URLLoaderFactoryImplTest, ShouldNotRequestURL) { |
TestURLLoaderClient client; |
request.url = GURL("http://localhost/"); |
request.method = "GET"; |
+ // |resource_type| can't be a frame type. It is because when PlzNavigate is |
+ // enabled, the url scheme of frame type requests from the renderer process |
+ // must be blob scheme. |
+ request.resource_type = RESOURCE_TYPE_XHR; |
+ // Need to set |request_initiator| for non main frame type request. |
+ request.request_initiator = url::Origin(); |
factory_->CreateLoaderAndStart( |
mojo::GetProxy(&loader, factory_.associated_group()), 2, 1, request, |
client.CreateRemoteAssociatedPtrInfo(factory_.associated_group())); |
@@ -438,6 +462,12 @@ TEST_P(URLLoaderFactoryImplTest, CancelFromRenderer) { |
request.url = net::URLRequestFailedJob::GetMockHttpUrl(net::ERR_IO_PENDING); |
request.method = "GET"; |
request.is_main_frame = true; |
+ // |resource_type| can't be a frame type. It is because when PlzNavigate is |
+ // enabled, the url scheme of frame type requests from the renderer process |
+ // must be blob scheme. |
+ request.resource_type = RESOURCE_TYPE_XHR; |
+ // Need to set |request_initiator| for non main frame type request. |
+ request.request_initiator = url::Origin(); |
factory_->CreateLoaderAndStart( |
mojo::GetProxy(&loader, factory_.associated_group()), kRoutingId, |
kRequestId, request, |