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

Side by Side Diff: chrome/browser/prerender/prerender_unittest.cc

Issue 233353003: Only commit cookie changes in prerenders after a prerender is shown (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Add browser tests, fix a bug in what was changed yesterday. Created 6 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 | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698