chore: bump chromium to 63be48daea281d4f8c834c2e707a7 (master) (#19923)

This commit is contained in:
Electron Bot 2019-09-18 15:58:00 -04:00 committed by Jeremy Apthorp
parent 104088b86b
commit eb2d2264d0
124 changed files with 1736 additions and 1410 deletions

View file

@ -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,

View file

@ -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()));

View file

@ -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.

View file

@ -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"

View file

@ -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() {

View file

@ -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.

View file

@ -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

View file

@ -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.