Commit fa7bef00 authored by Dominic Farolino's avatar Dominic Farolino Committed by Commit Bot

Inline ResourceRequest referrer serialization

The crash being investigated in crbug.com/1021908 is resolved, so we
can re-inline the request's referrer serialization.

R=kinuko@chromium.org, yhirano@chromium.org

Bug: 1021908
Change-Id: I84ee6f23ef0b7eaad20ded7bbdbe1752d3a52ead
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1954211Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Dominic Farolino <dom@chromium.org>
Cr-Commit-Position: refs/heads/master@{#722360}
parent 51cdb88f
......@@ -7,6 +7,7 @@
#include <string>
#include "base/bind.h"
#include "base/debug/dump_without_crashing.h"
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "components/domain_reliability/monitor.h"
......@@ -268,6 +269,14 @@ bool NetworkServiceNetworkDelegate::
LOG(ERROR) << "Cancelling request to " << target_url
<< " with invalid referrer " << referrer_url;
// Record information to help debug issues like http://crbug.com/422871.
if (target_url.SchemeIsHTTPOrHTTPS()) {
auto referrer_policy = request.referrer_policy();
base::debug::Alias(&referrer_policy);
DEBUG_ALIAS_FOR_GURL(target_buf, target_url);
DEBUG_ALIAS_FOR_GURL(referrer_buf, referrer_url);
base::debug::DumpWithoutCrashing();
}
return true;
}
......
......@@ -258,30 +258,4 @@ bool StructTraits<network::mojom::DataElementDataView, network::DataElement>::
return true;
}
// static
const GURL&
StructTraits<network::mojom::URLRequestDataView, network::ResourceRequest>::
referrer(const network::ResourceRequest& request) {
// TODO(crbug.com/912680, crbug.com/1021908): Move this method back inline,
// and move the debugging logic back to NetworkServiceNetworkDelegate when the
// current cause of referrer mismatches is found.
if (request.referrer !=
net::URLRequestJob::ComputeReferrerForPolicy(
request.referrer_policy, request.referrer, request.url)) {
// Record information to help debug issues like http://crbug.com/422871.
if (request.url.SchemeIsHTTPOrHTTPS()) {
auto referrer_policy = request.referrer_policy;
base::debug::Alias(&referrer_policy);
DEBUG_ALIAS_FOR_GURL(target_buf, request.url);
DEBUG_ALIAS_FOR_GURL(referrer_buf, request.referrer);
DEBUG_ALIAS_FOR_GURL(
initiator_buf,
request.request_initiator.value_or(url::Origin()).GetURL())
base::debug::DumpWithoutCrashing();
}
}
return request.referrer;
}
} // namespace mojo
......@@ -9,7 +9,6 @@
#include <utility>
#include "base/component_export.h"
#include "base/debug/dump_without_crashing.h"
#include "base/memory/scoped_refptr.h"
#include "mojo/public/cpp/base/file_mojom_traits.h"
#include "mojo/public/cpp/base/file_path_mojom_traits.h"
......@@ -101,7 +100,9 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE)
const network::ResourceRequest& request) {
return request.isolated_world_origin;
}
static const GURL& referrer(const network::ResourceRequest& request);
static const GURL& referrer(const network::ResourceRequest& request) {
return request.referrer;
}
static net::URLRequest::ReferrerPolicy referrer_policy(
const network::ResourceRequest& request) {
return request.referrer_policy;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment