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

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

Issue 2469673002: Invalidate WeakPtrs of ResourceMessageFilter on channel shutdown (Closed)
Patch Set: rebase Created 4 years, 1 month 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 7c1b850c061aecfd450274a2aecb76f99c808223..2ba566b44f135387fd9141c7d1b7598c66234c8c 100644
--- a/content/browser/loader/resource_dispatcher_host_unittest.cc
+++ b/content/browser/loader/resource_dispatcher_host_unittest.cc
@@ -860,6 +860,10 @@ class ResourceDispatcherHostTest : public testing::TestWithParam<TestConfig>,
request_context->set_network_delegate(&network_delegate_);
}
+ ~ResourceDispatcherHostTest() {
mmenke 2016/11/09 18:34:19 override?
tzik 2016/11/10 06:08:14 Done.
+ filter_->OnChannelClosing();
+ }
+
// IPC::Sender implementation
bool Send(IPC::Message* msg) override {
accum_.AddMessage(*msg);
@@ -915,6 +919,7 @@ class ResourceDispatcherHostTest : public testing::TestWithParam<TestConfig>,
}
void TearDown() override {
+ web_contents_filter_->OnChannelClosing();
web_contents_observer_.reset();
web_contents_.reset();
@@ -1894,6 +1899,8 @@ TEST_P(ResourceDispatcherHostTest, TestProcessCancel) {
EXPECT_EQ(4, network_delegate()->completed_requests());
EXPECT_EQ(0, network_delegate()->canceled_requests());
EXPECT_EQ(0, network_delegate()->error_count());
+
+ test_filter->OnChannelClosing();
}
// Tests whether the correct requests get canceled when a RenderViewHost is
@@ -2144,6 +2151,7 @@ TEST_P(ResourceDispatcherHostTest, TestBlockedRequestsProcessDies) {
CheckSuccessfulRequest(msgs[1], net::URLRequestTestJob::test_data_3());
EXPECT_TRUE(host_.blocked_loaders_map_.empty());
+ second_filter->OnChannelClosing();
}
// Tests that blocked requests don't leak when the ResourceDispatcherHost goes
@@ -2189,6 +2197,8 @@ TEST_P(ResourceDispatcherHostTest, TestBlockedRequestsDontLeak) {
// Flush all the pending requests.
while (net::URLRequestTestJob::ProcessOnePendingMessage()) {}
+
+ second_filter->OnChannelClosing();
}
// Test the private helper method "CalculateApproximateMemoryCost()".
@@ -2295,6 +2305,8 @@ TEST_P(ResourceDispatcherHostTest, TooMuchOutstandingRequestsMemory) {
net::URLRequestTestJob::test_data_2());
CheckSuccessfulRequest(msgs[kMaxRequests + 3],
net::URLRequestTestJob::test_data_2());
+
+ second_filter->OnChannelClosing();
}
// Test that when too many requests are outstanding for a particular
@@ -2360,6 +2372,9 @@ TEST_P(ResourceDispatcherHostTest, TooManyOutstandingRequests) {
CheckFailedRequest(msgs[kMaxRequestsPerProcess + 2],
net::URLRequestTestJob::test_data_2(),
net::ERR_INSUFFICIENT_RESOURCES);
+
+ second_filter->OnChannelClosing();
+ third_filter->OnChannelClosing();
}
// Tests that we sniff the mime type for a simple request.
@@ -2759,6 +2774,8 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationHtml) {
ASSERT_EQ(2U, msgs.size());
EXPECT_EQ(ResourceMsg_ReceivedRedirect::ID, msgs[0][0].type());
CheckSuccessfulRequest(msgs[1], kResponseBody);
+
+ second_filter->OnChannelClosing();
}
// Test transferring two navigations with text/html, to ensure the resource
@@ -2837,6 +2854,8 @@ TEST_P(ResourceDispatcherHostTest, TransferTwoNavigationsHtml) {
ASSERT_EQ(2U, msgs.size());
CheckSuccessfulRequest(msgs[0], kResponseBody);
+
+ second_filter->OnChannelClosing();
}
// Test transferred navigations with text/plain, which causes
@@ -2906,6 +2925,8 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationText) {
ASSERT_EQ(2U, msgs.size());
EXPECT_EQ(ResourceMsg_ReceivedRedirect::ID, msgs[0][0].type());
CheckSuccessfulRequest(msgs[1], kResponseBody);
+
+ second_filter->OnChannelClosing();
}
TEST_P(ResourceDispatcherHostTest, TransferNavigationWithProcessCrash) {
@@ -2955,6 +2976,8 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationWithProcessCrash) {
// Flush all the pending requests to get the response through the
// MimeTypeResourceHandler.
while (net::URLRequestTestJob::ProcessOnePendingMessage()) {}
+
+ first_filter->OnChannelClosing();
}
// The first filter is now deleted, as if the child process died.
@@ -2986,6 +3009,8 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationWithProcessCrash) {
ASSERT_EQ(2U, msgs.size());
EXPECT_EQ(ResourceMsg_ReceivedRedirect::ID, msgs[0][0].type());
CheckSuccessfulRequest(msgs[1], kResponseBody);
+
+ second_filter->OnChannelClosing();
}
TEST_P(ResourceDispatcherHostTest, TransferNavigationWithTwoRedirects) {
@@ -3072,6 +3097,8 @@ TEST_P(ResourceDispatcherHostTest, TransferNavigationWithTwoRedirects) {
ASSERT_EQ(2U, msgs.size());
EXPECT_EQ(ResourceMsg_ReceivedRedirect::ID, msgs[0][0].type());
CheckSuccessfulRequest(msgs[1], kResponseBody);
+
+ second_filter->OnChannelClosing();
}
TEST_P(ResourceDispatcherHostTest, UnknownURLScheme) {

Powered by Google App Engine
This is Rietveld 408576698