Index: chrome/browser/prerender/prerender_contents.cc |
diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc |
index ad2081029a542391ab83ed7d555844e1deda7845..288cfa09c531f3825978a6f83f357d652c28661c 100644 |
--- a/chrome/browser/prerender/prerender_contents.cc |
+++ b/chrome/browser/prerender/prerender_contents.cc |
@@ -183,6 +183,10 @@ void PrerenderContents::Observer::OnPrerenderStopLoading( |
PrerenderContents* contents) { |
} |
+void PrerenderContents::Observer::OnPrerenderDomContentLoaded( |
+ PrerenderContents* contents) { |
+} |
+ |
void PrerenderContents::Observer::OnPrerenderCreatedMatchCompleteReplacement( |
PrerenderContents* contents, PrerenderContents* replacement) { |
} |
@@ -217,6 +221,7 @@ PrerenderContents::PrerenderContents( |
origin_(origin), |
experiment_id_(experiment_id), |
creator_child_id_(-1), |
+ main_frame_id_(0), |
cookie_status_(0) { |
DCHECK(prerender_manager != NULL); |
} |
@@ -477,6 +482,11 @@ void PrerenderContents::NotifyPrerenderStopLoading() { |
FOR_EACH_OBSERVER(Observer, observer_list_, OnPrerenderStopLoading(this)); |
} |
+void PrerenderContents::NotifyPrerenderDomContentLoaded() { |
+ FOR_EACH_OBSERVER(Observer, observer_list_, |
+ OnPrerenderDomContentLoaded(this)); |
+} |
+ |
void PrerenderContents::NotifyPrerenderStop() { |
DCHECK_NE(FINAL_STATUS_MAX, final_status_); |
FOR_EACH_OBSERVER(Observer, observer_list_, OnPrerenderStop(this)); |
@@ -564,6 +574,13 @@ void PrerenderContents::DidStopLoading( |
NotifyPrerenderStopLoading(); |
} |
+void PrerenderContents::DocumentLoadedInFrame( |
+ int64 frame_id, |
+ RenderViewHost* render_view_host) { |
+ if (frame_id == main_frame_id_) |
+ NotifyPrerenderDomContentLoaded(); |
+} |
+ |
void PrerenderContents::DidStartProvisionalLoadForFrame( |
int64 frame_id, |
int64 parent_frame_id, |
@@ -586,6 +603,18 @@ void PrerenderContents::DidStartProvisionalLoadForFrame( |
} |
} |
+void PrerenderContents::DidCommitProvisionalLoadForFrame( |
+ int64 frame_id, |
+ const base::string16& frame_unique_name, |
+ bool is_main_frame, |
+ const GURL& url, |
+ content::PageTransition transition_type, |
+ RenderViewHost* render_view_host) { |
+ if (is_main_frame) { |
+ main_frame_id_ = frame_id; |
+ } |
+} |
+ |
void PrerenderContents::DidFinishLoad(int64 frame_id, |
const GURL& validated_url, |
bool is_main_frame, |