* refactor: remove unnecessary downcast in MenuViews::PopupAt()
* refactor: pass a views::Widget as an arg to the ElectronDesktopWindowTreeHostLinux ctor
* refactor: pass a views::Widget as an arg to the ElectronDesktopNativeWidgetAura ctor
* refactor: pass a views::Widget as an arg to the ElectronDesktopWindowTreeHostWin ctor
* refactor: create desktop_window_tree_host_ in the ElectronDesktopNativeWidgetAura constructor
* fixup! refactor: create desktop_window_tree_host_ in the ElectronDesktopNativeWidgetAura constructor
fix: tyop
GTK >= 3.90.0 removed support for menuitem icons. When Electron is
built with GTK >= 3.90.0, our code builds these icons and then throws
them away unused. Instead, let's just not build them.
Our gtk_util::GdkPixbufFromSkBitmap utility uses BGRAToRGBA and is
expensive to call.
The GlobalMenuBar used to hold a raw_ptr reference to its NativeWindow;
but since it doesn't use it & only wants the gfx::AcceleratedWidget info,
let's remove the NativeWindowViews reference.
AFAICT, GlobalMenuBarX11::window_ has never been used
* refactor: use x11_util::IsX11() in BuildSubmenuFromModel()
* refactor: use x11_util::IsX11() in ElectronDesktopWindowTreeHostLinux::OnBoundsChanged()
* refactor: use skia_can_fall_back_to_x11 in x11_util::IsX11()
it is identical in practice to electron_can_call_x11 and does not require a Chromium patch
* chore: remove introduce_ozoneplatform_electron_can_call_x11_property.patch
* refactor: use ui::GetOzonePlatformId() to test for x11
Fixes https://github.com/electron/electron/issues/45990
We previously made a change in https://github.com/electron/electron/pull/45868
to fix content protection being lost on hide and re-show. However, this
cause a breaking change where protected windows were made opaque black
instead of being hidden as before. This overrides relevant methods in
ElectronDesktopWindowTreeHostWin to restore the previous behavior.
without regressing the original issue.
* refactor: use ValueOrDefault() in electron_api_web_contents.cc
* refactor: use ValueOrDefault() in electron_api_url_loader.cc
* refactor: use ValueOrDefault() in electron_download_manager_delegate.cc
* refactor: use ValueOrDefault() in electron_touch_bar.mm
* refactor: use ValueOrDefault() in electron_url_loader_factory.cc
* refactor: use ValueOrDefault() in electron_browser_context.cc
* refactor: use ValueOrDefault() in electron_touch_bar.mm
* refactor: use ValueOrDefault() in blink_converter.cc
* feat: add ValueOrDefault() to PersistentDictionary
* empty commit
* refactor: use ValueOrDefault() in blink_converter.cc
* refactor: inline the rectangle base::Value::Dict
* refactor: remove has_scroll temporary
---------
Co-authored-by: Deepak Mohan <hop2deep@gmail.com>
* 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>
* 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
* chore: bump chromium in DEPS to 137.0.7107.0
* chore: bump chromium in DEPS to 137.0.7109.0
* chore: bump chromium in DEPS to 137.0.7111.0
* chore: bump chromium in DEPS to 137.0.7113.0
* 6384240: Remove double-declaration for accessibility on macOS | 6384240
* 6422872: Remove unused includes in isolation_info_mojom_traits.h | 6422872
* chore: update patches
* 6400733: Avoid ipc_message_macros.h usage in some foo_param_traits_macros.h files | 6400733
* chore: update patches
* 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410
* chore: iwyu
* refactor: prefer value initialization over memset()
From the looks up upstream commits in base/, it looks like memset()
could trigger `-Wunsafe-buffer-usage` warnings soon?
Value initialization is more C++ish and less error-prone anyway,
due to memset()'s easily swappable parameters.
* refactor: NotifyIcon::InitIconData() returns a NOTIFYICONDATA
This follows F.20 in the C++ Core Guidelines and also removes the need
for memset()
* 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410
remove all uses of:
- strcmp()
* fixup! 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410
* 6433203: Add a PassKey to RegisterDeleteDelegateCallback(). | 6433203
* chore: bump chromium in DEPS to 137.0.7115.0
* 6387077: [PermissionOptions] Generalize PermissionRequestDescription | 6387077
* chore: update patches
* 6387077: [PermissionOptions] Generalize PermissionRequestDescription | 6387077
* fix: add pragma for MacSDK unsafe buffers | 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410
* chore: bump chromium in DEPS to 137.0.7117.0
* chore: update patches
* chore: update filesnames.libcxx.gni
* 6431756: Replace SetOwnedByWidget() bool arg with a PassKey. | 6431756
* 6387077: [PermissionOptions] Generalize PermissionRequestDescription | 6387077
* 6428345: Remove ExtensionService usage from ChromeExtensionRegistrarDelegate | 6428345
* 6384315: Migrate extensions_enabled from ExtensionService to Registrar | 6384315
* 6428749: [extensions] Refactor ExtensionService for AddNewAndUpdateExtension. | 6428749
* chore: bump chromium in DEPS to 137.0.7119.0
* 6440290: corner-shape: support inset shadow | 6440290
* 6429230: FSA: Move blocked paths to the PermissionContext class | 6429230
* chore: update patches
* chore: bump chromium in DEPS to 137.0.7121.0
* chore: update patches
* fix: partially revert 6443473: Remove ItemDelete from the Mac version of AppleKeychain | 6443473
* fix: update filenames.libcxx.gni
* chore: bump chromium in DEPS to 137.0.7123.0
* chore: update patches
* chore: "grandfather in" electron views too
Lock further access to View::set_owned_by_client() | 6448510
* chore: update feat_corner_smoothing_css_rule_and_blink_painting.patch
corner-shape: support inset shadow | 6440290
* refactor: grandfather in AutofillPopupView as a subclass of WidgetDelegateView
Add a PassKey for std::make_unique<WidgetDelegateView>() | 6442265
* Provide dbus appmenu information on Wayland | 6405535
* [extensions] Move OnExtensionInstalled out of ExtensionService. | 6443325
* refactor: grandfather in NativeWindowViews for delete callbacks
6433203: Add a PassKey to RegisterDeleteDelegateCallback(). | 6433203
* chore: merge the four "grandfather" patches into one
* [A11yPerformance] Remove IsAccessibilityAllowed() | 6404386: [A11yPerformance] Remove IsAccessibilityAllowed() | 6404386
NB: the changes here are copied from the upstream changes in
chrome/browser/ui/webui/accessibility/accessibility_ui.cc
* 6420753: [PermissionOptions] Use PermissionDescriptorPtr in PermissionController | 6420753
* 6429573: [accessibility] Move mode change out of AccessibilityNotificationWaiter | 6429573
* chore: e patches all
* 6419936: [win] Change ScreenWin public static methods to virtual | 6419936
* 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410
remove all uses of:
- fprintf()
- fputs()
- snprintf()
- vsnprintf()
* fix: size conversion FTBFS on Win
* 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410
remove all uses of:
- wcscpy_s()
* 6423410: Enable unsafe buffer warnings for chromium, try #3. | 6423410
remove all uses of:
- wcsncpy_s()
* chore: update mas_avoid_private_macos_api_usage.patch.patch
6394283: Remove double-declaration for accessibility on iOS | 6394283
Lots of context shear in this commit but the only interesting part is:
-+ return nullptr;
++ return {};
Which is needed because the return type is sometimes not a pointer.
* chore: e patches all
* chore: disable -Wmacro-redefined warning in electron_main_win.cc
* chore: bump chromium in DEPS to 137.0.7123.5
* refactor: patch electron PermissionTypes into blink
6387077: [PermissionOptions] Generalize PermissionRequestDescription | 6387077
* chore: e patches all
* chore: remove the box_painter_base.cc part of feat_corner_smoothing_css_rule_and_blink_painting.patch
as per code review @ https://github.com/electron/electron/pull/46482#pullrequestreview-2777338370
* test: enable window-smaller-than-64x64 test on Linux
* chore: bump chromium in DEPS to 137.0.7124.1
* chore: bump chromium in DEPS to 137.0.7125.1
* chore: bump chromium in DEPS to 137.0.7127.3
* 6459201: [Extensions] Remove ExtensionSystem::FinishDelayedInstallationIfReady() | 6459201
* 6454796: [Extensions] Move (most) registrar delayed install logic to //extensions | 6454796
* chore: bump chromium in DEPS to 137.0.7128.1
* chore: e patches all
* chore: node ./script/gen-libc++-filenames.js
* [views] Gate DesktopWindowTreeHostWin::window_enlargement_ behind flag
Refs 6428649
* feat: allow opt-out animated_content_sampler.
Refs 6438681
* Trigger CI
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* 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
* 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) | 6368856
* 6356528: Clean up LegacyRenderWidgetHostHWND code | 6356528
* chore: export patches
* 6339113: [Viewport Segments] Add CDP commands to override Viewport Segments without overriding other device properties. | 6339113
* 6352169: [DevTools][MultiInstance] Support new tab in another window on Android | 6352169
* 6368856: Migrate absl variant.h and utility.h in content (part 2/2) | 6368856
* 6360858:Clickiness: Wire response from URLLoader to DB, add e2e tests| 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 | 6361987
* chore: export patches
* chore: bump chromium in DEPS to 136.0.7087.0
* chore: export patches
* fix: include node patch for missing AtomicsWaitEvent
6385540
* build: add depot_tools python to path
* fix: cppgc init and unregistering v8 isolate
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
6298395
* fix: migrate content::BrowserAccessibilityState methods
64014376383275
* feat: enableHappyEyeballs option for host resolver
6332599
* fix: add new cookie exclusion reason
6343479
* fix: add new url loader method
6337340
* fix: add new cppgc header file for electron_node headers
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 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: 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: 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>
* 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.
* 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_
* 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()
* fix: Wayland resizing border
Closes https://github.com/electron/electron/issues/44543
Refs CL:5180720
Fixes an issue where the resizing border didn't work as expected on Wayland windows.
* fix: border insets when fullscreen
* perf: use base::SplitStringPiece() in SetNodeOptions()
* perf: use base::SplitStringPiece() in StringToAccelerator()
* refactor: StringToAccelerator() now takes a std::string_view
* chore: bump chromium in DEPS to 136.0.7052.0
* chore: update mas_avoid_private_macos_api_usage.patch.patch
6318359
patch applied manually due to context shear
* chore: update preconnect_manager.patch
Xref: 6318420
patch applied manually due to context shear
* chore: e patches all
* chore: bump chromium to 136.0.7053.1
* chore: update fix_remove_profiles_from_spellcheck_service.patch
Xref: 6326575
patch applied manually due to context shear
* chore: e patches all
* chore: revert removal of v8 API used by Node.js
* devtools: Remove DevToolsUIBindings::SendJsonRequest() | 6326236
* 6244461: Merge //content/common/user_agent.cc into //components/embedder_support:user_agent | 6244461
* 6313744: Migrate views::Background factory methods to ColorVariant | 6313744
* 6314545: Remove multiple argument support from base::ToString() | 6314545
* 6317362: [Extensions] Inline MessagingDelegate::CreateReceiverForTab() | 6317362
* 6308998: Add SettingAccess structured metrics event for DevTools | 6308998
* 6295214: Remove redundant state field in per-extension preferences | 6295214
NB: this change is copied from the upstream change to extensions/shell/browser/shell_extension_loader.cc
* fix: ui/ linter error
This is showing up in an eslint build step in Electron:
> /__w/electron/electron/src/out/Default/gen/ui/webui/resources/cr_elements/preprocessed/cr_menu_selector/cr_menu_selector.ts
> 77:23 error This assertion is unnecessary since the receiver accepts the original type of the expression @typescript-eslint/no-unnecessary-type-assertion
>
> ✖ 1 problem (1 error, 0 warnings)
> 1 error and 0 warnings potentially fixable with the `--fix` option.
However, removing the assertion causes a typescript build failure:
> gen/ui/webui/resources/cr_elements/preprocessed/cr_menu_selector/cr_menu_selector.ts:77:23 - error TS2345: Argument of type 'HTMLElement | null' is not assignable to parameter of type 'HTMLElement'.
> Type 'null' is not assignable to type 'HTMLElement'.
>
> 77 items.indexOf(this.querySelector<HTMLElement>(':focus'));
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
So I think the two different steps may be picking up typescript definitions.
This patch should be removed after the issue is tracked down
and fixed in a followup task.
* fix: -Wnonnull warning
Fixes this warning:
> 2025-03-07T01:05:01.8637705Z ../../third_party/electron_node/src/debug_utils.cc(257,12): error: null passed to a callee that requires a non-null argument [-Werror,-Wnonnull]
> 2025-03-07T01:05:01.8638267Z 257 | return nullptr;
> 2025-03-07T01:05:01.8638481Z | ^~~~~~~
> 2025-03-07T01:05:01.8638700Z 1 error generated.
Not sure why this warning was never triggered before; `git blame`
indicates this code hasn't changed in ages:
> c40a8273ef2 (Michaël Zasso 2024-05-10 09:50:20 +0200 255) #endif // DEBUG
> 8e2d33f1562 (Anna Henningsen 2018-06-07 16:54:29 +0200 256) }
> 247b5130595 (Refael Ackermann 2018-10-22 15:07:00 -0400 257) return nullptr;
> 247b5130595 (Refael Ackermann 2018-10-22 15:07:00 -0400 258) }
Presumably this is failing in this Chromium roll due to a
clang version bump.
We should remove this patch after upstreaming it.
* docs: add upstream pr link for Node patch
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>