* test: disable CapturableScreen tests on Windows x64
(cherry picked from commit 60a288a2ca)
* test: disable js-execute-iframe" case should not crash on win 32-bit
(cherry picked from commit d545ae049b)
perf: omit unnecessary work from ElectronRenderFrameObserver::ShouldNotifyClient()
- (perf) GetBlinkPreferences() returns a const&, so we can use that
reference instead of making a temporary copy
- (perf) Don't create url object unless it's needed.
- (refactor) Move is_main_world() and is_isolated_world() from the
header into an anonymous namespace in the .cc file so they can
be inlined and made constexpr
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
This fixes a nasty warning / permission dialog that pops up to end-users
when consuming legacy APIs. Chrome has flipped these flags via field trials
as have other Electron apps. It should just be the default.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <marshallofsound@electronjs.org>
* fix: check for draggable regions outside of main frame
* fix: add nut-js to optional spec deps
Co-authored-by: samuelmaddock <samuelmaddock@electronjs.org>
---------
Co-authored-by: samuelmaddock <samuelmaddock@electronjs.org>
fix: Ignore `-webkit-app-region: drag;` when window is in full screen mode. (#41307)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Mikhail Leliakin <leliakin@canva.com>
This aligns us with Chromiums flags / capabilities in regards to using SCK for
everything. Currently on 14.4 Electron apps will pop warnings for usage of
deprecated APIs. With this change and a few "enable-features" toggles.
`--enable-features="ScreenCaptureKitMac,ScreenCaptureKitStreamPickerSonoma,ThumbnailCapturerMac:capture_mode/sc_screenshot_manager"`
As Chromium enables these by default Electron will inherit those changes, apps wishing to skip ahead can apply these flags early.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <marshallofsound@electronjs.org>
* build: make patches/config.json an array of objects
This file was previously an object of patch_dir keys to repo values;
Now is an array of objects containing `patch_dir` and `repo` properties.
This makes other per-target properties (e.g. `grep`) possible.
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* build: include Note metadata when exporting patches
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* build: support keyword filtering in export_patches()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* build: add optional `--grep` arg to git-export-patches script
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* build: update export_all_patches to understand new config file
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fixup! build: update export_all_patches to understand new config file
chore: make lint happy
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fixup! build: make patches/config.json an array of objects
chore: fix oops
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: remove support for the old file format
There is more code using config.json than I thought, so the
effort-to-reward of supporting the old format is not worth it.
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* build: update apply_all_patches to understand new config file
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* build: update lint.js to understand new config file
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* build: update patches-mtime-cache.py to understand new config file
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fixup! build: update apply_all_patches to understand new config file
fix: oops
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fixup! build: update apply_all_patches to understand new config file
fix minor syntax wart
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fixup! build: support keyword filtering in export_patches()
refactor: use idiomatic python
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: warn if config.json has an invalid repo
Co-authored-by: Charles Kerr <charles@charleskerr.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: make KeyWeakMap::KeyObject private
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: avoid redundant map lookup
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: remove unused KeyWeakMap::Has()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: make KeyWeakMap dtor nonvirtual
no inheritance used, so no need for virtual dtor?
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: fix KeyWeakMap code comment
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use if statement in KeyWeakMap::Get()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use better variable names in KeyWeakMap::Values()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
When worker_thread shutdown, it will destory context and close
message_port. In this case, it should not dispatch close event.
Because it forbid script running during NotifyContextDestroyed in
ContextLifecycleNotifier.
Now chromium has implemented close_event and will not crash,
so we remove the patch with #22532 and add one test.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Jinli Wu <wujinli@bytedance.com>