| Index: content/browser/loader/mime_sniffing_resource_handler_unittest.cc
|
| diff --git a/content/browser/loader/mime_sniffing_resource_handler_unittest.cc b/content/browser/loader/mime_sniffing_resource_handler_unittest.cc
|
| index aae01578ddfad4478502cf30a9c008eb1f21a086..ed407eb1d68106b55ac9160c73f8f61f9bc26413 100644
|
| --- a/content/browser/loader/mime_sniffing_resource_handler_unittest.cc
|
| +++ b/content/browser/loader/mime_sniffing_resource_handler_unittest.cc
|
| @@ -342,7 +342,8 @@ MimeSniffingResourceHandlerTest::TestAcceptHeaderSettingWithURLRequest(
|
| new MimeSniffingResourceHandler(
|
| std::unique_ptr<ResourceHandler>(
|
| new TestResourceHandler(false, false, false, false, false)),
|
| - nullptr, nullptr, nullptr, request));
|
| + nullptr, nullptr, nullptr, request,
|
| + REQUEST_CONTEXT_TYPE_UNSPECIFIED));
|
|
|
| bool defer = false;
|
| mime_sniffing_handler->OnWillStart(request->url(), &defer);
|
| @@ -383,7 +384,8 @@ bool MimeSniffingResourceHandlerTest::TestStreamIsIntercepted(
|
| std::unique_ptr<ResourceHandler> mime_handler(new MimeSniffingResourceHandler(
|
| std::unique_ptr<ResourceHandler>(
|
| new TestResourceHandler(false, false, false, false, false)),
|
| - &host, &plugin_service, intercepting_handler.get(), request.get()));
|
| + &host, &plugin_service, intercepting_handler.get(), request.get(),
|
| + REQUEST_CONTEXT_TYPE_UNSPECIFIED));
|
|
|
| TestResourceController resource_controller;
|
| mime_handler->SetController(&resource_controller);
|
| @@ -437,9 +439,10 @@ void MimeSniffingResourceHandlerTest::TestHandlerSniffing(
|
| defer_read_completed));
|
| TestResourceHandler* test_handler = scoped_test_handler.get();
|
| std::unique_ptr<MimeSniffingResourceHandler> mime_sniffing_handler(
|
| - new MimeSniffingResourceHandler(
|
| - std::move(scoped_test_handler), &host, &plugin_service,
|
| - intercepting_handler.get(), request.get()));
|
| + new MimeSniffingResourceHandler(std::move(scoped_test_handler), &host,
|
| + &plugin_service,
|
| + intercepting_handler.get(), request.get(),
|
| + REQUEST_CONTEXT_TYPE_UNSPECIFIED));
|
|
|
| TestResourceController resource_controller;
|
| mime_sniffing_handler->SetController(&resource_controller);
|
| @@ -598,9 +601,10 @@ void MimeSniffingResourceHandlerTest::TestHandlerNoSniffing(
|
| defer_read_completed));
|
| TestResourceHandler* test_handler = scoped_test_handler.get();
|
| std::unique_ptr<MimeSniffingResourceHandler> mime_sniffing_handler(
|
| - new MimeSniffingResourceHandler(
|
| - std::move(scoped_test_handler), &host, &plugin_service,
|
| - intercepting_handler.get(), request.get()));
|
| + new MimeSniffingResourceHandler(std::move(scoped_test_handler), &host,
|
| + &plugin_service,
|
| + intercepting_handler.get(), request.get(),
|
| + REQUEST_CONTEXT_TYPE_UNSPECIFIED));
|
|
|
| TestResourceController resource_controller;
|
| mime_sniffing_handler->SetController(&resource_controller);
|
| @@ -989,7 +993,7 @@ TEST_F(MimeSniffingResourceHandlerTest, 304Handling) {
|
| new TestResourceHandler(true, false, true, true, false)),
|
| &host, &plugin_service,
|
| static_cast<InterceptingResourceHandler*>(intercepting_handler.get()),
|
| - request.get()));
|
| + request.get(), REQUEST_CONTEXT_TYPE_UNSPECIFIED));
|
|
|
| TestResourceController resource_controller;
|
| mime_handler->SetController(&resource_controller);
|
| @@ -1010,4 +1014,58 @@ TEST_F(MimeSniffingResourceHandlerTest, 304Handling) {
|
| content::RunAllPendingInMessageLoop();
|
| }
|
|
|
| +TEST_F(MimeSniffingResourceHandlerTest, FetchShouldDisableMimeSniffing) {
|
| + net::URLRequestContext context;
|
| + std::unique_ptr<net::URLRequest> request(context.CreateRequest(
|
| + GURL("http://www.google.com"), net::DEFAULT_PRIORITY, nullptr));
|
| + ResourceRequestInfo::AllocateForTesting(request.get(),
|
| + RESOURCE_TYPE_MAIN_FRAME,
|
| + nullptr, // context
|
| + 0, // render_process_id
|
| + 0, // render_view_id
|
| + 0, // render_frame_id
|
| + true, // is_main_frame
|
| + false, // parent_is_main_frame
|
| + false, // allow_download
|
| + true, // is_async
|
| + false); // is_using_lofi
|
| +
|
| + TestResourceDispatcherHost host(false);
|
| +
|
| + TestFakePluginService plugin_service(false, false);
|
| + std::unique_ptr<InterceptingResourceHandler> intercepting_handler(
|
| + new InterceptingResourceHandler(nullptr, nullptr));
|
| +
|
| + std::unique_ptr<TestResourceHandler> scoped_test_handler(
|
| + new TestResourceHandler(false, // response_started
|
| + false, // defer_response_started
|
| + true, // will_read,
|
| + true, // read_completed,
|
| + false)); // defer_read_completed
|
| + std::unique_ptr<ResourceHandler> mime_sniffing_handler(
|
| + new MimeSniffingResourceHandler(std::move(scoped_test_handler), &host,
|
| + &plugin_service,
|
| + intercepting_handler.get(), request.get(),
|
| + REQUEST_CONTEXT_TYPE_FETCH));
|
| +
|
| + TestResourceController resource_controller;
|
| + mime_sniffing_handler->SetController(&resource_controller);
|
| +
|
| + bool defer = false;
|
| + mime_sniffing_handler->OnWillStart(GURL(), &defer);
|
| + ASSERT_FALSE(defer);
|
| +
|
| + scoped_refptr<ResourceResponse> response(new ResourceResponse);
|
| + response->head.mime_type = "text/plain";
|
| +
|
| + // |mime_sniffing_handler->OnResponseStarted| should return false because
|
| + // mime sniffing is disabled and the wrapped resource handler returns false
|
| + // on OnResponseStarted.
|
| + EXPECT_FALSE(
|
| + mime_sniffing_handler->OnResponseStarted(response.get(), &defer));
|
| +
|
| + // Process all messages to ensure proper test teardown.
|
| + content::RunAllPendingInMessageLoop();
|
| +}
|
| +
|
| } // namespace content
|
|
|