chore: bump chromium to 63be48daea281d4f8c834c2e707a7 (master) (#19923)
This commit is contained in:
parent
104088b86b
commit
eb2d2264d0
124 changed files with 1736 additions and 1410 deletions
|
@ -20,6 +20,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 "shell/common/asar/archive.h"
|
||||
#include "shell/common/asar/asar_util.h"
|
||||
|
||||
|
@ -298,8 +299,8 @@ void CreateAsarURLLoader(
|
|||
network::mojom::URLLoaderRequest loader,
|
||||
network::mojom::URLLoaderClientPtr client,
|
||||
scoped_refptr<net::HttpResponseHeaders> extra_response_headers) {
|
||||
auto task_runner = base::CreateSequencedTaskRunnerWithTraits(
|
||||
{base::MayBlock(), base::TaskPriority::USER_VISIBLE,
|
||||
auto task_runner = base::CreateSequencedTaskRunner(
|
||||
{base::ThreadPool(), base::MayBlock(), base::TaskPriority::USER_VISIBLE,
|
||||
base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN});
|
||||
task_runner->PostTask(
|
||||
FROM_HERE, base::BindOnce(&AsarURLLoader::CreateAndStart, request,
|
||||
|
|
|
@ -19,12 +19,12 @@ NetworkContextService::NetworkContextService(content::BrowserContext* context)
|
|||
|
||||
NetworkContextService::~NetworkContextService() = default;
|
||||
|
||||
network::mojom::NetworkContextPtr
|
||||
mojo::Remote<network::mojom::NetworkContext>
|
||||
NetworkContextService::CreateNetworkContext() {
|
||||
network::mojom::NetworkContextPtr network_context;
|
||||
mojo::Remote<network::mojom::NetworkContext> network_context;
|
||||
|
||||
content::GetNetworkService()->CreateNetworkContext(
|
||||
MakeRequest(&network_context),
|
||||
network_context.BindNewPipeAndPassReceiver(),
|
||||
CreateNetworkContextParams(browser_context_->IsOffTheRecord(),
|
||||
browser_context_->GetPath()));
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "base/files/file_path.h"
|
||||
#include "chrome/browser/net/proxy_config_monitor.h"
|
||||
#include "components/keyed_service/core/keyed_service.h"
|
||||
#include "mojo/public/cpp/bindings/remote.h"
|
||||
#include "services/network/public/mojom/network_context.mojom.h"
|
||||
#include "shell/browser/atom_browser_context.h"
|
||||
|
||||
|
@ -24,7 +25,7 @@ class NetworkContextService : public KeyedService {
|
|||
NetworkContextService& operator=(const NetworkContextService&) = delete;
|
||||
|
||||
// Creates a NetworkContext for the BrowserContext.
|
||||
network::mojom::NetworkContextPtr CreateNetworkContext();
|
||||
mojo::Remote<network::mojom::NetworkContext> CreateNetworkContext();
|
||||
|
||||
private:
|
||||
// Creates parameters for the NetworkContext.
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
#include "mojo/public/cpp/bindings/strong_binding.h"
|
||||
#include "mojo/public/cpp/system/data_pipe_producer.h"
|
||||
#include "services/network/public/cpp/resource_response.h"
|
||||
#include "services/network/public/mojom/url_loader.mojom.h"
|
||||
#include "v8/include/v8.h"
|
||||
|
||||
|
|
|
@ -49,8 +49,7 @@ ProxyingURLLoaderFactory::InProgressRequest::InProgressRequest(
|
|||
proxied_client_binding_(this),
|
||||
// TODO(zcbenz): We should always use "extraHeaders" mode to be compatible
|
||||
// with old APIs.
|
||||
has_any_extra_headers_listeners_(false),
|
||||
header_client_binding_(this) {
|
||||
has_any_extra_headers_listeners_(false) {
|
||||
// If there is a client error, clean up the request.
|
||||
target_client_.set_connection_error_handler(base::BindOnce(
|
||||
&ProxyingURLLoaderFactory::InProgressRequest::OnRequestError,
|
||||
|
@ -78,10 +77,11 @@ void ProxyingURLLoaderFactory::InProgressRequest::UpdateRequestInfo() {
|
|||
info_.emplace(extensions::WebRequestInfoInitParams(
|
||||
request_id_, factory_->render_process_id_, request_.render_frame_id,
|
||||
nullptr, routing_id_, request_for_info, false,
|
||||
!(options_ & network::mojom::kURLLoadOptionSynchronous)));
|
||||
!(options_ & network::mojom::kURLLoadOptionSynchronous),
|
||||
factory_->IsForServiceWorkerScript()));
|
||||
|
||||
current_request_uses_header_client_ =
|
||||
factory_->url_loader_header_client_binding_ &&
|
||||
factory_->url_loader_header_client_receiver_.is_bound() &&
|
||||
network_service_request_id_ != 0 &&
|
||||
false /* TODO(zcbenz): HasExtraHeadersListenerForRequest */;
|
||||
}
|
||||
|
@ -125,8 +125,8 @@ void ProxyingURLLoaderFactory::InProgressRequest::RestartInternal() {
|
|||
|
||||
// Pause the header client, since we want to wait until OnBeforeRequest has
|
||||
// finished before processing any future events.
|
||||
if (header_client_binding_)
|
||||
header_client_binding_.PauseIncomingMethodCallProcessing();
|
||||
if (header_client_receiver_.is_bound())
|
||||
header_client_receiver_.Pause();
|
||||
return;
|
||||
}
|
||||
DCHECK_EQ(net::OK, result);
|
||||
|
@ -188,7 +188,7 @@ void ProxyingURLLoaderFactory::InProgressRequest::ResumeReadingBodyFromNet() {
|
|||
}
|
||||
|
||||
void ProxyingURLLoaderFactory::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.
|
||||
|
@ -206,7 +206,7 @@ void ProxyingURLLoaderFactory::InProgressRequest::OnReceiveResponse(
|
|||
|
||||
void ProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect(
|
||||
const net::RedirectInfo& redirect_info,
|
||||
const network::ResourceResponseHead& head) {
|
||||
network::mojom::URLResponseHeadPtr head) {
|
||||
// Note: In Electron we don't check IsRedirectSafe.
|
||||
|
||||
if (current_request_uses_header_client_) {
|
||||
|
@ -267,8 +267,8 @@ void ProxyingURLLoaderFactory::InProgressRequest::OnComplete(
|
|||
}
|
||||
|
||||
void ProxyingURLLoaderFactory::InProgressRequest::OnLoaderCreated(
|
||||
network::mojom::TrustedHeaderClientRequest request) {
|
||||
header_client_binding_.Bind(std::move(request));
|
||||
mojo::PendingReceiver<network::mojom::TrustedHeaderClient> receiver) {
|
||||
header_client_receiver_.Bind(std::move(receiver));
|
||||
}
|
||||
|
||||
void ProxyingURLLoaderFactory::InProgressRequest::OnBeforeSendHeaders(
|
||||
|
@ -408,8 +408,8 @@ void ProxyingURLLoaderFactory::InProgressRequest::ContinueToStartRequest(
|
|||
if (proxied_client_binding_.is_bound())
|
||||
proxied_client_binding_.ResumeIncomingMethodCallProcessing();
|
||||
|
||||
if (header_client_binding_)
|
||||
header_client_binding_.ResumeIncomingMethodCallProcessing();
|
||||
if (header_client_receiver_.is_bound())
|
||||
header_client_receiver_.Resume();
|
||||
|
||||
if (!target_loader_.is_bound() && factory_->target_factory_.is_bound()) {
|
||||
// No extensions have cancelled us up to this point, so it's now OK to
|
||||
|
@ -429,7 +429,7 @@ void ProxyingURLLoaderFactory::InProgressRequest::ContinueToStartRequest(
|
|||
|
||||
// From here the lifecycle of this request is driven by subsequent events on
|
||||
// either |proxy_loader_binding_|, |proxy_client_binding_|, or
|
||||
// |header_client_binding_|.
|
||||
// |header_client_receiver_|.
|
||||
}
|
||||
|
||||
void ProxyingURLLoaderFactory::InProgressRequest::
|
||||
|
@ -489,7 +489,7 @@ void ProxyingURLLoaderFactory::InProgressRequest::ContinueToResponseStarted(
|
|||
// These will get re-bound if a new request is initiated by
|
||||
// |FollowRedirect()|.
|
||||
proxied_client_binding_.Close();
|
||||
header_client_binding_.Close();
|
||||
header_client_receiver_.reset();
|
||||
target_loader_.reset();
|
||||
|
||||
ContinueToBeforeRedirect(redirect_info, net::OK);
|
||||
|
@ -546,7 +546,7 @@ void ProxyingURLLoaderFactory::InProgressRequest::
|
|||
// the load with it gives unexpected results. See
|
||||
// https://crbug.com/882661#c72.
|
||||
proxied_client_binding_.Close();
|
||||
header_client_binding_.Close();
|
||||
header_client_receiver_.reset();
|
||||
target_loader_.reset();
|
||||
|
||||
constexpr int kInternalRedirectStatusCode = 307;
|
||||
|
@ -654,11 +654,13 @@ ProxyingURLLoaderFactory::ProxyingURLLoaderFactory(
|
|||
int render_process_id,
|
||||
network::mojom::URLLoaderFactoryRequest loader_request,
|
||||
network::mojom::URLLoaderFactoryPtrInfo target_factory_info,
|
||||
network::mojom::TrustedURLLoaderHeaderClientRequest header_client_request)
|
||||
mojo::PendingReceiver<network::mojom::TrustedURLLoaderHeaderClient>
|
||||
header_client_receiver,
|
||||
content::ContentBrowserClient::URLLoaderFactoryType loader_factory_type)
|
||||
: web_request_api_(web_request_api),
|
||||
intercepted_handlers_(intercepted_handlers),
|
||||
render_process_id_(render_process_id),
|
||||
url_loader_header_client_binding_(this) {
|
||||
loader_factory_type_(loader_factory_type) {
|
||||
target_factory_.Bind(std::move(target_factory_info));
|
||||
target_factory_.set_connection_error_handler(base::BindOnce(
|
||||
&ProxyingURLLoaderFactory::OnTargetFactoryError, base::Unretained(this)));
|
||||
|
@ -666,8 +668,8 @@ ProxyingURLLoaderFactory::ProxyingURLLoaderFactory(
|
|||
proxy_bindings_.set_connection_error_handler(base::BindRepeating(
|
||||
&ProxyingURLLoaderFactory::OnProxyBindingError, base::Unretained(this)));
|
||||
|
||||
if (header_client_request)
|
||||
url_loader_header_client_binding_.Bind(std::move(header_client_request));
|
||||
if (header_client_receiver)
|
||||
url_loader_header_client_receiver_.Bind(std::move(header_client_receiver));
|
||||
}
|
||||
|
||||
ProxyingURLLoaderFactory::~ProxyingURLLoaderFactory() = default;
|
||||
|
@ -731,14 +733,19 @@ void ProxyingURLLoaderFactory::Clone(
|
|||
|
||||
void ProxyingURLLoaderFactory::OnLoaderCreated(
|
||||
int32_t request_id,
|
||||
network::mojom::TrustedHeaderClientRequest request) {
|
||||
mojo::PendingReceiver<network::mojom::TrustedHeaderClient> receiver) {
|
||||
auto it = network_request_id_to_web_request_id_.find(request_id);
|
||||
if (it == network_request_id_to_web_request_id_.end())
|
||||
return;
|
||||
|
||||
auto request_it = requests_.find(it->second);
|
||||
DCHECK(request_it != requests_.end());
|
||||
request_it->second->OnLoaderCreated(std::move(request));
|
||||
request_it->second->OnLoaderCreated(std::move(receiver));
|
||||
}
|
||||
|
||||
bool ProxyingURLLoaderFactory::IsForServiceWorkerScript() const {
|
||||
return loader_factory_type_ == content::ContentBrowserClient::
|
||||
URLLoaderFactoryType::kServiceWorkerScript;
|
||||
}
|
||||
|
||||
void ProxyingURLLoaderFactory::OnTargetFactoryError() {
|
||||
|
|
|
@ -12,7 +12,9 @@
|
|||
#include <vector>
|
||||
|
||||
#include "base/optional.h"
|
||||
#include "content/public/browser/content_browser_client.h"
|
||||
#include "extensions/browser/api/web_request/web_request_info.h"
|
||||
#include "mojo/public/cpp/bindings/receiver.h"
|
||||
#include "services/network/public/cpp/resource_request.h"
|
||||
#include "services/network/public/cpp/resource_response.h"
|
||||
#include "services/network/public/mojom/network_context.mojom.h"
|
||||
|
@ -101,9 +103,9 @@ class ProxyingURLLoaderFactory
|
|||
void ResumeReadingBodyFromNet() 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;
|
||||
|
@ -113,7 +115,8 @@ class ProxyingURLLoaderFactory
|
|||
mojo::ScopedDataPipeConsumerHandle body) override;
|
||||
void OnComplete(const network::URLLoaderCompletionStatus& status) override;
|
||||
|
||||
void OnLoaderCreated(network::mojom::TrustedHeaderClientRequest request);
|
||||
void OnLoaderCreated(
|
||||
mojo::PendingReceiver<network::mojom::TrustedHeaderClient> receiver);
|
||||
|
||||
// network::mojom::TrustedHeaderClient:
|
||||
void OnBeforeSendHeaders(const net::HttpRequestHeaders& headers,
|
||||
|
@ -172,7 +175,8 @@ class ProxyingURLLoaderFactory
|
|||
bool current_request_uses_header_client_ = false;
|
||||
OnBeforeSendHeadersCallback on_before_send_headers_callback_;
|
||||
OnHeadersReceivedCallback on_headers_received_callback_;
|
||||
mojo::Binding<network::mojom::TrustedHeaderClient> header_client_binding_;
|
||||
mojo::Receiver<network::mojom::TrustedHeaderClient> header_client_receiver_{
|
||||
this};
|
||||
|
||||
// If |has_any_extra_headers_listeners_| is set to false and a redirect is
|
||||
// in progress, this stores the parameters to FollowRedirect that came from
|
||||
|
@ -200,8 +204,9 @@ class ProxyingURLLoaderFactory
|
|||
int render_process_id,
|
||||
network::mojom::URLLoaderFactoryRequest loader_request,
|
||||
network::mojom::URLLoaderFactoryPtrInfo target_factory_info,
|
||||
network::mojom::TrustedURLLoaderHeaderClientRequest
|
||||
header_client_request);
|
||||
mojo::PendingReceiver<network::mojom::TrustedURLLoaderHeaderClient>
|
||||
header_client_receiver,
|
||||
content::ContentBrowserClient::URLLoaderFactoryType loader_factory_type);
|
||||
~ProxyingURLLoaderFactory() override;
|
||||
|
||||
// network::mojom::URLLoaderFactory:
|
||||
|
@ -218,10 +223,13 @@ class ProxyingURLLoaderFactory
|
|||
// network::mojom::TrustedURLLoaderHeaderClient:
|
||||
void OnLoaderCreated(
|
||||
int32_t request_id,
|
||||
network::mojom::TrustedHeaderClientRequest request) override;
|
||||
mojo::PendingReceiver<network::mojom::TrustedHeaderClient> receiver)
|
||||
override;
|
||||
|
||||
WebRequestAPI* web_request_api() { return web_request_api_; }
|
||||
|
||||
bool IsForServiceWorkerScript() const;
|
||||
|
||||
private:
|
||||
void OnTargetFactoryError();
|
||||
void OnProxyBindingError();
|
||||
|
@ -243,8 +251,10 @@ class ProxyingURLLoaderFactory
|
|||
const int render_process_id_;
|
||||
mojo::BindingSet<network::mojom::URLLoaderFactory> proxy_bindings_;
|
||||
network::mojom::URLLoaderFactoryPtr target_factory_;
|
||||
mojo::Binding<network::mojom::TrustedURLLoaderHeaderClient>
|
||||
url_loader_header_client_binding_;
|
||||
mojo::Receiver<network::mojom::TrustedURLLoaderHeaderClient>
|
||||
url_loader_header_client_receiver_{this};
|
||||
const content::ContentBrowserClient::URLLoaderFactoryType
|
||||
loader_factory_type_;
|
||||
|
||||
// Mapping from our own internally generated request ID to an
|
||||
// InProgressRequest instance.
|
||||
|
|
|
@ -111,7 +111,7 @@ class SystemNetworkContextManager::URLLoaderFactoryForSystem
|
|||
};
|
||||
|
||||
network::mojom::NetworkContext* SystemNetworkContextManager::GetContext() {
|
||||
if (!network_context_ || network_context_.encountered_error()) {
|
||||
if (!network_context_ || !network_context_.is_connected()) {
|
||||
// This should call into OnNetworkServiceCreated(), which will re-create
|
||||
// the network service, if needed. There's a chance that it won't be
|
||||
// invoked, if the NetworkContext has encountered an error but the
|
||||
|
@ -201,8 +201,10 @@ void SystemNetworkContextManager::OnNetworkServiceCreated(
|
|||
|
||||
// The system NetworkContext must be created first, since it sets
|
||||
// |primary_network_context| to true.
|
||||
network_service->CreateNetworkContext(MakeRequest(&network_context_),
|
||||
CreateNetworkContextParams());
|
||||
network_context_.reset();
|
||||
network_service->CreateNetworkContext(
|
||||
network_context_.BindNewPipeAndPassReceiver(),
|
||||
CreateNetworkContextParams());
|
||||
}
|
||||
|
||||
network::mojom::NetworkContextParamsPtr
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include "base/memory/ref_counted.h"
|
||||
#include "base/optional.h"
|
||||
#include "chrome/browser/net/proxy_config_monitor.h"
|
||||
#include "mojo/public/cpp/bindings/remote.h"
|
||||
#include "services/network/public/mojom/network_context.mojom.h"
|
||||
#include "services/network/public/mojom/network_service.mojom.h"
|
||||
|
||||
|
@ -91,7 +92,7 @@ class SystemNetworkContextManager {
|
|||
|
||||
// NetworkContext using the network service, if the network service is
|
||||
// enabled. nullptr, otherwise.
|
||||
network::mojom::NetworkContextPtr network_context_;
|
||||
mojo::Remote<network::mojom::NetworkContext> network_context_;
|
||||
|
||||
// URLLoaderFactory backed by the NetworkContext returned by GetContext(), so
|
||||
// consumers don't all need to create their own factory.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue