chore: bump chromium to 124.0.6351.0 (main) (#41514)

* chore: bump chromium in DEPS to 124.0.6339.0

* chore: update patches

* chore: bump chromium in DEPS to 124.0.6341.0

* chore: update patches

* chore: bump chromium in DEPS to 124.0.6343.0

* chore: bump chromium in DEPS to 124.0.6345.0

* chore: update patches

* build: temporarily patch out usage of reclient inputs cfg

* chore: implement missing OnPortConnectedStateChanged

Ref: 5039155

* fix: move NativeHandlers in extensions to new RendererAPIProvider

Ref: 5332839
Ref: 5334058

* chore: add missing websocket method

* refactor: use std::erase instead of base::Erase

Ref: https://issues.chromium.org/issues/40256229

* build: fix reclient inputs processor bug (workaround)

* fix: delay extensions::Dispatcher construction

* chore: bump chromium in DEPS to 124.0.6347.0

* chore: bump chromium in DEPS to 124.0.6349.0

* 5326217: [ViewsAX] Remove WebAXPlatformTreeManagerDelegate

5326217

* 5347916: Get origin from parent for process-isolated srcdoc.

5347916

* chore: patches fixup

* 4866222: [api] Deprecate vector<v8::Local>, part 1

4866222

* 5337304: Remove DXDiag telemetry code.

5337304

* 5328275: Implement watermark routing to the BrowserView

5328275

* [libc++] Rename __fwd/hash.h to __fwd/functional.h and add reference_wrapper

* chore: bump chromium in DEPS to 124.0.6351.0

* chore: update patches

* 5342763: [object] Fast path for adding props with existing transition

5342763

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <marshallofsound@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
electron-roller[bot] 2024-03-12 10:15:41 +01:00 committed by GitHub
parent 1252f92431
commit 150c2bcef9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
74 changed files with 537 additions and 331 deletions

View file

@ -32,8 +32,7 @@ GPUInfoManager::~GPUInfoManager() {
// https://chromium.googlesource.com/chromium/src.git/+/69.0.3497.106/content/browser/gpu/gpu_data_manager_impl_private.cc#838
bool GPUInfoManager::NeedsCompleteGpuInfoCollection() const {
#if BUILDFLAG(IS_WIN)
return gpu_data_manager_->DxdiagDx12VulkanRequested() &&
gpu_data_manager_->GetGPUInfo().dx_diagnostics.IsEmpty();
return gpu_data_manager_->DxdiagDx12VulkanRequested();
#else
return false;
#endif
@ -51,9 +50,6 @@ void GPUInfoManager::ProcessCompleteInfo() {
}
void GPUInfoManager::OnGpuInfoUpdate() {
// Ignore if called when not asked for complete GPUInfo
if (NeedsCompleteGpuInfoCollection())
return;
base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
FROM_HERE, base::BindOnce(&GPUInfoManager::ProcessCompleteInfo,
base::Unretained(this)));
@ -63,13 +59,8 @@ void GPUInfoManager::OnGpuInfoUpdate() {
void GPUInfoManager::CompleteInfoFetcher(
gin_helper::Promise<base::Value> promise) {
complete_info_promise_set_.emplace_back(std::move(promise));
if (NeedsCompleteGpuInfoCollection()) {
gpu_data_manager_->RequestDxdiagDx12VulkanVideoGpuInfoIfNeeded(
content::GpuDataManagerImpl::kGpuInfoRequestAll, /* delayed */ false);
} else {
GPUInfoManager::OnGpuInfoUpdate();
}
gpu_data_manager_->RequestDx12VulkanVideoGpuInfoIfNeeded(
content::GpuDataManagerImpl::kGpuInfoRequestAll, /* delayed */ false);
}
void GPUInfoManager::FetchCompleteInfo(

View file

@ -10,7 +10,6 @@
#include "base/containers/contains.h"
#include "base/functional/bind.h"
#include "base/ranges/algorithm.h"
#include "base/stl_util.h"
#include "gin/data_object_builder.h"
#include "services/device/public/cpp/hid/hid_blocklist.h"
#include "services/device/public/cpp/hid/hid_switches.h"
@ -350,7 +349,7 @@ bool HidChooserController::RemoveDeviceInfo(
auto find_it = device_map_.find(id);
DCHECK(find_it != device_map_.end());
auto& device_infos = find_it->second;
base::EraseIf(device_infos,
std::erase_if(device_infos,
[&device](const device::mojom::HidDeviceInfoPtr& d) {
return d->guid == device.guid;
});
@ -358,7 +357,7 @@ bool HidChooserController::RemoveDeviceInfo(
return false;
// A device was disconnected. Remove it from the chooser list.
device_map_.erase(find_it);
base::Erase(items_, id);
std::erase(items_, id);
return true;
}

View file

@ -64,7 +64,7 @@ void PrintViewManagerElectron::DidPrintToPdf(
PrintToPdfCallback callback,
print_to_pdf::PdfPrintResult result,
scoped_refptr<base::RefCountedMemory> memory) {
base::Erase(pdf_jobs_, cookie);
std::erase(pdf_jobs_, cookie);
std::move(callback).Run(result, memory);
}

View file

@ -55,6 +55,8 @@ class ElectronSerialDelegate : public content::SerialDelegate,
// SerialChooserContext::PortObserver:
void OnPortAdded(const device::mojom::SerialPortInfo& port) override;
void OnPortRemoved(const device::mojom::SerialPortInfo& port) override;
void OnPortConnectedStateChanged(
const device::mojom::SerialPortInfo& port) override {}
void OnPortManagerConnectionError() override;
void OnPermissionRevoked(const url::Origin& origin) override {}
void OnSerialChooserContextShutdown() override;

View file

@ -87,6 +87,8 @@ class SerialChooserContext : public KeyedService,
// SerialPortManagerClient implementation.
void OnPortAdded(device::mojom::SerialPortInfoPtr port) override;
void OnPortRemoved(device::mojom::SerialPortInfoPtr port) override;
void OnPortConnectedStateChanged(
device::mojom::SerialPortInfoPtr port) override {}
private:
void EnsurePortManagerConnection();

View file

@ -46,6 +46,8 @@ class SerialChooserController final : public SerialChooserContext::PortObserver,
// SerialChooserContext::PortObserver:
void OnPortAdded(const device::mojom::SerialPortInfo& port) override;
void OnPortRemoved(const device::mojom::SerialPortInfo& port) override;
void OnPortConnectedStateChanged(
const device::mojom::SerialPortInfo& port) override {}
void OnPortManagerConnectionError() override;
void OnPermissionRevoked(const url::Origin& origin) override {}
void OnSerialChooserContextShutdown() override;

View file

@ -8,7 +8,6 @@
#include <utility>
#include "base/containers/contains.h"
#include "base/containers/cxx20_erase.h"
#include "base/observer_list.h"
#include "base/observer_list_types.h"
#include "base/scoped_observation.h"
@ -34,8 +33,6 @@
namespace {
using ::content::UsbChooser;
electron::UsbChooserContext* GetChooserContext(
content::BrowserContext* browser_context) {
return electron::UsbChooserContextFactory::GetForBrowserContext(
@ -159,7 +156,7 @@ void ElectronUsbDelegate::AdjustProtectedInterfaceClasses(
classes = permission_manager->CheckProtectedUSBClasses(classes);
}
std::unique_ptr<UsbChooser> ElectronUsbDelegate::RunChooser(
std::unique_ptr<content::UsbChooser> ElectronUsbDelegate::RunChooser(
content::RenderFrameHost& frame,
blink::mojom::WebUsbRequestDeviceOptionsPtr options,
blink::mojom::WebUsbService::GetPermissionCallback callback) {

View file

@ -113,6 +113,8 @@ class SimpleURLLoaderWrapper
void OnDataUseUpdate(int32_t network_traffic_annotation_id_hash,
int64_t recv_bytes,
int64_t sent_bytes) override {}
void OnWebSocketConnectedToPrivateNetwork(
network::mojom::IPAddressSpace ip_address_space) override {}
void Clone(
mojo::PendingReceiver<network::mojom::URLLoaderNetworkServiceObserver>
observer) override;

View file

@ -4,51 +4,14 @@
#include "shell/renderer/extensions/electron_extensions_dispatcher_delegate.h"
#include <memory>
#include <set>
#include <string>
#include "chrome/renderer/extensions/api/extension_hooks_delegate.h"
#include "chrome/renderer/extensions/api/tabs_hooks_delegate.h"
#include "extensions/renderer/bindings/api_bindings_system.h"
#include "extensions/renderer/lazy_background_page_native_handler.h"
#include "extensions/renderer/module_system.h"
#include "extensions/renderer/native_extension_bindings_system.h"
#include "extensions/renderer/native_handler.h"
ElectronExtensionsDispatcherDelegate::ElectronExtensionsDispatcherDelegate() =
default;
ElectronExtensionsDispatcherDelegate::~ElectronExtensionsDispatcherDelegate() =
default;
void ElectronExtensionsDispatcherDelegate::RegisterNativeHandlers(
extensions::Dispatcher* dispatcher,
extensions::ModuleSystem* module_system,
extensions::NativeExtensionBindingsSystem* bindings_system,
extensions::ScriptContext* context) {
module_system->RegisterNativeHandler(
"lazy_background_page",
std::make_unique<extensions::LazyBackgroundPageNativeHandler>(context));
}
void ElectronExtensionsDispatcherDelegate::PopulateSourceMap(
extensions::ResourceBundleSourceMap* source_map) {}
void ElectronExtensionsDispatcherDelegate::RequireWebViewModules(
extensions::ScriptContext* context) {}
void ElectronExtensionsDispatcherDelegate::OnActiveExtensionsUpdated(
const std::set<std::string>& extension_ids) {}
void ElectronExtensionsDispatcherDelegate::InitializeBindingsSystem(
extensions::Dispatcher* dispatcher,
extensions::NativeExtensionBindingsSystem* bindings_system) {
extensions::APIBindingsSystem* bindings = bindings_system->api_system();
bindings->RegisterHooksDelegate(
"extension", std::make_unique<extensions::ExtensionHooksDelegate>(
bindings_system->messaging_service()));
bindings->RegisterHooksDelegate(
"tabs", std::make_unique<extensions::TabsHooksDelegate>(
bindings_system->messaging_service()));
}

View file

@ -24,19 +24,9 @@ class ElectronExtensionsDispatcherDelegate
private:
// extensions::DispatcherDelegate implementation.
void RegisterNativeHandlers(
extensions::Dispatcher* dispatcher,
extensions::ModuleSystem* module_system,
extensions::NativeExtensionBindingsSystem* bindings_system,
extensions::ScriptContext* context) override;
void PopulateSourceMap(
extensions::ResourceBundleSourceMap* source_map) override;
void RequireWebViewModules(extensions::ScriptContext* context) override;
void OnActiveExtensionsUpdated(
const std::set<std::string>& extension_ids) override;
void InitializeBindingsSystem(
extensions::Dispatcher* dispatcher,
extensions::NativeExtensionBindingsSystem* bindings_system) override;
};
#endif // ELECTRON_SHELL_RENDERER_EXTENSIONS_ELECTRON_EXTENSIONS_DISPATCHER_DELEGATE_H_

View file

@ -0,0 +1,49 @@
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "shell/renderer/extensions/electron_extensions_renderer_api_provider.h"
#include "chrome/renderer/extensions/api/extension_hooks_delegate.h"
#include "chrome/renderer/extensions/api/tabs_hooks_delegate.h"
#include "extensions/renderer/bindings/api_bindings_system.h"
#include "extensions/renderer/dispatcher.h"
#include "extensions/renderer/lazy_background_page_native_handler.h"
#include "extensions/renderer/module_system.h"
#include "extensions/renderer/native_extension_bindings_system.h"
#include "extensions/renderer/native_handler.h"
#include "extensions/renderer/resource_bundle_source_map.h"
#include "extensions/renderer/script_context.h"
namespace electron {
void ElectronExtensionsRendererAPIProvider::RegisterNativeHandlers(
extensions::ModuleSystem* module_system,
extensions::NativeExtensionBindingsSystem* bindings_system,
extensions::ScriptContext* context) {
module_system->RegisterNativeHandler(
"lazy_background_page",
std::make_unique<extensions::LazyBackgroundPageNativeHandler>(context));
}
void ElectronExtensionsRendererAPIProvider::AddBindingsSystemHooks(
extensions::Dispatcher* dispatcher,
extensions::NativeExtensionBindingsSystem* bindings_system) {
extensions::APIBindingsSystem* bindings = bindings_system->api_system();
bindings->RegisterHooksDelegate(
"extension", std::make_unique<extensions::ExtensionHooksDelegate>(
bindings_system->messaging_service()));
bindings->RegisterHooksDelegate(
"tabs", std::make_unique<extensions::TabsHooksDelegate>(
bindings_system->messaging_service()));
}
void ElectronExtensionsRendererAPIProvider::PopulateSourceMap(
extensions::ResourceBundleSourceMap* source_map) {}
void ElectronExtensionsRendererAPIProvider::EnableCustomElementAllowlist() {}
void ElectronExtensionsRendererAPIProvider::RequireWebViewModules(
extensions::ScriptContext* context) {}
} // namespace electron

View file

@ -0,0 +1,40 @@
// Copyright (c) 2017 GitHub, Inc.
// Use of this source code is governed by the MIT license that can be
// found in the LICENSE file.
#ifndef ELECTRON_SHELL_RENDERER_EXTENSIONS_ELECTRON_EXTENSIONS_RENDERER_API_PROVIDER_H_
#define ELECTRON_SHELL_RENDERER_EXTENSIONS_ELECTRON_EXTENSIONS_RENDERER_API_PROVIDER_H_
#include <memory>
#include "extensions/renderer/extensions_renderer_api_provider.h"
namespace electron {
class ElectronExtensionsRendererAPIProvider
: public extensions::ExtensionsRendererAPIProvider {
public:
ElectronExtensionsRendererAPIProvider() = default;
ElectronExtensionsRendererAPIProvider(
const ElectronExtensionsRendererAPIProvider&) = delete;
ElectronExtensionsRendererAPIProvider& operator=(
const ElectronExtensionsRendererAPIProvider&) = delete;
~ElectronExtensionsRendererAPIProvider() override = default;
// ExtensionsRendererAPIProvider:
void RegisterNativeHandlers(
extensions::ModuleSystem* module_system,
extensions::NativeExtensionBindingsSystem* bindings_system,
extensions::ScriptContext* context) override;
void AddBindingsSystemHooks(
extensions::Dispatcher* dispatcher,
extensions::NativeExtensionBindingsSystem* bindings_system) override;
void PopulateSourceMap(
extensions::ResourceBundleSourceMap* source_map) override;
void EnableCustomElementAllowlist() override;
void RequireWebViewModules(extensions::ScriptContext* context) override;
};
} // namespace electron
#endif // ELECTRON_SHELL_RENDERER_EXTENSIONS_ELECTRON_EXTENSIONS_RENDERER_API_PROVIDER_H_

View file

@ -15,11 +15,12 @@
namespace electron {
ElectronExtensionsRendererClient::ElectronExtensionsRendererClient()
: dispatcher_{std::make_unique<extensions::Dispatcher>(
std::make_unique<ElectronExtensionsDispatcherDelegate>(),
std::vector<
std::unique_ptr<extensions::ExtensionsRendererAPIProvider>>{})} {
ElectronExtensionsRendererClient::ElectronExtensionsRendererClient() {}
void ElectronExtensionsRendererClient::RenderThreadStarted() {
dispatcher_ = std::make_unique<extensions::Dispatcher>(
std::make_unique<ElectronExtensionsDispatcherDelegate>(),
std::move(api_providers_));
dispatcher_->OnRenderThreadStarted(content::RenderThread::Get());
}

View file

@ -31,6 +31,8 @@ class ElectronExtensionsRendererClient
ElectronExtensionsRendererClient& operator=(
const ElectronExtensionsRendererClient&) = delete;
void RenderThreadStarted();
// ExtensionsRendererClient implementation.
bool IsIncognitoProcess() const override;
int GetLowestIsolatedWorldId() const override;

View file

@ -95,6 +95,7 @@
#include "extensions/renderer/extension_web_view_helper.h"
#include "extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container_manager.h"
#include "shell/common/extensions/electron_extensions_client.h"
#include "shell/renderer/extensions/electron_extensions_renderer_api_provider.h"
#include "shell/renderer/extensions/electron_extensions_renderer_client.h"
#endif // BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS)
@ -242,6 +243,9 @@ void RendererClientBase::RenderThreadStarted() {
extensions_renderer_client_ =
std::make_unique<ElectronExtensionsRendererClient>();
extensions_renderer_client_->AddAPIProvider(
std::make_unique<ElectronExtensionsRendererAPIProvider>());
extensions_renderer_client_->RenderThreadStarted();
extensions::ExtensionsRendererClient::Set(extensions_renderer_client_.get());
thread->AddObserver(extensions_renderer_client_->GetDispatcher());