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:

committed by
Commit Bot

parent
3b2bb8d44a
commit
81e294be8a
android_webview/browser/network_service
chrome
browser
chromeos
download
notification
extensions
guest_view
mime_handler_view
media
router
offline_pages
plugins
previews
safe_browsing
signin
chrome_signin_proxying_url_loader_factory.ccchrome_signin_url_loader_throttle.ccchrome_signin_url_loader_throttle_unittest.cc
ui
views
location_bar
common
renderer
subresource_redirect
chromecast/browser
components
data_reduction_proxy
content
download
internal
public
content
browser
about_url_loader_factory.cc
android
appcache
appcache_subresource_url_factory.ccappcache_update_url_loader_request.ccappcache_update_url_loader_request.h
blob_storage
data_url_loader_factory.ccdevtools
file_url_loader_factory.ccfileapi
frame_host
loader
navigation_loader_interceptor.hnavigation_url_loader_impl.ccprefetch_url_loader.ccprefetch_url_loader.h
service_worker
service_worker_fetch_dispatcher.ccservice_worker_new_script_loader.ccservice_worker_new_script_loader.hservice_worker_single_script_update_checker.ccservice_worker_single_script_update_checker.hservice_worker_test_utils.ccservice_worker_updated_script_loader.ccservice_worker_updated_script_loader.h
storage_partition_impl.ccstorage_partition_impl.hweb_package
bundled_exchanges_url_loader_factory.ccsigned_exchange_cert_fetcher.ccsigned_exchange_cert_fetcher.hsigned_exchange_cert_fetcher_unittest.ccsigned_exchange_loader.ccsigned_exchange_loader.hsigned_exchange_loader_unittest.ccsigned_exchange_prefetch_handler.ccsigned_exchange_prefetch_handler.hsigned_exchange_validity_pinger.ccsigned_exchange_validity_pinger.h
worker_host
common
input
mime_sniffing_url_loader.ccmime_sniffing_url_loader.hservice_worker
throttling_url_loader.ccthrottling_url_loader.hthrottling_url_loader_unittest.ccpublic
renderer
loader
child_url_loader_factory_bundle.ccnavigation_body_loader.ccnavigation_body_loader.hnavigation_response_override_parameters.hresource_dispatcher.cctest_request_peer.ccurl_loader_client_impl.ccurl_loader_client_impl.hurl_loader_client_impl_unittest.ccweb_url_loader_impl_unittest.cc
navigation_client.ccnavigation_client.hrender_frame_impl.ccrender_frame_impl.hservice_worker
navigation_preload_request.ccnavigation_preload_request.hservice_worker_subresource_loader.ccservice_worker_subresource_loader.h
worker
test
extensions
headless/test
services/network
cors
cross_origin_resource_policy_unittest.ccempty_url_loader_client.ccempty_url_loader_client.hpublic
cpp
BUILD.gnnetwork_ipc_param_traits.ccnetwork_ipc_param_traits.hresource_response.ccresource_response.hresource_response_info.hsimple_url_loader.cctypemaps.gniurl_response_head.typemapurl_response_head_mojom_traits.ccurl_response_head_mojom_traits.h
mojom
test
test_network_context_client.htest_url_loader_client.cctest_url_loader_client.htest_url_loader_factory.h
url_loader_unittest.ccstorage/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;
|
||||
|
1
components/data_reduction_proxy/content/common/data_reduction_proxy_url_loader_throttle_unittest.cc
1
components/data_reduction_proxy/content/common/data_reduction_proxy_url_loader_throttle_unittest.cc
@ -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
Reference in New Issue
Block a user