Update to Chromium version 123.0.6312.0 (#1262506)

- MacOS ARM64 Official builds are currently failing due to
  https://issues.chromium.org/issues/326898585
This commit is contained in:
Marshall Greenblatt
2024-02-22 13:36:15 -05:00
parent 2c5dd120c7
commit d4cf19db29
100 changed files with 837 additions and 799 deletions

View File

@@ -1349,16 +1349,14 @@ void ProxyURLLoaderFactory::SetDisconnectCallback(
// static
void ProxyURLLoaderFactory::CreateProxy(
content::BrowserContext* browser_context,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
network::URLLoaderFactoryBuilder& factory_builder,
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
header_client,
std::unique_ptr<InterceptedRequestHandler> request_handler) {
CEF_REQUIRE_UIT();
DCHECK(request_handler);
auto proxied_receiver = std::move(*factory_receiver);
mojo::PendingRemote<network::mojom::URLLoaderFactory> target_factory_remote;
*factory_receiver = target_factory_remote.InitWithNewPipeAndPassReceiver();
auto [factory_receiver, target_factory_remote] = factory_builder.Append();
mojo::PendingReceiver<network::mojom::TrustedURLLoaderHeaderClient>
header_client_receiver;
@@ -1373,7 +1371,7 @@ void ProxyURLLoaderFactory::CreateProxy(
CEF_POST_TASK(
CEF_IOT,
base::BindOnce(
&ProxyURLLoaderFactory::CreateOnIOThread, std::move(proxied_receiver),
&ProxyURLLoaderFactory::CreateOnIOThread, std::move(factory_receiver),
std::move(target_factory_remote), std::move(header_client_receiver),
base::Unretained(resource_context), std::move(request_handler)));
}

View File

@@ -16,6 +16,7 @@
#include "content/public/browser/web_contents.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "services/network/public/cpp/url_loader_factory_builder.h"
#include "services/network/public/mojom/network_context.mojom.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
@@ -146,7 +147,7 @@ class ProxyURLLoaderFactory
// Create a proxy object on the UI thread.
static void CreateProxy(
content::BrowserContext* browser_context,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
network::URLLoaderFactoryBuilder& factory_builder,
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
header_client,
std::unique_ptr<InterceptedRequestHandler> request_handler);

View File

@@ -35,54 +35,34 @@ scoped_refptr<URLLoaderFactoryGetter> URLLoaderFactoryGetter::Create(
auto loader_factory = browser_context->GetDefaultStoragePartition()
->GetURLLoaderFactoryForBrowserProcess();
mojo::PendingRemote<network::mojom::URLLoaderFactory> proxy_factory_remote;
mojo::PendingReceiver<network::mojom::URLLoaderFactory>
proxy_factory_receiver;
network::URLLoaderFactoryBuilder factory_builder;
// Create an intermediate pipe that can be used to proxy the request's
// URLLoaderFactory.
mojo::PendingRemote<network::mojom::URLLoaderFactory>
maybe_proxy_factory_remote;
mojo::PendingReceiver<network::mojom::URLLoaderFactory>
maybe_proxy_factory_receiver =
maybe_proxy_factory_remote.InitWithNewPipeAndPassReceiver();
bool should_proxy = false;
int render_process_id = -1;
if (render_frame_host) {
render_process_id = render_frame_host->GetProcess()->GetID();
// Allow DevTools to potentially inject itself into the proxy pipe.
should_proxy =
content::devtools_instrumentation::WillCreateURLLoaderFactory(
static_cast<content::RenderFrameHostImpl*>(render_frame_host),
false /* is_navigation */, false /* is_download */,
&maybe_proxy_factory_receiver, nullptr /* factory_override */);
content::devtools_instrumentation::WillCreateURLLoaderFactoryParams::
ForFrame(static_cast<content::RenderFrameHostImpl*>(render_frame_host))
.Run(false /* is_navigation */, false /* is_download */,
factory_builder, nullptr /* factory_override */);
}
auto browser_client = CefAppManager::Get()->GetContentClient()->browser();
// Allow the Content embedder to inject itself if it wants to.
should_proxy |= browser_client->WillCreateURLLoaderFactory(
browser_client->WillCreateURLLoaderFactory(
browser_context, render_frame_host, render_process_id,
content::ContentBrowserClient::URLLoaderFactoryType::kDocumentSubResource,
url::Origin(), absl::nullopt /* navigation_id */, ukm::SourceIdObj(),
&maybe_proxy_factory_receiver, nullptr /* header_client */,
factory_builder, nullptr /* header_client */,
nullptr /* bypass_redirect_checks */, nullptr /* disable_secure_dns */,
nullptr /* factory_override */,
nullptr /* navigation_response_task_runner */);
// If anyone above indicated that they care about proxying, pass the
// intermediate pipe along to the URLLoaderFactoryGetter.
if (should_proxy) {
proxy_factory_remote = std::move(maybe_proxy_factory_remote);
proxy_factory_receiver = std::move(maybe_proxy_factory_receiver);
}
return base::WrapRefCounted(new URLLoaderFactoryGetter(
loader_factory->Clone(), std::move(proxy_factory_remote),
std::move(proxy_factory_receiver)));
loader_factory->Clone(), std::move(factory_builder)));
}
// Based on CreateFactory from
@@ -104,25 +84,15 @@ URLLoaderFactoryGetter::GetURLLoaderFactory() {
auto loader_factory =
network::SharedURLLoaderFactory::Create(std::move(loader_factory_info_));
if (proxy_factory_receiver_.is_valid()) {
loader_factory->Clone(std::move(proxy_factory_receiver_));
lazy_factory_ =
base::MakeRefCounted<network::WrapperSharedURLLoaderFactory>(
std::move(proxy_factory_remote_));
} else {
lazy_factory_ = loader_factory;
}
lazy_factory_ = std::move(factory_builder_).Finish(loader_factory);
return lazy_factory_;
}
URLLoaderFactoryGetter::URLLoaderFactoryGetter(
std::unique_ptr<network::PendingSharedURLLoaderFactory> loader_factory_info,
mojo::PendingRemote<network::mojom::URLLoaderFactory> proxy_factory_remote,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>
proxy_factory_receiver)
network::URLLoaderFactoryBuilder factory_builder)
: loader_factory_info_(std::move(loader_factory_info)),
proxy_factory_remote_(std::move(proxy_factory_remote)),
proxy_factory_receiver_(std::move(proxy_factory_receiver)) {}
factory_builder_(std::move(factory_builder)) {}
URLLoaderFactoryGetter::~URLLoaderFactoryGetter() = default;

View File

@@ -9,6 +9,7 @@
#include "base/memory/ref_counted.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/sequenced_task_runner_helpers.h"
#include "services/network/public/cpp/url_loader_factory_builder.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
namespace content {
@@ -52,19 +53,14 @@ class URLLoaderFactoryGetter
URLLoaderFactoryGetter(std::unique_ptr<network::PendingSharedURLLoaderFactory>
loader_factory_info,
mojo::PendingRemote<network::mojom::URLLoaderFactory>
proxy_factory_remote,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>
proxy_factory_receiver);
network::URLLoaderFactoryBuilder factory_builder);
~URLLoaderFactoryGetter();
void DeleteOnCorrectThread() const;
std::unique_ptr<network::PendingSharedURLLoaderFactory> loader_factory_info_;
scoped_refptr<network::SharedURLLoaderFactory> lazy_factory_;
mojo::PendingRemote<network::mojom::URLLoaderFactory> proxy_factory_remote_;
mojo::PendingReceiver<network::mojom::URLLoaderFactory>
proxy_factory_receiver_;
network::URLLoaderFactoryBuilder factory_builder_;
scoped_refptr<base::SequencedTaskRunner> task_runner_;
};