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

Unified Diff: content/browser/loader/resource_dispatcher_host_unittest.cc

Issue 2321543002: Merge CrossSiteResourceHandler and NavigationResourceThrottle (Closed)
Patch Set: Change to android fix + compile error Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/loader/resource_dispatcher_host_unittest.cc
diff --git a/content/browser/loader/resource_dispatcher_host_unittest.cc b/content/browser/loader/resource_dispatcher_host_unittest.cc
index 0a5c9b47177b9d8df741ea9c21183f9d7c0a46c7..1a4103c7b52baca7fcdd6f6e483a4cd1ef76b5e4 100644
--- a/content/browser/loader/resource_dispatcher_host_unittest.cc
+++ b/content/browser/loader/resource_dispatcher_host_unittest.cc
@@ -27,8 +27,8 @@
#include "content/browser/download/download_manager_impl.h"
#include "content/browser/download/download_resource_handler.h"
#include "content/browser/frame_host/navigation_request_info.h"
-#include "content/browser/loader/cross_site_resource_handler.h"
#include "content/browser/loader/detachable_resource_handler.h"
+#include "content/browser/loader/navigation_resource_throttle.h"
#include "content/browser/loader/navigation_url_loader.h"
#include "content/browser/loader/resource_dispatcher_host_impl.h"
#include "content/browser/loader/resource_loader.h"
@@ -618,16 +618,6 @@ class TestUserData : public base::SupportsUserData::Data {
bool* was_deleted_;
};
-class TransfersAllNavigationsContentBrowserClient
- : public TestContentBrowserClient {
- public:
- bool ShouldSwapProcessesForRedirect(ResourceContext* resource_context,
- const GURL& current_url,
- const GURL& new_url) override {
- return true;
- }
-};
-
enum GenericResourceThrottleFlags {
NONE = 0,
DEFER_STARTING_REQUEST = 1 << 0,
@@ -2477,6 +2467,7 @@ TEST_P(ResourceDispatcherHostTest, MimeSniffEmpty) {
// Tests for crbug.com/31266 (Non-2xx + application/octet-stream).
TEST_P(ResourceDispatcherHostTest, ForbiddenDownload) {
+ NavigationResourceThrottle::SetUIChecksAlwaysSucceedForTesting(true);
std::string raw_headers("HTTP/1.1 403 Forbidden\n"
"Content-disposition: attachment; filename=blah\n"
"Content-type: application/octet-stream\n\n");
@@ -2504,6 +2495,8 @@ TEST_P(ResourceDispatcherHostTest, IgnoreCancelForDownloads) {
return;
}
+ NavigationResourceThrottle::SetUIChecksAlwaysSucceedForTesting(true);
+
EXPECT_EQ(0, host_.pending_requests());
int render_view_id = 0;
@@ -2547,6 +2540,7 @@ TEST_P(ResourceDispatcherHostTest, IgnoreCancelForDownloads) {
TEST_P(ResourceDispatcherHostTest, CancelRequestsForContext) {
EXPECT_EQ(0, host_.pending_requests());
+ NavigationResourceThrottle::SetUIChecksAlwaysSucceedForTesting(true);
int render_view_id = 0;
int request_id = 1;
@@ -2662,6 +2656,8 @@ TEST_P(ResourceDispatcherHostTest, CancelRequestsForContextTransferred) {
if (IsBrowserSideNavigationEnabled())
return;
+ NavigationResourceThrottle::SetUIChecksAlwaysSucceedForTesting(true);
+
EXPECT_EQ(0, host_.pending_requests());
int request_id = 1;
@@ -2678,7 +2674,7 @@ TEST_P(ResourceDispatcherHostTest, CancelRequestsForContextTransferred) {
GlobalRequestID global_request_id(web_contents_filter_->child_id(),
request_id);
- host_.MarkAsTransferredNavigation(global_request_id, nullptr);
+ host_.MarkAsTransferredNavigation(global_request_id, base::Closure());
// And now simulate a cancellation coming from the renderer.
ResourceHostMsg_CancelRequest msg(request_id);
@@ -2705,12 +2701,12 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationHtml) {
SUCCEED() << "Test is not applicable with browser side navigation enabled";
return;
}
- // This test expects the cross site request to be leaked, so it can transfer
- // the request directly.
- CrossSiteResourceHandler::SetLeakRequestsForTesting(true);
EXPECT_EQ(0, host_.pending_requests());
+ NavigationResourceThrottle::SetUIChecksAlwaysSucceedForTesting(true);
+ NavigationResourceThrottle::SetForceTransferForTesting(true);
+
int render_view_id = 0;
int request_id = 1;
@@ -2720,11 +2716,6 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationHtml) {
HandleScheme("http");
- // Temporarily replace ContentBrowserClient with one that will trigger the
- // transfer navigation code paths.
- TransfersAllNavigationsContentBrowserClient new_client;
- ContentBrowserClient* old_client = SetBrowserClientForTesting(&new_client);
-
MakeTestRequestWithResourceType(filter_.get(), render_view_id, request_id,
GURL("http://example.com/blah"),
RESOURCE_TYPE_MAIN_FRAME);
@@ -2743,9 +2734,6 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationHtml) {
// MimeTypeResourceHandler.
while (net::URLRequestTestJob::ProcessOnePendingMessage()) {}
- // Restore, now that we've set up a transfer.
- SetBrowserClientForTesting(old_client);
-
// This second filter is used to emulate a second process.
scoped_refptr<ForwardingFilter> second_filter = MakeForwardingFilter();
@@ -2778,9 +2766,9 @@ TEST_P(ResourceDispatcherHostTest, TransferTwoNavigationsHtml) {
SUCCEED() << "Test is not applicable with browser side navigation enabled";
return;
}
- // This test expects the cross site request to be leaked, so it can transfer
- // the request directly.
- CrossSiteResourceHandler::SetLeakRequestsForTesting(true);
+
+ NavigationResourceThrottle::SetUIChecksAlwaysSucceedForTesting(true);
+ NavigationResourceThrottle::SetForceTransferForTesting(true);
EXPECT_EQ(0, host_.pending_requests());
@@ -2795,11 +2783,6 @@ TEST_P(ResourceDispatcherHostTest, TransferTwoNavigationsHtml) {
HandleScheme("http");
- // Temporarily replace ContentBrowserClient with one that will trigger the
- // transfer navigation code paths.
- TransfersAllNavigationsContentBrowserClient new_client;
- ContentBrowserClient* old_client = SetBrowserClientForTesting(&new_client);
-
// Make the first request.
MakeTestRequestWithResourceType(filter_.get(), render_view_id, request_id,
GURL("http://example.com/blah"),
@@ -2816,8 +2799,7 @@ TEST_P(ResourceDispatcherHostTest, TransferTwoNavigationsHtml) {
// MimeTypeResourceHandler.
while (net::URLRequestTestJob::ProcessOnePendingMessage()) {}
- // Restore, now that we've set up a transfer.
- SetBrowserClientForTesting(old_client);
+ NavigationResourceThrottle::SetForceTransferForTesting(false);
// This second filter is used to emulate a second process.
scoped_refptr<ForwardingFilter> second_filter = MakeForwardingFilter();
@@ -2863,9 +2845,9 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationText) {
SUCCEED() << "Test is not applicable with browser side navigation enabled";
return;
}
- // This test expects the cross site request to be leaked, so it can transfer
- // the request directly.
- CrossSiteResourceHandler::SetLeakRequestsForTesting(true);
+
+ NavigationResourceThrottle::SetUIChecksAlwaysSucceedForTesting(true);
+ NavigationResourceThrottle::SetForceTransferForTesting(true);
EXPECT_EQ(0, host_.pending_requests());
@@ -2878,11 +2860,6 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationText) {
HandleScheme("http");
- // Temporarily replace ContentBrowserClient with one that will trigger the
- // transfer navigation code paths.
- TransfersAllNavigationsContentBrowserClient new_client;
- ContentBrowserClient* old_client = SetBrowserClientForTesting(&new_client);
-
MakeTestRequestWithResourceType(filter_.get(), render_view_id, request_id,
GURL("http://example.com/blah"),
RESOURCE_TYPE_MAIN_FRAME);
@@ -2904,9 +2881,6 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationText) {
while (net::URLRequestTestJob::ProcessOnePendingMessage()) {}
base::RunLoop().RunUntilIdle();
- // Restore, now that we've set up a transfer.
- SetBrowserClientForTesting(old_client);
-
// This second filter is used to emulate a second process.
scoped_refptr<ForwardingFilter> second_filter = MakeForwardingFilter();
@@ -2937,9 +2911,9 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationWithProcessCrash) {
SUCCEED() << "Test is not applicable with browser side navigation enabled";
return;
}
- // This test expects the cross site request to be leaked, so it can transfer
- // the request directly.
- CrossSiteResourceHandler::SetLeakRequestsForTesting(true);
+
+ NavigationResourceThrottle::SetUIChecksAlwaysSucceedForTesting(true);
+ NavigationResourceThrottle::SetForceTransferForTesting(true);
EXPECT_EQ(0, host_.pending_requests());
@@ -2954,11 +2928,6 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationWithProcessCrash) {
HandleScheme("http");
- // Temporarily replace ContentBrowserClient with one that will trigger the
- // transfer navigation code paths.
- TransfersAllNavigationsContentBrowserClient new_client;
- ContentBrowserClient* old_client = SetBrowserClientForTesting(&new_client);
-
// Create a first filter that can be deleted before the second one starts.
{
scoped_refptr<ForwardingFilter> first_filter = MakeForwardingFilter();
@@ -2987,9 +2956,6 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationWithProcessCrash) {
}
// The first filter is now deleted, as if the child process died.
- // Restore.
- SetBrowserClientForTesting(old_client);
-
// Make sure we don't hold onto the ResourceMessageFilter after it is deleted.
GlobalRequestID first_global_request_id(first_child_id, request_id);
@@ -3025,9 +2991,9 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationWithTwoRedirects) {
SUCCEED() << "Test is not applicable with browser side navigation enabled";
return;
}
- // This test expects the cross site request to be leaked, so it can transfer
- // the request directly.
- CrossSiteResourceHandler::SetLeakRequestsForTesting(true);
+
+ NavigationResourceThrottle::SetUIChecksAlwaysSucceedForTesting(true);
+ NavigationResourceThrottle::SetForceTransferForTesting(true);
EXPECT_EQ(0, host_.pending_requests());
@@ -3040,11 +3006,6 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationWithTwoRedirects) {
HandleScheme("http");
- // Temporarily replace ContentBrowserClient with one that will trigger the
- // transfer navigation code paths.
- TransfersAllNavigationsContentBrowserClient new_client;
- ContentBrowserClient* old_client = SetBrowserClientForTesting(&new_client);
-
MakeTestRequestWithResourceType(filter_.get(), render_view_id, request_id,
GURL("http://example.com/blah"),
RESOURCE_TYPE_MAIN_FRAME);
@@ -3073,9 +3034,6 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationWithTwoRedirects) {
while (net::URLRequestTestJob::ProcessOnePendingMessage()) {}
base::RunLoop().RunUntilIdle();
- // Restore.
- SetBrowserClientForTesting(old_client);
-
// This second filter is used to emulate a second process.
scoped_refptr<ForwardingFilter> second_filter = MakeForwardingFilter();
@@ -3115,6 +3073,7 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationWithTwoRedirects) {
}
TEST_P(ResourceDispatcherHostTest, UnknownURLScheme) {
+ NavigationResourceThrottle::SetUIChecksAlwaysSucceedForTesting(true);
EXPECT_EQ(0, host_.pending_requests());
HandleScheme("http");

Powered by Google App Engine
This is Rietveld 408576698