* 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
Co-authored-by: Michał Pichliński <michal.pichlinski@here.io>
* refactor: directly cleanup shell
Co-authored-by: Samuel Maddock <smaddock@slack-corp.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Michał Pichliński <michal.pichlinski@here.io>
Co-authored-by: Samuel Maddock <smaddock@slack-corp.com>
* refactor: more return-braced-init-list, this time for v8 and gin objects
* refactor: more return-braced-init-list, this time for v8, gin, std, and base objects
* feat: add View#setBorderRadius
test: initial setBorderRadius tests
fix: robustly set border radius
chore: add PAUSE_CAPTURE_TESTS for easier screencap dev
feat: add view border radius support
test: view border radius
refactor: cleanup view code
* maybe delay capture to fix tests?
* refactor: retry screen captures in an attempt to fix flakiness
* refactor: ScreenCapture constructor no longer async
* increase screen capture timeout, feels a little short
* refactor: move rounded rect util into chromium_src
* skip some capture tests on mas
* chore: bump chromium in DEPS to 99.0.4819.0
* chore: update patches
* chore: bump chromium in DEPS to 99.0.4824.0
* chore: update patches
* chore: bump chromium in DEPS to 99.0.4827.0
* chore: update patches
* 3352511: PiP: Add inkdrop and pointer cursor to PiP window buttons
3352511
* 3309164: webhid: Show FIDO devices in the chooser if allowed
3309164
* 3297868: hid: Add experimental HIDDevice.forget()
3297868
* 3362491: [Extensions] Move i18n API to //extensions
3362491
* MCC Refactor step0: Allow embedders to register associated_interface binders with RenderFrameHostImpl::associated_registry_.
3281481
* 3352616: [Gtk] Remove libgtk from the link-line
3352616
* 3249211: Clear-Site-Data support for partitioned cookies
3249211
* [Extensions][COIL] Use [allow|block]list in //extensions/common
3372668
* Begin ScopedUserPrefUpdate migration to modern base::Value
3376154
* [Code Health] Refactor PrefService GetDict + GetList to use base::Value
3343526
* 3354997: [CodeHealth] Remove deprecated SetDictionary method
3354997
* 3287323: Add LacrosPrefStore for lacros settings
3287323
* 3365916: [PA] Clean up remaining lazy commit code
3365916
* [MPArch] Target the external protocol error at the responsible frame.
3011560
* Pass origin to RegisterNonNetworkSubresourceURLLoaderFactories
3350608
* Linux: Send OSCrypt raw encryption key to the Network Service
3320484
* [PlzServiceWorker] Remove remaining references to PlzServiceWorker.
3359441
* chore: fixup for lint
* 3327621: Fix tablet mode detection for Win 11.
3327621
* 3342428: ax_mac: move AXTextMarker conversion utils under ui umbrella
3342428
* 3353974: Mac: Use base::Feature for overlay features
3353974
* chore: bump chromium in DEPS to 99.0.4828.0
* chore: update patches
* chore: bump chromium in DEPS to 99.0.4837.0
* chore: update patches
* chore: update patches
* 3379142: Drop FALLTHROUGH macro
Ref: 3379142
* 3381749: C++17: Allow use of std::map::try_emplace and std::map::insert_or_assign
Ref: 3381749
* chore: bump chromium in DEPS to 99.0.4839.0
* chore: update patches
* chore: bump chromium in DEPS to 99.0.4840.0
* chore: bump chromium in DEPS to 99.0.4844.0
* 3395881: [api] Deprecate Local<v8::Context> v8::Object::CreationContext()
Ref: 3395881
* chore: update patches
* chore: bump chromium in DEPS to 100.0.4845.0
* chore: update patches
* chore: bump chromium in DEPS to 100.0.4847.0
* chore: update patches
* chore: bump chromium in DEPS to 100.0.4849.0
* chore: update patches
* chore: bump chromium in DEPS to 100.0.4851.0
* chore: bump chromium in DEPS to 100.0.4853.0
* update patches
* chore: update patches
* update patches
* 3383599: Fonts Access: Remove prototype that uses a font picker.
3383599
* 3404768: Remove ALLOW_UNUSED macros
3404768
* 3374762: Remove ignore_result.h
3374762
* 3399305: [unseasoned-pdf] Apply proper frame offsets for touch selections
3399305
* 3402210: [Extensions] Don't trigger unload event for already unloaded extension
3402210
* 3410912: Combine URLLoaderClient OnReceiveResponse and OnStartLoadingResponseBody.
3410912
* 3370428: Make the AuthSchemes policy support dynamic refresh
3370428
* 3407603: Finish ScopedUserPrefUpdate migration to modern base::Value
3407603
* 3378352: ozone/x11: move code from //ui/p/x11 to //ui/ozone/p/x11
3378352
* 3370810: Delete chrome/service, AKA the Cloud Print service process.
3370810
* chore: bump chromium in DEPS to 100.0.4855.0
* chore: update patches
* fixup! 3370810: Delete chrome/service, AKA the Cloud Print service process.
* revert 3348007 to fix windows build
* 3318572: [Code health] Fix gn check errors in //extensions/browser:*
3318572
* fix printing.patch
* fix iwyu issue
* 3408515: win: Make ShorcutOperation an enum class and modernize names
3408515
* 3388333: [UIA] Remove dead code accessibility_misc_utils.h/cc
3388333
* fix windows build? i hope
* patch gn visibility of //ui/ozone/platform/x11
* missing include base/logging.h
* use BUILDFLAG for USE_NSS_CERTS
3379123
* defined(OS_*) ==> BUILDFLAG(IS_*)
https://bugs.chromium.org/p/chromium/issues/detail?id=1234043
* fixup! 3404768: Remove ALLOW_UNUSED macros
* another attempt to fix windows build
* temporarily disable the custom scheme service worker test
https://github.com/electron/electron/issues/32664
* fix loading mv3 extensions
not sure what cl broke this unfort.
* fixup! 3404768: Remove ALLOW_UNUSED macros
* patch nan
3395880
* fix node test
* fix nullptr in FindPdfFrame
* patch perfetto to fix build issue on win-ia32
bc44c3c753
* fix build for linux-x64-testing-no-run-as-node
* fix patch
* skip <webview>.capturePage() test
https://github.com/electron/electron/issues/32705
* test: fix failing tests of focus/blur events of WebContents (#32711)
* inherit stdio from app module test child processes
this prevents them from timing out due to full stdout buffers
* test to see if we can get better logs on windows ci
* try again for appveyor log things
* skip contentTracing tests on ia32
* ci: disable gpu compositing
* drop applied patch
* fix merge fail
* Revert "ci: disable gpu compositing"
This reverts commit 0344129fcb19ea3e87e06c1110d751f22eba3fec.
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: VerteDinde <khammond@slack-corp.com>
Co-authored-by: VerteDinde <vertedinde@electronjs.org>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
* chore: bump chromium in DEPS to 1f1c4d91f6eaa4a033ec8f499d63a0717f79a42a
* viz: Do not apply white level scaling for RGBA fp16 HDR video
2296006
* Move WebPreferences to WebContents
2263635
* Fix missing WeakPtr check in PreconnectManager
2309029
* Fixup swiftshader roll revision
* Update patch indices
* Move WebDeviceEmulationParams into common.
2303356
* Move EnableDisableDeviceEmulation to blink mojom messages
2303367
* PDF Viewer: Remove flag for two-up view
2311130
* Add mojom definition for DeviceEmulationParams.
2303491
* Remove ServiceWorkerContextWatcher from PaymentAppInstaller
2291186
* Loader: Move transferrable_url_loader.mojom into blink's mojom directory
2306123
* chore: bump chromium in DEPS to 4974f436479739025a90ebc2cc2e36d67ee1ac46
* mac: Work around Xcode 12b3 SDK bug
2315078
* Reland Update core items for macOS Big Sur.
2315162
* Update Swiftshader revision
* mac/arm64: When cross-building the snapshot, use page size of the target ISA instead of the host.
2310575
* Update patch indices
* Rename {,Non}ClientView::CanClose() to OnWindowCloseRequested()
2247838
* chore: bump chromium in DEPS to e9465d70d1dea539400f0fddad43358ea3c31d71
* chore: bump chromium in DEPS to bd5b71c5f20288eb26068a39ae6e0579566a51c5
* chore: bump chromium in DEPS to 786ee543048bd07d07c5ac50b7dbbdd6bdd8dcce
* chore: bump chromium in DEPS to 34eb6ecbf2c5894b648900bf771a2a29de204798
* chore: bump chromium in DEPS to 567ff038d68e3adb8116a01eec863cdf34d775f5
* chore: bump chromium in DEPS to 340b45c8d4ceb2dd61969fc34e1928d3c46db48c
* chore: update patches
* chore: base::DeleteFile with two params is removed
Should use base::DeleteFile and base::DeletePathRecursively when
appropriate
Refs: 2313376
* chore: add patch for NodePlatform::PostJob impl
* chore: update patches
* chore: extension file access is now instrumented
Refs: 2209995
* chore: implement SetWindowFrameInScreen in OSR RWHV
Refs: 2321409
* chore: NotifyUserActivation requires a type now
This is just for a histogram thing and therefore it does not matter what
we pass in
Refs: 2281303
* chore: update patches
* chore: bump chromium in DEPS to cd570e6dd3dcb84463ac252b04e92ceb02d8400c
* chore: update patches
* chore: bump chromium in DEPS to 0187908a31866992b90c59719ac1d016328f6ee0
* chore: bump chromium in DEPS to 3c9df38c508f3dba26a75248beed4882ddfb98e9
* chore: bump chromium in DEPS to 1a47d3b9cee710bd3c958c4f2d8b205710df9d50
* chore: bump chromium in DEPS to baac93040d96abdab72d46dd034c60f86e108702
* chore: bump chromium in DEPS to 13836145f97299e636491de38064b78861c4fb2e
* update patches
* change OS_MACOSX -> OS_MAC
Refs: https://bugs.chromium.org/p/chromium/issues/detail?id=1105907
* patch: add header for ToExecutionContext in WebMessagePortConverter
* chore: bump chromium in DEPS to 91ab9b6ac5d04dc034a03ad847fbfa8261328c2b
* update patches
* NeedToFireBeforeUnloadOrUnload -> NeedToFireBeforeUnloadOrUnloadEvents
Refs: 2288711
* chore: bump chromium in DEPS to 290deb11f0e30cb1382fd8f8793d340560283c23
* update patches
* add dragdrop header for autofill popup
* int -> x11::Time
* patch out accessibility private API use
Refs: 2330812
* remove usage of XEvent
Refs: 2317767
* trigger recalculation of WebPreferences before renderer initialization
Refs: 2263635
* chore: bump chromium in DEPS to 6bdb484583b99c96ef3388d0c2184326581b2d5a
* chore: bump chromium in DEPS to 1eb2a79cde04fd5c8ae51b4d813e6521635269e5
* chore: bump chromium in DEPS to 3dc8e3c0f400e4ca9c0a63d7a39bd910997ad4c6
* chore: update patches
* fixup! trigger recalculation of WebPreferences before renderer initialization
* views: Make MenuButton and RadioButton default constructible
2339586
* chore: fix code style
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
Co-authored-by: Andy Locascio <andy@slack-corp.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
* chore: add WebContentsView.webContents helper
* chore: no need to handle webContents option
* chore: Create WebContentsView in C++
* chore: make WebContentsView accept web_preferences
* fix: nativeWindowOpen still passes WebContents to BrowserWindow
* chore: no more need of WebContentsViewRelay
* test: WebContentsView now takes options
* fix: avoid creating 2 constructors