0

Remove the typemap from network::mojom::URLResponseHead.

This CL also adds a conversion to and from the mojom type to
network::ResourceResponseHead. This will allow the conversion of the
struct to the mojom type to be split into smaller CLs.

Bug: 984550
Change-Id: I7cf6adebddf90bb9cb4df41cf51db3e46cc7fef8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1758653
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Makoto Shimazu <shimazu@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Lucas Gadani <lfg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#691657}
This commit is contained in:
Lucas Furukawa Gadani
2019-08-29 16:26:32 +00:00
committed by Commit Bot
parent 3b2bb8d44a
commit 81e294be8a
132 changed files with 520 additions and 752 deletions
android_webview/browser/network_service
chrome
chromecast/browser
components
content
browser
common
public
renderer
test
extensions
headless/test
services/network
storage/browser/blob

@ -10,6 +10,7 @@
#include "mojo/public/cpp/system/simple_watcher.h"
#include "net/http/http_byte_range.h"
#include "services/network/public/cpp/net_adapters.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/url_loader.mojom.h"
namespace android_webview {

@ -59,9 +59,9 @@ class InterceptedRequest : public network::mojom::URLLoader,
void Restart();
// network::mojom::URLLoaderClient
void OnReceiveResponse(const network::ResourceResponseHead& head) override;
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override;
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override;
network::mojom::URLResponseHeadPtr head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback callback) override;
@ -486,16 +486,16 @@ void OnNewLoginRequest(int process_id,
// URLLoaderClient methods.
void InterceptedRequest::OnReceiveResponse(
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
// intercept response headers here
// pause/resume proxied_client_binding_ if necessary
if (head.headers && head.headers->response_code() >= 400) {
if (head->headers && head->headers->response_code() >= 400) {
// In Android WebView the WebViewClient.onReceivedHttpError callback
// is invoked for any resource (main page, iframe, image, etc.) with
// status code >= 400.
std::unique_ptr<AwContentsClientBridge::HttpErrorInfo> error_info =
AwContentsClientBridge::ExtractHttpErrorInfo(head.headers.get());
AwContentsClientBridge::ExtractHttpErrorInfo(head->headers.get());
OnReceivedHttpError(process_id_, request_.render_frame_id,
AwWebResourceRequest(request_), std::move(error_info));
@ -506,8 +506,8 @@ void InterceptedRequest::OnReceiveResponse(
// Check for x-auto-login-header
HeaderData header_data;
std::string header_string;
if (head.headers && head.headers->GetNormalizedHeader(kAutoLoginHeaderName,
&header_string)) {
if (head->headers && head->headers->GetNormalizedHeader(
kAutoLoginHeaderName, &header_string)) {
if (ParseHeader(header_string, ALLOW_ANY_REALM, &header_data)) {
// TODO(timvolodine): consider simplifying this and above callback
// code, crbug.com/897149.
@ -518,15 +518,15 @@ void InterceptedRequest::OnReceiveResponse(
}
}
target_client_->OnReceiveResponse(head);
target_client_->OnReceiveResponse(std::move(head));
}
void InterceptedRequest::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
// TODO(timvolodine): handle redirect override.
request_was_redirected_ = true;
target_client_->OnReceiveRedirect(redirect_info, head);
target_client_->OnReceiveRedirect(redirect_info, std::move(head));
request_.url = redirect_info.new_url;
request_.method = redirect_info.new_method;
request_.site_for_cookies = redirect_info.new_site_for_cookies;

@ -28,6 +28,7 @@
#include "net/base/io_buffer.h"
#include "net/http/http_byte_range.h"
#include "net/http/http_util.h"
#include "services/network/public/cpp/resource_response.h"
#include "storage/browser/fileapi/file_stream_reader.h"
#include "storage/browser/fileapi/file_system_backend.h"
#include "storage/browser/fileapi/file_system_context.h"

@ -50,6 +50,7 @@
#include "net/test/embedded_test_server/embedded_test_server.h"
#include "net/test/url_request/url_request_slow_download_job.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/resource_response.h"
#include "ui/base/l10n/l10n_util.h"
#include "url/gurl.h"

@ -29,6 +29,7 @@
#include "net/http/http_request_headers.h"
#include "net/http/http_response_headers.h"
#include "net/http/http_response_info.h"
#include "services/network/public/cpp/resource_response.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/template_expressions.h"

@ -152,8 +152,9 @@ class ChromeMimeHandlerViewTestBase : public extensions::ExtensionApiTest {
*view_id = base::GenerateGUID();
auto transferrable_loader = content::mojom::TransferrableURLLoader::New();
transferrable_loader->url = url;
transferrable_loader->head.mime_type = "application/pdf";
transferrable_loader->head.headers =
transferrable_loader->head = network::mojom::URLResponseHead::New();
transferrable_loader->head->mime_type = "application/pdf";
transferrable_loader->head->headers =
base::MakeRefCounted<net::HttpResponseHeaders>("HTTP/2 200 OK");
return std::make_unique<extensions::StreamContainer>(
0 /* tab_id */, false /* embedded */,

@ -11,6 +11,7 @@
#include "chrome/browser/media/router/discovery/dial/dial_device_data.h"
#include "net/base/ip_address.h"
#include "net/http/http_response_headers.h"
#include "services/network/public/cpp/resource_response.h"
constexpr char kApplicationUrlHeaderName[] = "Application-URL";

@ -9,6 +9,7 @@
#include "chrome/browser/media/router/providers/dial/dial_internal_message_util.h"
#include "chrome/common/media_router/media_source.h"
#include "net/base/url_util.h"
#include "services/network/public/cpp/resource_response.h"
namespace media_router {

@ -46,6 +46,7 @@
#include "net/base/filename_util.h"
#include "net/http/http_request_headers.h"
#include "services/network/public/cpp/resource_request.h"
#include "services/network/public/mojom/url_response_head.mojom.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
@ -144,7 +145,7 @@ class TestURLLoaderClient : public network::mojom::URLLoaderClient {
public:
virtual void OnReceiveRedirect(const GURL& redirected_url) = 0;
virtual void OnReceiveResponse(
const network::ResourceResponseHead& response_head) = 0;
network::mojom::URLResponseHeadPtr response_head) = 0;
virtual void OnStartLoadingResponseBody() = 0;
virtual void OnComplete() = 0;
@ -157,13 +158,13 @@ class TestURLLoaderClient : public network::mojom::URLLoaderClient {
~TestURLLoaderClient() override {}
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override {
observer_->OnReceiveResponse(response_head);
network::mojom::URLResponseHeadPtr response_head) override {
observer_->OnReceiveResponse(std::move(response_head));
}
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override {
network::mojom::URLResponseHeadPtr response_head) override {
observer_->OnReceiveRedirect(redirect_info.new_url);
}
@ -247,7 +248,7 @@ class OfflinePageURLLoaderBuilder : public TestURLLoaderClient::Observer {
void OnReceiveRedirect(const GURL& redirected_url) override;
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnStartLoadingResponseBody() override;
void OnComplete() override;
@ -944,8 +945,8 @@ void OfflinePageURLLoaderBuilder::OnReceiveRedirect(
}
void OfflinePageURLLoaderBuilder::OnReceiveResponse(
const network::ResourceResponseHead& response_head) {
mime_type_ = response_head.mime_type;
network::mojom::URLResponseHeadPtr response_head) {
mime_type_ = response_head->mime_type;
}
void OfflinePageURLLoaderBuilder::OnStartLoadingResponseBody() {

@ -19,6 +19,7 @@
#include "net/base/io_buffer.h"
#include "net/url_request/url_request.h"
#include "services/network/public/cpp/resource_request.h"
#include "services/network/public/cpp/resource_response.h"
namespace offline_pages {

@ -19,6 +19,7 @@
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.h"
#include "extensions/common/extension.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "services/network/public/cpp/resource_response.h"
PluginResponseInterceptorURLLoaderThrottle::
PluginResponseInterceptorURLLoaderThrottle(int resource_type,
@ -101,7 +102,7 @@ void PluginResponseInterceptorURLLoaderThrottle::WillProcessResponse(
transferrable_loader->url_loader = original_loader.PassInterface();
transferrable_loader->url_loader_client = std::move(original_client);
transferrable_loader->head = std::move(deep_copied_response->head);
transferrable_loader->head.intercepted_by_plugin = true;
transferrable_loader->head->intercepted_by_plugin = true;
bool embedded =
resource_type_ != static_cast<int>(content::ResourceType::kMainFrame);

@ -251,10 +251,10 @@ void PreviewsLitePageServingURLLoader::SetUpForwardingClient(
}
void PreviewsLitePageServingURLLoader::OnReceiveResponse(
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
DCHECK(!forwarding_client_);
const net::HttpResponseHeaders* response_headers = head.headers.get();
const net::HttpResponseHeaders* response_headers = head->headers.get();
// TODO: evaluate all the responses we allow, don't hard code 200.
if (!response_headers) {
UMA_HISTOGRAM_ENUMERATION(
@ -319,7 +319,7 @@ void PreviewsLitePageServingURLLoader::OnReceiveResponse(
void PreviewsLitePageServingURLLoader::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
DCHECK(!forwarding_client_);
// Store head and pause new messages until the forwarding client is set up.
@ -336,7 +336,7 @@ void PreviewsLitePageServingURLLoader::OnReceiveRedirect(
UMA_HISTOGRAM_ENUMERATION("Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::
ServerResponse::kPreviewUnavailable);
const net::HttpResponseHeaders* response_headers = head.headers.get();
const net::HttpResponseHeaders* response_headers = head->headers.get();
std::string chrome_proxy_header;
bool blacklist_host =

@ -16,6 +16,7 @@
#include "content/public/browser/url_loader_request_interceptor.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "services/network/public/mojom/url_loader.mojom.h"
@ -74,9 +75,9 @@ class PreviewsLitePageServingURLLoader
private:
// network::mojom::URLLoaderClient
void OnReceiveResponse(const network::ResourceResponseHead& head) override;
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override;
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override;
network::mojom::URLResponseHeadPtr head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback callback) override;

@ -15,6 +15,7 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/test/test_utils.h"
#include "net/http/http_response_headers.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/test/test_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/boringssl/src/include/openssl/curve25519.h"

@ -113,9 +113,9 @@ class ProxyingURLLoaderFactory::InProgressRequest
}
// network::mojom::URLLoaderClient:
void OnReceiveResponse(const network::ResourceResponseHead& head) override;
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override;
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override;
network::mojom::URLResponseHeadPtr head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
@ -370,22 +370,22 @@ void ProxyingURLLoaderFactory::InProgressRequest::FollowRedirect(
}
void ProxyingURLLoaderFactory::InProgressRequest::OnReceiveResponse(
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
// Even though |head| is const we can get a non-const pointer to the headers
// and modifications we made are passed to the target client.
ProxyResponseAdapter adapter(this, head.headers.get());
ProxyResponseAdapter adapter(this, head->headers.get());
factory_->delegate_->ProcessResponse(&adapter, GURL() /* redirect_url */);
target_client_->OnReceiveResponse(head);
target_client_->OnReceiveResponse(std::move(head));
}
void ProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
// Even though |head| is const we can get a non-const pointer to the headers
// and modifications we made are passed to the target client.
ProxyResponseAdapter adapter(this, head.headers.get());
ProxyResponseAdapter adapter(this, head->headers.get());
factory_->delegate_->ProcessResponse(&adapter, redirect_info.new_url);
target_client_->OnReceiveRedirect(redirect_info, head);
target_client_->OnReceiveRedirect(redirect_info, std::move(head));
// The request URL returned by ProxyResponseAdapter::GetOrigin() is updated
// immediately but the URL and referrer

@ -7,6 +7,7 @@
#include "chrome/browser/signin/chrome_signin_helper.h"
#include "chrome/browser/signin/header_modification_delegate.h"
#include "components/signin/core/browser/signin_header_helper.h"
#include "services/network/public/cpp/resource_response.h"
namespace signin {

@ -9,6 +9,7 @@
#include "base/test/mock_callback.h"
#include "chrome/browser/signin/chrome_signin_helper.h"
#include "chrome/browser/signin/header_modification_delegate.h"
#include "services/network/public/cpp/resource_response.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"

@ -35,6 +35,7 @@
#include "net/test/cert_test_util.h"
#include "net/test/test_data_directory.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/resource_response.h"
#include "ui/base/test/material_design_controller_test_api.h"
class LocationBarViewBrowserTest : public InProcessBrowserTest {

@ -6,6 +6,7 @@
#include "chrome/common/net/safe_search_util.h"
#include "components/variations/net/variations_http_headers.h"
#include "services/network/public/cpp/resource_response.h"
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "extensions/common/extension_urls.h"

@ -12,6 +12,7 @@
#include "net/base/escape.h"
#include "net/base/load_flags.h"
#include "net/http/http_status_code.h"
#include "services/network/public/cpp/resource_response.h"
namespace subresource_redirect {

@ -108,12 +108,12 @@ class CastExtensionURLLoader : public network::mojom::URLLoader,
}
// network::mojom::URLLoaderClient:
void OnReceiveResponse(const network::ResourceResponseHead& head) override {
original_client_->OnReceiveResponse(head);
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override {
original_client_->OnReceiveResponse(std::move(head));
}
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override {
network::mojom::URLResponseHeadPtr head) override {
// Don't tell the original client since it thinks this is a local load and
// just follow the redirect.
network_loader_->FollowRedirect(std::vector<std::string>(),

@ -13,6 +13,7 @@
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_server.h"
#include "components/data_reduction_proxy/core/common/uma_util.h"
#include "net/base/load_flags.h"
#include "services/network/public/cpp/resource_response.h"
namespace net {
class HttpRequestHeaders;

@ -18,6 +18,7 @@
#include "mojo/public/cpp/bindings/binding_set.h"
#include "net/base/load_flags.h"
#include "net/http/http_request_headers.h"
#include "services/network/public/cpp/resource_response.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace data_reduction_proxy {

@ -89,16 +89,16 @@ DownloadResponseHandler::DownloadResponseHandler(
DownloadResponseHandler::~DownloadResponseHandler() = default;
void DownloadResponseHandler::OnReceiveResponse(
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
create_info_ = CreateDownloadCreateInfo(head);
cert_status_ = head.cert_status;
cert_status_ = head->cert_status;
// TODO(xingliu): Do not use http cache.
// Sets page transition type correctly and call
// |RecordDownloadSourcePageTransitionType| here.
if (head.headers) {
has_strong_validators_ = head.headers->HasStrongValidators();
RecordDownloadHttpResponseCode(head.headers->response_code(),
if (head->headers) {
has_strong_validators_ = head->headers->HasStrongValidators();
RecordDownloadHttpResponseCode(head->headers->response_code(),
is_background_mode_);
RecordDownloadContentDisposition(create_info_->content_disposition);
}
@ -157,7 +157,7 @@ DownloadResponseHandler::CreateDownloadCreateInfo(
void DownloadResponseHandler::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
if (!follow_cross_origin_redirects_ &&
!first_origin_.IsSameOriginWith(
url::Origin::Create(redirect_info.new_url))) {

@ -30,9 +30,9 @@ class URLLoaderStatusMonitor : public network::mojom::URLLoaderClient {
~URLLoaderStatusMonitor() override = default;
// network::mojom::URLLoaderClient
void OnReceiveResponse(const network::ResourceResponseHead& head) override {}
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override {}
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override {}
network::mojom::URLResponseHeadPtr head) override {}
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback callback) override {}

@ -57,9 +57,9 @@ class COMPONENTS_DOWNLOAD_EXPORT DownloadResponseHandler
~DownloadResponseHandler() override;
// network::mojom::URLLoaderClient
void OnReceiveResponse(const network::ResourceResponseHead& head) override;
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override;
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override;
network::mojom::URLResponseHeadPtr head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback callback) override;

@ -4,6 +4,7 @@
#include "content/browser/about_url_loader_factory.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/url_loader.mojom.h"
namespace content {

@ -25,6 +25,7 @@
#include "net/http/http_byte_range.h"
#include "net/http/http_util.h"
#include "services/network/public/cpp/resource_request.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/url_loader.mojom.h"
// TODO(eroman): Add unit-tests for "X-Chrome-intent-type"

@ -192,18 +192,19 @@ class SubresourceLoader : public network::mojom::URLLoader,
// network::mojom::URLLoaderClient implementation
// Called by either the appcache or network loader, whichever is in use.
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override {
network::mojom::URLResponseHeadPtr response_head) override {
// Don't MaybeFallback for appcache produced responses.
if (appcache_loader_ || !handler_) {
remote_client_->OnReceiveResponse(response_head);
remote_client_->OnReceiveResponse(std::move(response_head));
return;
}
did_receive_network_response_ = true;
handler_->MaybeFallbackForSubresourceResponse(
response_head,
network::ResourceResponseHead(response_head),
base::BindOnce(&SubresourceLoader::ContinueOnReceiveResponse,
weak_factory_.GetWeakPtr(), response_head));
weak_factory_.GetWeakPtr(),
network::ResourceResponseHead(response_head)));
}
void ContinueOnReceiveResponse(
@ -218,7 +219,7 @@ class SubresourceLoader : public network::mojom::URLLoader,
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override {
network::mojom::URLResponseHeadPtr response_head) override {
DCHECK(network_loader_) << "appcache loader does not produce redirects";
if (!redirect_limit_--) {
OnComplete(
@ -226,14 +227,16 @@ class SubresourceLoader : public network::mojom::URLLoader,
return;
}
if (!handler_) {
remote_client_->OnReceiveRedirect(redirect_info_, response_head);
remote_client_->OnReceiveRedirect(redirect_info_,
std::move(response_head));
return;
}
redirect_info_ = redirect_info;
handler_->MaybeFallbackForSubresourceRedirect(
redirect_info,
base::BindOnce(&SubresourceLoader::ContinueOnReceiveRedirect,
weak_factory_.GetWeakPtr(), response_head));
weak_factory_.GetWeakPtr(),
network::ResourceResponseHead(response_head)));
}
void ContinueOnReceiveRedirect(

@ -134,7 +134,7 @@ int AppCacheUpdateJob::UpdateURLLoaderRequest::Cancel() {
}
void AppCacheUpdateJob::UpdateURLLoaderRequest::OnReceiveResponse(
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
response_ = response_head;
// TODO(ananta/michaeln)
@ -142,24 +142,24 @@ void AppCacheUpdateJob::UpdateURLLoaderRequest::OnReceiveResponse(
// have a helper function which populates the HttpResponseInfo structure from
// the ResourceResponseHead structure.
http_response_info_ = std::make_unique<net::HttpResponseInfo>();
if (response_head.ssl_info.has_value())
http_response_info_->ssl_info = *response_head.ssl_info;
http_response_info_->headers = response_head.headers;
if (response_head->ssl_info.has_value())
http_response_info_->ssl_info = *response_head->ssl_info;
http_response_info_->headers = response_head->headers;
http_response_info_->was_fetched_via_spdy =
response_head.was_fetched_via_spdy;
http_response_info_->was_alpn_negotiated = response_head.was_alpn_negotiated;
response_head->was_fetched_via_spdy;
http_response_info_->was_alpn_negotiated = response_head->was_alpn_negotiated;
http_response_info_->alpn_negotiated_protocol =
response_head.alpn_negotiated_protocol;
http_response_info_->connection_info = response_head.connection_info;
http_response_info_->remote_endpoint = response_head.remote_endpoint;
http_response_info_->request_time = response_head.request_time;
http_response_info_->response_time = response_head.response_time;
response_head->alpn_negotiated_protocol;
http_response_info_->connection_info = response_head->connection_info;
http_response_info_->remote_endpoint = response_head->remote_endpoint;
http_response_info_->request_time = response_head->request_time;
http_response_info_->response_time = response_head->response_time;
fetcher_->OnResponseStarted(net::OK);
}
void AppCacheUpdateJob::UpdateURLLoaderRequest::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
response_ = response_head;
fetcher_->OnReceivedRedirect(redirect_info);
}

@ -90,10 +90,10 @@ class AppCacheUpdateJob::UpdateURLLoaderRequest
// network::mojom::URLLoaderClient implementation.
// These methods are called by the network loader.
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback ack_callback) override;

@ -6,6 +6,7 @@
#include "content/browser/blob_storage/blob_internals_url_loader.h"
#include "content/browser/blob_storage/chrome_blob_storage_context.h"
#include "services/network/public/cpp/resource_response.h"
#include "storage/browser/blob/view_blob_internals_job.h"
namespace content {

@ -7,6 +7,7 @@
#include "mojo/public/cpp/system/data_pipe_producer.h"
#include "mojo/public/cpp/system/string_data_source.h"
#include "net/url_request/url_request_data_job.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/url_loader.mojom.h"
namespace content {

@ -238,7 +238,7 @@ class InterceptionJob : public network::mojom::URLLoaderClient,
void Shutdown();
std::unique_ptr<InterceptedRequestInfo> BuildRequestInfo(
const network::ResourceResponseHead* head);
const network::mojom::URLResponseHeadPtr& head);
void NotifyClient(std::unique_ptr<InterceptedRequestInfo> request_info);
void FetchCookies(
network::mojom::CookieManager::GetCookieListCallback callback);
@ -267,9 +267,9 @@ class InterceptionJob : public network::mojom::URLLoaderClient,
void ResumeReadingBodyFromNet() override;
// network::mojom::URLLoaderClient methods
void OnReceiveResponse(const network::ResourceResponseHead& head) override;
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override;
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override;
network::mojom::URLResponseHeadPtr head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback callback) override;
@ -1179,7 +1179,7 @@ void InterceptionJob::CancelRequest() {
}
std::unique_ptr<InterceptedRequestInfo> InterceptionJob::BuildRequestInfo(
const network::ResourceResponseHead* head) {
const network::mojom::URLResponseHeadPtr& head) {
auto result = std::make_unique<InterceptedRequestInfo>();
result->interception_id = current_id_;
if (renderer_request_id_.has_value())
@ -1319,11 +1319,11 @@ void InterceptionJob::ResumeReadingBodyFromNet() {
// URLLoaderClient methods
void InterceptionJob::OnReceiveResponse(
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
state_ = State::kResponseReceived;
DCHECK(!response_metadata_);
if (!(stage_ & InterceptionStage::RESPONSE)) {
client_->OnReceiveResponse(head);
client_->OnReceiveResponse(std::move(head));
return;
}
loader_->PauseReadingBodyFromNet();
@ -1331,18 +1331,18 @@ void InterceptionJob::OnReceiveResponse(
response_metadata_ = std::make_unique<ResponseMetadata>(head);
auto request_info = BuildRequestInfo(&head);
auto request_info = BuildRequestInfo(head);
const network::ResourceRequest& request = create_loader_params_->request;
request_info->is_download =
request_info->is_navigation &&
(is_download_ || download_utils::IsDownload(
request.url, head.headers.get(), head.mime_type));
request.url, head->headers.get(), head->mime_type));
NotifyClient(std::move(request_info));
}
void InterceptionJob::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
DCHECK_EQ(State::kRequestSent, state_);
state_ = State::kRedirectReceived;
response_metadata_ = std::make_unique<ResponseMetadata>(head);
@ -1350,12 +1350,11 @@ void InterceptionJob::OnReceiveRedirect(
std::make_unique<net::RedirectInfo>(redirect_info);
if (!(stage_ & InterceptionStage::RESPONSE)) {
client_->OnReceiveRedirect(redirect_info, head);
client_->OnReceiveRedirect(redirect_info, std::move(head));
return;
}
std::unique_ptr<InterceptedRequestInfo> request_info =
BuildRequestInfo(&head);
std::unique_ptr<InterceptedRequestInfo> request_info = BuildRequestInfo(head);
request_info->redirect_url = redirect_info.new_url.spec();
NotifyClient(std::move(request_info));
}

@ -1408,7 +1408,7 @@ std::unique_ptr<protocol::Object> BuildResponseHeaders(
std::unique_ptr<Network::Response> BuildResponse(
const GURL& url,
const network::ResourceResponseInfo& info) {
const network::ResourceResponseHead& info) {
int status = 0;
std::string status_text;
if (info.headers) {

@ -49,6 +49,7 @@
#include "services/network/public/cpp/cors/origin_access_list.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/resource_request.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/cors.mojom-shared.h"
#include "services/network/public/mojom/url_loader.mojom.h"
#include "storage/common/fileapi/file_system_util.h"

@ -36,6 +36,7 @@
#include "net/base/mime_util.h"
#include "net/http/http_byte_range.h"
#include "net/http/http_util.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/url_loader.mojom.h"
#include "storage/browser/fileapi/file_stream_reader.h"
#include "storage/browser/fileapi/file_system_context.h"

@ -3101,7 +3101,8 @@ NavigationControllerImpl::CreateNavigationRequestFromLoadParams(
mojom::CommitNavigationParamsPtr commit_params =
mojom::CommitNavigationParams::New(
frame_entry->committed_origin(), override_user_agent,
params.redirect_chain, std::vector<network::ResourceResponseHead>(),
params.redirect_chain,
std::vector<network::mojom::URLResponseHeadPtr>(),
std::vector<net::RedirectInfo>(),
std::string() /* post_content_type */, common_params->url,
common_params->method, params.can_load_local_resources,

@ -751,7 +751,7 @@ NavigationEntryImpl::ConstructCommitNavigationParams(
mojom::CommitNavigationParamsPtr commit_params =
mojom::CommitNavigationParams::New(
origin_to_commit, GetIsOverridingUserAgent(), redirects,
std::vector<network::ResourceResponseHead>(),
std::vector<network::mojom::URLResponseHeadPtr>(),
std::vector<net::RedirectInfo>(), std::string(), original_url,
original_method, GetCanLoadLocalResources(), frame_entry.page_state(),
GetUniqueID(), subframe_unique_names, intended_as_new_entry,

@ -650,10 +650,11 @@ std::unique_ptr<NavigationRequest> NavigationRequest::CreateRendererInitiated(
mojom::CommitNavigationParamsPtr commit_params =
mojom::CommitNavigationParams::New(
base::nullopt, override_user_agent,
std::vector<GURL>(), // redirects
std::vector<network::ResourceResponseHead>(), // redirect_response
std::vector<net::RedirectInfo>(), // redirect_infos
std::string(), // post_content_type
std::vector<GURL>(), // redirects
std::vector<
network::mojom::URLResponseHeadPtr>(), // redirect_response
std::vector<net::RedirectInfo>(), // redirect_infos
std::string(), // post_content_type
common_params->url, common_params->method,
false, // can_load_local_resources
PageState(), // page_state
@ -730,7 +731,7 @@ std::unique_ptr<NavigationRequest> NavigationRequest::CreateForCommit(
mojom::CommitNavigationParamsPtr commit_params =
mojom::CommitNavigationParams::New(
params.origin, params.is_overriding_user_agent, params.redirects,
std::vector<network::ResourceResponseHead>(),
std::vector<network::mojom::URLResponseHeadPtr>(),
std::vector<net::RedirectInfo>(), std::string(),
params.original_request_url, params.method,
false /* can_load_local_resources */, params.page_state,

@ -14,6 +14,7 @@
#include "content/common/content_export.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "net/url_request/redirect_info.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/url_loader.mojom.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"

@ -779,7 +779,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
private:
// network::mojom::URLLoaderClient implementation:
void OnReceiveResponse(const network::ResourceResponseHead& head) override {
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override {
// When NavigationImmediateResponseBody is enabled, wait for
// OnStartLoadingResponseBody() before sending anything to the renderer
// process.
@ -811,8 +811,8 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
// This needs to be after the URLLoader has been moved to
// |url_loader_client_endpoints| in order to abort the request, to avoid
// receiving unexpected call.
if (head.headers &&
head.headers->response_code() == net::HTTP_NOT_MODIFIED) {
if (head->headers &&
head->headers->response_code() == net::HTTP_NOT_MODIFIED) {
// Call CancelWithError instead of OnComplete so that if there is an
// intercepting URLLoaderFactory it gets notified.
url_loader_->CancelWithError(
@ -823,12 +823,12 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
bool is_download;
bool must_download =
download_utils::MustDownload(url_, head.headers.get(), head.mime_type);
bool known_mime_type = blink::IsSupportedMimeType(head.mime_type);
bool must_download = download_utils::MustDownload(url_, head->headers.get(),
head->mime_type);
bool known_mime_type = blink::IsSupportedMimeType(head->mime_type);
#if BUILDFLAG(ENABLE_PLUGINS)
if (!head.intercepted_by_plugin && !must_download && !known_mime_type) {
if (!head->intercepted_by_plugin && !must_download && !known_mime_type) {
// No plugin throttles intercepted the response. Ask if the plugin
// registered to PluginService wants to handle the request.
CheckPluginAndContinueOnReceiveResponse(
@ -841,7 +841,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
// When a plugin intercepted the response, we don't want to download it.
is_download =
!head.intercepted_by_plugin && (must_download || !known_mime_type);
!head->intercepted_by_plugin && (must_download || !known_mime_type);
CallOnReceivedResponse(head, std::move(url_loader_client_endpoints),
is_download);
@ -895,7 +895,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
}
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override {
network::mojom::URLResponseHeadPtr head) override {
if (!bypass_redirect_checks_ &&
!IsRedirectSafe(url_, redirect_info.new_url, browser_context_)) {
// Call CancelWithError instead of OnComplete so that if there is an

@ -143,7 +143,7 @@ void PrefetchURLLoader::ResumeReadingBodyFromNet() {
}
void PrefetchURLLoader::OnReceiveResponse(
const network::ResourceResponseHead& response) {
network::mojom::URLResponseHeadPtr response) {
if (IsSignedExchangeHandlingEnabled() &&
signed_exchange_utils::ShouldHandleAsSignedHTTPExchange(
resource_request_.url, response)) {
@ -168,12 +168,12 @@ void PrefetchURLLoader::OnReceiveResponse(
prefetched_signed_exchange_cache_adapter_->OnReceiveInnerResponse(response);
}
forwarding_client_->OnReceiveResponse(response);
forwarding_client_->OnReceiveResponse(std::move(response));
}
void PrefetchURLLoader::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
if (prefetched_signed_exchange_cache_adapter_ &&
signed_exchange_prefetch_handler_) {
prefetched_signed_exchange_cache_adapter_->OnReceiveRedirect(
@ -187,7 +187,7 @@ void PrefetchURLLoader::OnReceiveRedirect(
resource_request_.top_frame_origin = redirect_info.new_top_frame_origin;
resource_request_.referrer = GURL(redirect_info.new_referrer);
resource_request_.referrer_policy = redirect_info.new_referrer_policy;
forwarding_client_->OnReceiveRedirect(redirect_info, head);
forwarding_client_->OnReceiveRedirect(redirect_info, std::move(head));
}
void PrefetchURLLoader::OnUploadProgress(int64_t current_position,

@ -102,9 +102,9 @@ class CONTENT_EXPORT PrefetchURLLoader : public network::mojom::URLLoader,
void ResumeReadingBodyFromNet() override;
// network::mojom::URLLoaderClient overrides:
void OnReceiveResponse(const network::ResourceResponseHead& head) override;
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override;
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override;
network::mojom::URLResponseHeadPtr head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
base::OnceCallback<void()> callback) override;

@ -128,36 +128,39 @@ class DelegatingURLLoaderClient final : public network::mojom::URLLoaderClient {
void OnTransferSizeUpdated(int32_t transfer_size_diff) override {
client_->OnTransferSizeUpdated(transfer_size_diff);
}
void OnReceiveResponse(const network::ResourceResponseHead& head) override {
client_->OnReceiveResponse(head);
if (!devtools_enabled_)
return;
// Make a deep copy of ResourceResponseHead before passing it cross-thread.
auto resource_response = base::MakeRefCounted<network::ResourceResponse>();
resource_response->head = head;
AddDevToolsCallback(
base::BindOnce(&NotifyNavigationPreloadResponseReceivedOnUI, url_,
resource_response->DeepCopy()));
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override {
if (devtools_enabled_) {
// Make a deep copy of ResourceResponseHead before passing it
// cross-thread.
auto resource_response =
base::MakeRefCounted<network::ResourceResponse>();
resource_response->head = head.Clone();
AddDevToolsCallback(
base::BindOnce(&NotifyNavigationPreloadResponseReceivedOnUI, url_,
resource_response->DeepCopy()));
}
client_->OnReceiveResponse(std::move(head));
}
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override {
network::mojom::URLResponseHeadPtr head) override {
if (devtools_enabled_) {
// Make a deep copy of ResourceResponseHead before passing it
// cross-thread.
auto resource_response =
base::MakeRefCounted<network::ResourceResponse>();
resource_response->head = head.Clone();
AddDevToolsCallback(
base::BindOnce(&NotifyNavigationPreloadResponseReceivedOnUI, url_,
resource_response->DeepCopy()));
network::URLLoaderCompletionStatus status;
AddDevToolsCallback(
base::BindOnce(&NotifyNavigationPreloadCompletedOnUI, status));
}
completed_ = true;
// When the server returns a redirect response, we only send
// OnReceiveRedirect IPC and don't send OnComplete IPC. The service worker
// will clean up the preload request when OnReceiveRedirect() is called.
client_->OnReceiveRedirect(redirect_info, head);
if (!devtools_enabled_)
return;
// Make a deep copy of ResourceResponseHead before passing it cross-thread.
auto resource_response = base::MakeRefCounted<network::ResourceResponse>();
resource_response->head = head;
AddDevToolsCallback(
base::BindOnce(&NotifyNavigationPreloadResponseReceivedOnUI, url_,
resource_response->DeepCopy()));
network::URLLoaderCompletionStatus status;
AddDevToolsCallback(
base::BindOnce(&NotifyNavigationPreloadCompletedOnUI, status));
client_->OnReceiveRedirect(redirect_info, std::move(head));
}
void OnStartLoadingResponseBody(
mojo::ScopedDataPipeConsumerHandle body) override {

@ -189,7 +189,7 @@ void ServiceWorkerNewScriptLoader::ResumeReadingBodyFromNet() {
// URLLoaderClient for network loader ------------------------------------------
void ServiceWorkerNewScriptLoader::OnReceiveResponse(
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
DCHECK_EQ(LoaderState::kLoadingHeader, network_loader_state_);
if (!version_->context() || version_->is_redundant()) {
CommitCompleted(network::URLLoaderCompletionStatus(net::ERR_FAILED),
@ -215,7 +215,7 @@ void ServiceWorkerNewScriptLoader::OnReceiveResponse(
// Check the path restriction defined in the spec:
// https://w3c.github.io/ServiceWorker/#service-worker-script-response
std::string service_worker_allowed;
bool has_header = response_head.headers->EnumerateHeader(
bool has_header = response_head->headers->EnumerateHeader(
nullptr, ServiceWorkerConsts::kServiceWorkerAllowed,
&service_worker_allowed);
if (!ServiceWorkerUtils::IsPathRestrictionSatisfied(
@ -227,7 +227,7 @@ void ServiceWorkerNewScriptLoader::OnReceiveResponse(
return;
}
if (response_head.network_accessed)
if (response_head->network_accessed)
version_->embedded_worker()->OnNetworkAccessedForScriptLoad();
version_->SetMainScriptHttpResponseInfo(*response_info);
@ -240,20 +240,17 @@ void ServiceWorkerNewScriptLoader::OnReceiveResponse(
// Don't pass SSLInfo to the client when the original request doesn't ask
// to send it.
if (response_head.ssl_info.has_value() &&
if (response_head->ssl_info.has_value() &&
!(original_options_ &
network::mojom::kURLLoadOptionSendSSLInfoWithResponse)) {
network::ResourceResponseHead new_response_head = response_head;
new_response_head.ssl_info.reset();
client_->OnReceiveResponse(new_response_head);
return;
response_head->ssl_info.reset();
}
client_->OnReceiveResponse(response_head);
client_->OnReceiveResponse(std::move(response_head));
}
void ServiceWorkerNewScriptLoader::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
// Resource requests for service worker scripts should not follow redirects.
//
// Step 9.5: "Set request's redirect mode to "error"."

@ -95,10 +95,10 @@ class CONTENT_EXPORT ServiceWorkerNewScriptLoader final
// network::mojom::URLLoaderClient for the network load:
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback ack_callback) override;

@ -233,7 +233,7 @@ ServiceWorkerSingleScriptUpdateChecker::
// URLLoaderClient override ----------------------------------------------------
void ServiceWorkerSingleScriptUpdateChecker::OnReceiveResponse(
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
TRACE_EVENT_WITH_FLOW0(
"ServiceWorker",
"ServiceWorkerSingleScriptUpdateChecker::OnReceiveResponse", this,
@ -259,7 +259,7 @@ void ServiceWorkerSingleScriptUpdateChecker::OnReceiveResponse(
// Only main script needs the following check.
if (is_main_script_) {
std::string service_worker_allowed;
bool has_header = response_head.headers->EnumerateHeader(
bool has_header = response_head->headers->EnumerateHeader(
nullptr, ServiceWorkerConsts::kServiceWorkerAllowed,
&service_worker_allowed);
if (!ServiceWorkerUtils::IsPathRestrictionSatisfied(
@ -273,7 +273,7 @@ void ServiceWorkerSingleScriptUpdateChecker::OnReceiveResponse(
network_loader_state_ =
ServiceWorkerUpdatedScriptLoader::LoaderState::kWaitingForBody;
network_accessed_ = response_head.network_accessed;
network_accessed_ = response_head->network_accessed;
WriteHeaders(
base::MakeRefCounted<HttpResponseInfoIOBuffer>(std::move(response_info)));
@ -281,7 +281,7 @@ void ServiceWorkerSingleScriptUpdateChecker::OnReceiveResponse(
void ServiceWorkerSingleScriptUpdateChecker::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
TRACE_EVENT_WITH_FLOW0(
"ServiceWorker",
"ServiceWorkerSingleScriptUpdateChecker::OnReceiveRedirect", this,

@ -116,10 +116,10 @@ class CONTENT_EXPORT ServiceWorkerSingleScriptUpdateChecker
// network::mojom::URLLoaderClient override:
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback ack_callback) override;

@ -103,7 +103,7 @@ class FakeNavigationClient : public mojom::NavigationClient {
void CommitNavigation(
mojom::CommonNavigationParamsPtr common_params,
mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
network::mojom::URLResponseHeadPtr response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
std::unique_ptr<blink::URLLoaderFactoryBundleInfo>

@ -267,13 +267,13 @@ void ServiceWorkerUpdatedScriptLoader::ResumeReadingBodyFromNet() {
// URLLoaderClient for network loader ------------------------------------------
void ServiceWorkerUpdatedScriptLoader::OnReceiveResponse(
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
NOTREACHED();
}
void ServiceWorkerUpdatedScriptLoader::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
NOTREACHED();
}

@ -144,10 +144,10 @@ class CONTENT_EXPORT ServiceWorkerUpdatedScriptLoader final
// network::mojom::URLLoaderClient for the network load:
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback ack_callback) override;

@ -629,7 +629,7 @@ void OnAuthRequiredContinuation(
bool is_request_for_main_frame,
bool first_auth_attempt,
const net::AuthChallengeInfo& auth_info,
const base::Optional<network::ResourceResponseHead>& head,
network::mojom::URLResponseHeadPtr head,
network::mojom::AuthChallengeResponderPtr auth_challenge_responder,
base::RepeatingCallback<WebContents*(void)> web_contents_getter) {
if (!web_contents_getter) {
@ -667,7 +667,7 @@ void OnAuthRequiredContinuationForWindowId(
const GURL& url,
bool first_auth_attempt,
const net::AuthChallengeInfo& auth_info,
const base::Optional<network::ResourceResponseHead>& head,
network::mojom::URLResponseHeadPtr head,
network::mojom::AuthChallengeResponderPtr auth_challenge_responder,
FrameTreeNodeIdRegistry::IsMainFrameGetter is_main_frame_getter) {
if (!is_main_frame_getter) {
@ -686,7 +686,7 @@ void OnAuthRequiredContinuationForWindowId(
if (ServiceWorkerContext::IsServiceWorkerOnUIEnabled()) {
OnAuthRequiredContinuation(process_id, routing_id, request_id, url,
*is_main_frame_opt, first_auth_attempt,
auth_info, head,
auth_info, std::move(head),
std::move(auth_challenge_responder),
GetWebContentsFromRegistry(window_id));
} else {
@ -695,7 +695,8 @@ void OnAuthRequiredContinuationForWindowId(
base::BindOnce(&GetWebContentsFromRegistry, window_id),
base::BindOnce(&OnAuthRequiredContinuation, process_id, routing_id,
request_id, url, *is_main_frame_opt, first_auth_attempt,
auth_info, head, std::move(auth_challenge_responder)));
auth_info, std::move(head),
std::move(auth_challenge_responder)));
}
}
@ -1592,13 +1593,13 @@ void StoragePartitionImpl::OnAuthRequired(
const GURL& url,
bool first_auth_attempt,
const net::AuthChallengeInfo& auth_info,
const base::Optional<network::ResourceResponseHead>& head,
network::mojom::URLResponseHeadPtr head,
network::mojom::AuthChallengeResponderPtr auth_challenge_responder) {
if (window_id) {
if (ServiceWorkerContext::IsServiceWorkerOnUIEnabled()) {
OnAuthRequiredContinuationForWindowId(
*window_id, process_id, routing_id, request_id, url,
first_auth_attempt, auth_info, head,
first_auth_attempt, auth_info, std::move(head),
std::move(auth_challenge_responder),
GetIsMainFrameFromRegistry(*window_id));
} else {
@ -1607,14 +1608,14 @@ void StoragePartitionImpl::OnAuthRequired(
base::BindOnce(&GetIsMainFrameFromRegistry, *window_id),
base::BindOnce(&OnAuthRequiredContinuationForWindowId, *window_id,
process_id, routing_id, request_id, url,
first_auth_attempt, auth_info, head,
first_auth_attempt, auth_info, std::move(head),
std::move(auth_challenge_responder)));
}
return;
}
OnAuthRequiredContinuation(process_id, routing_id, request_id, url,
IsMainFrameRequest(process_id, routing_id),
first_auth_attempt, auth_info, head,
first_auth_attempt, auth_info, std::move(head),
std::move(auth_challenge_responder), {});
}

@ -194,7 +194,7 @@ class CONTENT_EXPORT StoragePartitionImpl
const GURL& url,
bool first_auth_attempt,
const net::AuthChallengeInfo& auth_info,
const base::Optional<network::ResourceResponseHead>& head,
network::mojom::URLResponseHeadPtr head,
network::mojom::AuthChallengeResponderPtr
auth_challenge_responder) override;
void OnCertificateRequested(

@ -21,6 +21,7 @@
#include "net/http/http_status_code.h"
#include "net/http/http_util.h"
#include "services/network/public/cpp/constants.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/url_loader.mojom.h"
namespace content {

@ -225,7 +225,7 @@ void SignedExchangeCertFetcher::OnDataComplete() {
// network::mojom::URLLoaderClient
void SignedExchangeCertFetcher::OnReceiveResponse(
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("loading"),
"SignedExchangeCertFetcher::OnReceiveResponse");
if (devtools_proxy_) {
@ -235,13 +235,13 @@ void SignedExchangeCertFetcher::OnReceiveResponse(
}
if (reporter_)
reporter_->set_cert_server_ip_address(head.remote_endpoint.address());
reporter_->set_cert_server_ip_address(head->remote_endpoint.address());
// |headers| is null when loading data URL.
if (head.headers && head.headers->response_code() != net::HTTP_OK) {
if (head->headers && head->headers->response_code() != net::HTTP_OK) {
signed_exchange_utils::ReportErrorAndTraceEvent(
devtools_proxy_, base::StringPrintf("Invalid reponse code: %d",
head.headers->response_code()));
head->headers->response_code()));
Abort();
return;
}
@ -249,37 +249,37 @@ void SignedExchangeCertFetcher::OnReceiveResponse(
// https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html#cert-chain-format
// "The resource at a signature's cert-url MUST have the
// application/cert-chain+cbor content type" [spec text]
if (head.mime_type != kCertChainMimeType) {
if (head->mime_type != kCertChainMimeType) {
signed_exchange_utils::ReportErrorAndTraceEvent(
devtools_proxy_,
base::StringPrintf(
"Content type of cert-url must be application/cert-chain+cbor. "
"Actual content type: %s",
head.mime_type.c_str()));
head->mime_type.c_str()));
Abort();
return;
}
if (head.content_length > 0) {
if (base::checked_cast<size_t>(head.content_length) >
if (head->content_length > 0) {
if (base::checked_cast<size_t>(head->content_length) >
g_max_cert_size_for_signed_exchange) {
signed_exchange_utils::ReportErrorAndTraceEvent(
devtools_proxy_,
base::StringPrintf("Invalid content length: %" PRIu64,
head.content_length));
head->content_length));
Abort();
return;
}
body_string_.reserve(head.content_length);
body_string_.reserve(head->content_length);
}
UMA_HISTOGRAM_BOOLEAN("SignedExchange.CertificateFetch.CacheHit",
head.was_fetched_via_cache);
head->was_fetched_via_cache);
}
void SignedExchangeCertFetcher::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("loading"),
"SignedExchangeCertFetcher::OnReceiveRedirect");
// Currently the cert fetcher doesn't allow any redirects.

@ -94,9 +94,9 @@ class CONTENT_EXPORT SignedExchangeCertFetcher
const network::URLLoaderCompletionStatus& status);
// network::mojom::URLLoaderClient
void OnReceiveResponse(const network::ResourceResponseHead& head) override;
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override;
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override;
network::mojom::URLResponseHeadPtr head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback callback) override;

@ -20,6 +20,7 @@
#include "net/test/cert_test_util.h"
#include "net/test/test_data_directory.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
#include "testing/gmock/include/gmock/gmock.h"

@ -112,7 +112,7 @@ SignedExchangeLoader::SignedExchangeLoader(
SignedExchangeLoader::~SignedExchangeLoader() = default;
void SignedExchangeLoader::OnReceiveResponse(
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
// Must not be called because this SignedExchangeLoader and the client
// endpoints were bound after OnReceiveResponse() is called.
NOTREACHED();
@ -120,7 +120,7 @@ void SignedExchangeLoader::OnReceiveResponse(
void SignedExchangeLoader::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
// Must not be called because this SignedExchangeLoader and the client
// endpoints were bound after OnReceiveResponse() is called.
NOTREACHED();

@ -19,6 +19,7 @@
#include "net/ssl/ssl_info.h"
#include "net/url_request/redirect_info.h"
#include "services/network/public/cpp/net_adapters.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/url_loader.mojom.h"
#include "url/origin.h"
@ -80,10 +81,10 @@ class CONTENT_EXPORT SignedExchangeLoader final
// network::mojom::URLLoaderClient implementation
// Only OnStartLoadingResponseBody() and OnComplete() are called.
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback ack_callback) override;

@ -57,10 +57,11 @@ class SignedExchangeLoaderTest : public testing::TestWithParam<bool> {
~MockURLLoaderClient() override {}
// network::mojom::URLLoaderClient overrides:
MOCK_METHOD1(OnReceiveResponse, void(const network::ResourceResponseHead&));
MOCK_METHOD1(OnReceiveResponse,
void(const network::mojom::URLResponseHeadPtr));
MOCK_METHOD2(OnReceiveRedirect,
void(const net::RedirectInfo&,
const network::ResourceResponseHead&));
network::mojom::URLResponseHeadPtr));
MOCK_METHOD3(OnUploadProgress,
void(int64_t, int64_t, base::OnceCallback<void()> callback));
MOCK_METHOD1(OnReceiveCachedMetadata, void(mojo_base::BigBuffer));

@ -89,14 +89,14 @@ base::Time SignedExchangePrefetchHandler::GetSignatureExpireTime() const {
}
void SignedExchangePrefetchHandler::OnReceiveResponse(
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
NOTREACHED();
}
void SignedExchangePrefetchHandler::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) {
forwarding_client_->OnReceiveRedirect(redirect_info, head);
network::mojom::URLResponseHeadPtr head) {
forwarding_client_->OnReceiveRedirect(redirect_info, std::move(head));
}
void SignedExchangePrefetchHandler::OnUploadProgress(

@ -13,6 +13,7 @@
#include "base/time/time.h"
#include "base/unguessable_token.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/url_loader.mojom.h"
namespace net {
@ -80,9 +81,9 @@ class SignedExchangePrefetchHandler final
private:
// network::mojom::URLLoaderClient overrides:
void OnReceiveResponse(const network::ResourceResponseHead& head) override;
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override;
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override;
network::mojom::URLResponseHeadPtr head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
base::OnceCallback<void()> callback) override;

@ -108,11 +108,11 @@ void SignedExchangeValidityPinger::Start(
SignedExchangeValidityPinger::~SignedExchangeValidityPinger() = default;
void SignedExchangeValidityPinger::OnReceiveResponse(
const network::ResourceResponseHead& head) {}
network::mojom::URLResponseHeadPtr head) {}
void SignedExchangeValidityPinger::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
DCHECK(callback_);
// Currently it doesn't support redirects, so just bail out.
url_loader_.reset();

@ -52,9 +52,9 @@ class CONTENT_EXPORT SignedExchangeValidityPinger
const base::Optional<base::UnguessableToken>& throttling_profile_id);
// network::mojom::URLLoaderClient
void OnReceiveResponse(const network::ResourceResponseHead& head) override;
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override;
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override;
network::mojom::URLResponseHeadPtr head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback callback) override;

@ -83,6 +83,8 @@ class SharedWorkerHostTest : public testing::Test {
mojo::PendingRemote<blink::mojom::SharedWorkerFactory> factory) {
auto main_script_load_params =
blink::mojom::WorkerMainScriptLoadParams::New();
main_script_load_params->response_head =
network::mojom::URLResponseHead::New();
auto subresource_loader_factories =
std::make_unique<blink::URLLoaderFactoryBundleInfo>();

@ -102,7 +102,7 @@ void WorkerScriptFetcher::Start(
}
void WorkerScriptFetcher::OnReceiveResponse(
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
response_head_ = response_head;
}
@ -170,7 +170,7 @@ void WorkerScriptFetcher::OnStartLoadingResponseBody(
void WorkerScriptFetcher::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
redirect_infos_.push_back(redirect_info);
redirect_response_heads_.push_back(response_head);

@ -63,9 +63,9 @@ class WorkerScriptFetcher : public network::mojom::URLLoaderClient {
void Start(std::vector<std::unique_ptr<blink::URLLoaderThrottle>> throttles);
// network::mojom::URLLoaderClient
void OnReceiveResponse(const network::ResourceResponseHead& head) override;
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override;
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override;
network::mojom::URLResponseHeadPtr head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback callback) override;

@ -226,14 +226,14 @@ void WorkerScriptLoader::ResumeReadingBodyFromNet() {
// calls FollowRedirect(), it can do so.
void WorkerScriptLoader::OnReceiveResponse(
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
client_->OnReceiveResponse(response_head);
client_->OnReceiveResponse(std::move(response_head));
}
void WorkerScriptLoader::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (--redirect_limit_ == 0) {
CommitCompleted(
@ -242,7 +242,7 @@ void WorkerScriptLoader::OnReceiveRedirect(
}
redirect_info_ = redirect_info;
client_->OnReceiveRedirect(redirect_info, response_head);
client_->OnReceiveRedirect(redirect_info, std::move(response_head));
}
void WorkerScriptLoader::OnUploadProgress(

@ -84,10 +84,10 @@ class WorkerScriptLoader : public network::mojom::URLLoader,
// network::mojom::URLLoaderClient:
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback ack_callback) override;

@ -7,6 +7,7 @@
#include <utility>
#include "base/format_macros.h"
#include "base/strings/string_split.h"
#include "base/strings/stringprintf.h"
#include "base/values.h"
#include "components/viz/common/frame_sinks/begin_frame_args.h"

@ -66,7 +66,7 @@ void MimeSniffingURLLoader::Start(
}
void MimeSniffingURLLoader::OnReceiveResponse(
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
// OnReceiveResponse() shouldn't be called because MimeSniffingURLLoader is
// created by MimeSniffingThrottle::WillProcessResponse(), which is equivalent
// to OnReceiveResponse().
@ -75,7 +75,7 @@ void MimeSniffingURLLoader::OnReceiveResponse(
void MimeSniffingURLLoader::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
// OnReceiveRedirect() shouldn't be called because MimeSniffingURLLoader is
// created by MimeSniffingThrottle::WillProcessResponse(), which is equivalent
// to OnReceiveResponse().

@ -15,6 +15,7 @@
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "mojo/public/cpp/system/simple_watcher.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "services/network/public/mojom/url_loader.mojom.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
@ -80,10 +81,10 @@ class CONTENT_EXPORT MimeSniffingURLLoader
// network::mojom::URLLoaderClient implementation (called from the source of
// the response):
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback ack_callback) override;

@ -16,6 +16,7 @@
#include "content/public/common/content_switches.h"
#include "content/public/common/resource_type.h"
#include "net/http/http_request_headers.h"
#include "services/network/public/cpp/resource_response.h"
#include "third_party/blink/public/common/fetch/fetch_api_request_headers_map.h"
#include "third_party/blink/public/common/service_worker/service_worker_status_code.h"
#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom.h"

@ -519,7 +519,7 @@ void ThrottlingURLLoader::RestartWithURLResetAndFlags(
}
void ThrottlingURLLoader::OnReceiveResponse(
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
DCHECK_EQ(DEFERRED_NONE, deferred_stage_);
DCHECK(!loader_completed_);
DCHECK(deferring_throttles_.empty());
@ -576,7 +576,7 @@ void ThrottlingURLLoader::OnReceiveResponse(
void ThrottlingURLLoader::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
DCHECK_EQ(DEFERRED_NONE, deferred_stage_);
DCHECK(!loader_completed_);
DCHECK(deferring_throttles_.empty());
@ -634,7 +634,8 @@ void ThrottlingURLLoader::OnReceiveRedirect(
// redirect or if it will be cancelled. FollowRedirect would be a more
// suitable place to set this URL but there we do not have the data.
response_url_ = redirect_info.new_url;
forwarding_client_->OnReceiveRedirect(redirect_info, response_head);
forwarding_client_->OnReceiveRedirect(redirect_info,
std::move(response_head));
}
void ThrottlingURLLoader::OnUploadProgress(

@ -14,6 +14,7 @@
#include "base/threading/thread_task_runner_handle.h"
#include "content/common/content_export.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "services/network/public/mojom/url_loader.mojom.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
@ -122,10 +123,10 @@ class CONTENT_EXPORT ThrottlingURLLoader
// network::mojom::URLLoaderClient implementation:
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback ack_callback) override;

@ -182,14 +182,14 @@ class TestURLLoaderClient : public network::mojom::URLLoaderClient {
private:
// network::mojom::URLLoaderClient implementation:
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override {
network::mojom::URLResponseHeadPtr response_head) override {
on_received_response_called_++;
if (on_received_response_callback_)
on_received_response_callback_.Run();
}
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override {
network::mojom::URLResponseHeadPtr response_head) override {
on_received_redirect_called_++;
if (on_received_redirect_callback_)
on_received_redirect_callback_.Run();

@ -195,13 +195,13 @@ class URLLoaderClientInterceptor : public network::mojom::URLLoaderClient {
std::move(delegating_client), params.traffic_annotation);
}
void OnReceiveResponse(const network::ResourceResponseHead& head) override {
original_client_->OnReceiveResponse(head);
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override {
original_client_->OnReceiveResponse(std::move(head));
}
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override {
original_client_->OnReceiveRedirect(redirect_info, head);
network::mojom::URLResponseHeadPtr head) override {
original_client_->OnReceiveRedirect(redirect_info, std::move(head));
}
void OnUploadProgress(int64_t current_position,

@ -58,13 +58,13 @@ class URLLoaderRelay : public network::mojom::URLLoaderClient,
}
// network::mojom::URLLoaderClient implementation:
void OnReceiveResponse(const network::ResourceResponseHead& head) override {
client_sink_->OnReceiveResponse(head);
void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override {
client_sink_->OnReceiveResponse(std::move(head));
}
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) override {
client_sink_->OnReceiveRedirect(redirect_info, head);
network::mojom::URLResponseHeadPtr head) override {
client_sink_->OnReceiveRedirect(redirect_info, std::move(head));
}
void OnUploadProgress(int64_t current_position,
@ -209,7 +209,7 @@ void ChildURLLoaderFactoryBundle::CreateLoaderAndStart(
std::move(override_iter->second);
subresource_overrides_.erase(override_iter);
client->OnReceiveResponse(transferrable_loader->head);
client->OnReceiveResponse(std::move(transferrable_loader->head));
mojo::MakeStrongBinding(
std::make_unique<URLLoaderRelay>(
network::mojom::URLLoaderPtr(

@ -52,8 +52,9 @@ void NavigationBodyLoader::FillNavigationParamsResponseAndBodyLoader(
NotifyResourceRedirectReceived(render_frame_id, resource_load_info.get(),
redirect_info, redirect_response);
WebURLLoaderImpl::PopulateURLResponse(
url, redirect_response, &redirect.redirect_response,
response_head.ssl_info.has_value(), request_id);
url, network::ResourceResponseHead(redirect_response),
&redirect.redirect_response, response_head.ssl_info.has_value(),
request_id);
if (url.SchemeIs(url::kDataScheme))
redirect.redirect_response.SetHttpStatusCode(200);
redirect.new_url = redirect_info.new_url;
@ -107,14 +108,14 @@ NavigationBodyLoader::~NavigationBodyLoader() {
}
void NavigationBodyLoader::OnReceiveResponse(
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
// This has already happened in the browser process.
NOTREACHED();
}
void NavigationBodyLoader::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
// This has already happened in the browser process.
NOTREACHED();
}

@ -107,10 +107,10 @@ class CONTENT_EXPORT NavigationBodyLoader
// network::mojom::URLLoaderClient
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback callback) override;

@ -10,8 +10,8 @@
#include "content/common/content_export.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "net/url_request/redirect_info.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/url_loader.mojom.h"
#include "services/network/public/mojom/url_response_head.mojom.h"
#include "url/gurl.h"
namespace content {
@ -23,9 +23,10 @@ struct CONTENT_EXPORT NavigationResponseOverrideParameters {
~NavigationResponseOverrideParameters();
std::vector<GURL> redirects;
std::vector<network::ResourceResponseHead> redirect_responses;
std::vector<network::mojom::URLResponseHeadPtr> redirect_responses;
std::vector<net::RedirectInfo> redirect_infos;
network::ResourceResponseHead response_head;
network::mojom::URLResponseHeadPtr response_head =
network::mojom::URLResponseHead::New();
mojo::ScopedDataPipeConsumerHandle response_body;
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints;
};

@ -632,14 +632,15 @@ void ResourceDispatcher::ContinueForNavigation(int request_id) {
DCHECK_EQ(response_override->redirect_responses.size(),
response_override->redirect_infos.size());
for (size_t i = 0; i < response_override->redirect_responses.size(); ++i) {
client_ptr->OnReceiveRedirect(response_override->redirect_infos[i],
response_override->redirect_responses[i]);
client_ptr->OnReceiveRedirect(
response_override->redirect_infos[i],
std::move(response_override->redirect_responses[i]));
// The request might have been cancelled while processing the redirect.
if (!GetPendingRequestInfo(request_id))
return;
}
client_ptr->OnReceiveResponse(response_override->response_head);
client_ptr->OnReceiveResponse(std::move(response_override->response_head));
// Abort if the request is cancelled.
if (!GetPendingRequestInfo(request_id))

@ -6,6 +6,7 @@
#include "content/renderer/loader/resource_dispatcher.h"
#include "net/url_request/redirect_info.h"
#include "services/network/public/cpp/resource_response.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h"

@ -15,6 +15,7 @@
#include "content/renderer/loader/resource_dispatcher.h"
#include "net/url_request/redirect_info.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/resource_response.h"
#include "third_party/blink/public/common/features.h"
namespace content {
@ -236,19 +237,20 @@ void URLLoaderClientImpl::Bind(
}
void URLLoaderClientImpl::OnReceiveResponse(
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
has_received_response_head_ = true;
if (NeedsStoringMessage()) {
StoreAndDispatch(
std::make_unique<DeferredOnReceiveResponse>(response_head));
} else {
resource_dispatcher_->OnReceivedResponse(request_id_, response_head);
resource_dispatcher_->OnReceivedResponse(request_id_,
std::move(response_head));
}
}
void URLLoaderClientImpl::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
DCHECK(!has_received_response_head_);
if (!bypass_redirect_checks_ &&
!IsRedirectSafe(last_loaded_url_, redirect_info.new_url)) {
@ -261,8 +263,8 @@ void URLLoaderClientImpl::OnReceiveRedirect(
StoreAndDispatch(std::make_unique<DeferredOnReceiveRedirect>(
redirect_info, response_head, task_runner_));
} else {
resource_dispatcher_->OnReceivedRedirect(request_id_, redirect_info,
response_head, task_runner_);
resource_dispatcher_->OnReceivedRedirect(
request_id_, redirect_info, std::move(response_head), task_runner_);
}
}

@ -24,7 +24,6 @@ struct RedirectInfo;
} // namespace net
namespace network {
struct ResourceResponseHead;
struct URLLoaderCompletionStatus;
} // namespace network
@ -61,10 +60,10 @@ class CONTENT_EXPORT URLLoaderClientImpl final
// network::mojom::URLLoaderClient implementation
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback ack_callback) override;

@ -14,6 +14,7 @@
#include "mojo/public/cpp/bindings/interface_ptr.h"
#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
#include "net/url_request/redirect_info.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
#include "testing/gtest/include/gtest/gtest.h"

@ -466,7 +466,7 @@ TEST_F(WebURLLoaderImplTest, ResponseOverride) {
request.SetPriority(blink::WebURLRequest::Priority::kVeryLow);
std::unique_ptr<NavigationResponseOverrideParameters> response_override(
new NavigationResponseOverrideParameters());
response_override->response_head.mime_type = kMimeType;
response_override->response_head->mime_type = kMimeType;
auto extra_data = std::make_unique<RequestExtraData>();
extra_data->set_navigation_response_override(std::move(response_override));
request.SetExtraData(std::move(extra_data));
@ -479,7 +479,8 @@ TEST_F(WebURLLoaderImplTest, ResponseOverride) {
response_override = dispatcher()->TakeNavigationResponseOverrideParams();
ASSERT_TRUE(response_override);
peer()->OnReceivedResponse(response_override->response_head);
peer()->OnReceivedResponse(
network::ResourceResponseHead(response_override->response_head));
EXPECT_TRUE(client()->did_receive_response());

@ -18,7 +18,7 @@ NavigationClient::~NavigationClient() {}
void NavigationClient::CommitNavigation(
mojom::CommonNavigationParamsPtr common_params,
mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
network::mojom::URLResponseHeadPtr response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
std::unique_ptr<blink::URLLoaderFactoryBundleInfo> subresource_loaders,

@ -21,7 +21,7 @@ class NavigationClient : mojom::NavigationClient {
void CommitNavigation(
mojom::CommonNavigationParamsPtr common_params,
mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
network::mojom::URLResponseHeadPtr response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
std::unique_ptr<blink::URLLoaderFactoryBundleInfo> subresource_loaders,

@ -498,8 +498,9 @@ void FillNavigationParamsRequest(
for (const auto& exchange : commit_params.prefetched_signed_exchanges) {
blink::WebURLResponse web_response;
WebURLLoaderImpl::PopulateURLResponse(
exchange->inner_url, exchange->inner_response, &web_response,
false /* report_security_info*/, -1 /* request_id */);
exchange->inner_url,
network::ResourceResponseHead(exchange->inner_response),
&web_response, false /* report_security_info*/, -1 /* request_id */);
navigation_params->prefetched_signed_exchanges.emplace_back(
std::make_unique<
blink::WebNavigationParams::PrefetchedSignedExchange>(
@ -3375,7 +3376,7 @@ void RenderFrameImpl::AllowBindings(int32_t enabled_bindings_flags) {
void RenderFrameImpl::CommitNavigation(
mojom::CommonNavigationParamsPtr common_params,
mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
network::mojom::URLResponseHeadPtr response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
std::unique_ptr<blink::URLLoaderFactoryBundleInfo>

@ -545,7 +545,7 @@ class CONTENT_EXPORT RenderFrameImpl
void CommitNavigation(
mojom::CommonNavigationParamsPtr common_params,
mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
network::mojom::URLResponseHeadPtr response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
std::unique_ptr<blink::URLLoaderFactoryBundleInfo>

@ -28,34 +28,34 @@ NavigationPreloadRequest::NavigationPreloadRequest(
NavigationPreloadRequest::~NavigationPreloadRequest() = default;
void NavigationPreloadRequest::OnReceiveResponse(
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
DCHECK(!response_);
response_ = std::make_unique<blink::WebURLResponse>();
// TODO(horo): Set report_security_info to true when DevTools is attached.
const bool report_security_info = false;
WebURLLoaderImpl::PopulateURLResponse(url_, response_head, response_.get(),
report_security_info,
-1 /* request_id */);
WebURLLoaderImpl::PopulateURLResponse(
url_, network::ResourceResponseHead(response_head), response_.get(),
report_security_info, -1 /* request_id */);
MaybeReportResponseToOwner();
}
void NavigationPreloadRequest::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) {
network::mojom::URLResponseHeadPtr response_head) {
DCHECK(!response_);
DCHECK(net::HttpResponseHeaders::IsRedirectResponseCode(
response_head.headers->response_code()));
response_head->headers->response_code()));
response_ = std::make_unique<blink::WebURLResponse>();
WebURLLoaderImpl::PopulateURLResponse(url_, response_head, response_.get(),
false /* report_security_info */,
-1 /* request_id */);
WebURLLoaderImpl::PopulateURLResponse(
url_, network::ResourceResponseHead(response_head), response_.get(),
false /* report_security_info */, -1 /* request_id */);
owner_->OnNavigationPreloadResponse(fetch_event_id_, std::move(response_),
mojo::ScopedDataPipeConsumerHandle());
// This will delete |this|.
owner_->OnNavigationPreloadComplete(
fetch_event_id_, response_head.response_start,
response_head.encoded_data_length, 0 /* encoded_body_length */,
fetch_event_id_, response_head->response_start,
response_head->encoded_data_length, 0 /* encoded_body_length */,
0 /* decoded_body_length */);
}

@ -37,10 +37,10 @@ class NavigationPreloadRequest final : public network::mojom::URLLoaderClient {
// network::mojom::URLLoaderClient:
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override;
network::mojom::URLResponseHeadPtr response_head) override;
void OnUploadProgress(int64_t current_position,
int64_t total_size,
OnUploadProgressCallback ack_callback) override;

@ -76,7 +76,7 @@ class HeaderRewritingURLLoaderClient : public network::mojom::URLLoaderClient {
private:
// network::mojom::URLLoaderClient implementation:
void OnReceiveResponse(
const network::ResourceResponseHead& response_head) override {
network::mojom::URLResponseHeadPtr response_head) override {
DCHECK(url_loader_client_.is_bound());
url_loader_client_->OnReceiveResponse(
rewrite_header_callback_.Run(response_head));
@ -84,7 +84,7 @@ class HeaderRewritingURLLoaderClient : public network::mojom::URLLoaderClient {
void OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head) override {
network::mojom::URLResponseHeadPtr response_head) override {
DCHECK(url_loader_client_.is_bound());
url_loader_client_->OnReceiveRedirect(
redirect_info, rewrite_header_callback_.Run(response_head));

@ -16,6 +16,7 @@
#include "mojo/public/cpp/bindings/receiver.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "net/url_request/redirect_info.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
#include "third_party/blink/public/common/service_worker/service_worker_status_code.h"
#include "third_party/blink/public/mojom/blob/blob.mojom.h"

@ -167,11 +167,11 @@ void DedicatedWorkerHostFactoryClient::OnScriptLoadStarted(
response_override_for_main_script_->url_loader_client_endpoints =
std::move(main_script_load_params->url_loader_client_endpoints);
response_override_for_main_script_->response_head =
main_script_load_params->response_head;
std::move(main_script_load_params->response_head);
response_override_for_main_script_->response_body =
std::move(main_script_load_params->response_body);
response_override_for_main_script_->redirect_responses =
main_script_load_params->redirect_response_heads;
std::move(main_script_load_params->redirect_response_heads);
response_override_for_main_script_->redirect_infos =
main_script_load_params->redirect_infos;

@ -73,11 +73,12 @@ EmbeddedSharedWorkerStub::EmbeddedSharedWorkerStub(
response_override_ = std::make_unique<NavigationResponseOverrideParameters>();
response_override_->url_loader_client_endpoints =
std::move(main_script_load_params->url_loader_client_endpoints);
response_override_->response_head = main_script_load_params->response_head;
response_override_->response_head =
std::move(main_script_load_params->response_head);
response_override_->response_body =
std::move(main_script_load_params->response_body);
response_override_->redirect_responses =
main_script_load_params->redirect_response_heads;
std::move(main_script_load_params->redirect_response_heads);
response_override_->redirect_infos = main_script_load_params->redirect_infos;
// If the network service crashes, then self-destruct so clients don't get

@ -6,6 +6,7 @@
#include "base/strings/string_util.h"
#include "net/http/http_util.h"
#include "services/network/public/cpp/resource_response.h"
#include "services/network/public/mojom/url_loader.mojom.h"
namespace content {

@ -251,7 +251,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::
}
void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveResponse(
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
if (current_request_uses_header_client_) {
// Use the headers we got from OnHeadersReceived as that'll contain
// Set-Cookie if it existed.
@ -269,7 +269,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveResponse(
void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& head) {
network::mojom::URLResponseHeadPtr head) {
if (redirect_url_ != redirect_info.new_url &&
!IsRedirectSafe(request_.url, redirect_info.new_url)) {
OnRequestError(

Some files were not shown because too many files have changed in this diff Show More