* chore: bump chromium in DEPS to 139.0.7242.0
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
* chore: update render_widget_host_view_mac.patch
no code changes; just updating patch context
Do a cleanup pass on the history swiper code | https://chromium-review.googlesource.com/c/chromium/src/+/6604367
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: update mas_avoid_private_macos_api_usage.patch.patch
no code changes; just updating patch context
[tracing] Delete base/trace_event/base_tracing.h | https://chromium-review.googlesource.com/c/chromium/src/+/6624012
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: update chore_provide_iswebcontentscreationoverridden_with_full_params.patch
no manual changes; just updating patch context
[ActorFramework] Refactor Actor Task Management | https://chromium-review.googlesource.com/c/chromium/src/+/6618684
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: update fix_move_autopipsettingshelper_behind_branding_buildflag.patch
[pip] Tuck picture-in-picture windows when a file dialog is open | https://chromium-review.googlesource.com/c/chromium/src/+/6449682
Reland "[document pip] Restrict the size that a website can request" | https://chromium-review.googlesource.com/c/chromium/src/+/6372104
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: update feat_corner_smoothing_css_rule_and_blink_painting.patch
Xref: corner-shape: constraint radii based on opposite corner overlap | https://chromium-review.googlesource.com/c/chromium/src/+/6592572
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: update revert_code_health_clean_up_stale_macwebcontentsocclusion.patch
no manual changes; just updating patch context
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: update fix_rename_sqlite_win32_exports_to_avoid_conflicts_with_node_js.patch
no code changes; just updating patch context
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: e patches all
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* Plumb Verify2QwacBinding and hook it up in QwacWebContentsObserver
https://chromium-review.googlesource.com/c/chromium/src/+/6624719
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Remove host delegate OnMainFrameCreatedForBackgroundPage
https://chromium-review.googlesource.com/c/chromium/src/+/6631123
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Extensions: Rename GetResourceURL to ResolveExtensionURL
https://chromium-review.googlesource.com/c/chromium/src/+/6625053
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Consolidate NativeFrameViewMac
https://chromium-review.googlesource.com/c/chromium/src/+/6614239
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* ICWYU
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Remove dead code WidgetAXTreeIDMap
https://chromium-review.googlesource.com/c/chromium/src/+/6619701
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Reland "extensions: Add `WillPrepareForEvaluation` to setup MojoJS"
https://chromium-review.googlesource.com/c/chromium/src/+/6630056
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* NavigationThrottleRunner2: Remove MaybeAddThrottle
https://chromium-review.googlesource.com/c/chromium/src/+/6628079
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Tuck picture-in-picture windows when a file dialog is open
https://chromium-review.googlesource.com/c/chromium/src/+/6449682
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* build: fix snapshot_blob.bin build error
xref: https://issues.chromium.org/issues/416540976
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* chore: e patches all
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* build: freeup disk space on macos
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* chore: bump chromium in DEPS to 139.0.7244.0
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
* chore: update printing.patch
no manual changes; just updating patch context
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: remove upstreamed ignore_parse_errors_for_resolveshortcutproperties.patch
Prevent Windows crash on unexpected shortcut type | https://chromium-review.googlesource.com/c/chromium/src/+/6633298
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: e patches all
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* Revert "Reland "extensions: Add `WillPrepareForEvaluation` to setup MojoJS""
This reverts commit 77c4f967a637f7e8970114f91311f9fddede0f7c.
Revert CL for the high confidence crash culprit for http://crash/28f897bb9743dfe0 | https://chromium-review.googlesource.com/c/chromium/src/+/6641819
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* Fix spec's expected base64-encoded PNG strings to match upstream changes.
[rust png] Enable by default. | https://chromium-review.googlesource.com/c/chromium/src/+/6085801
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: bump chromium in DEPS to 139.0.7246.0
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
* chore: e patches all
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: bump chromium in DEPS to 139.0.7248.0
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
* chore: update patches
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* siso: Enable Siso by default for non-Google builds
https://chromium-review.googlesource.com/c/chromium/src/+/6638830
Disabling for now until we are ready to build siso on all platforms.
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Revert "revert Don't use static variable for UseExternalPopupMenus"
This reverts commit e91e3894e6c34cc0ffe69ed45417c0ebec882fb1.
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Update mac_sdk_min to match minimum required SDK version
https://chromium-review.googlesource.com/c/chromium/src/+/6493969
(cherry picked from commit 3e7cbe912d8fe1062d68ed06968aaee22013985f)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Use default window styling on Mac
https://chromium-review.googlesource.com/c/chromium/src/+/6648665
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Reland "Force the unintentional renderer process creation check by default"
https://chromium-review.googlesource.com/c/chromium/src/+/6626905
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* fixup: Reland "Force the unintentional renderer process creation check by default
https://chromium-review.googlesource.com/c/chromium/src/+/6626905
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* chore: bump chromium in DEPS to 139.0.7249.0
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
* fixup: Reland "Force the unintentional renderer process creation check by default
https://chromium-review.googlesource.com/c/chromium/src/+/6626905
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* chore: update patches
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* chore: bump chromium in DEPS to 139.0.7250.0
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
* chore: bump chromium in DEPS to 139.0.7252.0
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
* chore: bump chromium in DEPS to 139.0.7254.0
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
* 6638187: browser level TOCTOU check for coordinate target
https://chromium-review.googlesource.com/c/chromium/src/+/6638187
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* chore: fixup patch indices
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* chore: add missing base/notimplemented includes
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* 6652910: [Frame Cleanup] Push down/hide implementation-specific API
https://chromium-review.googlesource.com/c/chromium/src/+/6652910
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* chore: bump chromium in DEPS to 139.0.7256.0
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
* chore: fix lint
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* fixup! 6652910: [Frame Cleanup] Push down/hide implementation-specific API
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* fix: move HandleScope location
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* chore: bump chromium in DEPS to 139.0.7258.0
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
* fixup! [NonClientFrameView] Consolidate NativeFrameViewMac
Co-authored-by: deepak1556 <hop2deep@gmail.com>
* Revert "chore: bump chromium in DEPS to 139.0.7258.0"
This reverts commit 264b2e934f4b2705c47d9761010052b95d9dd5de.
Co-authored-by: deepak1556 <hop2deep@gmail.com>
* chore: update patches
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: patchup[bot] <73610968+patchup[bot]@users.noreply.github.com>
* refactor: make NativeWindow::is_modal_ const
* refactor: make NativeWindow::title_bar_style_ const and private
* refactor: make NativeWindow::has_client_frame() protected
refactor: make NativeWindow::transparent() protected
* refactor: make NativeWindow::enable_larger_than_screen() protected
* refactor: make NativeWindow::has_frame_ const
* fixup! refactor: make NativeWindow::has_client_frame() protected
fix: GetExpandedWindowSize()
* feat: enable innerWidth and innerHeight for window open
* update comment for added special innerWidth and innerHeight
* update 100 min spec requirement handling
* update testing to include getContentSize
* update macOS min requirement handling
* adjust refactored consts
* update const values from nativewindowviews
* feat: add gin_helper::Dictionary::ValueOrDefault()
A convenience function for using a default value if the
specified key isn't present in the dictionary.
* refactor: use ValueOrDefault() in native_window.cc
* refactor: use ValueOrDefault() in native_window_mac.mm
* refactor: use ValueOrDefault() in native_window_views.cc
* refactor: use ValueOrDefault() in electron_api_native_image.cc
* refactor: add EmitDeprecationWarning helper
Also switches EmitWarning to using Node's ProcessEmitWarningGeneric
* chore: use node namespace for function call
* 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
* 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
* fix: close quick look during tests on macOS
* use longer delay 🤷
* fix: sharedPreviewPanel being recreated on close
* test: ensure preview panel gets closed
When using `views::WebView` on macOS `NativeWidgetMacNSWindowHost`
contains a layer and compositor responsible for drawing web contents.
To trigger drawing `NativeWidgetMacNSWindowHost::OnVisibilityChanged`
needs to be called and `[NSWindow orderFrontRegardless]` does not trigger
`[NSWindow orderWindow:relativeTo:]` which can change
`NativeWidgetMacNSWindowHost` visiblity with stack:
```
views::NativeWidgetMacNSWindowHost::OnVisibilityChanged(bool)
remote_cocoa::NativeWidgetNSWindowBridge::OnVisibilityChanged()
-[ViewsNSWindowDelegate onWindowOrderChanged:]
-[NativeWidgetMacNSWindow orderWindow:relativeTo:]
```
`views::Widget` has method for showing inactive window:
`views::Widget::ShowInactive` which triggers
`NativeWidgetMacNSWindowHost::OnVisibilityChanged` with stack:
```
views::NativeWidgetMacNSWindowHost::OnVisibilityChanged(bool)
remote_cocoa::NativeWidgetNSWindowBridge::SetVisibilityState(remote_cocoa::mojom::WindowVisibilityState)
views::NativeWidgetMacNSWindowHost::SetVisibilityState(remote_cocoa::mojom::WindowVisibilityState)
views::NativeWidgetMac::Show(ui::mojom::WindowShowState, gfx::Rect const&)
views::Widget::ShowInactive() + 168
```
However this call seems to be insufficient to bring window to front,
therefore `[NSWindow orderFrontRegardless]` still needs to be called.
Calling `views::Widget::ShowInactive` ensures that all logic related to
showing Chromium widget will be properly executed, but onfortunately it
does not call `[NSWindow orderWindow:relativeTo:]` which is used to
disabling headless mode by the `ElectronNSWindow`, therefore we need to
trigger it manually through exposed `[ElectronNSWindow disableHeadlessMode]`.
Fixes: #45415
* refactor: remove InspectableWebContentsViewMac in favor of the Views version
* cherry-pick: refactor: remove InspectableWebContentsViewMac in favor of the Views version (#41326)
commit e67ab9a93d
Confilcts not resolved, except removal of the files removed
by the original commit.
* resolved conflicts and build issues after cherry-pick
* cherry-picked: fix: add method allowing to disable headless mode in native widget
https://github.com/electron/electron/pull/42996
fixing
https://github.com/electron/electron/issues/42995
* fix: displaying select popup in window created as fullscreen window
`constrainFrameRect:toScreen:` is not being call for windows created
with `fullscreen: true` therefore `headless` mode was not being removed
and `RenderWidgetHostNSViewBridge::DisplayPopupMenu` ignored displaying
popup.
Issue could be fixed by placing additional removal of `headless` mode
in the `toggleFullScreen:`, but `orderWindow:relativeTo:` is called
both for a regular and a fullscreen window, therefore there will be
a single place fixing both cases.
Because `electron::NativeWindowMac` lifetime may be shorter than
`ElectronNSWindow` on which macOS may execute `orderWindow:relativeTo:`
we need to clear `shell_` when `NativeWindow` is being closed.
Fixes#43010.
* fix: Content visibility when using `vibrancy`
We need to put `NSVisualEffectView` before `ViewsCompositorSuperview`
otherwise when using `vibrancy` in `BrowserWindow` `NSVisualEffectView`
will hide content displayed by the compositor.
Fixes#43003Fixes#42336
In fact main issues reported in these tickets were not present after
cherry-picking original refactor switching to `views::WebView`, so
text could be selected and click event was properly generated. However
both issues testcases were using `vibrancy` and actual content was
invisible, because it was covered by the `NSVisualEffectView`.
* fix: EXCEPTION_ACCESS_VIOLATION crash on BrowserWindow.destroy()
Restored postponed deletion of the `NativeWindow`.
Restoration caused `DCHECK(new_parent_ui_layer->GetCompositor());` failure
in `BrowserCompositorMac::SetParentUiLayer` after the spec test:
`chrome extensions chrome.webRequest does not take precedence over Electron webRequest - http`
with stack:
```
7 Electron Framework 0x000000011fe07830 content::BrowserCompositorMac::SetParentUiLayer(ui::Layer*) + 628
8 Electron Framework 0x000000011fe0c154 content::RenderWidgetHostViewMac::SetParentUiLayer(ui::Layer*) + 220
9 Electron Framework 0x000000011fe226a8 content::WebContentsViewMac::CreateViewForWidget(content::RenderWidgetHost*) + 600
10 Electron Framework 0x000000011fd37e4c content::WebContentsImpl::CreateRenderWidgetHostViewForRenderManager(content::RenderViewHost*) + 164
11 Electron Framework 0x000000011fb32278 content::RenderFrameHostManager::CreateSpeculativeRenderFrame(content::SiteInstanceImpl*, bool, scoped_refptr<content::BrowsingContextState> const&) + 816
12 Electron Framework 0x000000011fb2ab8c content::RenderFrameHostManager::CreateSpeculativeRenderFrameHost(content::SiteInstanceImpl*, content::SiteInstanceImpl*, bool) + 1308
13 Electron Framework 0x000000011fb28598 content::RenderFrameHostManager::GetFrameHostForNavigation(content::NavigationRequest*, content::BrowsingContextGroupSwap*, std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>>*) + 1796
14 Electron Framework 0x000000011fa78660 content::NavigationRequest::SelectFrameHostForOnRequestFailedInternal(bool, bool, std::__Cr::optional<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>>> const&) + 280
15 Electron Framework 0x000000011fa6a994 content::NavigationRequest::OnRequestFailedInternal(network::URLLoaderCompletionStatus const&, bool, std::__Cr::optional<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>>> const&, bo
+ 1008
16 Electron Framework 0x000000011fa7772c content::NavigationRequest::OnRequestFailed(network::URLLoaderCompletionStatus const&) + 72
17 Electron Framework 0x000000011f8554ac content::NavigationURLLoaderImpl::NotifyRequestFailed(network::URLLoaderCompletionStatus const&) + 248
```
This was probably the reason of removing `NativeWindow` immediately
in order to cleanup `views_host_` in `WebContentsViewMac` to prevent
using layer without compositor in `WebContentsViewMac::CreateViewForWidget`.
`[ElectronNSWindowDelegate windowWillClose:]` is deleting window host
and the compositor used by the `NativeWindow` therefore detach `NativeWindow`
contents from parent. This will clear `views_host_` and prevent failing
mentioned `DCHECK`.
Fixes#42975
* chore: Applied review suggestions
* refactor: directly cleanup shell
---------
Co-authored-by: Samuel Maddock <smaddock@slack-corp.com>
* fix: handle failing to enter/exit fullscreen on macOS
On macOS, failing to enter/exit fullscreen can fail. If this happens,
properly restore the original window state.
* refactor: remove fail to exit fullscreen handlers
Seem to be unnecessary since the window exits fullscreen anyway.
* fix: vibrant view is inserted into Views API hierarchy (#42263)
* Update shell/browser/native_window_mac.mm
Co-authored-by: Charles Kerr <charles@charleskerr.com>
---------
Co-authored-by: Hans Halverson <hans_halverson@alumni.brown.edu>
Co-authored-by: Charles Kerr <charles@charleskerr.com>