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

Side by Side Diff: components/scheduler/renderer/web_view_scheduler_impl_unittest.cc

Issue 2184123002: Change VirtualTimePolicy::PAUSE_IF_NETWORK_FETCHES_PENDING (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 4 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/scheduler/renderer/web_view_scheduler_impl.h" 5 #include "components/scheduler/renderer/web_view_scheduler_impl.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 16 matching lines...) Expand all
27 class WebViewSchedulerImplTest : public testing::Test { 27 class WebViewSchedulerImplTest : public testing::Test {
28 public: 28 public:
29 WebViewSchedulerImplTest() {} 29 WebViewSchedulerImplTest() {}
30 ~WebViewSchedulerImplTest() override {} 30 ~WebViewSchedulerImplTest() override {}
31 31
32 void SetUp() override { 32 void SetUp() override {
33 clock_.reset(new base::SimpleTestTickClock()); 33 clock_.reset(new base::SimpleTestTickClock());
34 clock_->Advance(base::TimeDelta::FromMicroseconds(5000)); 34 clock_->Advance(base::TimeDelta::FromMicroseconds(5000));
35 mock_task_runner_ = 35 mock_task_runner_ =
36 make_scoped_refptr(new cc::OrderedSimpleTaskRunner(clock_.get(), true)); 36 make_scoped_refptr(new cc::OrderedSimpleTaskRunner(clock_.get(), true));
37 delagate_ = SchedulerTqmDelegateForTest::Create( 37 delegate_ = SchedulerTqmDelegateForTest::Create(
38 mock_task_runner_, base::WrapUnique(new TestTimeSource(clock_.get()))); 38 mock_task_runner_, base::WrapUnique(new TestTimeSource(clock_.get())));
39 scheduler_.reset(new RendererSchedulerImpl(delagate_)); 39 scheduler_.reset(new RendererSchedulerImpl(delegate_));
40 web_view_scheduler_.reset(new WebViewSchedulerImpl( 40 web_view_scheduler_.reset(new WebViewSchedulerImpl(
41 nullptr, scheduler_.get(), DisableBackgroundTimerThrottling())); 41 nullptr, scheduler_.get(), DisableBackgroundTimerThrottling()));
42 web_frame_scheduler_ = 42 web_frame_scheduler_ =
43 web_view_scheduler_->createWebFrameSchedulerImpl(nullptr); 43 web_view_scheduler_->createWebFrameSchedulerImpl(nullptr);
44 } 44 }
45 45
46 void TearDown() override { 46 void TearDown() override {
47 web_frame_scheduler_.reset(); 47 web_frame_scheduler_.reset();
48 web_view_scheduler_.reset(); 48 web_view_scheduler_.reset();
49 scheduler_->Shutdown(); 49 scheduler_->Shutdown();
50 scheduler_.reset(); 50 scheduler_.reset();
51 } 51 }
52 52
53 virtual bool DisableBackgroundTimerThrottling() const { return false; } 53 virtual bool DisableBackgroundTimerThrottling() const { return false; }
54 54
55 std::unique_ptr<base::SimpleTestTickClock> clock_; 55 std::unique_ptr<base::SimpleTestTickClock> clock_;
56 scoped_refptr<cc::OrderedSimpleTaskRunner> mock_task_runner_; 56 scoped_refptr<cc::OrderedSimpleTaskRunner> mock_task_runner_;
57 scoped_refptr<SchedulerTqmDelegate> delagate_; 57 scoped_refptr<SchedulerTqmDelegate> delegate_;
58 std::unique_ptr<RendererSchedulerImpl> scheduler_; 58 std::unique_ptr<RendererSchedulerImpl> scheduler_;
59 std::unique_ptr<WebViewSchedulerImpl> web_view_scheduler_; 59 std::unique_ptr<WebViewSchedulerImpl> web_view_scheduler_;
60 std::unique_ptr<WebFrameSchedulerImpl> web_frame_scheduler_; 60 std::unique_ptr<WebFrameSchedulerImpl> web_frame_scheduler_;
61 }; 61 };
62 62
63 TEST_F(WebViewSchedulerImplTest, TestDestructionOfFrameSchedulersBefore) { 63 TEST_F(WebViewSchedulerImplTest, TestDestructionOfFrameSchedulersBefore) {
64 std::unique_ptr<blink::WebFrameScheduler> frame1( 64 std::unique_ptr<blink::WebFrameScheduler> frame1(
65 web_view_scheduler_->createFrameScheduler(nullptr)); 65 web_view_scheduler_->createFrameScheduler(nullptr));
66 std::unique_ptr<blink::WebFrameScheduler> frame2( 66 std::unique_ptr<blink::WebFrameScheduler> frame2(
67 web_view_scheduler_->createFrameScheduler(nullptr)); 67 web_view_scheduler_->createFrameScheduler(nullptr));
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 timer_task_runner->postDelayedTask(BLINK_FROM_HERE, delete_frame_task, 498 timer_task_runner->postDelayedTask(BLINK_FROM_HERE, delete_frame_task,
499 9990.0); 499 9990.0);
500 500
501 mock_task_runner_->RunForPeriod(base::TimeDelta::FromSeconds(100)); 501 mock_task_runner_->RunForPeriod(base::TimeDelta::FromSeconds(100));
502 EXPECT_EQ(10, run_count); 502 EXPECT_EQ(10, run_count);
503 } 503 }
504 504
505 TEST_F(WebViewSchedulerImplTest, VirtualTimePolicy_DETERMINISTIC_LOADING) { 505 TEST_F(WebViewSchedulerImplTest, VirtualTimePolicy_DETERMINISTIC_LOADING) {
506 web_view_scheduler_->setVirtualTimePolicy( 506 web_view_scheduler_->setVirtualTimePolicy(
507 VirtualTimePolicy::DETERMINISTIC_LOADING); 507 VirtualTimePolicy::DETERMINISTIC_LOADING);
508 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 508 // Initially virtual time is not allowed to advance until we have seen at
509 // least one load.
510 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
509 511
510 web_view_scheduler_->DidStartLoading(1u); 512 web_view_scheduler_->DidStartLoading(1u);
511 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 513 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
512 514
513 web_view_scheduler_->DidStartLoading(2u); 515 web_view_scheduler_->DidStartLoading(2u);
514 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 516 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
515 517
516 web_view_scheduler_->DidStopLoading(2u); 518 web_view_scheduler_->DidStopLoading(2u);
517 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 519 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
518 520
519 web_view_scheduler_->DidStartLoading(3u); 521 web_view_scheduler_->DidStartLoading(3u);
520 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 522 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
521 523
522 web_view_scheduler_->DidStopLoading(1u); 524 web_view_scheduler_->DidStopLoading(1u);
523 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 525 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
524 526
525 web_view_scheduler_->DidStopLoading(3u); 527 web_view_scheduler_->DidStopLoading(3u);
526 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 528 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
529
530 web_view_scheduler_->DidStartLoading(4u);
531 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
532
533 web_view_scheduler_->DidStopLoading(4u);
534 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
527 } 535 }
528 536
529 TEST_F(WebViewSchedulerImplTest, RedundantDidStopLoadingCallsAreHarmless) { 537 TEST_F(WebViewSchedulerImplTest, RedundantDidStopLoadingCallsAreHarmless) {
530 web_view_scheduler_->setVirtualTimePolicy( 538 web_view_scheduler_->setVirtualTimePolicy(
531 VirtualTimePolicy::DETERMINISTIC_LOADING); 539 VirtualTimePolicy::DETERMINISTIC_LOADING);
532 540
533 web_view_scheduler_->DidStartLoading(1u); 541 web_view_scheduler_->DidStartLoading(1u);
534 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 542 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
535 543
536 web_view_scheduler_->DidStopLoading(1u); 544 web_view_scheduler_->DidStopLoading(1u);
537 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 545 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
538 546
539 web_view_scheduler_->DidStopLoading(1u); 547 web_view_scheduler_->DidStopLoading(1u);
540 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 548 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
541 549
542 web_view_scheduler_->DidStopLoading(1u); 550 web_view_scheduler_->DidStopLoading(1u);
543 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 551 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
544 552
545 web_view_scheduler_->DidStartLoading(2u); 553 web_view_scheduler_->DidStartLoading(2u);
546 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 554 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
547 555
548 web_view_scheduler_->DidStopLoading(2u); 556 web_view_scheduler_->DidStopLoading(2u);
549 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 557 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
550 } 558 }
551 559
552 TEST_F(WebViewSchedulerImplTest, BackgroundParser_DETERMINISTIC_LOADING) { 560 TEST_F(WebViewSchedulerImplTest, BackgroundParser_DETERMINISTIC_LOADING) {
553 web_view_scheduler_->setVirtualTimePolicy( 561 web_view_scheduler_->setVirtualTimePolicy(
554 VirtualTimePolicy::DETERMINISTIC_LOADING); 562 VirtualTimePolicy::DETERMINISTIC_LOADING);
555 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 563 // Initially virtual time is not allowed to advance until we have seen at
556 564 // least one load.
557 web_view_scheduler_->IncrementBackgroundParserCount();
558 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 565 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
559 566
560 web_view_scheduler_->IncrementBackgroundParserCount(); 567 web_view_scheduler_->IncrementBackgroundParserCount();
561 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 568 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
562 569
570 web_view_scheduler_->DidStartLoading(1u);
571 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
572
573 web_view_scheduler_->DidStopLoading(1u);
574 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
575
576 web_view_scheduler_->IncrementBackgroundParserCount();
577 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
578
563 web_view_scheduler_->DecrementBackgroundParserCount(); 579 web_view_scheduler_->DecrementBackgroundParserCount();
564 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 580 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
565 581
566 web_view_scheduler_->DecrementBackgroundParserCount(); 582 web_view_scheduler_->DecrementBackgroundParserCount();
567 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 583 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
584
585 web_view_scheduler_->IncrementBackgroundParserCount();
586 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
587
588 web_view_scheduler_->DecrementBackgroundParserCount();
589 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
568 } 590 }
569 591
570 } // namespace scheduler 592 } // namespace scheduler
OLDNEW
« no previous file with comments | « components/scheduler/renderer/web_view_scheduler_impl.cc ('k') | third_party/WebKit/Source/platform/WebViewSchedulerTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698