Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index cfce1ee9392a594905860c1e3c5027f6c39cb55e..c00db3e1d8a9dd7da55b8fc4df4f4c4e92092344 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -2353,6 +2353,17 @@ void RenderFrameImpl::willSendRequest( |
if (request.url().isEmpty()) |
return; |
+ // Set the first party for cookies url if it has not been set yet (new |
+ // requests). For redirects, it is updated by WebURLLoaderImpl. |
+ if (request.firstPartyForCookies().isEmpty()) { |
+ if (request.targetType() == blink::WebURLRequest::TargetIsMainFrame) { |
+ request.setFirstPartyForCookies(request.url()); |
+ } else { |
+ request.setFirstPartyForCookies( |
+ frame->top()->document().firstPartyForCookies()); |
+ } |
+ } |
+ |
WebFrame* top_frame = frame->top(); |
if (!top_frame) |
top_frame = frame; |