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 <map> | 5 #include <map> |
6 #include <utility> | 6 #include <utility> |
7 | 7 |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/format_macros.h" | 9 #include "base/format_macros.h" |
10 #include "base/memory/scoped_vector.h" | 10 #include "base/memory/scoped_vector.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 PrerenderTracker* prerender_tracker, | 45 PrerenderTracker* prerender_tracker, |
46 const GURL& url, | 46 const GURL& url, |
47 Origin origin, | 47 Origin origin, |
48 FinalStatus expected_final_status); | 48 FinalStatus expected_final_status); |
49 | 49 |
50 virtual ~DummyPrerenderContents(); | 50 virtual ~DummyPrerenderContents(); |
51 | 51 |
52 virtual void StartPrerendering( | 52 virtual void StartPrerendering( |
53 int ALLOW_UNUSED creator_child_id, | 53 int ALLOW_UNUSED creator_child_id, |
54 const gfx::Size& ALLOW_UNUSED size, | 54 const gfx::Size& ALLOW_UNUSED size, |
55 content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace) | 55 content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace, |
| 56 net::URLRequestContextGetter* ALLOW_UNUSED request_context) |
56 OVERRIDE; | 57 OVERRIDE; |
57 | 58 |
58 virtual bool GetChildId(int* child_id) const OVERRIDE { | 59 virtual bool GetChildId(int* child_id) const OVERRIDE { |
59 // Having a default child_id of -1 forces pending prerenders not to fail | 60 // Having a default child_id of -1 forces pending prerenders not to fail |
60 // on session storage and cross domain checking. | 61 // on session storage and cross domain checking. |
61 *child_id = -1; | 62 *child_id = -1; |
62 return true; | 63 return true; |
63 } | 64 } |
64 | 65 |
65 virtual bool GetRouteId(int* route_id) const OVERRIDE { | 66 virtual bool GetRouteId(int* route_id) const OVERRIDE { |
(...skipping 28 matching lines...) Expand all Loading... |
94 using PrerenderManager::kMinTimeBetweenPrerendersMs; | 95 using PrerenderManager::kMinTimeBetweenPrerendersMs; |
95 using PrerenderManager::kNavigationRecordWindowMs; | 96 using PrerenderManager::kNavigationRecordWindowMs; |
96 | 97 |
97 explicit UnitTestPrerenderManager(Profile* profile, | 98 explicit UnitTestPrerenderManager(Profile* profile, |
98 PrerenderTracker* prerender_tracker) | 99 PrerenderTracker* prerender_tracker) |
99 : PrerenderManager(profile, prerender_tracker), | 100 : PrerenderManager(profile, prerender_tracker), |
100 time_(Time::Now()), | 101 time_(Time::Now()), |
101 time_ticks_(TimeTicks::Now()), | 102 time_ticks_(TimeTicks::Now()), |
102 prerender_tracker_(prerender_tracker) { | 103 prerender_tracker_(prerender_tracker) { |
103 set_rate_limit_enabled(false); | 104 set_rate_limit_enabled(false); |
| 105 OnCookieStoreLoaded(); |
104 } | 106 } |
105 | 107 |
106 virtual ~UnitTestPrerenderManager() { | 108 virtual ~UnitTestPrerenderManager() { |
107 } | 109 } |
108 | 110 |
109 // From KeyedService, via PrererenderManager: | 111 // From KeyedService, via PrererenderManager: |
110 virtual void Shutdown() OVERRIDE { | 112 virtual void Shutdown() OVERRIDE { |
111 if (next_prerender_contents()) | 113 if (next_prerender_contents()) |
112 next_prerender_contents_->Destroy(FINAL_STATUS_MANAGER_SHUTDOWN); | 114 next_prerender_contents_->Destroy(FINAL_STATUS_MANAGER_SHUTDOWN); |
113 PrerenderManager::Shutdown(); | 115 PrerenderManager::Shutdown(); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 PrerenderContents* prerender_contents) { | 224 PrerenderContents* prerender_contents) { |
223 prerender_contents_map_[std::make_pair(child_id, route_id)] = | 225 prerender_contents_map_[std::make_pair(child_id, route_id)] = |
224 prerender_contents; | 226 prerender_contents; |
225 } | 227 } |
226 | 228 |
227 void DummyPrerenderContentsDestroyed(int child_id, | 229 void DummyPrerenderContentsDestroyed(int child_id, |
228 int route_id) { | 230 int route_id) { |
229 prerender_contents_map_.erase(std::make_pair(child_id, route_id)); | 231 prerender_contents_map_.erase(std::make_pair(child_id, route_id)); |
230 } | 232 } |
231 | 233 |
| 234 protected: |
| 235 virtual net::URLRequestContextGetter* GetURLRequestContext() OVERRIDE { |
| 236 return NULL; |
| 237 } |
| 238 |
232 private: | 239 private: |
233 void SetNextPrerenderContents(DummyPrerenderContents* prerender_contents) { | 240 void SetNextPrerenderContents(DummyPrerenderContents* prerender_contents) { |
234 CHECK(!next_prerender_contents_.get()); | 241 CHECK(!next_prerender_contents_.get()); |
235 next_prerender_contents_.reset(prerender_contents); | 242 next_prerender_contents_.reset(prerender_contents); |
236 if (prerender_contents->expected_final_status() == FINAL_STATUS_USED) | 243 if (prerender_contents->expected_final_status() == FINAL_STATUS_USED) |
237 used_prerender_contents_.push_back(prerender_contents); | 244 used_prerender_contents_.push_back(prerender_contents); |
238 } | 245 } |
239 | 246 |
240 | 247 |
241 virtual PrerenderContents* CreatePrerenderContents( | 248 virtual PrerenderContents* CreatePrerenderContents( |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 } | 296 } |
290 | 297 |
291 DummyPrerenderContents::~DummyPrerenderContents() { | 298 DummyPrerenderContents::~DummyPrerenderContents() { |
292 EXPECT_EQ(expected_final_status_, final_status()); | 299 EXPECT_EQ(expected_final_status_, final_status()); |
293 test_prerender_manager_->DummyPrerenderContentsDestroyed(-1, route_id_); | 300 test_prerender_manager_->DummyPrerenderContentsDestroyed(-1, route_id_); |
294 } | 301 } |
295 | 302 |
296 void DummyPrerenderContents::StartPrerendering( | 303 void DummyPrerenderContents::StartPrerendering( |
297 int ALLOW_UNUSED creator_child_id, | 304 int ALLOW_UNUSED creator_child_id, |
298 const gfx::Size& ALLOW_UNUSED size, | 305 const gfx::Size& ALLOW_UNUSED size, |
299 content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace) { | 306 content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace, |
| 307 net::URLRequestContextGetter* ALLOW_UNUSED request_context) { |
300 // In the base PrerenderContents implementation, StartPrerendering will | 308 // In the base PrerenderContents implementation, StartPrerendering will |
301 // be called even when the PrerenderManager is part of the control group, | 309 // be called even when the PrerenderManager is part of the control group, |
302 // but it will early exit before actually creating a new RenderView if | 310 // but it will early exit before actually creating a new RenderView if |
303 // |is_control_group| is true; | 311 // |is_control_group| is true; |
304 load_start_time_ = test_prerender_manager_->GetCurrentTimeTicks(); | 312 load_start_time_ = test_prerender_manager_->GetCurrentTimeTicks(); |
305 if (!test_prerender_manager_->IsControlGroup(experiment_id())) { | 313 if (!test_prerender_manager_->IsControlGroup(experiment_id())) { |
306 prerendering_has_started_ = true; | 314 prerendering_has_started_ = true; |
307 test_prerender_manager_->DummyPrerenderContentsStarted(-1, route_id_, this); | 315 test_prerender_manager_->DummyPrerenderContentsStarted(-1, route_id_, this); |
308 NotifyPrerenderStart(); | 316 NotifyPrerenderStart(); |
309 } | 317 } |
(...skipping 1244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1554 CHECK(prerender_handle.get()); | 1562 CHECK(prerender_handle.get()); |
1555 EXPECT_TRUE(prerender_handle->IsPrerendering()); | 1563 EXPECT_TRUE(prerender_handle->IsPrerendering()); |
1556 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 1564 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
1557 EXPECT_EQ(prerender_contents, prerender_handle->contents()); | 1565 EXPECT_EQ(prerender_contents, prerender_handle->contents()); |
1558 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin()); | 1566 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin()); |
1559 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); | 1567 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
1560 EXPECT_FALSE(prerender_handle->IsPrerendering()); | 1568 EXPECT_FALSE(prerender_handle->IsPrerendering()); |
1561 } | 1569 } |
1562 | 1570 |
1563 } // namespace prerender | 1571 } // namespace prerender |
OLD | NEW |