| Index: chrome/browser/renderer_host/render_view_host.cc
|
| ===================================================================
|
| --- chrome/browser/renderer_host/render_view_host.cc (revision 70223)
|
| +++ chrome/browser/renderer_host/render_view_host.cc (working copy)
|
| @@ -11,7 +11,6 @@
|
| #include "base/command_line.h"
|
| #include "base/i18n/rtl.h"
|
| #include "base/json/json_reader.h"
|
| -#include "base/metrics/stats_counters.h"
|
| #include "base/string_util.h"
|
| #include "base/time.h"
|
| #include "base/utf_string_conversions.h"
|
| @@ -81,25 +80,6 @@
|
|
|
| namespace {
|
|
|
| -void FilterURL(ChildProcessSecurityPolicy* policy, int renderer_id, GURL* url) {
|
| - if (!url->is_valid())
|
| - return; // We don't need to block invalid URLs.
|
| -
|
| - if (url->SchemeIs(chrome::kAboutScheme)) {
|
| - // The renderer treats all URLs in the about: scheme as being about:blank.
|
| - // Canonicalize about: URLs to about:blank.
|
| - *url = GURL(chrome::kAboutBlankURL);
|
| - }
|
| -
|
| - if (!policy->CanRequestURL(renderer_id, *url)) {
|
| - // If this renderer is not permitted to request this URL, we invalidate the
|
| - // URL. This prevents us from storing the blocked URL and becoming confused
|
| - // later.
|
| - VLOG(1) << "Blocked URL " << url->spec();
|
| - *url = GURL();
|
| - }
|
| -}
|
| -
|
| // Delay to wait on closing the tab for a beforeunload/unload handler to fire.
|
| const int kUnloadTimeoutMS = 1000;
|
|
|
| @@ -760,6 +740,9 @@
|
| }
|
| #endif
|
|
|
| + if (delegate_->OnMessageReceived(msg))
|
| + return true;
|
| +
|
| bool handled = true;
|
| bool msg_is_ok = true;
|
| IPC_BEGIN_MESSAGE_MAP_EX(RenderViewHost, msg, msg_is_ok)
|
| @@ -778,7 +761,7 @@
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_Thumbnail, OnMsgThumbnail)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_Snapshot, OnMsgScreenshot)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateInspectorSetting,
|
| - OnUpdateInspectorSetting);
|
| + OnUpdateInspectorSetting)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_Close, OnMsgClose)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_RequestMove, OnMsgRequestMove)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_DidStartLoading, OnMsgDidStartLoading)
|
| @@ -789,18 +772,6 @@
|
| OnMsgDocumentAvailableInMainFrame)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentOnLoadCompletedInMainFrame,
|
| OnMsgDocumentOnLoadCompletedInMainFrame)
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_DidLoadResourceFromMemoryCache,
|
| - OnMsgDidLoadResourceFromMemoryCache)
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_DidDisplayInsecureContent,
|
| - OnMsgDidDisplayInsecureContent)
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_DidRunInsecureContent,
|
| - OnMsgDidRunInsecureContent)
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_DidRedirectProvisionalLoad,
|
| - OnMsgDidRedirectProvisionalLoad)
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_DidStartProvisionalLoadForFrame,
|
| - OnMsgDidStartProvisionalLoadForFrame)
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_DidFailProvisionalLoadWithError,
|
| - OnMsgDidFailProvisionalLoadWithError)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_Find_Reply, OnMsgFindReply)
|
| IPC_MESSAGE_HANDLER(ViewMsg_ExecuteCodeFinished,
|
| OnExecuteCodeFinished)
|
| @@ -812,16 +783,10 @@
|
| OnMsgDidContentsPreferredSizeChange)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_DomOperationResponse,
|
| OnMsgDomOperationResponse)
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_DOMUISend,
|
| - OnMsgDOMUISend)
|
| + IPC_MESSAGE_HANDLER(ViewHostMsg_DOMUISend, OnMsgDOMUISend)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardMessageToExternalHost,
|
| OnMsgForwardMessageToExternalHost)
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentLoadedInFrame,
|
| - OnMsgDocumentLoadedInFrame)
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_DidFinishLoad,
|
| - OnMsgDidFinishLoad)
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_GoToEntryAtOffset,
|
| - OnMsgGoToEntryAtOffset)
|
| + IPC_MESSAGE_HANDLER(ViewHostMsg_GoToEntryAtOffset, OnMsgGoToEntryAtOffset)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_SetTooltipText, OnMsgSetTooltipText)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_RunFileChooser, OnMsgRunFileChooser)
|
| IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_RunJavaScriptMessage,
|
| @@ -844,34 +809,34 @@
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_DidPrintPage, DidPrintPage)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_AddMessageToConsole, OnAddMessageToConsole)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardToDevToolsAgent,
|
| - OnForwardToDevToolsAgent);
|
| + OnForwardToDevToolsAgent)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardToDevToolsClient,
|
| - OnForwardToDevToolsClient);
|
| + OnForwardToDevToolsClient)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_ActivateDevToolsWindow,
|
| - OnActivateDevToolsWindow);
|
| + OnActivateDevToolsWindow)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_CloseDevToolsWindow,
|
| - OnCloseDevToolsWindow);
|
| + OnCloseDevToolsWindow)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_RequestDockDevToolsWindow,
|
| - OnRequestDockDevToolsWindow);
|
| + OnRequestDockDevToolsWindow)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_RequestUndockDevToolsWindow,
|
| - OnRequestUndockDevToolsWindow);
|
| + OnRequestUndockDevToolsWindow)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_DevToolsRuntimePropertyChanged,
|
| - OnDevToolsRuntimePropertyChanged);
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_MissingPluginStatus, OnMissingPluginStatus);
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_CrashedPlugin, OnCrashedPlugin);
|
| + OnDevToolsRuntimePropertyChanged)
|
| + IPC_MESSAGE_HANDLER(ViewHostMsg_MissingPluginStatus, OnMissingPluginStatus)
|
| + IPC_MESSAGE_HANDLER(ViewHostMsg_CrashedPlugin, OnCrashedPlugin)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_BlockedOutdatedPlugin,
|
| - OnBlockedOutdatedPlugin);
|
| + OnBlockedOutdatedPlugin)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_SendCurrentPageAllSavableResourceLinks,
|
| - OnReceivedSavableResourceLinksForCurrentPage);
|
| + OnReceivedSavableResourceLinksForCurrentPage)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_SendSerializedHtmlData,
|
| - OnReceivedSerializedHtmlData);
|
| + OnReceivedSerializedHtmlData)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_DidGetApplicationInfo,
|
| - OnDidGetApplicationInfo);
|
| + OnDidGetApplicationInfo)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_InstallApplication,
|
| - OnInstallApplication);
|
| + OnInstallApplication)
|
| IPC_MESSAGE_FORWARD(ViewHostMsg_JSOutOfMemory, delegate_,
|
| - RenderViewHostDelegate::OnJSOutOfMemory);
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_ShouldClose_ACK, OnMsgShouldCloseACK);
|
| + RenderViewHostDelegate::OnJSOutOfMemory)
|
| + IPC_MESSAGE_HANDLER(ViewHostMsg_ShouldClose_ACK, OnMsgShouldCloseACK)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_QueryFormFieldAutoFill,
|
| OnQueryFormFieldAutoFill)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_DidShowAutoFillSuggestions,
|
| @@ -1155,17 +1120,6 @@
|
| Send(new ViewMsg_Move_ACK(routing_id()));
|
| }
|
|
|
| -void RenderViewHost::OnMsgDidRedirectProvisionalLoad(int32 page_id,
|
| - const GURL& source_url,
|
| - const GURL& target_url) {
|
| - RenderViewHostDelegate::Resource* resource_delegate =
|
| - delegate_->GetResourceDelegate();
|
| - if (resource_delegate) {
|
| - resource_delegate->DidRedirectProvisionalLoad(page_id,
|
| - source_url, target_url);
|
| - }
|
| -}
|
| -
|
| void RenderViewHost::OnMsgDidStartLoading() {
|
| delegate_->DidStartLoading();
|
| }
|
| @@ -1186,77 +1140,6 @@
|
| delegate_->DocumentOnLoadCompletedInMainFrame(this, page_id);
|
| }
|
|
|
| -void RenderViewHost::OnMsgDidLoadResourceFromMemoryCache(
|
| - const GURL& url,
|
| - const std::string& frame_origin,
|
| - const std::string& main_frame_origin,
|
| - const std::string& security_info) {
|
| - static base::StatsCounter cache("WebKit.CacheHit");
|
| - cache.Increment();
|
| -
|
| - RenderViewHostDelegate::Resource* resource_delegate =
|
| - delegate_->GetResourceDelegate();
|
| - if (resource_delegate) {
|
| - resource_delegate->DidLoadResourceFromMemoryCache(
|
| - url, frame_origin, main_frame_origin, security_info);
|
| - }
|
| -}
|
| -
|
| -void RenderViewHost::OnMsgDidDisplayInsecureContent() {
|
| - RenderViewHostDelegate::Resource* resource_delegate =
|
| - delegate_->GetResourceDelegate();
|
| - if (resource_delegate)
|
| - resource_delegate->DidDisplayInsecureContent();
|
| -}
|
| -
|
| -void RenderViewHost::OnMsgDidRunInsecureContent(
|
| - const std::string& security_origin) {
|
| - RenderViewHostDelegate::Resource* resource_delegate =
|
| - delegate_->GetResourceDelegate();
|
| - if (resource_delegate)
|
| - resource_delegate->DidRunInsecureContent(security_origin);
|
| -}
|
| -
|
| -void RenderViewHost::OnMsgDidStartProvisionalLoadForFrame(int64 frame_id,
|
| - bool is_main_frame,
|
| - const GURL& url) {
|
| - bool is_error_page = (url.spec() == chrome::kUnreachableWebDataURL);
|
| - GURL validated_url(url);
|
| - FilterURL(ChildProcessSecurityPolicy::GetInstance(),
|
| - process()->id(), &validated_url);
|
| -
|
| - RenderViewHostDelegate::Resource* resource_delegate =
|
| - delegate_->GetResourceDelegate();
|
| - if (resource_delegate) {
|
| - resource_delegate->DidStartProvisionalLoadForFrame(
|
| - this, frame_id, is_main_frame, is_error_page, validated_url);
|
| - }
|
| -}
|
| -
|
| -void RenderViewHost::OnMsgDidFailProvisionalLoadWithError(
|
| - int64 frame_id,
|
| - bool is_main_frame,
|
| - int error_code,
|
| - const GURL& url,
|
| - bool showing_repost_interstitial) {
|
| - VLOG(1) << "Failed Provisional Load: " << url.possibly_invalid_spec()
|
| - << ", error_code: " << error_code
|
| - << " is_main_frame: " << is_main_frame
|
| - << " showing_repost_interstitial: " << showing_repost_interstitial
|
| - << " frame_id: " << frame_id;
|
| - GURL validated_url(url);
|
| - FilterURL(ChildProcessSecurityPolicy::GetInstance(),
|
| - process()->id(), &validated_url);
|
| -
|
| - RenderViewHostDelegate::Resource* resource_delegate =
|
| - delegate_->GetResourceDelegate();
|
| - if (resource_delegate) {
|
| - resource_delegate->DidFailProvisionalLoadWithError(
|
| - this, frame_id, is_main_frame, error_code, validated_url,
|
| - showing_repost_interstitial);
|
| - }
|
| -}
|
| -
|
| void RenderViewHost::OnMsgFindReply(int request_id,
|
| int number_of_matches,
|
| const gfx::Rect& selection_rect,
|
| @@ -1396,20 +1279,6 @@
|
| delegate_->ProcessExternalHostMessage(message, origin, target);
|
| }
|
|
|
| -void RenderViewHost::OnMsgDocumentLoadedInFrame(int64 frame_id) {
|
| - RenderViewHostDelegate::Resource* resource_delegate =
|
| - delegate_->GetResourceDelegate();
|
| - if (resource_delegate)
|
| - resource_delegate->DocumentLoadedInFrame(frame_id);
|
| -}
|
| -
|
| -void RenderViewHost::OnMsgDidFinishLoad(int64 frame_id) {
|
| - RenderViewHostDelegate::Resource* resource_delegate =
|
| - delegate_->GetResourceDelegate();
|
| - if (resource_delegate)
|
| - resource_delegate->DidFinishLoad(frame_id);
|
| -}
|
| -
|
| void RenderViewHost::DisassociateFromPopupCount() {
|
| Send(new ViewMsg_DisassociateFromPopupCount(routing_id()));
|
| }
|
| @@ -2093,6 +1962,27 @@
|
| verbatim));
|
| }
|
|
|
| +void RenderViewHost::FilterURL(ChildProcessSecurityPolicy* policy,
|
| + int renderer_id,
|
| + GURL* url) {
|
| + if (!url->is_valid())
|
| + return; // We don't need to block invalid URLs.
|
| +
|
| + if (url->SchemeIs(chrome::kAboutScheme)) {
|
| + // The renderer treats all URLs in the about: scheme as being about:blank.
|
| + // Canonicalize about: URLs to about:blank.
|
| + *url = GURL(chrome::kAboutBlankURL);
|
| + }
|
| +
|
| + if (!policy->CanRequestURL(renderer_id, *url)) {
|
| + // If this renderer is not permitted to request this URL, we invalidate the
|
| + // URL. This prevents us from storing the blocked URL and becoming confused
|
| + // later.
|
| + VLOG(1) << "Blocked URL " << url->spec();
|
| + *url = GURL();
|
| + }
|
| +}
|
| +
|
| void RenderViewHost::OnExtensionPostMessage(
|
| int port_id, const std::string& message) {
|
| if (process()->profile()->GetExtensionMessageService()) {
|
|
|