Index: net/url_request/url_request_http_job.cc |
=================================================================== |
--- net/url_request/url_request_http_job.cc (revision 65294) |
+++ net/url_request/url_request_http_job.cc (working copy) |
@@ -438,6 +438,21 @@ |
transaction_->StopCaching(); |
} |
+void URLRequestHttpJob::AddCookies(bool origin_cookies) { |
+ net::CookieOptions options; |
+ options.set_include_httponly(); |
+ options.set_read_origin(origin_cookies); |
+ |
+ std::string cookies = |
+ request_->context()->cookie_store()->GetCookiesWithOptions( |
+ request_->url(), options); |
+ if (cookies.empty()) |
+ return; |
+ const std::string& header_name = origin_cookies ? |
+ net::HttpRequestHeaders::kOriginCookie : net::HttpRequestHeaders::kCookie; |
+ request_info_.extra_headers.SetHeader(header_name, cookies); |
+} |
+ |
void URLRequestHttpJob::OnCanGetCookiesCompleted(int policy) { |
// If the request was destroyed, then there is no more work to do. |
if (request_ && request_->delegate()) { |
@@ -445,15 +460,8 @@ |
request_->delegate()->OnGetCookies(request_, true); |
} else if (policy == net::OK && request_->context()->cookie_store()) { |
request_->delegate()->OnGetCookies(request_, false); |
- net::CookieOptions options; |
- options.set_include_httponly(); |
- std::string cookies = |
- request_->context()->cookie_store()->GetCookiesWithOptions( |
- request_->url(), options); |
- if (!cookies.empty()) { |
- request_info_.extra_headers.SetHeader( |
- net::HttpRequestHeaders::kCookie, cookies); |
- } |
+ AddCookies(false); |
+ AddCookies(true); |
} |
// We may have been canceled within OnGetCookies. |
if (GetStatus().is_success()) { |