chore: bump chromium to 137.0.7128.1 (main) (#46482)

* chore: bump chromium in DEPS to 137.0.7107.0

* chore: bump chromium in DEPS to 137.0.7109.0

* chore: bump chromium in DEPS to 137.0.7111.0

* chore: bump chromium in DEPS to 137.0.7113.0

* 6384240: Remove double-declaration for accessibility on macOS | 6384240

* 6422872: Remove unused includes in isolation_info_mojom_traits.h | 6422872

* chore: update patches

* 6400733: Avoid ipc_message_macros.h usage in some foo_param_traits_macros.h files | 6400733

* chore: update patches

* 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410

* chore: iwyu

* refactor: prefer value initialization over memset()

From the looks up upstream commits in base/, it looks like memset()
could trigger `-Wunsafe-buffer-usage` warnings soon?

Value initialization is more C++ish and less error-prone anyway,
due to memset()'s easily swappable parameters.

* refactor: NotifyIcon::InitIconData() returns a NOTIFYICONDATA

This follows F.20 in the C++ Core Guidelines and also removes the need
for memset()

* 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410

remove all uses of:

- strcmp()

* fixup!  6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410

* 6433203: Add a PassKey to RegisterDeleteDelegateCallback(). | 6433203

* chore: bump chromium in DEPS to 137.0.7115.0

* 6387077: [PermissionOptions] Generalize PermissionRequestDescription | 6387077

* chore: update patches

* 6387077: [PermissionOptions] Generalize PermissionRequestDescription | 6387077

* fix: add pragma for MacSDK unsafe buffers | 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410

* chore: bump chromium in DEPS to 137.0.7117.0

* chore: update patches

* chore: update filesnames.libcxx.gni

* 6431756: Replace SetOwnedByWidget() bool arg with a PassKey. | 6431756

* 6387077: [PermissionOptions] Generalize PermissionRequestDescription | 6387077

* 6428345: Remove ExtensionService usage from ChromeExtensionRegistrarDelegate | 6428345

* 6384315: Migrate extensions_enabled from ExtensionService to Registrar | 6384315

* 6428749: [extensions] Refactor ExtensionService for AddNewAndUpdateExtension. | 6428749

* chore: bump chromium in DEPS to 137.0.7119.0

* 6440290: corner-shape: support inset shadow | 6440290

* 6429230: FSA: Move blocked paths to the PermissionContext class | 6429230

* chore: update patches

* chore: bump chromium in DEPS to 137.0.7121.0

* chore: update patches

* fix: partially revert 6443473: Remove ItemDelete from the Mac version of AppleKeychain | 6443473

* fix: update filenames.libcxx.gni

* chore: bump chromium in DEPS to 137.0.7123.0

* chore: update patches

* chore: "grandfather in" electron views too

Lock further access to View::set_owned_by_client() | 6448510

* chore: update feat_corner_smoothing_css_rule_and_blink_painting.patch

corner-shape: support inset shadow | 6440290

* refactor: grandfather in AutofillPopupView as a subclass of WidgetDelegateView

Add a PassKey for std::make_unique<WidgetDelegateView>() | 6442265

* Provide dbus appmenu information on Wayland | 6405535

* [extensions] Move OnExtensionInstalled out of ExtensionService. | 6443325

* refactor: grandfather in NativeWindowViews for delete callbacks

6433203: Add a PassKey to RegisterDeleteDelegateCallback(). | 6433203

* chore: merge the four "grandfather" patches into one

* [A11yPerformance] Remove IsAccessibilityAllowed() | 6404386: [A11yPerformance] Remove IsAccessibilityAllowed() | 6404386

NB: the changes here are copied from the upstream changes in
chrome/browser/ui/webui/accessibility/accessibility_ui.cc

* 6420753: [PermissionOptions] Use PermissionDescriptorPtr in PermissionController | 6420753

* 6429573: [accessibility] Move mode change out of AccessibilityNotificationWaiter | 6429573

* chore: e patches all

* 6419936: [win] Change ScreenWin public static methods to virtual | 6419936

* 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410

remove all uses of:

- fprintf()
- fputs()
- snprintf()
- vsnprintf()

* fix: size conversion FTBFS on Win

* 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410

remove all uses of:

- wcscpy_s()

* 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410

remove all uses of:

- wcsncpy_s()

* chore: update mas_avoid_private_macos_api_usage.patch.patch

6394283: Remove double-declaration for accessibility on iOS | 6394283

Lots of context shear in this commit but the only interesting part is:

-+  return nullptr;
++  return {};

Which is needed because the return type is sometimes not a pointer.

* chore: e patches all

* chore: disable -Wmacro-redefined warning in electron_main_win.cc

* chore: bump chromium in DEPS to 137.0.7123.5

* refactor: patch electron PermissionTypes into blink

6387077: [PermissionOptions] Generalize PermissionRequestDescription | 6387077

* chore: e patches all

* chore: remove the box_painter_base.cc part of feat_corner_smoothing_css_rule_and_blink_painting.patch

as per code review @ https://github.com/electron/electron/pull/46482#pullrequestreview-2777338370

* test: enable window-smaller-than-64x64 test on Linux

* chore: bump chromium in DEPS to 137.0.7124.1

* chore: bump chromium in DEPS to 137.0.7125.1

* chore: bump chromium in DEPS to 137.0.7127.3

* 6459201: [Extensions] Remove ExtensionSystem::FinishDelayedInstallationIfReady() | 6459201

* 6454796: [Extensions] Move (most) registrar delayed install logic to //extensions | 6454796

* chore: bump chromium in DEPS to 137.0.7128.1

* chore: e patches all

* chore: node ./script/gen-libc++-filenames.js

* [views] Gate DesktopWindowTreeHostWin::window_enlargement_ behind flag

Refs 6428649

* feat: allow opt-out animated_content_sampler.

Refs 6438681

* Trigger CI

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
This commit is contained in:
electron-roller[bot] 2025-04-22 15:53:29 -04:00 committed by GitHub
parent d0e13cc262
commit dd03cceda0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
145 changed files with 1414 additions and 1780 deletions

View file

@ -13,6 +13,7 @@
#include "base/check_op.h"
#include "base/containers/fixed_flat_map.h"
#include "base/containers/span.h"
#include "base/memory/raw_ptr.h"
#include "base/notreached.h"
#include "base/sequence_checker.h"
@ -151,20 +152,13 @@ class BufferDataSource : public mojo::DataPipeProducer::DataSource {
private:
// mojo::DataPipeProducer::DataSource:
[[nodiscard]] uint64_t GetLength() const override { return buffer_.size(); }
ReadResult Read(uint64_t offset, base::span<char> buffer) override {
ReadResult result;
if (offset <= buffer_.size()) {
size_t readable_size = buffer_.size() - offset;
size_t writable_size = buffer.size();
size_t copyable_size = std::min(readable_size, writable_size);
if (copyable_size > 0) {
memcpy(buffer.data(), &buffer_[offset], copyable_size);
}
result.bytes_read = copyable_size;
} else {
NOTREACHED();
}
return result;
ReadResult Read(uint64_t offset, base::span<char> tgt) override {
CHECK_LE(offset, buffer_.size());
const auto src =
base::span<const char>{buffer_}.subspan(static_cast<size_t>(offset));
const auto n_copied = std::min(src.size(), tgt.size());
tgt.first(n_copied).copy_from(src.first(n_copied));
return ReadResult{.bytes_read = n_copied};
}
std::vector<char> buffer_;
@ -715,7 +709,9 @@ void SimpleURLLoaderWrapper::OnDataReceived(std::string_view string_view,
v8::Isolate* isolate = JavascriptEnvironment::GetIsolate();
v8::HandleScope handle_scope(isolate);
auto array_buffer = v8::ArrayBuffer::New(isolate, string_view.size());
memcpy(array_buffer->Data(), string_view.data(), string_view.size());
// TODO SAFETY: migrate this to shell/common/v8_util.h
UNSAFE_BUFFERS(
std::ranges::copy(string_view, static_cast<char*>(array_buffer->Data())));
Emit("data", array_buffer, std::move(resume));
}

View file

@ -148,7 +148,6 @@ bool Converter<blink::mojom::PermissionStatus>::FromV8(
v8::Local<v8::Value> Converter<blink::PermissionType>::ToV8(
v8::Isolate* isolate,
const blink::PermissionType& val) {
using PermissionType = electron::WebContentsPermissionHelper::PermissionType;
// Based on mappings from content/browser/devtools/protocol/browser_handler.cc
// Not all permissions are currently used by Electron but this will future
// proof these conversions.
@ -225,28 +224,28 @@ v8::Local<v8::Value> Converter<blink::PermissionType>::ToV8(
return StringToV8(isolate, "web-app-installation");
case blink::PermissionType::LOCAL_NETWORK_ACCESS:
return StringToV8(isolate, "local-network-access");
// Permissions added by Electron
case blink::PermissionType::DEPRECATED_SYNC_CLIPBOARD_READ:
return StringToV8(isolate, "deprecated-sync-clipboard-read");
case blink::PermissionType::FILE_SYSTEM:
return StringToV8(isolate, "fileSystem");
case blink::PermissionType::ELECTRON_FULLSCREEN:
return StringToV8(isolate, "fullscreen");
case blink::PermissionType::HID:
return StringToV8(isolate, "hid");
case blink::PermissionType::OPEN_EXTERNAL:
return StringToV8(isolate, "openExternal");
case blink::PermissionType::SERIAL:
return StringToV8(isolate, "serial");
case blink::PermissionType::USB:
return StringToV8(isolate, "usb");
case blink::PermissionType::NUM:
break;
}
switch (static_cast<PermissionType>(val)) {
case PermissionType::FULLSCREEN:
return StringToV8(isolate, "fullscreen");
case PermissionType::OPEN_EXTERNAL:
return StringToV8(isolate, "openExternal");
case PermissionType::SERIAL:
return StringToV8(isolate, "serial");
case PermissionType::HID:
return StringToV8(isolate, "hid");
case PermissionType::USB:
return StringToV8(isolate, "usb");
case PermissionType::FILE_SYSTEM:
return StringToV8(isolate, "fileSystem");
default:
return StringToV8(isolate, "unknown");
}
return StringToV8(isolate, "unknown");
}
// static

View file

@ -25,10 +25,10 @@ std::vector<std::string> GetPreferredLanguages() {
// SAFETY: |g_get_language_names()| returns a glib-owned array
// of const C strings, terminated by an empty string.
// This loop is the correct way to walk through its return values.
static constexpr std::string_view CLangName = "C";
for (; *languages; UNSAFE_BUFFERS(++languages)) {
if (strcmp(*languages, "C") != 0) {
if (CLangName != *languages)
preferredLanguages.push_back(base::i18n::GetCanonicalLocale(*languages));
}
}
return preferredLanguages;

View file

@ -5,6 +5,7 @@
#include "shell/common/node_bindings.h"
#include <algorithm>
#include <iostream>
#include <string>
#include <string_view>
#include <utility>
@ -605,9 +606,8 @@ void NodeBindings::Initialize(v8::Local<v8::Context> context) {
args,
static_cast<node::ProcessInitializationFlags::Flags>(process_flags));
for (const std::string& error : result->errors()) {
fprintf(stderr, "%s: %s\n", args[0].c_str(), error.c_str());
}
for (const std::string& error : result->errors())
std::cerr << args[0] << ": " << error << '\n';
if (result->early_return() != 0)
exit(result->exit_code());

View file

@ -2,6 +2,12 @@
// Use of this source code is governed by the MIT license that can be
// found in the LICENSE file.
#ifdef UNSAFE_BUFFERS_BUILD
// TODO(crbug.com/351564777): Remove FD_ZERO and convert code to safer
// constructs.
#pragma allow_unsafe_buffers
#endif
#include "shell/common/node_bindings_mac.h"
#include <errno.h>