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

Side by Side Diff: components/subresource_filter/content/renderer/subresource_filter_agent_unittest.cc

Issue 2683413003: Introduce AsyncDocumentSubresourceFilter. (Closed)
Patch Set: Fix fix blink test build. 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/renderer/subresource_filter_agen t.h" 5 #include "components/subresource_filter/content/renderer/subresource_filter_agen t.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/files/file.h" 10 #include "base/files/file.h"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/strings/string_piece.h" 12 #include "base/strings/string_piece.h"
13 #include "base/test/histogram_tester.h" 13 #include "base/test/histogram_tester.h"
14 #include "base/time/time.h" 14 #include "base/time/time.h"
15 #include "components/subresource_filter/content/common/document_load_statistics. h" 15 #include "components/subresource_filter/content/common/document_load_statistics. h"
16 #include "components/subresource_filter/content/common/subresource_filter_messag es.h" 16 #include "components/subresource_filter/content/common/subresource_filter_messag es.h"
17 #include "components/subresource_filter/content/renderer/unverified_ruleset_deal er.h" 17 #include "components/subresource_filter/content/renderer/unverified_ruleset_deal er.h"
18 #include "components/subresource_filter/core/common/scoped_timers.h" 18 #include "components/subresource_filter/core/common/scoped_timers.h"
19 #include "components/subresource_filter/core/common/test_ruleset_creator.h" 19 #include "components/subresource_filter/core/common/test_ruleset_creator.h"
20 #include "testing/gmock/include/gmock/gmock.h" 20 #include "testing/gmock/include/gmock/gmock.h"
21 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
22 #include "third_party/WebKit/public/platform/WebDocumentSubresourceFilter.h" 22 #include "third_party/WebKit/public/platform/WebDocumentSubresourceFilter.h"
23 #include "third_party/WebKit/public/platform/WebDocumentSubresourceFilterLoadPol icy.h"
23 #include "third_party/WebKit/public/platform/WebURL.h" 24 #include "third_party/WebKit/public/platform/WebURL.h"
24 #include "third_party/WebKit/public/platform/WebURLRequest.h" 25 #include "third_party/WebKit/public/platform/WebURLRequest.h"
25 #include "url/gurl.h" 26 #include "url/gurl.h"
26 27
27 namespace subresource_filter { 28 namespace subresource_filter {
28 29
29 namespace { 30 namespace {
30 31
31 // The SubresourceFilterAgent with its dependencies on Blink mocked out. 32 // The SubresourceFilterAgent with its dependencies on Blink mocked out.
32 // 33 //
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 EXPECT_CALL(*agent(), SignalFirstSubresourceDisallowedForCommittedLoad()) 166 EXPECT_CALL(*agent(), SignalFirstSubresourceDisallowedForCommittedLoad())
166 .Times(0); 167 .Times(0);
167 } 168 }
168 169
169 void ExpectDocumentLoadStatisticsSent() { 170 void ExpectDocumentLoadStatisticsSent() {
170 EXPECT_CALL(*agent(), SendDocumentLoadStatistics(::testing::_)); 171 EXPECT_CALL(*agent(), SendDocumentLoadStatistics(::testing::_));
171 } 172 }
172 173
173 void ExpectLoadPolicy( 174 void ExpectLoadPolicy(
174 base::StringPiece url_spec, 175 base::StringPiece url_spec,
175 blink::WebDocumentSubresourceFilter::LoadPolicy expected_policy) { 176 blink::WebDocumentSubresourceFilterLoadPolicy expected_policy) {
176 blink::WebURL url = GURL(url_spec); 177 blink::WebURL url = GURL(url_spec);
177 blink::WebURLRequest::RequestContext request_context = 178 blink::WebURLRequest::RequestContext request_context =
178 blink::WebURLRequest::RequestContextImage; 179 blink::WebURLRequest::RequestContextImage;
179 blink::WebDocumentSubresourceFilter::LoadPolicy actual_policy = 180 blink::WebDocumentSubresourceFilterLoadPolicy actual_policy =
180 agent()->filter()->getLoadPolicy(url, request_context); 181 agent()->filter()->getLoadPolicy(url, request_context);
181 EXPECT_EQ(expected_policy, actual_policy); 182 EXPECT_EQ(expected_policy, actual_policy);
182 183
183 // If the load policy indicated the load was filtered, simulate a filtered 184 // If the load policy indicated the load was filtered, simulate a filtered
184 // load callback. In production, this will be called in FrameFetchContext, 185 // load callback. In production, this will be called in FrameFetchContext,
185 // but we simulate the call here. 186 // but we simulate the call here.
186 if (actual_policy == blink::WebDocumentSubresourceFilter::Disallow) 187 if (actual_policy ==
188 blink::WebDocumentSubresourceFilterLoadPolicy::Disallow)
187 agent()->filter()->reportDisallowedLoad(); 189 agent()->filter()->reportDisallowedLoad();
188 } 190 }
189 191
190 SubresourceFilterAgentUnderTest* agent() { return agent_.get(); } 192 SubresourceFilterAgentUnderTest* agent() { return agent_.get(); }
191 content::RenderFrameObserver* agent_as_rfo() { 193 content::RenderFrameObserver* agent_as_rfo() {
192 return static_cast<content::RenderFrameObserver*>(agent_.get()); 194 return static_cast<content::RenderFrameObserver*>(agent_.get());
193 } 195 }
194 196
195 private: 197 private:
196 testing::TestRulesetCreator test_ruleset_creator_; 198 testing::TestRulesetCreator test_ruleset_creator_;
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 base::HistogramTester histogram_tester; 279 base::HistogramTester histogram_tester;
278 ASSERT_NO_FATAL_FAILURE( 280 ASSERT_NO_FATAL_FAILURE(
279 SetTestRulesetToDisallowURLsWithPathSuffix(kTestFirstURLPathSuffix)); 281 SetTestRulesetToDisallowURLsWithPathSuffix(kTestFirstURLPathSuffix));
280 282
281 ExpectSubresourceFilterGetsInjected(); 283 ExpectSubresourceFilterGetsInjected();
282 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED); 284 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED);
283 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent())); 285 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent()));
284 286
285 ExpectSignalAboutFirstSubresourceDisallowed(); 287 ExpectSignalAboutFirstSubresourceDisallowed();
286 ExpectLoadPolicy(kTestFirstURL, 288 ExpectLoadPolicy(kTestFirstURL,
287 blink::WebDocumentSubresourceFilter::Disallow); 289 blink::WebDocumentSubresourceFilterLoadPolicy::Disallow);
288 ExpectLoadPolicy(kTestSecondURL, blink::WebDocumentSubresourceFilter::Allow); 290 ExpectLoadPolicy(kTestSecondURL,
291 blink::WebDocumentSubresourceFilterLoadPolicy::Allow);
289 ExpectDocumentLoadStatisticsSent(); 292 ExpectDocumentLoadStatisticsSent();
290 FinishLoad(); 293 FinishLoad();
291 294
292 // In-page navigation should not count as a new load. 295 // In-page navigation should not count as a new load.
293 ExpectNoSubresourceFilterGetsInjected(); 296 ExpectNoSubresourceFilterGetsInjected();
294 ExpectNoSignalAboutFirstSubresourceDisallowed(); 297 ExpectNoSignalAboutFirstSubresourceDisallowed();
295 PerformSamePageNavigationWithoutSettingActivationLevel(); 298 PerformSamePageNavigationWithoutSettingActivationLevel();
296 ExpectLoadPolicy(kTestFirstURL, 299 ExpectLoadPolicy(kTestFirstURL,
297 blink::WebDocumentSubresourceFilter::Disallow); 300 blink::WebDocumentSubresourceFilterLoadPolicy::Disallow);
298 ExpectLoadPolicy(kTestSecondURL, blink::WebDocumentSubresourceFilter::Allow); 301 ExpectLoadPolicy(kTestSecondURL,
302 blink::WebDocumentSubresourceFilterLoadPolicy::Allow);
299 303
300 ExpectNoSubresourceFilterGetsInjected(); 304 ExpectNoSubresourceFilterGetsInjected();
301 StartLoadWithoutSettingActivationLevel(); 305 StartLoadWithoutSettingActivationLevel();
302 FinishLoad(); 306 FinishLoad();
303 307
304 // Resource loads after the in-page navigation should not be counted toward 308 // Resource loads after the in-page navigation should not be counted toward
305 // the figures below, as they came after the original page load event. 309 // the figures below, as they came after the original page load event.
306 histogram_tester.ExpectUniqueSample(kSubresourcesTotal, 2, 1); 310 histogram_tester.ExpectUniqueSample(kSubresourcesTotal, 2, 1);
307 histogram_tester.ExpectUniqueSample(kSubresourcesEvaluated, 2, 1); 311 histogram_tester.ExpectUniqueSample(kSubresourcesEvaluated, 2, 1);
308 histogram_tester.ExpectUniqueSample(kSubresourcesMatchedRules, 1, 1); 312 histogram_tester.ExpectUniqueSample(kSubresourcesMatchedRules, 1, 1);
(...skipping 10 matching lines...) Expand all
319 base::HistogramTester histogram_tester; 323 base::HistogramTester histogram_tester;
320 ASSERT_NO_FATAL_FAILURE( 324 ASSERT_NO_FATAL_FAILURE(
321 SetTestRulesetToDisallowURLsWithPathSuffix(kTestFirstURLPathSuffix)); 325 SetTestRulesetToDisallowURLsWithPathSuffix(kTestFirstURLPathSuffix));
322 ExpectSubresourceFilterGetsInjected(); 326 ExpectSubresourceFilterGetsInjected();
323 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED, 327 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED,
324 measure_performance); 328 measure_performance);
325 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent())); 329 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent()));
326 330
327 ExpectSignalAboutFirstSubresourceDisallowed(); 331 ExpectSignalAboutFirstSubresourceDisallowed();
328 ExpectLoadPolicy(kTestFirstURL, 332 ExpectLoadPolicy(kTestFirstURL,
329 blink::WebDocumentSubresourceFilter::Disallow); 333 blink::WebDocumentSubresourceFilterLoadPolicy::Disallow);
330 ExpectNoSignalAboutFirstSubresourceDisallowed(); 334 ExpectNoSignalAboutFirstSubresourceDisallowed();
331 ExpectLoadPolicy(kTestFirstURL, 335 ExpectLoadPolicy(kTestFirstURL,
332 blink::WebDocumentSubresourceFilter::Disallow); 336 blink::WebDocumentSubresourceFilterLoadPolicy::Disallow);
333 ExpectNoSignalAboutFirstSubresourceDisallowed(); 337 ExpectNoSignalAboutFirstSubresourceDisallowed();
334 ExpectLoadPolicy(kTestSecondURL, 338 ExpectLoadPolicy(kTestSecondURL,
335 blink::WebDocumentSubresourceFilter::Allow); 339 blink::WebDocumentSubresourceFilterLoadPolicy::Allow);
336 ExpectDocumentLoadStatisticsSent(); 340 ExpectDocumentLoadStatisticsSent();
337 FinishLoad(); 341 FinishLoad();
338 342
339 ExpectSubresourceFilterGetsInjected(); 343 ExpectSubresourceFilterGetsInjected();
340 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED, 344 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED,
341 measure_performance); 345 measure_performance);
342 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent())); 346 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent()));
343 347
344 ExpectNoSignalAboutFirstSubresourceDisallowed(); 348 ExpectNoSignalAboutFirstSubresourceDisallowed();
345 ExpectLoadPolicy(kTestSecondURL, 349 ExpectLoadPolicy(kTestSecondURL,
346 blink::WebDocumentSubresourceFilter::Allow); 350 blink::WebDocumentSubresourceFilterLoadPolicy::Allow);
347 ExpectSignalAboutFirstSubresourceDisallowed(); 351 ExpectSignalAboutFirstSubresourceDisallowed();
348 ExpectLoadPolicy(kTestFirstURL, 352 ExpectLoadPolicy(kTestFirstURL,
349 blink::WebDocumentSubresourceFilter::Disallow); 353 blink::WebDocumentSubresourceFilterLoadPolicy::Disallow);
350 ExpectDocumentLoadStatisticsSent(); 354 ExpectDocumentLoadStatisticsSent();
351 FinishLoad(); 355 FinishLoad();
352 356
353 histogram_tester.ExpectUniqueSample( 357 histogram_tester.ExpectUniqueSample(
354 kDocumentLoadActivationLevel, 358 kDocumentLoadActivationLevel,
355 static_cast<int>(ActivationLevel::ENABLED), 2); 359 static_cast<int>(ActivationLevel::ENABLED), 2);
356 histogram_tester.ExpectUniqueSample(kDocumentLoadRulesetIsAvailable, 1, 2); 360 histogram_tester.ExpectUniqueSample(kDocumentLoadRulesetIsAvailable, 1, 2);
357 361
358 EXPECT_THAT(histogram_tester.GetAllSamples(kSubresourcesTotal), 362 EXPECT_THAT(histogram_tester.GetAllSamples(kSubresourcesTotal),
359 ::testing::ElementsAre(base::Bucket(2, 1), base::Bucket(3, 1))); 363 ::testing::ElementsAre(base::Bucket(2, 1), base::Bucket(3, 1)));
(...skipping 20 matching lines...) Expand all
380 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED); 384 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED);
381 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent())); 385 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent()));
382 386
383 // Set the new ruleset just after the deadline for being used for the current 387 // Set the new ruleset just after the deadline for being used for the current
384 // load, to exercises doing filtering based on obseleted rulesets. 388 // load, to exercises doing filtering based on obseleted rulesets.
385 ASSERT_NO_FATAL_FAILURE( 389 ASSERT_NO_FATAL_FAILURE(
386 SetTestRulesetToDisallowURLsWithPathSuffix(kTestSecondURLPathSuffix)); 390 SetTestRulesetToDisallowURLsWithPathSuffix(kTestSecondURLPathSuffix));
387 391
388 ExpectSignalAboutFirstSubresourceDisallowed(); 392 ExpectSignalAboutFirstSubresourceDisallowed();
389 ExpectLoadPolicy(kTestFirstURL, 393 ExpectLoadPolicy(kTestFirstURL,
390 blink::WebDocumentSubresourceFilter::Disallow); 394 blink::WebDocumentSubresourceFilterLoadPolicy::Disallow);
391 ExpectLoadPolicy(kTestSecondURL, blink::WebDocumentSubresourceFilter::Allow); 395 ExpectLoadPolicy(kTestSecondURL,
396 blink::WebDocumentSubresourceFilterLoadPolicy::Allow);
392 ExpectDocumentLoadStatisticsSent(); 397 ExpectDocumentLoadStatisticsSent();
393 FinishLoad(); 398 FinishLoad();
394 399
395 ExpectSubresourceFilterGetsInjected(); 400 ExpectSubresourceFilterGetsInjected();
396 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED); 401 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED);
397 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent())); 402 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent()));
398 403
399 ExpectSignalAboutFirstSubresourceDisallowed(); 404 ExpectSignalAboutFirstSubresourceDisallowed();
400 ExpectLoadPolicy(kTestFirstURL, blink::WebDocumentSubresourceFilter::Allow); 405 ExpectLoadPolicy(kTestFirstURL,
406 blink::WebDocumentSubresourceFilterLoadPolicy::Allow);
401 ExpectLoadPolicy(kTestSecondURL, 407 ExpectLoadPolicy(kTestSecondURL,
402 blink::WebDocumentSubresourceFilter::Disallow); 408 blink::WebDocumentSubresourceFilterLoadPolicy::Disallow);
403 ExpectDocumentLoadStatisticsSent(); 409 ExpectDocumentLoadStatisticsSent();
404 FinishLoad(); 410 FinishLoad();
405 } 411 }
406 412
407 // If a provisional load is aborted, the RenderFrameObservers might not receive 413 // If a provisional load is aborted, the RenderFrameObservers might not receive
408 // any further notifications about that load. It is thus possible that there 414 // any further notifications about that load. It is thus possible that there
409 // will be two RenderFrameObserver::DidStartProvisionalLoad in a row. Make sure 415 // will be two RenderFrameObserver::DidStartProvisionalLoad in a row. Make sure
410 // that the activation decision does not outlive the first provisional load. 416 // that the activation decision does not outlive the first provisional load.
411 TEST_F(SubresourceFilterAgentTest, 417 TEST_F(SubresourceFilterAgentTest,
412 Enabled_FilteringNoLongerEffectAfterProvisionalLoadIsCancelled) { 418 Enabled_FilteringNoLongerEffectAfterProvisionalLoadIsCancelled) {
(...skipping 14 matching lines...) Expand all
427 base::HistogramTester histogram_tester; 433 base::HistogramTester histogram_tester;
428 ASSERT_NO_FATAL_FAILURE( 434 ASSERT_NO_FATAL_FAILURE(
429 SetTestRulesetToDisallowURLsWithPathSuffix(kTestFirstURLPathSuffix)); 435 SetTestRulesetToDisallowURLsWithPathSuffix(kTestFirstURLPathSuffix));
430 ExpectSubresourceFilterGetsInjected(); 436 ExpectSubresourceFilterGetsInjected();
431 StartLoadAndSetActivationLevel(ActivationLevel::DRYRUN); 437 StartLoadAndSetActivationLevel(ActivationLevel::DRYRUN);
432 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent())); 438 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent()));
433 439
434 // In dry-run mode, loads to the first URL should be recorded as 440 // In dry-run mode, loads to the first URL should be recorded as
435 // `MatchedRules`, but still be allowed to proceed and not recorded as 441 // `MatchedRules`, but still be allowed to proceed and not recorded as
436 // `Disallowed`. 442 // `Disallowed`.
437 ExpectLoadPolicy(kTestFirstURL, 443 ExpectLoadPolicy(
438 blink::WebDocumentSubresourceFilter::WouldDisallow); 444 kTestFirstURL,
439 ExpectLoadPolicy(kTestFirstURL, 445 blink::WebDocumentSubresourceFilterLoadPolicy::WouldDisallow);
440 blink::WebDocumentSubresourceFilter::WouldDisallow); 446 ExpectLoadPolicy(
441 ExpectLoadPolicy(kTestSecondURL, blink::WebDocumentSubresourceFilter::Allow); 447 kTestFirstURL,
448 blink::WebDocumentSubresourceFilterLoadPolicy::WouldDisallow);
449 ExpectLoadPolicy(kTestSecondURL,
450 blink::WebDocumentSubresourceFilterLoadPolicy::Allow);
442 ExpectDocumentLoadStatisticsSent(); 451 ExpectDocumentLoadStatisticsSent();
443 FinishLoad(); 452 FinishLoad();
444 453
445 histogram_tester.ExpectUniqueSample(kDocumentLoadActivationLevel, 454 histogram_tester.ExpectUniqueSample(kDocumentLoadActivationLevel,
446 static_cast<int>(ActivationLevel::DRYRUN), 455 static_cast<int>(ActivationLevel::DRYRUN),
447 1); 456 1);
448 histogram_tester.ExpectUniqueSample(kDocumentLoadRulesetIsAvailable, 1, 1); 457 histogram_tester.ExpectUniqueSample(kDocumentLoadRulesetIsAvailable, 1, 1);
449 458
450 histogram_tester.ExpectUniqueSample(kSubresourcesTotal, 3, 1); 459 histogram_tester.ExpectUniqueSample(kSubresourcesTotal, 3, 1);
451 histogram_tester.ExpectUniqueSample(kSubresourcesEvaluated, 3, 1); 460 histogram_tester.ExpectUniqueSample(kSubresourcesEvaluated, 3, 1);
452 histogram_tester.ExpectUniqueSample(kSubresourcesMatchedRules, 2, 1); 461 histogram_tester.ExpectUniqueSample(kSubresourcesMatchedRules, 2, 1);
453 histogram_tester.ExpectUniqueSample(kSubresourcesDisallowed, 0, 1); 462 histogram_tester.ExpectUniqueSample(kSubresourcesDisallowed, 0, 1);
454 463
455 // Performance measurement is switched off. 464 // Performance measurement is switched off.
456 histogram_tester.ExpectTotalCount(kEvaluationTotalWallDuration, 0); 465 histogram_tester.ExpectTotalCount(kEvaluationTotalWallDuration, 0);
457 histogram_tester.ExpectTotalCount(kEvaluationTotalCPUDuration, 0); 466 histogram_tester.ExpectTotalCount(kEvaluationTotalCPUDuration, 0);
458 } 467 }
459 468
460 TEST_F(SubresourceFilterAgentTest, 469 TEST_F(SubresourceFilterAgentTest,
461 SignalFirstSubresourceDisallowed_OncePerDocumentLoad) { 470 SignalFirstSubresourceDisallowed_OncePerDocumentLoad) {
462 ASSERT_NO_FATAL_FAILURE( 471 ASSERT_NO_FATAL_FAILURE(
463 SetTestRulesetToDisallowURLsWithPathSuffix(kTestFirstURLPathSuffix)); 472 SetTestRulesetToDisallowURLsWithPathSuffix(kTestFirstURLPathSuffix));
464 ExpectSubresourceFilterGetsInjected(); 473 ExpectSubresourceFilterGetsInjected();
465 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED); 474 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED);
466 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent())); 475 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent()));
467 476
468 ExpectSignalAboutFirstSubresourceDisallowed(); 477 ExpectSignalAboutFirstSubresourceDisallowed();
469 ExpectLoadPolicy(kTestFirstURL, 478 ExpectLoadPolicy(kTestFirstURL,
470 blink::WebDocumentSubresourceFilter::Disallow); 479 blink::WebDocumentSubresourceFilterLoadPolicy::Disallow);
471 ExpectNoSignalAboutFirstSubresourceDisallowed(); 480 ExpectNoSignalAboutFirstSubresourceDisallowed();
472 ExpectLoadPolicy(kTestFirstURL, 481 ExpectLoadPolicy(kTestFirstURL,
473 blink::WebDocumentSubresourceFilter::Disallow); 482 blink::WebDocumentSubresourceFilterLoadPolicy::Disallow);
474 ExpectLoadPolicy(kTestSecondURL, blink::WebDocumentSubresourceFilter::Allow); 483 ExpectLoadPolicy(kTestSecondURL,
484 blink::WebDocumentSubresourceFilterLoadPolicy::Allow);
475 ExpectDocumentLoadStatisticsSent(); 485 ExpectDocumentLoadStatisticsSent();
476 FinishLoad(); 486 FinishLoad();
477 487
478 ExpectSubresourceFilterGetsInjected(); 488 ExpectSubresourceFilterGetsInjected();
479 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED); 489 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED);
480 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent())); 490 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent()));
481 491
482 ExpectLoadPolicy(kTestSecondURL, blink::WebDocumentSubresourceFilter::Allow); 492 ExpectLoadPolicy(kTestSecondURL,
493 blink::WebDocumentSubresourceFilterLoadPolicy::Allow);
483 ExpectSignalAboutFirstSubresourceDisallowed(); 494 ExpectSignalAboutFirstSubresourceDisallowed();
484 ExpectLoadPolicy(kTestFirstURL, 495 ExpectLoadPolicy(kTestFirstURL,
485 blink::WebDocumentSubresourceFilter::Disallow); 496 blink::WebDocumentSubresourceFilterLoadPolicy::Disallow);
486 ExpectDocumentLoadStatisticsSent(); 497 ExpectDocumentLoadStatisticsSent();
487 FinishLoad(); 498 FinishLoad();
488 } 499 }
489 500
490 TEST_F(SubresourceFilterAgentTest, 501 TEST_F(SubresourceFilterAgentTest,
491 SignalFirstSubresourceDisallowed_ComesAfterAgentDestroyed) { 502 SignalFirstSubresourceDisallowed_ComesAfterAgentDestroyed) {
492 ASSERT_NO_FATAL_FAILURE( 503 ASSERT_NO_FATAL_FAILURE(
493 SetTestRulesetToDisallowURLsWithPathSuffix(kTestFirstURLPathSuffix)); 504 SetTestRulesetToDisallowURLsWithPathSuffix(kTestFirstURLPathSuffix));
494 ExpectSubresourceFilterGetsInjected(); 505 ExpectSubresourceFilterGetsInjected();
495 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED); 506 StartLoadAndSetActivationLevel(ActivationLevel::ENABLED);
496 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent())); 507 ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent()));
497 508
498 auto filter = agent()->TakeFilter(); 509 auto filter = agent()->TakeFilter();
499 ResetAgent(); 510 ResetAgent();
500 511
501 // The filter has been disconnected from the agent, so a call to 512 // The filter has been disconnected from the agent, so a call to
502 // reportDisallowedLoad() should not signal a first resource disallowed call 513 // reportDisallowedLoad() should not signal a first resource disallowed call
503 // to the agent, nor should it cause a crash. 514 // to the agent, nor should it cause a crash.
504 ExpectNoSignalAboutFirstSubresourceDisallowed(); 515 ExpectNoSignalAboutFirstSubresourceDisallowed();
505 516
506 filter->reportDisallowedLoad(); 517 filter->reportDisallowedLoad();
507 } 518 }
508 519
509 } // namespace subresource_filter 520 } // namespace subresource_filter
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698