| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 #include "chrome/browser/renderer_host/render_view_host.h" | 5 #include "chrome/browser/renderer_host/render_view_host.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/command_line.h" | 11 #include "base/command_line.h" |
| 12 #include "base/i18n/rtl.h" | 12 #include "base/i18n/rtl.h" |
| 13 #include "base/json/json_reader.h" | 13 #include "base/json/json_reader.h" |
| 14 #include "base/metrics/stats_counters.h" | |
| 15 #include "base/string_util.h" | 14 #include "base/string_util.h" |
| 16 #include "base/time.h" | 15 #include "base/time.h" |
| 17 #include "base/utf_string_conversions.h" | 16 #include "base/utf_string_conversions.h" |
| 18 #include "base/values.h" | 17 #include "base/values.h" |
| 19 #include "chrome/browser/browser_list.h" | 18 #include "chrome/browser/browser_list.h" |
| 20 #include "chrome/browser/browser_process.h" | 19 #include "chrome/browser/browser_process.h" |
| 21 #include "chrome/browser/browser_thread.h" | 20 #include "chrome/browser/browser_thread.h" |
| 22 #include "chrome/browser/child_process_security_policy.h" | 21 #include "chrome/browser/child_process_security_policy.h" |
| 23 #include "chrome/browser/cross_site_request_manager.h" | 22 #include "chrome/browser/cross_site_request_manager.h" |
| 24 #include "chrome/browser/debugger/devtools_manager.h" | 23 #include "chrome/browser/debugger/devtools_manager.h" |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 using WebKit::WebDragOperation; | 73 using WebKit::WebDragOperation; |
| 75 using WebKit::WebDragOperationNone; | 74 using WebKit::WebDragOperationNone; |
| 76 using WebKit::WebDragOperationsMask; | 75 using WebKit::WebDragOperationsMask; |
| 77 using WebKit::WebFindOptions; | 76 using WebKit::WebFindOptions; |
| 78 using WebKit::WebInputEvent; | 77 using WebKit::WebInputEvent; |
| 79 using WebKit::WebMediaPlayerAction; | 78 using WebKit::WebMediaPlayerAction; |
| 80 using WebKit::WebTextDirection; | 79 using WebKit::WebTextDirection; |
| 81 | 80 |
| 82 namespace { | 81 namespace { |
| 83 | 82 |
| 84 void FilterURL(ChildProcessSecurityPolicy* policy, int renderer_id, GURL* url) { | |
| 85 if (!url->is_valid()) | |
| 86 return; // We don't need to block invalid URLs. | |
| 87 | |
| 88 if (url->SchemeIs(chrome::kAboutScheme)) { | |
| 89 // The renderer treats all URLs in the about: scheme as being about:blank. | |
| 90 // Canonicalize about: URLs to about:blank. | |
| 91 *url = GURL(chrome::kAboutBlankURL); | |
| 92 } | |
| 93 | |
| 94 if (!policy->CanRequestURL(renderer_id, *url)) { | |
| 95 // If this renderer is not permitted to request this URL, we invalidate the | |
| 96 // URL. This prevents us from storing the blocked URL and becoming confused | |
| 97 // later. | |
| 98 VLOG(1) << "Blocked URL " << url->spec(); | |
| 99 *url = GURL(); | |
| 100 } | |
| 101 } | |
| 102 | |
| 103 // Delay to wait on closing the tab for a beforeunload/unload handler to fire. | 83 // Delay to wait on closing the tab for a beforeunload/unload handler to fire. |
| 104 const int kUnloadTimeoutMS = 1000; | 84 const int kUnloadTimeoutMS = 1000; |
| 105 | 85 |
| 106 } // namespace | 86 } // namespace |
| 107 | 87 |
| 108 /////////////////////////////////////////////////////////////////////////////// | 88 /////////////////////////////////////////////////////////////////////////////// |
| 109 // RenderViewHost, public: | 89 // RenderViewHost, public: |
| 110 | 90 |
| 111 // static | 91 // static |
| 112 RenderViewHost* RenderViewHost::FromID(int render_process_id, | 92 RenderViewHost* RenderViewHost::FromID(int render_process_id, |
| (...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 753 NOTREACHED() << "Can't send sync messages to UI thread without pumping " | 733 NOTREACHED() << "Can't send sync messages to UI thread without pumping " |
| 754 "messages in the renderer or else deadlocks can occur if the page " | 734 "messages in the renderer or else deadlocks can occur if the page " |
| 755 "has windowed plugins! (message type " << msg.type() << ")"; | 735 "has windowed plugins! (message type " << msg.type() << ")"; |
| 756 IPC::Message* reply = IPC::SyncMessage::GenerateReply(&msg); | 736 IPC::Message* reply = IPC::SyncMessage::GenerateReply(&msg); |
| 757 reply->set_reply_error(); | 737 reply->set_reply_error(); |
| 758 Send(reply); | 738 Send(reply); |
| 759 return true; | 739 return true; |
| 760 } | 740 } |
| 761 #endif | 741 #endif |
| 762 | 742 |
| 743 if (delegate_->OnMessageReceived(msg)) |
| 744 return true; |
| 745 |
| 763 bool handled = true; | 746 bool handled = true; |
| 764 bool msg_is_ok = true; | 747 bool msg_is_ok = true; |
| 765 IPC_BEGIN_MESSAGE_MAP_EX(RenderViewHost, msg, msg_is_ok) | 748 IPC_BEGIN_MESSAGE_MAP_EX(RenderViewHost, msg, msg_is_ok) |
| 766 IPC_MESSAGE_HANDLER(ViewHostMsg_ShowView, OnMsgShowView) | 749 IPC_MESSAGE_HANDLER(ViewHostMsg_ShowView, OnMsgShowView) |
| 767 IPC_MESSAGE_HANDLER(ViewHostMsg_ShowWidget, OnMsgShowWidget) | 750 IPC_MESSAGE_HANDLER(ViewHostMsg_ShowWidget, OnMsgShowWidget) |
| 768 IPC_MESSAGE_HANDLER(ViewHostMsg_ShowFullscreenWidget, | 751 IPC_MESSAGE_HANDLER(ViewHostMsg_ShowFullscreenWidget, |
| 769 OnMsgShowFullscreenWidget) | 752 OnMsgShowFullscreenWidget) |
| 770 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_RunModal, OnMsgRunModal) | 753 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_RunModal, OnMsgRunModal) |
| 771 IPC_MESSAGE_HANDLER(ViewHostMsg_RenderViewReady, OnMsgRenderViewReady) | 754 IPC_MESSAGE_HANDLER(ViewHostMsg_RenderViewReady, OnMsgRenderViewReady) |
| 772 IPC_MESSAGE_HANDLER(ViewHostMsg_RenderViewGone, OnMsgRenderViewGone) | 755 IPC_MESSAGE_HANDLER(ViewHostMsg_RenderViewGone, OnMsgRenderViewGone) |
| 773 IPC_MESSAGE_HANDLER_GENERIC(ViewHostMsg_FrameNavigate, OnMsgNavigate(msg)) | 756 IPC_MESSAGE_HANDLER_GENERIC(ViewHostMsg_FrameNavigate, OnMsgNavigate(msg)) |
| 774 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateState, OnMsgUpdateState) | 757 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateState, OnMsgUpdateState) |
| 775 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateTitle, OnMsgUpdateTitle) | 758 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateTitle, OnMsgUpdateTitle) |
| 776 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateEncoding, OnMsgUpdateEncoding) | 759 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateEncoding, OnMsgUpdateEncoding) |
| 777 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateTargetURL, OnMsgUpdateTargetURL) | 760 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateTargetURL, OnMsgUpdateTargetURL) |
| 778 IPC_MESSAGE_HANDLER(ViewHostMsg_Thumbnail, OnMsgThumbnail) | 761 IPC_MESSAGE_HANDLER(ViewHostMsg_Thumbnail, OnMsgThumbnail) |
| 779 IPC_MESSAGE_HANDLER(ViewHostMsg_Snapshot, OnMsgScreenshot) | 762 IPC_MESSAGE_HANDLER(ViewHostMsg_Snapshot, OnMsgScreenshot) |
| 780 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateInspectorSetting, | 763 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateInspectorSetting, |
| 781 OnUpdateInspectorSetting); | 764 OnUpdateInspectorSetting) |
| 782 IPC_MESSAGE_HANDLER(ViewHostMsg_Close, OnMsgClose) | 765 IPC_MESSAGE_HANDLER(ViewHostMsg_Close, OnMsgClose) |
| 783 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestMove, OnMsgRequestMove) | 766 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestMove, OnMsgRequestMove) |
| 784 IPC_MESSAGE_HANDLER(ViewHostMsg_DidStartLoading, OnMsgDidStartLoading) | 767 IPC_MESSAGE_HANDLER(ViewHostMsg_DidStartLoading, OnMsgDidStartLoading) |
| 785 IPC_MESSAGE_HANDLER(ViewHostMsg_DidStopLoading, OnMsgDidStopLoading) | 768 IPC_MESSAGE_HANDLER(ViewHostMsg_DidStopLoading, OnMsgDidStopLoading) |
| 786 IPC_MESSAGE_HANDLER(ViewHostMsg_DidChangeLoadProgress, | 769 IPC_MESSAGE_HANDLER(ViewHostMsg_DidChangeLoadProgress, |
| 787 OnMsgDidChangeLoadProgress) | 770 OnMsgDidChangeLoadProgress) |
| 788 IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentAvailableInMainFrame, | 771 IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentAvailableInMainFrame, |
| 789 OnMsgDocumentAvailableInMainFrame) | 772 OnMsgDocumentAvailableInMainFrame) |
| 790 IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentOnLoadCompletedInMainFrame, | 773 IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentOnLoadCompletedInMainFrame, |
| 791 OnMsgDocumentOnLoadCompletedInMainFrame) | 774 OnMsgDocumentOnLoadCompletedInMainFrame) |
| 792 IPC_MESSAGE_HANDLER(ViewHostMsg_DidLoadResourceFromMemoryCache, | |
| 793 OnMsgDidLoadResourceFromMemoryCache) | |
| 794 IPC_MESSAGE_HANDLER(ViewHostMsg_DidDisplayInsecureContent, | |
| 795 OnMsgDidDisplayInsecureContent) | |
| 796 IPC_MESSAGE_HANDLER(ViewHostMsg_DidRunInsecureContent, | |
| 797 OnMsgDidRunInsecureContent) | |
| 798 IPC_MESSAGE_HANDLER(ViewHostMsg_DidRedirectProvisionalLoad, | |
| 799 OnMsgDidRedirectProvisionalLoad) | |
| 800 IPC_MESSAGE_HANDLER(ViewHostMsg_DidStartProvisionalLoadForFrame, | |
| 801 OnMsgDidStartProvisionalLoadForFrame) | |
| 802 IPC_MESSAGE_HANDLER(ViewHostMsg_DidFailProvisionalLoadWithError, | |
| 803 OnMsgDidFailProvisionalLoadWithError) | |
| 804 IPC_MESSAGE_HANDLER(ViewHostMsg_Find_Reply, OnMsgFindReply) | 775 IPC_MESSAGE_HANDLER(ViewHostMsg_Find_Reply, OnMsgFindReply) |
| 805 IPC_MESSAGE_HANDLER(ViewMsg_ExecuteCodeFinished, | 776 IPC_MESSAGE_HANDLER(ViewMsg_ExecuteCodeFinished, |
| 806 OnExecuteCodeFinished) | 777 OnExecuteCodeFinished) |
| 807 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateFavIconURL, OnMsgUpdateFavIconURL) | 778 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateFavIconURL, OnMsgUpdateFavIconURL) |
| 808 IPC_MESSAGE_HANDLER(ViewHostMsg_DidDownloadFavIcon, OnMsgDidDownloadFavIcon) | 779 IPC_MESSAGE_HANDLER(ViewHostMsg_DidDownloadFavIcon, OnMsgDidDownloadFavIcon) |
| 809 IPC_MESSAGE_HANDLER(ViewHostMsg_ContextMenu, OnMsgContextMenu) | 780 IPC_MESSAGE_HANDLER(ViewHostMsg_ContextMenu, OnMsgContextMenu) |
| 810 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenURL, OnMsgOpenURL) | 781 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenURL, OnMsgOpenURL) |
| 811 IPC_MESSAGE_HANDLER(ViewHostMsg_DidContentsPreferredSizeChange, | 782 IPC_MESSAGE_HANDLER(ViewHostMsg_DidContentsPreferredSizeChange, |
| 812 OnMsgDidContentsPreferredSizeChange) | 783 OnMsgDidContentsPreferredSizeChange) |
| 813 IPC_MESSAGE_HANDLER(ViewHostMsg_DomOperationResponse, | 784 IPC_MESSAGE_HANDLER(ViewHostMsg_DomOperationResponse, |
| 814 OnMsgDomOperationResponse) | 785 OnMsgDomOperationResponse) |
| 815 IPC_MESSAGE_HANDLER(ViewHostMsg_DOMUISend, | 786 IPC_MESSAGE_HANDLER(ViewHostMsg_DOMUISend, OnMsgDOMUISend) |
| 816 OnMsgDOMUISend) | |
| 817 IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardMessageToExternalHost, | 787 IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardMessageToExternalHost, |
| 818 OnMsgForwardMessageToExternalHost) | 788 OnMsgForwardMessageToExternalHost) |
| 819 IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentLoadedInFrame, | 789 IPC_MESSAGE_HANDLER(ViewHostMsg_GoToEntryAtOffset, OnMsgGoToEntryAtOffset) |
| 820 OnMsgDocumentLoadedInFrame) | |
| 821 IPC_MESSAGE_HANDLER(ViewHostMsg_DidFinishLoad, | |
| 822 OnMsgDidFinishLoad) | |
| 823 IPC_MESSAGE_HANDLER(ViewHostMsg_GoToEntryAtOffset, | |
| 824 OnMsgGoToEntryAtOffset) | |
| 825 IPC_MESSAGE_HANDLER(ViewHostMsg_SetTooltipText, OnMsgSetTooltipText) | 790 IPC_MESSAGE_HANDLER(ViewHostMsg_SetTooltipText, OnMsgSetTooltipText) |
| 826 IPC_MESSAGE_HANDLER(ViewHostMsg_RunFileChooser, OnMsgRunFileChooser) | 791 IPC_MESSAGE_HANDLER(ViewHostMsg_RunFileChooser, OnMsgRunFileChooser) |
| 827 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_RunJavaScriptMessage, | 792 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_RunJavaScriptMessage, |
| 828 OnMsgRunJavaScriptMessage) | 793 OnMsgRunJavaScriptMessage) |
| 829 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_RunBeforeUnloadConfirm, | 794 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_RunBeforeUnloadConfirm, |
| 830 OnMsgRunBeforeUnloadConfirm) | 795 OnMsgRunBeforeUnloadConfirm) |
| 831 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_ShowModalHTMLDialog, | 796 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_ShowModalHTMLDialog, |
| 832 OnMsgShowModalHTMLDialog) | 797 OnMsgShowModalHTMLDialog) |
| 833 IPC_MESSAGE_HANDLER(ViewHostMsg_FormsSeen, OnMsgFormsSeen) | 798 IPC_MESSAGE_HANDLER(ViewHostMsg_FormsSeen, OnMsgFormsSeen) |
| 834 IPC_MESSAGE_HANDLER(ViewHostMsg_PasswordFormsFound, OnMsgPasswordFormsFound) | 799 IPC_MESSAGE_HANDLER(ViewHostMsg_PasswordFormsFound, OnMsgPasswordFormsFound) |
| 835 IPC_MESSAGE_HANDLER(ViewHostMsg_PasswordFormsVisible, | 800 IPC_MESSAGE_HANDLER(ViewHostMsg_PasswordFormsVisible, |
| 836 OnMsgPasswordFormsVisible) | 801 OnMsgPasswordFormsVisible) |
| 837 IPC_MESSAGE_HANDLER(ViewHostMsg_FormSubmitted, OnMsgFormSubmitted) | 802 IPC_MESSAGE_HANDLER(ViewHostMsg_FormSubmitted, OnMsgFormSubmitted) |
| 838 IPC_MESSAGE_HANDLER(ViewHostMsg_StartDragging, OnMsgStartDragging) | 803 IPC_MESSAGE_HANDLER(ViewHostMsg_StartDragging, OnMsgStartDragging) |
| 839 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateDragCursor, OnUpdateDragCursor) | 804 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateDragCursor, OnUpdateDragCursor) |
| 840 IPC_MESSAGE_HANDLER(ViewHostMsg_TakeFocus, OnTakeFocus) | 805 IPC_MESSAGE_HANDLER(ViewHostMsg_TakeFocus, OnTakeFocus) |
| 841 IPC_MESSAGE_HANDLER(ViewHostMsg_PageHasOSDD, OnMsgPageHasOSDD) | 806 IPC_MESSAGE_HANDLER(ViewHostMsg_PageHasOSDD, OnMsgPageHasOSDD) |
| 842 IPC_MESSAGE_HANDLER(ViewHostMsg_DidGetPrintedPagesCount, | 807 IPC_MESSAGE_HANDLER(ViewHostMsg_DidGetPrintedPagesCount, |
| 843 OnDidGetPrintedPagesCount) | 808 OnDidGetPrintedPagesCount) |
| 844 IPC_MESSAGE_HANDLER(ViewHostMsg_DidPrintPage, DidPrintPage) | 809 IPC_MESSAGE_HANDLER(ViewHostMsg_DidPrintPage, DidPrintPage) |
| 845 IPC_MESSAGE_HANDLER(ViewHostMsg_AddMessageToConsole, OnAddMessageToConsole) | 810 IPC_MESSAGE_HANDLER(ViewHostMsg_AddMessageToConsole, OnAddMessageToConsole) |
| 846 IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardToDevToolsAgent, | 811 IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardToDevToolsAgent, |
| 847 OnForwardToDevToolsAgent); | 812 OnForwardToDevToolsAgent) |
| 848 IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardToDevToolsClient, | 813 IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardToDevToolsClient, |
| 849 OnForwardToDevToolsClient); | 814 OnForwardToDevToolsClient) |
| 850 IPC_MESSAGE_HANDLER(ViewHostMsg_ActivateDevToolsWindow, | 815 IPC_MESSAGE_HANDLER(ViewHostMsg_ActivateDevToolsWindow, |
| 851 OnActivateDevToolsWindow); | 816 OnActivateDevToolsWindow) |
| 852 IPC_MESSAGE_HANDLER(ViewHostMsg_CloseDevToolsWindow, | 817 IPC_MESSAGE_HANDLER(ViewHostMsg_CloseDevToolsWindow, |
| 853 OnCloseDevToolsWindow); | 818 OnCloseDevToolsWindow) |
| 854 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestDockDevToolsWindow, | 819 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestDockDevToolsWindow, |
| 855 OnRequestDockDevToolsWindow); | 820 OnRequestDockDevToolsWindow) |
| 856 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestUndockDevToolsWindow, | 821 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestUndockDevToolsWindow, |
| 857 OnRequestUndockDevToolsWindow); | 822 OnRequestUndockDevToolsWindow) |
| 858 IPC_MESSAGE_HANDLER(ViewHostMsg_DevToolsRuntimePropertyChanged, | 823 IPC_MESSAGE_HANDLER(ViewHostMsg_DevToolsRuntimePropertyChanged, |
| 859 OnDevToolsRuntimePropertyChanged); | 824 OnDevToolsRuntimePropertyChanged) |
| 860 IPC_MESSAGE_HANDLER(ViewHostMsg_MissingPluginStatus, OnMissingPluginStatus); | 825 IPC_MESSAGE_HANDLER(ViewHostMsg_MissingPluginStatus, OnMissingPluginStatus) |
| 861 IPC_MESSAGE_HANDLER(ViewHostMsg_CrashedPlugin, OnCrashedPlugin); | 826 IPC_MESSAGE_HANDLER(ViewHostMsg_CrashedPlugin, OnCrashedPlugin) |
| 862 IPC_MESSAGE_HANDLER(ViewHostMsg_BlockedOutdatedPlugin, | 827 IPC_MESSAGE_HANDLER(ViewHostMsg_BlockedOutdatedPlugin, |
| 863 OnBlockedOutdatedPlugin); | 828 OnBlockedOutdatedPlugin) |
| 864 IPC_MESSAGE_HANDLER(ViewHostMsg_SendCurrentPageAllSavableResourceLinks, | 829 IPC_MESSAGE_HANDLER(ViewHostMsg_SendCurrentPageAllSavableResourceLinks, |
| 865 OnReceivedSavableResourceLinksForCurrentPage); | 830 OnReceivedSavableResourceLinksForCurrentPage) |
| 866 IPC_MESSAGE_HANDLER(ViewHostMsg_SendSerializedHtmlData, | 831 IPC_MESSAGE_HANDLER(ViewHostMsg_SendSerializedHtmlData, |
| 867 OnReceivedSerializedHtmlData); | 832 OnReceivedSerializedHtmlData) |
| 868 IPC_MESSAGE_HANDLER(ViewHostMsg_DidGetApplicationInfo, | 833 IPC_MESSAGE_HANDLER(ViewHostMsg_DidGetApplicationInfo, |
| 869 OnDidGetApplicationInfo); | 834 OnDidGetApplicationInfo) |
| 870 IPC_MESSAGE_HANDLER(ViewHostMsg_InstallApplication, | 835 IPC_MESSAGE_HANDLER(ViewHostMsg_InstallApplication, |
| 871 OnInstallApplication); | 836 OnInstallApplication) |
| 872 IPC_MESSAGE_FORWARD(ViewHostMsg_JSOutOfMemory, delegate_, | 837 IPC_MESSAGE_FORWARD(ViewHostMsg_JSOutOfMemory, delegate_, |
| 873 RenderViewHostDelegate::OnJSOutOfMemory); | 838 RenderViewHostDelegate::OnJSOutOfMemory) |
| 874 IPC_MESSAGE_HANDLER(ViewHostMsg_ShouldClose_ACK, OnMsgShouldCloseACK); | 839 IPC_MESSAGE_HANDLER(ViewHostMsg_ShouldClose_ACK, OnMsgShouldCloseACK) |
| 875 IPC_MESSAGE_HANDLER(ViewHostMsg_QueryFormFieldAutoFill, | 840 IPC_MESSAGE_HANDLER(ViewHostMsg_QueryFormFieldAutoFill, |
| 876 OnQueryFormFieldAutoFill) | 841 OnQueryFormFieldAutoFill) |
| 877 IPC_MESSAGE_HANDLER(ViewHostMsg_DidShowAutoFillSuggestions, | 842 IPC_MESSAGE_HANDLER(ViewHostMsg_DidShowAutoFillSuggestions, |
| 878 OnDidShowAutoFillSuggestions) | 843 OnDidShowAutoFillSuggestions) |
| 879 IPC_MESSAGE_HANDLER(ViewHostMsg_RemoveAutocompleteEntry, | 844 IPC_MESSAGE_HANDLER(ViewHostMsg_RemoveAutocompleteEntry, |
| 880 OnRemoveAutocompleteEntry) | 845 OnRemoveAutocompleteEntry) |
| 881 IPC_MESSAGE_HANDLER(ViewHostMsg_ShowAutoFillDialog, | 846 IPC_MESSAGE_HANDLER(ViewHostMsg_ShowAutoFillDialog, |
| 882 OnShowAutoFillDialog) | 847 OnShowAutoFillDialog) |
| 883 IPC_MESSAGE_HANDLER(ViewHostMsg_FillAutoFillFormData, | 848 IPC_MESSAGE_HANDLER(ViewHostMsg_FillAutoFillFormData, |
| 884 OnFillAutoFillFormData) | 849 OnFillAutoFillFormData) |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1148 // If the renderer is telling us to close, it has already run the unload | 1113 // If the renderer is telling us to close, it has already run the unload |
| 1149 // events, and we can take the fast path. | 1114 // events, and we can take the fast path. |
| 1150 ClosePageIgnoringUnloadEvents(); | 1115 ClosePageIgnoringUnloadEvents(); |
| 1151 } | 1116 } |
| 1152 | 1117 |
| 1153 void RenderViewHost::OnMsgRequestMove(const gfx::Rect& pos) { | 1118 void RenderViewHost::OnMsgRequestMove(const gfx::Rect& pos) { |
| 1154 delegate_->RequestMove(pos); | 1119 delegate_->RequestMove(pos); |
| 1155 Send(new ViewMsg_Move_ACK(routing_id())); | 1120 Send(new ViewMsg_Move_ACK(routing_id())); |
| 1156 } | 1121 } |
| 1157 | 1122 |
| 1158 void RenderViewHost::OnMsgDidRedirectProvisionalLoad(int32 page_id, | |
| 1159 const GURL& source_url, | |
| 1160 const GURL& target_url) { | |
| 1161 RenderViewHostDelegate::Resource* resource_delegate = | |
| 1162 delegate_->GetResourceDelegate(); | |
| 1163 if (resource_delegate) { | |
| 1164 resource_delegate->DidRedirectProvisionalLoad(page_id, | |
| 1165 source_url, target_url); | |
| 1166 } | |
| 1167 } | |
| 1168 | |
| 1169 void RenderViewHost::OnMsgDidStartLoading() { | 1123 void RenderViewHost::OnMsgDidStartLoading() { |
| 1170 delegate_->DidStartLoading(); | 1124 delegate_->DidStartLoading(); |
| 1171 } | 1125 } |
| 1172 | 1126 |
| 1173 void RenderViewHost::OnMsgDidStopLoading() { | 1127 void RenderViewHost::OnMsgDidStopLoading() { |
| 1174 delegate_->DidStopLoading(); | 1128 delegate_->DidStopLoading(); |
| 1175 } | 1129 } |
| 1176 | 1130 |
| 1177 void RenderViewHost::OnMsgDidChangeLoadProgress(double load_progress) { | 1131 void RenderViewHost::OnMsgDidChangeLoadProgress(double load_progress) { |
| 1178 delegate_->DidChangeLoadProgress(load_progress); | 1132 delegate_->DidChangeLoadProgress(load_progress); |
| 1179 } | 1133 } |
| 1180 | 1134 |
| 1181 void RenderViewHost::OnMsgDocumentAvailableInMainFrame() { | 1135 void RenderViewHost::OnMsgDocumentAvailableInMainFrame() { |
| 1182 delegate_->DocumentAvailableInMainFrame(this); | 1136 delegate_->DocumentAvailableInMainFrame(this); |
| 1183 } | 1137 } |
| 1184 | 1138 |
| 1185 void RenderViewHost::OnMsgDocumentOnLoadCompletedInMainFrame(int32 page_id) { | 1139 void RenderViewHost::OnMsgDocumentOnLoadCompletedInMainFrame(int32 page_id) { |
| 1186 delegate_->DocumentOnLoadCompletedInMainFrame(this, page_id); | 1140 delegate_->DocumentOnLoadCompletedInMainFrame(this, page_id); |
| 1187 } | 1141 } |
| 1188 | 1142 |
| 1189 void RenderViewHost::OnMsgDidLoadResourceFromMemoryCache( | |
| 1190 const GURL& url, | |
| 1191 const std::string& frame_origin, | |
| 1192 const std::string& main_frame_origin, | |
| 1193 const std::string& security_info) { | |
| 1194 static base::StatsCounter cache("WebKit.CacheHit"); | |
| 1195 cache.Increment(); | |
| 1196 | |
| 1197 RenderViewHostDelegate::Resource* resource_delegate = | |
| 1198 delegate_->GetResourceDelegate(); | |
| 1199 if (resource_delegate) { | |
| 1200 resource_delegate->DidLoadResourceFromMemoryCache( | |
| 1201 url, frame_origin, main_frame_origin, security_info); | |
| 1202 } | |
| 1203 } | |
| 1204 | |
| 1205 void RenderViewHost::OnMsgDidDisplayInsecureContent() { | |
| 1206 RenderViewHostDelegate::Resource* resource_delegate = | |
| 1207 delegate_->GetResourceDelegate(); | |
| 1208 if (resource_delegate) | |
| 1209 resource_delegate->DidDisplayInsecureContent(); | |
| 1210 } | |
| 1211 | |
| 1212 void RenderViewHost::OnMsgDidRunInsecureContent( | |
| 1213 const std::string& security_origin) { | |
| 1214 RenderViewHostDelegate::Resource* resource_delegate = | |
| 1215 delegate_->GetResourceDelegate(); | |
| 1216 if (resource_delegate) | |
| 1217 resource_delegate->DidRunInsecureContent(security_origin); | |
| 1218 } | |
| 1219 | |
| 1220 void RenderViewHost::OnMsgDidStartProvisionalLoadForFrame(int64 frame_id, | |
| 1221 bool is_main_frame, | |
| 1222 const GURL& url) { | |
| 1223 bool is_error_page = (url.spec() == chrome::kUnreachableWebDataURL); | |
| 1224 GURL validated_url(url); | |
| 1225 FilterURL(ChildProcessSecurityPolicy::GetInstance(), | |
| 1226 process()->id(), &validated_url); | |
| 1227 | |
| 1228 RenderViewHostDelegate::Resource* resource_delegate = | |
| 1229 delegate_->GetResourceDelegate(); | |
| 1230 if (resource_delegate) { | |
| 1231 resource_delegate->DidStartProvisionalLoadForFrame( | |
| 1232 this, frame_id, is_main_frame, is_error_page, validated_url); | |
| 1233 } | |
| 1234 } | |
| 1235 | |
| 1236 void RenderViewHost::OnMsgDidFailProvisionalLoadWithError( | |
| 1237 int64 frame_id, | |
| 1238 bool is_main_frame, | |
| 1239 int error_code, | |
| 1240 const GURL& url, | |
| 1241 bool showing_repost_interstitial) { | |
| 1242 VLOG(1) << "Failed Provisional Load: " << url.possibly_invalid_spec() | |
| 1243 << ", error_code: " << error_code | |
| 1244 << " is_main_frame: " << is_main_frame | |
| 1245 << " showing_repost_interstitial: " << showing_repost_interstitial | |
| 1246 << " frame_id: " << frame_id; | |
| 1247 GURL validated_url(url); | |
| 1248 FilterURL(ChildProcessSecurityPolicy::GetInstance(), | |
| 1249 process()->id(), &validated_url); | |
| 1250 | |
| 1251 RenderViewHostDelegate::Resource* resource_delegate = | |
| 1252 delegate_->GetResourceDelegate(); | |
| 1253 if (resource_delegate) { | |
| 1254 resource_delegate->DidFailProvisionalLoadWithError( | |
| 1255 this, frame_id, is_main_frame, error_code, validated_url, | |
| 1256 showing_repost_interstitial); | |
| 1257 } | |
| 1258 } | |
| 1259 | |
| 1260 void RenderViewHost::OnMsgFindReply(int request_id, | 1143 void RenderViewHost::OnMsgFindReply(int request_id, |
| 1261 int number_of_matches, | 1144 int number_of_matches, |
| 1262 const gfx::Rect& selection_rect, | 1145 const gfx::Rect& selection_rect, |
| 1263 int active_match_ordinal, | 1146 int active_match_ordinal, |
| 1264 bool final_update) { | 1147 bool final_update) { |
| 1265 RenderViewHostDelegate::BrowserIntegration* integration_delegate = | 1148 RenderViewHostDelegate::BrowserIntegration* integration_delegate = |
| 1266 delegate_->GetBrowserIntegrationDelegate(); | 1149 delegate_->GetBrowserIntegrationDelegate(); |
| 1267 if (integration_delegate) { | 1150 if (integration_delegate) { |
| 1268 integration_delegate->OnFindReply(request_id, number_of_matches, | 1151 integration_delegate->OnFindReply(request_id, number_of_matches, |
| 1269 selection_rect, | 1152 selection_rect, |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1389 params.user_gesture = false; | 1272 params.user_gesture = false; |
| 1390 delegate_->ProcessDOMUIMessage(params); | 1273 delegate_->ProcessDOMUIMessage(params); |
| 1391 } | 1274 } |
| 1392 | 1275 |
| 1393 void RenderViewHost::OnMsgForwardMessageToExternalHost( | 1276 void RenderViewHost::OnMsgForwardMessageToExternalHost( |
| 1394 const std::string& message, const std::string& origin, | 1277 const std::string& message, const std::string& origin, |
| 1395 const std::string& target) { | 1278 const std::string& target) { |
| 1396 delegate_->ProcessExternalHostMessage(message, origin, target); | 1279 delegate_->ProcessExternalHostMessage(message, origin, target); |
| 1397 } | 1280 } |
| 1398 | 1281 |
| 1399 void RenderViewHost::OnMsgDocumentLoadedInFrame(int64 frame_id) { | |
| 1400 RenderViewHostDelegate::Resource* resource_delegate = | |
| 1401 delegate_->GetResourceDelegate(); | |
| 1402 if (resource_delegate) | |
| 1403 resource_delegate->DocumentLoadedInFrame(frame_id); | |
| 1404 } | |
| 1405 | |
| 1406 void RenderViewHost::OnMsgDidFinishLoad(int64 frame_id) { | |
| 1407 RenderViewHostDelegate::Resource* resource_delegate = | |
| 1408 delegate_->GetResourceDelegate(); | |
| 1409 if (resource_delegate) | |
| 1410 resource_delegate->DidFinishLoad(frame_id); | |
| 1411 } | |
| 1412 | |
| 1413 void RenderViewHost::DisassociateFromPopupCount() { | 1282 void RenderViewHost::DisassociateFromPopupCount() { |
| 1414 Send(new ViewMsg_DisassociateFromPopupCount(routing_id())); | 1283 Send(new ViewMsg_DisassociateFromPopupCount(routing_id())); |
| 1415 } | 1284 } |
| 1416 | 1285 |
| 1417 void RenderViewHost::AllowScriptToClose(bool script_can_close) { | 1286 void RenderViewHost::AllowScriptToClose(bool script_can_close) { |
| 1418 Send(new ViewMsg_AllowScriptToClose(routing_id(), script_can_close)); | 1287 Send(new ViewMsg_AllowScriptToClose(routing_id(), script_can_close)); |
| 1419 } | 1288 } |
| 1420 | 1289 |
| 1421 void RenderViewHost::OnMsgGoToEntryAtOffset(int offset) { | 1290 void RenderViewHost::OnMsgGoToEntryAtOffset(int offset) { |
| 1422 RenderViewHostDelegate::BrowserIntegration* integration_delegate = | 1291 RenderViewHostDelegate::BrowserIntegration* integration_delegate = |
| (...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2086 void RenderViewHost::SearchBoxResize(const gfx::Rect& search_box_bounds) { | 1955 void RenderViewHost::SearchBoxResize(const gfx::Rect& search_box_bounds) { |
| 2087 Send(new ViewMsg_SearchBoxResize(routing_id(), search_box_bounds)); | 1956 Send(new ViewMsg_SearchBoxResize(routing_id(), search_box_bounds)); |
| 2088 } | 1957 } |
| 2089 | 1958 |
| 2090 void RenderViewHost::DetermineIfPageSupportsInstant(const string16& value, | 1959 void RenderViewHost::DetermineIfPageSupportsInstant(const string16& value, |
| 2091 bool verbatim) { | 1960 bool verbatim) { |
| 2092 Send(new ViewMsg_DetermineIfPageSupportsInstant(routing_id(), value, | 1961 Send(new ViewMsg_DetermineIfPageSupportsInstant(routing_id(), value, |
| 2093 verbatim)); | 1962 verbatim)); |
| 2094 } | 1963 } |
| 2095 | 1964 |
| 1965 void RenderViewHost::FilterURL(ChildProcessSecurityPolicy* policy, |
| 1966 int renderer_id, |
| 1967 GURL* url) { |
| 1968 if (!url->is_valid()) |
| 1969 return; // We don't need to block invalid URLs. |
| 1970 |
| 1971 if (url->SchemeIs(chrome::kAboutScheme)) { |
| 1972 // The renderer treats all URLs in the about: scheme as being about:blank. |
| 1973 // Canonicalize about: URLs to about:blank. |
| 1974 *url = GURL(chrome::kAboutBlankURL); |
| 1975 } |
| 1976 |
| 1977 if (!policy->CanRequestURL(renderer_id, *url)) { |
| 1978 // If this renderer is not permitted to request this URL, we invalidate the |
| 1979 // URL. This prevents us from storing the blocked URL and becoming confused |
| 1980 // later. |
| 1981 VLOG(1) << "Blocked URL " << url->spec(); |
| 1982 *url = GURL(); |
| 1983 } |
| 1984 } |
| 1985 |
| 2096 void RenderViewHost::OnExtensionPostMessage( | 1986 void RenderViewHost::OnExtensionPostMessage( |
| 2097 int port_id, const std::string& message) { | 1987 int port_id, const std::string& message) { |
| 2098 if (process()->profile()->GetExtensionMessageService()) { | 1988 if (process()->profile()->GetExtensionMessageService()) { |
| 2099 process()->profile()->GetExtensionMessageService()-> | 1989 process()->profile()->GetExtensionMessageService()-> |
| 2100 PostMessageFromRenderer(port_id, message); | 1990 PostMessageFromRenderer(port_id, message); |
| 2101 } | 1991 } |
| 2102 } | 1992 } |
| 2103 | 1993 |
| 2104 void RenderViewHost::OnAccessibilityNotifications( | 1994 void RenderViewHost::OnAccessibilityNotifications( |
| 2105 const std::vector<ViewHostMsg_AccessibilityNotification_Params>& params) { | 1995 const std::vector<ViewHostMsg_AccessibilityNotification_Params>& params) { |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2290 if (printer_query.get()) { | 2180 if (printer_query.get()) { |
| 2291 BrowserThread::PostTask( | 2181 BrowserThread::PostTask( |
| 2292 BrowserThread::IO, FROM_HERE, | 2182 BrowserThread::IO, FROM_HERE, |
| 2293 NewRunnableMethod(printer_query.get(), | 2183 NewRunnableMethod(printer_query.get(), |
| 2294 &printing::PrinterQuery::StopWorker)); | 2184 &printing::PrinterQuery::StopWorker)); |
| 2295 } | 2185 } |
| 2296 | 2186 |
| 2297 // Send the printingDone msg for now. | 2187 // Send the printingDone msg for now. |
| 2298 Send(new ViewMsg_PrintingDone(routing_id(), params.document_cookie, true)); | 2188 Send(new ViewMsg_PrintingDone(routing_id(), params.document_cookie, true)); |
| 2299 } | 2189 } |
| OLD | NEW |