OLD | NEW |
---|---|
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 CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ | 5 #ifndef CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ |
6 #define CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ | 6 #define CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
333 virtual bool Send(IPC::Message* message) OVERRIDE; | 333 virtual bool Send(IPC::Message* message) OVERRIDE; |
334 | 334 |
335 // RenderFrameHostDelegate --------------------------------------------------- | 335 // RenderFrameHostDelegate --------------------------------------------------- |
336 virtual bool OnMessageReceived(RenderFrameHost* render_frame_host, | 336 virtual bool OnMessageReceived(RenderFrameHost* render_frame_host, |
337 const IPC::Message& message) OVERRIDE; | 337 const IPC::Message& message) OVERRIDE; |
338 virtual const GURL& GetMainFrameLastCommittedURL() const OVERRIDE; | 338 virtual const GURL& GetMainFrameLastCommittedURL() const OVERRIDE; |
339 virtual void RenderFrameCreated(RenderFrameHost* render_frame_host) OVERRIDE; | 339 virtual void RenderFrameCreated(RenderFrameHost* render_frame_host) OVERRIDE; |
340 virtual void RenderFrameDeleted(RenderFrameHost* render_frame_host) OVERRIDE; | 340 virtual void RenderFrameDeleted(RenderFrameHost* render_frame_host) OVERRIDE; |
341 virtual void DidStartLoading(RenderFrameHost* render_frame_host, | 341 virtual void DidStartLoading(RenderFrameHost* render_frame_host, |
342 bool to_different_document) OVERRIDE; | 342 bool to_different_document) OVERRIDE; |
343 virtual void DidStopLoading(RenderFrameHost* render_frame_host) OVERRIDE; | |
344 virtual void SwappedOut(RenderFrameHost* render_frame_host) OVERRIDE; | 343 virtual void SwappedOut(RenderFrameHost* render_frame_host) OVERRIDE; |
345 virtual void WorkerCrashed(RenderFrameHost* render_frame_host) OVERRIDE; | 344 virtual void WorkerCrashed(RenderFrameHost* render_frame_host) OVERRIDE; |
346 virtual void ShowContextMenu(RenderFrameHost* render_frame_host, | 345 virtual void ShowContextMenu(RenderFrameHost* render_frame_host, |
347 const ContextMenuParams& params) OVERRIDE; | 346 const ContextMenuParams& params) OVERRIDE; |
348 virtual void RunJavaScriptMessage(RenderFrameHost* render_frame_host, | 347 virtual void RunJavaScriptMessage(RenderFrameHost* render_frame_host, |
349 const base::string16& message, | 348 const base::string16& message, |
350 const base::string16& default_prompt, | 349 const base::string16& default_prompt, |
351 const GURL& frame_url, | 350 const GURL& frame_url, |
352 JavaScriptMessageType type, | 351 JavaScriptMessageType type, |
353 IPC::Message* reply_msg) OVERRIDE; | 352 IPC::Message* reply_msg) OVERRIDE; |
(...skipping 28 matching lines...) Expand all Loading... | |
382 virtual void UpdateTitle(RenderViewHost* render_view_host, | 381 virtual void UpdateTitle(RenderViewHost* render_view_host, |
383 int32 page_id, | 382 int32 page_id, |
384 const base::string16& title, | 383 const base::string16& title, |
385 base::i18n::TextDirection title_direction) OVERRIDE; | 384 base::i18n::TextDirection title_direction) OVERRIDE; |
386 virtual void UpdateEncoding(RenderViewHost* render_view_host, | 385 virtual void UpdateEncoding(RenderViewHost* render_view_host, |
387 const std::string& encoding) OVERRIDE; | 386 const std::string& encoding) OVERRIDE; |
388 virtual void UpdateTargetURL(int32 page_id, const GURL& url) OVERRIDE; | 387 virtual void UpdateTargetURL(int32 page_id, const GURL& url) OVERRIDE; |
389 virtual void Close(RenderViewHost* render_view_host) OVERRIDE; | 388 virtual void Close(RenderViewHost* render_view_host) OVERRIDE; |
390 virtual void RequestMove(const gfx::Rect& new_bounds) OVERRIDE; | 389 virtual void RequestMove(const gfx::Rect& new_bounds) OVERRIDE; |
391 virtual void DidCancelLoading() OVERRIDE; | 390 virtual void DidCancelLoading() OVERRIDE; |
392 virtual void DidChangeLoadProgress(double progress) OVERRIDE; | |
393 virtual void DocumentAvailableInMainFrame( | 391 virtual void DocumentAvailableInMainFrame( |
394 RenderViewHost* render_view_host) OVERRIDE; | 392 RenderViewHost* render_view_host) OVERRIDE; |
395 virtual void RouteCloseEvent(RenderViewHost* rvh) OVERRIDE; | 393 virtual void RouteCloseEvent(RenderViewHost* rvh) OVERRIDE; |
396 virtual void RouteMessageEvent( | 394 virtual void RouteMessageEvent( |
397 RenderViewHost* rvh, | 395 RenderViewHost* rvh, |
398 const ViewMsg_PostMessage_Params& params) OVERRIDE; | 396 const ViewMsg_PostMessage_Params& params) OVERRIDE; |
399 virtual bool AddMessageToConsole(int32 level, | 397 virtual bool AddMessageToConsole(int32 level, |
400 const base::string16& message, | 398 const base::string16& message, |
401 int32 line_no, | 399 int32 line_no, |
402 const base::string16& source_id) OVERRIDE; | 400 const base::string16& source_id) OVERRIDE; |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
707 void OnDidLoadResourceFromMemoryCache(const GURL& url, | 705 void OnDidLoadResourceFromMemoryCache(const GURL& url, |
708 const std::string& security_info, | 706 const std::string& security_info, |
709 const std::string& http_request, | 707 const std::string& http_request, |
710 const std::string& mime_type, | 708 const std::string& mime_type, |
711 ResourceType::Type resource_type); | 709 ResourceType::Type resource_type); |
712 void OnDidDisplayInsecureContent(); | 710 void OnDidDisplayInsecureContent(); |
713 void OnDidRunInsecureContent(const std::string& security_origin, | 711 void OnDidRunInsecureContent(const std::string& security_origin, |
714 const GURL& target_url); | 712 const GURL& target_url); |
715 void OnDocumentLoadedInFrame(); | 713 void OnDocumentLoadedInFrame(); |
716 void OnDidFinishLoad(const GURL& url); | 714 void OnDidFinishLoad(const GURL& url); |
715 void OnDidStartLoading(bool to_different_document); | |
716 void OnDidStopLoading(); | |
717 void OnDidChangeLoadProgress(double load_progress); | |
717 void OnGoToEntryAtOffset(int offset); | 718 void OnGoToEntryAtOffset(int offset); |
718 void OnUpdateZoomLimits(int minimum_percent, | 719 void OnUpdateZoomLimits(int minimum_percent, |
719 int maximum_percent, | 720 int maximum_percent, |
720 bool remember); | 721 bool remember); |
721 void OnEnumerateDirectory(int request_id, const base::FilePath& path); | 722 void OnEnumerateDirectory(int request_id, const base::FilePath& path); |
722 | 723 |
723 void OnRegisterProtocolHandler(const std::string& protocol, | 724 void OnRegisterProtocolHandler(const std::string& protocol, |
724 const GURL& url, | 725 const GURL& url, |
725 const base::string16& title, | 726 const base::string16& title, |
726 bool user_gesture); | 727 bool user_gesture); |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
827 | 828 |
828 // Finds the new RenderWidgetHost and returns it. Note that this can only be | 829 // Finds the new RenderWidgetHost and returns it. Note that this can only be |
829 // called once as this call also removes it from the internal map. | 830 // called once as this call also removes it from the internal map. |
830 RenderWidgetHostView* GetCreatedWidget(int route_id); | 831 RenderWidgetHostView* GetCreatedWidget(int route_id); |
831 | 832 |
832 // Finds the new WebContentsImpl by route_id, initializes it for | 833 // Finds the new WebContentsImpl by route_id, initializes it for |
833 // renderer-initiated creation, and returns it. Note that this can only be | 834 // renderer-initiated creation, and returns it. Note that this can only be |
834 // called once as this call also removes it from the internal map. | 835 // called once as this call also removes it from the internal map. |
835 WebContentsImpl* GetCreatedWindow(int route_id); | 836 WebContentsImpl* GetCreatedWindow(int route_id); |
836 | 837 |
838 // Tracking loading progress ------------------------------------------------- | |
839 | |
840 // Resets the tracking state of the current load. | |
841 void ResetLoadProgressState(); | |
842 | |
843 // Calculates the progress of the current load and notifies the delegate. | |
844 void SendLoadProgressChanged(); | |
845 | |
846 // Called once when the last frame on the page has stopped loading. | |
847 void DidStopLoading(RenderFrameHost* render_frame_host); | |
848 | |
837 // Misc non-view stuff ------------------------------------------------------- | 849 // Misc non-view stuff ------------------------------------------------------- |
838 | 850 |
839 // Helper functions for sending notifications. | 851 // Helper functions for sending notifications. |
840 void NotifySwapped(RenderViewHost* old_host, RenderViewHost* new_host); | 852 void NotifySwapped(RenderViewHost* old_host, RenderViewHost* new_host); |
841 void NotifyDisconnected(); | 853 void NotifyDisconnected(); |
842 | 854 |
843 void SetEncoding(const std::string& encoding); | 855 void SetEncoding(const std::string& encoding); |
844 | 856 |
845 // TODO(creis): This should take in a FrameTreeNode to know which node's | 857 // TODO(creis): This should take in a FrameTreeNode to know which node's |
846 // render manager to return. For now, we just return the root's. | 858 // render manager to return. For now, we just return the root's. |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
957 bool waiting_for_response_; | 969 bool waiting_for_response_; |
958 | 970 |
959 // Map of SiteInstance ID to max page ID for this tab. A page ID is specific | 971 // Map of SiteInstance ID to max page ID for this tab. A page ID is specific |
960 // to a given tab and SiteInstance, and must be valid for the lifetime of the | 972 // to a given tab and SiteInstance, and must be valid for the lifetime of the |
961 // WebContentsImpl. | 973 // WebContentsImpl. |
962 std::map<int32, int32> max_page_ids_; | 974 std::map<int32, int32> max_page_ids_; |
963 | 975 |
964 // The current load state and the URL associated with it. | 976 // The current load state and the URL associated with it. |
965 net::LoadStateWithParam load_state_; | 977 net::LoadStateWithParam load_state_; |
966 base::string16 load_state_host_; | 978 base::string16 load_state_host_; |
979 | |
980 // LoadingProgressMap maps FrameTreeNode IDs to a double representing that | |
981 // frame's completion (from 0 to 1). | |
982 typedef base::hash_map<int64, double> LoadingProgressMap; | |
nasko
2014/05/05 23:51:12
I think this is the right choice, but one note her
Avi (use Gerrit)
2014/05/06 00:03:40
I am not experienced enough in the loading code to
Nate Chapin
2014/05/07 20:16:02
Unless we create a way to notify the new process t
Charlie Reis
2014/05/07 23:51:00
Yes, I don't think it should cause a big problem.
Nate Chapin
2014/05/08 00:19:45
We should be able to avoid going backwards in the
Avi (use Gerrit)
2014/05/13 21:08:08
**THIS ISSUE REMAINS UNADDRESSED**
In the continu
Charlie Reis
2014/05/13 22:44:37
We may need to try this out to be sure, since I'm
Avi (use Gerrit)
2014/05/14 00:14:32
This already does a good job of failing just about
Charlie Reis
2014/05/14 17:18:33
Yeah, the SitePerProcessBrowserTests exercise the
| |
983 LoadingProgressMap loading_progresses_; | |
984 double loading_total_progress_; | |
985 | |
986 base::TimeTicks loading_last_progress_update_; | |
987 | |
988 base::WeakPtrFactory<WebContentsImpl> loading_weak_factory_; | |
989 | |
990 // Counter to track how many frames have sent start notifications but not | |
991 // stop notifications. | |
992 int loading_frames_in_progress_; | |
993 | |
967 // Upload progress, for displaying in the status bar. | 994 // Upload progress, for displaying in the status bar. |
968 // Set to zero when there is no significant upload happening. | 995 // Set to zero when there is no significant upload happening. |
969 uint64 upload_size_; | 996 uint64 upload_size_; |
970 uint64 upload_position_; | 997 uint64 upload_position_; |
971 | 998 |
972 // Data for current page ----------------------------------------------------- | 999 // Data for current page ----------------------------------------------------- |
973 | 1000 |
974 // When a title cannot be taken from any entry, this title will be used. | 1001 // When a title cannot be taken from any entry, this title will be used. |
975 base::string16 page_title_when_no_navigation_entry_; | 1002 base::string16 page_title_when_no_navigation_entry_; |
976 | 1003 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1113 | 1140 |
1114 // Whether the last JavaScript dialog shown was suppressed. Used for testing. | 1141 // Whether the last JavaScript dialog shown was suppressed. Used for testing. |
1115 bool last_dialog_suppressed_; | 1142 bool last_dialog_suppressed_; |
1116 | 1143 |
1117 DISALLOW_COPY_AND_ASSIGN(WebContentsImpl); | 1144 DISALLOW_COPY_AND_ASSIGN(WebContentsImpl); |
1118 }; | 1145 }; |
1119 | 1146 |
1120 } // namespace content | 1147 } // namespace content |
1121 | 1148 |
1122 #endif // CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ | 1149 #endif // CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ |
OLD | NEW |