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

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: 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 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
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, 505 TEST_F(WebViewSchedulerImplTest,
506 VirtualTimePolicy_PAUSE_IF_NETWORK_FETCHES_PENDING) { 506 VirtualTimePolicy_PAUSE_IF_NETWORK_FETCHES_PENDING) {
507 web_view_scheduler_->setVirtualTimePolicy( 507 web_view_scheduler_->setVirtualTimePolicy(
508 VirtualTimePolicy::PAUSE_IF_NETWORK_FETCHES_PENDING); 508 VirtualTimePolicy::PAUSE_IF_NETWORK_FETCHES_PENDING);
509 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 509 // Initially virtual time is not allowed to advance until we have seen at
Sami 2016/07/28 10:46:34 This comment could be useful in the virtual time A
alex clarke (OOO till 29th) 2016/07/29 13:35:01 Done.
510 // least one load.
511 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
510 512
511 web_view_scheduler_->DidStartLoading(1u); 513 web_view_scheduler_->DidStartLoading(1u);
512 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 514 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
513 515
514 web_view_scheduler_->DidStartLoading(2u); 516 web_view_scheduler_->DidStartLoading(2u);
515 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 517 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
516 518
517 web_view_scheduler_->DidStopLoading(2u); 519 web_view_scheduler_->DidStopLoading(2u);
518 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 520 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
519 521
520 web_view_scheduler_->DidStartLoading(3u); 522 web_view_scheduler_->DidStartLoading(3u);
521 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 523 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
522 524
523 web_view_scheduler_->DidStopLoading(1u); 525 web_view_scheduler_->DidStopLoading(1u);
524 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 526 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
525 527
526 web_view_scheduler_->DidStopLoading(3u); 528 web_view_scheduler_->DidStopLoading(3u);
527 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 529 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
530
531 web_view_scheduler_->DidStartLoading(4u);
532 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
533
534 web_view_scheduler_->DidStopLoading(4u);
535 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
528 } 536 }
529 537
530 TEST_F(WebViewSchedulerImplTest, RedundantDidStopLoadingCallsAreHarmless) { 538 TEST_F(WebViewSchedulerImplTest, RedundantDidStopLoadingCallsAreHarmless) {
531 web_view_scheduler_->setVirtualTimePolicy( 539 web_view_scheduler_->setVirtualTimePolicy(
532 VirtualTimePolicy::PAUSE_IF_NETWORK_FETCHES_PENDING); 540 VirtualTimePolicy::PAUSE_IF_NETWORK_FETCHES_PENDING);
533 541
534 web_view_scheduler_->DidStartLoading(1u); 542 web_view_scheduler_->DidStartLoading(1u);
535 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 543 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
536 544
537 web_view_scheduler_->DidStopLoading(1u); 545 web_view_scheduler_->DidStopLoading(1u);
538 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 546 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
539 547
540 web_view_scheduler_->DidStopLoading(1u); 548 web_view_scheduler_->DidStopLoading(1u);
541 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 549 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
542 550
543 web_view_scheduler_->DidStopLoading(1u); 551 web_view_scheduler_->DidStopLoading(1u);
544 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 552 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
545 553
546 web_view_scheduler_->DidStartLoading(2u); 554 web_view_scheduler_->DidStartLoading(2u);
547 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 555 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
548 556
549 web_view_scheduler_->DidStopLoading(2u); 557 web_view_scheduler_->DidStopLoading(2u);
550 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 558 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
551 } 559 }
552 560
553 } // namespace scheduler 561 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698