Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 209 PrerenderContents* prerender_contents) { | 209 PrerenderContents* prerender_contents) { |
| 210 prerender_contents_map_[std::make_pair(child_id, route_id)] = | 210 prerender_contents_map_[std::make_pair(child_id, route_id)] = |
| 211 prerender_contents; | 211 prerender_contents; |
| 212 } | 212 } |
| 213 | 213 |
| 214 void DummyPrerenderContentsDestroyed(int child_id, | 214 void DummyPrerenderContentsDestroyed(int child_id, |
| 215 int route_id) { | 215 int route_id) { |
| 216 prerender_contents_map_.erase(std::make_pair(child_id, route_id)); | 216 prerender_contents_map_.erase(std::make_pair(child_id, route_id)); |
| 217 } | 217 } |
| 218 | 218 |
| 219 void SetIsLowEndDevice(bool is_low_end_device) { | |
| 220 is_low_end_device_ = is_low_end_device; | |
| 221 } | |
| 222 | |
| 223 protected: | |
| 224 bool IsLowEndDevice() override { return is_low_end_device_; } | |
|
mmenke
2016/08/03 15:10:58
Doesn't really matter, but this can be private
pasko
2016/08/03 15:30:18
Done.
| |
| 225 | |
| 219 private: | 226 private: |
| 220 DummyPrerenderContents* SetNextPrerenderContents( | 227 DummyPrerenderContents* SetNextPrerenderContents( |
| 221 std::unique_ptr<DummyPrerenderContents> prerender_contents) { | 228 std::unique_ptr<DummyPrerenderContents> prerender_contents) { |
| 222 CHECK(!next_prerender_contents_); | 229 CHECK(!next_prerender_contents_); |
| 223 DummyPrerenderContents* contents_ptr = prerender_contents.get(); | 230 DummyPrerenderContents* contents_ptr = prerender_contents.get(); |
| 224 next_prerender_contents_ = std::move(prerender_contents); | 231 next_prerender_contents_ = std::move(prerender_contents); |
| 225 return contents_ptr; | 232 return contents_ptr; |
| 226 } | 233 } |
| 227 | 234 |
| 228 std::unique_ptr<PrerenderContents> CreatePrerenderContents( | 235 std::unique_ptr<PrerenderContents> CreatePrerenderContents( |
| 229 const GURL& url, | 236 const GURL& url, |
| 230 const Referrer& referrer, | 237 const Referrer& referrer, |
| 231 Origin origin) override { | 238 Origin origin) override { |
| 232 CHECK(next_prerender_contents_); | 239 CHECK(next_prerender_contents_); |
| 233 EXPECT_EQ(url, next_prerender_contents_->prerender_url()); | 240 EXPECT_EQ(url, next_prerender_contents_->prerender_url()); |
| 234 EXPECT_EQ(origin, next_prerender_contents_->origin()); | 241 EXPECT_EQ(origin, next_prerender_contents_->origin()); |
| 235 return std::move(next_prerender_contents_); | 242 return std::move(next_prerender_contents_); |
| 236 } | 243 } |
| 237 | 244 |
| 238 // Maintain a map from route pairs to PrerenderContents for | 245 // Maintain a map from route pairs to PrerenderContents for |
| 239 // GetPrerenderContentsForRoute. | 246 // GetPrerenderContentsForRoute. |
| 240 using PrerenderContentsMap = | 247 using PrerenderContentsMap = |
| 241 std::map<std::pair<int, int>, PrerenderContents*>; | 248 std::map<std::pair<int, int>, PrerenderContents*>; |
| 242 PrerenderContentsMap prerender_contents_map_; | 249 PrerenderContentsMap prerender_contents_map_; |
| 243 | 250 |
| 244 Time time_; | 251 Time time_; |
| 245 TimeTicks time_ticks_; | 252 TimeTicks time_ticks_; |
| 246 std::unique_ptr<PrerenderContents> next_prerender_contents_; | 253 std::unique_ptr<PrerenderContents> next_prerender_contents_; |
| 254 bool is_low_end_device_; | |
| 247 }; | 255 }; |
| 248 | 256 |
| 249 class RestorePrerenderMode { | 257 class RestorePrerenderMode { |
| 250 public: | 258 public: |
| 251 RestorePrerenderMode() : prev_mode_(PrerenderManager::GetMode()) { | 259 RestorePrerenderMode() : prev_mode_(PrerenderManager::GetMode()) { |
| 252 } | 260 } |
| 253 | 261 |
| 254 ~RestorePrerenderMode() { PrerenderManager::SetMode(prev_mode_); } | 262 ~RestorePrerenderMode() { PrerenderManager::SetMode(prev_mode_); } |
| 255 | 263 |
| 256 private: | 264 private: |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 315 switches::kPrerenderFromOmnibox, | 323 switches::kPrerenderFromOmnibox, |
| 316 switches::kPrerenderFromOmniboxSwitchValueEnabled); | 324 switches::kPrerenderFromOmniboxSwitchValueEnabled); |
| 317 } | 325 } |
| 318 | 326 |
| 319 ~PrerenderTest() override { | 327 ~PrerenderTest() override { |
| 320 prerender_link_manager_->OnChannelClosing(kDefaultChildId); | 328 prerender_link_manager_->OnChannelClosing(kDefaultChildId); |
| 321 prerender_link_manager_->Shutdown(); | 329 prerender_link_manager_->Shutdown(); |
| 322 prerender_manager_->Shutdown(); | 330 prerender_manager_->Shutdown(); |
| 323 } | 331 } |
| 324 | 332 |
| 333 void SetUp() override { prerender_manager()->SetIsLowEndDevice(false); } | |
|
mmenke
2016/08/03 15:10:58
Can just put this in the constructor. Each test i
pasko
2016/08/03 15:30:17
Ah, there is some stuff already in the constructor
mmenke
2016/08/03 15:36:43
We aren't doing any virtual calls to the test fixt
| |
| 334 | |
| 325 UnitTestPrerenderManager* prerender_manager() { | 335 UnitTestPrerenderManager* prerender_manager() { |
| 326 return prerender_manager_.get(); | 336 return prerender_manager_.get(); |
| 327 } | 337 } |
| 328 | 338 |
| 329 PrerenderLinkManager* prerender_link_manager() { | 339 PrerenderLinkManager* prerender_link_manager() { |
| 330 return prerender_link_manager_.get(); | 340 return prerender_link_manager_.get(); |
| 331 } | 341 } |
| 332 | 342 |
| 333 Profile* profile() { return &profile_; } | 343 Profile* profile() { return &profile_; } |
| 334 | 344 |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 430 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN); | 440 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN); |
| 431 std::unique_ptr<PrerenderHandle> prerender_handle( | 441 std::unique_ptr<PrerenderHandle> prerender_handle( |
| 432 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize)); | 442 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize)); |
| 433 EXPECT_TRUE(prerender_handle); | 443 EXPECT_TRUE(prerender_handle); |
| 434 EXPECT_TRUE(prerender_handle->IsPrerendering()); | 444 EXPECT_TRUE(prerender_handle->IsPrerendering()); |
| 435 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 445 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 436 EXPECT_EQ(prerender_contents, prerender_handle->contents()); | 446 EXPECT_EQ(prerender_contents, prerender_handle->contents()); |
| 437 EXPECT_EQ(ORIGIN_OFFLINE, prerender_handle->contents()->origin()); | 447 EXPECT_EQ(ORIGIN_OFFLINE, prerender_handle->contents()->origin()); |
| 438 } | 448 } |
| 439 | 449 |
| 450 TEST_F(PrerenderTest, PrerenderDisabledOnLowEndDevice) { | |
| 451 GURL url("http://www.google.com/"); | |
| 452 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); | |
| 453 prerender_manager()->SetIsLowEndDevice(true); | |
| 454 EXPECT_FALSE(AddSimplePrerender(url)); | |
| 455 } | |
| 456 | |
| 457 TEST_F(PrerenderTest, OfflinePrerenderPossibleOnLowEndDevice) { | |
| 458 GURL url("http://www.google.com/"); | |
| 459 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); | |
| 460 | |
| 461 prerender_manager()->SetIsLowEndDevice(true); | |
| 462 | |
| 463 DummyPrerenderContents* prerender_contents = | |
| 464 prerender_manager()->CreateNextPrerenderContents( | |
| 465 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN); | |
| 466 std::unique_ptr<PrerenderHandle> prerender_handle( | |
| 467 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize)); | |
| 468 EXPECT_TRUE(prerender_handle); | |
| 469 EXPECT_TRUE(prerender_handle->IsPrerendering()); | |
| 470 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | |
| 471 } | |
| 472 | |
| 440 TEST_F(PrerenderTest, FoundTest) { | 473 TEST_F(PrerenderTest, FoundTest) { |
| 441 GURL url("http://www.google.com/"); | 474 GURL url("http://www.google.com/"); |
| 442 DummyPrerenderContents* prerender_contents = | 475 DummyPrerenderContents* prerender_contents = |
| 443 prerender_manager()->CreateNextPrerenderContents( | 476 prerender_manager()->CreateNextPrerenderContents( |
| 444 url, | 477 url, |
| 445 FINAL_STATUS_USED); | 478 FINAL_STATUS_USED); |
| 446 EXPECT_TRUE(AddSimplePrerender(url)); | 479 EXPECT_TRUE(AddSimplePrerender(url)); |
| 447 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 480 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 448 std::unique_ptr<PrerenderContents> entry = | 481 std::unique_ptr<PrerenderContents> entry = |
| 449 prerender_manager()->FindAndUseEntry(url); | 482 prerender_manager()->FindAndUseEntry(url); |
| (...skipping 1178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1628 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 1661 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 1629 EXPECT_EQ(prerender_contents, prerender_handle->contents()); | 1662 EXPECT_EQ(prerender_contents, prerender_handle->contents()); |
| 1630 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin()); | 1663 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin()); |
| 1631 std::unique_ptr<PrerenderContents> entry = | 1664 std::unique_ptr<PrerenderContents> entry = |
| 1632 prerender_manager()->FindAndUseEntry(url); | 1665 prerender_manager()->FindAndUseEntry(url); |
| 1633 ASSERT_EQ(prerender_contents, entry.get()); | 1666 ASSERT_EQ(prerender_contents, entry.get()); |
| 1634 EXPECT_FALSE(prerender_handle->IsPrerendering()); | 1667 EXPECT_FALSE(prerender_handle->IsPrerendering()); |
| 1635 } | 1668 } |
| 1636 | 1669 |
| 1637 } // namespace prerender | 1670 } // namespace prerender |
| OLD | NEW |