| Index: net/url_request/url_fetcher_core.cc
|
| diff --git a/net/url_request/url_fetcher_core.cc b/net/url_request/url_fetcher_core.cc
|
| index 2337cb5b4256703b7d7a6abf489151561e6da8ed..e5ae45dc258f04c7045a34c0be2f49db810d6490 100644
|
| --- a/net/url_request/url_fetcher_core.cc
|
| +++ b/net/url_request/url_fetcher_core.cc
|
| @@ -31,6 +31,7 @@
|
| #include "net/url_request/url_request_context.h"
|
| #include "net/url_request/url_request_context_getter.h"
|
| #include "net/url_request/url_request_throttler_manager.h"
|
| +#include "url/origin.h"
|
|
|
| namespace {
|
|
|
| @@ -246,8 +247,9 @@ void URLFetcherCore::SetRequestContext(
|
| request_context_getter_ = request_context_getter;
|
| }
|
|
|
| -void URLFetcherCore::SetInitiatorURL(const GURL& initiator) {
|
| - DCHECK(initiator_.is_empty());
|
| +void URLFetcherCore::SetInitiator(
|
| + const base::Optional<url::Origin>& initiator) {
|
| + DCHECK(!initiator_.has_value());
|
| initiator_ = initiator;
|
| }
|
|
|
| @@ -559,10 +561,11 @@ void URLFetcherCore::StartURLRequest() {
|
| request_->SetLoadFlags(flags);
|
| request_->SetReferrer(referrer_);
|
| request_->set_referrer_policy(referrer_policy_);
|
| - request_->set_first_party_for_cookies(initiator_.is_empty() ? original_url_
|
| - : initiator_);
|
| - request_->set_initiator(initiator_.is_empty() ? url::Origin(original_url_)
|
| - : url::Origin(initiator_));
|
| + request_->set_first_party_for_cookies(initiator_.has_value() &&
|
| + !initiator_.value().unique()
|
| + ? initiator_.value().GetURL()
|
| + : original_url_);
|
| + request_->set_initiator(initiator_);
|
| if (url_request_data_key_ && !url_request_create_data_callback_.is_null()) {
|
| request_->SetUserData(url_request_data_key_,
|
| url_request_create_data_callback_.Run());
|
| @@ -699,7 +702,7 @@ void URLFetcherCore::CancelURLRequest(int error) {
|
| // delete the object, but we cannot delay the destruction of the request
|
| // context.
|
| request_context_getter_ = NULL;
|
| - initiator_ = GURL();
|
| + initiator_.reset();
|
| url_request_data_key_ = NULL;
|
| url_request_create_data_callback_.Reset();
|
| was_cancelled_ = true;
|
| @@ -790,7 +793,7 @@ void URLFetcherCore::RetryOrCompleteUrlFetch() {
|
| }
|
|
|
| request_context_getter_ = NULL;
|
| - initiator_ = GURL();
|
| + initiator_.reset();
|
| url_request_data_key_ = NULL;
|
| url_request_create_data_callback_.Reset();
|
| bool posted = delegate_task_runner_->PostTask(
|
|
|