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

Side by Side Diff: net/http/http_server_properties_manager_unittest.cc

Issue 2894863002: Rename TaskRunner::RunsTasksOnCurrentThread() in //net (Closed)
Patch Set: fixed build error Created 3 years, 7 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
« no previous file with comments | « net/http/http_server_properties_manager.cc ('k') | net/http/transport_security_persister.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "net/http/http_server_properties_manager.h" 5 #include "net/http/http_server_properties_manager.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 HttpServerPropertiesManager::PrefDelegate* pref_delegate, 84 HttpServerPropertiesManager::PrefDelegate* pref_delegate,
85 scoped_refptr<TestMockTimeTaskRunner> pref_task_runner, 85 scoped_refptr<TestMockTimeTaskRunner> pref_task_runner,
86 scoped_refptr<TestMockTimeTaskRunner> net_task_runner) 86 scoped_refptr<TestMockTimeTaskRunner> net_task_runner)
87 : HttpServerPropertiesManager(pref_delegate, 87 : HttpServerPropertiesManager(pref_delegate,
88 pref_task_runner, 88 pref_task_runner,
89 net_task_runner), 89 net_task_runner),
90 pref_task_runner_(std::move(pref_task_runner)), 90 pref_task_runner_(std::move(pref_task_runner)),
91 net_task_runner_(std::move(net_task_runner)) { 91 net_task_runner_(std::move(net_task_runner)) {
92 // This call must run in the context of |net_task_runner_|. 92 // This call must run in the context of |net_task_runner_|.
93 TestMockTimeTaskRunner::ScopedContext scoped_context(net_task_runner_); 93 TestMockTimeTaskRunner::ScopedContext scoped_context(net_task_runner_);
94 HttpServerPropertiesManager::InitializeOnNetworkThread(); 94 HttpServerPropertiesManager::InitializeOnNetworkSequence();
95 } 95 }
96 96
97 ~TestingHttpServerPropertiesManager() override {} 97 ~TestingHttpServerPropertiesManager() override {}
98 98
99 // Make these methods public for testing. 99 // Make these methods public for testing.
100 using HttpServerPropertiesManager::ScheduleUpdateCacheOnPrefThread; 100 using HttpServerPropertiesManager::ScheduleUpdateCacheOnPrefThread;
101 101
102 void UpdateCacheFromPrefsOnUIConcrete() { 102 void UpdateCacheFromPrefsOnUIConcrete() {
103 TestMockTimeTaskRunner::ScopedContext scoped_context(pref_task_runner_); 103 TestMockTimeTaskRunner::ScopedContext scoped_context(pref_task_runner_);
104 HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefThread(); 104 HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefSequence();
105 } 105 }
106 106
107 void UpdatePrefsFromCacheOnNetworkThreadConcrete( 107 void UpdatePrefsFromCacheOnNetworkSequenceConcrete(
108 const base::Closure& callback) { 108 const base::Closure& callback) {
109 TestMockTimeTaskRunner::ScopedContext scoped_context(net_task_runner_); 109 TestMockTimeTaskRunner::ScopedContext scoped_context(net_task_runner_);
110 HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkThread(callback); 110 HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkSequence(
111 callback);
111 } 112 }
112 113
113 void ScheduleUpdatePrefsOnNetworkThreadConcrete(Location location) { 114 void ScheduleUpdatePrefsOnNetworkSequenceConcrete(Location location) {
114 TestMockTimeTaskRunner::ScopedContext scoped_context(net_task_runner_); 115 TestMockTimeTaskRunner::ScopedContext scoped_context(net_task_runner_);
115 HttpServerPropertiesManager::ScheduleUpdatePrefsOnNetworkThread(location); 116 HttpServerPropertiesManager::ScheduleUpdatePrefsOnNetworkSequence(location);
116 } 117 }
117 118
118 void ScheduleUpdatePrefsOnNetworkThreadDefault() { 119 void ScheduleUpdatePrefsOnNetworkSequenceDefault() {
119 TestMockTimeTaskRunner::ScopedContext scoped_context(net_task_runner_); 120 TestMockTimeTaskRunner::ScopedContext scoped_context(net_task_runner_);
120 // Picked a random Location as caller. 121 // Picked a random Location as caller.
121 HttpServerPropertiesManager::ScheduleUpdatePrefsOnNetworkThread( 122 HttpServerPropertiesManager::ScheduleUpdatePrefsOnNetworkSequence(
122 DETECTED_CORRUPTED_PREFS); 123 DETECTED_CORRUPTED_PREFS);
123 } 124 }
124 125
125 MOCK_METHOD0(UpdateCacheFromPrefsOnPrefThread, void()); 126 MOCK_METHOD0(UpdateCacheFromPrefsOnPrefSequence, void());
126 MOCK_METHOD1(UpdatePrefsFromCacheOnNetworkThread, void(const base::Closure&)); 127 MOCK_METHOD1(UpdatePrefsFromCacheOnNetworkSequence,
127 MOCK_METHOD1(ScheduleUpdatePrefsOnNetworkThread, void(Location location)); 128 void(const base::Closure&));
128 MOCK_METHOD6(UpdateCacheFromPrefsOnNetworkThread, 129 MOCK_METHOD1(ScheduleUpdatePrefsOnNetworkSequence, void(Location location));
130 MOCK_METHOD6(UpdateCacheFromPrefsOnNetworkSequence,
129 void(std::vector<std::string>* spdy_servers, 131 void(std::vector<std::string>* spdy_servers,
130 AlternativeServiceMap* alternative_service_map, 132 AlternativeServiceMap* alternative_service_map,
131 IPAddress* last_quic_address, 133 IPAddress* last_quic_address,
132 ServerNetworkStatsMap* server_network_stats_map, 134 ServerNetworkStatsMap* server_network_stats_map,
133 QuicServerInfoMap* quic_server_info_map, 135 QuicServerInfoMap* quic_server_info_map,
134 bool detected_corrupted_prefs)); 136 bool detected_corrupted_prefs));
135 MOCK_METHOD6(UpdatePrefsOnPrefThread, 137 MOCK_METHOD6(UpdatePrefsOnPrefThread,
136 void(base::ListValue* spdy_server_list, 138 void(base::ListValue* spdy_server_list,
137 AlternativeServiceMap* alternative_service_map, 139 AlternativeServiceMap* alternative_service_map,
138 IPAddress* last_quic_address, 140 IPAddress* last_quic_address,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 174 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
173 pref_test_task_runner_->RunUntilIdle(); 175 pref_test_task_runner_->RunUntilIdle();
174 net_test_task_runner_->RunUntilIdle(); 176 net_test_task_runner_->RunUntilIdle();
175 EXPECT_TRUE(http_server_props_manager_->IsInitialized()); 177 EXPECT_TRUE(http_server_props_manager_->IsInitialized());
176 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 178 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
177 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 179 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
178 } 180 }
179 181
180 void TearDown() override { 182 void TearDown() override {
181 if (http_server_props_manager_.get()) 183 if (http_server_props_manager_.get())
182 http_server_props_manager_->ShutdownOnPrefThread(); 184 http_server_props_manager_->ShutdownOnPrefSequence();
183 // Run pending non-delayed tasks but don't FastForwardUntilNoTasksRemain() 185 // Run pending non-delayed tasks but don't FastForwardUntilNoTasksRemain()
184 // as some delayed tasks may forever repost (e.g. because impl doesn't use a 186 // as some delayed tasks may forever repost (e.g. because impl doesn't use a
185 // mock clock and doesn't see timings as having expired, ref. 187 // mock clock and doesn't see timings as having expired, ref.
186 // HttpServerPropertiesImpl:: 188 // HttpServerPropertiesImpl::
187 // ScheduleBrokenAlternateProtocolMappingsExpiration()). 189 // ScheduleBrokenAlternateProtocolMappingsExpiration()).
188 pref_test_task_runner_->RunUntilIdle(); 190 pref_test_task_runner_->RunUntilIdle();
189 net_test_task_runner_->RunUntilIdle(); 191 net_test_task_runner_->RunUntilIdle();
190 http_server_props_manager_.reset(); 192 http_server_props_manager_.reset();
191 } 193 }
192 194
193 void ExpectCacheUpdate() { 195 void ExpectCacheUpdate() {
194 EXPECT_CALL(*http_server_props_manager_, UpdateCacheFromPrefsOnPrefThread()) 196 EXPECT_CALL(*http_server_props_manager_,
197 UpdateCacheFromPrefsOnPrefSequence())
195 .WillOnce(Invoke(http_server_props_manager_.get(), 198 .WillOnce(Invoke(http_server_props_manager_.get(),
196 &TestingHttpServerPropertiesManager:: 199 &TestingHttpServerPropertiesManager::
197 UpdateCacheFromPrefsOnUIConcrete)); 200 UpdateCacheFromPrefsOnUIConcrete));
198 } 201 }
199 202
200 void ExpectScheduleUpdatePrefsOnNetworkThread() { 203 void ExpectScheduleUpdatePrefsOnNetworkSequence() {
201 EXPECT_CALL(*http_server_props_manager_, 204 EXPECT_CALL(*http_server_props_manager_,
202 ScheduleUpdatePrefsOnNetworkThread(_)) 205 ScheduleUpdatePrefsOnNetworkSequence(_))
203 .WillOnce(Invoke(http_server_props_manager_.get(), 206 .WillOnce(Invoke(http_server_props_manager_.get(),
204 &TestingHttpServerPropertiesManager:: 207 &TestingHttpServerPropertiesManager::
205 ScheduleUpdatePrefsOnNetworkThreadConcrete)); 208 ScheduleUpdatePrefsOnNetworkSequenceConcrete));
206 } 209 }
207 210
208 void ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(int times) { 211 void ExpectScheduleUpdatePrefsOnNetworkSequenceRepeatedly(int times) {
209 EXPECT_CALL(*http_server_props_manager_, 212 EXPECT_CALL(*http_server_props_manager_,
210 ScheduleUpdatePrefsOnNetworkThread(_)) 213 ScheduleUpdatePrefsOnNetworkSequence(_))
211 .Times(AtLeast(times)) 214 .Times(AtLeast(times))
212 .WillRepeatedly(Invoke(http_server_props_manager_.get(), 215 .WillRepeatedly(
213 &TestingHttpServerPropertiesManager:: 216 Invoke(http_server_props_manager_.get(),
214 ScheduleUpdatePrefsOnNetworkThreadConcrete)); 217 &TestingHttpServerPropertiesManager::
218 ScheduleUpdatePrefsOnNetworkSequenceConcrete));
215 } 219 }
216 220
217 void ExpectPrefsUpdate(int times) { 221 void ExpectPrefsUpdate(int times) {
218 EXPECT_CALL(*http_server_props_manager_, 222 EXPECT_CALL(*http_server_props_manager_,
219 UpdatePrefsFromCacheOnNetworkThread(_)) 223 UpdatePrefsFromCacheOnNetworkSequence(_))
220 .Times(times) 224 .Times(times)
221 .WillRepeatedly( 225 .WillRepeatedly(
222 Invoke(http_server_props_manager_.get(), 226 Invoke(http_server_props_manager_.get(),
223 &TestingHttpServerPropertiesManager:: 227 &TestingHttpServerPropertiesManager::
224 UpdatePrefsFromCacheOnNetworkThreadConcrete)); 228 UpdatePrefsFromCacheOnNetworkSequenceConcrete));
225 } 229 }
226 230
227 bool HasAlternativeService(const url::SchemeHostPort& server) { 231 bool HasAlternativeService(const url::SchemeHostPort& server) {
228 const AlternativeServiceInfoVector alternative_service_info_vector = 232 const AlternativeServiceInfoVector alternative_service_info_vector =
229 http_server_props_manager_->GetAlternativeServiceInfos(server); 233 http_server_props_manager_->GetAlternativeServiceInfos(server);
230 return !alternative_service_info_vector.empty(); 234 return !alternative_service_info_vector.empty();
231 } 235 }
232 236
233 MockPrefDelegate* pref_delegate_; // Owned by HttpServerPropertiesManager. 237 MockPrefDelegate* pref_delegate_; // Owned by HttpServerPropertiesManager.
234 std::unique_ptr<TestingHttpServerPropertiesManager> 238 std::unique_ptr<TestingHttpServerPropertiesManager>
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 EXPECT_EQ(quic_server_info2, *http_server_props_manager_->GetQuicServerInfo( 475 EXPECT_EQ(quic_server_info2, *http_server_props_manager_->GetQuicServerInfo(
472 mail_quic_server_id)); 476 mail_quic_server_id));
473 EXPECT_EQ(quic_server_info3, *http_server_props_manager_->GetQuicServerInfo( 477 EXPECT_EQ(quic_server_info3, *http_server_props_manager_->GetQuicServerInfo(
474 play_quic_server_id)); 478 play_quic_server_id));
475 } 479 }
476 480
477 TEST_P(HttpServerPropertiesManagerTest, BadCachedHostPortPair) { 481 TEST_P(HttpServerPropertiesManagerTest, BadCachedHostPortPair) {
478 ExpectCacheUpdate(); 482 ExpectCacheUpdate();
479 // The prefs are automatically updated in the case corruption is detected. 483 // The prefs are automatically updated in the case corruption is detected.
480 ExpectPrefsUpdate(1); 484 ExpectPrefsUpdate(1);
481 ExpectScheduleUpdatePrefsOnNetworkThread(); 485 ExpectScheduleUpdatePrefsOnNetworkSequence();
482 486
483 auto server_pref_dict = base::MakeUnique<base::DictionaryValue>(); 487 auto server_pref_dict = base::MakeUnique<base::DictionaryValue>();
484 488
485 // Set supports_spdy for www.google.com:65536. 489 // Set supports_spdy for www.google.com:65536.
486 server_pref_dict->SetBoolean("supports_spdy", true); 490 server_pref_dict->SetBoolean("supports_spdy", true);
487 491
488 // Set up alternative_service for www.google.com:65536. 492 // Set up alternative_service for www.google.com:65536.
489 auto alternative_service_dict = base::MakeUnique<base::DictionaryValue>(); 493 auto alternative_service_dict = base::MakeUnique<base::DictionaryValue>();
490 alternative_service_dict->SetString("protocol_str", "h2"); 494 alternative_service_dict->SetString("protocol_str", "h2");
491 alternative_service_dict->SetInteger("port", 80); 495 alternative_service_dict->SetInteger("port", 80);
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 const ServerNetworkStats* stats1 = 564 const ServerNetworkStats* stats1 =
561 http_server_props_manager_->GetServerNetworkStats(gooler_server); 565 http_server_props_manager_->GetServerNetworkStats(gooler_server);
562 EXPECT_EQ(nullptr, stats1); 566 EXPECT_EQ(nullptr, stats1);
563 EXPECT_EQ(0u, http_server_props_manager_->quic_server_info_map().size()); 567 EXPECT_EQ(0u, http_server_props_manager_->quic_server_info_map().size());
564 } 568 }
565 569
566 TEST_P(HttpServerPropertiesManagerTest, BadCachedAltProtocolPort) { 570 TEST_P(HttpServerPropertiesManagerTest, BadCachedAltProtocolPort) {
567 ExpectCacheUpdate(); 571 ExpectCacheUpdate();
568 // The prefs are automatically updated in the case corruption is detected. 572 // The prefs are automatically updated in the case corruption is detected.
569 ExpectPrefsUpdate(1); 573 ExpectPrefsUpdate(1);
570 ExpectScheduleUpdatePrefsOnNetworkThread(); 574 ExpectScheduleUpdatePrefsOnNetworkSequence();
571 575
572 auto server_pref_dict = base::MakeUnique<base::DictionaryValue>(); 576 auto server_pref_dict = base::MakeUnique<base::DictionaryValue>();
573 577
574 // Set supports_spdy for www.google.com:80. 578 // Set supports_spdy for www.google.com:80.
575 server_pref_dict->SetBoolean("supports_spdy", true); 579 server_pref_dict->SetBoolean("supports_spdy", true);
576 580
577 // Set up alternative_service for www.google.com:80. 581 // Set up alternative_service for www.google.com:80.
578 auto alternative_service_dict = base::MakeUnique<base::DictionaryValue>(); 582 auto alternative_service_dict = base::MakeUnique<base::DictionaryValue>();
579 alternative_service_dict->SetString("protocol_str", "h2"); 583 alternative_service_dict->SetString("protocol_str", "h2");
580 alternative_service_dict->SetInteger("port", 65536); 584 alternative_service_dict->SetInteger("port", 65536);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 625 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
622 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 626 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
623 627
624 // Verify alternative service is not set. 628 // Verify alternative service is not set.
625 EXPECT_FALSE( 629 EXPECT_FALSE(
626 HasAlternativeService(url::SchemeHostPort("http", "www.google.com", 80))); 630 HasAlternativeService(url::SchemeHostPort("http", "www.google.com", 80)));
627 } 631 }
628 632
629 TEST_P(HttpServerPropertiesManagerTest, SupportsSpdy) { 633 TEST_P(HttpServerPropertiesManagerTest, SupportsSpdy) {
630 ExpectPrefsUpdate(1); 634 ExpectPrefsUpdate(1);
631 ExpectScheduleUpdatePrefsOnNetworkThread(); 635 ExpectScheduleUpdatePrefsOnNetworkSequence();
632 636
633 // Post an update task to the network thread. SetSupportsSpdy calls 637 // Post an update task to the network thread. SetSupportsSpdy calls
634 // ScheduleUpdatePrefsOnNetworkThread. 638 // ScheduleUpdatePrefsOnNetworkSequence.
635 639
636 // Add mail.google.com:443 as a supporting spdy server. 640 // Add mail.google.com:443 as a supporting spdy server.
637 url::SchemeHostPort spdy_server("https", "mail.google.com", 443); 641 url::SchemeHostPort spdy_server("https", "mail.google.com", 443);
638 EXPECT_FALSE( 642 EXPECT_FALSE(
639 http_server_props_manager_->SupportsRequestPriority(spdy_server)); 643 http_server_props_manager_->SupportsRequestPriority(spdy_server));
640 http_server_props_manager_->SetSupportsSpdy(spdy_server, true); 644 http_server_props_manager_->SetSupportsSpdy(spdy_server, true);
641 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 645 // ExpectScheduleUpdatePrefsOnNetworkSequence() should be called only once.
642 http_server_props_manager_->SetSupportsSpdy(spdy_server, true); 646 http_server_props_manager_->SetSupportsSpdy(spdy_server, true);
643 647
644 // Run the task. 648 // Run the task.
645 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 649 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
646 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 650 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
647 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 651 net_test_task_runner_->FastForwardUntilNoTasksRemain();
648 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 652 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
649 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 653 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
650 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 654 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
651 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 655 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
652 656
653 EXPECT_TRUE(http_server_props_manager_->SupportsRequestPriority(spdy_server)); 657 EXPECT_TRUE(http_server_props_manager_->SupportsRequestPriority(spdy_server));
654 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 658 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
655 } 659 }
656 660
657 // Regression test for crbug.com/670519. Test that there is only one pref update 661 // Regression test for crbug.com/670519. Test that there is only one pref update
658 // scheduled if multiple updates happen in a given time period. Subsequent pref 662 // scheduled if multiple updates happen in a given time period. Subsequent pref
659 // update could also be scheduled once the previous scheduled update is 663 // update could also be scheduled once the previous scheduled update is
660 // completed. 664 // completed.
661 TEST_P(HttpServerPropertiesManagerTest, 665 TEST_P(HttpServerPropertiesManagerTest,
662 SinglePrefUpdateForTwoSpdyServerCacheChanges) { 666 SinglePrefUpdateForTwoSpdyServerCacheChanges) {
663 ExpectPrefsUpdate(2); 667 ExpectPrefsUpdate(2);
664 ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(3); 668 ExpectScheduleUpdatePrefsOnNetworkSequenceRepeatedly(3);
665 669
666 // Post an update task to the network thread. SetSupportsSpdy calls 670 // Post an update task to the network thread. SetSupportsSpdy calls
667 // ScheduleUpdatePrefsOnNetworkThread with a delay of 60ms. 671 // ScheduleUpdatePrefsOnNetworkSequence with a delay of 60ms.
668 url::SchemeHostPort spdy_server("https", "mail.google.com", 443); 672 url::SchemeHostPort spdy_server("https", "mail.google.com", 443);
669 EXPECT_FALSE( 673 EXPECT_FALSE(
670 http_server_props_manager_->SupportsRequestPriority(spdy_server)); 674 http_server_props_manager_->SupportsRequestPriority(spdy_server));
671 http_server_props_manager_->SetSupportsSpdy(spdy_server, true); 675 http_server_props_manager_->SetSupportsSpdy(spdy_server, true);
672 // The pref update task should be scheduled to network thread. 676 // The pref update task should be scheduled to network thread.
673 EXPECT_EQ(1u, net_test_task_runner_->GetPendingTaskCount()); 677 EXPECT_EQ(1u, net_test_task_runner_->GetPendingTaskCount());
674 678
675 // Move forward the task runner short by 20ms. 679 // Move forward the task runner short by 20ms.
676 net_test_task_runner_->FastForwardBy( 680 net_test_task_runner_->FastForwardBy(
677 HttpServerPropertiesManager::GetUpdatePrefsDelayForTesting() - 681 HttpServerPropertiesManager::GetUpdatePrefsDelayForTesting() -
678 base::TimeDelta::FromMilliseconds(20)); 682 base::TimeDelta::FromMilliseconds(20));
679 683
680 // Set another spdy server to trigger another call to 684 // Set another spdy server to trigger another call to
681 // ScheduleUpdatePrefsOnNetworkThread. There should be no new update posted to 685 // ScheduleUpdatePrefsOnNetworkSequence. There should be no new update posted
682 // the network thread. 686 // to the network thread.
683 url::SchemeHostPort spdy_server2("https", "drive.google.com", 443); 687 url::SchemeHostPort spdy_server2("https", "drive.google.com", 443);
684 http_server_props_manager_->SetSupportsSpdy(spdy_server2, true); 688 http_server_props_manager_->SetSupportsSpdy(spdy_server2, true);
685 EXPECT_EQ(1u, net_test_task_runner_->GetPendingTaskCount()); 689 EXPECT_EQ(1u, net_test_task_runner_->GetPendingTaskCount());
686 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 690 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
687 691
688 // Move forward the extra 20ms. The pref update should be executed. 692 // Move forward the extra 20ms. The pref update should be executed.
689 net_test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(20)); 693 net_test_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(20));
690 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 694 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
691 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 695 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
692 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 696 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
693 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 697 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
694 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 698 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
695 699
696 EXPECT_TRUE(http_server_props_manager_->SupportsRequestPriority(spdy_server)); 700 EXPECT_TRUE(http_server_props_manager_->SupportsRequestPriority(spdy_server));
697 EXPECT_TRUE( 701 EXPECT_TRUE(
698 http_server_props_manager_->SupportsRequestPriority(spdy_server2)); 702 http_server_props_manager_->SupportsRequestPriority(spdy_server2));
699 // Set the third spdy server to trigger one more call to 703 // Set the third spdy server to trigger one more call to
700 // ScheduleUpdatePrefsOnNetworkThread. A new update task should be posted to 704 // ScheduleUpdatePrefsOnNetworkSequence. A new update task should be posted to
701 // network thread now since the previous one is completed. 705 // network thread now since the previous one is completed.
702 url::SchemeHostPort spdy_server3("https", "maps.google.com", 443); 706 url::SchemeHostPort spdy_server3("https", "maps.google.com", 443);
703 http_server_props_manager_->SetSupportsSpdy(spdy_server3, true); 707 http_server_props_manager_->SetSupportsSpdy(spdy_server3, true);
704 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 708 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
705 EXPECT_EQ(1u, net_test_task_runner_->GetPendingTaskCount()); 709 EXPECT_EQ(1u, net_test_task_runner_->GetPendingTaskCount());
706 710
707 // Run the task. 711 // Run the task.
708 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 712 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
709 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 713 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
710 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 714 net_test_task_runner_->FastForwardUntilNoTasksRemain();
711 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 715 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
712 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 716 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
713 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 717 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
714 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 718 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
715 719
716 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 720 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
717 } 721 }
718 722
719 TEST_P(HttpServerPropertiesManagerTest, GetAlternativeServiceInfos) { 723 TEST_P(HttpServerPropertiesManagerTest, GetAlternativeServiceInfos) {
720 ExpectPrefsUpdate(1); 724 ExpectPrefsUpdate(1);
721 ExpectScheduleUpdatePrefsOnNetworkThread(); 725 ExpectScheduleUpdatePrefsOnNetworkSequence();
722 726
723 url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80); 727 url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80);
724 EXPECT_FALSE(HasAlternativeService(spdy_server_mail)); 728 EXPECT_FALSE(HasAlternativeService(spdy_server_mail));
725 const AlternativeService alternative_service(kProtoHTTP2, "mail.google.com", 729 const AlternativeService alternative_service(kProtoHTTP2, "mail.google.com",
726 443); 730 443);
727 http_server_props_manager_->SetAlternativeService( 731 http_server_props_manager_->SetAlternativeService(
728 spdy_server_mail, alternative_service, one_day_from_now_); 732 spdy_server_mail, alternative_service, one_day_from_now_);
729 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 733 // ExpectScheduleUpdatePrefsOnNetworkSequence() should be called only once.
730 http_server_props_manager_->SetAlternativeService( 734 http_server_props_manager_->SetAlternativeService(
731 spdy_server_mail, alternative_service, one_day_from_now_); 735 spdy_server_mail, alternative_service, one_day_from_now_);
732 736
733 // Run the task. 737 // Run the task.
734 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 738 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
735 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 739 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
736 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 740 net_test_task_runner_->FastForwardUntilNoTasksRemain();
737 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 741 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
738 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 742 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
739 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 743 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
740 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 744 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
741 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 745 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
742 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 746 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
743 747
744 AlternativeServiceInfoVector alternative_service_info_vector = 748 AlternativeServiceInfoVector alternative_service_info_vector =
745 http_server_props_manager_->GetAlternativeServiceInfos(spdy_server_mail); 749 http_server_props_manager_->GetAlternativeServiceInfos(spdy_server_mail);
746 ASSERT_EQ(1u, alternative_service_info_vector.size()); 750 ASSERT_EQ(1u, alternative_service_info_vector.size());
747 EXPECT_EQ(alternative_service, 751 EXPECT_EQ(alternative_service,
748 alternative_service_info_vector[0].alternative_service); 752 alternative_service_info_vector[0].alternative_service);
749 } 753 }
750 754
751 TEST_P(HttpServerPropertiesManagerTest, SetAlternativeServices) { 755 TEST_P(HttpServerPropertiesManagerTest, SetAlternativeServices) {
752 ExpectPrefsUpdate(1); 756 ExpectPrefsUpdate(1);
753 ExpectScheduleUpdatePrefsOnNetworkThread(); 757 ExpectScheduleUpdatePrefsOnNetworkSequence();
754 758
755 url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80); 759 url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80);
756 EXPECT_FALSE(HasAlternativeService(spdy_server_mail)); 760 EXPECT_FALSE(HasAlternativeService(spdy_server_mail));
757 AlternativeServiceInfoVector alternative_service_info_vector; 761 AlternativeServiceInfoVector alternative_service_info_vector;
758 const AlternativeService alternative_service1(kProtoHTTP2, "mail.google.com", 762 const AlternativeService alternative_service1(kProtoHTTP2, "mail.google.com",
759 443); 763 443);
760 alternative_service_info_vector.push_back( 764 alternative_service_info_vector.push_back(
761 AlternativeServiceInfo(alternative_service1, one_day_from_now_)); 765 AlternativeServiceInfo(alternative_service1, one_day_from_now_));
762 const AlternativeService alternative_service2(kProtoQUIC, "mail.google.com", 766 const AlternativeService alternative_service2(kProtoQUIC, "mail.google.com",
763 1234); 767 1234);
764 alternative_service_info_vector.push_back( 768 alternative_service_info_vector.push_back(
765 AlternativeServiceInfo(alternative_service2, one_day_from_now_)); 769 AlternativeServiceInfo(alternative_service2, one_day_from_now_));
766 http_server_props_manager_->SetAlternativeServices( 770 http_server_props_manager_->SetAlternativeServices(
767 spdy_server_mail, alternative_service_info_vector); 771 spdy_server_mail, alternative_service_info_vector);
768 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 772 // ExpectScheduleUpdatePrefsOnNetworkSequence() should be called only once.
769 http_server_props_manager_->SetAlternativeServices( 773 http_server_props_manager_->SetAlternativeServices(
770 spdy_server_mail, alternative_service_info_vector); 774 spdy_server_mail, alternative_service_info_vector);
771 775
772 // Run the task. 776 // Run the task.
773 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 777 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
774 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 778 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
775 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 779 net_test_task_runner_->FastForwardUntilNoTasksRemain();
776 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 780 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
777 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 781 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
778 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 782 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
(...skipping 11 matching lines...) Expand all
790 } 794 }
791 795
792 TEST_P(HttpServerPropertiesManagerTest, SetAlternativeServicesEmpty) { 796 TEST_P(HttpServerPropertiesManagerTest, SetAlternativeServicesEmpty) {
793 url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80); 797 url::SchemeHostPort spdy_server_mail("http", "mail.google.com", 80);
794 EXPECT_FALSE(HasAlternativeService(spdy_server_mail)); 798 EXPECT_FALSE(HasAlternativeService(spdy_server_mail));
795 const AlternativeService alternative_service(kProtoHTTP2, "mail.google.com", 799 const AlternativeService alternative_service(kProtoHTTP2, "mail.google.com",
796 443); 800 443);
797 http_server_props_manager_->SetAlternativeServices( 801 http_server_props_manager_->SetAlternativeServices(
798 spdy_server_mail, AlternativeServiceInfoVector()); 802 spdy_server_mail, AlternativeServiceInfoVector());
799 803
800 // ExpectScheduleUpdatePrefsOnNetworkThread() should not be called. 804 // ExpectScheduleUpdatePrefsOnNetworkSequence() should not be called.
801 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 805 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
802 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 806 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
803 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 807 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
804 808
805 EXPECT_FALSE(HasAlternativeService(spdy_server_mail)); 809 EXPECT_FALSE(HasAlternativeService(spdy_server_mail));
806 } 810 }
807 811
808 TEST_P(HttpServerPropertiesManagerTest, ConfirmAlternativeService) { 812 TEST_P(HttpServerPropertiesManagerTest, ConfirmAlternativeService) {
809 ExpectPrefsUpdate(1); 813 ExpectPrefsUpdate(1);
810 814
811 url::SchemeHostPort spdy_server_mail; 815 url::SchemeHostPort spdy_server_mail;
812 AlternativeService alternative_service; 816 AlternativeService alternative_service;
813 817
814 { 818 {
815 TestMockTimeTaskRunner::ScopedContext scoped_context(net_test_task_runner_); 819 TestMockTimeTaskRunner::ScopedContext scoped_context(net_test_task_runner_);
816 820
817 spdy_server_mail = url::SchemeHostPort("http", "mail.google.com", 80); 821 spdy_server_mail = url::SchemeHostPort("http", "mail.google.com", 80);
818 EXPECT_FALSE(HasAlternativeService(spdy_server_mail)); 822 EXPECT_FALSE(HasAlternativeService(spdy_server_mail));
819 alternative_service = 823 alternative_service =
820 AlternativeService(kProtoHTTP2, "mail.google.com", 443); 824 AlternativeService(kProtoHTTP2, "mail.google.com", 443);
821 825
822 ExpectScheduleUpdatePrefsOnNetworkThread(); 826 ExpectScheduleUpdatePrefsOnNetworkSequence();
823 http_server_props_manager_->SetAlternativeService( 827 http_server_props_manager_->SetAlternativeService(
824 spdy_server_mail, alternative_service, one_day_from_now_); 828 spdy_server_mail, alternative_service, one_day_from_now_);
825 829
826 EXPECT_FALSE(http_server_props_manager_->IsAlternativeServiceBroken( 830 EXPECT_FALSE(http_server_props_manager_->IsAlternativeServiceBroken(
827 alternative_service)); 831 alternative_service));
828 EXPECT_FALSE( 832 EXPECT_FALSE(
829 http_server_props_manager_->WasAlternativeServiceRecentlyBroken( 833 http_server_props_manager_->WasAlternativeServiceRecentlyBroken(
830 alternative_service)); 834 alternative_service));
831 835
832 ExpectScheduleUpdatePrefsOnNetworkThread(); 836 ExpectScheduleUpdatePrefsOnNetworkSequence();
833 http_server_props_manager_->MarkAlternativeServiceBroken( 837 http_server_props_manager_->MarkAlternativeServiceBroken(
834 alternative_service); 838 alternative_service);
835 EXPECT_TRUE(http_server_props_manager_->IsAlternativeServiceBroken( 839 EXPECT_TRUE(http_server_props_manager_->IsAlternativeServiceBroken(
836 alternative_service)); 840 alternative_service));
837 EXPECT_TRUE(http_server_props_manager_->WasAlternativeServiceRecentlyBroken( 841 EXPECT_TRUE(http_server_props_manager_->WasAlternativeServiceRecentlyBroken(
838 alternative_service)); 842 alternative_service));
839 843
840 ExpectScheduleUpdatePrefsOnNetworkThread(); 844 ExpectScheduleUpdatePrefsOnNetworkSequence();
841 http_server_props_manager_->ConfirmAlternativeService(alternative_service); 845 http_server_props_manager_->ConfirmAlternativeService(alternative_service);
842 EXPECT_FALSE(http_server_props_manager_->IsAlternativeServiceBroken( 846 EXPECT_FALSE(http_server_props_manager_->IsAlternativeServiceBroken(
843 alternative_service)); 847 alternative_service));
844 EXPECT_FALSE( 848 EXPECT_FALSE(
845 http_server_props_manager_->WasAlternativeServiceRecentlyBroken( 849 http_server_props_manager_->WasAlternativeServiceRecentlyBroken(
846 alternative_service)); 850 alternative_service));
847 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 851 // ExpectScheduleUpdatePrefsOnNetworkSequence() should be called only once.
848 http_server_props_manager_->ConfirmAlternativeService(alternative_service); 852 http_server_props_manager_->ConfirmAlternativeService(alternative_service);
849 EXPECT_FALSE(http_server_props_manager_->IsAlternativeServiceBroken( 853 EXPECT_FALSE(http_server_props_manager_->IsAlternativeServiceBroken(
850 alternative_service)); 854 alternative_service));
851 EXPECT_FALSE( 855 EXPECT_FALSE(
852 http_server_props_manager_->WasAlternativeServiceRecentlyBroken( 856 http_server_props_manager_->WasAlternativeServiceRecentlyBroken(
853 alternative_service)); 857 alternative_service));
854 } 858 }
855 859
856 // Run the task. 860 // Run the task.
857 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 861 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
(...skipping 11 matching lines...) Expand all
869 EXPECT_FALSE(http_server_props_manager_->IsAlternativeServiceBroken( 873 EXPECT_FALSE(http_server_props_manager_->IsAlternativeServiceBroken(
870 alternative_service)); 874 alternative_service));
871 EXPECT_FALSE( 875 EXPECT_FALSE(
872 http_server_props_manager_->WasAlternativeServiceRecentlyBroken( 876 http_server_props_manager_->WasAlternativeServiceRecentlyBroken(
873 alternative_service)); 877 alternative_service));
874 } 878 }
875 } 879 }
876 880
877 TEST_P(HttpServerPropertiesManagerTest, SupportsQuic) { 881 TEST_P(HttpServerPropertiesManagerTest, SupportsQuic) {
878 ExpectPrefsUpdate(1); 882 ExpectPrefsUpdate(1);
879 ExpectScheduleUpdatePrefsOnNetworkThread(); 883 ExpectScheduleUpdatePrefsOnNetworkSequence();
880 884
881 IPAddress address; 885 IPAddress address;
882 EXPECT_FALSE(http_server_props_manager_->GetSupportsQuic(&address)); 886 EXPECT_FALSE(http_server_props_manager_->GetSupportsQuic(&address));
883 887
884 IPAddress actual_address(127, 0, 0, 1); 888 IPAddress actual_address(127, 0, 0, 1);
885 http_server_props_manager_->SetSupportsQuic(true, actual_address); 889 http_server_props_manager_->SetSupportsQuic(true, actual_address);
886 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 890 // ExpectScheduleUpdatePrefsOnNetworkSequence() should be called only once.
887 http_server_props_manager_->SetSupportsQuic(true, actual_address); 891 http_server_props_manager_->SetSupportsQuic(true, actual_address);
888 892
889 // Run the task. 893 // Run the task.
890 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 894 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
891 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 895 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
892 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 896 net_test_task_runner_->FastForwardUntilNoTasksRemain();
893 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 897 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
894 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 898 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
895 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 899 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
896 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 900 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
897 901
898 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 902 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
899 903
900 EXPECT_TRUE(http_server_props_manager_->GetSupportsQuic(&address)); 904 EXPECT_TRUE(http_server_props_manager_->GetSupportsQuic(&address));
901 EXPECT_EQ(actual_address, address); 905 EXPECT_EQ(actual_address, address);
902 } 906 }
903 907
904 TEST_P(HttpServerPropertiesManagerTest, ServerNetworkStats) { 908 TEST_P(HttpServerPropertiesManagerTest, ServerNetworkStats) {
905 ExpectPrefsUpdate(1); 909 ExpectPrefsUpdate(1);
906 ExpectScheduleUpdatePrefsOnNetworkThread(); 910 ExpectScheduleUpdatePrefsOnNetworkSequence();
907 911
908 url::SchemeHostPort mail_server("http", "mail.google.com", 80); 912 url::SchemeHostPort mail_server("http", "mail.google.com", 80);
909 const ServerNetworkStats* stats = 913 const ServerNetworkStats* stats =
910 http_server_props_manager_->GetServerNetworkStats(mail_server); 914 http_server_props_manager_->GetServerNetworkStats(mail_server);
911 EXPECT_EQ(nullptr, stats); 915 EXPECT_EQ(nullptr, stats);
912 ServerNetworkStats stats1; 916 ServerNetworkStats stats1;
913 stats1.srtt = base::TimeDelta::FromMicroseconds(10); 917 stats1.srtt = base::TimeDelta::FromMicroseconds(10);
914 http_server_props_manager_->SetServerNetworkStats(mail_server, stats1); 918 http_server_props_manager_->SetServerNetworkStats(mail_server, stats1);
915 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 919 // ExpectScheduleUpdatePrefsOnNetworkSequence() should be called only once.
916 http_server_props_manager_->SetServerNetworkStats(mail_server, stats1); 920 http_server_props_manager_->SetServerNetworkStats(mail_server, stats1);
917 921
918 // Run the task. 922 // Run the task.
919 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 923 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
920 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 924 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
921 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 925 net_test_task_runner_->FastForwardUntilNoTasksRemain();
922 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 926 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
923 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 927 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
924 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 928 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
925 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 929 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
926 930
927 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 931 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
928 932
929 const ServerNetworkStats* stats2 = 933 const ServerNetworkStats* stats2 =
930 http_server_props_manager_->GetServerNetworkStats(mail_server); 934 http_server_props_manager_->GetServerNetworkStats(mail_server);
931 EXPECT_EQ(10, stats2->srtt.ToInternalValue()); 935 EXPECT_EQ(10, stats2->srtt.ToInternalValue());
932 936
933 ExpectPrefsUpdate(1); 937 ExpectPrefsUpdate(1);
934 ExpectScheduleUpdatePrefsOnNetworkThread(); 938 ExpectScheduleUpdatePrefsOnNetworkSequence();
935 939
936 http_server_props_manager_->ClearServerNetworkStats(mail_server); 940 http_server_props_manager_->ClearServerNetworkStats(mail_server);
937 941
938 // Run the task. 942 // Run the task.
939 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 943 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
940 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 944 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
941 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 945 net_test_task_runner_->FastForwardUntilNoTasksRemain();
942 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 946 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
943 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 947 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
944 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 948 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
945 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 949 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
946 950
947 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 951 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
948 EXPECT_EQ(nullptr, 952 EXPECT_EQ(nullptr,
949 http_server_props_manager_->GetServerNetworkStats(mail_server)); 953 http_server_props_manager_->GetServerNetworkStats(mail_server));
950 } 954 }
951 955
952 TEST_P(HttpServerPropertiesManagerTest, QuicServerInfo) { 956 TEST_P(HttpServerPropertiesManagerTest, QuicServerInfo) {
953 ExpectPrefsUpdate(1); 957 ExpectPrefsUpdate(1);
954 ExpectScheduleUpdatePrefsOnNetworkThread(); 958 ExpectScheduleUpdatePrefsOnNetworkSequence();
955 959
956 QuicServerId mail_quic_server_id("mail.google.com", 80); 960 QuicServerId mail_quic_server_id("mail.google.com", 80);
957 EXPECT_EQ(nullptr, 961 EXPECT_EQ(nullptr,
958 http_server_props_manager_->GetQuicServerInfo(mail_quic_server_id)); 962 http_server_props_manager_->GetQuicServerInfo(mail_quic_server_id));
959 std::string quic_server_info1("quic_server_info1"); 963 std::string quic_server_info1("quic_server_info1");
960 http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id, 964 http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id,
961 quic_server_info1); 965 quic_server_info1);
962 // ExpectScheduleUpdatePrefsOnNetworkThread() should be called only once. 966 // ExpectScheduleUpdatePrefsOnNetworkSequence() should be called only once.
963 http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id, 967 http_server_props_manager_->SetQuicServerInfo(mail_quic_server_id,
964 quic_server_info1); 968 quic_server_info1);
965 969
966 // Run the task. 970 // Run the task.
967 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 971 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
968 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 972 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
969 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 973 net_test_task_runner_->FastForwardUntilNoTasksRemain();
970 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 974 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
971 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 975 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
972 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 976 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
973 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 977 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
974 978
975 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 979 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
976 980
977 EXPECT_EQ(quic_server_info1, *http_server_props_manager_->GetQuicServerInfo( 981 EXPECT_EQ(quic_server_info1, *http_server_props_manager_->GetQuicServerInfo(
978 mail_quic_server_id)); 982 mail_quic_server_id));
979 } 983 }
980 984
981 TEST_P(HttpServerPropertiesManagerTest, Clear) { 985 TEST_P(HttpServerPropertiesManagerTest, Clear) {
982 ExpectPrefsUpdate(1); 986 ExpectPrefsUpdate(1);
983 ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(5); 987 ExpectScheduleUpdatePrefsOnNetworkSequenceRepeatedly(5);
984 988
985 const url::SchemeHostPort spdy_server("https", "mail.google.com", 443); 989 const url::SchemeHostPort spdy_server("https", "mail.google.com", 443);
986 const IPAddress actual_address(127, 0, 0, 1); 990 const IPAddress actual_address(127, 0, 0, 1);
987 const QuicServerId mail_quic_server_id("mail.google.com", 80); 991 const QuicServerId mail_quic_server_id("mail.google.com", 80);
988 const std::string quic_server_info1("quic_server_info1"); 992 const std::string quic_server_info1("quic_server_info1");
989 993
990 { 994 {
991 TestMockTimeTaskRunner::ScopedContext scoped_context(net_test_task_runner_); 995 TestMockTimeTaskRunner::ScopedContext scoped_context(net_test_task_runner_);
992 996
993 http_server_props_manager_->SetSupportsSpdy(spdy_server, true); 997 http_server_props_manager_->SetSupportsSpdy(spdy_server, true);
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
1146 EXPECT_EQ(i, alternative_service_info_vector[0].alternative_service.port); 1150 EXPECT_EQ(i, alternative_service_info_vector[0].alternative_service.port);
1147 } 1151 }
1148 1152
1149 // Verify SupportsQuic. 1153 // Verify SupportsQuic.
1150 IPAddress address; 1154 IPAddress address;
1151 ASSERT_TRUE(http_server_props_manager_->GetSupportsQuic(&address)); 1155 ASSERT_TRUE(http_server_props_manager_->GetSupportsQuic(&address));
1152 EXPECT_EQ("127.0.0.1", address.ToString()); 1156 EXPECT_EQ("127.0.0.1", address.ToString());
1153 } 1157 }
1154 1158
1155 TEST_P(HttpServerPropertiesManagerTest, UpdatePrefsWithCache) { 1159 TEST_P(HttpServerPropertiesManagerTest, UpdatePrefsWithCache) {
1156 ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(5); 1160 ExpectScheduleUpdatePrefsOnNetworkSequenceRepeatedly(5);
1157 1161
1158 const url::SchemeHostPort server_www("https", "www.google.com", 80); 1162 const url::SchemeHostPort server_www("https", "www.google.com", 80);
1159 const url::SchemeHostPort server_mail("https", "mail.google.com", 80); 1163 const url::SchemeHostPort server_mail("https", "mail.google.com", 80);
1160 1164
1161 // #1 & #2: Set alternate protocol. 1165 // #1 & #2: Set alternate protocol.
1162 AlternativeServiceInfoVector alternative_service_info_vector; 1166 AlternativeServiceInfoVector alternative_service_info_vector;
1163 AlternativeService www_alternative_service1(kProtoHTTP2, "", 443); 1167 AlternativeService www_alternative_service1(kProtoHTTP2, "", 443);
1164 base::Time expiration1; 1168 base::Time expiration1;
1165 ASSERT_TRUE(base::Time::FromUTCString("2036-12-01 10:00:00", &expiration1)); 1169 ASSERT_TRUE(base::Time::FromUTCString("2036-12-01 10:00:00", &expiration1));
1166 alternative_service_info_vector.push_back( 1170 alternative_service_info_vector.push_back(
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
1331 EXPECT_FALSE(http_server_props_manager_->AddToAlternativeServiceMap( 1335 EXPECT_FALSE(http_server_props_manager_->AddToAlternativeServiceMap(
1332 server, *server_dict, &alternative_service_map)); 1336 server, *server_dict, &alternative_service_map));
1333 1337
1334 AlternativeServiceMap::iterator it = alternative_service_map.Get(server); 1338 AlternativeServiceMap::iterator it = alternative_service_map.Get(server);
1335 EXPECT_EQ(alternative_service_map.end(), it); 1339 EXPECT_EQ(alternative_service_map.end(), it);
1336 } 1340 }
1337 1341
1338 // Do not persist expired or broken alternative service entries to disk. 1342 // Do not persist expired or broken alternative service entries to disk.
1339 TEST_P(HttpServerPropertiesManagerTest, 1343 TEST_P(HttpServerPropertiesManagerTest,
1340 DoNotPersistExpiredOrBrokenAlternativeService) { 1344 DoNotPersistExpiredOrBrokenAlternativeService) {
1341 ExpectScheduleUpdatePrefsOnNetworkThreadRepeatedly(2); 1345 ExpectScheduleUpdatePrefsOnNetworkSequenceRepeatedly(2);
1342 1346
1343 { 1347 {
1344 TestMockTimeTaskRunner::ScopedContext scoped_context(net_test_task_runner_); 1348 TestMockTimeTaskRunner::ScopedContext scoped_context(net_test_task_runner_);
1345 1349
1346 AlternativeServiceInfoVector alternative_service_info_vector; 1350 AlternativeServiceInfoVector alternative_service_info_vector;
1347 1351
1348 const AlternativeService broken_alternative_service( 1352 const AlternativeService broken_alternative_service(
1349 kProtoHTTP2, "broken.example.com", 443); 1353 kProtoHTTP2, "broken.example.com", 443);
1350 const base::Time time_one_day_later = 1354 const base::Time time_one_day_later =
1351 base::Time::Now() + base::TimeDelta::FromDays(1); 1355 base::Time::Now() + base::TimeDelta::FromDays(1);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
1459 EXPECT_EQ("valid.example.com", 1463 EXPECT_EQ("valid.example.com",
1460 alternative_service_info_vector[0].alternative_service.host); 1464 alternative_service_info_vector[0].alternative_service.host);
1461 EXPECT_EQ(443, alternative_service_info_vector[0].alternative_service.port); 1465 EXPECT_EQ(443, alternative_service_info_vector[0].alternative_service.port);
1462 EXPECT_EQ(one_day_from_now_, alternative_service_info_vector[0].expiration); 1466 EXPECT_EQ(one_day_from_now_, alternative_service_info_vector[0].expiration);
1463 } 1467 }
1464 1468
1465 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache0) { 1469 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache0) {
1466 // Post an update task to the UI thread. 1470 // Post an update task to the UI thread.
1467 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread(); 1471 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread();
1468 // Shutdown comes before the task is executed. 1472 // Shutdown comes before the task is executed.
1469 http_server_props_manager_->ShutdownOnPrefThread(); 1473 http_server_props_manager_->ShutdownOnPrefSequence();
1470 http_server_props_manager_.reset(); 1474 http_server_props_manager_.reset();
1471 // Run the task after shutdown and deletion. 1475 // Run the task after shutdown and deletion.
1472 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1476 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1473 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 1477 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
1474 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 1478 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1475 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1479 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1476 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1480 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1477 } 1481 }
1478 1482
1479 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache1) { 1483 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache1) {
1480 // Post an update task. 1484 // Post an update task.
1481 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread(); 1485 http_server_props_manager_->ScheduleUpdateCacheOnPrefThread();
1482 // Shutdown comes before the task is executed. 1486 // Shutdown comes before the task is executed.
1483 http_server_props_manager_->ShutdownOnPrefThread(); 1487 http_server_props_manager_->ShutdownOnPrefSequence();
1484 // Run the task after shutdown, but before deletion. 1488 // Run the task after shutdown, but before deletion.
1485 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1489 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1486 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 1490 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
1487 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 1491 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1488 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1492 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1489 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1493 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1490 1494
1491 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 1495 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
1492 http_server_props_manager_.reset(); 1496 http_server_props_manager_.reset();
1493 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1497 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1494 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1498 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1495 } 1499 }
1496 1500
1497 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache2) { 1501 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdateCache2) {
1498 http_server_props_manager_->UpdateCacheFromPrefsOnUIConcrete(); 1502 http_server_props_manager_->UpdateCacheFromPrefsOnUIConcrete();
1499 // Shutdown comes before the task is executed. 1503 // Shutdown comes before the task is executed.
1500 http_server_props_manager_->ShutdownOnPrefThread(); 1504 http_server_props_manager_->ShutdownOnPrefSequence();
1501 // There should be no tasks to run. 1505 // There should be no tasks to run.
1502 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1506 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1503 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1507 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1504 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 1508 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
1505 http_server_props_manager_.reset(); 1509 http_server_props_manager_.reset();
1506 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1510 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1507 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1511 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1508 } 1512 }
1509 1513
1510 // 1514 //
1511 // Tests for shutdown when updating prefs. 1515 // Tests for shutdown when updating prefs.
1512 // 1516 //
1513 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs0) { 1517 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs0) {
1514 // Post an update task to the IO thread. 1518 // Post an update task to the IO thread.
1515 http_server_props_manager_->ScheduleUpdatePrefsOnNetworkThreadDefault(); 1519 http_server_props_manager_->ScheduleUpdatePrefsOnNetworkSequenceDefault();
1516 // Shutdown comes before the task is executed. 1520 // Shutdown comes before the task is executed.
1517 http_server_props_manager_->ShutdownOnPrefThread(); 1521 http_server_props_manager_->ShutdownOnPrefSequence();
1518 http_server_props_manager_.reset(); 1522 http_server_props_manager_.reset();
1519 // Run the task after shutdown and deletion. 1523 // Run the task after shutdown and deletion.
1520 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 1524 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
1521 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1525 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1522 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 1526 net_test_task_runner_->FastForwardUntilNoTasksRemain();
1523 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1527 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1524 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1528 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1525 } 1529 }
1526 1530
1527 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs1) { 1531 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs1) {
1528 ExpectPrefsUpdate(1); 1532 ExpectPrefsUpdate(1);
1529 // Post an update task. 1533 // Post an update task.
1530 http_server_props_manager_->ScheduleUpdatePrefsOnNetworkThreadDefault(); 1534 http_server_props_manager_->ScheduleUpdatePrefsOnNetworkSequenceDefault();
1531 // Shutdown comes before the task is executed. 1535 // Shutdown comes before the task is executed.
1532 http_server_props_manager_->ShutdownOnPrefThread(); 1536 http_server_props_manager_->ShutdownOnPrefSequence();
1533 // Run the task after shutdown, but before deletion. 1537 // Run the task after shutdown, but before deletion.
1534 EXPECT_TRUE(net_test_task_runner_->HasPendingTask()); 1538 EXPECT_TRUE(net_test_task_runner_->HasPendingTask());
1535 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1539 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1536 net_test_task_runner_->FastForwardUntilNoTasksRemain(); 1540 net_test_task_runner_->FastForwardUntilNoTasksRemain();
1537 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 1541 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
1538 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 1542 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1539 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1543 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1540 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1544 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1541 1545
1542 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 1546 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
1543 http_server_props_manager_.reset(); 1547 http_server_props_manager_.reset();
1544 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1548 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1545 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1549 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1546 } 1550 }
1547 1551
1548 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs2) { 1552 TEST_P(HttpServerPropertiesManagerTest, ShutdownWithPendingUpdatePrefs2) {
1549 // This posts a task to the UI thread. 1553 // This posts a task to the UI thread.
1550 http_server_props_manager_->UpdatePrefsFromCacheOnNetworkThreadConcrete( 1554 http_server_props_manager_->UpdatePrefsFromCacheOnNetworkSequenceConcrete(
1551 base::Closure()); 1555 base::Closure());
1552 // Shutdown comes before the task is executed. 1556 // Shutdown comes before the task is executed.
1553 http_server_props_manager_->ShutdownOnPrefThread(); 1557 http_server_props_manager_->ShutdownOnPrefSequence();
1554 // Run the task after shutdown, but before deletion. 1558 // Run the task after shutdown, but before deletion.
1555 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1559 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1556 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask()); 1560 EXPECT_TRUE(pref_test_task_runner_->HasPendingTask());
1557 pref_test_task_runner_->FastForwardUntilNoTasksRemain(); 1561 pref_test_task_runner_->FastForwardUntilNoTasksRemain();
1558 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1562 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1559 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1563 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1560 Mock::VerifyAndClearExpectations(http_server_props_manager_.get()); 1564 Mock::VerifyAndClearExpectations(http_server_props_manager_.get());
1561 http_server_props_manager_.reset(); 1565 http_server_props_manager_.reset();
1562 EXPECT_FALSE(net_test_task_runner_->HasPendingTask()); 1566 EXPECT_FALSE(net_test_task_runner_->HasPendingTask());
1563 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask()); 1567 EXPECT_FALSE(pref_test_task_runner_->HasPendingTask());
1564 } 1568 }
1565 1569
1566 } // namespace net 1570 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_server_properties_manager.cc ('k') | net/http/transport_security_persister.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698