Index: content/browser/web_contents/web_contents_impl.cc |
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
index 918e90defe8aa4ff2b2f62678c4ba7a76bc7055b..689fb7adb2e6dc2922a27ce20cbf340eac4ce52c 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -508,6 +508,7 @@ bool WebContentsImpl::OnMessageReceived(RenderViewHost* render_view_host, |
OnDomOperationResponse) |
IPC_MESSAGE_HANDLER(FrameHostMsg_DidChangeThemeColor, |
OnThemeColorChanged) |
+ IPC_MESSAGE_HANDLER(FrameHostMsg_DidDetectXSS, OnDidDetectXSS) |
IPC_MESSAGE_HANDLER(FrameHostMsg_DidFinishDocumentLoad, |
OnDocumentLoadedInFrame) |
IPC_MESSAGE_HANDLER(FrameHostMsg_DidFinishLoad, OnDidFinishLoad) |
@@ -2576,6 +2577,26 @@ void WebContentsImpl::OnDidRunInsecureContent( |
GetController().GetBrowserContext()); |
} |
+ |
+void WebContentsImpl::OnDidDetectXSS(int32 page_id, |
+ const GURL& url, |
+ bool blocked_entire_page) { |
+ if (!blocked_entire_page) |
+ return; |
+ |
+ int entry_index = controller_.GetEntryIndexWithPageID( |
+ GetRenderViewHost()->GetSiteInstance(), page_id); |
+ if (entry_index < 0) |
+ return; |
+ |
+ NavigationEntryImpl* entry = NavigationEntryImpl::FromNavigationEntry( |
+ controller_.GetEntryAtIndex(entry_index)); |
+ if (!entry) |
+ return; |
+ |
+ entry->set_xss_detected(true); |
+} |
+ |
void WebContentsImpl::OnDocumentLoadedInFrame() { |
CHECK(render_frame_message_source_); |
CHECK(!render_view_message_source_); |