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

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

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 unified diff | Download patch
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_CONTENTS_H_ 5 #ifndef CHROME_BROWSER_PRERENDER_PRERENDER_CONTENTS_H_
6 #define CHROME_BROWSER_PRERENDER_PRERENDER_CONTENTS_H_ 6 #define CHROME_BROWSER_PRERENDER_PRERENDER_CONTENTS_H_
7 7
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 }; 70 };
71 71
72 class Observer { 72 class Observer {
73 public: 73 public:
74 // Signals that the prerender has started running. 74 // Signals that the prerender has started running.
75 virtual void OnPrerenderStart(PrerenderContents* contents) = 0; 75 virtual void OnPrerenderStart(PrerenderContents* contents) = 0;
76 76
77 // Signals that the prerender has had its load event. 77 // Signals that the prerender has had its load event.
78 virtual void OnPrerenderStopLoading(PrerenderContents* contents); 78 virtual void OnPrerenderStopLoading(PrerenderContents* contents);
79 79
80 // Signals that the prerender has had its 'DOMContentLoaded' event.
81 virtual void OnPrerenderDomContentLoaded(PrerenderContents* contents);
82
80 // Signals that the prerender has stopped running. A PrerenderContents with 83 // Signals that the prerender has stopped running. A PrerenderContents with
81 // an unset final status will always call OnPrerenderStop before being 84 // an unset final status will always call OnPrerenderStop before being
82 // destroyed. 85 // destroyed.
83 virtual void OnPrerenderStop(PrerenderContents* contents) = 0; 86 virtual void OnPrerenderStop(PrerenderContents* contents) = 0;
84 87
85 // Signals that this prerender has just become a MatchComplete replacement. 88 // Signals that this prerender has just become a MatchComplete replacement.
86 virtual void OnPrerenderCreatedMatchCompleteReplacement( 89 virtual void OnPrerenderCreatedMatchCompleteReplacement(
87 PrerenderContents* contents, PrerenderContents* replacement); 90 PrerenderContents* contents, PrerenderContents* replacement);
88 91
89 protected: 92 protected:
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 // |url| and |session_storage_namespace|. 196 // |url| and |session_storage_namespace|.
194 bool Matches( 197 bool Matches(
195 const GURL& url, 198 const GURL& url,
196 const content::SessionStorageNamespace* session_storage_namespace) const; 199 const content::SessionStorageNamespace* session_storage_namespace) const;
197 200
198 // content::WebContentsObserver implementation. 201 // content::WebContentsObserver implementation.
199 virtual void RenderFrameCreated( 202 virtual void RenderFrameCreated(
200 content::RenderFrameHost* render_frame_host) OVERRIDE; 203 content::RenderFrameHost* render_frame_host) OVERRIDE;
201 virtual void DidStopLoading( 204 virtual void DidStopLoading(
202 content::RenderViewHost* render_view_host) OVERRIDE; 205 content::RenderViewHost* render_view_host) OVERRIDE;
206 virtual void DocumentLoadedInFrame(
207 int64 frame_id, content::RenderViewHost* render_view_host) OVERRIDE;
203 virtual void DidStartProvisionalLoadForFrame( 208 virtual void DidStartProvisionalLoadForFrame(
204 int64 frame_id, 209 int64 frame_id,
205 int64 parent_frame_id, 210 int64 parent_frame_id,
206 bool is_main_frame, 211 bool is_main_frame,
207 const GURL& validated_url, 212 const GURL& validated_url,
208 bool is_error_page, 213 bool is_error_page,
209 bool is_iframe_srcdoc, 214 bool is_iframe_srcdoc,
210 content::RenderViewHost* render_view_host) OVERRIDE; 215 content::RenderViewHost* render_view_host) OVERRIDE;
216 virtual void DidCommitProvisionalLoadForFrame(
217 int64 frame_id,
218 const base::string16& frame_unique_name,
219 bool is_main_frame,
220 const GURL& url,
221 content::PageTransition transition_type,
222 content::RenderViewHost* render_view_host) OVERRIDE;
211 virtual void DidFinishLoad( 223 virtual void DidFinishLoad(
212 int64 frame_id, 224 int64 frame_id,
213 const GURL& validated_url, 225 const GURL& validated_url,
214 bool is_main_frame, 226 bool is_main_frame,
215 content::RenderViewHost* render_view_host) OVERRIDE; 227 content::RenderViewHost* render_view_host) OVERRIDE;
216 virtual void DidNavigateMainFrame( 228 virtual void DidNavigateMainFrame(
217 const content::LoadCommittedDetails& details, 229 const content::LoadCommittedDetails& details,
218 const content::FrameNavigateParams& params) OVERRIDE; 230 const content::FrameNavigateParams& params) OVERRIDE;
219 virtual void DidGetRedirectForResourceRequest( 231 virtual void DidGetRedirectForResourceRequest(
220 content::RenderViewHost* render_view_host, 232 content::RenderViewHost* render_view_host,
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 313
302 // Set the final status for how the PrerenderContents was used. This 314 // Set the final status for how the PrerenderContents was used. This
303 // should only be called once, and should be called before the prerender 315 // should only be called once, and should be called before the prerender
304 // contents are destroyed. 316 // contents are destroyed.
305 void SetFinalStatus(FinalStatus final_status); 317 void SetFinalStatus(FinalStatus final_status);
306 318
307 // These call out to methods on our Observers, using our observer_list_. Note 319 // These call out to methods on our Observers, using our observer_list_. Note
308 // that NotifyPrerenderStop() also clears the observer list. 320 // that NotifyPrerenderStop() also clears the observer list.
309 void NotifyPrerenderStart(); 321 void NotifyPrerenderStart();
310 void NotifyPrerenderStopLoading(); 322 void NotifyPrerenderStopLoading();
323 void NotifyPrerenderDomContentLoaded();
311 void NotifyPrerenderStop(); 324 void NotifyPrerenderStop();
312 void NotifyPrerenderCreatedMatchCompleteReplacement( 325 void NotifyPrerenderCreatedMatchCompleteReplacement(
313 PrerenderContents* replacement); 326 PrerenderContents* replacement);
314 327
315 // Called whenever a RenderViewHost is created for prerendering. Only called 328 // Called whenever a RenderViewHost is created for prerendering. Only called
316 // once the RenderViewHost has a RenderView and RenderWidgetHostView. 329 // once the RenderViewHost has a RenderView and RenderWidgetHostView.
317 virtual void OnRenderViewHostCreated( 330 virtual void OnRenderViewHostCreated(
318 content::RenderViewHost* new_render_view_host); 331 content::RenderViewHost* new_render_view_host);
319 332
320 content::NotificationRegistrar& notification_registrar() { 333 content::NotificationRegistrar& notification_registrar() {
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 431
419 // Origin for this prerender. 432 // Origin for this prerender.
420 Origin origin_; 433 Origin origin_;
421 434
422 // Experiment during which this prerender is performed. 435 // Experiment during which this prerender is performed.
423 uint8 experiment_id_; 436 uint8 experiment_id_;
424 437
425 // The process that created the child id. 438 // The process that created the child id.
426 int creator_child_id_; 439 int creator_child_id_;
427 440
441 // Main frame ID of last committed page.
442 int64 main_frame_id_;
443
428 // The size of the WebView from the launching page. 444 // The size of the WebView from the launching page.
429 gfx::Size size_; 445 gfx::Size size_;
430 446
431 typedef std::vector<history::HistoryAddPageArgs> AddPageVector; 447 typedef std::vector<history::HistoryAddPageArgs> AddPageVector;
432 448
433 // Caches pages to be added to the history. 449 // Caches pages to be added to the history.
434 AddPageVector add_page_vector_; 450 AddPageVector add_page_vector_;
435 451
436 // The alias session storage namespace for this prerender. 452 // The alias session storage namespace for this prerender.
437 scoped_refptr<content::SessionStorageNamespace> 453 scoped_refptr<content::SessionStorageNamespace>
438 alias_session_storage_namespace; 454 alias_session_storage_namespace;
439 455
440 // Indicates what internal cookie events (see prerender_contents.cc) have 456 // Indicates what internal cookie events (see prerender_contents.cc) have
441 // occurred, using 1 bit for each possible InternalCookieEvent. 457 // occurred, using 1 bit for each possible InternalCookieEvent.
442 int cookie_status_; 458 int cookie_status_;
443 459
444 // Resources that are throttled, pending a prerender use. Can only access a 460 // Resources that are throttled, pending a prerender use. Can only access a
445 // throttle on the IO thread. 461 // throttle on the IO thread.
446 std::vector<base::WeakPtr<PrerenderResourceThrottle> > resource_throttles_; 462 std::vector<base::WeakPtr<PrerenderResourceThrottle> > resource_throttles_;
447 463
448 DISALLOW_COPY_AND_ASSIGN(PrerenderContents); 464 DISALLOW_COPY_AND_ASSIGN(PrerenderContents);
449 }; 465 };
450 466
451 } // namespace prerender 467 } // namespace prerender
452 468
453 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_CONTENTS_H_ 469 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_CONTENTS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698