| 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 b76a165fd9077689a1cc15ed9c035d3a99c775bc..6e0e191f3adc58b0e5fd38ce40f7056d1b6e3f3d 100644
|
| --- a/content/browser/web_contents/web_contents_impl.cc
|
| +++ b/content/browser/web_contents/web_contents_impl.cc
|
| @@ -509,6 +509,7 @@ bool WebContentsImpl::OnMessageReceived(RenderViewHost* render_view_host,
|
| IPC_MESSAGE_HANDLER(FrameHostMsg_PluginCrashed, OnPluginCrashed)
|
| IPC_MESSAGE_HANDLER(FrameHostMsg_DomOperationResponse,
|
| OnDomOperationResponse)
|
| + IPC_MESSAGE_HANDLER(FrameHostMsg_DidDetectXSS, OnDidDetectXSS)
|
| IPC_MESSAGE_HANDLER(FrameHostMsg_DidFinishDocumentLoad,
|
| OnDocumentLoadedInFrame)
|
| IPC_MESSAGE_HANDLER(FrameHostMsg_DidFinishLoad, OnDidFinishLoad)
|
| @@ -2574,6 +2575,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_);
|
|
|