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

Side by Side Diff: components/subresource_filter/content/browser/activation_state_computing_navigation_throttle_unittest.cc

Issue 2691423006: Introduce the ThrottleManager (Closed)
Patch Set: respond to more comments Created 3 years, 10 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
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "components/subresource_filter/content/browser/activation_state_computi ng_navigation_throttle.h" 5 #include "components/subresource_filter/content/browser/activation_state_computi ng_navigation_throttle.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/callback_forward.h" 10 #include "base/callback_forward.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 100
101 void CreateTestNavigationForSubframe( 101 void CreateTestNavigationForSubframe(
102 const GURL& first_url, 102 const GURL& first_url,
103 const ActivationState& parent_activation_state) { 103 const ActivationState& parent_activation_state) {
104 subframe_ = content::RenderFrameHostTester::For(main_rfh()) 104 subframe_ = content::RenderFrameHostTester::For(main_rfh())
105 ->AppendChild("subframe"); 105 ->AppendChild("subframe");
106 test_handle_ = content::NavigationHandle::CreateNavigationHandleForTesting( 106 test_handle_ = content::NavigationHandle::CreateNavigationHandleForTesting(
107 first_url, subframe_); 107 first_url, subframe_);
108 std::unique_ptr<ActivationStateComputingNavigationThrottle> throttle = 108 std::unique_ptr<ActivationStateComputingNavigationThrottle> throttle =
109 ActivationStateComputingNavigationThrottle::CreateForSubframe( 109 ActivationStateComputingNavigationThrottle::CreateForSubframe(
110 test_handle_.get(), ruleset_handle(), parent_activation_state); 110 test_handle_.get(), ruleset_handle(), parent_activation_state,
111 base::OnceClosure());
111 test_throttle_ = throttle.get(); 112 test_throttle_ = throttle.get();
112 test_handle_->RegisterThrottleForTesting(std::move(throttle)); 113 test_handle_->RegisterThrottleForTesting(std::move(throttle));
113 } 114 }
114 115
115 void SimulateWillStartAndExpectToProceed() { 116 void SimulateWillStartAndExpectToProceed() {
116 EXPECT_EQ(content::NavigationThrottle::PROCEED, 117 EXPECT_EQ(content::NavigationThrottle::PROCEED,
117 test_handle_->CallWillStartRequestForTesting( 118 test_handle_->CallWillStartRequestForTesting(
118 false /* is_post */, content::Referrer(), 119 false /* is_post */, content::Referrer(),
119 true /* has_user_gesture */, 120 true /* has_user_gesture */,
120 ui::PageTransition::PAGE_TRANSITION_LINK, 121 ui::PageTransition::PAGE_TRANSITION_LINK,
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 }; 175 };
175 176
176 // Main frame tests 177 // Main frame tests
177 TEST_F(ActivationStateComputingNavigationThrottleTest, ActivateMainFrame) { 178 TEST_F(ActivationStateComputingNavigationThrottleTest, ActivateMainFrame) {
178 CreateTestNavigationForMainFrame(GURL("http://example.test/activate.html")); 179 CreateTestNavigationForMainFrame(GURL("http://example.test/activate.html"));
179 SimulateWillStartAndExpectToProceed(); 180 SimulateWillStartAndExpectToProceed();
180 SimulateWillRedirectAndExpectToProceed( 181 SimulateWillRedirectAndExpectToProceed(
181 GURL("http://example.test/activate.html?v=1")); 182 GURL("http://example.test/activate.html?v=1"));
182 183
183 test_throttle()->NotifyPageActivationWithRuleset( 184 test_throttle()->NotifyPageActivationWithRuleset(
184 ruleset_handle(), ActivationState(ActivationLevel::ENABLED)); 185 ruleset_handle(), ActivationState(ActivationLevel::ENABLED),
186 base::OnceClosure());
185 SimulateWillProcessResponseAndExpectResult( 187 SimulateWillProcessResponseAndExpectResult(
186 true /* expect_async */, content::NavigationThrottle::PROCEED); 188 true /* expect_async */, content::NavigationThrottle::PROCEED);
187 189
188 // Simulate ReadyToCommitNavigation. 190 // Simulate ReadyToCommitNavigation.
189 ActivationState state = test_throttle()->GetActivationState(); 191 ActivationState state = test_throttle()->GetActivationState();
190 EXPECT_EQ(ActivationLevel::ENABLED, state.activation_level); 192 EXPECT_EQ(ActivationLevel::ENABLED, state.activation_level);
191 EXPECT_FALSE(state.filtering_disabled_for_document); 193 EXPECT_FALSE(state.filtering_disabled_for_document);
192 DCHECK(test_throttle()->ReleaseFilter()); 194 DCHECK(test_throttle()->ReleaseFilter());
193 } 195 }
194 196
(...skipping 17 matching lines...) Expand all
212 TEST_F(ActivationStateComputingNavigationThrottleTest, 214 TEST_F(ActivationStateComputingNavigationThrottleTest,
213 DoNotActivateMainFrameForInactivePage2) { 215 DoNotActivateMainFrameForInactivePage2) {
214 CreateTestNavigationForMainFrame(GURL("http://example.test/inactivate.html")); 216 CreateTestNavigationForMainFrame(GURL("http://example.test/inactivate.html"));
215 SimulateWillStartAndExpectToProceed(); 217 SimulateWillStartAndExpectToProceed();
216 SimulateWillRedirectAndExpectToProceed( 218 SimulateWillRedirectAndExpectToProceed(
217 GURL("http://example.test/inactivate.html?v=1")); 219 GURL("http://example.test/inactivate.html?v=1"));
218 220
219 // Notify that the page level state is explicitly disabled. Should be 221 // Notify that the page level state is explicitly disabled. Should be
220 // equivalent to not sending the message at all. 222 // equivalent to not sending the message at all.
221 test_throttle()->NotifyPageActivationWithRuleset( 223 test_throttle()->NotifyPageActivationWithRuleset(
222 nullptr, ActivationState(ActivationLevel::DISABLED)); 224 nullptr, ActivationState(ActivationLevel::DISABLED), base::OnceClosure());
223 SimulateWillProcessResponseAndExpectResult( 225 SimulateWillProcessResponseAndExpectResult(
224 false /* expect_async */, content::NavigationThrottle::PROCEED); 226 false /* expect_async */, content::NavigationThrottle::PROCEED);
225 227
226 // Simulate ReadyToCommitNavigation. 228 // Simulate ReadyToCommitNavigation.
227 ActivationState state = test_throttle()->GetActivationState(); 229 ActivationState state = test_throttle()->GetActivationState();
228 EXPECT_EQ(ActivationLevel::DISABLED, state.activation_level); 230 EXPECT_EQ(ActivationLevel::DISABLED, state.activation_level);
229 DCHECK(!test_throttle()->ReleaseFilter()); 231 DCHECK(!test_throttle()->ReleaseFilter());
230 } 232 }
231 233
232 TEST_F(ActivationStateComputingNavigationThrottleTest, 234 TEST_F(ActivationStateComputingNavigationThrottleTest,
233 ActivateMainFrameWhitelistedSubframe) { 235 ActivateMainFrameWhitelistedSubframe) {
234 InitializeDocumentSubresourceFilter(GURL("http://parent.com/")); 236 InitializeDocumentSubresourceFilter(GURL("http://parent.com/"));
235 // Not really a child frame, so whitelist should not apply. 237 // Not really a child frame, so whitelist should not apply.
236 CreateTestNavigationForMainFrame(GURL("http://whitelist.com/")); 238 CreateTestNavigationForMainFrame(GURL("http://whitelist.com/"));
237 SimulateWillStartAndExpectToProceed(); 239 SimulateWillStartAndExpectToProceed();
238 240
239 // Main frames will usually have their "parent" activation state set right 241 // Main frames will usually have their "parent" activation state set right
240 // before WillProcessResponse. 242 // before WillProcessResponse.
241 test_throttle()->NotifyPageActivationWithRuleset( 243 test_throttle()->NotifyPageActivationWithRuleset(
242 ruleset_handle(), ActivationState(ActivationLevel::ENABLED)); 244 ruleset_handle(), ActivationState(ActivationLevel::ENABLED),
245 base::OnceClosure());
243 SimulateWillProcessResponseAndExpectResult( 246 SimulateWillProcessResponseAndExpectResult(
244 true /* expect_async */, content::NavigationThrottle::PROCEED); 247 true /* expect_async */, content::NavigationThrottle::PROCEED);
245 248
246 // Simulate ReadyToCommitNavigation. 249 // Simulate ReadyToCommitNavigation.
247 ActivationState state = test_throttle()->GetActivationState(); 250 ActivationState state = test_throttle()->GetActivationState();
248 EXPECT_FALSE(state.filtering_disabled_for_document); 251 EXPECT_FALSE(state.filtering_disabled_for_document);
249 EXPECT_EQ(ActivationLevel::ENABLED, state.activation_level); 252 EXPECT_EQ(ActivationLevel::ENABLED, state.activation_level);
250 DCHECK(test_throttle()->ReleaseFilter()); 253 DCHECK(test_throttle()->ReleaseFilter());
251 } 254 }
252 255
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 340
338 // Simulate ReadyToCommitNavigation. 341 // Simulate ReadyToCommitNavigation.
339 ActivationState state = test_throttle()->GetActivationState(); 342 ActivationState state = test_throttle()->GetActivationState();
340 EXPECT_EQ(ActivationLevel::ENABLED, state.activation_level); 343 EXPECT_EQ(ActivationLevel::ENABLED, state.activation_level);
341 EXPECT_FALSE(state.filtering_disabled_for_document); 344 EXPECT_FALSE(state.filtering_disabled_for_document);
342 EXPECT_TRUE(state.generic_blocking_rules_disabled); 345 EXPECT_TRUE(state.generic_blocking_rules_disabled);
343 DCHECK(test_throttle()->ReleaseFilter()); 346 DCHECK(test_throttle()->ReleaseFilter());
344 } 347 }
345 348
346 } // namespace subresource_filter 349 } // namespace subresource_filter
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698