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

Side by Side Diff: chrome/browser/prerender/prerender_manager.h

Issue 15021007: Do conservative prerendering based on the LocalPredictor in Dev/Canary. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 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 #ifndef CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_ 5 #ifndef CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_
6 #define CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_ 6 #define CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_
7 7
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 // from a source without a RenderViewHost (i.e., the omnibox) we don't have a 133 // from a source without a RenderViewHost (i.e., the omnibox) we don't have a
134 // child or route id, or a referrer. This method uses sensible values for 134 // child or route id, or a referrer. This method uses sensible values for
135 // those. The |session_storage_namespace| matches the namespace of the active 135 // those. The |session_storage_namespace| matches the namespace of the active
136 // tab at the time the prerender is generated from the omnibox. Returns a 136 // tab at the time the prerender is generated from the omnibox. Returns a
137 // caller-owned PrerenderHandle*, or NULL. 137 // caller-owned PrerenderHandle*, or NULL.
138 PrerenderHandle* AddPrerenderFromOmnibox( 138 PrerenderHandle* AddPrerenderFromOmnibox(
139 const GURL& url, 139 const GURL& url,
140 content::SessionStorageNamespace* session_storage_namespace, 140 content::SessionStorageNamespace* session_storage_namespace,
141 const gfx::Size& size); 141 const gfx::Size& size);
142 142
143 PrerenderHandle* AddPrerenderFromLocalPredictor(
144 const GURL& url,
145 content::SessionStorageNamespace* session_storage_namespace,
146 const gfx::Size& size);
147
143 // If |process_id| and |view_id| refer to a running prerender, destroy 148 // If |process_id| and |view_id| refer to a running prerender, destroy
144 // it with |final_status|. 149 // it with |final_status|.
145 virtual void DestroyPrerenderForRenderView(int process_id, 150 virtual void DestroyPrerenderForRenderView(int process_id,
146 int view_id, 151 int view_id,
147 FinalStatus final_status); 152 FinalStatus final_status);
148 153
149 // Cancels all active prerenders. 154 // Cancels all active prerenders.
150 void CancelAllPrerenders(); 155 void CancelAllPrerenders();
151 156
152 // If |url| matches a valid prerendered page, try to swap it into 157 // If |url| matches a valid prerendered page, try to swap it into
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 const base::Closure& result_cb); 298 const base::Closure& result_cb);
294 299
295 Profile* profile() const { return profile_; } 300 Profile* profile() const { return profile_; }
296 301
297 // Classes which will be tested in prerender unit browser tests should use 302 // Classes which will be tested in prerender unit browser tests should use
298 // these methods to get times for comparison, so that the test framework can 303 // these methods to get times for comparison, so that the test framework can
299 // mock advancing/retarding time. 304 // mock advancing/retarding time.
300 virtual base::Time GetCurrentTime() const; 305 virtual base::Time GetCurrentTime() const;
301 virtual base::TimeTicks GetCurrentTimeTicks() const; 306 virtual base::TimeTicks GetCurrentTimeTicks() const;
302 307
308 scoped_refptr<predictors::LoggedInPredictorTable>
309 logged_in_predictor_table() {
310 return logged_in_predictor_table_;
311 }
312
303 protected: 313 protected:
304 class PrerenderData : public base::SupportsWeakPtr<PrerenderData> { 314 class PrerenderData : public base::SupportsWeakPtr<PrerenderData> {
305 public: 315 public:
306 struct OrderByExpiryTime; 316 struct OrderByExpiryTime;
307 317
308 PrerenderData(PrerenderManager* manager, 318 PrerenderData(PrerenderManager* manager,
309 PrerenderContents* contents, 319 PrerenderContents* contents,
310 base::TimeTicks expiry_time); 320 base::TimeTicks expiry_time);
311 321
312 ~PrerenderData(); 322 ~PrerenderData();
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 // WebContents that have been replaced by prerendered WebContents. 455 // WebContents that have been replaced by prerendered WebContents.
446 // Also identifies and kills PrerenderContents that use too much 456 // Also identifies and kills PrerenderContents that use too much
447 // resources. 457 // resources.
448 void PeriodicCleanup(); 458 void PeriodicCleanup();
449 459
450 // Posts a task to call PeriodicCleanup. Results in quicker destruction of 460 // Posts a task to call PeriodicCleanup. Results in quicker destruction of
451 // objects. If |this| is deleted before the task is run, the task will 461 // objects. If |this| is deleted before the task is run, the task will
452 // automatically be cancelled. 462 // automatically be cancelled.
453 void PostCleanupTask(); 463 void PostCleanupTask();
454 464
455 base::TimeTicks GetExpiryTimeForNewPrerender() const; 465 base::TimeTicks GetExpiryTimeForNewPrerender(Origin origin) const;
456 base::TimeTicks GetExpiryTimeForNavigatedAwayPrerender() const; 466 base::TimeTicks GetExpiryTimeForNavigatedAwayPrerender() const;
457 467
458 void DeleteOldEntries(); 468 void DeleteOldEntries();
459 virtual PrerenderContents* CreatePrerenderContents( 469 virtual PrerenderContents* CreatePrerenderContents(
460 const GURL& url, 470 const GURL& url,
461 const content::Referrer& referrer, 471 const content::Referrer& referrer,
462 Origin origin, 472 Origin origin,
463 uint8 experiment_id); 473 uint8 experiment_id);
464 474
465 // Insures the |active_prerenders_| are sorted by increasing expiry time. Call 475 // Insures the |active_prerenders_| are sorted by increasing expiry time. Call
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 627
618 DISALLOW_COPY_AND_ASSIGN(PrerenderManager); 628 DISALLOW_COPY_AND_ASSIGN(PrerenderManager);
619 }; 629 };
620 630
621 PrerenderManager* FindPrerenderManagerUsingRenderProcessId( 631 PrerenderManager* FindPrerenderManagerUsingRenderProcessId(
622 int render_process_id); 632 int render_process_id);
623 633
624 } // namespace prerender 634 } // namespace prerender
625 635
626 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_ 636 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698