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_RENDERER_RENDER_VIEW_IMPL_H_ | 5 #ifndef CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ |
6 #define CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ | 6 #define CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ |
7 | 7 |
8 #include <deque> | 8 #include <deque> |
9 #include <map> | 9 #include <map> |
10 #include <set> | 10 #include <set> |
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
651 // Old WebFrameClient implementations ---------------------------------------- | 651 // Old WebFrameClient implementations ---------------------------------------- |
652 | 652 |
653 // RenderViewImpl used to be a WebFrameClient, but now RenderFrameImpl is the | 653 // RenderViewImpl used to be a WebFrameClient, but now RenderFrameImpl is the |
654 // WebFrameClient. However, many implementations of WebFrameClient methods | 654 // WebFrameClient. However, many implementations of WebFrameClient methods |
655 // still live here and are called from RenderFrameImpl. These implementations | 655 // still live here and are called from RenderFrameImpl. These implementations |
656 // are to be moved to RenderFrameImpl <http://crbug.com/361761>. | 656 // are to be moved to RenderFrameImpl <http://crbug.com/361761>. |
657 | 657 |
658 void didCreateDataSource(blink::WebLocalFrame* frame, | 658 void didCreateDataSource(blink::WebLocalFrame* frame, |
659 blink::WebDataSource* datasource); | 659 blink::WebDataSource* datasource); |
660 void didClearWindowObject(blink::WebLocalFrame* frame); | 660 void didClearWindowObject(blink::WebLocalFrame* frame); |
661 void didReceiveTitle(blink::WebLocalFrame* frame, | |
662 const blink::WebString& title, | |
663 blink::WebTextDirection direction); | |
664 void didChangeIcon(blink::WebLocalFrame*, blink::WebIconURL::Type); | 661 void didChangeIcon(blink::WebLocalFrame*, blink::WebIconURL::Type); |
665 void didUpdateCurrentHistoryItem(blink::WebLocalFrame* frame); | 662 void didUpdateCurrentHistoryItem(blink::WebLocalFrame* frame); |
666 void didChangeScrollOffset(blink::WebLocalFrame* frame); | 663 void didChangeScrollOffset(blink::WebLocalFrame* frame); |
667 | 664 |
668 static bool IsReload(const FrameMsg_Navigate_Params& params); | 665 static bool IsReload(const FrameMsg_Navigate_Params& params); |
669 | 666 |
670 static Referrer GetReferrerFromRequest( | 667 static Referrer GetReferrerFromRequest( |
671 blink::WebFrame* frame, | 668 blink::WebFrame* frame, |
672 const blink::WebURLRequest& request); | 669 const blink::WebURLRequest& request); |
673 | 670 |
674 static WindowOpenDisposition NavigationPolicyToDisposition( | 671 static WindowOpenDisposition NavigationPolicyToDisposition( |
675 blink::WebNavigationPolicy policy); | 672 blink::WebNavigationPolicy policy); |
676 | 673 |
677 void UpdateTitle(blink::WebFrame* frame, const base::string16& title, | |
678 blink::WebTextDirection title_direction); | |
679 void UpdateSessionHistory(blink::WebFrame* frame); | 674 void UpdateSessionHistory(blink::WebFrame* frame); |
680 void SendUpdateState(HistoryEntry* entry); | 675 void SendUpdateState(HistoryEntry* entry); |
681 | 676 |
682 // Update current main frame's encoding and send it to browser window. | |
683 // Since we want to let users see the right encoding info from menu | |
684 // before finishing loading, we call the UpdateEncoding in | |
685 // a) function:DidCommitLoadForFrame. When this function is called, | |
686 // that means we have got first data. In here we try to get encoding | |
687 // of page if it has been specified in http header. | |
688 // b) function:DidReceiveTitle. When this function is called, | |
689 // that means we have got specified title. Because in most of webpages, | |
690 // title tags will follow meta tags. In here we try to get encoding of | |
691 // page if it has been specified in meta tag. | |
692 // c) function:DidFinishDocumentLoadForFrame. When this function is | |
693 // called, that means we have got whole html page. In here we should | |
694 // finally get right encoding of page. | |
695 void UpdateEncoding(blink::WebFrame* frame, | |
696 const std::string& encoding_name); | |
697 | |
698 // Sends a message and runs a nested message loop. | 677 // Sends a message and runs a nested message loop. |
699 bool SendAndRunNestedMessageLoop(IPC::SyncMessage* message); | 678 bool SendAndRunNestedMessageLoop(IPC::SyncMessage* message); |
700 | 679 |
701 // Called when the "pinned to left/right edge" state needs to be updated. | 680 // Called when the "pinned to left/right edge" state needs to be updated. |
702 void UpdateScrollState(blink::WebFrame* frame); | 681 void UpdateScrollState(blink::WebFrame* frame); |
703 | 682 |
704 // IPC message handlers ------------------------------------------------------ | 683 // IPC message handlers ------------------------------------------------------ |
705 // | 684 // |
706 // The documentation for these functions should be in | 685 // The documentation for these functions should be in |
707 // content/common/*_messages.h for the message that the function is handling. | 686 // content/common/*_messages.h for the message that the function is handling. |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1011 // TODO(japhet): This state will need to move to the browser process | 990 // TODO(japhet): This state will need to move to the browser process |
1012 // (probably WebContents) for site isolation. | 991 // (probably WebContents) for site isolation. |
1013 int frames_in_progress_; | 992 int frames_in_progress_; |
1014 | 993 |
1015 // The list of page IDs for each history item this RenderView knows about. | 994 // The list of page IDs for each history item this RenderView knows about. |
1016 // Some entries may be -1 if they were rendered by other processes or were | 995 // Some entries may be -1 if they were rendered by other processes or were |
1017 // restored from a previous session. This lets us detect attempts to | 996 // restored from a previous session. This lets us detect attempts to |
1018 // navigate to stale entries that have been cropped from our history. | 997 // navigate to stale entries that have been cropped from our history. |
1019 std::vector<int32> history_page_ids_; | 998 std::vector<int32> history_page_ids_; |
1020 | 999 |
1021 // Page info ----------------------------------------------------------------- | |
1022 | |
1023 // The last gotten main frame's encoding. | |
1024 std::string last_encoding_name_; | |
1025 | |
1026 // UI state ------------------------------------------------------------------ | 1000 // UI state ------------------------------------------------------------------ |
1027 | 1001 |
1028 // The state of our target_url transmissions. When we receive a request to | 1002 // The state of our target_url transmissions. When we receive a request to |
1029 // send a URL to the browser, we set this to TARGET_INFLIGHT until an ACK | 1003 // send a URL to the browser, we set this to TARGET_INFLIGHT until an ACK |
1030 // comes back - if a new request comes in before the ACK, we store the new | 1004 // comes back - if a new request comes in before the ACK, we store the new |
1031 // URL in pending_target_url_ and set the status to TARGET_PENDING. If an | 1005 // URL in pending_target_url_ and set the status to TARGET_PENDING. If an |
1032 // ACK comes back and we are in TARGET_PENDING, we send the stored URL and | 1006 // ACK comes back and we are in TARGET_PENDING, we send the stored URL and |
1033 // revert to TARGET_INFLIGHT. | 1007 // revert to TARGET_INFLIGHT. |
1034 // | 1008 // |
1035 // We don't need a queue of URLs to send, as only the latest is useful. | 1009 // We don't need a queue of URLs to send, as only the latest is useful. |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1238 // use the Observer interface to filter IPC messages and receive frame change | 1212 // use the Observer interface to filter IPC messages and receive frame change |
1239 // notifications. | 1213 // notifications. |
1240 // --------------------------------------------------------------------------- | 1214 // --------------------------------------------------------------------------- |
1241 | 1215 |
1242 DISALLOW_COPY_AND_ASSIGN(RenderViewImpl); | 1216 DISALLOW_COPY_AND_ASSIGN(RenderViewImpl); |
1243 }; | 1217 }; |
1244 | 1218 |
1245 } // namespace content | 1219 } // namespace content |
1246 | 1220 |
1247 #endif // CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ | 1221 #endif // CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ |
OLD | NEW |