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 WebAXPlatformTreeManagerDelegate5326217
* 5347916: Get origin from parent for process-isolated srcdoc.5347916
* chore: patches fixup * 4866222: [api] Deprecate vector<v8::Local>, part 14866222
* 5337304: Remove DXDiag telemetry code.5337304
* 5328275: Implement watermark routing to the BrowserView5328275
* [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 transition5342763
--------- 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:
parent
1252f92431
commit
150c2bcef9
74 changed files with 537 additions and 331 deletions
|
@ -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(
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
|
|
|
@ -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_
|
||||
|
|
|
@ -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
|
|
@ -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_
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
@ -31,6 +31,8 @@ class ElectronExtensionsRendererClient
|
|||
ElectronExtensionsRendererClient& operator=(
|
||||
const ElectronExtensionsRendererClient&) = delete;
|
||||
|
||||
void RenderThreadStarted();
|
||||
|
||||
// ExtensionsRendererClient implementation.
|
||||
bool IsIncognitoProcess() const override;
|
||||
int GetLowestIsolatedWorldId() const override;
|
||||
|
|
|
@ -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());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue