Compare commits

...

161 Commits

Author SHA1 Message Date
Shelley Vohr
7fbadd9fe7 build: remove AdaptCallbackForRepeating patch 2025-05-06 14:34:03 +02:00
Shelley Vohr
a5ec3f7476 fix: allowed dialog file types with one filter (#46900) 2025-05-06 10:31:00 +02:00
Erick Zhao
be399f2fee docs: use correct heading level for API function (#46892) 2025-05-05 16:10:37 -05:00
electron-roller[bot]
b90de7d07e chore: bump chromium to 138.0.7160.0 (main) (#46915)
* chore: bump chromium in DEPS to 138.0.7158.0

* chore: bump chromium in DEPS to 138.0.7160.0

* 6509206: Move Keychain UI suppression code into apple_keychain.cc

https://chromium-review.googlesource.com/c/chromium/src/+/6509206

* 6489036: Fix DesktopDataControlsDialog for Glic

https://chromium-review.googlesource.com/c/chromium/src/+/6489036

* chore: fixup patch indices

* 6506662: Reland "NavigationThrottleRunner2: content::NavigationThrottleRegistry"

https://chromium-review.googlesource.com/c/chromium/src/+/6506662

* 6499811: [video pip] Add live caption dialog

https://chromium-review.googlesource.com/c/chromium/src/+/6499811

* 6487926: Add GetMaxImageDimension function to ScreenAI service API for OCR.

https://chromium-review.googlesource.com/c/chromium/src/+/6487926

* 6494942: [json] Activate stringify fast-path by default

https://chromium-review.googlesource.com/c/v8/v8/+/6494942

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2025-05-05 13:58:40 -04:00
Charles Kerr
9460300506 refactor: devirtualize NativeWindow methods (#46904)
* refactor: devirtualize NativeWindow::SetSize()

refactor: devirtualize NativeWindow::GetSize()

refactor: devirtualize NativeWindow::SetPosition()

refactor: devirtualize NativeWindow::GetPosition()

* refactor: devirtualize NativeWinodw::SetMinimumSize()

refactor: devirtualize NativeWinodw::GetMinimumSize()

refactor: devirtualize NativeWinodw::SetMaximumSize()

refactor: devirtualize NativeWinodw::GetMaximumSize()

* refactor: devirtualize NativeWindow::SetSheetOffset()

refactor: devirtualize NativeWindow::GetSheetOffsetX()

refactor: devirtualize NativeWindow::GetSheetOffsetY()

* refactor: devirtualize NativeWindow::GetContentMinimumSize()

refactor: devirtualize NativeWindow::GetContentMaximumSize()
2025-05-05 09:29:05 -05:00
Charles Kerr
3362db0655 refactor: remove some NativeWindow public API (#46919)
* refactor: make NativeWindow::titlebar_overlay_height_ private

* refactor: make NativeWindow::set_has_frame() protected

* refactor: remove NativeWindow::background_material()

It's only used once, in NativeWindow, so use |background_material_| directly.

* refactor: remove NativeWindow::vibrancy()

It's only used once, in a NativeWindow method, so use |vibrancy_| directly.

* refactor: unfriend api::BrowserView

It was added in Oct 2022 by 23d4a25 for access to protected NativeWindow
methods add_inspectable_view() and remove_inspectable_view().

That dependency was removed in Nov 2022 by 184ac2b, so BrowserView
doesn't need access to NativeWindow's private fields & methods anymore.

* refactor: make NativeWindow::ContentBoundsToWindowBounds() protected

refactor: make NativeWindow::WindowBoundsToContentBounds() protected
2025-05-05 09:28:49 -05:00
Charles Kerr
2e2776611f refactor: simplify NativeWindow::FullScreenTransitionState (#46918)
* refactor: make NativeWindow::fullscreen_transition_state_ private

* refactor: add NativeWindow::is_transitioning_fullscreen() helper

* refactor: remove unused NativeWindow::fullscreen_transition_state()

* refactor: replace NativeWindow::set_fullscreen_transition_state() with NativeWindow::set_is_transitioning_fullscreen()

refactor: remove unused NativeWindow::FullScreenTransitionState
2025-05-05 09:28:29 -05:00
Charles Kerr
1f4f1b4afc refactor: add NativeWindow::FromWidget() helper (#46917)
refactor: add NativeWindow::FromWidet() helper

refactor: make kElectronNativeWindowKey a protected field
2025-05-05 09:27:41 -05:00
electron-roller[bot]
cb445b3bbd chore: bump node to v22.15.0 (main) (#46742)
* chore: bump node in DEPS to v22.15.0

* inspector: fix GN build

https://github.com/nodejs/node/pull/56798

* test: search cctest files

https://github.com/nodejs/node/pull/56791

* crypto: fix missing OPENSSL_NO_ENGINE guard

https://github.com/nodejs/node/pull/57012

* test,crypto: make tests work for BoringSSL

https://github.com/nodejs/node/pull/57021

* module: use synchronous hooks for preparsing in import(cjs)

https://github.com/nodejs/node/pull/55698

* deps: update simdjson to 3.12.0

https://github.com/nodejs/node/pull/56874

* build: remove explicit linker call to libm on macOS

https://github.com/nodejs/node/pull/56901

* test: make eval snapshot comparison more flexible

https://github.com/nodejs/node/pull/57020

* src: allow embedder customization of OOMErrorHandler

https://github.com/nodejs/node/pull/57325

* src: do not pass nullptr to std::string ctor

https://github.com/nodejs/node/pull/57354

* src: lock the isolate properly in IsolateData destructor

https://github.com/nodejs/node/pull/57031

* chore: shrink --trace-atomics-wait patch

* chore: fixup patch indices

* build: fix GN build failure

https://github.com/nodejs/node/pull/57013

* crypto: expose security levels

https://github.com/nodejs/node/pull/56601

* zlib: add zstd support

https://github.com/nodejs/node/pull/52100

* test: move crypto related common utilities in common/crypto

https://github.com/nodejs/node/pull/56714

* cli: move --trace-atomics-wait to eol

https://github.com/nodejs/node/pull/52747

* test: disable test-https-client-renegotiation-limit

BoringSSL doesn't support caller-initiated renegotiation - see
https://source.chromium.org/chromium/chromium/src/+/main:third_party/boringssl/src/ssl/ssl_lib.cc;l=1627-1631

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2025-05-05 10:23:17 +02:00
Robo
91626a8eac fix: xdg portal version detection for file dialogs on linux (#46905)
* chore: use dbus thread for portal version detection

* Update shell/browser/ui/file_dialog_linux_portal.cc

Co-authored-by: Robo <hop2deep@gmail.com>

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-05-05 16:57:20 +09:00
electron-roller[bot]
5390728cb7 chore: bump chromium to 138.0.7156.0 (main) (#46902)
* chore: bump chromium in DEPS to 138.0.7156.0

* chore: update patches

* chore: ICWYU

* Allow SecKeychain and SecItem implementations of AppleKeychain to coexist

https://chromium-review.googlesource.com/c/chromium/src/+/6444777

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2025-05-02 21:06:50 -04:00
Derek Cicerone
074b9344b5 fix: prevent log files being written to current directory on Windows (#44413)
* fix: prevent log files being written to current directory on Windows

* Update shell/common/logging.cc

Co-authored-by: Robo <hop2deep@gmail.com>

* chore: add test

* chore: update includes

Refs https://chromium-review.googlesource.com/c/chromium/src/+/6418805

* chore: address review feedback

---------

Co-authored-by: Robo <hop2deep@gmail.com>
2025-05-02 16:27:29 -05:00
Charles Kerr
3faddd5ae2 refactor: move IsClosed() and IsClosable() tests into NativeWindow::Close() (#46888)
refactor: devirtualize NativeWindow::IsClosed()
2025-05-02 13:21:29 -05:00
Yuri
7153008bfa docs: clarified usage of createFromPath() (#46809)
* docs: clarified usage of createFromPath()

* Update docs/api/native-image.md

Co-authored-by: Niklas Wenzel <dev@nikwen.de>

---------

Co-authored-by: Niklas Wenzel <dev@nikwen.de>
2025-05-02 11:11:54 +02:00
Charles Kerr
f6b297a06a refactor: use base::ObserverList::Notify() (#46875)
* refactor: use ObserverList::Notify() in shell/browser/window_list.cc

* refactor: use ObserverList::Notify() in shell/browser/web_contents_zoom_controller.cc

* refactor: use ObserverList::Notify() in shell/browser/usb/usb_chooser_context.cc

* refactor: use ObserverList::Notify() in shell/browser/usb/electron_usb_delegate.cc

* refactor: use ObserverList::Notify() in shell/browser/ui/views/menu_delegate.cc

* refactor: use ObserverList::Notify() in shell/browser/ui/tray_icon.cc

* refactor: use ObserverList::Notify() in shell/browser/ui/electron_menu_model.cc

* refactor: use ObserverList::Notify() in shell/browser/serial/serial_chooser_context.cc

* refactor: use ObserverList::Notify() in shell/browser/native_window.cc

* refactor: use ObserverList::Notify() in shell/browser/serial/electron_serial_delegate.cc

* refactor: use ObserverList::Notify() in shell/browser/browser.cc

* refactor: use ObserverList::Notify() in shell/browser/api/electron_api_web_contents.cc

* refactor: use ObserverList::Notify() in shell/browser/hid/electron_hid_delegate.cc

* refactor: use ObserverList::Notify() in shell/browser/hid/hid_chooser_context.cc
2025-05-02 11:10:52 +02:00
Shelley Vohr
ede84fc327 feat: support dip <-> screen conversion on Linux X11 (#46211)
feat: support dip <-> screen conversion on Linux
2025-05-02 10:31:45 +02:00
electron-roller[bot]
2b07e6450c chore: bump chromium to 138.0.7154.0 (main) (#46872)
* chore: bump chromium in DEPS to 138.0.7152.0

* chore: update patches

* chore: bump chromium in DEPS to 138.0.7154.0

* chore: update patches

* ozone/wayland: Fix bookmark dropdown right click context menu

https://chromium-review.googlesource.com/c/chromium/src/+/6488801

* Use base::cstring_view in base::Environment

https://chromium-review.googlesource.com/c/chromium/src/+/6494292

* [A11yPerformance] Remove Add/Remove AXMode methods

https://chromium-review.googlesource.com/c/chromium/src/+/6418444

xref: https://chromium-review.googlesource.com/c/chromium/src/+/6383275

* build: update filenames.libcxx.gni

* Use base::cstring_view in base::Environment

https://chromium-review.googlesource.com/c/chromium/src/+/6494292

* Use getters to expose NativePixmapHandle from GpuMemoryBufferHandle

https://chromium-review.googlesource.com/c/chromium/src/+/6374406

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2025-05-01 23:53:40 -05:00
Keeley Hammond
63114e2b8e fix: revert macOS content protection logic refactor (#46886)
Revert "refactor: use upstream content protection logic on macOS (#46813)"

This reverts commit 34adb976b6.
2025-05-01 13:49:55 -07:00
Charles Kerr
df4564dc39 refactor: don't call deprecated WidgetDelegate API in NativeWindowViews (#46858)
* refactor: don't call RegisterDeleteDelegateCallback()

move NativeWindowViews' on-widget-delegate-destroyed callback logic to
the NativeWindowViews destructor.

Since NativeWindowViews subclasses from WidgetDelegate and |this| *is*
the delegate being destroyed, we can handle this more cleanly in
~NativeWindowViews() instead of in a separate callback.

* chore: remove NativeWindowViews from the grandfathered-classes-that-can-call-deprecated-views-behavior patch

* refactor: don't call RegisterDeleteDelegateCallback()

RegisterDeleteDelegateCallback() is private upstream API, so we
shouldn't be using it.

Move the on-widget-delegate-destroyed callback logic over to our methods
NativeWindowViews::OnWidgetDestroying() and
NativeWindowViews::OnWidgetDestroyed().
2025-05-01 12:07:20 -05:00
David Sanders
4f89c31956 refactor: add EmitDeprecationWarning helper (#46860)
* refactor: add EmitDeprecationWarning helper

Also switches EmitWarning to using Node's ProcessEmitWarningGeneric

* chore: use node namespace for function call
2025-04-30 13:48:35 -05:00
Charles Kerr
25d77fd1ce refactor: use WidgetDelegate's title property (#46849)
* refactor: use WidgetDelegate::SetTitle()

* Make NativeWindow::SetTitle() and NativeWindow::GetTitle() non-virtual.
  Use WidgetDelegate for their implementation.

* Add NativeWindow::OnTitleChanged(), a new protected virtual method to update
  subclasses (e.g. NativeWindowMac needs to redraw the button proxy).

* In NativeWindowMac, replace SetTitle() and GetTitle() with OnTitleChanged().

* In NativeWindowViews, replace SetTitle() and GetTitle() with OnTitleChanged().

* test: enable BrowserWindow.title tests on Linux

* test: add a test to confirm win.title changes when document.title is set in the renderer
2025-04-30 08:22:27 -07:00
electron-roller[bot]
d842d17ff3 chore: bump chromium to 137.0.7151.0 (main) (#46854)
* chore: bump chromium in DEPS to 137.0.7151.0

* chore: update patches

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2025-04-29 16:49:44 -04:00
dependabot[bot]
ecd745305e build(deps): bump actions/download-artifact from 4.2.1 to 4.3.0 (#46852)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.2.1 to 4.3.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](95815c38cf...d3f86a106a)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-29 11:20:23 -04:00
Charles Kerr
2734088d20 fix: fix and enable accessibilitySupportEnabled tests (#46825)
* test: do not skip visibleOnAllWorkspaces tests on Windows

That feature is supported on Linux, so move the test from the
"window states (excluding Linux)" section into the
"window states" section.

* fix: nested it() calls in visibleOnAllWorkspaces specs

* test: enable accessibilitySupportEnabled tests

test: check both getters after calling each setter

fix: do not assume the default initial value of accessibilitySupportEnabled

* chore: remove redundant test case

* chore: disable accessibilitySupportEnabled tests on Linux
2025-04-28 23:52:26 -05:00
zoy
4641bc9619 fix: fullscreen fillet / recovery is incorrect (#46641)
* fix: fullscreen fillet / recovery is incorrect

Signed-off-by: ZOY\zoy-l <zoy-l@outlook.com>

* fix: maintain frameless consistency on windows 11

* fix: maintain frameless consistency on windows 11

* chore: modify the comments

---------

Signed-off-by: ZOY\zoy-l <zoy-l@outlook.com>
2025-04-28 16:54:08 -04:00
Charles Kerr
3f3c297c7a fix: enable some tests that were accidentally disabled (#46816)
* test: add platform test on visibleOnAllWorkspaces tests

visibleOnAllWorkspaces is not supported on Windows

* test: do not skip visibleOnAllWorkspaces tests on Windows

That feature is supported on Linux, so move the test from the
"window states (excluding Linux)" section into the
"window states" section.

* fix: nested it() calls in visibleOnAllWorkspaces specs

* chore: make the process.platform test simpler

* fix: tests that were not run in api-app-spec due to nested it()

* fix: tests that were not run in api-browser-window-spec due to nested it()

* chore: annotate disabled test

* fix: enable `autoHideMenuBar` tests on Linux and Windows (#46818)

* fix: enable autoHideMenuBar tests

* docs: mark autoHideMenuBar as supported on Linux, Windows
2025-04-28 12:32:57 -05:00
Bruno Pitrus
062d3a6168 fix: build error with enable_electron_extensions=false (#46812)
Fix build error with enable_electron_extensions=false

In file included from ../../base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_backup_ref_impl.h:13,
                 from ../../base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h:50,
                 from ../../base/memory/raw_ptr.h:11,
                 from ../../base/memory/weak_ptr.h:82,
                 from ../../electron/shell/browser/usb/electron_usb_delegate.h:14,
                 from ../../electron/shell/browser/usb/electron_usb_delegate.cc:5:
../../base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h:279:3: warning: multi-line comment [-Wcomment]
  279 |   //       \
      |   ^
../../base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h:281:3: warning: multi-line comment [-Wcomment]
  281 |   //         \
      |   ^
In file included from /usr/include/c++/14/memory:78,
                 from ../../electron/shell/browser/usb/electron_usb_delegate.h:8:
/usr/include/c++/14/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = device::mojom::UsbDeviceInfo]’:
/usr/include/c++/14/bits/unique_ptr.h:399:17:   required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = device::mojom::UsbDeviceInfo; _Dp = std::default_delete<device::mojom::UsbDeviceInfo>]’
  399 |           get_deleter()(std::move(__ptr));
      |           ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../../mojo/public/cpp/bindings/struct_ptr.h:48:3:   required from ‘constexpr void std::destroy_at(_Tp*) [with _Tp = mojo::StructPtr<device::mojom::UsbDeviceInfo>]’
   48 |   ~StructPtr() = default;
      |   ^
/usr/include/c++/14/bits/stl_construct.h:149:22:   required from ‘constexpr void std::_Destroy(_Tp*) [with _Tp = mojo::StructPtr<device::mojom::UsbDeviceInfo>]’
  149 |       std::destroy_at(__pointer);
      |       ~~~~~~~~~~~~~~~^~~~~~~~~~~
/usr/include/c++/14/bits/stl_construct.h:163:19:   required from ‘static constexpr void std::_Destroy_aux<<anonymous> >::__destroy(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = mojo::StructPtr<device::mojom::UsbDeviceInfo>*; bool <anonymous> = false]’
  163 |             std::_Destroy(std::__addressof(*__first));
      |             ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/stl_construct.h:193:44:   required from ‘constexpr void std::_Destroy(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = mojo::StructPtr<device::mojom::UsbDeviceInfo>*]’
  193 |         return std::_Destroy_aux<false>::__destroy(__first, __last);
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/alloc_traits.h:981:20:   required from ‘constexpr void std::_Destroy(_ForwardIterator, _ForwardIterator, allocator<_T2>&) [with _ForwardIterator = mojo::StructPtr<device::mojom::UsbDeviceInfo>*; _Tp = mojo::StructPtr<device::mojom::UsbDeviceInfo>]’
  981 |       std::_Destroy(__first, __last);
      |       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/stl_vector.h:735:15:   required from ‘constexpr std::vector<_Tp, _Alloc>::~vector() [with _Tp = mojo::StructPtr<device::mojom::UsbDeviceInfo>; _Alloc = std::allocator<mojo::StructPtr<device::mojom::UsbDeviceInfo> >]’
  735 |         std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
      |         ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  736 |                       _M_get_Tp_allocator());
      |                       ~~~~~~~~~~~~~~~~~~~~~~
../../electron/shell/browser/usb/electron_usb_delegate.cc:231:74:   required from here
  231 |     std::move(callback).Run(std::vector<device::mojom::UsbDeviceInfoPtr>());
      |                                                                          ^
/usr/include/c++/14/bits/unique_ptr.h:91:23: error: invalid application of ‘sizeof’ to incomplete type ‘device::mojom::UsbDeviceInfo’
   91 |         static_assert(sizeof(_Tp)>0,
      |                       ^~~~~~~~~~~
2025-04-28 11:56:17 -04:00
electron-roller[bot]
f2240e07f0 chore: bump chromium to 137.0.7149.0 (main) (#46777)
* chore: bump chromium in DEPS to 137.0.7144.0

* chore: bump chromium in DEPS to 137.0.7145.0

* chore: bump chromium in DEPS to 137.0.7147.0

* chore: update patches

* Remove deprecated GetVar(std::string_view, std::string*) overload

Refs https://chromium-review.googlesource.com/c/chromium/src/+/6468873

* fixup! Remove deprecated GetVar(std::string_view, std::string*) overload

* fixup! Remove deprecated GetVar(std::string_view, std::string*) overload

* chore: bump chromium in DEPS to 137.0.7149.0

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2025-04-28 11:39:12 -04:00
David Sanders
0c103f390c test: refactor deprecate-helpers.ts to warning-helpers.ts (#46808)
Add a generic expectWarningMessages and start checking warning names
2025-04-28 11:18:34 -04:00
Charles Kerr
27f6adf8df fix: run visibleOnAllWorkspaces tests on the right platforms (#46815)
* test: add platform test on visibleOnAllWorkspaces tests

visibleOnAllWorkspaces is not supported on Windows

* test: do not skip visibleOnAllWorkspaces tests on Windows

That feature is supported on Linux, so move the test from the
"window states (excluding Linux)" section into the
"window states" section.

* fix: nested it() calls in visibleOnAllWorkspaces specs

* chore: make the process.platform test simpler
2025-04-28 10:34:00 -04:00
Shelley Vohr
b03c71213e refactor: use upstream content protection logic on macOS (#46780)
* refactor: use upstream content protection logic on macOS

* Update shell/browser/native_window.h

Co-authored-by: Charles Kerr <charles@charleskerr.com>

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-04-26 11:31:30 -05:00
Charles Kerr
c2ab63f6d7 refactor: use absl::InlinedVector in ToV8(ElectronPermissionManager) (#44854)
perf: use a stack-allocated string_view array in ToV8(USBProtectedClasses)
2025-04-25 16:11:15 -05:00
Calvin
b92c68b053 docs: call out breaking change for GTK 4 default on GNOME (#46793)
docs: add breaking change for GTK 4 default on GNOME
2025-04-25 13:31:28 -07:00
Charles Kerr
450b2d0ba3 refactor: remove public method BrowserWindow::GetWeakPtr() (#46763)
refactor: remove public method electron::api::BrowserWindow::GetWeakPtr()
2025-04-25 15:01:52 -05:00
Charles Kerr
b40b4dc015 refactor: use std::map::try_emplace() over std::map::insert() (#46761)
refactor: prefer std::map::try_emplace() over std::map::insert()
2025-04-25 13:11:53 -05:00
Evan Simkowitz
8fa7d324d1 fix: set XDG_CURRENT_DESKTOP env var back to original value before invoking xdg utils (#45310)
* Fix XDG_CURRENT_DESKTOP before invoking XDGUtil

* apply suggestion

* use existing XDG_CURRENT_DESKTOP const
2025-04-25 11:31:36 -05:00
Felix Rieseberg
7fa297a849 docs: Add ObjC/macOS tutorial (#46694) 2025-04-25 10:29:25 -05:00
John Kleinschmidt
55505ba4df docs: additional update of breaking changes for 36-x-y (#46781) 2025-04-25 11:28:33 -04:00
Shelley Vohr
372cdb5dee fix: bluetooth crash in select-bluetooth-device event (#46745)
fix: bluetooth crash on bluetooth off
2025-04-25 10:26:19 -05:00
Calvin
973e5d0249 build: update NMV to 136 for Electron 37 (#46764)
build: update NMV to 136 for Electron 36
2025-04-25 11:20:29 -04:00
Michaela Laurencin
0171f648b1 docs: correct breaking-changes.md for 36.0.0 release (#46762) 2025-04-25 16:10:35 +02:00
Charles Kerr
74c4ae0b55 refactor: use net::CanonicalCookie::IsDomainMatch() (#46748)
* refactor: use net::CanonicalCookie::IsDomainMatch()

Previously we had been rolling our own impl

* test: add pattern-matching tests for our cookie API
2025-04-25 16:08:16 +02:00
Charles Kerr
06a99d6770 refactor: make node Buffers more friendly to base::span / std::span (#46724)
* refactor: add electron::Buffer namespace; move the Buffer as_byte_span() into it

* feat: add electron::Buffer::Copy()

a span-friendly version of node::Buffer::Copy()

* refactor: use electron::Buffer::Copy() in electron_api_base_window.cc

* refactor: use electron::Buffer::Copy() in electron_api_data_pipe_holder.cc

* refactor: use electron::Buffer::Copy() in electron_api_safe_storage.cc

* refactor: use electron::Buffer::Copy() in electron_api_clipboard.cc

* refactor: use electron::Buffer::Copy() in osr_converter.cc

* refactor: use electron::Buffer::Copy() in electron_api_native_image.cc

* refactor: use electron::Buffer::Copy() in net_converter.cc

* refactor: use electron::Buffer::Copy() in electron_api_web_contents.cc

* refactor: make NewEmptyBuffer() return a Local<Value>
2025-04-25 08:00:09 -05:00
Shelley Vohr
1976e935e7 fix: missing HandleScope in RemoveFromParentChildWindows (#46758) 2025-04-25 14:04:25 +02:00
Calvin
51dbe69e45 fix: vibrancy window border (#46648)
* fix: vibrancy window border

* Use WidgetDelegate::OnWidgetInitialized instead
2025-04-25 11:42:48 +02:00
Calvin
08318dc05d fix: corner smoothing with 0 radii (#46751) 2025-04-25 10:54:04 +02:00
wujinli
3e78bbde6a fix: crash when renderer process crashes while webview is reloading (#46735)
WebView uses WebContentsViewChildFrame, which doesn't have a Focus impl
and triggers a fatal NOTREACHED.
2025-04-25 10:10:27 +02:00
electron-roller[bot]
37f8db15e9 chore: bump chromium to 137.0.7143.0 (main) (#46757)
* chore: bump chromium in DEPS to 137.0.7142.0

* chore: bump chromium in DEPS to 137.0.7143.0

* Add accelerator API to get shortcut vector representation

Refs https://chromium-review.googlesource.com/c/chromium/src/+/6442193

* chore: update patches

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2025-04-25 14:53:51 +09:00
electron-roller[bot]
08b7a1f801 chore: bump chromium to 137.0.7141.0 (main) (#46725)
* chore: bump chromium in DEPS to 137.0.7139.0

* chore: bump chromium in DEPS to 137.0.7141.0

* chore: update patches

Refs https://chromium-review.googlesource.com/c/chromium/src/+/6474596
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6443472
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6471184

* [ServiceWorker] Pipe is_for_service_worker into OverrideURLLoaderFactoryParams

Refs https://chromium-review.googlesource.com/c/chromium/src/+/6459481

* Reland "[PermissionOptions] Use PermissionDescriptorPtr in PermissionControllerDelegate"

Refs https://chromium-review.googlesource.com/c/chromium/src/+/6455975

* clickiness: Check attestation and user settings on origins

Refs https://chromium-review.googlesource.com/c/chromium/src/+/6356796

* extensions : Move ReloadExtension from ExtensionService

Refs https://chromium-review.googlesource.com/c/chromium/src/+/6472812
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6472777

* fixup! Update AppleKeychain API to be friendlier

Refs https://chromium-review.googlesource.com/c/chromium/src/+/6443472

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

* Rename ColorVariant::CovertToSkColor() to ColorVariant::ResolveToSkColor()

Refs https://chromium-review.googlesource.com/c/chromium/src/+/6373793

* [headless] Provide headless aware window metrics on Windows

Refs https://chromium-review.googlesource.com/c/chromium/src/+/6374074

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2025-04-24 17:18:38 +09:00
Charles Kerr
e9f279afd1 chore: remove WebContents.getNativeView() (#46734)
chore: remove never-used WebContents.getNativeView().

This was added in https://github.com/electron/electron/pull/10308 but
was never used and never documented, not even as experimental API.
2025-04-23 20:33:50 -05:00
Charles Kerr
c7b0bdab7e fix: explicitly call GetNativeNSView() on macOS (#46733)
* fix: explicitly call GetNativeNSView() on macOS

* chore: move macOS impl to a .mm file

This is needed in order to access gfx::NativeView::GetNativeNSView()
2025-04-23 17:55:18 -05:00
Charles Kerr
686ae47696 refactor: remove redundant NativeImage::GetBitmap() (#46696)
* refactor: remove redundant NativeImage::GetBitmap()

* docs: mark NativeImage.getBitmap() as deprecated

* have getBitmap() emit a deprecation warning

* docs: update obsolete refefence to getBitmap()

* test: update obsolete refefences to getBitmap()

---------

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2025-04-23 11:00:43 +02:00
electron-roller[bot]
dd03cceda0 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 | https://chromium-review.googlesource.com/c/chromium/src/+/6384240

* 6422872: Remove unused includes in isolation_info_mojom_traits.h | https://chromium-review.googlesource.com/c/chromium/src/+/6422872

* chore: update patches

* 6400733: Avoid ipc_message_macros.h usage in some foo_param_traits_macros.h files | https://chromium-review.googlesource.com/c/chromium/src/+/6400733

* chore: update patches

* 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/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. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410

remove all uses of:

- strcmp()

* fixup!  6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410

* 6433203: Add a PassKey to RegisterDeleteDelegateCallback(). | https://chromium-review.googlesource.com/c/chromium/src/+/6433203

* chore: bump chromium in DEPS to 137.0.7115.0

* 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077

* chore: update patches

* 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077

* fix: add pragma for MacSDK unsafe buffers | 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/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. | https://chromium-review.googlesource.com/c/chromium/src/+/6431756

* 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077

* 6428345: Remove ExtensionService usage from ChromeExtensionRegistrarDelegate | https://chromium-review.googlesource.com/c/chromium/src/+/6428345

* 6384315: Migrate extensions_enabled from ExtensionService to Registrar | https://chromium-review.googlesource.com/c/chromium/src/+/6384315

* 6428749: [extensions] Refactor ExtensionService for AddNewAndUpdateExtension. | https://chromium-review.googlesource.com/c/chromium/src/+/6428749

* chore: bump chromium in DEPS to 137.0.7119.0

* 6440290: corner-shape: support inset shadow | https://chromium-review.googlesource.com/c/chromium/src/+/6440290

* 6429230: FSA: Move blocked paths to the PermissionContext class | https://chromium-review.googlesource.com/c/chromium/src/+/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 | https://chromium-review.googlesource.com/c/chromium/src/+/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() | https://chromium-review.googlesource.com/c/chromium/src/+/6448510

* chore: update feat_corner_smoothing_css_rule_and_blink_painting.patch

corner-shape: support inset shadow | https://chromium-review.googlesource.com/c/chromium/src/+/6440290

* refactor: grandfather in AutofillPopupView as a subclass of WidgetDelegateView

Add a PassKey for std::make_unique<WidgetDelegateView>() | https://chromium-review.googlesource.com/c/chromium/src/+/6442265

* Provide dbus appmenu information on Wayland | https://chromium-review.googlesource.com/c/chromium/src/+/6405535

* [extensions] Move OnExtensionInstalled out of ExtensionService. | https://chromium-review.googlesource.com/c/chromium/src/+/6443325

* refactor: grandfather in NativeWindowViews for delete callbacks

6433203: Add a PassKey to RegisterDeleteDelegateCallback(). | https://chromium-review.googlesource.com/c/chromium/src/+/6433203

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

* [A11yPerformance] Remove IsAccessibilityAllowed() | 6404386: [A11yPerformance] Remove IsAccessibilityAllowed() | https://chromium-review.googlesource.com/c/chromium/src/+/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 | https://chromium-review.googlesource.com/c/chromium/src/+/6420753

* 6429573: [accessibility] Move mode change out of AccessibilityNotificationWaiter | https://chromium-review.googlesource.com/c/chromium/src/+/6429573

* chore: e patches all

* 6419936: [win] Change ScreenWin public static methods to virtual | https://chromium-review.googlesource.com/c/chromium/src/+/6419936

* 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410

remove all uses of:

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

* fix: size conversion FTBFS on Win

* 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410

remove all uses of:

- wcscpy_s()

* 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/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 | https://chromium-review.googlesource.com/c/chromium/src/+/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 | https://chromium-review.googlesource.com/c/chromium/src/+/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() | https://chromium-review.googlesource.com/c/chromium/src/+/6459201

* 6454796: [Extensions] Move (most) registrar delayed install logic to //extensions | https://chromium-review.googlesource.com/c/chromium/src/+/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 https://chromium-review.googlesource.com/c/chromium/src/+/6428649

* feat: allow opt-out animated_content_sampler.

Refs https://chromium-review.googlesource.com/c/chromium/src/+/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>
2025-04-22 15:53:29 -04:00
Kolja
d0e13cc262 fix: file dialog filters not working correctly (#46660) 2025-04-22 13:31:04 +02:00
Shelley Vohr
858a93f886 build: don't kill ssh sessions on checkout failure (#46708) 2025-04-22 13:30:27 +02:00
Michaela Laurencin
e383eaa465 fix: stop menu minimization if set false (#46279) 2025-04-22 10:58:30 +02:00
Milan Burda
274b148554 docs: cleanup docs/tutorial/custom-window-styles.md (#46597) 2025-04-22 10:23:35 +02:00
Charles Kerr
7083419361 refactor: make electron::api::BaseWindow fields private (#46689)
refactor: make electron::api::BaseWindow fields private
2025-04-22 10:19:11 +02:00
reito
ac2c0c76fe fix: osr stutter fix backport for electron. (#46650)
* fix: osr stutter fix backport for electron.

* nit: chromium upstream patch link
2025-04-22 10:18:21 +02:00
Michaela Laurencin
3ad87787f8 docs: update timelines for E37 (#46704) 2025-04-21 13:34:02 -07:00
Robo
ec8f7f185e fix: crash on reconversion with google IME and editcontext on macOS (#46688) 2025-04-21 09:49:14 +09:00
Calvin
f15fa56e38 refactor: reduce & remove no-op MicrotasksScope calls (#46681)
* fix: do not run microtasks in V8Serializer in browser process

* Remove no-op MicrotasksScope in `shell/browser/api/electron_api_auto_updater.cc`

This call was added in https://github.com/electron/electron/pull/40576 as an expansion of `gin_helper::EmitEvent`.

Since this only runs in the browser process and `bool ignore_browser_checkpoint = true` this code is a no-op.

Node should perform a microtask checkpoint if necessary in `node::MakeCallback`.

* Remove no-op MicrotasksScope in `shell/common/api/electron_bindings.cc`

This method is only called by the browser process. The containing function, `ElectronBindings::DidReceiveMemoryDump`, is only used in two places:

* `ElectronBindings::GetProcessMemoryInfo` in the same file, which has a `CHECK` that it's running in the browser process at the top.
* From `shell/browser/api/electron_api_web_contents.cc`, which is only run in the browser process.

Added a DCHECK for clarity and validation.

* Replace `gin_helper::MicrotasksScope` with `v8::MicrotasksScope` in `shell/renderer/`

The browser check is unnecessary in the renderer. Since `gin_helper::MicrotasksScope` will always act exactly like `v8::MicrotasksScope`, it's clear to just use the v8 object directly. This also brings them in line with the many other uses of `v8::MicrotasksScope` in `shell/renderer/`.
2025-04-19 12:18:03 -05:00
Charles Kerr
297c4297b1 perf: avoid triple map lookup in ElectronHidDelegate::GetContextObserver() (#46672)
perf: avoid triple map lookup in ElectronHidDelegate::GetContextObserver()
2025-04-19 10:51:52 -05:00
Calvin
3a982ecad5 fix: do not run microtasks in V8Serializer in browser process (#46668) 2025-04-19 11:43:02 +09:00
Charles Kerr
926a6ee8bd refactor: remove WebContentsPermissionHelper::PermissionTypes::KEYBOARD_LOCK (#46670)
refactor: remove electron::WebContentsPermissionHelper::PermissionTypes::KEYBOARD_LOCK

This was added in 344aba0. In the time when this PR initially went up and
when 344aba0 landed, upstream added blink::PermissionTypes::KEYBOARD_LOCK.
Our duplicate copy can be removed.
2025-04-18 16:14:45 -05:00
Shelley Vohr
437542767a fix: backgroundMaterial on initial activate (#46657)
* fix: backgroundMaterial on initial activate

Closes https://github.com/electron/electron/issues/38466

* Update patches/chromium/fix_activate_background_material_on_windows.patch

Co-authored-by: Charles Kerr <charles@charleskerr.com>

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-04-17 20:34:45 +02:00
Shelley Vohr
a29e1170b9 feat: support Web Serial & WebUSB blocklists (#46600) 2025-04-17 20:34:34 +02:00
Shelley Vohr
352a403efd fix: postMessage crash with invalid transferrable (#46639) 2025-04-17 15:09:48 +02:00
John Kleinschmidt
e8117f8e40 build: update build tools (#46656)
* build: update build tools

* chore: fix core.fscache

* chore: fix core.preloadindex

---------

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2025-04-17 10:32:17 +02:00
Shelley Vohr
32fea719b3 refactor: migrate to non-deprecated allowedContentTypes on macOS (#46623)
refactor: migrated to non-deprecated allowedContentTypes on macOS
2025-04-15 09:51:34 -05:00
Shelley Vohr
14df4aab83 fix: window border on Gnome Wayland (#46624) 2025-04-15 15:45:33 +02:00
dependabot[bot]
24e46849c7 build(deps): bump actions/setup-node from 4.3.0 to 4.4.0 (#46636)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](cdca7365b2...49933ea528)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-15 15:44:04 +02:00
Shelley Vohr
489d30edfb build: roll build-images (#46625) 2025-04-14 16:10:46 -04:00
Shelley Vohr
e748b521b2 test: fix node spec disabled tests (#46627) 2025-04-14 11:38:27 -04:00
Shelley Vohr
51bffb533e fix: paint and flash issues on macOS (#46615)
* fix: paint and flash issues on macOS

* Adhere to paintWhenInitiallyHidden
2025-04-14 16:29:07 +02:00
Shelley Vohr
62b5b5f99d fix: handle potential missing close event property (#46605)
fix: handle missing close event property
2025-04-11 13:07:26 -04:00
Keeley Hammond
a9b2ec514b fix: fallback to old MacOS context menu behavior if no frame is present (#46595)
* fix: fallback to old MacOS context menu behavior if no frame is present

Co-authored-by: georgexu99 <georgexu99@electronjs.org>
Co-authored-by: erickzhao <erickzhao@electronjs.org>
Co-authored-by: clavin <calvin@electronjs.org>

* docs: add additional option for focusedFrame

* fix: handle frame found, but no view update from rfh

* fix: fix conditional

Co-authored-by: Calvin <clavin@users.noreply.github.com>

---------

Co-authored-by: georgexu99 <georgexu99@electronjs.org>
Co-authored-by: erickzhao <erickzhao@electronjs.org>
Co-authored-by: clavin <calvin@electronjs.org>
Co-authored-by: Calvin <clavin@users.noreply.github.com>
2025-04-11 10:15:35 -04:00
Shelley Vohr
3064b24c9d refactor: use default printing path when no user options (#46587) 2025-04-11 10:14:29 -04:00
David Sanders
74d641c7b3 build: ignore files in .git when running markdownlint-cli2 (#46608) 2025-04-10 18:37:07 -05:00
Shelley Vohr
446d0769ed feat: expose nativeTheme.shouldUseDarkColorsForSystemIntegratedUI (#46438)
feat: expose shouldUseDarkColorsForSystemIntegratedUI

Closes https://github.com/electron/electron/issues/46429.
Refs https://github.com/electron/electron/pull/19735.

This PR adds a new API `shouldUseDarkColorsForSystemIntegratedUI` to the
`nativeTheme` module. This API returns a boolean indicating whether the
system is using dark colors for system integrated UI elements. This is
useful for applications that want to adapt their UI to match the system
theme, especially for those that use system integrated UI elements like
the shell theme or taskbar appearance.
2025-04-10 12:08:29 +02:00
Jemil Suleimanov
013133867b docs: unify documentation example and fiddle for IPC pattern-1 (#46517)
* docs: unify documentation examples and fiddle

* docs: remove changes in ipc documentation
2025-04-10 12:08:10 +02:00
Yuri
de407e82b7 docs: updated tray doc with tooltip removing (#46515)
added tooltip removing doc
2025-04-09 11:50:08 -04:00
Charles Kerr
c6e6a03a24 fix: NativeWindow.window_id() returns same value for all windows (#46562)
fix: NativeWindow.window_id() returns same value for all windows
2025-04-09 10:45:06 -05:00
Shelley Vohr
c1c74b0a6c fix: re-enable OOP printing on Linux (#46529) 2025-04-09 15:42:16 +02:00
Shelley Vohr
45a0494287 fix: remove obsoleted --inspect-brk logic (#46560)
fix: remove obsoleted --inspect-brk logic
2025-04-09 15:35:40 +02:00
Shelley Vohr
521108e2a5 fix: crash on parent window close and focur/blur (#46559) 2025-04-09 15:35:30 +02:00
dependabot[bot]
93a51cc756 build(deps): bump github/codeql-action from 3.28.13 to 3.28.15 (#46554)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.13 to 3.28.15.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](1b549b9259...45775bd823)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.28.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-09 10:36:38 +02:00
Charles Kerr
ab23758e51 refactor: use v8::True(isolate) and v8::False(isolate) (#46544) 2025-04-08 12:58:39 -05:00
Charles Kerr
9069542d0b refactor: remove unnecessary const_cast (#46543)
refactor: remove unnecessary const_cast

unnecessary since July 2019 in 50b9c70
2025-04-08 12:58:28 -05:00
Charles Kerr
636cbc19ac refactor: simplify some BaseWindow JS getters (#46542)
* refactor: return a std::array<int 2> from BaseWindow::GetMaximumSize()

* refactor: return a std::array<int 2> from BaseWindow::GetMinimumSize()

* refactor: return a std::array<int 2> from BaseWindow::GetPosition()

* refactor: return a std::array<int 2> from BaseWindow::GetSize()

* refactor: return a std::array<int 2> from BaseWindow::GetContentSize()

* refactor: extract helper method ToArray(const gfx::Size)

* refactor: #include correctness
2025-04-08 10:58:12 -05:00
Shelley Vohr
1a6de10da8 fix: assert.ok in the renderer process (#46528)
fix: assert.ok in the renderer process
2025-04-08 07:09:54 -05:00
Charles Kerr
b1731407bc refactor: make TrackableObjectBase::weak_map_id_ const (#46524)
refactor: make TrackableObjectBase::weak_map_id_ const

simplify declaration and initialization
2025-04-07 20:49:05 -05:00
Charles Kerr
4bb7a4ceb0 refactor: make api::View methods const, private (#46545)
* refactor: make api::View::GetBounds() const

* refactor: make api::View::OnViewBoundsChanged() private

refactor: make api::View::OnViewIsDeleting() private

refactor: make api::View::OnChildViewRemoved() private

* refactor: make ChildPair private
2025-04-07 16:23:36 -05:00
Shelley Vohr
e22b83abf2 build: update codespaces config (#46533) 2025-04-07 16:29:33 -04:00
Niklas Wenzel
bbc9d1cdc1 build: emphasize the need for a testcase in our issue template (#46447) 2025-04-07 10:50:59 -07:00
Charles Kerr
85dce12be3 refactor: migrate to View::AddChildView(std::unique_ptr<ui::View*>) (#46474)
* refactor: use AddChildView(std::unique_ptr<View>) in OpaqueFrameView::CreateButton()

Xref: https://issues.chromium.org/issues/40485510

* refactor: use AddChildView(std::unique_ptr<View>) in MenuBar::RebuildChildren()

* refactor: use AddChildView(std::unique_ptr<View>) for ClientFrameViewLinux labels

* refactor: use AddChildView(std::unique_ptr<View>) for ClientFrameViewLinux buttons

* refactor: use AddChildView(std::unique_ptr<View>) in AutofillPopupView

* refactor: use AddChildViewRaw() to flag the edge cases that we still need to fix

* chore: use west coast const for consistency
2025-04-07 09:20:46 -05:00
Charles Kerr
a6875c732c docs: note that titleBarOverlay.symbolColor is supported on Linux (#46492)
docs: note that titleBarOverlay.symbolColor is supported on Linux

this is supported via OpaqueFrameView
2025-04-07 11:10:54 +02:00
Charles Kerr
c0fdf09f28 perf: on Windows, make Archive::HeaderIntegrity() faster (#46509)
* perf: do not clone the map each time we call Archive::HeaderIntegrity()

* perf: use absl::flat_hash_map for the integrity cache

* perf: do not clone the JSON payload string

* perf: preallocate capacity for the integrity cache

* perf: use move variant of insert_or_assign()

* refactor: simplify integrity cache building

remove unnecessary std::optional<>

* refactor: use base::FindOrNull()

* refactor: remove unused #includes

* refactor: make variable types explicit

* fix: make res_size unsigned

* refactor: put GetIntegrityConfigCache() in an unnamed namespace

refator: put LoadIntegrityConfig() in an unnamed namespace

* fix: oops, missing rel_path_utf8 key

* fix: oops, fix Wunreachable-code-return
2025-04-07 11:10:29 +02:00
Charles Kerr
41d8f90d68 refactor: use base::flat_set in WebContents::DidUpdateFaviconUrl() (#46475)
* refactor: add gin::Converter<std::span>::ToV8()

* feat: add ToV8(const base::flat_set<T>&)

* perf: use a flat_set in WebContents::TitleWasSet()

* refactor: add gin::Converter<std::array>::ToV8()
2025-04-07 10:16:02 +02:00
Charles Kerr
3c5c9c8e19 perf: avoid redundant virtual method call in NativeWindowViews::SetEnabledInternal() (#46508)
perf: avoid redundant virtual method call in NativeWindowViews::SetEnabledInternal()

Why waste time make lot call when few call do trick?
2025-04-06 19:02:04 -07:00
Hailey
ac18decc56 revert: allow NSMenuItems to be disabled (#46502)
Revert "fix: allow NSMenuItems to be disabled (#46307)"

This reverts commit ac616ef41d.
2025-04-06 20:42:05 -05:00
Charles Kerr
052da50aeb refactor: remove unused electron::api::App::FileIconCallback (#46490)
refactor: remove electron::api::App::FileIconCallback

last use removed in 2018 by 3f15f516
2025-04-05 00:39:17 -05:00
Charles Kerr
4e33d1690d refactor: instantiate navigation_entries local variable on the stack (#46453)
* refactor: instantiate navigation_entries on the stack instead of the heap

* refactor: reserve the full size of navigation_entries

* refactor: use emplace_back to simplify the code a little
2025-04-04 16:55:27 -05:00
Shelley Vohr
c2ae4afb8f fix: destroy parent port backend when JS env exits (#46437)
* fix: destroy parent port backend when JS env exits

* fix: close parent port before destroying

---------

Co-authored-by: deepak1556 <hop2deep@gmail.com>
2025-04-04 11:02:54 -05:00
Felix Rieseberg
e81e3acd2d docs: Add C++/Win32 tutorial (#46160)
* docs: Add C++/Win32 tutorial

* Update docs/tutorial/native-code-and-electron-cpp-win32.md

Co-authored-by: Erick Zhao <erick@hotmail.ca>

* Update docs/tutorial/native-code-and-electron-cpp-win32.md

Co-authored-by: Erick Zhao <erick@hotmail.ca>

* Update docs/tutorial/native-code-and-electron-cpp-win32.md

Co-authored-by: Erick Zhao <erick@hotmail.ca>

* Update docs/tutorial/native-code-and-electron-cpp-win32.md

Co-authored-by: Erick Zhao <erick@hotmail.ca>

* Update docs/tutorial/native-code-and-electron-cpp-win32.md

Co-authored-by: Erick Zhao <erick@hotmail.ca>

* docs: make linter happy

---------

Co-authored-by: Erick Zhao <erick@hotmail.ca>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-04-04 08:00:45 -05:00
electron-roller[bot]
9c019b6147 chore: bump chromium to 136.0.7095.0 (main) (#46118)
* chore: bump chromium in DEPS to 136.0.7076.0

* chore: bump chromium in DEPS to 136.0.7077.0

* 6368856: Migrate absl variant.h and utility.h in content (part 2/2) | https://chromium-review.googlesource.com/c/chromium/src/+/6368856

* 6356528: Clean up LegacyRenderWidgetHostHWND code | https://chromium-review.googlesource.com/c/chromium/src/+/6356528

* chore: export patches

* 6339113: [Viewport Segments] Add CDP commands to override Viewport Segments without overriding other device properties. | https://chromium-review.googlesource.com/c/chromium/src/+/6339113

* 6352169: [DevTools][MultiInstance] Support new tab in another window on Android | https://chromium-review.googlesource.com/c/chromium/src/+/6352169

* 6368856: Migrate absl variant.h and utility.h in content (part 2/2) | https://chromium-review.googlesource.com/c/chromium/src/+/6368856

* 6360858:Clickiness: Wire response from URLLoader to DB, add e2e tests| https://chromium-review.googlesource.com/c/chromium/src/+/6360858

* chore: bump chromium in DEPS to 136.0.7079.0

* chore: export patches

* chore: bump chromium in DEPS to 136.0.7081.0

* chore: export patches

* chore: bump chromium in DEPS to 136.0.7083.0

* 6361987: Remove double-declaration with gfx::NativeView and gfx::NativeWindow | https://chromium-review.googlesource.com/c/chromium/src/+/6361987

* chore: export patches

* chore: bump chromium in DEPS to 136.0.7087.0

* chore: export patches

* fix: include node patch for missing AtomicsWaitEvent
https://chromium-review.googlesource.com/c/chromium/src/+/6385540

* build: add depot_tools python to path

* fix: cppgc init and unregistering v8 isolate

https://chromium-review.googlesource.com/c/v8/v8/+/6333562

CppGc is now initialized earlier so Node can skip reinitializing it.

Additionally, gin::IsolateHandle was attempting to destruct an already destructed
v8::Isolate upon electron::JavaScriptEnvironment destruction. By removing the call
to NodePlatform::UnregisterIsolate, this fixes the crash on app shutdown.

* fix: unregister isolate after destruction

See code comment.

* chore: bump chromium in DEPS to 136.0.7095.0

* chore: sync patches

* fix: add script_parsing::ContentScriptType parameter
https://chromium-review.googlesource.com/c/chromium/src/+/6298395

* fix: migrate content::BrowserAccessibilityState methods
https://chromium-review.googlesource.com/c/chromium/src/+/6401437
https://chromium-review.googlesource.com/c/chromium/src/+/6383275

* feat: enableHappyEyeballs option for host resolver
https://chromium-review.googlesource.com/c/chromium/src/+/6332599

* fix: add new cookie exclusion reason
https://chromium-review.googlesource.com/c/chromium/src/+/6343479

* fix: add new url loader method
https://chromium-review.googlesource.com/c/chromium/src/+/6337340

* fix: add new cppgc header file for electron_node headers
https://chromium-review.googlesource.com/c/v8/v8/+/6348644

* fix: disable CREL on Linux ARM64
https://chromium-review.googlesource.com/q/I3a62f02f564f07be63173b0773b4ecaffbe939b9

* fixup! fix: add new cppgc header file for electron_node headers https://chromium-review.googlesource.com/c/v8/v8/+/6348644

* chore: update corner smoothing patch

* fixup! chore: update corner smoothing patch

* chore: disable NAN weak tests

These two tests are incompatible with a V8 change that disallows running JS code from a weak finalizer callback.

Ref: https://chromium-review.googlesource.com/c/v8/v8/+/4733273

* test: fix task starvation in node test

A V8 change makes these contexts get collected in a task that is posted
and run asynchronously. The tests were synchronously GC'ing in an
infinite loop, preventing the task loop from running the task that would
GC these contexts.

This change should be upstreamed in some way.

Ref: https://chromium-review.googlesource.com/c/v8/v8/+/4733273

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: alice <alice@makenotion.com>
Co-authored-by: Samuel Maddock <smaddock@slack-corp.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: clavin <clavin@electronjs.org>
2025-04-03 19:02:49 -05:00
Charles Kerr
0a5da83a1b perf: avoid redundant map lookup in HidChooserContext::DeviceChanged() (#46451)
perf: avoid redundant map lookup in HidChooserContext::DeviceChanged()
2025-04-03 17:51:37 -05:00
Fedor Indutny
7601af5200 fix: don't copy 'package.json's out of ASAR file (#46390)
New Node.js module resolution system reads `package.json` from imported
modules by reading from the file natively in C++ without calling into
`fs.readFileSync`. The ASAR FS wrapper code had copied files out into a
temporary folder as a workaround, but it is inefficient and does not
cover all module resolution mechanisms in Node.js.

In this change we expose `overrideReadFileSync` method on the `modules`
binding in Node.js, and use this override to call into ASAR-supporting
`fs.readFileSync`.
2025-04-03 13:39:53 -07:00
yangllu
e46b0c8ddc fix: gin_helper::Promise in GPUInfoManager must be destroyed before destroying Node/V8 (#46434)
* fix: gin_helper::Promise in GPUInfoManager must be destroyed before destroying Node/V8

* fix: use CleanedUpAtExit to control the lifetime of GPUInfoManager
2025-04-03 10:12:12 -07:00
Samuel Attard
0e3246e20d fix: ensure maximize is emitted when reduce motion is enabled on macOS (#46459)
* fix: ensure maximize is emitted when reduce motion is enabled on macOS

* Revert "build: reenable graphics effects for macOS tests (#46454)"

This reverts commit 682ea345ac.
2025-04-03 11:14:16 -05:00
Charles Kerr
0ff98810ba fix: NativeWindowViews::GetRestoredState() can return wrong state when maximized (#46450)
fix: NativeWindowViews::GetRestoredState() returning wrong state

Introduced by the af58931 Chromium 131.0.6744.0 roll, specifically
https://github.com/electron/electron/pull/43948/commits/9840662#diff-f9d7ef7

98406626
2025-04-03 08:55:04 -05:00
Shelley Vohr
f48680a983 fix: zlib pointer alignment (#46435)
fix: fix zlib pointer alignment
2025-04-03 09:35:38 -04:00
Niklas Wenzel
682ea345ac build: reenable graphics effects for macOS tests (#46454) 2025-04-02 21:33:12 -05:00
Charles Kerr
a21c805ece perf: avoid redundant call to virtual methods GetProcess() and GetID() (#46409) 2025-04-02 11:57:09 -05:00
Charles Kerr
6f24dbaab4 perf: prefer absl::flat_hash_set over std::set when sorted order is not needed (#46410)
* perf: use an absl::flat_hash_set for UsbChooserContext::ephemeral_devices_

* perf: use an absl::flat_hash_set for GlobalMenuBarRegistrarX11::live_windows_

* perf: use an absl::flat_hash_set for NativeWindowViews::forwarding_windows_

* perf: use an absl::flat_hash_set for OffScreenRenderWidgetHostView::guest_host_views_

perf: use an absl::flat_hash_set for OffScreenRenderWidgetHostView::proxy_views_

* perf: use an absl::flat_hash_set for NativeWindow::injected_frames_

* perf: use an absl::flat_hash_set for NativeWindow::background_throttling_sources_
2025-04-02 11:03:36 -05:00
Charles Kerr
36e233797c perf: cache the return value of IsX11() (#46391)
* perf: cache the return value of IsX11()

* fix: mark as nodiscard for those who call, but mark as maybe_unused for Windows
2025-04-01 15:28:01 -05:00
Shelley Vohr
c02e5bc72c build: make it clearer when cookie auth runs (#46406) 2025-04-01 10:44:51 -07:00
Charles Kerr
5499c800a7 perf: avoid redundant map lookup in UsbChooserContext::OnDeviceRemoved() (#46387) 2025-04-01 12:39:34 -05:00
Charles Kerr
0492f0f745 perf: have ErrorThrower lazily lookup the current isolate (#46388)
perf: have ErrorThrower lazy-lookup the current isolate

ErrorThrower's default constructor is marked as "should rarely if ever
be used" because it's expensive to call.

Unfortunately, nearly every instance of ErrorThrower comes as an argument
in gin_helper's JS-->C++ function marshalling where a thrower is
default-constructed and then populated in gin_helper::GetNextArgument()
with an assignment operator to a temporary ErrorThrower constructed
with the gin::Arguments' isolate.

tldr: most of the time we use the slow constructor first, then throw
that work away unused by overwriting with a fast-constructed one.

This refactor avoids that cost by deferring the expensive work to
`ErrorThrower::isolate()`, where it happens only as a fallback iff
isolate_ hasn't been set.
2025-04-01 12:25:27 -05:00
Charles Kerr
ac1ffb1bff fix: leaked gfx::Canvas in AutofillPopupView::OnPaint() (#46384)
* perf: avoid redundant call to popup_bounds_in_view()

* refactor: use a std::optional<> for paint_canvas local

* fix: fix leaked gfx::Canvas in AutofillPopupView::OnPaint()

* refactor: remove redundant get() call when testing smart pointer for nonempty

* refactor: remove unnecessary draw_canvas variable

* refactor: rename bitmap to offscreen_bitmap for symmetry

* refactor: avoid another redundant call to popup_bounds_in_view()
2025-04-01 11:22:26 -05:00
Charles Kerr
5a6f1ede6a feat!: remove support for ProtocolResponse.session null value (#46264)
BREAKING CHANGE

This was deprecated in f7ba0d3b & is now being removed for Electron 37.
2025-04-01 08:52:12 -05:00
zoy
0e687d3082 fix: rounded corners disappear momentarily on window close (#46382)
fix: Explicitly set rounded corners in borderless mode on Windows 11

Signed-off-by: zoy <zoy-l@outlook.com>
2025-04-01 15:43:54 +02:00
Calvin
08da2b0b07 chore: move build files to build/ dir (#46368) 2025-04-01 13:42:14 +02:00
Shelley Vohr
9c4720766d fix: UtilityProcess.fork crash before app ready (#46380)
fix: UtilityProcess.fork crash before app ready
2025-04-01 13:42:03 +02:00
Shelley Vohr
5da75c4a97 feat: support system-context-menu on Linux (#45848)
feat: support system-context-menu on Linux
2025-04-01 11:00:39 +02:00
Charles Kerr
77833eddfb perf: avoid unnecessary vector copy in GetMimeTypeToExtensionIdMap() (#46373)
* perf: avoid making an unnecessary copy of the vector

MimeTypesHandler::GetMIMETypeAllowlist() returns a const&, so we can
iterate that directly instead of making a temporary copy of it.

* perf: move the call to ExtensionRegistry::Get() outside of the loop

Also, keep the previous behavior of not calling it at all if there
aren't any whitelisted extensions.

* perf: avoid redundant map lookup

* refactor: const correctness

* refactor: cleanup
2025-03-31 21:52:49 -05:00
Calvin
1730062c8f fix: flicker and ghosting in transparent windows on macOS (#46353)
* fix: transparent flicker on MAS

* Gate condition on `IsTranslucent` instead
2025-03-31 18:12:35 -05:00
Calvin
09135443a0 feat: Corner Smoothing CSS rule (Reland) (#46278)
* feat: Corner Smoothing CSS rule (Reland)

Reland of #45185

* Fix patch conflicts

* fixup! Fix patch conflicts

* Update expected image

The dashed border is subtly different. The new version is correct and the old one was incorrect.
2025-03-31 11:22:23 -05:00
Charles Kerr
fcd836e34f refactor: remove field unused weak_factory_ (#46363)
refactor: remove unused weak_factory_

Appears to have been added in e3f61b46 but never used
2025-03-31 10:39:21 +02:00
Charles Kerr
28fd7c5a17 perf: improve temporaries in WebWorkerObserver::WorkerScriptReadyForEvaluation() (#46347)
refactor: small refactor to WebWorkerObserver::WorkerScriptReadyForEvaluation()

- replace a std::vector<std::string> local with a compile-time array
  of std::string_view
- remove .c_str() pessimization when making v8 Strings from string_views
2025-03-30 23:21:39 -05:00
Charles Kerr
ae6930030a perf: prefer absl::flat_hash_set over std::unordered_set (#46348)
* perf: use absl::flat_hash_set in SpellCheckClient::SpellCheckText()

* perf: use absl::flat_hash_set in MessagePort::DisentanglePorts()
2025-03-30 23:21:18 -05:00
Charles Kerr
2fa4fb0da9 refactor: use v8::String::Empty() when creating empty strings (#46349)
refactor: use v8::String::Empty() when creating empty strings
2025-03-30 21:14:18 -05:00
Charles Kerr
bf93427cbb perf: avoid double map lookup in HidChooserContext::DeviceRemoved() (#46343) 2025-03-28 21:34:24 -05:00
Charles Kerr
72fc65d2c5 perf: avoid 3x call to GetID() in RegisterPendingSiteInstance() (#46339)
perf: avoid 3x call to GetID() in RegisterPendingSiteInstance()
2025-03-28 21:33:45 -05:00
Charles Kerr
2baa4a3514 perf: avoid a double-map lookup in NotificationPresenter::RemoveNotification() (#46338)
perf: avoid a double-map lokup in NotificationPresenter::RemoveNotification()
2025-03-28 21:33:11 -05:00
Samuel Attard
49aba471dc feat: add support for associating a Menu with a WebFrameMain (#45138)
* feat: add support for associating a Menu with a WebFrameMain

This allows certain OS level features to activate such as Writing Tools, Autofill.. and Services.

There appears to be a bug in macOS where the responder chain isn't traversed if the menu is not popped up using an event, as such we spoof a fake mouse event at the write coordinates in the right window and use that to open the menu.

* build: fix build on non-mac

* build: oops missed a header

* fix: safely handle optional T* by checking nullptr too

* build: fix gn check and build errors

* docs: suggested changes

* feat: default `frame` to `window.webContents.mainFrame` when possible

* fix: avoid deref nullptr view

* Revert "feat: default `frame` to `window.webContents.mainFrame` when possible"

This reverts commit 2e88836819.

* fix: lint

* Remove redundant scoped objects

This code, including the comments, matches almost exactly the behavior of this argument to the function.

* Add ScopedPumpMessagesInPrivateModes patch

* More null pointer safety

---------

Co-authored-by: clavin <clavin@electronjs.org>
2025-03-28 11:50:07 -07:00
Charles Kerr
46b108e9a4 perf: avoid redundant map lookups in GetStorageMask() (#46315)
* perf: avoid a redundant map lookuop in GetStorageMask()

* perf: avoid a redundant map lookup in GetDataTypeMask()
2025-03-28 00:25:25 -05:00
Hailey
ac616ef41d fix: allow NSMenuItems to be disabled (#46307)
* fix: disable NSMenu autoenable feature to allow disabling of NSMenuItems

* style: fix linter issues and update comments

* chore: remove unneeded comment
2025-03-27 17:43:46 -07:00
Charles Kerr
e09712f0e1 perf: avoid a triple-redundant map lookup in ViewsDelegate::GetAppbarAutohideEdges() (#46306)
perf: avoid a triple-redundant map lookup in ViewsDelegate::GetAppbarAutohideEdges()
2025-03-27 14:32:27 -05:00
Charles Kerr
35c90fd807 perf: avoid double map lookup in WebFrameMain::UpdateRenderFrameHost() (#46293)
perf: avoid double map lookup in WebFrameMain::UpdateRenderFrameHost()
2025-03-27 14:32:01 -05:00
Shelley Vohr
756423e81e build: validate Chromium cookie authentication (#46274) 2025-03-27 14:29:01 -05:00
Shelley Vohr
dc61a6ab80 fix: possible crash in shell.readShortcutLink (#46294)
fix: possible crash in shell.readShortcutLink
2025-03-27 14:27:32 -05:00
Shelley Vohr
a0c859fc4f build: roll build-images SHAs (#46291) 2025-03-27 10:39:02 +01:00
Shelley Vohr
17e38230d5 fix: crash when drag-dropping some files (#46253)
* fix: crash when drag-dropping some files

* fix: extra destination context scope
2025-03-26 17:17:23 -05:00
Charles Kerr
3ae285b614 perf: avoid std::map temporaries in WebContents::DevToolsRequestFileSystems() (#46268)
* perf: move the GetDevToolsWebContents() call outside of the loop

* perf: remove std::map temporary in WebContents::DevToolsRequestFileSystems()

* refactor: remove unused GetAddedFileSystemPaths()

* perf: remove std::vector temporary in WebContents::DevToolsRequestFileSystems()
2025-03-26 16:26:56 -05:00
Shelley Vohr
3212f60d69 fix: set userAgent on navigationHistory.restore() (#46260)
fix: set userAgent on navigationHistory restore
2025-03-26 10:59:19 -05:00
Charles Kerr
a5076a663b perf: avoid redundant map lookup in WebContents::DevToolsIndexPath() (#46254)
perf: avoid double map lookup in WebContents::DevToolsIndexPath()
2025-03-26 10:30:02 -05:00
Shelley Vohr
d2c2261c58 fix: hard crash on invalid command line switches (#46004)
* fix: hard crash on invalid command line switch

* Update docs/api/command-line.md

Co-authored-by: Niklas Wenzel <dev@nikwen.de>

* chore: feedback from review

* docs: Add breaking change note

---------

Co-authored-by: Niklas Wenzel <dev@nikwen.de>
2025-03-26 08:14:03 -05:00
Charles Kerr
8412d78310 perf: avoid redundant map lookup in AddComponentResourceEntries() (#46255)
* perf: avoid double map lookup in ElectronComponentExtensionResourceManager::AddComponentResourceEntries()

* perf: move the path key when calling try_emplace()
2025-03-26 08:12:16 -05:00
Charles Kerr
48a38c0289 fix: build failure when printing is disabled (#46283)
fix: ftbfs when printing is disabled
2025-03-26 10:04:39 +01:00
Charles Kerr
6e44662f15 perf: avoid redundant map lookup in WebFrameMain constructor (#46238)
perf: avoid double map lookup in WebFrameMain constructor
2025-03-25 16:53:24 -05:00
Charles Kerr
c8d3184a95 refactor: migrate hashing code to new upstream crypto::hash API (#46237)
* refactor: migrate AsarFileValidator to crypto::hash

This change migrates AsarFileValidator's uses of crypto::secure_hash
to the new crypto::hash API, which has more memory safety and less
heap allocations.

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6287609

* refactor: migrate ValidateIntegrityOrDie to crypto::hash

This change migrates ValidateIntegrityOrDie's use of crypto::SHA256Hash
to the new crypto::hash API, which has more memory safety and less heap
allocations.

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6287609
2025-03-25 15:01:17 -05:00
dependabot[bot]
bb0ddcad27 build(deps): bump actions/setup-node from 4.2.0 to 4.3.0 (#46092)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](1d0ff469b7...cdca7365b2)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-25 13:29:22 -05:00
John Kleinschmidt
4eda76de36 build: fixup windows source cache for release (#46236)
* build: fixup windows source cache for release

* build: fixup ffmpeg gn gen

* build: add build-tools depot_tools to PATH

There are some cases where it is still expected that depot_tools be in the path

* put back regular gn gen for ffmpeg

* build: add retry to moving source cache

This resolves the error: `Move-Item : The process cannot access the file because it is being used by another process.`
2025-03-25 14:24:58 -04:00
Charles Kerr
ced8fdbce8 perf: avoid std::map temporaries in IsDevToolsFileSystemAdded() (#46230)
* refactor: extract-method GetAddedFileSystems()

* refactor: use GetAddedFileSystems() in GetAddedFileSystemPaths()

* refactor: use GetAddedFileSystems() in IsDevToolsFileSystemAdded()
2025-03-25 11:42:58 -05:00
Charles Kerr
f7ba0d3b4b docs: deprecate setting ProtocolResponse.session to null (#46131)
* docs: deprecate setting ProtocolResponse.session to null

* docs: mark null ProtocolResponse.session as deprecated in struct docs

* Update docs/breaking-changes.md

Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>

---------

Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
2025-03-25 10:04:21 -05:00
Charles Kerr
4f4e23a3b3 perf: avoid redundant map lookups in GlobalShortcut (#46229)
* perf: avoid redundant map lookup in GlobalShortcut::OnKeyPressed()

* perf: avoid redundant map lookup in GlobalShortcut::ExecuteCommand()
2025-03-25 09:46:03 -05:00
Shelley Vohr
1d6cb348b4 fix: webContents.printToPDF() with cross-process subframes (#46218)
fix: webContents.printToPDF() with cross-process subframes
2025-03-25 08:16:47 -05:00
dependabot[bot]
8e856dfdb8 build(deps): bump github/codeql-action from 3.28.11 to 3.28.13 (#46240)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.11 to 3.28.13.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](6bb031afdd...1b549b9259)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-25 12:21:23 +01:00
John Beutner
cf82c3215f perf: don't wait for thumbnails if they were not requested on macOS (#46138)
When using the SCK thumbnail capturer, the first refresh has the list of
sources, and the second refresh has the thumbnails. If thumbnails are
not needed, only wait for the first refresh.
2025-03-25 12:20:38 +01:00
Robo
307d4f94c7 fix: oob string read when parsing node_options (#46210)
* fix: oob string read when parsing node_options

* chore: re-enable test

* fix: missing linux server env for tests
2025-03-25 19:33:10 +09:00
463 changed files with 9466 additions and 4149 deletions

View File

@@ -1,4 +1,5 @@
{
"name": "Electron Core Development Environment",
"dockerComposeFile": "docker-compose.yml",
"service": "buildtools",
"onCreateCommand": ".devcontainer/on-create-command.sh",
@@ -33,27 +34,15 @@
"surajbarkale.ninja",
"ms-vscode.cpptools",
"mutantdino.resourcemonitor",
"dsanders11.vscode-electron-build-tools",
"dbaeumer.vscode-eslint",
"shakram02.bash-beautify",
"marshallofsound.gnls-electron",
"marshallofsound.gnls-electron"
],
"settings": {
"editor.tabSize": 2,
"bashBeautify.tabSize": 2,
"typescript.tsdk": "node_modules/typescript/lib",
"[gn]": {
"editor.formatOnSave": true
},
"[javascript]": {
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
},
"[typescript]": {
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
},
"javascript.preferences.quoteStyle": "single",
"typescript.preferences.quoteStyle": "single"
}

View File

@@ -2,7 +2,7 @@ version: '3'
services:
buildtools:
image: ghcr.io/electron/devcontainer:77262e58c37631ab082482f42c33cdf68c6c394b
image: ghcr.io/electron/devcontainer:424eedbf277ad9749ffa9219068aa72ed4a5e373
volumes:
- ..:/workspaces/gclient/src/electron:cached

View File

@@ -73,7 +73,7 @@ body:
- type: input
attributes:
label: Testcase Gist URL
description: If you can reproduce the issue in a standalone test case, please use [Electron Fiddle](https://github.com/electron/fiddle) to create one and to publish it as a [GitHub gist](https://gist.github.com) and put the gist URL here. This is **the best way** to ensure this issue is triaged quickly.
description: Electron maintainers need a standalone test case to reproduce and fix your issue. Please use [Electron Fiddle](https://github.com/electron/fiddle) to create one and to publish it as a [GitHub gist](https://gist.github.com). Then put the gist URL here. Issues without testcase gists receive less attention and might be closed without a maintainer taking a closer look. To maximize how much attention your issue receives, please include a testcase gist right from the start.
placeholder: https://gist.github.com/...
- type: textarea
attributes:

View File

@@ -185,7 +185,7 @@ runs:
if: ${{ inputs.is-release == 'true' }}
run: |
cd src
e d gn gen out/ffmpeg --args="import(\"//electron/build/args/ffmpeg.gn\") use_remoteexec=true $GN_EXTRA_ARGS"
gn gen out/ffmpeg --args="import(\"//electron/build/args/ffmpeg.gn\") use_remoteexec=true $GN_EXTRA_ARGS"
e build --target electron:electron_ffmpeg_zip -C ../../out/ffmpeg -j $NUMBER_OF_NINJA_PROCESSES
- name: Generate Hunspell Dictionaries ${{ inputs.step-suffix }}
shell: bash

View File

@@ -179,3 +179,11 @@ runs:
else
echo "Cache key persisted in $final_cache_path"
fi
- name: Wait for active SSH sessions
shell: bash
if: always() && !cancelled()
run: |
while [ -f /var/.ssh-lock ]
do
sleep 60
done

View File

@@ -10,8 +10,10 @@ runs:
git config --global core.filemode false
git config --global core.autocrlf false
git config --global branch.autosetuprebase always
git config --global core.fscache true
git config --global core.preloadindex true
fi
export BUILD_TOOLS_SHA=8246e57791b0af4ae5975eb96f09855f9269b1cd
export BUILD_TOOLS_SHA=6e8526315ea3b4828882497e532b8340e64e053c
npm i -g @electron/build-tools
e auto-update disable
e d auto-update disable
@@ -19,3 +21,5 @@ runs:
e d cipd.bat --version
cp "C:\Python311\python.exe" "C:\Python311\python3.exe"
fi
echo "$HOME/.electron_build_tools/third_party/depot_tools" >> $GITHUB_PATH
echo "$HOME/.electron_build_tools/third_party/depot_tools/python-bin" >> $GITHUB_PATH

View File

@@ -97,18 +97,28 @@ runs:
$TEMP_DIR=New-Item -ItemType Directory -Path temp-cache
$TEMP_DIR_PATH = $TEMP_DIR.FullName
C:\ProgramData\Chocolatey\bin\7z.exe -y x $src_cache -o"$TEMP_DIR_PATH"
if (Test-Path "temp-cache\src") {
Write-Host "Relocating Cache"
Remove-Item -Recurse -Force src
Move-Item temp-cache\src src
Write-Host "Deleting zip file"
Remove-Item -Force $src_cache
}
if (-Not (Test-Path "src\third_party\blink")) {
Write-Host "Cache was not correctly restored - exiting"
exit 1
}
- name: Move Src Cache (Windows)
if: ${{ inputs.target-platform == 'win' }}
uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # v3.0.0
with:
timeout_minutes: 30
max_attempts: 3
retry_on: error
shell: powershell
command: |
if (Test-Path "temp-cache\src") {
Write-Host "Relocating Cache"
Remove-Item -Recurse -Force src
Move-Item temp-cache\src src
Write-Host "Wiping Electron Directory"
Remove-Item -Recurse -Force src\electron
Write-Host "Deleting zip file"
Remove-Item -Force $src_cache
}
if (-Not (Test-Path "src\third_party\blink")) {
Write-Host "Cache was not correctly restored - exiting"
exit 1
}
Write-Host "Wiping Electron Directory"
Remove-Item -Recurse -Force src\electron

View File

@@ -4,9 +4,14 @@ runs:
using: "composite"
steps:
- name: Set the git cookie from chromium.googlesource.com (Unix)
if: ${{ runner.os != 'Windows' && env.CHROMIUM_GIT_COOKIE }}
if: ${{ runner.os != 'Windows' }}
shell: bash
run: |
if [[ -z "${{ env.CHROMIUM_GIT_COOKIE }}" ]]; then
echo "CHROMIUM_GIT_COOKIE is not set - cannot authenticate."
exit 0
fi
eval 'set +o history' 2>/dev/null || setopt HIST_IGNORE_SPACE 2>/dev/null
touch ~/.gitcookies
chmod 0600 ~/.gitcookies
@@ -17,10 +22,37 @@ runs:
${{ env.CHROMIUM_GIT_COOKIE }}
__END__
eval 'set -o history' 2>/dev/null || unsetopt HIST_IGNORE_SPACE 2>/dev/null
RESPONSE=$(curl -s -b ~/.gitcookies https://chromium-review.googlesource.com/a/accounts/self)
if [[ $RESPONSE == ")]}'"* ]]; then
# Extract account email for verification
EMAIL=$(echo "$RESPONSE" | tail -c +5 | jq -r '.email // "No email found"')
echo "Cookie authentication successful - authenticated as: $EMAIL"
else
echo "Cookie authentication failed - ensure CHROMIUM_GIT_COOKIE is set correctly"
echo $RESPONSE
fi
- name: Set the git cookie from chromium.googlesource.com (Windows)
if: ${{ runner.os == 'Windows' && env.CHROMIUM_GIT_COOKIE_WINDOWS_STRING }}
if: ${{ runner.os == 'Windows' }}
shell: cmd
run: |
if "%CHROMIUM_GIT_COOKIE_WINDOWS_STRING%"=="" (
echo CHROMIUM_GIT_COOKIE_WINDOWS_STRING is not set - cannot authenticate.
exit /b 0
)
git config --global http.cookiefile "%USERPROFILE%\.gitcookies"
powershell -noprofile -nologo -command Write-Output "${{ env.CHROMIUM_GIT_COOKIE_WINDOWS_STRING }}" >>"%USERPROFILE%\.gitcookies"
curl -s -b "%USERPROFILE%\.gitcookies" https://chromium-review.googlesource.com/a/accounts/self > response.txt
findstr /B /C:")]}'" response.txt > nul
if %ERRORLEVEL% EQU 0 (
echo Cookie authentication successful
powershell -NoProfile -Command "& {$content = Get-Content -Raw response.txt; $content = $content.Substring(4); try { $json = ConvertFrom-Json $content; if($json.email) { Write-Host 'Authenticated as:' $json.email } else { Write-Host 'No email found in response' } } catch { Write-Host 'Error parsing JSON:' $_ }}"
) else (
echo Cookie authentication failed - ensure CHROMIUM_GIT_COOKIE_WINDOWS_STRING is set correctly
type response.txt
)
del response.txt

View File

@@ -13,7 +13,7 @@ jobs:
with:
fetch-depth: 0
- name: Setup Node.js/npm
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with:
node-version: 20.11.x
- name: Setting Up Dig Site

View File

@@ -6,7 +6,7 @@ on:
build-image-sha:
type: string
description: 'SHA for electron/build image'
default: 'bc2f48b2415a670de18d13605b1cf0eb5fdbaae1'
default: '424eedbf277ad9749ffa9219068aa72ed4a5e373'
required: true
skip-macos:
type: boolean
@@ -64,7 +64,7 @@ jobs:
id: set-output
run: |
if [ -z "${{ inputs.build-image-sha }}" ]; then
echo "build-image-sha=bc2f48b2415a670de18d13605b1cf0eb5fdbaae1" >> "$GITHUB_OUTPUT"
echo "build-image-sha=424eedbf277ad9749ffa9219068aa72ed4a5e373" >> "$GITHUB_OUTPUT"
else
echo "build-image-sha=${{ inputs.build-image-sha }}" >> "$GITHUB_OUTPUT"
fi

View File

@@ -6,7 +6,7 @@ on:
build-image-sha:
type: string
description: 'SHA for electron/build image'
default: 'bc2f48b2415a670de18d13605b1cf0eb5fdbaae1'
default: '424eedbf277ad9749ffa9219068aa72ed4a5e373'
upload-to-storage:
description: 'Uploads to Azure storage'
required: false
@@ -27,6 +27,7 @@ jobs:
- /mnt/cross-instance-cache:/mnt/cross-instance-cache
- /var/run/sas:/var/run/sas
env:
CHROMIUM_GIT_COOKIE: ${{ secrets.CHROMIUM_GIT_COOKIE }}
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
steps:
- name: Checkout Electron

View File

@@ -6,7 +6,7 @@ on:
build-image-sha:
type: string
description: 'SHA for electron/build image'
default: 'bc2f48b2415a670de18d13605b1cf0eb5fdbaae1'
default: '424eedbf277ad9749ffa9219068aa72ed4a5e373'
required: true
upload-to-storage:
description: 'Uploads to Azure storage'
@@ -28,6 +28,7 @@ jobs:
- /mnt/cross-instance-cache:/mnt/cross-instance-cache
- /var/run/sas:/var/run/sas
env:
CHROMIUM_GIT_COOKIE: ${{ secrets.CHROMIUM_GIT_COOKIE }}
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_mac=True --custom-var=host_os=mac'
steps:
- name: Checkout Electron

View File

@@ -102,7 +102,7 @@ jobs:
run: df -h
- name: Setup Node.js/npm
if: ${{ inputs.target-platform == 'macos' }}
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with:
node-version: 20.11.x
cache: yarn

View File

@@ -79,7 +79,7 @@ jobs:
cp "C:\Python311\python.exe" "C:\Python311\python3.exe"
- name: Setup Node.js/npm
if: ${{ inputs.target-platform == 'win' }}
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with:
node-version: 20.11.x
- name: Add TCC permissions on macOS
@@ -134,6 +134,8 @@ jobs:
git config --global core.filemode false
git config --global core.autocrlf false
git config --global branch.autosetuprebase always
git config --global core.fscache true
git config --global core.preloadindex true
git clone --filter=tree:0 https://chromium.googlesource.com/chromium/tools/depot_tools.git
# Ensure depot_tools does not update.
test -d depot_tools && cd depot_tools
@@ -147,12 +149,12 @@ jobs:
echo "DISABLE_CRASH_REPORTER_TESTS=true" >> $GITHUB_ENV
echo "IS_ASAN=true" >> $GITHUB_ENV
- name: Download Generated Artifacts
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: generated_artifacts_${{ env.ARTIFACT_KEY }}
path: ./generated_artifacts_${{ matrix.build-type }}_${{ inputs.target-arch }}
- name: Download Src Artifacts
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: src_artifacts_${{ env.ARTIFACT_KEY }}
path: ./src_artifacts_${{ matrix.build-type }}_${{ inputs.target-arch }}

View File

@@ -61,12 +61,12 @@ jobs:
- name: Install Dependencies
uses: ./src/electron/.github/actions/install-dependencies
- name: Download Generated Artifacts
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: generated_artifacts_${{ env.BUILD_TYPE }}_${{ env.TARGET_ARCH }}
path: ./generated_artifacts_${{ env.BUILD_TYPE }}_${{ env.TARGET_ARCH }}
- name: Download Src Artifacts
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: src_artifacts_linux_${{ env.TARGET_ARCH }}
path: ./src_artifacts_linux_${{ env.TARGET_ARCH }}
@@ -115,12 +115,12 @@ jobs:
- name: Install Dependencies
uses: ./src/electron/.github/actions/install-dependencies
- name: Download Generated Artifacts
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: generated_artifacts_${{ env.BUILD_TYPE }}_${{ env.TARGET_ARCH }}
path: ./generated_artifacts_${{ env.BUILD_TYPE }}_${{ env.TARGET_ARCH }}
- name: Download Src Artifacts
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: src_artifacts_linux_${{ env.TARGET_ARCH }}
path: ./src_artifacts_linux_${{ env.TARGET_ARCH }}

View File

@@ -50,6 +50,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@6bb031afdd8eb862ea3fc1848194185e076637e5 # v3.28.11
uses: github/codeql-action/upload-sarif@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
with:
sarif_file: results.sarif

View File

@@ -6,7 +6,7 @@ on:
build-image-sha:
type: string
description: 'SHA for electron/build image'
default: 'bc2f48b2415a670de18d13605b1cf0eb5fdbaae1'
default: '424eedbf277ad9749ffa9219068aa72ed4a5e373'
required: true
upload-to-storage:
description: 'Uploads to Azure storage'
@@ -25,8 +25,10 @@ jobs:
image: ghcr.io/electron/build:${{ inputs.build-image-sha }}
options: --user root --device /dev/fuse --cap-add SYS_ADMIN
volumes:
- /mnt/cross-instance-cache:/mnt/cross-instance-cache
- /mnt/win-cache:/mnt/win-cache
- /var/run/sas:/var/run/sas
env:
CHROMIUM_GIT_COOKIE_WINDOWS_STRING: ${{ secrets.CHROMIUM_GIT_COOKIE_WINDOWS_STRING }}
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_win=True'
TARGET_OS: 'win'
ELECTRON_DEPOT_TOOLS_WIN_TOOLCHAIN: '1'

View File

@@ -17,19 +17,19 @@ import("//tools/grit/repack.gni")
import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
import("//v8/gni/snapshot_toolchain.gni")
import("build/asar.gni")
import("build/electron_paks.gni")
import("build/extract_symbols.gni")
import("build/js2c_toolchain.gni")
import("build/npm.gni")
import("build/templated_file.gni")
import("build/tsc.gni")
import("build/webpack/webpack.gni")
import("buildflags/buildflags.gni")
import("electron_paks.gni")
import("filenames.auto.gni")
import("filenames.gni")
import("filenames.hunspell.gni")
import("filenames.libcxx.gni")
import("filenames.libcxxabi.gni")
import("js2c_toolchain.gni")
if (is_mac) {
import("//build/config/mac/rules.gni")
@@ -314,7 +314,7 @@ asar("default_app_asar") {
}
grit("resources") {
source = "electron_resources.grd"
source = "build/electron_resources.grd"
outputs = [
"grit/electron_resources.h",
@@ -670,6 +670,8 @@ source_set("electron_lib") {
sources += [
"shell/browser/certificate_manager_model.cc",
"shell/browser/certificate_manager_model.h",
"shell/browser/linux/x11_util.cc",
"shell/browser/linux/x11_util.h",
"shell/browser/ui/gtk_util.cc",
"shell/browser/ui/gtk_util.h",
]

4
DEPS
View File

@@ -2,9 +2,9 @@ gclient_gn_args_from = 'src'
vars = {
'chromium_version':
'136.0.7067.0',
'138.0.7160.0',
'node_version':
'v22.14.0',
'v22.15.0',
'nan_version':
'e14bdcd1f72d62bca1d541b66da43130384ec213',
'squirrel.mac_version':

View File

@@ -2,7 +2,7 @@ is_electron_build = true
root_extra_deps = [ "//electron" ]
# Registry of NMVs --> https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json
node_module_version = 135
node_module_version = 136
v8_promise_internal_field_count = 1
v8_embedder_string = "-electron.0"

View File

@@ -85,6 +85,8 @@ static_library("chrome") {
"//chrome/browser/process_singleton.h",
"//chrome/browser/process_singleton_internal.cc",
"//chrome/browser/process_singleton_internal.h",
"//chrome/browser/serial/serial_blocklist.cc",
"//chrome/browser/serial/serial_blocklist.h",
"//chrome/browser/themes/browser_theme_pack.cc",
"//chrome/browser/themes/browser_theme_pack.h",
"//chrome/browser/themes/custom_theme_supplier.cc",
@@ -144,6 +146,8 @@ static_library("chrome") {
"//chrome/browser/ui/views/overlay/video_overlay_window_views.h",
"//chrome/browser/ui/webui/accessibility/accessibility_ui.cc",
"//chrome/browser/ui/webui/accessibility/accessibility_ui.h",
"//chrome/browser/usb/usb_blocklist.cc",
"//chrome/browser/usb/usb_blocklist.h",
"//extensions/browser/app_window/size_constraints.cc",
"//extensions/browser/app_window/size_constraints.h",
"//ui/base/accelerators/global_accelerator_listener/global_accelerator_listener.cc",

View File

@@ -96,8 +96,9 @@ These individual tutorials expand on topics discussed in the guide above.
* [Chrome Extensions Support](api/extensions.md)
* [Breaking API Changes](breaking-changes.md)
### Custom DOM Elements:
### Custom Web Features:
* [`-electron-corner-smoothing` CSS Rule](api/corner-smoothing-css.md)
* [`<webview>` Tag](api/webview-tag.md)
* [`window.open` Function](api/window-open.md)

View File

@@ -1110,6 +1110,11 @@ indicates success while any other value indicates failure according to Chromium
resolver will attempt to use the system's DNS settings to do DNS lookups
itself. Enabled by default on macOS, disabled by default on Windows and
Linux.
* `enableHappyEyeballs` boolean (optional) - Whether the
[Happy Eyeballs V3][happy-eyeballs-v3] algorithm should be used in creating
network connections. When enabled, hostnames resolving to multiple IP
addresses will be attempted in parallel to have a chance at establishing a
connection more quickly.
* `secureDnsMode` string (optional) - Can be 'off', 'automatic' or 'secure'.
Configures the DNS-over-HTTP mode. When 'off', no DoH lookups will be
performed. When 'automatic', DoH lookups will be performed first if DoH is
@@ -1485,7 +1490,7 @@ and internal requests made by the runtime (ex: geolocation queries).
This method can only be called after app is ready.
#### `app.resolveProxy(url)`
### `app.resolveProxy(url)`
* `url` URL
@@ -1579,6 +1584,7 @@ A `boolean` property that returns `true` if the app is packaged, `false` otherw
[Squirrel-Windows]: https://github.com/Squirrel/Squirrel.Windows
[JumpListBeginListMSDN]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-icustomdestinationlist-beginlist
[about-panel-options]: https://developer.apple.com/reference/appkit/nsapplication/1428479-orderfrontstandardaboutpanelwith?language=objc
[happy-eyeballs-v3]: https://datatracker.ietf.org/doc/draft-pauly-happy-happyeyeballs-v3/
### `app.name`

View File

@@ -342,12 +342,12 @@ Emitted when the window has closed a sheet.
Emitted when the native new tab button is clicked.
#### Event: 'system-context-menu' _Windows_
#### Event: 'system-context-menu' _Windows_ _Linux_
Returns:
* `event` Event
* `point` [Point](structures/point.md) - The screen coordinates the context menu was triggered at
* `point` [Point](structures/point.md) - The screen coordinates where the context menu was triggered.
Emitted when the system context menu is triggered on the window, this is
normally only triggered when the user right clicks on the non-client area
@@ -356,6 +356,8 @@ as `-webkit-app-region: drag` in a frameless window.
Calling `event.preventDefault()` will prevent the menu from being displayed.
To convert `point` to DIP, use [`screen.screenToDipPoint(point)`](./screen.md#screenscreentodippointpoint-windows-linux).
### Static Methods
The `BaseWindow` class has the following static methods:
@@ -396,7 +398,7 @@ A `View` property for the content view of the window.
A `string` (optional) property that is equal to the `tabbingIdentifier` passed to the `BrowserWindow` constructor or `undefined` if none was set.
#### `win.autoHideMenuBar`
#### `win.autoHideMenuBar` _Linux_ _Windows_
A `boolean` property that determines whether the window menu bar should hide itself automatically. Once set, the menu bar will only show when users press the single `Alt` key.

View File

@@ -421,12 +421,12 @@ Emitted when the window has closed a sheet.
Emitted when the native new tab button is clicked.
#### Event: 'system-context-menu' _Windows_
#### Event: 'system-context-menu' _Windows_ _Linux_
Returns:
* `event` Event
* `point` [Point](structures/point.md) - The screen coordinates the context menu was triggered at
* `point` [Point](structures/point.md) - The screen coordinates where the context menu was triggered.
Emitted when the system context menu is triggered on the window, this is
normally only triggered when the user right clicks on the non-client area
@@ -435,6 +435,8 @@ as `-webkit-app-region: drag` in a frameless window.
Calling `event.preventDefault()` will prevent the menu from being displayed.
To convert `point` to DIP, use [`screen.screenToDipPoint(point)`](./screen.md#screenscreentodippointpoint-windows-linux).
### Static Methods
The `BrowserWindow` class has the following static methods:
@@ -497,7 +499,7 @@ A `Integer` property representing the unique ID of the window. Each ID is unique
A `string` (optional) property that is equal to the `tabbingIdentifier` passed to the `BrowserWindow` constructor or `undefined` if none was set.
#### `win.autoHideMenuBar`
#### `win.autoHideMenuBar` _Linux_ _Windows_
A `boolean` property that determines whether the window menu bar should hide itself automatically. Once set, the menu bar will only show when users press the single `Alt` key.

View File

@@ -20,45 +20,87 @@ document.
#### `commandLine.appendSwitch(switch[, value])`
* `switch` string - A command-line switch, without the leading `--`
* `value` string (optional) - A value for the given switch
* `switch` string - A command-line switch, without the leading `--`.
* `value` string (optional) - A value for the given switch.
Append a switch (with optional `value`) to Chromium's command line.
**Note:** This will not affect `process.argv`. The intended usage of this function is to
control Chromium's behavior.
```js
const { app } = require('electron')
app.commandLine.appendSwitch('remote-debugging-port', '8315')
```
#### `commandLine.appendArgument(value)`
* `value` string - The argument to append to the command line
* `value` string - The argument to append to the command line.
Append an argument to Chromium's command line. The argument will be quoted
correctly. Switches will precede arguments regardless of appending order.
If you're appending an argument like `--switch=value`, consider using `appendSwitch('switch', 'value')` instead.
```js
const { app } = require('electron')
app.commandLine.appendArgument('--enable-experimental-web-platform-features')
```
**Note:** This will not affect `process.argv`. The intended usage of this function is to
control Chromium's behavior.
#### `commandLine.hasSwitch(switch)`
* `switch` string - A command-line switch
* `switch` string - A command-line switch.
Returns `boolean` - Whether the command-line switch is present.
```js
const { app } = require('electron')
app.commandLine.appendSwitch('remote-debugging-port', '8315')
const hasPort = app.commandLine.hasSwitch('remote-debugging-port')
console.log(hasPort) // true
```
#### `commandLine.getSwitchValue(switch)`
* `switch` string - A command-line switch
* `switch` string - A command-line switch.
Returns `string` - The command-line switch value.
This function is meant to obtain Chromium command line switches. It is not
meant to be used for application-specific command line arguments. For the
latter, please use `process.argv`.
```js
const { app } = require('electron')
app.commandLine.appendSwitch('remote-debugging-port', '8315')
const portValue = app.commandLine.getSwitchValue('remote-debugging-port')
console.log(portValue) // '8315'
```
**Note:** When the switch is not present or has no value, it returns empty string.
#### `commandLine.removeSwitch(switch)`
* `switch` string - A command-line switch
* `switch` string - A command-line switch.
Removes the specified switch from Chromium's command line.
```js
const { app } = require('electron')
app.commandLine.appendSwitch('remote-debugging-port', '8315')
console.log(app.commandLine.hasSwitch('remote-debugging-port')) // true
app.commandLine.removeSwitch('remote-debugging-port')
console.log(app.commandLine.hasSwitch('remote-debugging-port')) // false
```
**Note:** This will not affect `process.argv`. The intended usage of this function is to
control Chromium's behavior.

View File

@@ -0,0 +1,78 @@
## CSS Rule: `-electron-corner-smoothing`
> Smoothes out the corner rounding of the `border-radius` CSS rule.
The rounded corners of elements with [the `border-radius` CSS rule](https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius) can be smoothed out using the `-electron-corner-smoothing` CSS rule. This smoothness is very similar to Apple's "continuous" rounded corners in SwiftUI and Figma's "corner smoothing" control on design elements.
![There is a black rectangle on the left using simple rounded corners, and a blue rectangle on the right using smooth rounded corners. In between those rectangles is a magnified view of the same corner from both rectangles overlapping to show the subtle difference in shape.](../images/corner-smoothing-summary.svg)
Integrating with the operating system and its design language is important to many desktop applications. The shape of a rounded corner can be a subtle detail to many users. However, aligning closely to the system's design language that users are familiar with makes the application's design feel familiar too. Beyond matching the design language of macOS, designers may decide to use smoother round corners for many other reasons.
`-electron-corner-smoothing` affects the shape of borders, outlines, and shadows on the target element. Mirroring the behavior of `border-radius`, smoothing will gradually back off if an element's size is too small for the chosen value.
The `-electron-corner-smoothing` CSS rule is **only implemented for Electron** and has no effect in browsers. Avoid using this rule outside of Electron. This CSS rule is considered experimental and may require migration in the future if replaced by a CSS standard.
### Example
The following example shows the effect of corner smoothing at different percents.
```css
.box {
width: 128px;
height: 128px;
background-color: cornflowerblue;
border-radius: 24px;
-electron-corner-smoothing: var(--percent); /* Column header in table below. */
}
```
| 0% | 30% | 60% | 100% |
| --- | --- | --- | --- |
| ![A rectangle with round corners at 0% smoothness](../images/corner-smoothing-example-0.svg) | ![A rectangle with round corners at 30% smoothness](../images/corner-smoothing-example-30.svg) | ![A rectangle with round corners at 60% smoothness](../images/corner-smoothing-example-60.svg) | ![A rectangle with round corners at 100% smoothness](../images/corner-smoothing-example-100.svg) |
### Matching the system UI
Use the `system-ui` keyword to match the smoothness to the OS design language.
```css
.box {
width: 128px;
height: 128px;
background-color: cornflowerblue;
border-radius: 24px;
-electron-corner-smoothing: system-ui; /* Match the system UI design. */
}
```
| OS: | macOS | Windows, Linux |
| --- | --- | --- |
| Value: | `60%` | `0%` |
| Example: | ![A rectangle with round corners whose smoothness matches macOS](../images/corner-smoothing-example-60.svg) | ![A rectangle with round corners whose smoothness matches Windows and Linux](../images/corner-smoothing-example-0.svg) |
### Controlling availibility
This CSS rule can be disabled by setting [the `cornerSmoothingCSS` web preference](./structures/web-preferences.md) to `false`.
```js
const myWindow = new BrowserWindow({
// [...]
webPreferences: {
enableCornerSmoothingCSS: false // Disables the `-electron-corner-smoothing` CSS rule
}
})
```
The CSS rule will still parse, but will have no visual effect.
### Formal reference
* **Initial value**: `0%`
* **Inherited**: No
* **Animatable**: No
* **Computed value**: As specified
```css
-electron-corner-smoothing =
<percentage [0,100]> |
system-ui
```

View File

@@ -73,6 +73,8 @@ The `menu` object has the following instance methods:
* `options` Object (optional)
* `window` [BaseWindow](base-window.md) (optional) - Default is the focused window.
* `frame` [WebFrameMain](web-frame-main.md) (optional) - Provide the relevant frame
if you want certain OS-level features such as Writing Tools on macOS to function correctly. Typically, this should be `params.frame` from the [`context-menu` event](web-contents.md#event-context-menu) on a WebContents, or the [`focusedFrame` property](web-contents.md#contentsfocusedframe-readonly) of a WebContents.
* `x` number (optional) - Default is the current mouse cursor position.
Must be declared if `y` is declared.
* `y` number (optional) - Default is the current mouse cursor position.

View File

@@ -142,8 +142,8 @@ Note: The Windows implementation will ignore `size.height` and scale the height
Returns `NativeImage`
Creates a new `NativeImage` instance from a file located at `path`. This method
returns an empty image if the `path` does not exist, cannot be read, or is not
Creates a new `NativeImage` instance from an image file (e.g., PNG or JPEG) located at `path`.
This method returns an empty image if the `path` does not exist, cannot be read, or is not
a valid image.
```js
@@ -271,16 +271,12 @@ changes:
Returns `string` - The [Data URL][data-url] of the image.
#### `image.getBitmap([options])`
#### `image.getBitmap([options])` _Deprecated_
* `options` Object (optional)
* `scaleFactor` Number (optional) - Defaults to 1.0.
Returns `Buffer` - A [Buffer][buffer] that contains the image's raw bitmap pixel data.
The difference between `getBitmap()` and `toBitmap()` is that `getBitmap()` does not
copy the bitmap data, so you have to use the returned Buffer immediately in
current event loop tick; otherwise the data might be changed or destroyed.
Legacy alias for `image.toBitmap()`.
#### `image.getNativeHandle()` _macOS_

View File

@@ -63,6 +63,14 @@ Your application should then always use `shouldUseDarkColors` to determine what
A `boolean` for if the OS / Chromium currently has high-contrast mode enabled
or is being instructed to show a high-contrast UI.
### `nativeTheme.shouldUseDarkColorsForSystemIntegratedUI` _macOS_ _Windows_ _Readonly_
A `boolean` property indicating whether or not the system theme has been set to dark or light.
On Windows this property distinguishes between system and app light/dark theme, returning
`true` if the system theme is set to dark theme and `false` otherwise. On macOS the return
value will be the same as `nativeTheme.shouldUseDarkColors`.
### `nativeTheme.shouldUseInvertedColorScheme` _macOS_ _Windows_ _Readonly_
A `boolean` for if the OS / Chromium currently has an inverted color scheme

View File

@@ -124,7 +124,7 @@ Returns [`Display`](structures/display.md) - The display nearest the specified p
Returns [`Display`](structures/display.md) - The display that most closely
intersects the provided bounds.
### `screen.screenToDipPoint(point)` _Windows_
### `screen.screenToDipPoint(point)` _Windows_ _Linux_
* `point` [Point](structures/point.md)
@@ -133,7 +133,10 @@ Returns [`Point`](structures/point.md)
Converts a screen physical point to a screen DIP point.
The DPI scale is performed relative to the display containing the physical point.
### `screen.dipToScreenPoint(point)` _Windows_
Not currently supported on Wayland - if used there it will return the point passed
in with no changes.
### `screen.dipToScreenPoint(point)` _Windows_ _Linux_
* `point` [Point](structures/point.md)
@@ -142,6 +145,8 @@ Returns [`Point`](structures/point.md)
Converts a screen DIP point to a screen physical point.
The DPI scale is performed relative to the display containing the DIP point.
Not currently supported on Wayland.
### `screen.screenToDipRect(window, rect)` _Windows_
* `window` [BrowserWindow](browser-window.md) | null

View File

@@ -58,8 +58,8 @@
`false` on macOS. This option is not configurable on other platforms.
* `disableAutoHideCursor` boolean (optional) - Whether to hide cursor when typing.
Default is `false`.
* `autoHideMenuBar` boolean (optional) - Auto hide the menu bar unless the `Alt`
key is pressed. Default is `false`.
* `autoHideMenuBar` boolean (optional) _Linux_ _Windows_ - Auto hide the menu bar
unless the `Alt` key is pressed. Default is `false`.
* `enableLargerThanScreen` boolean (optional) _macOS_ - Enable the window to
be resized larger than screen. Only relevant for macOS, as other OSes
allow larger-than-screen windows by default. Default is `false`.
@@ -93,7 +93,7 @@
**Note:** This option is currently experimental.
* `titleBarOverlay` Object | Boolean (optional) - When using a frameless window in conjunction with `win.setWindowButtonVisibility(true)` on macOS or using a `titleBarStyle` so that the standard window controls ("traffic lights" on macOS) are visible, this property enables the Window Controls Overlay [JavaScript APIs][overlay-javascript-apis] and [CSS Environment Variables][overlay-css-env-vars]. Specifying `true` will result in an overlay with default system colors. Default is `false`.
* `color` String (optional) _Windows_ _Linux_ - The CSS color of the Window Controls Overlay when enabled. Default is the system color.
* `symbolColor` String (optional) _Windows_ - The CSS color of the symbols on the Window Controls Overlay when enabled. Default is the system color.
* `symbolColor` String (optional) _Windows_ _Linux_ - The CSS color of the symbols on the Window Controls Overlay when enabled. Default is the system color.
* `height` Integer (optional) - The height of the title bar and Window Controls Overlay in pixels. Default is system height.
* `trafficLightPosition` [Point](point.md) (optional) _macOS_ -
Set a custom position for the traffic light buttons in frameless windows.

View File

@@ -25,9 +25,8 @@
and URL responses.
* `method` string (optional) - The HTTP `method`. This is only used for file
and URL responses.
* `session` Session (optional) - The session used for requesting URL, by default
the HTTP request will reuse the current session. Setting `session` to `null`
would use a random independent session. This is only used for URL responses.
* `session` Session (optional) - The session used for requesting URL.
The HTTP request will reuse the current session by default.
* `uploadData` [ProtocolResponseUploadData](protocol-response-upload-data.md) (optional) - The data used as upload data. This is only
used for URL responses when `method` is `"POST"`.

View File

@@ -149,6 +149,7 @@
`WebContents` when the preferred size changes. Default is `false`.
* `transparent` boolean (optional) - Whether to enable background transparency for the guest page. Default is `true`. **Note:** The guest page's text and background colors are derived from the [color scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme) of its root element. When transparency is enabled, the text color will still change accordingly but the background will remain transparent.
* `enableDeprecatedPaste` boolean (optional) _Deprecated_ - Whether to enable the `paste` [execCommand](https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand). Default is `false`.
* `enableCornerSmoothingCSS` boolean (optional) _Experimental_ - Whether the [`-electron-corner-smoothing` CSS rule](../corner-smoothing-css.md) is enabled. Default is `true`.
[chrome-content-scripts]: https://developer.chrome.com/extensions/content_scripts#execution-environment
[runtime-enabled-features]: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/runtime_enabled_features.json5

View File

@@ -238,7 +238,7 @@ Sets the `image` associated with this tray icon when pressed on macOS.
* `toolTip` string
Sets the hover text for this tray icon.
Sets the hover text for this tray icon. Setting the text to an empty string will remove the tooltip.
#### `tray.setTitle(title[, options])` _macOS_

View File

@@ -44,6 +44,8 @@ Process: [Main](../glossary.md#main-process)<br />
Returns [`UtilityProcess`](utility-process.md#class-utilityprocess)
**Note:** `utilityProcess.fork` can only be called after the `ready` event has been emitted on `App`.
## Class: UtilityProcess
> Instances of the `UtilityProcess` represent the Chromium spawned child process

View File

@@ -887,7 +887,7 @@ const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ webPreferences: { offscreen: true } })
win.webContents.on('paint', (event, dirty, image) => {
// updateBitmap(dirty, image.getBitmap())
// updateBitmap(dirty, image.toBitmap())
})
win.loadURL('https://github.com')
```

View File

@@ -14,13 +14,6 @@ This document uses the following convention to categorize breaking changes:
## Planned Breaking API Changes (37.0)
### Behavior Changed: `BrowserWindow.IsVisibleOnAllWorkspaces()` on Linux
`BrowserWindow.IsVisibleOnAllWorkspaces()` will now return false on Linux if the
window is not currently visible.
## Planned Breaking API Changes (36.0)
### Utility Process unhandled rejection behavior change
Utility Processes will now warn with an error message when an unhandled
@@ -34,7 +27,53 @@ process.on('unhandledRejection', () => {
})
```
### Removed:`isDefault` and `status` properties on `PrinterInfo`
### Behavior Changed: WebUSB and WebSerial Blocklist Support
[WebUSB](https://developer.mozilla.org/en-US/docs/Web/API/WebUSB_API) and [Web Serial](https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API) now support the [WebUSB Blocklist](https://wicg.github.io/webusb/#blocklist) and [Web Serial Blocklist](https://wicg.github.io/serial/#blocklist) used by Chromium and outlined in their respective specifications.
To disable these, users can pass `disable-usb-blocklist` and `disable-serial-blocklist` as command line flags.
### Removed: `null` value for `session` property in `ProtocolResponse`
This deprecated feature has been removed.
Previously, setting the `ProtocolResponse.session` property to `null`
would create a random independent session. This is no longer supported.
Using single-purpose sessions here is discouraged due to overhead costs;
however, old code that needs to preserve this behavior can emulate it by
creating a random session with `session.fromPartition(some_random_string)`
and then using it in `ProtocolResponse.session`.
### Behavior Changed: `BrowserWindow.IsVisibleOnAllWorkspaces()` on Linux
`BrowserWindow.IsVisibleOnAllWorkspaces()` will now return false on Linux if the
window is not currently visible.
## Planned Breaking API Changes (36.0)
### Behavior Changes: `app.commandLine`
`app.commandLine` will convert upper-cases switches and arguments to lowercase.
`app.commandLine` was only meant to handle chromium switches (which aren't case-sensitive) and switches passed via `app.commandLine` will not be passed down to any of the child processes.
If you were using `app.commandLine` to control the behavior of the main process, you should do this via `process.argv`.
### Deprecated: `NativeImage.getBitmap()`
`NativeImage.toBitmap()` returns a newly-allocated copy of the bitmap. `NativeImage.getBitmap()` was originally an alternative function that returned the original instead of a copy. This changed when sandboxing was introduced, so both return a copy and are functionally equivalent.
Client code should call `NativeImage.toBitmap()` instead:
```js
// Deprecated
bitmap = image.getBitmap()
// Use this instead
bitmap = image.toBitmap()
```
### Removed: `isDefault` and `status` properties on `PrinterInfo`
These properties have been removed from the PrinterInfo Object
because they have been removed from upstream Chromium.
@@ -46,6 +85,16 @@ When calling `Session.clearStorageData(options)`, the `options.quota` type
[removed](https://chromium-review.googlesource.com/c/chromium/src/+/6309405)
from upstream Chromium.
### Deprecated: `null` value for `session` property in `ProtocolResponse`
Previously, setting the ProtocolResponse.session property to `null`
Would create a random independent session. This is no longer supported.
Using single-purpose sessions here is discouraged due to overhead costs;
however, old code that needs to preserve this behavior can emulate it by
creating a random session with `session.fromPartition(some_random_string)`
and then using it in `ProtocolResponse.session`.
### Deprecated: `quota` property in `Session.clearStorageData(options)`
When calling `Session.clearStorageData(options)`, the `options.quota`
@@ -66,6 +115,24 @@ It has been always returning `true` since Electron 23, which only supports Windo
https://learn.microsoft.com/en-us/windows/win32/dwm/composition-ovw#disabling-dwm-composition-windows7-and-earlier
### Changed: GTK 4 is default when running GNOME
After an [upstream change](https://chromium-review.googlesource.com/c/chromium/src/+/6310469), GTK 4 is now the default when running GNOME.
In rare cases, this may cause some applications or configurations to [error](https://github.com/electron/electron/issues/46538) with the following message:
```stderr
Gtk-ERROR **: 11:30:38.382: GTK 2/3 symbols detected. Using GTK 2/3 and GTK 4 in the same process is not supported
```
Affected users can work around this by specifying the `gtk-version` command-line flag:
```shell
$ electron --gtk-version=3 # or --gtk-version=2
```
The same can be done with the [`app.commandLine.appendSwitch`](https://www.electronjs.org/docs/latest/api/command-line#commandlineappendswitchswitch-value) function.
## Planned Breaking API Changes (35.0)
### Behavior Changed: Dialog API's `defaultPath` option on Linux

View File

@@ -1,6 +1,12 @@
const { app, BrowserWindow, ipcMain } = require('electron/main')
const path = require('node:path')
function handleSetTitle (event, title) {
const webContents = event.sender
const win = BrowserWindow.fromWebContents(webContents)
win.setTitle(title)
}
function createWindow () {
const mainWindow = new BrowserWindow({
webPreferences: {
@@ -8,16 +14,11 @@ function createWindow () {
}
})
ipcMain.on('set-title', (event, title) => {
const webContents = event.sender
const win = BrowserWindow.fromWebContents(webContents)
win.setTitle(title)
})
mainWindow.loadFile('index.html')
}
app.whenReady().then(() => {
ipcMain.on('set-title', handleSetTitle)
createWindow()
app.on('activate', function () {

View File

@@ -0,0 +1,3 @@
<svg width="192" height="192" viewBox="0 0 192 192" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 48C0 21.4903 21.4903 0 48 0H144C170.51 0 192 21.4903 192 48V144C192 170.51 170.51 192 144 192H48C21.4903 192 0 170.51 0 144V48Z" fill="#6495ED"/>
</svg>

After

Width:  |  Height:  |  Size: 265 B

View File

@@ -0,0 +1,3 @@
<svg width="192" height="192" viewBox="0 0 192 192" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 96C0 50.7452 0 28.1177 14.0589 14.0589C28.1177 0 50.7452 0 96 0C141.255 0 163.882 0 177.941 14.0589C192 28.1177 192 50.7452 192 96C192 141.255 192 163.882 177.941 177.941C163.882 192 141.255 192 96 192C50.7452 192 28.1177 192 14.0589 177.941C0 163.882 0 141.255 0 96Z" fill="#6495ED"/>
</svg>

After

Width:  |  Height:  |  Size: 405 B

View File

@@ -0,0 +1,3 @@
<svg width="192" height="192" viewBox="0 0 192 192" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 62.4C0 49.0126 0 42.3188 1.32624 36.7946C5.5399 19.2435 19.2435 5.5399 36.7946 1.32624C42.3188 0 49.0126 0 62.4 0H129.6C142.987 0 149.681 0 155.205 1.32624C172.757 5.5399 186.46 19.2435 190.674 36.7946C192 42.3188 192 49.0126 192 62.4V129.6C192 142.987 192 149.681 190.674 155.205C186.46 172.757 172.757 186.46 155.205 190.674C149.681 192 142.987 192 129.6 192H62.4C49.0126 192 42.3188 192 36.7946 190.674C19.2435 186.46 5.5399 172.757 1.32624 155.205C0 149.681 0 142.987 0 129.6V62.4Z" fill="#6495ED"/>
</svg>

After

Width:  |  Height:  |  Size: 623 B

View File

@@ -0,0 +1,3 @@
<svg width="192" height="192" viewBox="0 0 192 192" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 76.8C0 49.9175 0 36.4762 5.23169 26.2085C9.83361 17.1767 17.1767 9.83361 26.2085 5.23169C36.4762 0 49.9175 0 76.8 0H115.2C142.083 0 155.524 0 165.792 5.23169C174.823 9.83361 182.166 17.1767 186.768 26.2085C192 36.4762 192 49.9175 192 76.8V115.2C192 142.083 192 155.524 186.768 165.792C182.166 174.823 174.823 182.166 165.792 186.768C155.524 192 142.083 192 115.2 192H76.8C49.9175 192 36.4762 192 26.2085 186.768C17.1767 182.166 9.83361 174.823 5.23169 165.792C0 155.524 0 142.083 0 115.2V76.8Z" fill="#6495ED"/>
</svg>

After

Width:  |  Height:  |  Size: 631 B

View File

@@ -0,0 +1,15 @@
<svg width="1024" height="512" viewBox="0 0 1024 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="1024" height="512" fill="#EEEEEE"/>
<rect x="32" y="128" width="256" height="256" fill="white"/>
<rect x="64" y="160" width="192" height="192" rx="48" stroke="#444444" stroke-width="4"/>
<rect x="320" y="64" width="384" height="384" fill="white"/>
<mask id="mask0_1_2" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="320" y="64" width="384" height="384">
<rect x="320" y="64" width="384" height="384" fill="white"/>
</mask>
<g mask="url(#mask0_1_2)">
<rect x="85" y="171" width="512" height="512" rx="128" stroke="#444444" stroke-width="8"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M340.677 167H341.323C401.39 167 446.862 167 481.984 171.722C517.284 176.468 542.726 186.05 562.338 205.662C581.95 225.274 591.532 250.716 596.278 286.016C601 321.138 601 366.61 601 426.677V427.323C601 487.39 601 532.862 596.278 567.984C591.532 603.284 581.95 628.726 562.338 648.338C542.726 667.95 517.284 677.532 481.984 682.278C446.862 687 401.39 687 341.323 687H340.677C280.61 687 235.138 687 200.016 682.278C164.716 677.532 139.274 667.95 119.662 648.338C100.05 628.726 90.4679 603.284 85.722 567.984C81 532.862 81 487.39 81 427.323V426.677C81 366.61 81 321.138 85.722 286.016C90.4679 250.716 100.05 225.274 119.662 205.662C139.274 186.05 164.716 176.468 200.016 171.722C235.138 167 280.61 167 340.677 167ZM201.082 179.651C166.67 184.277 143.197 193.441 125.319 211.319C107.441 229.197 98.2773 252.67 93.6506 287.082C89.0085 321.61 89 366.547 89 427C89 487.453 89.0085 532.39 93.6506 566.918C98.2773 601.33 107.441 624.803 125.319 642.681C143.197 660.559 166.67 669.723 201.082 674.349C235.61 678.992 280.547 679 341 679C401.453 679 446.39 678.992 480.918 674.349C515.33 669.723 538.803 660.559 556.681 642.681C574.559 624.803 583.723 601.33 588.349 566.918C592.992 532.39 593 487.453 593 427C593 366.547 592.992 321.61 588.349 287.082C583.723 252.67 574.559 229.197 556.681 211.319C538.803 193.441 515.33 184.277 480.918 179.651C446.39 175.008 401.453 175 341 175C280.547 175 235.61 175.008 201.082 179.651Z" fill="#2A90D9"/>
</g>
<rect x="731" y="128" width="256" height="256" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M863.839 158H864.161C886.652 158 903.732 158 916.936 159.775C930.228 161.562 939.892 165.182 947.355 172.645C954.818 180.108 958.438 189.772 960.225 203.064C962 216.268 962 233.348 962 255.839V256.161C962 278.652 962 295.732 960.225 308.936C958.438 322.228 954.818 331.892 947.355 339.355C939.892 346.818 930.228 350.438 916.936 352.225C903.732 354 886.652 354 864.161 354H863.839C841.348 354 824.268 354 811.064 352.225C797.772 350.438 788.108 346.818 780.645 339.355C773.182 331.892 769.562 322.228 767.775 308.936C766 295.732 766 278.652 766 256.161V255.839C766 233.348 766 216.268 767.775 203.064C769.562 189.772 773.182 180.108 780.645 172.645C788.108 165.182 797.772 161.562 811.064 159.775C824.268 158 841.348 158 863.839 158ZM811.597 163.74C798.748 165.467 790.069 168.877 783.473 175.473C776.877 182.069 773.467 190.748 771.74 203.597C770.004 216.504 770 233.316 770 256C770 278.684 770.004 295.496 771.74 308.403C773.467 321.252 776.877 329.931 783.473 336.527C790.069 343.123 798.748 346.533 811.597 348.26C824.504 349.996 841.316 350 864 350C886.684 350 903.496 349.996 916.403 348.26C929.252 346.533 937.931 343.123 944.527 336.527C951.123 329.931 954.533 321.252 956.26 308.403C957.996 295.496 958 278.684 958 256C958 233.316 957.996 216.504 956.26 203.597C954.533 190.748 951.123 182.069 944.527 175.473C937.931 168.877 929.252 165.467 916.403 163.74C903.496 162.004 886.684 162 864 162C841.316 162 824.504 162.004 811.597 163.74Z" fill="#2A90D9"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -37,7 +37,6 @@ the illusion of a circular window.
open on the user's system).
* The window will not be transparent when DevTools is opened.
* On _Windows_:
* Transparent windows will not work when DWM is disabled.
* Transparent windows can not be maximized using the Windows system menu or by double
clicking the title bar. The reasoning behind this can be seen on
PR [#28207](https://github.com/electron/electron/pull/28207).

View File

@@ -57,7 +57,7 @@ the WebHID API:
### Blocklist
By default Electron employs the same [blocklist](https://github.com/WICG/webhid/blob/main/blocklist.txt)
By default Electron employs the same [blocklist](https://wicg.github.io/webhid/#blocklist)
used by Chromium. If you wish to override this behavior, you can do so by
setting the `disable-hid-blocklist` flag:
@@ -104,6 +104,16 @@ There are several additional APIs for working with the Web Serial API:
* [`ses.setPermissionCheckHandler(handler)`](../api/session.md#sessetpermissioncheckhandlerhandler)
can be used to disable serial access for specific origins.
### Blocklist
By default Electron employs the same [blocklist](https://wicg.github.io/serial/#blocklist)
used by Chromium. If you wish to override this behavior, you can do so by
setting the `disable-serial-blocklist` flag:
```js
app.commandLine.appendSwitch('disable-serial-blocklist')
```
### Example
This example demonstrates an Electron application that automatically selects
@@ -145,6 +155,16 @@ Electron provides several APIs for working with the WebUSB API:
* [`ses.setUSBProtectedClassesHandler](../api/session.md#sessetusbprotectedclasseshandlerhandler)
can be used to allow usage of [protected USB classes](https://wicg.github.io/webusb/#usbinterface-interface) that are not available by default.
### Blocklist
By default Electron employs the same [blocklist](https://wicg.github.io/webusb/#blocklist)
used by Chromium. If you wish to override this behavior, you can do so by
setting the `disable-usb-blocklist` flag:
```js
app.commandLine.appendSwitch('disable-usb-blocklist')
```
### Example
This example demonstrates an Electron application that automatically selects

View File

@@ -9,10 +9,11 @@ check out our [Electron Versioning](./electron-versioning.md) doc.
| Electron | Alpha | Beta | Stable | EOL | Chrome | Node | Supported |
| ------- | ----- | ------- | ------ | ------ | ---- | ---- | ---- |
| 36.0.0 | 2025-Mar-06 | 2025-Apr-02 | 2025-Apr-29 | 2025-Oct-28 | M136 | TBD | ✅ |
| 37.0.0 | 2025-May-01 | 2025-May-28 | 2025-Jun-24 | 2026-Jan-13 | M138 | TBD | ✅ |
| 36.0.0 | 2025-Mar-06 | 2025-Apr-02 | 2025-Apr-29 | 2025-Oct-28 | M136 | v22.14 | ✅ |
| 35.0.0 | 2025-Jan-16 | 2025-Feb-05 | 2025-Mar-04 | 2025-Sep-02 | M134 | v22.14 | ✅ |
| 34.0.0 | 2024-Oct-17 | 2024-Nov-13 | 2025-Jan-14 | 2025-Jun-24 | M132 | v20.18 | ✅ |
| 33.0.0 | 2024-Aug-22 | 2024-Sep-18 | 2024-Oct-15 | 2025-Apr-29 | M130 | v20.18 | |
| 33.0.0 | 2024-Aug-22 | 2024-Sep-18 | 2024-Oct-15 | 2025-Apr-29 | M130 | v20.18 | 🚫 |
| 32.0.0 | 2024-Jun-14 | 2024-Jul-24 | 2024-Aug-20 | 2025-Mar-04 | M128 | v20.16 | 🚫 |
| 31.0.0 | 2024-Apr-18 | 2024-May-15 | 2024-Jun-11 | 2025-Jan-14 | M126 | v20.14 | 🚫 |
| 30.0.0 | 2024-Feb-22 | 2024-Mar-20 | 2024-Apr-16 | 2024-Oct-15 | M124 | v20.11 | 🚫 |

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -14,6 +14,7 @@ auto_filenames = {
"docs/api/content-tracing.md",
"docs/api/context-bridge.md",
"docs/api/cookies.md",
"docs/api/corner-smoothing-css.md",
"docs/api/crash-reporter.md",
"docs/api/debugger.md",
"docs/api/desktop-capturer.md",

View File

@@ -35,6 +35,7 @@ filenames = {
"shell/browser/relauncher_linux.cc",
"shell/browser/ui/electron_desktop_window_tree_host_linux.cc",
"shell/browser/ui/file_dialog_linux.cc",
"shell/browser/ui/file_dialog_linux_portal.cc",
"shell/browser/ui/gtk/menu_gtk.cc",
"shell/browser/ui/gtk/menu_gtk.h",
"shell/browser/ui/gtk/menu_util.cc",
@@ -125,6 +126,7 @@ filenames = {
"shell/browser/animation_util.h",
"shell/browser/animation_util_mac.mm",
"shell/browser/api/electron_api_app_mac.mm",
"shell/browser/api/electron_api_base_window_mac.mm",
"shell/browser/api/electron_api_menu_mac.h",
"shell/browser/api/electron_api_menu_mac.mm",
"shell/browser/api/electron_api_native_theme_mac.mm",
@@ -718,6 +720,8 @@ filenames = {
"shell/renderer/electron_renderer_client.h",
"shell/renderer/electron_sandboxed_renderer_client.cc",
"shell/renderer/electron_sandboxed_renderer_client.h",
"shell/renderer/electron_smooth_round_rect.cc",
"shell/renderer/electron_smooth_round_rect.h",
"shell/renderer/preload_realm_context.cc",
"shell/renderer/preload_realm_context.h",
"shell/renderer/preload_utils.cc",

View File

@@ -65,6 +65,7 @@ libcxx_headers = [
"//third_party/libc++/src/include/__algorithm/next_permutation.h",
"//third_party/libc++/src/include/__algorithm/none_of.h",
"//third_party/libc++/src/include/__algorithm/nth_element.h",
"//third_party/libc++/src/include/__algorithm/out_value_result.h",
"//third_party/libc++/src/include/__algorithm/partial_sort.h",
"//third_party/libc++/src/include/__algorithm/partial_sort_copy.h",
"//third_party/libc++/src/include/__algorithm/partition.h",
@@ -341,7 +342,6 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__algorithm/all_of.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/any_of.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/binary_search.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/clamp.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/comp.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/comp_ref_type.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/copy.h",
@@ -361,19 +361,11 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__algorithm/find_if.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/find_if_not.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/find_segment_if.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/fold.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/for_each.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/for_each_n.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/for_each_segment.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/generate.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/generate_n.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/half_positive.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/in_found_result.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/in_fun_result.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/in_in_out_result.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/in_in_result.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/in_out_out_result.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/in_out_result.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/includes.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/inplace_merge.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/is_heap.h",
@@ -385,7 +377,6 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__algorithm/iter_swap.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/iterator_operations.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/lexicographical_compare.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/lexicographical_compare_three_way.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/lower_bound.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/make_heap.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/make_projected.h",
@@ -394,7 +385,6 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__algorithm/merge.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/min.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/min_element.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/min_max_result.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/minmax.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/minmax_element.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/mismatch.h",
@@ -410,99 +400,7 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__algorithm/partition_point.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/pop_heap.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/prev_permutation.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/pstl.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/push_heap.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_adjacent_find.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_all_of.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_any_of.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_binary_search.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_clamp.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_contains.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_contains_subrange.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_copy.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_copy_backward.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_copy_if.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_copy_n.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_count.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_count_if.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_ends_with.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_equal.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_equal_range.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_fill.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_fill_n.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_end.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_first_of.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_if.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_if_not.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_last.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_for_each.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_for_each_n.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_generate.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_generate_n.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_includes.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_inplace_merge.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_heap.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_heap_until.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_partitioned.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_permutation.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_sorted.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_sorted_until.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_iterator_concept.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_lexicographical_compare.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_lower_bound.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_make_heap.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_max.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_max_element.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_merge.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_min.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_min_element.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_minmax.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_minmax_element.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_mismatch.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_move.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_move_backward.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_next_permutation.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_none_of.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_nth_element.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partial_sort.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partial_sort_copy.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partition.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partition_copy.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partition_point.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_pop_heap.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_prev_permutation.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_push_heap.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_remove.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_remove_copy.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_remove_copy_if.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_remove_if.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_replace.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_replace_copy.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_replace_copy_if.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_replace_if.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_reverse.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_reverse_copy.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_rotate.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_rotate_copy.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_sample.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_search.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_search_n.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_set_difference.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_set_intersection.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_set_symmetric_difference.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_set_union.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_shuffle.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_sort.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_sort_heap.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_stable_partition.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_stable_sort.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_starts_with.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_swap_ranges.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_transform.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_unique.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_unique_copy.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_upper_bound.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/remove.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/remove_copy.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/remove_copy_if.h",
@@ -515,15 +413,12 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__algorithm/reverse_copy.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/rotate.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/rotate_copy.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/sample.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/search.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/search_n.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/set_difference.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/set_intersection.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/set_symmetric_difference.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/set_union.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/shift_left.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/shift_right.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/shuffle.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/sift_down.h",
"//third_party/libc++/src/include/__cxx03/__algorithm/simd_utils.h",
@@ -547,7 +442,6 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__atomic/atomic_flag.h",
"//third_party/libc++/src/include/__cxx03/__atomic/atomic_init.h",
"//third_party/libc++/src/include/__cxx03/__atomic/atomic_lock_free.h",
"//third_party/libc++/src/include/__cxx03/__atomic/atomic_ref.h",
"//third_party/libc++/src/include/__cxx03/__atomic/atomic_sync.h",
"//third_party/libc++/src/include/__cxx03/__atomic/check_memory_order.h",
"//third_party/libc++/src/include/__cxx03/__atomic/contention_t.h",
@@ -557,100 +451,19 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__atomic/kill_dependency.h",
"//third_party/libc++/src/include/__cxx03/__atomic/memory_order.h",
"//third_party/libc++/src/include/__cxx03/__atomic/to_gcc_order.h",
"//third_party/libc++/src/include/__cxx03/__bit/bit_cast.h",
"//third_party/libc++/src/include/__cxx03/__bit/bit_ceil.h",
"//third_party/libc++/src/include/__cxx03/__bit/bit_floor.h",
"//third_party/libc++/src/include/__cxx03/__bit/bit_log2.h",
"//third_party/libc++/src/include/__cxx03/__bit/bit_width.h",
"//third_party/libc++/src/include/__cxx03/__bit/blsr.h",
"//third_party/libc++/src/include/__cxx03/__bit/byteswap.h",
"//third_party/libc++/src/include/__cxx03/__bit/countl.h",
"//third_party/libc++/src/include/__cxx03/__bit/countr.h",
"//third_party/libc++/src/include/__cxx03/__bit/endian.h",
"//third_party/libc++/src/include/__cxx03/__bit/has_single_bit.h",
"//third_party/libc++/src/include/__cxx03/__bit/invert_if.h",
"//third_party/libc++/src/include/__cxx03/__bit/popcount.h",
"//third_party/libc++/src/include/__cxx03/__bit/rotate.h",
"//third_party/libc++/src/include/__cxx03/__bit_reference",
"//third_party/libc++/src/include/__cxx03/__charconv/chars_format.h",
"//third_party/libc++/src/include/__cxx03/__charconv/from_chars_integral.h",
"//third_party/libc++/src/include/__cxx03/__charconv/from_chars_result.h",
"//third_party/libc++/src/include/__cxx03/__charconv/tables.h",
"//third_party/libc++/src/include/__cxx03/__charconv/to_chars.h",
"//third_party/libc++/src/include/__cxx03/__charconv/to_chars_base_10.h",
"//third_party/libc++/src/include/__cxx03/__charconv/to_chars_floating_point.h",
"//third_party/libc++/src/include/__cxx03/__charconv/to_chars_integral.h",
"//third_party/libc++/src/include/__cxx03/__charconv/to_chars_result.h",
"//third_party/libc++/src/include/__cxx03/__charconv/traits.h",
"//third_party/libc++/src/include/__cxx03/__chrono/calendar.h",
"//third_party/libc++/src/include/__cxx03/__chrono/concepts.h",
"//third_party/libc++/src/include/__cxx03/__chrono/convert_to_timespec.h",
"//third_party/libc++/src/include/__cxx03/__chrono/convert_to_tm.h",
"//third_party/libc++/src/include/__cxx03/__chrono/day.h",
"//third_party/libc++/src/include/__cxx03/__chrono/duration.h",
"//third_party/libc++/src/include/__cxx03/__chrono/exception.h",
"//third_party/libc++/src/include/__cxx03/__chrono/file_clock.h",
"//third_party/libc++/src/include/__cxx03/__chrono/formatter.h",
"//third_party/libc++/src/include/__cxx03/__chrono/hh_mm_ss.h",
"//third_party/libc++/src/include/__cxx03/__chrono/high_resolution_clock.h",
"//third_party/libc++/src/include/__cxx03/__chrono/leap_second.h",
"//third_party/libc++/src/include/__cxx03/__chrono/literals.h",
"//third_party/libc++/src/include/__cxx03/__chrono/local_info.h",
"//third_party/libc++/src/include/__cxx03/__chrono/month.h",
"//third_party/libc++/src/include/__cxx03/__chrono/month_weekday.h",
"//third_party/libc++/src/include/__cxx03/__chrono/monthday.h",
"//third_party/libc++/src/include/__cxx03/__chrono/ostream.h",
"//third_party/libc++/src/include/__cxx03/__chrono/parser_std_format_spec.h",
"//third_party/libc++/src/include/__cxx03/__chrono/statically_widen.h",
"//third_party/libc++/src/include/__cxx03/__chrono/steady_clock.h",
"//third_party/libc++/src/include/__cxx03/__chrono/sys_info.h",
"//third_party/libc++/src/include/__cxx03/__chrono/system_clock.h",
"//third_party/libc++/src/include/__cxx03/__chrono/time_point.h",
"//third_party/libc++/src/include/__cxx03/__chrono/time_zone.h",
"//third_party/libc++/src/include/__cxx03/__chrono/time_zone_link.h",
"//third_party/libc++/src/include/__cxx03/__chrono/tzdb.h",
"//third_party/libc++/src/include/__cxx03/__chrono/tzdb_list.h",
"//third_party/libc++/src/include/__cxx03/__chrono/weekday.h",
"//third_party/libc++/src/include/__cxx03/__chrono/year.h",
"//third_party/libc++/src/include/__cxx03/__chrono/year_month.h",
"//third_party/libc++/src/include/__cxx03/__chrono/year_month_day.h",
"//third_party/libc++/src/include/__cxx03/__chrono/year_month_weekday.h",
"//third_party/libc++/src/include/__cxx03/__chrono/zoned_time.h",
"//third_party/libc++/src/include/__cxx03/__compare/common_comparison_category.h",
"//third_party/libc++/src/include/__cxx03/__compare/compare_partial_order_fallback.h",
"//third_party/libc++/src/include/__cxx03/__compare/compare_strong_order_fallback.h",
"//third_party/libc++/src/include/__cxx03/__compare/compare_three_way.h",
"//third_party/libc++/src/include/__cxx03/__compare/compare_three_way_result.h",
"//third_party/libc++/src/include/__cxx03/__compare/compare_weak_order_fallback.h",
"//third_party/libc++/src/include/__cxx03/__compare/is_eq.h",
"//third_party/libc++/src/include/__cxx03/__compare/ordering.h",
"//third_party/libc++/src/include/__cxx03/__compare/partial_order.h",
"//third_party/libc++/src/include/__cxx03/__compare/strong_order.h",
"//third_party/libc++/src/include/__cxx03/__compare/synth_three_way.h",
"//third_party/libc++/src/include/__cxx03/__compare/three_way_comparable.h",
"//third_party/libc++/src/include/__cxx03/__compare/weak_order.h",
"//third_party/libc++/src/include/__cxx03/__concepts/arithmetic.h",
"//third_party/libc++/src/include/__cxx03/__concepts/assignable.h",
"//third_party/libc++/src/include/__cxx03/__concepts/boolean_testable.h",
"//third_party/libc++/src/include/__cxx03/__concepts/class_or_enum.h",
"//third_party/libc++/src/include/__cxx03/__concepts/common_reference_with.h",
"//third_party/libc++/src/include/__cxx03/__concepts/common_with.h",
"//third_party/libc++/src/include/__cxx03/__concepts/constructible.h",
"//third_party/libc++/src/include/__cxx03/__concepts/convertible_to.h",
"//third_party/libc++/src/include/__cxx03/__concepts/copyable.h",
"//third_party/libc++/src/include/__cxx03/__concepts/derived_from.h",
"//third_party/libc++/src/include/__cxx03/__concepts/destructible.h",
"//third_party/libc++/src/include/__cxx03/__concepts/different_from.h",
"//third_party/libc++/src/include/__cxx03/__concepts/equality_comparable.h",
"//third_party/libc++/src/include/__cxx03/__concepts/invocable.h",
"//third_party/libc++/src/include/__cxx03/__concepts/movable.h",
"//third_party/libc++/src/include/__cxx03/__concepts/predicate.h",
"//third_party/libc++/src/include/__cxx03/__concepts/regular.h",
"//third_party/libc++/src/include/__cxx03/__concepts/relation.h",
"//third_party/libc++/src/include/__cxx03/__concepts/same_as.h",
"//third_party/libc++/src/include/__cxx03/__concepts/semiregular.h",
"//third_party/libc++/src/include/__cxx03/__concepts/swappable.h",
"//third_party/libc++/src/include/__cxx03/__concepts/totally_ordered.h",
"//third_party/libc++/src/include/__cxx03/__condition_variable/condition_variable.h",
"//third_party/libc++/src/include/__cxx03/__config",
"//third_party/libc++/src/include/__cxx03/__config_site.in",
@@ -660,10 +473,6 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__configuration/config_site_shim.h",
"//third_party/libc++/src/include/__cxx03/__configuration/language.h",
"//third_party/libc++/src/include/__cxx03/__configuration/platform.h",
"//third_party/libc++/src/include/__cxx03/__coroutine/coroutine_handle.h",
"//third_party/libc++/src/include/__cxx03/__coroutine/coroutine_traits.h",
"//third_party/libc++/src/include/__cxx03/__coroutine/noop_coroutine_handle.h",
"//third_party/libc++/src/include/__cxx03/__coroutine/trivial_awaitables.h",
"//third_party/libc++/src/include/__cxx03/__debug_utils/randomize_range.h",
"//third_party/libc++/src/include/__cxx03/__debug_utils/sanitizers.h",
"//third_party/libc++/src/include/__cxx03/__debug_utils/strict_weak_ordering_check.h",
@@ -672,81 +481,18 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__exception/nested_exception.h",
"//third_party/libc++/src/include/__cxx03/__exception/operations.h",
"//third_party/libc++/src/include/__cxx03/__exception/terminate.h",
"//third_party/libc++/src/include/__cxx03/__expected/bad_expected_access.h",
"//third_party/libc++/src/include/__cxx03/__expected/expected.h",
"//third_party/libc++/src/include/__cxx03/__expected/unexpect.h",
"//third_party/libc++/src/include/__cxx03/__expected/unexpected.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/copy_options.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/directory_entry.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/directory_iterator.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/directory_options.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/file_status.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/file_time_type.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/file_type.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/filesystem_error.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/operations.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/path.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/path_iterator.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/perm_options.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/perms.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/recursive_directory_iterator.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/space_info.h",
"//third_party/libc++/src/include/__cxx03/__filesystem/u8path.h",
"//third_party/libc++/src/include/__cxx03/__format/buffer.h",
"//third_party/libc++/src/include/__cxx03/__format/concepts.h",
"//third_party/libc++/src/include/__cxx03/__format/container_adaptor.h",
"//third_party/libc++/src/include/__cxx03/__format/enable_insertable.h",
"//third_party/libc++/src/include/__cxx03/__format/escaped_output_table.h",
"//third_party/libc++/src/include/__cxx03/__format/extended_grapheme_cluster_table.h",
"//third_party/libc++/src/include/__cxx03/__format/format_arg.h",
"//third_party/libc++/src/include/__cxx03/__format/format_arg_store.h",
"//third_party/libc++/src/include/__cxx03/__format/format_args.h",
"//third_party/libc++/src/include/__cxx03/__format/format_context.h",
"//third_party/libc++/src/include/__cxx03/__format/format_error.h",
"//third_party/libc++/src/include/__cxx03/__format/format_functions.h",
"//third_party/libc++/src/include/__cxx03/__format/format_parse_context.h",
"//third_party/libc++/src/include/__cxx03/__format/format_string.h",
"//third_party/libc++/src/include/__cxx03/__format/format_to_n_result.h",
"//third_party/libc++/src/include/__cxx03/__format/formatter.h",
"//third_party/libc++/src/include/__cxx03/__format/formatter_bool.h",
"//third_party/libc++/src/include/__cxx03/__format/formatter_char.h",
"//third_party/libc++/src/include/__cxx03/__format/formatter_floating_point.h",
"//third_party/libc++/src/include/__cxx03/__format/formatter_integer.h",
"//third_party/libc++/src/include/__cxx03/__format/formatter_integral.h",
"//third_party/libc++/src/include/__cxx03/__format/formatter_output.h",
"//third_party/libc++/src/include/__cxx03/__format/formatter_pointer.h",
"//third_party/libc++/src/include/__cxx03/__format/formatter_string.h",
"//third_party/libc++/src/include/__cxx03/__format/formatter_tuple.h",
"//third_party/libc++/src/include/__cxx03/__format/indic_conjunct_break_table.h",
"//third_party/libc++/src/include/__cxx03/__format/parser_std_format_spec.h",
"//third_party/libc++/src/include/__cxx03/__format/range_default_formatter.h",
"//third_party/libc++/src/include/__cxx03/__format/range_formatter.h",
"//third_party/libc++/src/include/__cxx03/__format/unicode.h",
"//third_party/libc++/src/include/__cxx03/__format/width_estimation_table.h",
"//third_party/libc++/src/include/__cxx03/__format/write_escaped.h",
"//third_party/libc++/src/include/__cxx03/__functional/binary_function.h",
"//third_party/libc++/src/include/__cxx03/__functional/binary_negate.h",
"//third_party/libc++/src/include/__cxx03/__functional/bind.h",
"//third_party/libc++/src/include/__cxx03/__functional/bind_back.h",
"//third_party/libc++/src/include/__cxx03/__functional/bind_front.h",
"//third_party/libc++/src/include/__cxx03/__functional/binder1st.h",
"//third_party/libc++/src/include/__cxx03/__functional/binder2nd.h",
"//third_party/libc++/src/include/__cxx03/__functional/boyer_moore_searcher.h",
"//third_party/libc++/src/include/__cxx03/__functional/compose.h",
"//third_party/libc++/src/include/__cxx03/__functional/default_searcher.h",
"//third_party/libc++/src/include/__cxx03/__functional/function.h",
"//third_party/libc++/src/include/__cxx03/__functional/hash.h",
"//third_party/libc++/src/include/__cxx03/__functional/identity.h",
"//third_party/libc++/src/include/__cxx03/__functional/invoke.h",
"//third_party/libc++/src/include/__cxx03/__functional/is_transparent.h",
"//third_party/libc++/src/include/__cxx03/__functional/mem_fn.h",
"//third_party/libc++/src/include/__cxx03/__functional/mem_fun_ref.h",
"//third_party/libc++/src/include/__cxx03/__functional/not_fn.h",
"//third_party/libc++/src/include/__cxx03/__functional/operations.h",
"//third_party/libc++/src/include/__cxx03/__functional/perfect_forward.h",
"//third_party/libc++/src/include/__cxx03/__functional/pointer_to_binary_function.h",
"//third_party/libc++/src/include/__cxx03/__functional/pointer_to_unary_function.h",
"//third_party/libc++/src/include/__cxx03/__functional/ranges_operations.h",
"//third_party/libc++/src/include/__cxx03/__functional/reference_wrapper.h",
"//third_party/libc++/src/include/__cxx03/__functional/unary_function.h",
"//third_party/libc++/src/include/__cxx03/__functional/unary_negate.h",
@@ -755,24 +501,19 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__fwd/bit_reference.h",
"//third_party/libc++/src/include/__cxx03/__fwd/complex.h",
"//third_party/libc++/src/include/__cxx03/__fwd/deque.h",
"//third_party/libc++/src/include/__cxx03/__fwd/format.h",
"//third_party/libc++/src/include/__cxx03/__fwd/fstream.h",
"//third_party/libc++/src/include/__cxx03/__fwd/functional.h",
"//third_party/libc++/src/include/__cxx03/__fwd/ios.h",
"//third_party/libc++/src/include/__cxx03/__fwd/istream.h",
"//third_party/libc++/src/include/__cxx03/__fwd/mdspan.h",
"//third_party/libc++/src/include/__cxx03/__fwd/memory.h",
"//third_party/libc++/src/include/__cxx03/__fwd/memory_resource.h",
"//third_party/libc++/src/include/__cxx03/__fwd/ostream.h",
"//third_party/libc++/src/include/__cxx03/__fwd/pair.h",
"//third_party/libc++/src/include/__cxx03/__fwd/queue.h",
"//third_party/libc++/src/include/__cxx03/__fwd/span.h",
"//third_party/libc++/src/include/__cxx03/__fwd/sstream.h",
"//third_party/libc++/src/include/__cxx03/__fwd/stack.h",
"//third_party/libc++/src/include/__cxx03/__fwd/streambuf.h",
"//third_party/libc++/src/include/__cxx03/__fwd/string.h",
"//third_party/libc++/src/include/__cxx03/__fwd/string_view.h",
"//third_party/libc++/src/include/__cxx03/__fwd/subrange.h",
"//third_party/libc++/src/include/__cxx03/__fwd/tuple.h",
"//third_party/libc++/src/include/__cxx03/__fwd/vector.h",
"//third_party/libc++/src/include/__cxx03/__hash_table",
@@ -782,43 +523,22 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__iterator/aliasing_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/back_insert_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/bounded_iter.h",
"//third_party/libc++/src/include/__cxx03/__iterator/common_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/concepts.h",
"//third_party/libc++/src/include/__cxx03/__iterator/counted_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/cpp17_iterator_concepts.h",
"//third_party/libc++/src/include/__cxx03/__iterator/data.h",
"//third_party/libc++/src/include/__cxx03/__iterator/default_sentinel.h",
"//third_party/libc++/src/include/__cxx03/__iterator/distance.h",
"//third_party/libc++/src/include/__cxx03/__iterator/empty.h",
"//third_party/libc++/src/include/__cxx03/__iterator/erase_if_container.h",
"//third_party/libc++/src/include/__cxx03/__iterator/front_insert_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/incrementable_traits.h",
"//third_party/libc++/src/include/__cxx03/__iterator/indirectly_comparable.h",
"//third_party/libc++/src/include/__cxx03/__iterator/insert_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/istream_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/istreambuf_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/iter_move.h",
"//third_party/libc++/src/include/__cxx03/__iterator/iter_swap.h",
"//third_party/libc++/src/include/__cxx03/__iterator/iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/iterator_traits.h",
"//third_party/libc++/src/include/__cxx03/__iterator/iterator_with_data.h",
"//third_party/libc++/src/include/__cxx03/__iterator/mergeable.h",
"//third_party/libc++/src/include/__cxx03/__iterator/move_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/move_sentinel.h",
"//third_party/libc++/src/include/__cxx03/__iterator/next.h",
"//third_party/libc++/src/include/__cxx03/__iterator/ostream_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/ostreambuf_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/permutable.h",
"//third_party/libc++/src/include/__cxx03/__iterator/prev.h",
"//third_party/libc++/src/include/__cxx03/__iterator/projected.h",
"//third_party/libc++/src/include/__cxx03/__iterator/ranges_iterator_traits.h",
"//third_party/libc++/src/include/__cxx03/__iterator/readable_traits.h",
"//third_party/libc++/src/include/__cxx03/__iterator/reverse_access.h",
"//third_party/libc++/src/include/__cxx03/__iterator/reverse_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/segmented_iterator.h",
"//third_party/libc++/src/include/__cxx03/__iterator/size.h",
"//third_party/libc++/src/include/__cxx03/__iterator/sortable.h",
"//third_party/libc++/src/include/__cxx03/__iterator/unreachable_sentinel.h",
"//third_party/libc++/src/include/__cxx03/__iterator/wrap_iter.h",
"//third_party/libc++/src/include/__cxx03/__locale",
"//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api/android.h",
@@ -849,16 +569,9 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__math/remainder.h",
"//third_party/libc++/src/include/__cxx03/__math/roots.h",
"//third_party/libc++/src/include/__cxx03/__math/rounding_functions.h",
"//third_party/libc++/src/include/__cxx03/__math/special_functions.h",
"//third_party/libc++/src/include/__cxx03/__math/traits.h",
"//third_party/libc++/src/include/__cxx03/__math/trigonometric_functions.h",
"//third_party/libc++/src/include/__cxx03/__mbstate_t.h",
"//third_party/libc++/src/include/__cxx03/__mdspan/default_accessor.h",
"//third_party/libc++/src/include/__cxx03/__mdspan/extents.h",
"//third_party/libc++/src/include/__cxx03/__mdspan/layout_left.h",
"//third_party/libc++/src/include/__cxx03/__mdspan/layout_right.h",
"//third_party/libc++/src/include/__cxx03/__mdspan/layout_stride.h",
"//third_party/libc++/src/include/__cxx03/__mdspan/mdspan.h",
"//third_party/libc++/src/include/__cxx03/__memory/addressof.h",
"//third_party/libc++/src/include/__cxx03/__memory/align.h",
"//third_party/libc++/src/include/__cxx03/__memory/aligned_alloc.h",
@@ -872,14 +585,9 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__memory/auto_ptr.h",
"//third_party/libc++/src/include/__cxx03/__memory/builtin_new_allocator.h",
"//third_party/libc++/src/include/__cxx03/__memory/compressed_pair.h",
"//third_party/libc++/src/include/__cxx03/__memory/concepts.h",
"//third_party/libc++/src/include/__cxx03/__memory/construct_at.h",
"//third_party/libc++/src/include/__cxx03/__memory/destruct_n.h",
"//third_party/libc++/src/include/__cxx03/__memory/inout_ptr.h",
"//third_party/libc++/src/include/__cxx03/__memory/out_ptr.h",
"//third_party/libc++/src/include/__cxx03/__memory/pointer_traits.h",
"//third_party/libc++/src/include/__cxx03/__memory/ranges_construct_at.h",
"//third_party/libc++/src/include/__cxx03/__memory/ranges_uninitialized_algorithms.h",
"//third_party/libc++/src/include/__cxx03/__memory/raw_storage_iterator.h",
"//third_party/libc++/src/include/__cxx03/__memory/shared_ptr.h",
"//third_party/libc++/src/include/__cxx03/__memory/swap_allocator.h",
@@ -888,54 +596,18 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__memory/uninitialized_algorithms.h",
"//third_party/libc++/src/include/__cxx03/__memory/unique_ptr.h",
"//third_party/libc++/src/include/__cxx03/__memory/uses_allocator.h",
"//third_party/libc++/src/include/__cxx03/__memory/uses_allocator_construction.h",
"//third_party/libc++/src/include/__cxx03/__memory/voidify.h",
"//third_party/libc++/src/include/__cxx03/__memory_resource/memory_resource.h",
"//third_party/libc++/src/include/__cxx03/__memory_resource/monotonic_buffer_resource.h",
"//third_party/libc++/src/include/__cxx03/__memory_resource/polymorphic_allocator.h",
"//third_party/libc++/src/include/__cxx03/__memory_resource/pool_options.h",
"//third_party/libc++/src/include/__cxx03/__memory_resource/synchronized_pool_resource.h",
"//third_party/libc++/src/include/__cxx03/__memory_resource/unsynchronized_pool_resource.h",
"//third_party/libc++/src/include/__cxx03/__mutex/lock_guard.h",
"//third_party/libc++/src/include/__cxx03/__mutex/mutex.h",
"//third_party/libc++/src/include/__cxx03/__mutex/once_flag.h",
"//third_party/libc++/src/include/__cxx03/__mutex/tag_types.h",
"//third_party/libc++/src/include/__cxx03/__mutex/unique_lock.h",
"//third_party/libc++/src/include/__cxx03/__node_handle",
"//third_party/libc++/src/include/__cxx03/__numeric/accumulate.h",
"//third_party/libc++/src/include/__cxx03/__numeric/adjacent_difference.h",
"//third_party/libc++/src/include/__cxx03/__numeric/exclusive_scan.h",
"//third_party/libc++/src/include/__cxx03/__numeric/gcd_lcm.h",
"//third_party/libc++/src/include/__cxx03/__numeric/inclusive_scan.h",
"//third_party/libc++/src/include/__cxx03/__numeric/inner_product.h",
"//third_party/libc++/src/include/__cxx03/__numeric/iota.h",
"//third_party/libc++/src/include/__cxx03/__numeric/midpoint.h",
"//third_party/libc++/src/include/__cxx03/__numeric/partial_sum.h",
"//third_party/libc++/src/include/__cxx03/__numeric/pstl.h",
"//third_party/libc++/src/include/__cxx03/__numeric/reduce.h",
"//third_party/libc++/src/include/__cxx03/__numeric/saturation_arithmetic.h",
"//third_party/libc++/src/include/__cxx03/__numeric/transform_exclusive_scan.h",
"//third_party/libc++/src/include/__cxx03/__numeric/transform_inclusive_scan.h",
"//third_party/libc++/src/include/__cxx03/__numeric/transform_reduce.h",
"//third_party/libc++/src/include/__cxx03/__ostream/basic_ostream.h",
"//third_party/libc++/src/include/__cxx03/__ostream/print.h",
"//third_party/libc++/src/include/__cxx03/__pstl/backend.h",
"//third_party/libc++/src/include/__cxx03/__pstl/backend_fwd.h",
"//third_party/libc++/src/include/__cxx03/__pstl/backends/default.h",
"//third_party/libc++/src/include/__cxx03/__pstl/backends/libdispatch.h",
"//third_party/libc++/src/include/__cxx03/__pstl/backends/serial.h",
"//third_party/libc++/src/include/__cxx03/__pstl/backends/std_thread.h",
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/any_of.h",
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/cpu_traits.h",
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/fill.h",
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/find_if.h",
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/for_each.h",
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/merge.h",
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/stable_sort.h",
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/transform.h",
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/transform_reduce.h",
"//third_party/libc++/src/include/__cxx03/__pstl/dispatch.h",
"//third_party/libc++/src/include/__cxx03/__pstl/handle_exception.h",
"//third_party/libc++/src/include/__cxx03/__random/bernoulli_distribution.h",
"//third_party/libc++/src/include/__cxx03/__random/binomial_distribution.h",
"//third_party/libc++/src/include/__cxx03/__random/cauchy_distribution.h",
@@ -970,62 +642,11 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__random/student_t_distribution.h",
"//third_party/libc++/src/include/__cxx03/__random/subtract_with_carry_engine.h",
"//third_party/libc++/src/include/__cxx03/__random/uniform_int_distribution.h",
"//third_party/libc++/src/include/__cxx03/__random/uniform_random_bit_generator.h",
"//third_party/libc++/src/include/__cxx03/__random/uniform_real_distribution.h",
"//third_party/libc++/src/include/__cxx03/__random/weibull_distribution.h",
"//third_party/libc++/src/include/__cxx03/__ranges/access.h",
"//third_party/libc++/src/include/__cxx03/__ranges/all.h",
"//third_party/libc++/src/include/__cxx03/__ranges/as_rvalue_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/chunk_by_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/common_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/concepts.h",
"//third_party/libc++/src/include/__cxx03/__ranges/container_compatible_range.h",
"//third_party/libc++/src/include/__cxx03/__ranges/counted.h",
"//third_party/libc++/src/include/__cxx03/__ranges/dangling.h",
"//third_party/libc++/src/include/__cxx03/__ranges/data.h",
"//third_party/libc++/src/include/__cxx03/__ranges/drop_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/drop_while_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/elements_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/empty.h",
"//third_party/libc++/src/include/__cxx03/__ranges/empty_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/enable_borrowed_range.h",
"//third_party/libc++/src/include/__cxx03/__ranges/enable_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/filter_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/from_range.h",
"//third_party/libc++/src/include/__cxx03/__ranges/iota_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/istream_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/join_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/lazy_split_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/movable_box.h",
"//third_party/libc++/src/include/__cxx03/__ranges/non_propagating_cache.h",
"//third_party/libc++/src/include/__cxx03/__ranges/owning_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/range_adaptor.h",
"//third_party/libc++/src/include/__cxx03/__ranges/rbegin.h",
"//third_party/libc++/src/include/__cxx03/__ranges/ref_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/rend.h",
"//third_party/libc++/src/include/__cxx03/__ranges/repeat_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/reverse_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/single_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/size.h",
"//third_party/libc++/src/include/__cxx03/__ranges/split_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/subrange.h",
"//third_party/libc++/src/include/__cxx03/__ranges/take_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/take_while_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/to.h",
"//third_party/libc++/src/include/__cxx03/__ranges/transform_view.h",
"//third_party/libc++/src/include/__cxx03/__ranges/view_interface.h",
"//third_party/libc++/src/include/__cxx03/__ranges/views.h",
"//third_party/libc++/src/include/__cxx03/__ranges/zip_view.h",
"//third_party/libc++/src/include/__cxx03/__split_buffer",
"//third_party/libc++/src/include/__cxx03/__std_clang_module",
"//third_party/libc++/src/include/__cxx03/__std_mbstate_t.h",
"//third_party/libc++/src/include/__cxx03/__stop_token/atomic_unique_lock.h",
"//third_party/libc++/src/include/__cxx03/__stop_token/intrusive_list_view.h",
"//third_party/libc++/src/include/__cxx03/__stop_token/intrusive_shared_ptr.h",
"//third_party/libc++/src/include/__cxx03/__stop_token/stop_callback.h",
"//third_party/libc++/src/include/__cxx03/__stop_token/stop_source.h",
"//third_party/libc++/src/include/__cxx03/__stop_token/stop_state.h",
"//third_party/libc++/src/include/__cxx03/__stop_token/stop_token.h",
"//third_party/libc++/src/include/__cxx03/__string/char_traits.h",
"//third_party/libc++/src/include/__cxx03/__string/constexpr_c_functions.h",
"//third_party/libc++/src/include/__cxx03/__string/extern_template_lists.h",
@@ -1040,9 +661,7 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__system_error/error_code.h",
"//third_party/libc++/src/include/__cxx03/__system_error/error_condition.h",
"//third_party/libc++/src/include/__cxx03/__system_error/system_error.h",
"//third_party/libc++/src/include/__cxx03/__thread/formatter.h",
"//third_party/libc++/src/include/__cxx03/__thread/id.h",
"//third_party/libc++/src/include/__cxx03/__thread/jthread.h",
"//third_party/libc++/src/include/__cxx03/__thread/poll_with_backoff.h",
"//third_party/libc++/src/include/__cxx03/__thread/support/c11.h",
"//third_party/libc++/src/include/__cxx03/__thread/support/external.h",
@@ -1054,7 +673,6 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__thread/timed_backoff_policy.h",
"//third_party/libc++/src/include/__cxx03/__tree",
"//third_party/libc++/src/include/__cxx03/__tuple/find_index.h",
"//third_party/libc++/src/include/__cxx03/__tuple/ignore.h",
"//third_party/libc++/src/include/__cxx03/__tuple/make_tuple_types.h",
"//third_party/libc++/src/include/__cxx03/__tuple/sfinae_helpers.h",
"//third_party/libc++/src/include/__cxx03/__tuple/tuple_element.h",
@@ -1074,7 +692,6 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__type_traits/aligned_union.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/alignment_of.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/can_extract_key.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/common_reference.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/common_type.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/conditional.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/conjunction.h",
@@ -1087,12 +704,10 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__type_traits/disjunction.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/enable_if.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/extent.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/has_unique_object_representation.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/has_virtual_destructor.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/integral_constant.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/invoke.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/is_abstract.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/is_aggregate.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/is_allocator.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/is_always_bitcastable.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/is_arithmetic.h",
@@ -1124,7 +739,6 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__type_traits/is_member_pointer.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/is_nothrow_assignable.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/is_nothrow_constructible.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/is_nothrow_convertible.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/is_nothrow_destructible.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/is_null_pointer.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/is_object.h",
@@ -1184,18 +798,13 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__type_traits/unwrap_ref.h",
"//third_party/libc++/src/include/__cxx03/__type_traits/void_t.h",
"//third_party/libc++/src/include/__cxx03/__undef_macros",
"//third_party/libc++/src/include/__cxx03/__utility/as_const.h",
"//third_party/libc++/src/include/__cxx03/__utility/as_lvalue.h",
"//third_party/libc++/src/include/__cxx03/__utility/auto_cast.h",
"//third_party/libc++/src/include/__cxx03/__utility/cmp.h",
"//third_party/libc++/src/include/__cxx03/__utility/convert_to_integral.h",
"//third_party/libc++/src/include/__cxx03/__utility/declval.h",
"//third_party/libc++/src/include/__cxx03/__utility/empty.h",
"//third_party/libc++/src/include/__cxx03/__utility/exception_guard.h",
"//third_party/libc++/src/include/__cxx03/__utility/exchange.h",
"//third_party/libc++/src/include/__cxx03/__utility/forward.h",
"//third_party/libc++/src/include/__cxx03/__utility/forward_like.h",
"//third_party/libc++/src/include/__cxx03/__utility/in_place.h",
"//third_party/libc++/src/include/__cxx03/__utility/integer_sequence.h",
"//third_party/libc++/src/include/__cxx03/__utility/is_pointer_in_range.h",
"//third_party/libc++/src/include/__cxx03/__utility/is_valid_range.h",
@@ -1208,16 +817,12 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/__utility/rel_ops.h",
"//third_party/libc++/src/include/__cxx03/__utility/small_buffer.h",
"//third_party/libc++/src/include/__cxx03/__utility/swap.h",
"//third_party/libc++/src/include/__cxx03/__utility/to_underlying.h",
"//third_party/libc++/src/include/__cxx03/__utility/unreachable.h",
"//third_party/libc++/src/include/__cxx03/__variant/monostate.h",
"//third_party/libc++/src/include/__cxx03/__verbose_abort",
"//third_party/libc++/src/include/__cxx03/algorithm",
"//third_party/libc++/src/include/__cxx03/any",
"//third_party/libc++/src/include/__cxx03/array",
"//third_party/libc++/src/include/__cxx03/atomic",
"//third_party/libc++/src/include/__cxx03/barrier",
"//third_party/libc++/src/include/__cxx03/bit",
"//third_party/libc++/src/include/__cxx03/bitset",
"//third_party/libc++/src/include/__cxx03/cassert",
"//third_party/libc++/src/include/__cxx03/ccomplex",
@@ -1225,7 +830,6 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/cerrno",
"//third_party/libc++/src/include/__cxx03/cfenv",
"//third_party/libc++/src/include/__cxx03/cfloat",
"//third_party/libc++/src/include/__cxx03/charconv",
"//third_party/libc++/src/include/__cxx03/chrono",
"//third_party/libc++/src/include/__cxx03/cinttypes",
"//third_party/libc++/src/include/__cxx03/ciso646",
@@ -1233,12 +837,9 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/clocale",
"//third_party/libc++/src/include/__cxx03/cmath",
"//third_party/libc++/src/include/__cxx03/codecvt",
"//third_party/libc++/src/include/__cxx03/compare",
"//third_party/libc++/src/include/__cxx03/complex",
"//third_party/libc++/src/include/__cxx03/complex.h",
"//third_party/libc++/src/include/__cxx03/concepts",
"//third_party/libc++/src/include/__cxx03/condition_variable",
"//third_party/libc++/src/include/__cxx03/coroutine",
"//third_party/libc++/src/include/__cxx03/csetjmp",
"//third_party/libc++/src/include/__cxx03/csignal",
"//third_party/libc++/src/include/__cxx03/cstdarg",
@@ -1257,36 +858,17 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/deque",
"//third_party/libc++/src/include/__cxx03/errno.h",
"//third_party/libc++/src/include/__cxx03/exception",
"//third_party/libc++/src/include/__cxx03/execution",
"//third_party/libc++/src/include/__cxx03/expected",
"//third_party/libc++/src/include/__cxx03/experimental/__config",
"//third_party/libc++/src/include/__cxx03/experimental/__simd/aligned_tag.h",
"//third_party/libc++/src/include/__cxx03/experimental/__simd/declaration.h",
"//third_party/libc++/src/include/__cxx03/experimental/__simd/reference.h",
"//third_party/libc++/src/include/__cxx03/experimental/__simd/scalar.h",
"//third_party/libc++/src/include/__cxx03/experimental/__simd/simd.h",
"//third_party/libc++/src/include/__cxx03/experimental/__simd/simd_mask.h",
"//third_party/libc++/src/include/__cxx03/experimental/__simd/traits.h",
"//third_party/libc++/src/include/__cxx03/experimental/__simd/utility.h",
"//third_party/libc++/src/include/__cxx03/experimental/__simd/vec_ext.h",
"//third_party/libc++/src/include/__cxx03/experimental/iterator",
"//third_party/libc++/src/include/__cxx03/experimental/memory",
"//third_party/libc++/src/include/__cxx03/experimental/propagate_const",
"//third_party/libc++/src/include/__cxx03/experimental/simd",
"//third_party/libc++/src/include/__cxx03/experimental/type_traits",
"//third_party/libc++/src/include/__cxx03/experimental/utility",
"//third_party/libc++/src/include/__cxx03/ext/__hash",
"//third_party/libc++/src/include/__cxx03/ext/hash_map",
"//third_party/libc++/src/include/__cxx03/ext/hash_set",
"//third_party/libc++/src/include/__cxx03/fenv.h",
"//third_party/libc++/src/include/__cxx03/filesystem",
"//third_party/libc++/src/include/__cxx03/float.h",
"//third_party/libc++/src/include/__cxx03/format",
"//third_party/libc++/src/include/__cxx03/forward_list",
"//third_party/libc++/src/include/__cxx03/fstream",
"//third_party/libc++/src/include/__cxx03/functional",
"//third_party/libc++/src/include/__cxx03/future",
"//third_party/libc++/src/include/__cxx03/initializer_list",
"//third_party/libc++/src/include/__cxx03/inttypes.h",
"//third_party/libc++/src/include/__cxx03/iomanip",
"//third_party/libc++/src/include/__cxx03/ios",
@@ -1294,35 +876,23 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/iostream",
"//third_party/libc++/src/include/__cxx03/istream",
"//third_party/libc++/src/include/__cxx03/iterator",
"//third_party/libc++/src/include/__cxx03/latch",
"//third_party/libc++/src/include/__cxx03/limits",
"//third_party/libc++/src/include/__cxx03/list",
"//third_party/libc++/src/include/__cxx03/locale",
"//third_party/libc++/src/include/__cxx03/locale.h",
"//third_party/libc++/src/include/__cxx03/map",
"//third_party/libc++/src/include/__cxx03/math.h",
"//third_party/libc++/src/include/__cxx03/mdspan",
"//third_party/libc++/src/include/__cxx03/memory",
"//third_party/libc++/src/include/__cxx03/memory_resource",
"//third_party/libc++/src/include/__cxx03/module.modulemap",
"//third_party/libc++/src/include/__cxx03/mutex",
"//third_party/libc++/src/include/__cxx03/new",
"//third_party/libc++/src/include/__cxx03/numbers",
"//third_party/libc++/src/include/__cxx03/numeric",
"//third_party/libc++/src/include/__cxx03/optional",
"//third_party/libc++/src/include/__cxx03/ostream",
"//third_party/libc++/src/include/__cxx03/print",
"//third_party/libc++/src/include/__cxx03/queue",
"//third_party/libc++/src/include/__cxx03/random",
"//third_party/libc++/src/include/__cxx03/ranges",
"//third_party/libc++/src/include/__cxx03/ratio",
"//third_party/libc++/src/include/__cxx03/regex",
"//third_party/libc++/src/include/__cxx03/scoped_allocator",
"//third_party/libc++/src/include/__cxx03/semaphore",
"//third_party/libc++/src/include/__cxx03/set",
"//third_party/libc++/src/include/__cxx03/shared_mutex",
"//third_party/libc++/src/include/__cxx03/source_location",
"//third_party/libc++/src/include/__cxx03/span",
"//third_party/libc++/src/include/__cxx03/sstream",
"//third_party/libc++/src/include/__cxx03/stack",
"//third_party/libc++/src/include/__cxx03/stdatomic.h",
@@ -1332,17 +902,14 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/stdint.h",
"//third_party/libc++/src/include/__cxx03/stdio.h",
"//third_party/libc++/src/include/__cxx03/stdlib.h",
"//third_party/libc++/src/include/__cxx03/stop_token",
"//third_party/libc++/src/include/__cxx03/streambuf",
"//third_party/libc++/src/include/__cxx03/string",
"//third_party/libc++/src/include/__cxx03/string.h",
"//third_party/libc++/src/include/__cxx03/string_view",
"//third_party/libc++/src/include/__cxx03/strstream",
"//third_party/libc++/src/include/__cxx03/syncstream",
"//third_party/libc++/src/include/__cxx03/system_error",
"//third_party/libc++/src/include/__cxx03/tgmath.h",
"//third_party/libc++/src/include/__cxx03/thread",
"//third_party/libc++/src/include/__cxx03/tuple",
"//third_party/libc++/src/include/__cxx03/type_traits",
"//third_party/libc++/src/include/__cxx03/typeindex",
"//third_party/libc++/src/include/__cxx03/typeinfo",
@@ -1351,7 +918,6 @@ libcxx_headers = [
"//third_party/libc++/src/include/__cxx03/unordered_set",
"//third_party/libc++/src/include/__cxx03/utility",
"//third_party/libc++/src/include/__cxx03/valarray",
"//third_party/libc++/src/include/__cxx03/variant",
"//third_party/libc++/src/include/__cxx03/vector",
"//third_party/libc++/src/include/__cxx03/version",
"//third_party/libc++/src/include/__cxx03/wchar.h",
@@ -1390,6 +956,10 @@ libcxx_headers = [
"//third_party/libc++/src/include/__flat_map/sorted_equivalent.h",
"//third_party/libc++/src/include/__flat_map/sorted_unique.h",
"//third_party/libc++/src/include/__flat_map/utils.h",
"//third_party/libc++/src/include/__flat_set/flat_multiset.h",
"//third_party/libc++/src/include/__flat_set/flat_set.h",
"//third_party/libc++/src/include/__flat_set/ra_iterator.h",
"//third_party/libc++/src/include/__flat_set/utils.h",
"//third_party/libc++/src/include/__format/buffer.h",
"//third_party/libc++/src/include/__format/concepts.h",
"//third_party/libc++/src/include/__format/container_adaptor.h",
@@ -1460,12 +1030,14 @@ libcxx_headers = [
"//third_party/libc++/src/include/__fwd/get.h",
"//third_party/libc++/src/include/__fwd/ios.h",
"//third_party/libc++/src/include/__fwd/istream.h",
"//third_party/libc++/src/include/__fwd/map.h",
"//third_party/libc++/src/include/__fwd/mdspan.h",
"//third_party/libc++/src/include/__fwd/memory.h",
"//third_party/libc++/src/include/__fwd/memory_resource.h",
"//third_party/libc++/src/include/__fwd/ostream.h",
"//third_party/libc++/src/include/__fwd/pair.h",
"//third_party/libc++/src/include/__fwd/queue.h",
"//third_party/libc++/src/include/__fwd/set.h",
"//third_party/libc++/src/include/__fwd/span.h",
"//third_party/libc++/src/include/__fwd/sstream.h",
"//third_party/libc++/src/include/__fwd/stack.h",
@@ -1559,6 +1131,7 @@ libcxx_headers = [
"//third_party/libc++/src/include/__math/traits.h",
"//third_party/libc++/src/include/__math/trigonometric_functions.h",
"//third_party/libc++/src/include/__mbstate_t.h",
"//third_party/libc++/src/include/__mdspan/aligned_accessor.h",
"//third_party/libc++/src/include/__mdspan/default_accessor.h",
"//third_party/libc++/src/include/__mdspan/extents.h",
"//third_party/libc++/src/include/__mdspan/layout_left.h",
@@ -1583,6 +1156,7 @@ libcxx_headers = [
"//third_party/libc++/src/include/__memory/destroy.h",
"//third_party/libc++/src/include/__memory/destruct_n.h",
"//third_party/libc++/src/include/__memory/inout_ptr.h",
"//third_party/libc++/src/include/__memory/is_sufficiently_aligned.h",
"//third_party/libc++/src/include/__memory/noexcept_move_assign_container.h",
"//third_party/libc++/src/include/__memory/out_ptr.h",
"//third_party/libc++/src/include/__memory/pointer_traits.h",
@@ -1632,6 +1206,7 @@ libcxx_headers = [
"//third_party/libc++/src/include/__numeric/midpoint.h",
"//third_party/libc++/src/include/__numeric/partial_sum.h",
"//third_party/libc++/src/include/__numeric/pstl.h",
"//third_party/libc++/src/include/__numeric/ranges_iota.h",
"//third_party/libc++/src/include/__numeric/reduce.h",
"//third_party/libc++/src/include/__numeric/saturation_arithmetic.h",
"//third_party/libc++/src/include/__numeric/transform_exclusive_scan.h",
@@ -1846,7 +1421,6 @@ libcxx_headers = [
"//third_party/libc++/src/include/__type_traits/is_member_pointer.h",
"//third_party/libc++/src/include/__type_traits/is_nothrow_assignable.h",
"//third_party/libc++/src/include/__type_traits/is_nothrow_constructible.h",
"//third_party/libc++/src/include/__type_traits/is_nothrow_convertible.h",
"//third_party/libc++/src/include/__type_traits/is_nothrow_destructible.h",
"//third_party/libc++/src/include/__type_traits/is_null_pointer.h",
"//third_party/libc++/src/include/__type_traits/is_object.h",
@@ -1888,6 +1462,8 @@ libcxx_headers = [
"//third_party/libc++/src/include/__type_traits/negation.h",
"//third_party/libc++/src/include/__type_traits/promote.h",
"//third_party/libc++/src/include/__type_traits/rank.h",
"//third_party/libc++/src/include/__type_traits/reference_constructs_from_temporary.h",
"//third_party/libc++/src/include/__type_traits/reference_converts_from_temporary.h",
"//third_party/libc++/src/include/__type_traits/remove_all_extents.h",
"//third_party/libc++/src/include/__type_traits/remove_const.h",
"//third_party/libc++/src/include/__type_traits/remove_const_ref.h",
@@ -2012,6 +1588,7 @@ libcxx_headers = [
"//third_party/libc++/src/include/fenv.h",
"//third_party/libc++/src/include/filesystem",
"//third_party/libc++/src/include/flat_map",
"//third_party/libc++/src/include/flat_set",
"//third_party/libc++/src/include/float.h",
"//third_party/libc++/src/include/format",
"//third_party/libc++/src/include/forward_list",
@@ -2035,7 +1612,7 @@ libcxx_headers = [
"//third_party/libc++/src/include/mdspan",
"//third_party/libc++/src/include/memory",
"//third_party/libc++/src/include/memory_resource",
"//third_party/libc++/src/include/module.modulemap",
"//third_party/libc++/src/include/module.modulemap.in",
"//third_party/libc++/src/include/mutex",
"//third_party/libc++/src/include/new",
"//third_party/libc++/src/include/numbers",

View File

@@ -54,7 +54,7 @@ BrowserWindow.prototype._init = function (this: BWT) {
});
this.on('close', (event) => {
queueMicrotask(() => {
if (!unresponsiveEvent && !event.defaultPrevented) {
if (!unresponsiveEvent && !event?.defaultPrevented) {
unresponsiveEvent = setTimeout(emitUnresponsiveEvent, 5000);
}
});

View File

@@ -78,7 +78,9 @@ export const roleList: Record<RoleId, Role> = {
minimize: {
label: 'Minimize',
accelerator: 'CommandOrControl+M',
windowMethod: w => w.minimize()
windowMethod: w => {
if (w.minimizable) w.minimize();
}
},
paste: {
label: 'Paste',

View File

@@ -93,7 +93,7 @@ Menu.prototype.popup = function (options = {}) {
}
}
this.popupAt(window as unknown as BaseWindow, x, y, positioningItem, sourceType, callback);
this.popupAt(window as unknown as BaseWindow, options.frame, x, y, positioningItem, sourceType, callback);
return { browserWindow: window, x, y, position: positioningItem };
};

View File

@@ -263,8 +263,17 @@ WebContents.prototype.print = function (options: ElectronInternal.WebContentsPri
throw new TypeError('webContents.print(): Invalid print settings specified.');
}
const pageSize = options.pageSize ?? 'A4';
if (typeof pageSize === 'object') {
const { pageSize } = options;
if (typeof pageSize === 'string' && PDFPageSizes[pageSize]) {
const mediaSize = PDFPageSizes[pageSize];
options.mediaSize = {
...mediaSize,
imageable_area_left_microns: 0,
imageable_area_bottom_microns: 0,
imageable_area_right_microns: mediaSize.width_microns,
imageable_area_top_microns: mediaSize.height_microns
};
} else if (typeof pageSize === 'object') {
if (!pageSize.height || !pageSize.width) {
throw new Error('height and width properties are required for pageSize');
}
@@ -286,16 +295,7 @@ WebContents.prototype.print = function (options: ElectronInternal.WebContentsPri
imageable_area_right_microns: width,
imageable_area_top_microns: height
};
} else if (typeof pageSize === 'string' && PDFPageSizes[pageSize]) {
const mediaSize = PDFPageSizes[pageSize];
options.mediaSize = {
...mediaSize,
imageable_area_left_microns: 0,
imageable_area_bottom_microns: 0,
imageable_area_right_microns: mediaSize.width_microns,
imageable_area_top_microns: mediaSize.height_microns
};
} else {
} else if (pageSize !== undefined) {
throw new Error(`Unsupported pageSize: ${pageSize}`);
}

View File

@@ -218,7 +218,6 @@ if (packagePath) {
} else {
// Call appCodeLoaded before just for safety, it doesn't matter here as _load is synchronous
appCodeLoaded!();
process._firstFileName = Module._resolveFilename(path.join(packagePath, mainStartupScript), null, false);
Module._load(path.join(packagePath, mainStartupScript), Module, true);
}
} else {

View File

@@ -667,10 +667,10 @@ export const wrapFsWithAsar = (fs: Record<string, any>) => {
return p(pathArgument, options);
};
const { readFileSync } = fs;
fs.readFileSync = function (pathArgument: string, options: any) {
const pathInfo = splitPath(pathArgument);
if (!pathInfo.isAsar) return readFileSync.apply(this, arguments);
function readFileFromArchiveSync (
pathInfo: { asarPath: string; filePath: string },
options: any
): ReturnType<typeof readFileSync> {
const { asarPath, filePath } = pathInfo;
const archive = getOrCreateArchive(asarPath);
@@ -704,6 +704,14 @@ export const wrapFsWithAsar = (fs: Record<string, any>) => {
fs.readSync(fd, buffer, 0, info.size, info.offset);
validateBufferIntegrity(buffer, info.integrity);
return (encoding) ? buffer.toString(encoding) : buffer;
}
const { readFileSync } = fs;
fs.readFileSync = function (pathArgument: string, options: any) {
const pathInfo = splitPath(pathArgument);
if (!pathInfo.isAsar) return readFileSync.apply(this, arguments);
return readFileFromArchiveSync(pathInfo, options);
};
type ReaddirOptions = { encoding: BufferEncoding | null; withFileTypes?: false, recursive?: false } | undefined | null;
@@ -980,25 +988,19 @@ export const wrapFsWithAsar = (fs: Record<string, any>) => {
};
const modBinding = internalBinding('modules');
const { readPackageJSON } = modBinding;
internalBinding('modules').readPackageJSON = (
jsonPath: string,
isESM: boolean,
base: undefined | string,
specifier: undefined | string
) => {
modBinding.overrideReadFileSync((jsonPath: string): Buffer | false | undefined => {
const pathInfo = splitPath(jsonPath);
if (!pathInfo.isAsar) return readPackageJSON(jsonPath, isESM, base, specifier);
const { asarPath, filePath } = pathInfo;
const archive = getOrCreateArchive(asarPath);
if (!archive) return undefined;
// Fallback to Node.js internal implementation
if (!pathInfo.isAsar) return undefined;
const realPath = archive.copyFileOut(filePath);
if (!realPath) return undefined;
return readPackageJSON(realPath, isESM, base, specifier);
};
try {
return readFileFromArchiveSync(pathInfo, undefined);
} catch {
// Not found
return false;
}
});
const { internalModuleStat } = binding;
internalBinding('fs').internalModuleStat = (receiver: unknown, pathArgument: string) => {

View File

@@ -10,7 +10,7 @@ this patch is required to provide ripemd160 support in the nodejs crypto
module.
diff --git a/crypto/digest/digest_extra.cc b/crypto/digest/digest_extra.cc
index f68ede9156ee57526f4578953c350798a1299f00..1de18075e1cfa7f9660fa3b065cd20bafcbe7ee8 100644
index 4cbfa1f53bb669c24c7f055f4fee7f144f72115a..120cb84e07e0539c038bca059b794d8f9f932a51 100644
--- a/crypto/digest/digest_extra.cc
+++ b/crypto/digest/digest_extra.cc
@@ -45,6 +45,7 @@ static const struct nid_to_digest nid_to_digest_mapping[] = {
@@ -82,7 +82,7 @@ index e04b80cd6a1a215fc87f8fd8d750c3d258c3974f..8fdf1c624794f568bfc77b7b6b0c510b
void EVP_MD_do_all(void (*callback)(const EVP_MD *cipher, const char *name,
diff --git a/include/openssl/digest.h b/include/openssl/digest.h
index 5ddc2d3b4cfb8a87eb22fb707230f56dcb7ccb3e..dea3c5b3adf49e1b4aab197e822744c80964afac 100644
index 6abab7693ef2cf418e64d4bf5d53e7e0821cb731..ecbf81be6888cf2e95008da054cf4d3d7df6ad49 100644
--- a/include/openssl/digest.h
+++ b/include/openssl/digest.h
@@ -48,6 +48,9 @@ OPENSSL_EXPORT const EVP_MD *EVP_blake2b256(void);

View File

@@ -118,7 +118,7 @@ index 8fdf1c624794f568bfc77b7b6b0c510b23905a4d..2e40c031e8c681fe921331b26dbf63f4
callback(EVP_des_ede3_cbc(), "des-ede3-cbc", NULL, arg);
callback(EVP_rc2_cbc(), "rc2-cbc", NULL, arg);
diff --git a/include/openssl/cipher.h b/include/openssl/cipher.h
index 6bb135801326bc1cbe2b93f02e561e38c90abeca..06bcba4451456c72b168266859482343af76a931 100644
index 13e68ad20ac08a462bb577d7f99e2c6f167579fa..4960d0eeb8f31bec4347ed2a1b63beba530de700 100644
--- a/include/openssl/cipher.h
+++ b/include/openssl/cipher.h
@@ -448,6 +448,7 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede3_ecb(void);

View File

@@ -20,10 +20,10 @@ index 2cdcbc346175eeee69402ecee7f169e61c655199..f7226fe711e4214b216ea2c5173a0212
case ssl_open_record_error:
diff --git a/ssl/ssl_lib.cc b/ssl/ssl_lib.cc
index 10b062abf8304df32652c57f377d57209bb47ed1..4eefe928daaf959d0cb1f0820e01ee05754bb4d5 100644
index 69f3fe2f5c193a30dd90368048804109db563da3..52393736adee2d50de218ac86c9e7cbcd9d6bf6d 100644
--- a/ssl/ssl_lib.cc
+++ b/ssl/ssl_lib.cc
@@ -1206,7 +1206,7 @@ int SSL_get_error(const SSL *ssl, int ret_code) {
@@ -1204,7 +1204,7 @@ int SSL_get_error(const SSL *ssl, int ret_code) {
}
if (ret_code == 0) {
@@ -32,7 +32,7 @@ index 10b062abf8304df32652c57f377d57209bb47ed1..4eefe928daaf959d0cb1f0820e01ee05
return SSL_ERROR_ZERO_RETURN;
}
// An EOF was observed which violates the protocol, and the underlying
@@ -2573,13 +2573,7 @@ void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx) {
@@ -2571,13 +2571,7 @@ void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx) {
return CRYPTO_get_ex_data(&ctx->ex_data, idx);
}

View File

@@ -62,7 +62,6 @@ disable_unload_metrics.patch
extend_apply_webpreferences.patch
build_libc_as_static_library.patch
build_do_not_depend_on_packed_resource_integrity.patch
refactor_restore_base_adaptcallbackforrepeating.patch
hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch
logging_win32_only_create_a_console_if_logging_to_stderr.patch
fix_media_key_usage_with_globalshortcuts.patch
@@ -131,15 +130,18 @@ osr_shared_texture_remove_keyed_mutex_on_win_dxgi.patch
feat_allow_usage_of_sccontentsharingpicker_on_supported_platforms.patch
chore_partial_revert_of.patch
fix_software_compositing_infinite_loop.patch
fix_add_method_which_disables_headless_mode_on_native_widget.patch
fix_adjust_headless_mode_handling_in_native_widget.patch
refactor_unfilter_unresponsive_events.patch
build_disable_thin_lto_mac.patch
feat_corner_smoothing_css_rule_and_blink_painting.patch
build_add_public_config_simdutf_config.patch
fix_multiple_scopedpumpmessagesinprivatemodes_instances.patch
revert_code_health_clean_up_stale_macwebcontentsocclusion.patch
ignore_parse_errors_for_pkey_appusermodel_toastactivatorclsid.patch
ignore_parse_errors_for_resolveshortcutproperties.patch
feat_add_signals_when_embedder_cleanup_callbacks_run_for.patch
feat_separate_content_settings_callback_for_sync_and_async_clipboard.patch
fix_win32_synchronous_spellcheck.patch
fix_enable_wrap_iter_in_string_view_and_array.patch
fix_linter_error.patch
fix_take_snapped_status_into_account_when_showing_a_window.patch
chore_grandfather_in_electron_views_and_delegates.patch
refactor_patch_electron_permissiontypes_into_blink.patch

View File

@@ -5,12 +5,11 @@ Subject: fix: improve shortcut text of Accelerator
This patch makes three changes to Accelerator::GetShortcutText to improve shortcut display text in menus:
1. Ctrl-Alt-<Key> accelerators show as Ctrl-Alt-<Key> instead of as Ctrl-<Key>
2. F2-F24 accelerators show up as such
3. Ctrl-Shift-= and Ctrl-Plus show up as such
1. F2-F24 accelerators show up as such
2. Ctrl-Shift-= and Ctrl-Plus show up as such
diff --git a/ui/base/accelerators/accelerator.cc b/ui/base/accelerators/accelerator.cc
index 5590f9d425229d87373c5b53651d2e2d17b779e4..407cbd7e7811e3053e35e26f24e3c049cdd59a46 100644
index 5ad9332dd27ceda7d67cd3f571b12218a4415a40..ffe083836c39fb60b4bff1f9fbdd6cebb7fa9d1d 100644
--- a/ui/base/accelerators/accelerator.cc
+++ b/ui/base/accelerators/accelerator.cc
@@ -12,6 +12,7 @@
@@ -21,51 +20,51 @@ index 5590f9d425229d87373c5b53651d2e2d17b779e4..407cbd7e7811e3053e35e26f24e3c049
#include "base/strings/utf_string_conversions.h"
#include "base/types/cxx23_to_underlying.h"
#include "build/build_config.h"
@@ -109,6 +110,11 @@ std::u16string Accelerator::GetShortcutText() const {
@@ -164,6 +165,11 @@ std::u16string Accelerator::GetKeyCodeStringForShortcut() const {
#endif
if (shortcut.empty()) {
if (key_string.empty()) {
+ // When a shifted char is explicitly specified, for example Ctrl+Plus,
+ // use the shifted char directly.
+ if (shifted_char) {
+ shortcut += *shifted_char;
+ key_string += *shifted_char;
+ } else {
#if BUILDFLAG(IS_WIN)
// Our fallback is to try translate the key code to a regular character
// unless it is one of digits (VK_0 to VK_9). Some keyboard
@@ -133,6 +139,10 @@ std::u16string Accelerator::GetShortcutText() const {
shortcut +=
@@ -190,6 +196,10 @@ std::u16string Accelerator::GetKeyCodeStringForShortcut() const {
static_cast<std::u16string::value_type>(base::ToUpperASCII(c));
}
#endif
+ }
+ if (key_code_ > VKEY_F1 && key_code_ <= VKEY_F24)
+ shortcut = base::UTF8ToUTF16(
+ key_string = base::UTF8ToUTF16(
+ base::StringPrintf("F%d", key_code_ - VKEY_F1 + 1));
}
#if BUILDFLAG(IS_MAC)
@@ -317,7 +327,7 @@ std::u16string Accelerator::ApplyLongFormModifiers(
const std::u16string& shortcut) const {
std::u16string result = shortcut;
return key_string;
@@ -350,7 +360,7 @@ std::vector<std::u16string> Accelerator::GetLongFormModifiers() const {
modifiers.push_back(l10n_util::GetStringUTF16(IDS_APP_CTRL_KEY));
}
- if (IsShiftDown()) {
+ if (!shifted_char && IsShiftDown()) {
result = ApplyModifierToAcceleratorString(result, IDS_APP_SHIFT_KEY);
modifiers.push_back(l10n_util::GetStringUTF16(IDS_APP_SHIFT_KEY));
}
diff --git a/ui/base/accelerators/accelerator.h b/ui/base/accelerators/accelerator.h
index 198c7469f410d3516b8a18493c5e4588d02487c2..e4995824ae2f3bb8045a3841a6213a4b315845a8 100644
index e7d5adfac920c97df8bab9bf4ed69a835ee314a9..9aeea7cb4c48d1ccc27304fa99238151b2811c87 100644
--- a/ui/base/accelerators/accelerator.h
+++ b/ui/base/accelerators/accelerator.h
@@ -18,6 +18,7 @@
#include <utility>
#include <vector>
#include "base/component_export.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
#include "base/time/time.h"
#include "build/blink_buildflags.h"
#include "build/build_config.h"
@@ -185,6 +186,8 @@ class COMPONENT_EXPORT(UI_BASE) Accelerator {
@@ -189,6 +190,8 @@ class COMPONENT_EXPORT(UI_BASE) Accelerator {
return interrupted_by_mouse_event_;
}
@@ -73,4 +72,4 @@ index 198c7469f410d3516b8a18493c5e4588d02487c2..e4995824ae2f3bb8045a3841a6213a4b
+
private:
friend class AcceleratorTestMac;
std::u16string ApplyLongFormModifiers(const std::u16string& shortcut) const;
std::vector<std::u16string> GetLongFormModifiers() const;

View File

@@ -10,10 +10,10 @@ Allows Electron to restore WER when ELECTRON_DEFAULT_ERROR_MODE is set.
This should be upstreamed.
diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
index 0d8bb93bf146c3058a30693673f0c23fdea90ae8..55f76337a445345c06531ce05e603db30daf759f 100644
index cadb96febde3fb3fe90929873b1db452a6d8fb8f..09f5504127b5a5ec3d0d69d9eb6d0cd93e0e75cd 100644
--- a/content/gpu/gpu_main.cc
+++ b/content/gpu/gpu_main.cc
@@ -268,6 +268,10 @@ int GpuMain(MainFunctionParams parameters) {
@@ -254,6 +254,10 @@ int GpuMain(MainFunctionParams parameters) {
// to the GpuProcessHost once the GpuServiceImpl has started.
viz::GpuServiceImpl::InstallPreInitializeLogHandler();
@@ -24,7 +24,7 @@ index 0d8bb93bf146c3058a30693673f0c23fdea90ae8..55f76337a445345c06531ce05e603db3
// We are experiencing what appear to be memory-stomp issues in the GPU
// process. These issues seem to be impacting the task executor and listeners
// registered to it. Create the task executor on the heap to guard against
@@ -378,7 +382,6 @@ int GpuMain(MainFunctionParams parameters) {
@@ -363,7 +367,6 @@ int GpuMain(MainFunctionParams parameters) {
#endif
const bool dead_on_arrival = !init_success;

View File

@@ -10,7 +10,7 @@ DidCreateScriptContext is called, not all JS APIs are available in the
context, which can cause some preload scripts to trip.
diff --git a/content/public/renderer/render_frame_observer.h b/content/public/renderer/render_frame_observer.h
index 44da0544b778d6ff4c14b6f4e8463cb8260d2f0d..8ae8939af4141a684b7a6d50a43e1abb354ea028 100644
index db655a7b52eacb74f2a8637db36abd87f6b86792..8014cb08e2090a12ea8b9e92cb8f93c96921d400 100644
--- a/content/public/renderer/render_frame_observer.h
+++ b/content/public/renderer/render_frame_observer.h
@@ -149,6 +149,8 @@ class CONTENT_EXPORT RenderFrameObserver
@@ -23,10 +23,10 @@ index 44da0544b778d6ff4c14b6f4e8463cb8260d2f0d..8ae8939af4141a684b7a6d50a43e1abb
int32_t world_id) {}
virtual void DidClearWindowObject() {}
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 0fb92081a1bbfb14c0ddd74dfe91f94bb2be1d2a..886f677564084d8b6af15b03403cfa56aeddd3c9 100644
index b0aa018f2f4e6865915516ab6b65fac20d9e6f20..c04a544eb8991bfa718322e6e3a090ef4733a50b 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -4802,6 +4802,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
@@ -4807,6 +4807,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
observer.DidCreateScriptContext(context, world_id);
}
@@ -40,10 +40,10 @@ index 0fb92081a1bbfb14c0ddd74dfe91f94bb2be1d2a..886f677564084d8b6af15b03403cfa56
int world_id) {
for (auto& observer : observers_)
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index bf073c9180d47243f09fdd052a43dfe7e34aa4aa..d1642b675e474568c302553a288253b639ed1efd 100644
index a7383e4a5ccb8ca1de10bc3efb3043f1dbbf2f6f..41075015aa2dd347c9847072dd76f9cea9ad2d94 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -653,6 +653,8 @@ class CONTENT_EXPORT RenderFrameImpl
@@ -652,6 +652,8 @@ class CONTENT_EXPORT RenderFrameImpl
void DidObserveLayoutShift(double score, bool after_input_or_scroll) override;
void DidCreateScriptContext(v8::Local<v8::Context> context,
int world_id) override;
@@ -53,10 +53,10 @@ index bf073c9180d47243f09fdd052a43dfe7e34aa4aa..d1642b675e474568c302553a288253b6
int world_id) override;
void DidChangeScrollOffset() override;
diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h
index 038c13c1e697d4f21160e0329f659b609802ecc1..60fd9aa69a86c32abf79ef8737e810b0017e1083 100644
index f59582f677806c07381bc608f9cca84a7af51a2b..174113297c8e5a5928c1d9166c417cb6328cfc82 100644
--- a/third_party/blink/public/web/web_local_frame_client.h
+++ b/third_party/blink/public/web/web_local_frame_client.h
@@ -664,6 +664,9 @@ class BLINK_EXPORT WebLocalFrameClient {
@@ -661,6 +661,9 @@ class BLINK_EXPORT WebLocalFrameClient {
virtual void DidCreateScriptContext(v8::Local<v8::Context>,
int32_t world_id) {}
@@ -79,10 +79,10 @@ index f7e0144c74f879e9b29871d7c372b99e127966bb..c3cd7b77ed282f212a56d151dc3fbec3
if (World().IsMainWorld()) {
probe::DidCreateMainWorldContext(GetFrame());
diff --git a/third_party/blink/renderer/core/frame/local_frame_client.h b/third_party/blink/renderer/core/frame/local_frame_client.h
index 8bb6b0465069529f79aaec21792e8b159535b3e9..f9782531c639d07002dda07732750a0007109468 100644
index e52a535450964b0938b66f7506225fda0cde04a2..841e9b36df4c32040d2b3c71514266fc330c99c7 100644
--- a/third_party/blink/renderer/core/frame/local_frame_client.h
+++ b/third_party/blink/renderer/core/frame/local_frame_client.h
@@ -299,6 +299,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient {
@@ -300,6 +300,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient {
virtual void DidCreateScriptContext(v8::Local<v8::Context>,
int32_t world_id) = 0;
@@ -92,7 +92,7 @@ index 8bb6b0465069529f79aaec21792e8b159535b3e9..f9782531c639d07002dda07732750a00
int32_t world_id) = 0;
virtual bool AllowScriptExtensions() = 0;
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
index 66cc44003157657c68e90d295f877789395eca8d..19cd8460711d5d5b1b76c9e4cb82ed7fc71b410c 100644
index 479dd8a7294ca6f0abb72350cc1a6c61e09c7c27..45226050aea1036f2c3a2fc15cabee893d12b1a7 100644
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
@@ -295,6 +295,13 @@ void LocalFrameClientImpl::DidCreateScriptContext(
@@ -110,7 +110,7 @@ index 66cc44003157657c68e90d295f877789395eca8d..19cd8460711d5d5b1b76c9e4cb82ed7f
v8::Local<v8::Context> context,
int32_t world_id) {
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.h b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
index 4c7375a27a22f04694e14fecc17d633734d4cccc..ea2a32b151aaf07b5704e463d01714eb41680afb 100644
index 5dbc9c1f5f45c8753dd5510ffad2c5d4c20c814b..4223ba0db6c267a4574ab4a76c5a6f365223416c 100644
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.h
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
@@ -82,6 +82,8 @@ class CORE_EXPORT LocalFrameClientImpl final : public LocalFrameClient {
@@ -123,10 +123,10 @@ index 4c7375a27a22f04694e14fecc17d633734d4cccc..ea2a32b151aaf07b5704e463d01714eb
int32_t world_id) override;
diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h
index 8ca461c8fc3f2e508be5783406b570062ccf5de0..3c67d214ecd2b3b2f3e8955836e8ef7c0f0a525d 100644
index 069ccf925bc0c6f1a5b707670cc3c931dd2a25a9..49ccc167276ed544c800483c4a8655b254304ee8 100644
--- a/third_party/blink/renderer/core/loader/empty_clients.h
+++ b/third_party/blink/renderer/core/loader/empty_clients.h
@@ -416,6 +416,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient {
@@ -418,6 +418,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient {
void DidCreateScriptContext(v8::Local<v8::Context>,
int32_t world_id) override {}

View File

@@ -7,10 +7,10 @@ Ensure that licenses for the dependencies introduced by Electron
are included in `LICENSES.chromium.html`
diff --git a/tools/licenses/licenses.py b/tools/licenses/licenses.py
index 12ad657f5df3ff4af2bdbd8b9fb7959131db2970..f2b03596dd5ff96236272b6348336515df85eef0 100755
index b0807ee3d8ebcf34f0d740362aa46c8631562d38..118d200b74953c0068ad59300ccc0e3041d77a10 100755
--- a/tools/licenses/licenses.py
+++ b/tools/licenses/licenses.py
@@ -336,6 +336,31 @@ SPECIAL_CASES = {
@@ -337,6 +337,31 @@ SPECIAL_CASES = {
"License": "Apache 2.0",
"License File": ["//third_party/dawn/third_party/khronos/LICENSE"],
},

View File

@@ -8,10 +8,10 @@ was removed as part of the Raw Clipboard API scrubbing.
https://bugs.chromium.org/p/chromium/issues/detail?id=1217643
diff --git a/ui/base/clipboard/scoped_clipboard_writer.cc b/ui/base/clipboard/scoped_clipboard_writer.cc
index fd162a607424bd4d0b324ccc7270522eb3b6a991..df1d5564a52ef67b447bbc222ceb1f864eb3dd81 100644
index 8064a2c27d747d4862503526496a65987df7dc35..c92596713c6d3884be3f63bf78d9117b7ad3ec90 100644
--- a/ui/base/clipboard/scoped_clipboard_writer.cc
+++ b/ui/base/clipboard/scoped_clipboard_writer.cc
@@ -230,6 +230,16 @@ void ScopedClipboardWriter::WriteData(std::u16string_view format,
@@ -237,6 +237,16 @@ void ScopedClipboardWriter::WriteData(std::u16string_view format,
}
}
@@ -29,7 +29,7 @@ index fd162a607424bd4d0b324ccc7270522eb3b6a991..df1d5564a52ef67b447bbc222ceb1f86
objects_.clear();
raw_objects_.clear();
diff --git a/ui/base/clipboard/scoped_clipboard_writer.h b/ui/base/clipboard/scoped_clipboard_writer.h
index d8fd611e88c22f2c1319da769dcd14cc218f9c90..f17304e1e9fd202dc4e1b7724031dc4c333a4baf 100644
index 939a99b2a086d5373f82fe96da73dabe02f6f9d8..fccc200b1b11076c8fcffde071a53598ffba9a12 100644
--- a/ui/base/clipboard/scoped_clipboard_writer.h
+++ b/ui/base/clipboard/scoped_clipboard_writer.h
@@ -87,6 +87,10 @@ class COMPONENT_EXPORT(UI_BASE_CLIPBOARD) ScopedClipboardWriter {

View File

@@ -10,7 +10,7 @@ usage of BrowserList and Browser as we subclass related methods and use our
WindowList.
diff --git a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
index 230c9cb619498f315fc0913da54837b725fc9024..0fa1120ab952864e53085e7746608bb491ec14b2 100644
index ce3840087d3becac116e57ed8c690b73e360f95f..a929b2d4f6c4b34f9e278aada9f8f793477c6d19 100644
--- a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
+++ b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
@@ -48,6 +48,7 @@
@@ -21,7 +21,7 @@ index 230c9cb619498f315fc0913da54837b725fc9024..0fa1120ab952864e53085e7746608bb4
#include "ui/accessibility/accessibility_features.h"
#include "ui/accessibility/ax_updates_and_events.h"
#include "ui/accessibility/platform/ax_platform_node.h"
@@ -171,7 +172,7 @@ base::Value::Dict BuildTargetDescriptor(content::RenderViewHost* rvh) {
@@ -169,7 +170,7 @@ base::Value::Dict BuildTargetDescriptor(content::RenderViewHost* rvh) {
rvh->GetRoutingID(), accessibility_mode);
}
@@ -30,17 +30,17 @@ index 230c9cb619498f315fc0913da54837b725fc9024..0fa1120ab952864e53085e7746608bb4
base::Value::Dict BuildTargetDescriptor(Browser* browser) {
base::Value::Dict target_data;
target_data.Set(kSessionIdField, browser->session_id().id());
@@ -192,7 +193,7 @@ void HandleAccessibilityRequestCallback(
DCHECK(ShouldHandleAccessibilityRequestCallback(path));
@@ -193,7 +194,7 @@ void HandleAccessibilityRequestCallback(
auto& browser_accessibility_state =
*content::BrowserAccessibilityState::GetInstance();
base::Value::Dict data;
- PrefService* pref = Profile::FromBrowserContext(current_context)->GetPrefs();
+ PrefService* pref = static_cast<electron::ElectronBrowserContext*>(current_context)->prefs();
ui::AXMode mode =
content::BrowserAccessibilityState::GetInstance()->GetAccessibilityMode();
bool is_native_enabled = content::BrowserAccessibilityState::GetInstance()
@@ -221,7 +222,7 @@ void HandleAccessibilityRequestCallback(
data.Set(kPDFPrinting, pdf_printing ? kOn : kOff);
ui::AXMode mode = browser_accessibility_state.GetAccessibilityMode();
bool native = mode.has_mode(ui::AXMode::kNativeAPIs);
bool web = mode.has_mode(ui::AXMode::kWebContents);
@@ -246,7 +247,7 @@ void HandleAccessibilityRequestCallback(
initial_process_mode.has_mode(ui::AXMode::kHTML)));
std::string pref_api_type =
- pref->GetString(prefs::kShownAccessibilityApiType);
@@ -48,7 +48,7 @@ index 230c9cb619498f315fc0913da54837b725fc9024..0fa1120ab952864e53085e7746608bb4
bool pref_api_type_supported = false;
std::vector<ui::AXApiType::Type> supported_api_types =
@@ -288,11 +289,11 @@ void HandleAccessibilityRequestCallback(
@@ -314,11 +315,11 @@ void HandleAccessibilityRequestCallback(
data.Set(kPagesField, std::move(page_list));
base::Value::List browser_list;
@@ -62,7 +62,7 @@ index 230c9cb619498f315fc0913da54837b725fc9024..0fa1120ab952864e53085e7746608bb4
data.Set(kBrowsersField, std::move(browser_list));
std::string json_string;
@@ -762,7 +763,8 @@ void AccessibilityUIMessageHandler::SetGlobalString(
@@ -792,7 +793,8 @@ void AccessibilityUIMessageHandler::SetGlobalString(
const std::string value = CheckJSValue(data.FindString(kValueField));
if (string_name == kApiTypeField) {
@@ -72,7 +72,7 @@ index 230c9cb619498f315fc0913da54837b725fc9024..0fa1120ab952864e53085e7746608bb4
pref->SetString(prefs::kShownAccessibilityApiType, value);
}
}
@@ -816,7 +818,8 @@ void AccessibilityUIMessageHandler::RequestWebContentsTree(
@@ -846,7 +848,8 @@ void AccessibilityUIMessageHandler::RequestWebContentsTree(
AXPropertyFilter::ALLOW_EMPTY);
AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY);
@@ -82,7 +82,7 @@ index 230c9cb619498f315fc0913da54837b725fc9024..0fa1120ab952864e53085e7746608bb4
ui::AXApiType::Type api_type =
ui::AXApiType::From(pref->GetString(prefs::kShownAccessibilityApiType));
std::string accessibility_contents =
@@ -843,6 +846,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
@@ -873,6 +876,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
AXPropertyFilter::ALLOW_EMPTY);
AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY);
@@ -90,7 +90,7 @@ index 230c9cb619498f315fc0913da54837b725fc9024..0fa1120ab952864e53085e7746608bb4
for (Browser* browser : *BrowserList::GetInstance()) {
if (browser->session_id().id() == session_id) {
base::Value::Dict result = BuildTargetDescriptor(browser);
@@ -855,6 +859,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
@@ -885,6 +889,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
return;
}
}
@@ -98,7 +98,7 @@ index 230c9cb619498f315fc0913da54837b725fc9024..0fa1120ab952864e53085e7746608bb4
#endif // !BUILDFLAG(IS_ANDROID)
// No browser with the specified |session_id| was found.
base::Value::Dict result;
@@ -898,11 +903,13 @@ void AccessibilityUIMessageHandler::StopRecording(
@@ -928,11 +933,13 @@ void AccessibilityUIMessageHandler::StopRecording(
}
ui::AXApiType::Type AccessibilityUIMessageHandler::GetRecordingApiType() {
@@ -115,7 +115,7 @@ index 230c9cb619498f315fc0913da54837b725fc9024..0fa1120ab952864e53085e7746608bb4
// Check to see if it is in the supported types list.
if (std::find(supported_types.begin(), supported_types.end(), api_type) ==
supported_types.end()) {
@@ -972,8 +979,11 @@ void AccessibilityUIMessageHandler::RequestAccessibilityEvents(
@@ -1002,8 +1009,11 @@ void AccessibilityUIMessageHandler::RequestAccessibilityEvents(
// static
void AccessibilityUIMessageHandler::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {

View File

@@ -6,7 +6,7 @@ Subject: allow disabling blink scheduler throttling per RenderView
This allows us to disable throttling for hidden windows.
diff --git a/content/browser/renderer_host/navigation_controller_impl_unittest.cc b/content/browser/renderer_host/navigation_controller_impl_unittest.cc
index 6c679ef877067297ec3bf1a23af6c03a2af8dcf5..1ac93433189580c13b69cd52ce62681a8620da3d 100644
index f9b27264f7e3e1f8de6f088ccb78e4a4693c5e93..85aebec5028fd6b324a1f1d9416fbf99c150e09a 100644
--- a/content/browser/renderer_host/navigation_controller_impl_unittest.cc
+++ b/content/browser/renderer_host/navigation_controller_impl_unittest.cc
@@ -168,6 +168,12 @@ class MockPageBroadcast : public blink::mojom::PageBroadcast {
@@ -23,10 +23,10 @@ index 6c679ef877067297ec3bf1a23af6c03a2af8dcf5..1ac93433189580c13b69cd52ce62681a
return receiver_.BindNewEndpointAndPassDedicatedRemote();
}
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
index 6c1e46e58d975137eee6c0fd7b01d2ae970a2e10..5ca29616369e76e298eb03188e18ca545c76a162 100644
index 9d430ebff1067323f229c3b81b18300e8cb7e8a9..090125bc5a4c485c83d9eaa6b82ed5cf3402cbbd 100644
--- a/content/browser/renderer_host/render_view_host_impl.cc
+++ b/content/browser/renderer_host/render_view_host_impl.cc
@@ -765,6 +765,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) {
@@ -768,6 +768,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) {
GetWidget()->GetAssociatedFrameWidget()->SetBackgroundOpaque(opaque);
}
@@ -51,7 +51,7 @@ index 56e52f079d1ad7c7a22764b976f0c8b2cc48dff2..1231fe522ad103e94d3c30ad7d5e5d23
void SendRendererPreferencesToRenderer(
const blink::RendererPreferences& preferences);
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index 19d2df47b0c929558ac8cfc208742dfef463a68b..7e9f2e71f08c1324a805462064d4fa485041c19f 100644
index d719b546b8c3c59003698b26dead065da7d76341..95a52f1cc2024e4a9cd694429d5304a5860a1c1e 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -579,8 +579,8 @@ void RenderWidgetHostViewAura::ShowImpl(PageVisibilityState page_visibility) {
@@ -116,10 +116,10 @@ index b1689844282d6917b9750fbc6a875848ddf84b70..f1cc159b7c3448a33a6d9e213f8fbd3b
// Visibility -----------------------------------------------------------
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
index 3de7e34536eceb241de943908875a9c3e5e99f7e..10c3795839969bde6a747da67d5cc7caa44a7179 100644
index 1af1fa035b3da8967526d704e362ddbc5c3194ac..f470ada1bf84938427fb89f4508e5f56aaeebc1f 100644
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -2461,6 +2461,10 @@ void WebViewImpl::SetPageLifecycleStateInternal(
@@ -2466,6 +2466,10 @@ void WebViewImpl::SetPageLifecycleStateInternal(
TRACE_EVENT2("navigation", "WebViewImpl::SetPageLifecycleStateInternal",
"old_state", old_state, "new_state", new_state);
@@ -130,7 +130,7 @@ index 3de7e34536eceb241de943908875a9c3e5e99f7e..10c3795839969bde6a747da67d5cc7ca
bool storing_in_bfcache = new_state->is_in_back_forward_cache &&
!old_state->is_in_back_forward_cache;
bool restoring_from_bfcache = !new_state->is_in_back_forward_cache &&
@@ -3987,10 +3991,23 @@ PageScheduler* WebViewImpl::Scheduler() const {
@@ -3989,10 +3993,23 @@ PageScheduler* WebViewImpl::Scheduler() const {
return GetPage()->GetPageScheduler();
}

View File

@@ -8,10 +8,10 @@ WebPreferences of in-process child windows, rather than relying on
process-level command line switches, as before.
diff --git a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
index 2494aeb1cd363c07e1b662743b1453da646fe17d..927dce4724263b45ff27b046ef024ae2a04706a9 100644
index 009f3563df63bc2ba2eadeecaea4f328d6a409ec..769ff8faaddf543fba1a41aff939f23741127247 100644
--- a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
+++ b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
@@ -148,6 +148,19 @@ bool StructTraits<blink::mojom::WebPreferencesDataView,
@@ -150,6 +150,19 @@ bool StructTraits<blink::mojom::WebPreferencesDataView,
out->v8_cache_options = data.v8_cache_options();
out->record_whole_document = data.record_whole_document();
out->stylus_handwriting_enabled = data.stylus_handwriting_enabled();
@@ -32,7 +32,7 @@ index 2494aeb1cd363c07e1b662743b1453da646fe17d..927dce4724263b45ff27b046ef024ae2
out->accelerated_video_decode_enabled =
data.accelerated_video_decode_enabled();
diff --git a/third_party/blink/public/common/web_preferences/web_preferences.h b/third_party/blink/public/common/web_preferences/web_preferences.h
index b7b817c01fcec0bf60bd88544ec66b53248a1ed8..82a03a14e19840924c90cb768a3bbd715fdf82d4 100644
index 85f312a9ea1eca0ff7ba4c679fabb3156aabbc0b..a9dc007a93003610d68e3118b4a47a86d4e16f6e 100644
--- a/third_party/blink/public/common/web_preferences/web_preferences.h
+++ b/third_party/blink/public/common/web_preferences/web_preferences.h
@@ -9,6 +9,7 @@
@@ -43,9 +43,9 @@ index b7b817c01fcec0bf60bd88544ec66b53248a1ed8..82a03a14e19840924c90cb768a3bbd71
#include "build/build_config.h"
#include "net/nqe/effective_connection_type.h"
#include "third_party/blink/public/common/common_export.h"
@@ -447,6 +448,20 @@ struct BLINK_COMMON_EXPORT WebPreferences {
// when feature DynamicSafeAreaInsets is enabled.
bool dynamic_safe_area_insets_enabled = false;
@@ -451,6 +452,20 @@ struct BLINK_COMMON_EXPORT WebPreferences {
// WebView and by `kWebPayments` feature flag everywhere.
bool payment_request_enabled = false;
+ // Begin Electron-specific WebPreferences.
+ bool context_isolation = false;
@@ -65,7 +65,7 @@ index b7b817c01fcec0bf60bd88544ec66b53248a1ed8..82a03a14e19840924c90cb768a3bbd71
// chrome, except for the cases where it would require lots of extra work for
// the embedder to use the same default value.
diff --git a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
index d686fc396ce4d53c209be5cbb4d4ddfecc4cca1b..cd1110adc4131404ba32595ea5533b220554b0c4 100644
index 1173ace39b6256edc188a4c6649e7cd4c4484899..c1d53122af52f7785a016f6fc62d9aa684a4be8c 100644
--- a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
+++ b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
@@ -8,6 +8,7 @@
@@ -76,7 +76,7 @@ index d686fc396ce4d53c209be5cbb4d4ddfecc4cca1b..cd1110adc4131404ba32595ea5533b22
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "net/nqe/effective_connection_type.h"
#include "third_party/blink/public/common/common_export.h"
@@ -437,6 +438,52 @@ struct BLINK_COMMON_EXPORT StructTraits<blink::mojom::WebPreferencesDataView,
@@ -442,6 +443,52 @@ struct BLINK_COMMON_EXPORT StructTraits<blink::mojom::WebPreferencesDataView,
return r.stylus_handwriting_enabled;
}
@@ -130,7 +130,7 @@ index d686fc396ce4d53c209be5cbb4d4ddfecc4cca1b..cd1110adc4131404ba32595ea5533b22
return r.cookie_enabled;
}
diff --git a/third_party/blink/public/mojom/webpreferences/web_preferences.mojom b/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
index 6678fc10d72e6c49ba729d5f44626f9a29934a3b..57f8c71bd0e3b1e09510184888636004a949c192 100644
index ffd46eb579c7c6bf9263b02e9bbe0dee013ac76d..be40f76fae9653e8d3fdcfa74979089d3d317533 100644
--- a/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
+++ b/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
@@ -8,9 +8,11 @@ import "third_party/blink/public/mojom/css/preferred_color_scheme.mojom";
@@ -145,7 +145,7 @@ index 6678fc10d72e6c49ba729d5f44626f9a29934a3b..57f8c71bd0e3b1e09510184888636004
enum PointerType {
kPointerNone = 1, // 1 << 0
kPointerFirstType = kPointerNone,
@@ -218,6 +220,19 @@ struct WebPreferences {
@@ -219,6 +221,19 @@ struct WebPreferences {
// If true, stylus handwriting recognition to text input will be available in
// editable input fields which are non-password type.
bool stylus_handwriting_enabled;

View File

@@ -15,7 +15,7 @@ Refs changes in:
This patch reverts the changes to fix associated crashes in Electron.
diff --git a/third_party/blink/renderer/core/frame/frame.cc b/third_party/blink/renderer/core/frame/frame.cc
index 9dc450bc20744463c8898bc822a558be38486493..576421cb9600625ad8b9eda25cb99954092a7a37 100644
index 2072f6b14289b1f3a76dbccc98f29aa178c1c35c..d7017437a7e7e6ac130677e52731d0482bf20664 100644
--- a/third_party/blink/renderer/core/frame/frame.cc
+++ b/third_party/blink/renderer/core/frame/frame.cc
@@ -134,14 +134,6 @@ bool Frame::Detach(FrameDetachType type) {
@@ -49,10 +49,10 @@ index 9dc450bc20744463c8898bc822a558be38486493..576421cb9600625ad8b9eda25cb99954
// its owning reference back to our owning LocalFrame.
client_->Detached(type);
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
index ba6aac34b4838efa86c01926759871a31a3b2257..99ae1320be10ac19d204edfe1c1cf4f52c62eb76 100644
index a309befcbcb1e7fe667bc1d794141fb90fea1035..dd148eb3cce762d20e9117b4f8030c881057b8bb 100644
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -748,10 +748,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
@@ -753,10 +753,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
}
DCHECK(!view_ || !view_->IsAttached());
@@ -63,7 +63,7 @@ index ba6aac34b4838efa86c01926759871a31a3b2257..99ae1320be10ac19d204edfe1c1cf4f5
if (!Client())
return false;
@@ -805,6 +801,11 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
@@ -810,6 +806,11 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
DCHECK(!view_->IsAttached());
Client()->WillBeDetached();

View File

@@ -6,7 +6,7 @@ Subject: boringssl BUILD.gn
Build BoringSSL with some extra functions that nodejs needs.
diff --git a/third_party/boringssl/BUILD.gn b/third_party/boringssl/BUILD.gn
index 12b2fb63dd3ff8c3d29d915a7d0f84a9d26c6e0a..c9fd2c069473b1c21ca8610afb246337c412e0be 100644
index b962901a7db8e6e50155dabbb1371124b12f9b26..b01e197ae2e411a376ffa28b9058d62a16abf23b 100644
--- a/third_party/boringssl/BUILD.gn
+++ b/third_party/boringssl/BUILD.gn
@@ -48,6 +48,21 @@ all_sources = bcm_internal_headers + bcm_sources + crypto_internal_headers +

View File

@@ -8,10 +8,10 @@ categories in use are known / declared. This patch is required for us
to introduce a new Electron category for Electron-specific tracing.
diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h
index 45c518185da68419e0f482acba359f02c2152f88..a0e35f118f0b1f767b41676d651a575e8b5fddb4 100644
index e9f891a025771899ffc888ea0095200342e48558..39d6f580c0cb5a0de41f32e9d7e103e05cefd0f0 100644
--- a/base/trace_event/builtin_categories.h
+++ b/base/trace_event/builtin_categories.h
@@ -91,6 +91,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS(
@@ -102,6 +102,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS(
perfetto::Category("drm"),
perfetto::Category("drmcursor"),
perfetto::Category("dwrite"),

View File

@@ -11,7 +11,7 @@ To accomplish this, we need to make simdutf's config public here
for use by third_party/electron_node.
diff --git a/third_party/simdutf/BUILD.gn b/third_party/simdutf/BUILD.gn
index d88fe7e43ac2a8129702e58bd2cd2aea094452e3..3cbeb89587f37b0ebc3622258fea0161ebf1d7b2 100644
index 5fbce38841f04dad38f202f529ae84c609c6a8de..9f5ef9bceade8e30bbd2be616b9143e9708fefd8 100644
--- a/third_party/simdutf/BUILD.gn
+++ b/third_party/simdutf/BUILD.gn
@@ -6,9 +6,14 @@ source_set("header") {

View File

@@ -10,10 +10,10 @@ Needed for:
2) //electron/shell/common:web_contents_utility
diff --git a/content/public/common/BUILD.gn b/content/public/common/BUILD.gn
index 55921115094f7437ce10db1cac1debe9adc10ea9..7040d83af340f052f5cab4437433e3dd0a688390 100644
index 35fc76646e912075c744b48b5ddec73f885ea5e8..6ce2825bf558d5f50b9df45227284103375aa2e4 100644
--- a/content/public/common/BUILD.gn
+++ b/content/public/common/BUILD.gn
@@ -379,6 +379,8 @@ mojom("interfaces") {
@@ -381,6 +381,8 @@ mojom("interfaces") {
"//content/common/*",
"//extensions/common:mojom",
"//extensions/common:mojom_blink",

View File

@@ -6,10 +6,10 @@ Subject: build: allow electron to use exec_script
This is similar to the //build usecase so we're OK adding ourselves here
diff --git a/.gn b/.gn
index 3f6571828197301361ebde2e19e8e3138597c276..9effa81a564c3d2afae3eb2bb7438635e45f124a 100644
index ae58a0b0a64ae1fdb3f9cd8587041d71a121c6b9..0ed56526002b12deb6d29f3dd23a0d74d8e7473c 100644
--- a/.gn
+++ b/.gn
@@ -172,4 +172,26 @@ exec_script_allowlist =
@@ -167,4 +167,27 @@ exec_script_allowlist =
"//tools/grit/grit_rule.gni",
"//tools/gritsettings/BUILD.gn",
@@ -34,5 +34,6 @@ index 3f6571828197301361ebde2e19e8e3138597c276..9effa81a564c3d2afae3eb2bb7438635
+ "//third_party/electron_node/deps/sqlite/unofficial.gni",
+ "//third_party/electron_node/deps/uv/unofficial.gni",
+ "//third_party/electron_node/deps/uvwasi/unofficial.gni",
+ "//third_party/electron_node/deps/zstd/unofficial.gni",
+ "//third_party/electron_node/src/inspector/unofficial.gni",
]

View File

@@ -11,7 +11,7 @@ This patch can (and should) be removed when we can prevent those symbols
from being stripped in the release build.
diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
index 5b98b4aedab5b700d21d6a8eac11c81cc13f6b39..8ee6f54f67c300a52074f33f9d6fe08a68e3be4b 100644
index a47aa1cf4fb55c91908e15f1c406d79a48697cf8..a05a20229749e032e6d26d87177aebc4955ce081 100644
--- a/build/config/compiler/compiler.gni
+++ b/build/config/compiler/compiler.gni
@@ -79,7 +79,7 @@ declare_args() {

View File

@@ -11,10 +11,10 @@ if we ever align our .pak file generation with Chrome we can remove this
patch.
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
index b38442f018b218944c7b85c9f8bd8b8eb6137b9e..dd15f6cf5dc40f2d54134c833d35508f2e22967b 100644
index 4b3f01018a9dea91b46b5917e099f272582991b2..8250f2e447ff19829cfae3f00b3df70b47749874 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -199,11 +199,16 @@ if (!is_android && !is_mac) {
@@ -200,11 +200,16 @@ if (!is_android && !is_mac) {
"common/crash_keys.h",
]
@@ -33,10 +33,10 @@ index b38442f018b218944c7b85c9f8bd8b8eb6137b9e..dd15f6cf5dc40f2d54134c833d35508f
"//base",
"//build:branding_buildflags",
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 0ad542897fa8e45003a7945d9393f84844f993d3..0fb8770c97c2a3c2ffebb558cd81081821747b2a 100644
index ae32014a8a25f3b1de7f6087551a87400e1463b5..be77c4e02cc495194ed6b248e56bcb75abe4efce 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -4567,7 +4567,7 @@ static_library("browser") {
@@ -4627,7 +4627,7 @@ static_library("browser") {
[ "//chrome/browser/ui/webui/signin:profile_impl" ]
}
@@ -46,10 +46,10 @@ index 0ad542897fa8e45003a7945d9393f84844f993d3..0fb8770c97c2a3c2ffebb558cd810818
# than here in :chrome_dll.
deps += [ "//chrome:packed_resources_integrity_header" ]
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 1cc7b3905eae8d1c3025ae3454482ea8418a5217..bf71a7514f337cc6447e27a8ebd3a2c299840121 100644
index e08035df314884fab39562cd9ee4960ec5af3cb5..28f0f4d671e16ffff770b43fa5a2e366491d4b30 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -7031,9 +7031,12 @@ test("unit_tests") {
@@ -7185,9 +7185,12 @@ test("unit_tests") {
"//chrome/notification_helper",
]
@@ -63,7 +63,7 @@ index 1cc7b3905eae8d1c3025ae3454482ea8418a5217..bf71a7514f337cc6447e27a8ebd3a2c2
"//chrome//services/util_win:unit_tests",
"//chrome/app:chrome_dll_resources",
"//chrome/app:win_unit_tests",
@@ -7996,6 +7999,10 @@ test("unit_tests") {
@@ -8153,6 +8156,10 @@ test("unit_tests") {
"../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc",
]
@@ -74,7 +74,7 @@ index 1cc7b3905eae8d1c3025ae3454482ea8418a5217..bf71a7514f337cc6447e27a8ebd3a2c2
sources += [
# The importer code is not used on Android.
"../common/importer/firefox_importer_utils_unittest.cc",
@@ -8051,7 +8058,6 @@ test("unit_tests") {
@@ -8208,7 +8215,6 @@ test("unit_tests") {
# Non-android deps for "unit_tests" target.
deps += [
"../browser/screen_ai:screen_ai_install_state",

View File

@@ -7,7 +7,7 @@ These are variables we add to the root BUILDCONFIG so that they're available
everywhere, without having to import("//electron/.../flags.gni").
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
index bdf8b13631a3cdf698078f70c435e9316cf0bfc3..53df468e94bdd2cdf049604e29e55863efdd3a8d 100644
index c3a3bf4970783804bc76ee4e71bb8233b5f215a8..78c72710b411e05ca0b6f01811076599fa66fc15 100644
--- a/build/config/BUILDCONFIG.gn
+++ b/build/config/BUILDCONFIG.gn
@@ -123,6 +123,9 @@ if (current_os == "") {

View File

@@ -7,10 +7,10 @@ Build libc++ as static library to compile and pass
nan tests
diff --git a/buildtools/third_party/libc++/BUILD.gn b/buildtools/third_party/libc++/BUILD.gn
index 3f437d2b9c193285bdc200c2781b13de75ba993d..d9493066ddc7d7198acc76f345c726be021d8fce 100644
index f411f2d51a397db52ba28eb7ed430f6f16c5396d..219e99e56cbf35aac8e18cff96601143f9f44ebf 100644
--- a/buildtools/third_party/libc++/BUILD.gn
+++ b/buildtools/third_party/libc++/BUILD.gn
@@ -204,7 +204,11 @@ libcxx_modules("std_wctype_h") {
@@ -295,7 +295,11 @@ libcxx_modules("std_wctype_h") {
if (libcxx_is_shared) {
_libcxx_target_type = "shared_library"
} else {
@@ -23,7 +23,7 @@ index 3f437d2b9c193285bdc200c2781b13de75ba993d..d9493066ddc7d7198acc76f345c726be
}
target(_libcxx_target_type, "libc++") {
@@ -213,6 +217,7 @@ target(_libcxx_target_type, "libc++") {
@@ -304,6 +308,7 @@ target(_libcxx_target_type, "libc++") {
# need to explicitly depend on libc++.
visibility = [
"//build/config:common_deps",

View File

@@ -9,10 +9,10 @@ potentially prevent a window from being created.
TODO(loc): this patch is currently broken.
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index 447c0ae162f45eb157008e62cbc756d6f23e4920..27db5dbfd05106788feda9daab9d1aaaf1ae920f 100644
index 9d5452597f64906ac1d3223ca5290776df8809c5..46ddad111b2feb5cc1064a1eeb424800d2cba6c1 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -9635,6 +9635,7 @@ void RenderFrameHostImpl::CreateNewWindow(
@@ -9777,6 +9777,7 @@ void RenderFrameHostImpl::CreateNewWindow(
last_committed_origin_, params->window_container_type,
params->target_url, params->referrer.To<Referrer>(),
params->frame_name, params->disposition, *params->features,
@@ -21,10 +21,10 @@ index 447c0ae162f45eb157008e62cbc756d6f23e4920..27db5dbfd05106788feda9daab9d1aaa
&no_javascript_access);
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index c53ab4b96a16b7326dfde14452b20d2170aecf04..e500fe77f55836b3e5832536f98cf9581984b8c1 100644
index 77954ceccdfb1e94598d5d7ad747721ab84aa1d7..aec96f969800e2a4d09e644df770d367e48b1b63 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5061,6 +5061,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -5132,6 +5132,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
SetPartitionedPopinOpenerOnNewWindowIfNeeded(new_contents_impl, params,
opener);
@@ -37,7 +37,7 @@ index c53ab4b96a16b7326dfde14452b20d2170aecf04..e500fe77f55836b3e5832536f98cf958
// If the new frame has a name, make sure any SiteInstances that can find
// this named frame have proxies for it. Must be called after
// SetSessionStorageNamespace, since this calls CreateRenderView, which uses
@@ -5102,12 +5108,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -5173,12 +5179,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
AddWebContentsDestructionObserver(new_contents_impl);
}
@@ -51,10 +51,10 @@ index c53ab4b96a16b7326dfde14452b20d2170aecf04..e500fe77f55836b3e5832536f98cf958
new_contents_impl, opener, params.target_url,
params.referrer.To<Referrer>(), params.disposition,
diff --git a/content/common/frame.mojom b/content/common/frame.mojom
index 8f8f79733c956fed2469e51993bad29689c11d8a..17e953f46d479f431fa06d28857901cb844ff4ea 100644
index 55bb4ae3bab4cdf20b3e1dde9450a5c0e4e62b37..fe444c7fa140166a1b65c7a8a2676e2de7c4e0fc 100644
--- a/content/common/frame.mojom
+++ b/content/common/frame.mojom
@@ -642,6 +642,10 @@ struct CreateNewWindowParams {
@@ -646,6 +646,10 @@ struct CreateNewWindowParams {
pending_associated_remote<blink.mojom.Widget> widget;
pending_associated_receiver<blink.mojom.FrameWidgetHost> frame_widget_host;
pending_associated_remote<blink.mojom.FrameWidget> frame_widget;
@@ -66,10 +66,10 @@ index 8f8f79733c956fed2469e51993bad29689c11d8a..17e953f46d479f431fa06d28857901cb
// Operation result when the renderer asks the browser to create a new window.
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
index f5b028759f86f382230867e6abf72a82051c02c3..f1110385258f057be3b456198b46e4d2c54ca718 100644
index 210e5ffc0da31cc0d214e8a3e65f7d8b045fd33e..237b279eeefe5b18402a7dea8d1c00072655ed22 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -815,6 +815,8 @@ bool ContentBrowserClient::CanCreateWindow(
@@ -823,6 +823,8 @@ bool ContentBrowserClient::CanCreateWindow(
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@@ -79,10 +79,10 @@ index f5b028759f86f382230867e6abf72a82051c02c3..f1110385258f057be3b456198b46e4d2
bool opener_suppressed,
bool* no_javascript_access) {
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 1c7e6dc3b867c0e598f8517591ffb9aa8007bfea..7459b083156d1f6bc01198690c4c9ec02d88d862 100644
index be551d7a09330edf4a204b181acb382c2c3d13f4..5ed4df05dd22cbf901ecbbcc9d892de806c93890 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -198,6 +198,7 @@ class NetworkService;
@@ -199,6 +199,7 @@ class NetworkService;
class TrustedURLLoaderHeaderClient;
} // namespace mojom
struct ResourceRequest;
@@ -90,7 +90,7 @@ index 1c7e6dc3b867c0e598f8517591ffb9aa8007bfea..7459b083156d1f6bc01198690c4c9ec0
} // namespace network
namespace sandbox {
@@ -1368,6 +1369,8 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1379,6 +1380,8 @@ class CONTENT_EXPORT ContentBrowserClient {
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@@ -100,7 +100,7 @@ index 1c7e6dc3b867c0e598f8517591ffb9aa8007bfea..7459b083156d1f6bc01198690c4c9ec0
bool opener_suppressed,
bool* no_javascript_access);
diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc
index ac4deeb6acebf79987591756320e2406d74d7a1e..f688e6d1e6c11f0dd80f498e6361fa822e8c2eb8 100644
index b390356721fa226c348923f33601c4a1a2d9702d..97a3ea6f292563a41fd41f812ac72526a96d8471 100644
--- a/content/public/browser/web_contents_delegate.cc
+++ b/content/public/browser/web_contents_delegate.cc
@@ -32,6 +32,17 @@ namespace content {
@@ -122,7 +122,7 @@ index ac4deeb6acebf79987591756320e2406d74d7a1e..f688e6d1e6c11f0dd80f498e6361fa82
WebContents* source,
const OpenURLParams& params,
diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
index ac2e7cdceb13ce07966a908fab3ff8feff969484..96cb58b1a88499cf8f78d748dc5a1cc1c6b6a128 100644
index da319cb20733150366d85bee95609f0f2d9def7f..8a18958035cc1dd26be558349f64f7727570c4ba 100644
--- a/content/public/browser/web_contents_delegate.h
+++ b/content/public/browser/web_contents_delegate.h
@@ -18,6 +18,7 @@
@@ -133,7 +133,7 @@ index ac2e7cdceb13ce07966a908fab3ff8feff969484..96cb58b1a88499cf8f78d748dc5a1cc1
#include "content/public/browser/eye_dropper.h"
#include "content/public/browser/fullscreen_types.h"
#include "content/public/browser/invalidate_type.h"
@@ -375,6 +376,13 @@ class CONTENT_EXPORT WebContentsDelegate {
@@ -376,6 +377,13 @@ class CONTENT_EXPORT WebContentsDelegate {
const StoragePartitionConfig& partition_config,
SessionStorageNamespace* session_storage_namespace);
@@ -148,10 +148,10 @@ index ac2e7cdceb13ce07966a908fab3ff8feff969484..96cb58b1a88499cf8f78d748dc5a1cc1
// typically happens when popups are created.
virtual void WebContentsCreated(WebContents* source_contents,
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 0e2524de1159d7e2628c66d188002c6a417bfa52..0fb92081a1bbfb14c0ddd74dfe91f94bb2be1d2a 100644
index 7f33a5452de32f5f4f8a43d0314917f24308d77c..b0aa018f2f4e6865915516ab6b65fac20d9e6f20 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -6924,6 +6924,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
@@ -6938,6 +6938,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
request.HasUserGesture(), GetWebFrame()->IsAdFrame(),
GetWebFrame()->IsAdScriptInStack());
@@ -163,10 +163,10 @@ index 0e2524de1159d7e2628c66d188002c6a417bfa52..0fb92081a1bbfb14c0ddd74dfe91f94b
// moved on send.
bool is_background_tab =
diff --git a/content/web_test/browser/web_test_content_browser_client.cc b/content/web_test/browser/web_test_content_browser_client.cc
index fa36b9907988ab971c94eae317e6e1dc4d170762..a2cafef6cae2fd78580fdf90dae17ac6586a7312 100644
index e5f7596c1b3e525e1d64efbd6b7e0703b980dac9..0b4523200651c1edfd7678b177a24b7e64de6ddf 100644
--- a/content/web_test/browser/web_test_content_browser_client.cc
+++ b/content/web_test/browser/web_test_content_browser_client.cc
@@ -534,6 +534,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
@@ -538,6 +538,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@@ -176,10 +176,10 @@ index fa36b9907988ab971c94eae317e6e1dc4d170762..a2cafef6cae2fd78580fdf90dae17ac6
bool opener_suppressed,
bool* no_javascript_access) {
diff --git a/content/web_test/browser/web_test_content_browser_client.h b/content/web_test/browser/web_test_content_browser_client.h
index 9c6bbdc4f8e4f78fd745ac4e71510d9534925a78..f4a68476f71e8283bb3da3642758416efb98c168 100644
index e4eaba65b25262ce5ed27d78da13a260ec57f6db..ddd3be9aa7aac43140a1e664eefce7ac195ba119 100644
--- a/content/web_test/browser/web_test_content_browser_client.h
+++ b/content/web_test/browser/web_test_content_browser_client.h
@@ -93,6 +93,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {
@@ -95,6 +95,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@@ -210,10 +210,10 @@ index 82e9d3dfb5f7da76d89fe15ae61d379fa46e177d..fd035512099a54dff6cc951a2226c23a
} // namespace blink
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
index 70d107d7c99056e790d75755855b804ed1961a90..a0ed0e7cd27532dcf2c327874ae4573c70290ecd 100644
index de39a688207f81143c59ad54385642389b0fcc4e..93c5b79727674ff1c5344d39fd7bcd07c3101424 100644
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -2270,6 +2270,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
@@ -2280,6 +2280,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
WebWindowFeatures window_features =
GetWindowFeaturesFromString(features, entered_window);

View File

@@ -6,7 +6,7 @@ Subject: chore: add electron deps to gitignores
Makes things like "git status" quicker when developing electron locally
diff --git a/.gitignore b/.gitignore
index 375db3d02ce2837ba69e3e93c38cde7153ba079f..fc3f4f71c43facf695d326f0bc64e0ad920aa9ac 100644
index 0a0f0118d5c1a5a2f3ad28b068bebb849eba7246..5ca6d03b709ef119ccd6482b2f305f8a3aeb7438 100644
--- a/.gitignore
+++ b/.gitignore
@@ -217,6 +217,7 @@ vs-chromium-project.txt
@@ -18,12 +18,12 @@ index 375db3d02ce2837ba69e3e93c38cde7153ba079f..fc3f4f71c43facf695d326f0bc64e0ad
/googleurl
/gpu/gles2_conform_test
diff --git a/third_party/.gitignore b/third_party/.gitignore
index 3e117f79191d5cea0fb4f1c6b0e95513562d7691..f197d17a55a802b01aaba602eff7c83f2a55c7b5 100644
index ad591b3a0f2afe24d53dac76655f81790c1baa50..080d19d34659290e70f599e3d91da286013be76f 100644
--- a/third_party/.gitignore
+++ b/third_party/.gitignore
@@ -45,7 +45,9 @@
/devserver
@@ -46,7 +46,9 @@
/directxsdk
/dragonbox/src
/edk2
+/electron_node
/elfutils/src
@@ -31,7 +31,7 @@ index 3e117f79191d5cea0fb4f1c6b0e95513562d7691..f197d17a55a802b01aaba602eff7c83f
/espresso/lib/
/eyesfree/src
/fast_float/src
@@ -93,6 +95,7 @@
@@ -94,6 +96,7 @@
/mocha
/mockito/src
/nacl_sdk_binaries/
@@ -39,7 +39,7 @@ index 3e117f79191d5cea0fb4f1c6b0e95513562d7691..f197d17a55a802b01aaba602eff7c83f
/ninja
/node/*.tar.gz
/node/linux/
@@ -137,7 +140,7 @@
@@ -138,7 +141,7 @@
/spirv-cross/src
/spirv-headers/src
/spirv-tools/src

View File

@@ -0,0 +1,91 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Charles Kerr <charles@charleskerr.com>
Date: Mon, 14 Apr 2025 11:34:25 -0500
Subject: chore: "grandfather in" Electron Views and Delegates
6441736: Block further usage of WidgetDelegateView. | https://chromium-review.googlesource.com/c/chromium/src/+/6441736
6442265: Add a PassKey for std::make_unique<WidgetDelegateView>(). | https://chromium-review.googlesource.com/c/chromium/src/+/6442265
6448510: Lock further access to View::set_owned_by_client(). | https://chromium-review.googlesource.com/c/chromium/src/+/6448510
diff --git a/ui/views/view.h b/ui/views/view.h
index ae7eab37f12ba80ec423d229cf048021e9ba6765..507a75dc7947295db221b01356fa57baf3cf03e4 100644
--- a/ui/views/view.h
+++ b/ui/views/view.h
@@ -82,6 +82,19 @@ class ArcNotificationContentView;
class WideFrameView;
} // namespace ash
+namespace electron {
+class DevToolsWindowDelegate;
+class InspectableWebContentsView;
+class MenuBar;
+class RootView;
+class RootViewMac;
+}
+
+namespace electron::api {
+class ImageView;
+class View;
+}
+
namespace exo {
class ShellSurfaceBase;
}
@@ -324,6 +337,14 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
public:
class OwnedByClientPassKey {
private:
+ // TODO(ckerr) can this list be shortened?
+ friend class electron::DevToolsWindowDelegate;
+ friend class electron::InspectableWebContentsView;
+ friend class electron::MenuBar;
+ friend class electron::RootView;
+ friend class electron::RootViewMac;
+ friend class electron::api::ImageView;
+ friend class electron::api::View;
// DO NOT ADD TO THIS LIST!
// These existing cases are "grandfathered in", but there shouldn't be more.
// See comments atop class.
diff --git a/ui/views/widget/widget_delegate.h b/ui/views/widget/widget_delegate.h
index 89de188e6a0139a236a824b189f1048613d6f457..c438376c34cac4ec7ac7a03d852685c18b10068e 100644
--- a/ui/views/widget/widget_delegate.h
+++ b/ui/views/widget/widget_delegate.h
@@ -165,6 +165,12 @@ namespace crostini {
class AppRestartDialog;
}
+namespace electron {
+class AutofillPopupView;
+class DevToolsWindowDelegate;
+class NativeWindowMac;
+}
+
namespace enterprise_connectors {
class ContentAnalysisDialog;
class ContentAnalysisDialogBehaviorBrowserTest;
@@ -367,6 +373,7 @@ class VIEWS_EXPORT WidgetDelegate {
class OwnedByWidgetPassKey {
private:
+ friend class electron::DevToolsWindowDelegate;
// DO NOT ADD TO THIS LIST!
// These existing cases are "grandfathered in", but there shouldn't be more.
// See comments atop `SetOwnedByWidget()`.
@@ -463,6 +470,7 @@ class VIEWS_EXPORT WidgetDelegate {
};
class RegisterDeleteCallbackPassKey {
private:
+ friend class electron::NativeWindowMac;
// DO NOT ADD TO THIS LIST!
// These existing cases are "grandfathered in", but there shouldn't be more.
// See comments atop `RegisterDeleteDelegateCallback()`.
@@ -913,6 +921,7 @@ class VIEWS_EXPORT WidgetDelegateView : public WidgetDelegate, public View {
View* GetContentsView() override;
private:
+ friend class electron::AutofillPopupView;
// DO NOT ADD TO THIS LIST!
// These existing cases are "grandfathered in", but there shouldn't be more.
// See comments atop class.

View File

@@ -7,7 +7,7 @@ This patch comes after Chromium removed the ScopedAllowIO API in favor
of explicitly adding ScopedAllowBlocking calls as friends.
diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h
index 075e8173bcf1cfe420b87afe216bb06459a0d8bc..a300ed1e8c226f43fbfe6d82f72f9fb741fa342e 100644
index 59d6e6e4d899f10d1adeb4f23c32f0dd565cf963..674954816b6c241c1923668f8da7ad5c79a04256 100644
--- a/base/threading/thread_restrictions.h
+++ b/base/threading/thread_restrictions.h
@@ -132,6 +132,7 @@ class KeyStorageLinux;
@@ -28,7 +28,7 @@ index 075e8173bcf1cfe420b87afe216bb06459a0d8bc..a300ed1e8c226f43fbfe6d82f72f9fb7
namespace enterprise_connectors {
class LinuxKeyRotationCommand;
} // namespace enterprise_connectors
@@ -574,6 +578,7 @@ class BASE_EXPORT ScopedAllowBlocking {
@@ -572,6 +576,7 @@ class BASE_EXPORT ScopedAllowBlocking {
friend class ::DesktopNotificationBalloon;
friend class ::FirefoxProfileLock;
friend class ::GaiaConfig;
@@ -36,10 +36,10 @@ index 075e8173bcf1cfe420b87afe216bb06459a0d8bc..a300ed1e8c226f43fbfe6d82f72f9fb7
friend class ::ProfileImpl;
friend class ::ScopedAllowBlockingForProfile;
friend class ::StartupTabProviderImpl;
@@ -613,6 +618,7 @@ class BASE_EXPORT ScopedAllowBlocking {
@@ -610,6 +615,7 @@ class BASE_EXPORT ScopedAllowBlocking {
friend class cronet::CronetPrefsManager;
friend class crypto::ScopedAllowBlockingForNSS; // http://crbug.com/59847
friend class drive::FakeDriveService;
friend class extensions::DesktopAndroidExtensionSystem;
+ friend class electron::ScopedAllowBlockingForElectron;
friend class extensions::InstalledLoader;
friend class extensions::UnpackedInstaller;

View File

@@ -34,10 +34,10 @@ index 39b5a8fdd165efd74b00256552b51b5413107958..bfc4ef4f50efff4a77f2aef64335bb7e
class ScrollEvent;
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index 55c426aee12da4d4d1f62dc7d489133e8d21dc49..40c88bf14d2d4fe841e29b32414361688ae438e5 100644
index 61509e2eb982797845098abf5f36e031be63686b..24283be8d1660acce0a5ae89386b8eef9989fc12 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -1362,6 +1362,10 @@ void DesktopWindowTreeHostWin::HandleHeadlessWindowBoundsChanged(
@@ -1415,6 +1415,10 @@ void DesktopWindowTreeHostWin::HandleHeadlessWindowBoundsChanged(
window()->SetProperty(aura::client::kHeadlessBoundsKey, bounds);
}
@@ -49,22 +49,22 @@ index 55c426aee12da4d4d1f62dc7d489133e8d21dc49..40c88bf14d2d4fe841e29b3241436168
DesktopWindowTreeHostWin::GetSingletonDesktopNativeCursorManager() {
return new DesktopNativeCursorManagerWin();
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
index 4865d79c95c34d8cead96d3bb8063a0e2bd6076b..ebfa09ed15dca98b75a013e3dcbb566ce84d7cb7 100644
index dab595aacaeca4f6f735fd04004c27a4949278d2..177134d439866db9dbbde657ff358a761ad7f39d 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
@@ -267,6 +267,7 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin : public DesktopWindowTreeHost,
@@ -272,6 +272,7 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin
void HandleWindowSizeUnchanged() override;
void HandleWindowScaleFactorChanged(float window_scale_factor) override;
void HandleHeadlessWindowBoundsChanged(const gfx::Rect& bounds) override;
+ bool HandleMouseEventForCaption(UINT message) const override;
// Overridden from WidgetObserver.
void OnWidgetThemeChanged(Widget* widget) override;
Widget* GetWidget();
const Widget* GetWidget() const;
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
index 3a60e310d1c4048f0e37e085c97b8dfc093aefda..8fe48c9bef144218e34434d563883b15733d03bc 100644
index 5919efa661c3b1ed210f7a67f85fdd3882011bae..5b17d5bf0b32405ae9515b941a17b68a04a3b317 100644
--- a/ui/views/win/hwnd_message_handler.cc
+++ b/ui/views/win/hwnd_message_handler.cc
@@ -3156,15 +3156,19 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
@@ -3178,15 +3178,19 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
}
// We must let Windows handle the caption buttons if it's drawing them, or
// they won't work.
@@ -86,7 +86,7 @@ index 3a60e310d1c4048f0e37e085c97b8dfc093aefda..8fe48c9bef144218e34434d563883b15
return 0;
}
}
@@ -3187,6 +3191,7 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
@@ -3209,6 +3213,7 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
// handle alt-space, or in the frame itself.
is_right_mouse_pressed_on_caption_ = false;
ReleaseCapture();
@@ -94,7 +94,7 @@ index 3a60e310d1c4048f0e37e085c97b8dfc093aefda..8fe48c9bef144218e34434d563883b15
// |point| is in window coordinates, but WM_NCHITTEST and TrackPopupMenu()
// expect screen coordinates.
POINT screen_point = CR_POINT_INITIALIZER_FROM_LPARAM(l_param);
@@ -3194,7 +3199,17 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
@@ -3216,7 +3221,17 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
w_param = static_cast<WPARAM>(SendMessage(
hwnd(), WM_NCHITTEST, 0, MAKELPARAM(screen_point.x, screen_point.y)));
if (w_param == HTCAPTION || w_param == HTSYSMENU) {
@@ -114,7 +114,7 @@ index 3a60e310d1c4048f0e37e085c97b8dfc093aefda..8fe48c9bef144218e34434d563883b15
}
} else if (message == WM_NCLBUTTONDOWN &&
diff --git a/ui/views/win/hwnd_message_handler_delegate.h b/ui/views/win/hwnd_message_handler_delegate.h
index de8fd5657e6885f74a5970bdd49647a6f1616387..4af87792edc7a147468077b834582510550e35e6 100644
index 252d7ce78ad49596fb030160cb69d9bf3dc0951f..5e7975cf5cb3435b844fda58d7582d54cb583a72 100644
--- a/ui/views/win/hwnd_message_handler_delegate.h
+++ b/ui/views/win/hwnd_message_handler_delegate.h
@@ -255,6 +255,10 @@ class VIEWS_EXPORT HWNDMessageHandlerDelegate {

View File

@@ -14,10 +14,10 @@ track down the source of this problem & figure out if we can fix it
by changing something in Electron.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 6010d9f9fc9bfeffb3e5a64de7352b52a202cbf7..4325cdfd256ae7a1008e073d42da995b82df5bba 100644
index 459fc0eff0bfe2ec005d6f34cf7e91c2d601fd06..35de681eac3f65ce3e0435bd984159154ece2b7f 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4980,7 +4980,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -5051,7 +5051,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
: IsGuest();
// While some guest types do not have a guest SiteInstance, the ones that
// don't all override WebContents creation above.

View File

@@ -14,10 +14,10 @@ This change patches it out to prevent the DCHECK.
It can be removed once/if we see a better solution to the problem.
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc
index adaa1cd426c138972b088d0d0093b0e1653af231..be4684c94ba2214255c5dbe9cdcf1ea316c60c06 100644
index 4007e92316a6ac59145fa9bc021904fd1b3b0136..afedeaea7fd419f3374ffeebb7ee931219a90f93 100644
--- a/content/browser/site_instance_impl.cc
+++ b/content/browser/site_instance_impl.cc
@@ -229,7 +229,7 @@ scoped_refptr<SiteInstanceImpl> SiteInstanceImpl::CreateForGuest(
@@ -226,7 +226,7 @@ scoped_refptr<SiteInstanceImpl> SiteInstanceImpl::CreateForGuest(
BrowserContext* browser_context,
const StoragePartitionConfig& partition_config) {
DCHECK(browser_context);

View File

@@ -9,7 +9,7 @@ Electron does not support Profiles, so this Profile::FromBrowserContext()
call is not needed and will not link. This change patches it out.
diff --git a/chrome/browser/pdf/chrome_pdf_stream_delegate.cc b/chrome/browser/pdf/chrome_pdf_stream_delegate.cc
index 9774ed3e55c0d78f21bb0cb0b2607cc07eaf78e0..f58c3946130fa469f2775d8bae773e5bbfc71a96 100644
index e3b9f14a4cf2167064ce6716053e663adffa1542..65f13a4607c8145858fd47d81cb9960c44272d79 100644
--- a/chrome/browser/pdf/chrome_pdf_stream_delegate.cc
+++ b/chrome/browser/pdf/chrome_pdf_stream_delegate.cc
@@ -45,6 +45,7 @@ namespace {

View File

@@ -80,10 +80,10 @@ index 4fd8dff1089cd6afa6a66dc185734d7671657281..0a1f4268ea771a3d5d4a2668928c6e5d
content::WebContents* source,
const content::OpenURLParams& params,
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 8232c0081baaeb3df9f2f6224f8fe31a2dcb1d5b..081c01bc00dfdef66c23a9ef640ed159f4f7557b 100644
index de3f9f56b47628e1104b5f64b3c17cc35e10bfc7..3a19c28386fd3a0b8755a06510895c685f2c0cdb 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -2264,12 +2264,11 @@ bool Browser::IsWebContentsCreationOverridden(
@@ -2327,12 +2327,11 @@ bool Browser::IsWebContentsCreationOverridden(
content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type,
const GURL& opener_url,
@@ -99,10 +99,10 @@ index 8232c0081baaeb3df9f2f6224f8fe31a2dcb1d5b..081c01bc00dfdef66c23a9ef640ed159
WebContents* Browser::CreateCustomWebContents(
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
index 7a61c64db93db7f3b31b8d39897257a6315383c2..7db684020fbaf7061ed61a8b1cefba8c757f2fe5 100644
index 0bcb2fc072e47c2c259b724209b4814486329fe1..db674988cf87f198ed1af7e0f4def24776fbaa89 100644
--- a/chrome/browser/ui/browser.h
+++ b/chrome/browser/ui/browser.h
@@ -981,8 +981,7 @@ class Browser : public TabStripModelObserver,
@@ -1027,8 +1027,7 @@ class Browser : public TabStripModelObserver,
content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type,
const GURL& opener_url,
@@ -218,10 +218,10 @@ index c6838c83ef971b88769b1f3fba8095025ae25464..2da6a4e08340e72ba7de5d03444c2f17
content::WebContents* AddNewContents(
content::WebContents* source,
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 952fd20f71560acd89c74f08e9d8cdbf34fb5a1a..59b05937ceb1b81b69d913f587150021b9031106 100644
index c1c3db2992038cad0c01ce65c57676f8fe281830..2ad1479de622d956c701d8dc4adb75d0114f65b1 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4943,8 +4943,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -5014,8 +5014,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
// TODO(crbug.com/40202416): Support a way for MPArch guests to support this.
if (delegate_ && delegate_->IsWebContentsCreationOverridden(
source_site_instance, params.window_container_type,
@@ -232,7 +232,7 @@ index 952fd20f71560acd89c74f08e9d8cdbf34fb5a1a..59b05937ceb1b81b69d913f587150021
static_cast<WebContentsImpl*>(delegate_->CreateCustomWebContents(
opener, source_site_instance, is_new_browsing_instance,
diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc
index f688e6d1e6c11f0dd80f498e6361fa822e8c2eb8..dc47ebfd61f16901b7f8e0e4c30c79eaf5d0710e 100644
index 97a3ea6f292563a41fd41f812ac72526a96d8471..b299dd5659100d317a3574e902bf2c29c5defd2c 100644
--- a/content/public/browser/web_contents_delegate.cc
+++ b/content/public/browser/web_contents_delegate.cc
@@ -159,8 +159,7 @@ bool WebContentsDelegate::IsWebContentsCreationOverridden(
@@ -246,10 +246,10 @@ index f688e6d1e6c11f0dd80f498e6361fa822e8c2eb8..dc47ebfd61f16901b7f8e0e4c30c79ea
}
diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
index 96cb58b1a88499cf8f78d748dc5a1cc1c6b6a128..8ff56b56da764c8af14c40babc529ee4cb089c7e 100644
index 8a18958035cc1dd26be558349f64f7727570c4ba..7d9c9b06bcc57ef5eb0a2ca74ee20632a1393f9e 100644
--- a/content/public/browser/web_contents_delegate.h
+++ b/content/public/browser/web_contents_delegate.h
@@ -354,8 +354,7 @@ class CONTENT_EXPORT WebContentsDelegate {
@@ -355,8 +355,7 @@ class CONTENT_EXPORT WebContentsDelegate {
SiteInstance* source_site_instance,
mojom::WindowContainerType window_container_type,
const GURL& opener_url,
@@ -260,7 +260,7 @@ index 96cb58b1a88499cf8f78d748dc5a1cc1c6b6a128..8ff56b56da764c8af14c40babc529ee4
// Allow delegate to creates a custom WebContents when
// WebContents::CreateNewWindow() is called. This function is only called
diff --git a/extensions/browser/guest_view/app_view/app_view_guest.cc b/extensions/browser/guest_view/app_view/app_view_guest.cc
index f8b00fec3f2786822b22c052051c524f766c059d..85a535d0b1e49619fec8c9f5c67896204c9fb164 100644
index 8d6fc67cb9b1d653bce64d1ba22aa7ec2d79257c..d5ce746373a1a4310e1eb530aee011a785e1d68c 100644
--- a/extensions/browser/guest_view/app_view/app_view_guest.cc
+++ b/extensions/browser/guest_view/app_view/app_view_guest.cc
@@ -153,8 +153,7 @@ bool AppViewGuest::IsWebContentsCreationOverridden(
@@ -274,7 +274,7 @@ index f8b00fec3f2786822b22c052051c524f766c059d..85a535d0b1e49619fec8c9f5c6789620
return true;
diff --git a/extensions/browser/guest_view/app_view/app_view_guest.h b/extensions/browser/guest_view/app_view/app_view_guest.h
index 136448c9df06b9704e95d2797a60907d7ec5170a..21cc7b08dd8f9e4a32d29dd35c42ec2ce9f6cd53 100644
index 775cfbf5adac0017f343bc091daee1b8883c75bb..dc97e5d60d3663ef7f7c78c28603f9e1c5aea4ff 100644
--- a/extensions/browser/guest_view/app_view/app_view_guest.h
+++ b/extensions/browser/guest_view/app_view/app_view_guest.h
@@ -10,6 +10,7 @@
@@ -324,7 +324,7 @@ index e39031afd8fff7cb6e278555cc58a48d86407d65..f67f6a5603c1fa9e66ccdde9b601df9a
content::RenderFrameHost* opener,
content::SiteInstance* source_site_instance,
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
index 16babdc7affdaef1af24850cf35494b8b4fe1479..1e77b091d94457c892788f7a441a83e7a96a49cc 100644
index 60de0d74ee40fedcbae96e5049e21dc238bf33bf..c568d4d08f772e1d381820bed826a0b64a631449 100644
--- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
+++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
@@ -452,8 +452,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden(
@@ -352,10 +352,10 @@ index 2dcf51f335f5dac39f431c3e0f56f8789f33d40b..2b433624d0604e0b9da5117b9e83cc15
content::RenderFrameHost* opener,
content::SiteInstance* source_site_instance,
diff --git a/fuchsia_web/webengine/browser/frame_impl.cc b/fuchsia_web/webengine/browser/frame_impl.cc
index 635050eedc20fb89608677bcebeb5f8187bd4b59..1220f377169f8209db39654b7ddbf1da52c017b7 100644
index c10903a8e7e5fb66a1b038eab9015658a93672df..5a3afdb8ababf6e465c6166ca6229af7b4d6941d 100644
--- a/fuchsia_web/webengine/browser/frame_impl.cc
+++ b/fuchsia_web/webengine/browser/frame_impl.cc
@@ -575,8 +575,7 @@ bool FrameImpl::IsWebContentsCreationOverridden(
@@ -576,8 +576,7 @@ bool FrameImpl::IsWebContentsCreationOverridden(
content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type,
const GURL& opener_url,
@@ -380,7 +380,7 @@ index 1012a909ef1fcae51c218ae519fe7e0db65ab087..127b1ae940bc9313aecb635e2b01bb6f
int opener_render_process_id,
int opener_render_frame_id,
diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc
index 62be493c74423875af45a92c98b2ffceb928189f..ec82d8e47bf0a33f832b8ca242f395fe59a1bbee 100644
index 7ca1e83ba1fd2dc5ea7c7ce644c3b7c54b9999f9..c1639653714d6973bcb5a0b37cb7028db8406742 100644
--- a/headless/lib/browser/headless_web_contents_impl.cc
+++ b/headless/lib/browser/headless_web_contents_impl.cc
@@ -206,8 +206,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate {
@@ -394,10 +394,10 @@ index 62be493c74423875af45a92c98b2ffceb928189f..ec82d8e47bf0a33f832b8ca242f395fe
->options()
->block_new_web_contents();
diff --git a/ui/views/controls/webview/web_dialog_view.cc b/ui/views/controls/webview/web_dialog_view.cc
index bf432db4ca8463f2451dc09d5ca484da1235634f..e144be74ce2d34f50d26d08d5bf206f7aa64c5d3 100644
index 250e7f524a9ab1cc6fda2bfefb3c78a8e971b625..55a0db02885a85e538d267402cfd0ac8ce52b921 100644
--- a/ui/views/controls/webview/web_dialog_view.cc
+++ b/ui/views/controls/webview/web_dialog_view.cc
@@ -487,8 +487,7 @@ bool WebDialogView::IsWebContentsCreationOverridden(
@@ -489,8 +489,7 @@ bool WebDialogView::IsWebContentsCreationOverridden(
content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type,
const GURL& opener_url,

View File

@@ -9,14 +9,15 @@ Electron when a session is non persistent we do not initialize the
ExtensionSystem, so this check is not relevant for Electron.
diff --git a/extensions/browser/script_injection_tracker.cc b/extensions/browser/script_injection_tracker.cc
index 8f590b9ebd02969f0c5d9f617852954a69f51afd..91c4a61525173d2cd95a8c2c626c1be5a84b003f 100644
index 172f02dbe9bb22425f8d45119b6d8466c949ba36..063015e14053f75544e6700c9251d6ecae95389c 100644
--- a/extensions/browser/script_injection_tracker.cc
+++ b/extensions/browser/script_injection_tracker.cc
@@ -176,7 +176,6 @@ std::vector<const UserScript*> GetLoadedDynamicScripts(
UserScriptManager* manager =
ExtensionSystem::Get(process.GetBrowserContext())->user_script_manager();
@@ -178,7 +178,7 @@ std::vector<const UserScript*> GetLoadedDynamicScripts(
if (!manager) {
- CHECK_IS_TEST();
// TODO(crbug.com/412829476): Remove this guard once we enable
// UserScriptManager on desktop Android.
-#if BUILDFLAG(ENABLE_EXTENSIONS)
+#if 0
CHECK_IS_TEST();
#endif
return std::vector<const UserScript*>();
}

View File

@@ -39,10 +39,10 @@ index e87c180342b967756efeb701c73207fcee8754f1..42e37564e585987d367921568f0f1d2b
NOTREACHED();
}
diff --git a/ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_ozone.cc b/ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_ozone.cc
index c98ecc36007185052481b6479b2ba4608e326021..dd0e4553b78997beea0f11242eeb9f759359066f 100644
index b6985bd63a34c55154fcfae601add6ce6c451704..fb44cc65b1a15c8b69410a2a2cb925a0326bb438 100644
--- a/ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_ozone.cc
+++ b/ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_ozone.cc
@@ -111,7 +111,8 @@ bool GlobalAcceleratorListenerOzone::StartListeningForAccelerator(
@@ -147,7 +147,8 @@ bool GlobalAcceleratorListenerOzone::StartListeningForAccelerator(
const bool registered =
platform_global_shortcut_listener_->RegisterAccelerator(
accelerator.key_code(), accelerator.IsAltDown(),
@@ -52,7 +52,7 @@ index c98ecc36007185052481b6479b2ba4608e326021..dd0e4553b78997beea0f11242eeb9f75
if (registered) {
registered_hot_keys_.insert(accelerator);
}
@@ -126,14 +127,15 @@ void GlobalAcceleratorListenerOzone::StopListeningForAccelerator(
@@ -162,14 +163,15 @@ void GlobalAcceleratorListenerOzone::StopListeningForAccelerator(
platform_global_shortcut_listener_->UnregisterAccelerator(
accelerator.key_code(), accelerator.IsAltDown(), accelerator.IsCtrlDown(),
@@ -70,7 +70,7 @@ index c98ecc36007185052481b6479b2ba4608e326021..dd0e4553b78997beea0f11242eeb9f75
int modifiers = 0;
if (is_alt_down) {
modifiers |= ui::EF_ALT_DOWN;
@@ -144,6 +146,9 @@ void GlobalAcceleratorListenerOzone::OnKeyPressed(ui::KeyboardCode key_code,
@@ -180,6 +182,9 @@ void GlobalAcceleratorListenerOzone::OnKeyPressed(ui::KeyboardCode key_code,
if (is_shift_down) {
modifiers |= ui::EF_SHIFT_DOWN;
}

View File

@@ -116,10 +116,10 @@ index 42fe73aefe44f218d6a5e8cb1550ff48859c4b70..a1235f0c7ad44ae9c9fdc805af5b9dc5
arguments.push_back("--monitor-self");
}
diff --git a/components/crash/core/app/crashpad_win.cc b/components/crash/core/app/crashpad_win.cc
index 0e00d26f79231a01e88981b30ff950e427cd31f4..70f014c75031f9529501e102f97e0e1adadb8ffb 100644
index 5b811cbbc51544cbff7c2e99c3a7ced824990002..f2376d74fbd2c8196184035fc0fb24a0a8ebfe0e 100644
--- a/components/crash/core/app/crashpad_win.cc
+++ b/components/crash/core/app/crashpad_win.cc
@@ -92,6 +92,7 @@ bool PlatformCrashpadInitialization(
@@ -93,6 +93,7 @@ bool PlatformCrashpadInitialization(
std::map<std::string, std::string> process_annotations;
GetPlatformCrashpadAnnotations(&process_annotations);
@@ -127,7 +127,7 @@ index 0e00d26f79231a01e88981b30ff950e427cd31f4..70f014c75031f9529501e102f97e0e1a
std::string url = crash_reporter_client->GetUploadUrl();
@@ -129,6 +130,13 @@ bool PlatformCrashpadInitialization(
@@ -133,6 +134,13 @@ bool PlatformCrashpadInitialization(
std::vector<std::string> arguments(start_arguments);

View File

@@ -7,10 +7,10 @@ By default, chromium sets up one v8 snapshot to be used in all v8 contexts. This
to have a dedicated browser process v8 snapshot defined by the file `browser_v8_context_snapshot.bin`.
diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc
index 054f38d683280638c7ac618d2ff8f7aef1a0def0..6e9d8d9a043cf8b67e26f70b3a904abcfc3c1a61 100644
index d55c408557e15650897c9ed6d5b6bd83178a551f..f1c54919990af204004380b0d84ee750de5e3c35 100644
--- a/content/app/content_main_runner_impl.cc
+++ b/content/app/content_main_runner_impl.cc
@@ -271,8 +271,13 @@ void AsanProcessInfoCB(const char*, bool*) {
@@ -275,8 +275,13 @@ void AsanProcessInfoCB(const char*, bool*) {
}
#endif // defined(ADDRESS_SANITIZER)
@@ -25,7 +25,7 @@ index 054f38d683280638c7ac618d2ff8f7aef1a0def0..6e9d8d9a043cf8b67e26f70b3a904abc
#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
base::FileDescriptorStore& file_descriptor_store =
base::FileDescriptorStore::GetInstance();
@@ -301,11 +306,12 @@ bool ShouldLoadV8Snapshot(const base::CommandLine& command_line,
@@ -305,11 +310,12 @@ bool ShouldLoadV8Snapshot(const base::CommandLine& command_line,
#endif // V8_USE_EXTERNAL_STARTUP_DATA
@@ -40,7 +40,7 @@ index 054f38d683280638c7ac618d2ff8f7aef1a0def0..6e9d8d9a043cf8b67e26f70b3a904abc
#endif // V8_USE_EXTERNAL_STARTUP_DATA
}
@@ -978,7 +984,7 @@ int ContentMainRunnerImpl::Initialize(ContentMainParams params) {
@@ -1005,7 +1011,7 @@ int ContentMainRunnerImpl::Initialize(ContentMainParams params) {
return TerminateForFatalInitializationError();
#endif // BUILDFLAG(IS_ANDROID) && (ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_FILE)
@@ -50,19 +50,18 @@ index 054f38d683280638c7ac618d2ff8f7aef1a0def0..6e9d8d9a043cf8b67e26f70b3a904abc
blink::TrialTokenValidator::SetOriginTrialPolicyGetter(
base::BindRepeating([]() -> blink::OriginTrialPolicy* {
diff --git a/content/public/app/content_main_delegate.cc b/content/public/app/content_main_delegate.cc
index 8194fc8b036482eedb162ff92bb82165cdf3c8d0..f038620516d7783170bc82b3b14dde4e01f3975d 100644
index 8b02f553e2fc29da88c3e14c05a7ee82210eab51..14f2e66d5ecda6e860724a3ab946eaaffba33d6d 100644
--- a/content/public/app/content_main_delegate.cc
+++ b/content/public/app/content_main_delegate.cc
@@ -4,6 +4,8 @@
@@ -5,6 +5,7 @@
#include "content/public/app/content_main_delegate.h"
#include <variant>
+#include <string_view>
+
#include "base/check.h"
#include "base/notreached.h"
#include "build/build_config.h"
@@ -72,6 +74,10 @@ std::optional<int> ContentMainDelegate::PostEarlyInitialization(
@@ -74,6 +75,10 @@ std::optional<int> ContentMainDelegate::PostEarlyInitialization(
return std::nullopt;
}
@@ -74,13 +73,13 @@ index 8194fc8b036482eedb162ff92bb82165cdf3c8d0..f038620516d7783170bc82b3b14dde4e
return new ContentClient();
}
diff --git a/content/public/app/content_main_delegate.h b/content/public/app/content_main_delegate.h
index 801bfd401ea4a8e72417d88efaa718cc6fb60883..663fec68d0c2855cdf83bb259b85c22910a67464 100644
index db611d99a6c0f18f39967b38791822fda7d175b5..cc150475de655d5ef20a107ae3ef80c08af8c7fb 100644
--- a/content/public/app/content_main_delegate.h
+++ b/content/public/app/content_main_delegate.h
@@ -8,6 +8,7 @@
#include <memory>
@@ -9,6 +9,7 @@
#include <optional>
#include <string>
#include <variant>
+#include <string_view>
#include <vector>
@@ -95,10 +94,10 @@ index 801bfd401ea4a8e72417d88efaa718cc6fb60883..663fec68d0c2855cdf83bb259b85c229
friend class ContentClientCreator;
friend class ContentClientInitializer;
diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc
index 578e200a88d89b356e991b3317ff1e71f25ff75e..ae49b7b5e830a7127812219df1c8888b7ba4b348 100644
index 11cafc3e1588cce52b76cc2f09f66b3e451fb087..e07bdaeccecc8015462e35d5cf4606335e2e962c 100644
--- a/gin/v8_initializer.cc
+++ b/gin/v8_initializer.cc
@@ -672,8 +672,7 @@ void V8Initializer::GetV8ExternalSnapshotData(const char** snapshot_data_out,
@@ -660,8 +660,7 @@ void V8Initializer::GetV8ExternalSnapshotData(const char** snapshot_data_out,
#if defined(V8_USE_EXTERNAL_STARTUP_DATA)
@@ -108,7 +107,7 @@ index 578e200a88d89b356e991b3317ff1e71f25ff75e..ae49b7b5e830a7127812219df1c8888b
if (g_mapped_snapshot) {
// TODO(crbug.com/40558459): Confirm not loading different type of snapshot
// files in a process.
@@ -682,10 +681,17 @@ void V8Initializer::LoadV8Snapshot(V8SnapshotFileType snapshot_file_type) {
@@ -670,10 +669,17 @@ void V8Initializer::LoadV8Snapshot(V8SnapshotFileType snapshot_file_type) {
base::MemoryMappedFile::Region file_region;
base::File file =

View File

@@ -8,10 +8,10 @@ Allow registering custom protocols to handle service worker main script fetching
Refs https://bugs.chromium.org/p/chromium/issues/detail?id=996511
diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc
index ff25eb3670d2391c6fb41b7c612c30ee8798983f..116763b520713a5c61462b2e048a7358486831a2 100644
index b4c984e0dd22f148a426ce0ea04988798ed95aaa..5fd099b6396fc51d29fce2843531d5fc89642d35 100644
--- a/content/browser/service_worker/service_worker_context_wrapper.cc
+++ b/content/browser/service_worker/service_worker_context_wrapper.cc
@@ -1969,6 +1969,26 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
@@ -1961,6 +1961,26 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
loader_factory_bundle_info =
context()->loader_factory_bundle_for_update_check()->Clone();
@@ -38,7 +38,7 @@ index ff25eb3670d2391c6fb41b7c612c30ee8798983f..116763b520713a5c61462b2e048a7358
if (auto* config = content::WebUIConfigMap::GetInstance().GetConfig(
browser_context(), scope)) {
// If this is a Service Worker for a WebUI, the WebUI's URLDataSource
@@ -1988,9 +2008,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
@@ -1980,9 +2000,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
features::kEnableServiceWorkersForChromeScheme) &&
scope.scheme_piece() == kChromeUIScheme) {
config->RegisterURLDataSource(browser_context());
@@ -49,7 +49,7 @@ index ff25eb3670d2391c6fb41b7c612c30ee8798983f..116763b520713a5c61462b2e048a7358
.emplace(kChromeUIScheme, CreateWebUIServiceWorkerLoaderFactory(
browser_context(), kChromeUIScheme,
base::flat_set<std::string>()));
@@ -1998,9 +2016,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
@@ -1990,9 +2008,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
features::kEnableServiceWorkersForChromeUntrusted) &&
scope.scheme_piece() == kChromeUIUntrustedScheme) {
config->RegisterURLDataSource(browser_context());

View File

@@ -6,7 +6,7 @@ Subject: fix: disabling compositor recycling
Compositor recycling is useful for Chrome because there can be many tabs and spinning up a compositor for each one would be costly. In practice, Chrome uses the parent compositor code path of browser_compositor_view_mac.mm; the NSView of each tab is detached when it's hidden and attached when it's shown. For Electron, there is no parent compositor, so we're forced into the "own compositor" code path, which seems to be non-optimal and pretty ruthless in terms of the release of resources. Electron has no real concept of multiple tabs per window, so it should be okay to disable this ruthless recycling altogether in Electron.
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index 71db145609652dbbe733dbc96d2630b686f6c8c9..6aa0fd5422ee0057acc3e5c423ca2847a4ebb17e 100644
index 88a6090a49da6071fded348a901c7c62b647b503..cf6f80bd3c9af0be5065e75e09a1b4150aeab0c8 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -560,7 +560,11 @@

View File

@@ -15,10 +15,10 @@ at some point be an API to "unfreeze" the flags, or we may be able to refactor
node initialization to not update flags after V8 initialization.
diff --git a/content/renderer/render_process_impl.cc b/content/renderer/render_process_impl.cc
index eb11068e932b7b94cbf215d6f84ae427ce77fcd5..9744e45974af215bfbe9e5feb2db7274f8efebf0 100644
index 7a20f5199bd6cb5d13f31ec5db3e3cc03821bc3a..22167f808cb7b27d5b2a8e517cdeee63205ab9ad 100644
--- a/content/renderer/render_process_impl.cc
+++ b/content/renderer/render_process_impl.cc
@@ -208,6 +208,9 @@ RenderProcessImpl::RenderProcessImpl()
@@ -212,6 +212,9 @@ RenderProcessImpl::RenderProcessImpl()
v8::V8::SetFlagsFromString(kSABPerContextFlag, sizeof(kSABPerContextFlag));
}

View File

@@ -6,10 +6,10 @@ Subject: disable_hidden.patch
Electron uses this to disable background throttling for hidden windows.
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index 22ffafd8f5e0f49d5c9df7ecd3f61dad3dfd2814..a409c64768968c81be3b6c7e7646f8df26e2afe6 100644
index b722e19e8c660d13750ea7bf505e28a9c1d9d59f..bac913e30ce140d9b370186781cccf5817885076 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -832,6 +832,10 @@ void RenderWidgetHostImpl::WasHidden() {
@@ -831,6 +831,10 @@ void RenderWidgetHostImpl::WasHidden() {
return;
}
@@ -21,10 +21,10 @@ index 22ffafd8f5e0f49d5c9df7ecd3f61dad3dfd2814..a409c64768968c81be3b6c7e7646f8df
// Prompts should remain open and functional across tab switches.
if (!delegate_ || !delegate_->IsWaitingForPointerLockPrompt(this)) {
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h
index c201cff9e5c3b286389a5eb74e1a9ebd86edfef9..949f6a7867758e35c24897add9a4d47a641357b2 100644
index c11b7183397d28c6db61969390d1d078261e4c47..5d92247f088942250fbb6bd1ff83ab1c2c7140f7 100644
--- a/content/browser/renderer_host/render_widget_host_impl.h
+++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -1012,6 +1012,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl
@@ -1013,6 +1013,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl
// Requests a commit and forced redraw in the renderer compositor.
void ForceRedrawForTesting();
@@ -35,7 +35,7 @@ index c201cff9e5c3b286389a5eb74e1a9ebd86edfef9..949f6a7867758e35c24897add9a4d47a
// |routing_id| must not be MSG_ROUTING_NONE.
// If this object outlives |delegate|, DetachDelegate() must be called when
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index 70f368ab0c59e7f495cb13094160d72f601e0938..19d2df47b0c929558ac8cfc208742dfef463a68b 100644
index 5867fc3e77326991f30d835d08d3cfafe2b6687c..d719b546b8c3c59003698b26dead065da7d76341 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -643,7 +643,7 @@ void RenderWidgetHostViewAura::HideImpl() {

Some files were not shown because too many files have changed in this diff Show More