Chromium Code Reviews| Index: content/renderer/render_frame_impl.cc |
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
| index c90f88800f0f40bc6375f9588afe50958b8ee36e..fd5dbe8be84fe6901714ee51c1f3214104308938 100644 |
| --- a/content/renderer/render_frame_impl.cc |
| +++ b/content/renderer/render_frame_impl.cc |
| @@ -46,6 +46,7 @@ |
| #include "third_party/WebKit/public/web/WebStorageQuotaCallbacks.h" |
| #include "third_party/WebKit/public/web/WebUserGestureIndicator.h" |
| #include "third_party/WebKit/public/web/WebView.h" |
| +#include "webkit/child/site_isolation_policy.h" |
| #include "webkit/child/weburlresponse_extradata_impl.h" |
| using WebKit::WebDataSource; |
| @@ -71,6 +72,7 @@ using appcache::WebApplicationCacheHostImpl; |
| using base::Time; |
| using base::TimeDelta; |
| +using webkit_glue::SiteIsolationPolicy; |
| using webkit_glue::WebURLResponseExtraDataImpl; |
| namespace content { |
| @@ -377,6 +379,8 @@ void RenderFrameImpl::didFailProvisionalLoad( |
| // * MaybeLoadAlternateErrorPage |
| // * LoadNavigationErrorPage |
| render_view_->didFailProvisionalLoad(frame, error); |
| + |
| + SiteIsolationPolicy::DidFinishResourceLoadForUrl(error.unreachableURL); |
| } |
| void RenderFrameImpl::didCommitProvisionalLoad(WebKit::WebFrame* frame, |
| @@ -446,6 +450,8 @@ void RenderFrameImpl::didFailLoad(WebKit::WebFrame* frame, |
| const WebKit::WebURLError& error) { |
| // TODO(nasko): Move implementation here. No state needed. |
| render_view_->didFailLoad(frame, error); |
| + |
| + SiteIsolationPolicy::DidFinishResourceLoadForUrl(error.unreachableURL); |
| } |
| void RenderFrameImpl::didFinishLoad(WebKit::WebFrame* frame) { |
| @@ -603,12 +609,22 @@ void RenderFrameImpl::willSendRequest( |
| if (!render_view_->renderer_preferences_.enable_referrers) |
| request.clearHTTPHeaderField("Referer"); |
| + |
| + SiteIsolationPolicy::WillSendRequest(identifier, request.targetType()); |
| } |
| void RenderFrameImpl::didReceiveResponse( |
| WebKit::WebFrame* frame, |
| unsigned identifier, |
| const WebKit::WebURLResponse& response) { |
| + |
| + // Calling this will do bookkeeping of an object related to the |
|
Charlie Reis
2013/08/09 00:39:03
will update bookkeeping related to the response fo
dsjang
2013/08/09 01:31:23
Done.
|
| + // response for late uses. We have to make it sure to call either |
|
Charlie Reis
2013/08/09 00:39:03
make sure
dsjang
2013/08/09 01:31:23
Done.
|
| + // SiteIsolationPolicy::DidFinishResourceLoad(identifier) or |
| + // SiteIsolationPolicy::DidFinishResourceLoadForURL(response.url()) |
| + // to free the object. |
|
Charlie Reis
2013/08/09 00:39:03
free the bookkeeping data.
I think this whole com
dsjang
2013/08/09 01:31:23
Done.
|
| + SiteIsolationPolicy::DidReceiveResponse(frame, identifier, response); |
| + |
| // Only do this for responses that correspond to a provisional data source |
| // of the top-most frame. If we have a provisional data source, then we |
| // can't have any sub-resources yet, so we know that this response must |
| @@ -658,6 +674,8 @@ void RenderFrameImpl::didFinishResourceLoad(WebKit::WebFrame* frame, |
| // Needed methods: |
| // * LoadNavigationErrorPage |
| render_view_->didFinishResourceLoad(frame, identifier); |
| + |
| + SiteIsolationPolicy::DidFinishResourceLoad(identifier); |
| } |
| void RenderFrameImpl::didLoadResourceFromMemoryCache( |