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

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

Issue 146983002: Move pending prerender logic into PrerenderLinkManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 10 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 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 // Whether the PrerenderManager has an active prerender with the given url and 223 // Whether the PrerenderManager has an active prerender with the given url and
224 // SessionStorageNamespace associated with the given WebContens. 224 // SessionStorageNamespace associated with the given WebContens.
225 bool HasPrerenderedUrl(GURL url, content::WebContents* web_contents) const; 225 bool HasPrerenderedUrl(GURL url, content::WebContents* web_contents) const;
226 226
227 // Returns the PrerenderContents object for the given web_contents, otherwise 227 // Returns the PrerenderContents object for the given web_contents, otherwise
228 // returns NULL. Note that the PrerenderContents may have been Destroy()ed, 228 // returns NULL. Note that the PrerenderContents may have been Destroy()ed,
229 // but not yet deleted. 229 // but not yet deleted.
230 PrerenderContents* GetPrerenderContents( 230 PrerenderContents* GetPrerenderContents(
231 const content::WebContents* web_contents) const; 231 const content::WebContents* web_contents) const;
232 232
233 // Returns the PrerenderContents object for a given child_id, route_id pair,
234 // otherwise returns NULL. Note that the PrerenderContents may have been
235 // Destroy()ed, but not yet deleted.
236 virtual PrerenderContents* GetPrerenderContentsForRoute(
237 int child_id, int route_id) const;
238
233 // Returns a list of all WebContents being prerendered. 239 // Returns a list of all WebContents being prerendered.
234 const std::vector<content::WebContents*> GetAllPrerenderingContents() const; 240 const std::vector<content::WebContents*> GetAllPrerenderingContents() const;
235 241
236 // Maintaining and querying the set of WebContents belonging to this 242 // Maintaining and querying the set of WebContents belonging to this
237 // PrerenderManager that are currently showing prerendered pages. 243 // PrerenderManager that are currently showing prerendered pages.
238 void MarkWebContentsAsPrerendered(content::WebContents* web_contents, 244 void MarkWebContentsAsPrerendered(content::WebContents* web_contents,
239 Origin origin); 245 Origin origin);
240 void MarkWebContentsAsWouldBePrerendered(content::WebContents* web_contents, 246 void MarkWebContentsAsWouldBePrerendered(content::WebContents* web_contents,
241 Origin origin); 247 Origin origin);
242 void MarkWebContentsAsNotPrerendered(content::WebContents* web_contents); 248 void MarkWebContentsAsNotPrerendered(content::WebContents* web_contents);
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 bool seen_target_route_id_; 503 bool seen_target_route_id_;
498 base::OneShotTimer<PendingSwap> merge_timeout_; 504 base::OneShotTimer<PendingSwap> merge_timeout_;
499 bool swap_successful_; 505 bool swap_successful_;
500 506
501 base::WeakPtrFactory<PendingSwap> weak_factory_; 507 base::WeakPtrFactory<PendingSwap> weak_factory_;
502 }; 508 };
503 509
504 void SetPrerenderContentsFactory( 510 void SetPrerenderContentsFactory(
505 PrerenderContents::Factory* prerender_contents_factory); 511 PrerenderContents::Factory* prerender_contents_factory);
506 512
507 // Adds prerenders from the pending Prerenders, called by
508 // PrerenderContents::StartPendingPrerenders.
509 void StartPendingPrerenders(
510 int process_id,
511 ScopedVector<PrerenderContents::PendingPrerenderInfo>* pending_prerenders,
512 content::SessionStorageNamespace* session_storage_namespace);
513
514 // Called by a PrerenderData to signal that the launcher has navigated away 513 // Called by a PrerenderData to signal that the launcher has navigated away
515 // from the context that launched the prerender. A user may have clicked 514 // from the context that launched the prerender. A user may have clicked
516 // a link in a page containing a <link rel=prerender> element, or the user 515 // a link in a page containing a <link rel=prerender> element, or the user
517 // might have committed an omnibox navigation. This is used to possibly 516 // might have committed an omnibox navigation. This is used to possibly
518 // shorten the TTL of the prerendered page. 517 // shorten the TTL of the prerendered page.
519 void SourceNavigatedAway(PrerenderData* prerender_data); 518 void SourceNavigatedAway(PrerenderData* prerender_data);
520 519
521 private: 520 private:
522 friend class ::InstantSearchPrerendererTest; 521 friend class ::InstantSearchPrerendererTest;
523 friend class PrerenderBrowserTest; 522 friend class PrerenderBrowserTest;
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
610 // after every mutation of active_prerenders_ that can possibly make it 609 // after every mutation of active_prerenders_ that can possibly make it
611 // unsorted (e.g. an insert, or changing an expiry time). 610 // unsorted (e.g. an insert, or changing an expiry time).
612 void SortActivePrerenders(); 611 void SortActivePrerenders();
613 612
614 // Finds the active PrerenderData object for a running prerender matching 613 // Finds the active PrerenderData object for a running prerender matching
615 // |url| and |session_storage_namespace|. 614 // |url| and |session_storage_namespace|.
616 PrerenderData* FindPrerenderData( 615 PrerenderData* FindPrerenderData(
617 const GURL& url, 616 const GURL& url,
618 const content::SessionStorageNamespace* session_storage_namespace); 617 const content::SessionStorageNamespace* session_storage_namespace);
619 618
620 // If |child_id| and |route_id| correspond to a RenderView that is an active
621 // prerender, returns the PrerenderData object for that prerender. Otherwise,
622 // returns NULL.
623 PrerenderData* FindPrerenderDataForChildAndRoute(int child_id, int route_id);
624
625 // Finds the active PrerenderData object currently in a PendingSwap for 619 // Finds the active PrerenderData object currently in a PendingSwap for
626 // |target_contents|. Otherwise, returns NULL. 620 // |target_contents|. Otherwise, returns NULL.
627 PrerenderData* FindPrerenderDataForTargetContents( 621 PrerenderData* FindPrerenderDataForTargetContents(
628 content::WebContents* target_contents); 622 content::WebContents* target_contents);
629 623
630 // Given the |prerender_contents|, find the iterator in active_prerenders_ 624 // Given the |prerender_contents|, find the iterator in active_prerenders_
631 // correponding to the given prerender. 625 // correponding to the given prerender.
632 ScopedVector<PrerenderData>::iterator 626 ScopedVector<PrerenderData>::iterator
633 FindIteratorForPrerenderContents(PrerenderContents* prerender_contents); 627 FindIteratorForPrerenderContents(PrerenderContents* prerender_contents);
634 628
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
777 771
778 DISALLOW_COPY_AND_ASSIGN(PrerenderManager); 772 DISALLOW_COPY_AND_ASSIGN(PrerenderManager);
779 }; 773 };
780 774
781 PrerenderManager* FindPrerenderManagerUsingRenderProcessId( 775 PrerenderManager* FindPrerenderManagerUsingRenderProcessId(
782 int render_process_id); 776 int render_process_id);
783 777
784 } // namespace prerender 778 } // namespace prerender
785 779
786 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_ 780 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_link_manager.cc ('k') | chrome/browser/prerender/prerender_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698