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

Unified Diff: chrome/browser/prerender/prerender_contents.cc

Issue 133073021: Pass DomContentLoaded event from prerenders to launching elements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed unit tests. 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 side-by-side diff with in-line comments
Download patch
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,

Powered by Google App Engine
This is Rietveld 408576698