Index: chrome/browser/prerender/prerender_tracker.h |
diff --git a/chrome/browser/prerender/prerender_tracker.h b/chrome/browser/prerender/prerender_tracker.h |
index f4bc1088ec4faef8b36da6f930d2873417888059..15bfd2aa79b9a0a7d6a976a50a16d57e07ba467a 100644 |
--- a/chrome/browser/prerender/prerender_tracker.h |
+++ b/chrome/browser/prerender/prerender_tracker.h |
@@ -7,11 +7,13 @@ |
#include <map> |
#include <set> |
+#include <utility> |
#include <vector> |
#include "base/gtest_prod_util.h" |
#include "base/synchronization/lock.h" |
#include "base/threading/non_thread_safe.h" |
+#include "chrome/browser/prerender/prerender_contents.h" |
#include "chrome/browser/prerender/prerender_final_status.h" |
#include "googleurl/src/gurl.h" |
@@ -23,17 +25,17 @@ struct RenderViewInfo; |
// PrerenderTracker is responsible for keeping track of all prerendering |
// RenderViews and their statuses. Its list is guaranteed to be up to date |
// and can be modified on any thread. |
-class PrerenderTracker { |
+class PrerenderTracker : public base::NonThreadSafe, |
+ public PrerenderContents::Observer { |
public: |
PrerenderTracker(); |
- ~PrerenderTracker(); |
+ virtual ~PrerenderTracker(); |
// Attempts to set the status of the specified RenderViewHost to |
// FINAL_STATUS_USED. Returns true on success. Returns false if it has |
// already been cancelled for any reason or is no longer prerendering. |
// Can only be called only on the IO thread. This method will not call |
- // PrerenderContents::set_final_status() on the corresponding |
- // PrerenderContents. |
+ // PrerenderContents::SetFinalStatus() on the corresponding PrerenderContents. |
// |
// If it returns true, all subsequent calls to TryCancel and TryUse for the |
// RenderView will return false. |
@@ -81,15 +83,9 @@ class PrerenderTracker { |
// Set of child/route id pairs that may be prerendering. |
typedef std::set<ChildRouteIdPair> PossiblyPrerenderingChildRouteIdPairs; |
- // Must be called when a RenderView starts prerendering, before the first |
- // navigation starts to avoid any races. |
- void OnPrerenderingStarted(int child_id, int route_id, |
- PrerenderManager* prerender_manager); |
- |
- // Must be called when a RenderView stops prerendering, either because the |
- // RenderView was used or prerendering was cancelled and it is being |
- // destroyed. |
- void OnPrerenderingFinished(int child_id, int route_id); |
+ // From PrerenderContents::Observer: |
+ virtual void OnPrerenderStart(PrerenderContents* prerender_contents) OVERRIDE; |
+ virtual void OnPrerenderStop(PrerenderContents* prerender_contents) OVERRIDE; |
// Attempts to set the FinalStatus of the specified RenderView to |
// |desired_final_status|. If non-NULL, |actual_final_status| is set to the |