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

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

Issue 2246493002: Revert of 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 delegate_ = SchedulerTqmDelegateForTest::Create( 37 delagate_ = 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(delegate_)); 39 scheduler_.reset(new RendererSchedulerImpl(delagate_));
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> delegate_; 57 scoped_refptr<SchedulerTqmDelegate> delagate_;
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 // Initially virtual time is not allowed to advance until we have seen at 508 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
509 // least one load.
510 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
511 509
512 web_view_scheduler_->DidStartLoading(1u); 510 web_view_scheduler_->DidStartLoading(1u);
513 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 511 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
514 512
515 web_view_scheduler_->DidStartLoading(2u); 513 web_view_scheduler_->DidStartLoading(2u);
516 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 514 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
517 515
518 web_view_scheduler_->DidStopLoading(2u); 516 web_view_scheduler_->DidStopLoading(2u);
519 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 517 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
520 518
521 web_view_scheduler_->DidStartLoading(3u); 519 web_view_scheduler_->DidStartLoading(3u);
522 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 520 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
523 521
524 web_view_scheduler_->DidStopLoading(1u); 522 web_view_scheduler_->DidStopLoading(1u);
525 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 523 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
526 524
527 web_view_scheduler_->DidStopLoading(3u); 525 web_view_scheduler_->DidStopLoading(3u);
528 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 526 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());
535 } 527 }
536 528
537 TEST_F(WebViewSchedulerImplTest, RedundantDidStopLoadingCallsAreHarmless) { 529 TEST_F(WebViewSchedulerImplTest, RedundantDidStopLoadingCallsAreHarmless) {
538 web_view_scheduler_->setVirtualTimePolicy( 530 web_view_scheduler_->setVirtualTimePolicy(
539 VirtualTimePolicy::DETERMINISTIC_LOADING); 531 VirtualTimePolicy::DETERMINISTIC_LOADING);
540 532
541 web_view_scheduler_->DidStartLoading(1u); 533 web_view_scheduler_->DidStartLoading(1u);
542 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 534 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
543 535
544 web_view_scheduler_->DidStopLoading(1u); 536 web_view_scheduler_->DidStopLoading(1u);
545 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 537 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
546 538
547 web_view_scheduler_->DidStopLoading(1u); 539 web_view_scheduler_->DidStopLoading(1u);
548 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 540 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
549 541
550 web_view_scheduler_->DidStopLoading(1u); 542 web_view_scheduler_->DidStopLoading(1u);
551 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 543 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
552 544
553 web_view_scheduler_->DidStartLoading(2u); 545 web_view_scheduler_->DidStartLoading(2u);
554 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 546 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
555 547
556 web_view_scheduler_->DidStopLoading(2u); 548 web_view_scheduler_->DidStopLoading(2u);
557 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 549 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
558 } 550 }
559 551
560 TEST_F(WebViewSchedulerImplTest, BackgroundParser_DETERMINISTIC_LOADING) { 552 TEST_F(WebViewSchedulerImplTest, BackgroundParser_DETERMINISTIC_LOADING) {
561 web_view_scheduler_->setVirtualTimePolicy( 553 web_view_scheduler_->setVirtualTimePolicy(
562 VirtualTimePolicy::DETERMINISTIC_LOADING); 554 VirtualTimePolicy::DETERMINISTIC_LOADING);
563 // Initially virtual time is not allowed to advance until we have seen at 555 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance());
564 // least one load. 556
557 web_view_scheduler_->IncrementBackgroundParserCount();
565 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 558 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
566 559
567 web_view_scheduler_->IncrementBackgroundParserCount(); 560 web_view_scheduler_->IncrementBackgroundParserCount();
568 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 561 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
569 562
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
579 web_view_scheduler_->DecrementBackgroundParserCount(); 563 web_view_scheduler_->DecrementBackgroundParserCount();
580 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 564 EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance());
581 565
582 web_view_scheduler_->DecrementBackgroundParserCount(); 566 web_view_scheduler_->DecrementBackgroundParserCount();
583 EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); 567 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());
590 } 568 }
591 569
592 } // namespace scheduler 570 } // 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