* refactor: use std::erase() in WebContentsPreferences::~WebContentsPreferences()
* refactor: use std::erase() in WindowList::RemoveWindow()
* refactor: use std::erase() in ElectronBindings::EnvironmentDestroyed()
* refactor: use std::erase() in CleanedUpAtExit::~CleanedUpAtExit()
* refactor: use std::erase_if() in ElectronBrowserContext::RevokeDevicePermission()
* refactor: use std::erase_if() in UsbChooserController::GotUsbDeviceList()
* refactor: move DoesDeviceMatch() out of class into anonymous namespace
* perf: remove unnecessary c_str() call when invoking promise.RejectWithErrorMessage()
RejectWithErrorMessage() takes a std::string_view
* perf: remove unnecessary c_str() call when invoking Environment::SetVar()
the val arg to Environment::SetVar() takes a const std::string&
* refactor: use string_view variant of base::UTF8ToWide()
* perf: remove unnecessary c_str() call when instantiating a ScopedHString
ScopedHString has always taken a StringPiece
* refactor: use simpler invocation of base::make_span()
* perf: remove unnecessary c_str() call when calling base::CommandLine::HasSwitch()
HasSwitch() already takes a string_piece
* perf: remove unnecessary c_str() call when calling net::HttpResponseHeaders::AddHeader()
AddHeader() already takes a StringPiece arg
* perf: omit unnecessary str -> wstr -> str conversion in DesktopCapturer::UpdateSourcesList()
this conversion was made redundant by c670e38
* feat: support NODE_EXTRA_CA_CERTS
* chore: allow disabling NODE_EXTRA_CA_CERTS
* chore: call base::Environment::UnSetVar
* docs: link to fuses from env vars
* chore: update patch to match upstream
* docs: note enabled by default
* Update environment-variables.md
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
---------
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
IWYU: add missing header for `content::SyntheticGestureTarget`
GNU libstdc++ does not allow using std::unique_ptr on incomplete types,
leading to a compile error.
* feat: Options parameter for `Session.clearData` API
* Consolidate & curate data type categories
* Update docs for better typing
* off-by-one typo
* refactor to use `std::shared_ptr` instead of `base::RefCounted`
* fix compile errors
* std::enable_shared_from_this didn't work 🤷
* Refine docs with defaults
Callers of Notification::Dismiss() assume that the notification
instance is not deleted after the call, but this was not the case
for LibnotifyNotification:
- Destroy() would get `this` deleted.
- notify_notification_close() in portal environment triggers
LibnotifyNotification::OnNotificationClosed(), and finally calls
Destroy()
This patch removes all Destroy() in Dismiss(), and adds a boolean
to tell whether notify_notification_close() is running, to avoid crash
under portal environment.
Fixes#40461.
* WIP: Session.clearBrowsingData API
* impl API method
* clean up
* tidy types and comments
* add docs
* add barebones test
* forgot a `#` :(
* tidy: address review comments
* use format macro for cross-platform build
* add another test
* amend docs to disambiguate
* Rename to `clearData`
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.
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
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.
* refactor: make KeyWeakMap::KeyObject private
* perf: avoid redundant map lookup
* refactor: remove unused KeyWeakMap::Has()
* refactor: make KeyWeakMap dtor nonvirtual
no inheritance used, so no need for virtual dtor?
* chore: fix KeyWeakMap code comment
* refactor: use if statement in KeyWeakMap::Get()
* refactor: use better variable names in KeyWeakMap::Values()
* refactor: use base::WriteJson() in ListValueToNSArray()
refactor: use base::WriteJson() in DictionaryValueToNSDictionary()
* refactor: use base::WriteJson() in Debugger::SendCommand()
* refactor: use base::WriteJson() in ScriptingExecuteScriptFunction::Run()
* refactor: use base::WriteJson() in HandleAccessibilityRequestCallback()
`delegated_frame_host_` holds a pointer to `delegated_frame_host_client_`.
Since `delegated_frame_host_client_` was being destroyed first, that
pointer was dangling in the OSRWHV destructor.
Also, make these two unique_ptr fields `const` since they point to the
same objects for the lifespan of the OSRWHV.
* refactor: do not use banned std::to_string() in ServiceWorkerContext::GetAllRunningWorkerInfo()
* refactor: do not use banned std::to_string() in REPORT_AND_RETURN_IF_FAILED()
* refactor: do not use banned std::to_string() in JSChunkedDataPipeGetter::OnWriteChunkComplete()
* refactor: do not use banned std::to_string() in SetCrashKey()
* chore: remove unused #include
* fix: ElectronBrowserContext::PartitionKey comparisons
Use c++20 default comparisons to simplify + fix PartitionKey sorting:
- The equality operator is broken. `PartitionKey{"foo", false}` is both
equal, to and less than, `PartitionKey{"foo", true}`
- For some keys, the same session can be retrieved via both `fromPath()`
and `fromPartition()`. This use case was discussed and removed from
the original PR after code review said "always returning different
sessions feels lower maintenance." The current behavior is a bug that
comes from the comparison operators not checking the keys' types.
Xref: 3f1aea9af9 (r1099745359)
Xref: https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++-features.md#Default-comparisons-allowed
* fixup! fix: ElectronBrowserContext::PartitionKey comparisons
* Add Windows integrity check feature into Electron
Co-authored-by: Weiyun Dai <weiyun.chn@gmail.com>
* Add integrity checker header file to sources
Co-authored-by: Weiyun Dai <weiyun.chn@gmail.com>
* Moved integrity checker after checking command line args
Co-authored-by: Weiyun Dai <weiyun.chn@gmail.com>
* Revert previous Windows integrity check commits (2379a60, 331cf3c, a3c47ec)
Co-authored-by: guohaolay <guohaolay@gmail.com>
* Implement asar header integrity for Windows platform.
Co-authored-by: guohaolay <guohaolay@gmail.com>
* Fix Archive::RelativePath() on Windows platform.
Co-authored-by: guohaolay <guohaolay@gmail.com>
* Address comments.
* Address Windows integrity check PR comments.
* Update absl::optional to std::optional.
* Fix spelling.
---------
Co-authored-by: Weiyun Dai <weiyun.chn@gmail.com>
Co-authored-by: Weiyun Dai <weiyund@amazon.com>
Co-authored-by: Weiyun Dai <35878488+WeiyunD@users.noreply.github.com>
* refactor: do not use deprecated ToInternalValue() in ElectronExtensionLoader::FinishExtensionLoad()
* refactor: do not use deprecated ToInternalValue() in NotificationPresenterWin::SaveIconToFilesystem()
* chore: rename temp variable to now_usec for clarity
* refactor: use NoDestructor for g_io_thread_application_locale
* refactor: use NoDestructor for ExtensionActionAPI::GetFactoryInstance()
* refactor: use NoDestructor for ElectronExtensionsClient::GetPermissionMessageProvider()
* refactor: use NoDestructor for feat_add_support_for_overriding_the_base_spellchecker_download_url.patch
* chore: remove unused #include
* fixup! refactor: use NoDestructor for ElectronExtensionsClient::GetPermissionMessageProvider()
make sure instance is static
* chore: remove unused #include "base/lazy_instance.h"
* chore: bump chromium in DEPS to 122.0.6223.0
* 5129828: Removes special cases for selenium-atoms dependencies.
https://chromium-review.googlesource.com/c/chromium/src/+/5129828
* chore: fixup patch indices
* 5139789: Deduplicate BrowserContext's ResourceContext
https://chromium-review.googlesource.com/c/chromium/src/+/5139789
* 5148579: Simplify SelectFileDialog::Listener
https://chromium-review.googlesource.com/c/chromium/src/+/5148579
* 5134038: Code Health: Use string_view in base::i18n::BreakIterator::SetText
https://chromium-review.googlesource.com/c/chromium/src/+/5134038
* 5137427: Code Health: Use string_view in SpellCheck::SpellCheckWord
https://chromium-review.googlesource.com/c/chromium/src/+/5137427
* [libcxx] adds ranges::fold_left_with_iter and ranges::fold_left
Notable things in this commit:
* refactors `__indirect_binary_left_foldable`, making it slightly
different (but equivalent) to _`indirect-binary-left-foldable`_, which
improves readability (a [patch to the Working Paper][patch] was made)
* omits `__cpo` namespace, since it is not required for implementing
niebloids (a cleanup should happen in 2024)
* puts tests ensuring invocable robustness and dangling correctness
inside the correctness testing to ensure that the algorithms' results
are still correct
[patch]: https://github.com/cplusplus/draft/pull/6734
* chore: bump chromium in DEPS to 122.0.6224.0
* 5154766: [Refresh 2023] [GTK] Fix gap above toolbar with fractional scaling
https://chromium-review.googlesource.com/c/chromium/src/+/5154766
* chore: fixup patch indices
* 5094458: Remove extra CGColorSpace parameters from skia and ui helpers
https://chromium-review.googlesource.com/c/chromium/src/+/5094458
* chore: bump chromium in DEPS to 122.0.6226.0
* chore: update patches
* chore: bump chromium in DEPS to 122.0.6227.0
* chore: update patches
* chore: bump chromium in DEPS to 122.0.6228.0
* chore: update patches
* chore: bump chromium in DEPS to 122.0.6230.0
* chore: bump chromium in DEPS to 122.0.6232.0
* chore: bump chromium in DEPS to 122.0.6234.0
* chore: bump chromium in DEPS to 122.0.6236.2
* chore: update patches
* fix: remove --disable-color-correct-renderering
Per https://electronhq.slack.com/archives/CB6CG54DB/p1698444047862459 it is not used any more and was never documented.
* chore: add WEB_PRINTING to content permission converter
Unused in non-cros so no need to document
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5136178
* chore: Views is now vec<raw_ptr> instead of raw<T*>
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5140028
* spec: add Iterator to global intrinsics
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <marshallofsound@electronjs.org>
* chore: migrate from base::StringPiece to std::string_view in keyboard_util.cc
* chore: migrate from base::StringPiece to std::string_view in error_thrower.cc
* chore: migrate from base::StringPiece to std::string_view in electron_api_web_contents.cc
* chore: migrate from base::StringPiece to std::string_view in gin_helper/dictionary.h
* chore: migrate from base::StringPiece to std::string_view in electron_api_url_loader.cc
* chore: phase out internal use of base:::StringPiece
`base::StringPiece` is being phased out upstream. Its code has been
removed upstream and it's just a typedef for `std::string_view`.
They haven't removed the typedef yet, so this PR tries to get ahead
of future breakage by migrating "internal" use (i.e. leaving alone the
places where the `base::StringPiece` name is coming from an upstream
method that we override).
Xref: https://bugs.chromium.org/p/chromium/issues/detail?id=691162
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4294483
Xref: https://docs.google.com/document/d/1d4RnD1uAE2t4iANR0nXy82ASIPGsPuw2mpO6v6T7JKs
refactor: use fixed-size arrays for the font cache
Since we know at compile time which [family x script] combos we want to
cache, we can hold the cache in fixed std::arrays instead of in nested
std::unordered_maps.
* fix: macOS maximize button shouldn't be disabled just because the window is non-fullscreenable
* add test
* fix test by enabling maximize button if `resizable && (maximizable || fullscreenable)` instead of `(resizable && maximizable) && fullscreenable`
* refactor: use base::flat_map in ElectronMenuModel
* refactor: use base::flat_map in BuildSubmenuFromModel()
* refactor: use base::flat_map in GetDialogsMap()
* refactor: use base::flat_map in DesktopCapturer
* refactor: use base::flat_map, flat_set in ElectronBrowserClient
* refactor: use base::flat_map in ProxyingURLLoaderFactory
* refactor: use base::flat_map in MapToCommonId()
* refactor: use base::flat_map for g_map_id
* refactor: use base::flat_map for ViewsDelegate::AppbarAutohideEdgeMap
* refactor: use base::flat_map for App::app_metrics_
* refactor: use base::flat_map for PowerSaveBlocker::wake_lock_types_
* refactor: use base::flat_map for NativeImage::hicons_
* refactor: use base::flat_map for MenuViews::menu_runners_
* refactor: use base::flat_map for WebViewManager::web_contents_embedder_map_
* refactor: use base::flat_map for InspectableWebContents::extensions_api_
* refactor: use base::flat_set for libnotify GetServerCapabilities()
* refactor: use base::flat_set for InspectableWebContents::loaders_
* refactor: use base::flat_set for ElectronRendererClient::environments_
refactor: use base::flat_set for ElectronRendererClient::injected_frames_
* refactor: use base::flat_set for WebWorkerObserver::environments_
* feat: add transparent option to WebContents
* feat: add transparent attribute to webview
* test: add tests for webview transparent attribute
* docs: add transparent attribute to webview docs
* fix: run tests on macOS only
* refactor: remove unneeded html tag
* fix: only apply transparent option to guests
* refactor: correct comment
* refactor: use opaque instead
Retains current webview behaviour by default.
* fix: correct variable name to guest_opaque_
* refactor: use transparent webpreference
* docs: remove unused web preference
* fix: uncomment condition for transparency test
* docs: converted to list format and linked to MDN
* fix: make webviews transparent by default again
* fix: rebase error
---------
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
* chore: initial prototype of net api from utility process
* chore: update url loader to work on both browser and utility processes
* chore: add net files to utility process bundle
* chore: re-add app ready check but only on main process
* chore: replace browser thread dcheck's with sequence checker
* refactor: move url loader from browser to common
* refactor: move net-client-request.ts from browser to common
* docs: add utility process to net api docs
* refactor: move net module app ready check to browser only
* refactor: switch import from main to common after moving to common
* test: add basic net module test for utility process
* refactor: switch browser pid with utility pid
* refactor: move electron_api_net from browser to common
* chore: add fetch to utility net module
* chore: add isOnline and online to utility net module
* refactor: move net spec helpers into helper file
* refactor: break apart net module tests
Adds two additional net module test files: `api-net-session-spec.ts` for
tests that depend on a session being available (aka depend on running on
the main process) and `api-net-custom-protocols-spec.ts` for custom
protocol tests. This enables running `api-net-spec.ts` in the utility
process.
* test: add utility process mocha runner to run net module tests
* docs: add utility process to net module classes
* refactor: update imports in lib/utility to use electron/utility
* chore: check browser context before using in main process
Since the browser context supplied to the SimpleURLLoaderWrapper can now
be null for use in the UtilityProcess, adding a null check for the main
process before use to get a more sensible error if something goes wrong.
Co-authored-by: Cheng Zhao <github@zcbenz.com>
* chore: remove test debugging
* chore: remove unnecessary header include
* docs: add utility process net module limitations
* test: run net module tests in utility process individually
* refactor: clean up prior utility process net tests
* chore: add resolveHost to utility process net module
* chore: replace resolve host dcheck with sequence checker
* test: add net module tests for net.resolveHost
* docs: remove utility process limitation for resolveHost
---------
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Cheng Zhao <github@zcbenz.com>
* chore: bump chromium in DEPS to 121.0.6154.0
* chore: bump chromium in DEPS to 121.0.6155.0
* fix patches
* chore: update patches
* patch out reference to GetOcclusionTracker
* un-flag PIPOcclusionTracker
* chore: bump chromium in DEPS to 121.0.6157.0
* fix conflicts
https://chromium-review.googlesource.com/c/chromium/src/+/5038807
* add PIP occlusion tracker sources to chromium_src
* 5037591: Replace feature_list's Initialize* methods with Init*.
https://chromium-review.googlesource.com/c/chromium/src/+/5037591
* 4811903: Move //content/browser/renderer_host/input/synthetic_gesture_controller to //content/common/input
https://chromium-review.googlesource.com/c/chromium/src/+/4811903
* 4917953: usb: Add usb-unrestricted to permission policy
https://chromium-review.googlesource.com/c/chromium/src/+/4917953
* 5072395: Remove unused `creation_context` parameter from blink/public APIs
https://chromium-review.googlesource.com/c/chromium/src/+/5072395
* 5052035: [X11] Change AtomCache from a singleton to owned by Connection
https://chromium-review.googlesource.com/c/chromium/src/+/5052035
* fix v8/.patches
* node script/gen-libc++-filenames.js
* 5035771: Remove the SetImage method of ImageButton
https://chromium-review.googlesource.com/c/chromium/src/+/5035771
* fixup! 5052035: [X11] Change AtomCache from a singleton to owned by Connection
* fixup! 5035771: Remove the SetImage method of ImageButton
* chore: bump chromium in DEPS to 121.0.6159.0
* 4505903: [Extensions] Add lastAccessed property to chrome.tabs.Tab
https://chromium-review.googlesource.com/c/chromium/src/+/4505903
* update patches
* don't duplicate tabs API types
this causes weird memory bugs if the two get out of sync
* fix UAF in TrayIconCocoa
not sure why this is popping up just now ... this has been broken for ages afaict
* Revert "don't duplicate tabs API types"
This reverts commit 80dff2efaa.
This is failing tests with extensions API schema check failures, so
revert for now. we'll fix it later.
* revert v8 change causing node crashes
* chore: reduce diffs in revert_api_dcheck-fail_when_we_reenter_v8_while_terminating.patch
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: clavin <clavin@electronjs.org>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fix: clean up devtools frontend_host on destroy
* chore: use IsInPrimaryMainFrame instead of IsInMainFrame
* test: add a test for re-opening devtools
* feat: add blinkUtils module with getPathForFile method
This is designed to replace the File.path augmentation
we currently have in place to allow apps to get the filesystem
path for a file that blink has a representation of.
File.path is non-standard and messes with certain websites, using
a method like this is effectively 0-cost and removes one of the final
deviations we have with web standards.
* add error
* refactor: update per PR feedback
* chore: update patches
* oops
* chore: update patches
* chore: update patches
* feat: add blinkUtils module with getPathForFile method
This is designed to replace the File.path augmentation
we currently have in place to allow apps to get the filesystem
path for a file that blink has a representation of.
File.path is non-standard and messes with certain websites, using
a method like this is effectively 0-cost and removes one of the final
deviations we have with web standards.
* add error
* refactor: update per PR feedback
* chore: update patches
* oops
* chore: update patches
* chore: update patches
* chore: update patches
* fix: provide isolate to WebBlob::FromV8Value
* chore: add tests
* build: fix depshash mismatch on arm64 macOS
---------
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
* refactor: use new extensions Messaging API IPC
Refs CRBUG:993189
Incorporates changes from:
* Bind ServiceWorker associated interfaces on Worker Thread (CL:4929154)
* [extensions] Move WakeEventPage to mojom::RendererHost (CL:4902564)
* [extensions] Convert Extension Messaging APIs over to mojo (CL:4947890)
* [extensions] Port GetMessageBundle over to mojom (CL:4956841)
* 5008635: [extensions] Bind the mojo interfaces to the frame instance
https://chromium-review.googlesource.com/c/chromium/src/+/5008635
* chore: bump chromium in DEPS to 120.0.6049.0
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6050.0
* chore: update patches
* 4910494: Reland "[autopip] Show autopip UI for video pip"
https://chromium-review.googlesource.com/c/chromium/src/+/4910494
* 4812338: Move partition_alloc into a "partition_alloc" dir.
https://chromium-review.googlesource.com/c/chromium/src/+/4812338
* [Extensions Cleanup] Remove mojom ViewType::kExtensionDialog
https://chromium-review.googlesource.com/c/chromium/src/+/4909897
* 4894923: Force enable raw_ptrs pointer arithmetic check.
https://chromium-review.googlesource.com/c/chromium/src/+/4894923
* gin: Prevent wrappables from being constructed from author code.
https://chromium-review.googlesource.com/c/chromium/src/+/4905829
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6052.0
* chore: bump chromium in DEPS to 120.0.6054.0
* chore: bump chromium in DEPS to 120.0.6056.0
* chore: fix patches
* 4918545: Reland "[autopip] Add permissions embargo"
https://chromium-review.googlesource.com/c/chromium/src/+/4918545
* 4881761: UI bindings for visual logging with structured metrics.
https://chromium-review.googlesource.com/c/chromium/src/+/4881761
* chore: bump chromium in DEPS to 120.0.6058.0
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6060.0
* chore: bump chromium in DEPS to 120.0.6061.0
* chore: bump chromium in DEPS to 120.0.6062.0
* chore: gen libc++ filenames
* chore: update patches
* 4911894: Move //c/b/ui/views/eye_dropper to //components
https://chromium-review.googlesource.com/c/chromium/src/+/4911894
* chore: bump chromium in DEPS to 120.0.6064.0
* chore: bump chromium in DEPS to 120.0.6066.0
* chore: bump chromium in DEPS to 120.0.6068.0
* chore: bump chromium in DEPS to 120.0.6070.0
* chore: remove temp_prevent_unused_function_error.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4931270
* chore: add TransferDragSecurityInfo()
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4928028
* mark TransferDragSecurityInfo() as NOTREACHED
A follow-up to previous commit. I think this is commit is correct (i.e.
that this function shouldn't get called) but am not positive, so I'm
including it in a standalone commit in case we need to revert.
* chore: update signature of OnPrivateNetworkAccessPermissionRequired()
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4919478
Our impl is a no-op, so updating the signature is the only change.
* chore: rebuild patches
* chore: bump chromium in DEPS to 120.0.6072.0
* chore: update patches
* chore: sync ParseMatchPattern() param order with upstream change
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4944243
* chore: update fix_crash_loading_non-standard_schemes_in_iframes.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4939602
* chore: rebuild patches
* chore: bump chromium in DEPS to 120.0.6073.0
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6074.0
* chore: update disable_color_correct_rendering.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4908053
no manual changes; patch applied with fuzz 1
* chore: update fix_handle_no_top_level_aura_window_in_webcontentsimpl.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4936315
minor manual sync to upstream code shear
* chore: rebuild patches
* chore: update ClearHttpAuthCache arguments
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4937937
adding ClearDataFilterPtr arg. Upstream added this arg, which is already
present in other NetworkContext methods. Our code uses `nullptr` there.
* chore: bump chromium in DEPS to 120.0.6076.0
* chore: update mas_disable_remote_accessibility.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4865412
minor manual sync to upstream code shear
* chore: update disable_color_correct_rendering.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4942936
minor manual sync to upstream code shear
* fix: move x11_util.h include to top of source file
This is a short-term fix to unblock the roll. I will follow up a better fix in a standalone PR.
* chore: rebuild patches
* chore: bump chromium in DEPS to 120.0.6077.0
* chore: update patches
* chore: bump chromium in DEPS to 120.0.6078.0
* chore: update patches
* refactor: add BrowserProcessImpl::os_crypt_async()
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4455776
This is one to keep an eye on. This commit copies the upstream impl,
which appears to be an interim step with more upstream code changes
still forthcoming.
Xref: https://bugs.chromium.org/p/chromium/issues/detail?id=1373092
* fixup! refactor: add BrowserProcessImpl::os_crypt_async()
chore: make 'gn check' happy
* chore: remove ensure_messageports_get_gced_when_not_referenced.patch
Xref: ensure_messageports_get_gced_when_not_referenced.patch
no longer needed because upstreamed
* chore: remove webrtc/pipewire_capturer_make_restore_tokens_re-usable_more_than_one_time.patch
Xref: https://webrtc-review.googlesource.com/c/src/+/322621
no longer needed because upstreamed
* chore: add //components/compose:buildflags dep
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4912601
needed by browser/ui/browser_dialogs.h
* chore: update filenames.libcxx.gni
node ./script/gen-libc++-filenames.js
* test: fix UI.InspectorView -> UI.InspectorView.instance()
---------
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: clavin <clavin@electronjs.org>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* chore: Show FIDO devices in the chooser if allowed
* chore: tweak HidChooserContext::IsFidoAllowedForOrigin
* chore: feedback from review
---------
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* fix: correctly track receiver for methods called via ctx bridge
* spec: test for correct contextBridge passage
---------
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* fix: return RGBA hex value from `SystemPreferences.getColor`
* docs: update docs to match changes of last commit
* fix: GetColor on windows now returns RGBA too
* fix: update tests for getColor RGBA on Windows
---------
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
GetPathConstant calls base::internal::flat_tree<Key, GetKeyFromValue, KeyCompare, Container>::find(Key const&) const which is not constexpr.
GCC 12 and earlier raise a compile error on this.
Propagate layout call to all children of InspectableWebContentsViewViews.
When BrowserView bounds are set from js, those might not trigger layout
immediately, sometimes propagating InvalidateLayout call to parent.
View is marked as needing layout, expecting to receive it from parent on
next layout call. The problem is that BrowserView's view is added as child
of InspectableWebContentsViews which does not call setBounds (which
would trigger layout) on all of it's children when doing it's layout,
so it skips propagating Layout call to its children BrowserViews views,
even though those were marked as needing layout.
Call base class View::Layout which will iterate over views' children
and call Layout on those that were marked as needing them.
Fixes#39993.
* fix: disable background throttling also in the `viz::DisplayScheduler`
`viz::DisplayScheduler` is responsible for drawing and swapping frames
in the `DisplayScheduler::DrawAndSwap` which is called from the
`DisplayScheduler::AttemptDrawAndSwap` if the `DisplayScheduler::ShouldDraw`
returns true. `ShouldDraw` depends on the `DisplayScheduler` visibility
and when it is not visible then it returns false.
In order to keep producing frames, disabling `backgroundThrottling`
should also prevent changing `DisplayScheduler` visibility to false.
`DisplayScheduler` lives in the `ui::Compositor` where every
`electron::NativewWindow` has its own `Compositor`. `electron::NativewWindow`
may be host of the multiple `electron::api::WebContents` instances which may
have different `WebPreferences` settings. Therefore if at least one
of the `WebContents` requires disabling throttling then all other `WebContents`
using the same window will have it disabled in the `ui::Compositor`.
BREAKING CHANGE:
`backgroundThrottling` set to false will disable frames throttling
in the `BrowserWindow` for all `WebContents` displayed by it.
Close: [#31016](https://github.com/electron/electron/issues/31016)
* fixup! fix: disable background throttling also in the `viz::DisplayScheduler`
* fixup! fix: disable background throttling also in the `viz::DisplayScheduler`
* fixup! fix: disable background throttling also in the `viz::DisplayScheduler`
---------
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* refactor: make ElectronRendererClient::node_bindings_ a const ptr
refactor: make ElectronRendererClient::electron_bindings_ a const ptr
* fix: order-of-destruction bug in NodeService
js_env_ depends on the uv_loop from node_bindings_, but is destroyed after node_bindings_
* chore: revert unintentional commit
* fix: backgroundMaterial works with frameless
* TODO: fix frameless mica/acrylic windows
* update caption color appropriately
* set background color properly
* refactor translucency method
* actualization
* chore: bump chromium in DEPS to 118.0.5951.0
* chore: update printing.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4727894
No logic changes, but patch needed to be manually re-applied due to upstream code shear
* chore: update port_autofill_colors_to_the_color_pipeline.patch
No manual changes; patch applied with fuzz
* chore: update patches
* chore: bump chromium in DEPS to 118.0.5953.0
* chore: update patches
* chore: bump chromium in DEPS to 118.0.5955.0
* chore: update patches
* chore: bump chromium in DEPS to 118.0.5957.0
* chore: update patches
* chore: include path of native_web_keyboard_event.h
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4758689
* chore: remove reference to eextensions/browser/notification-types.h
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4771627
* chore: update references to renamed upstream field NativeWebKeyboardEvent.skip_if_unhandled (formerly known as skip_in_browser
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4758689
Need a second pair of eyes on this commit. In particular the reference in content_converter.cc, skipInBrowser, seems to not be set or documented anywhere? Is this unused/vestigal code?
* chore: sync signature of ElectronExtensionsBrowserClient::IsValidContext() to upstream change
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4784198
* chore: add auto_pip_setting_helper.[cc,h] to chromium_src build
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4688277
Exiting upstream code used by chromium_src now depends on this new upstream class
* chore: bump chromium in DEPS to 118.0.5959.0
* chore: update add_maximized_parameter_to_linuxui_getwindowframeprovider.patch
Xref: add_maximized_parameter_to_linuxui_getwindowframeprovider.patch
manually adjust patch to minor upstream chagnes
* chore: update patches
* chore: bump chromium in DEPS to 118.0.5961.0
* chore: bump chromium in DEPS to 118.0.5963.0
* chore: update patches
* 4780994: Rename various base files to "apple" since iOS uses them too
https://chromium-review.googlesource.com/c/chromium/src/+/4780994
* Many files moved from `mac` -> `apple`
This commit follows a handful of CLs that simply rename files/symbols to change `mac`
to `apple`
to signify their use across both macOS and iOS:
- 4784010: Move scoped_nsautorelease_pool to base/apple, leave a forwarding header
- 4790744: Move foundation_util to base/apple, leave a forwarding header
- 4790741: Move scoped_cftypreref to base/apple, leave a forwarding header
- 4787627: Move and rename macOS+iOS base/ files in PA to "apple"
- 4780399: Move OSStatus logging to base/apple
- 4787387: Remove forwarding headers
- 4781113: Rename message_pump_mac to "apple" because iOS uses it too
* fixup minor patch update error
A function param got dropped from this patch somewhere earlier
* chore: bump chromium in DEPS to 118.0.5965.2
* chore: update patches
* 4799213: Move ScopedTypeRef and ScopedCFTypeRef into base:🍎:
https://chromium-review.googlesource.com/c/chromium/src/+/4799213
* Fix removed include to BrowserContext
In crrev.com/c/4767962 an include to BrowserContext was removed,
which was necessary for compilation. This broke only for us because
"chrome/browser/profiles/profile.h" includes that class, but we remove
all references to profiles.
* chore: bump chromium in DEPS to 118.0.5967.0
* chore: update patches
* chore: bump chromium in DEPS to 118.0.5969.0
* chore: update patches
* chore: bump chromium in DEPS to 118.0.5971.0
* chore: bump chromium in DEPS to 118.0.5973.0
* chore: update patches
* 4772121: [OOPIF PDF] Replace PDFWebContentsHelper with PDFDocumentHelper
https://chromium-review.googlesource.com/c/chromium/src/+/4772121
* 4811164: [Extensions] Do some cleanup in ChromeManagementAPIDelegate.
https://chromium-review.googlesource.com/c/chromium/src/+/4811164
* 4809488: Remove duplicate dnd functionality between Web and Renderer prefs
https://chromium-review.googlesource.com/c/chromium/src/+/4809488
Given that this is no longer an option of web preferences, we should
consider deprecating this option and then removing it.
* chore: bump chromium in DEPS to 118.0.5975.0
* chore: update patches
* fixup! chore: add auto_pip_settings_helper.{cc|h} to chromium_src build
* Reland "[windows] Remove RegKey::DeleteEmptyKey"
Refs https://chromium-review.googlesource.com/c/chromium/src/+/4813255
* Ensure StrCat means StrCat
Refs https://chromium-review.googlesource.com/c/chromium/src/+/1117180
* fixup! Remove RegKey::DeleteEmptyKey
* Consistently reject large p and large q in DH
Refs https://boringssl-review.googlesource.com/c/boringssl/+/62226
---------
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: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: clavin <clavin@electronjs.org>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
* fix: allow ESM loads from within ASAR files
* fix: ensure that ESM entry points finish loading before app ready
* fix: allow loading ESM entrypoints via default_app
* fix: allow ESM loading for renderer preloads
* docs: document current known limitations of esm
* chore: add patches to support blending esm handlers
* refactor: use SetDefersLoading instead of JoinAppCode in renderers
Blink has it's own event loop so pumping the uv loop in the renderer is not enough, luckily in blink we can suspend the loading of the frame while we do additional work.
* chore: add patch to expose SetDefersLoading
* fix: use fileURLToPath instead of pathname
* chore: update per PR feedback
* fix: fs.exists/existsSync should never throw
* fix: convert path to file url before importing
* fix: oops
* fix: oops
* Update docs/tutorial/esm-limitations.md
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* windows...
* windows...
* chore: update patches
* spec: fix tests and document empty body edge case
* Apply suggestions from code review
Co-authored-by: Daniel Scalzi <d_scalzi@yahoo.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* spec: add tests for esm
* spec: windows
* chore: update per PR feedback
* chore: update patches
* Update shell/common/node_bindings.h
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* chore: update patches
* rebase
* use cjs loader by default for preload scripts
* chore: fix lint
* chore: update patches
* chore: update patches
* chore: fix patches
* build: debug depshash
* ?
* Revert "build: debug depshash"
This reverts commit 0de82523fb.
* chore: allow electron as builtin protocol in esm loader
* Revert "Revert "build: debug depshash""
This reverts commit ff86b1243c.
* chore: fix esm doc
* chore: update node patches
---------
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: electron-patch-conflict-fixer[bot] <83340002+electron-patch-conflict-fixer[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Daniel Scalzi <d_scalzi@yahoo.com>
* feat:Add setter and getter apis to specify udp port range for webrtc (issue#9042)
* lint error fix for PR#39046
* feat: add setter and getter apis to specify udp port range for webrtc (issue#9042) , changed for codereview
* fix lint error
* fix lint errors in file api-web-contents-spec.ts
* feat: add setter and getter apis to specify udp port range for webrtc (issue#9042) , changed for review from itsananderson
* feat: add setter and getter apis to specify udp port range for webrtc (issue#9042) , changed for review from jkleinsc
* fix lint error
* feat: add setter and getter apis to specify udp port range for webrtc (issue#9042) , changed for review from codebyter
* fix: dangling raw_ptr in ElectronBrowserMainParts dtor
* fixup! fix: dangling raw_ptr in ElectronBrowserMainParts dtor
Browser::WhenReady() holds a reference to JsEnv isolate so must come after
* chore: bump chromium in DEPS to 118.0.5949.0
* chore: update mas_disable_remote_accessibility.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4705386
no manual code changes; existing patch applied with fuzz
* chore: update printing.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4779059
no manual code changes; existing patch applied with fuzz
* chore: add OffScreenRenderWidgetHostView::InvalidateLocalSurfaceIdAndAllocationGroup()
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4563504
Add an impl for a new pure virtual method that was added upstream.
Local impl inspired by upstream implementations in same CL
* chore: update patches
---------
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: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
* fix: delete desktop capturers when they're not needed
Delete desktop capturer objects by resetting the DesktopMediaList
objects that own them after the sources have been collected. Capturers
that are not delegated are already being reset via a patch on
NativeDesktopMediaList. That is not safe for delegated capturers as
thumbnail generation depends on user events. Deleting the
DesktopMediaList operation is safe for all capturers and releases OS
capture resources as soon as possible.
* fix: add a patch to clean up PipeWire resources
Adding a patch to workaround a Chromium issue:
https://bugs.chromium.org/p/chromium/issues/detail?id=1467060
The patch can be removed when the issue is resolved.
Screensharing with PipeWire via XDG Desktop Portal requires explicit
user permission via permission dialogs. Chromium has separate tabs for
screens and windows and thus its portal implementation requests
permissions separately for each. However, the screencast portal has no
such limitation and supports both screens and windows in a single
request.
WebRTC now supports this type of capture in a new method called
called `CreateGenericCapturer`. The `desktopCapturer` implementation has
been modified to use it. Additionally, Chromium has been patched to use
same generic capturer to ensure that the source IDs remain valid for
`getUserMedia`.
* perf: avoid string temporary in HidChooserController::PhysicalDeviceIdFromDeviceInfo()
return a const ref instead of a new string
* perf: avoid second map lookup in HidChooserController::AddDeviceInfo()
* chore: bump chromium in DEPS to 117.0.5866.0
* chore: bump chromium in DEPS to 117.0.5868.0
* chore: update mas_no_private_api.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4634925
Minor manual patch syncing due to upstream code shear
* chore: update mas_disable_remote_layer.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4647191
Manually sync patch to minor upstream code shear
* chore: update mas_disable_remote_accessibility.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4641746
No manual changes; patch applied with fuzz
* chore: update mas_avoid_usage_of_private_macos_apis.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4634925
Manually sync base/process/launch_mac.cc to minor upstream shear
Manually sync base/mac/foundation_util.mm to upstream changes:
_CFIsObjC use has been removed upstream, so we no longer need
to remove it 🎉
* chore: update printing.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4658496
Manually sync patch to minor upstream code shear
* chore: update disable_color_correct_rendering.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4625254
Manually sync patch to minor upstream code shear
* chore: update feat_expose_raw_response_headers_from_urlloader.patch
Xref: services/network/public/cpp/resource_request.cc
No manual changes; patch applied with fuzz
* chore: update add_electron_deps_to_license_credits_file.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4634961
No manual changes; patch applied with fuzz
* chore: update build_only_use_the_mas_build_config_in_the_required_components.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4648411
No manual changes; patch applied with fuzz
* chore: update patches
* fixup! chore: update add_electron_deps_to_license_credits_file.patch
chore: license files must be an array
* chore: bump chromium in DEPS to 117.0.5870.0
* chore: update patches
* chore: run ./script/gen-libc++-filenames.js
* chore: update json_parse_errors_made_user-friendly.patch
Xref: https://chromium-review.googlesource.com/c/v8/v8/+/4652014
v8 error message changed upstream; update Node test to match it
* chore: bump chromium in DEPS to 117.0.5872.0
* chore: update patches
* chore: explicitly cast x11::Window to unsigned int
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4661049
This is an `enum class Window : uint32_t` defined in ui/gfx/x/xproto.h.
Previous versions of clang let this implicit cast happen,
but it generates a warning in the new clang roll.
* chore: remove unused #include
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4650453
header was removed upstream, so FTBFS unless removed here
* chore: add include guard patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4628373
h/t @jkleinsc
* chore: bump chromium in DEPS to 117.0.5874.0
* chore: update render_widget_host_view_mac.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4661244
Manually sync patch to minor upstream code
* chore: update mas_disable_remote_accessibility.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4653209
Manually sync patch to upstream code shear
* chore: update build_only_use_the_mas_build_config_in_the_required_components.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4653209
Manually sync patch to minor upstream code shear
* chore: update GetInitiatorProcessId()
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4641991
trivial upstream naming change: s/ProcessID/ProcessId/
* chore: sync to upstream SetInputRegion() changes
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4665245
Simple upstream chang: SetInputRegion() used to take a gfx::Rect* where
`nullptr` meant "no opaque region". The function signature changed to
absl::optional<gfx::Rect> w/the same meaning.
* chore: sync to upstream SetOpaqueRegion() changes
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4656738
Simple upstream chang: SetOpaqueRegion() used to take a vector<Rect>* where
`nullptr` meant "no opaque region". The function signature changed to
absl::optional<std::vector<gfx::Rect>> w/the same meaning.
* chore: update patches
* chore: bump chromium in DEPS to 117.0.5876.0
* chore: update mas_disable_remote_accessibility.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4658375
We no longer need to patch out a field that's now removed upstream.
RenderWidgetHostNSViewBridgeOwner.remote_accessibility_element_
* chore: update feat_filter_out_non-shareable_windows_in_the_current_application_in.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4658680
Manually sync patch to upstream code shear (ARC adoption).
* chore: update patches
* fix: -Werror,-Wshadow error in Node.js
* chore: bump chromium in DEPS to 117.0.5878.0
* chore: bump chromium in DEPS to 117.0.5880.0
* chore: bump chromium in DEPS to 117.0.5880.4
* chore: update patches
* 4658680: Convert /content/browser to use ARC
https://chromium-review.googlesource.com/c/chromium/src/+/4658680
* 4669995: Remove CFToNSCast and NSToCFCast
https://chromium-review.googlesource.com/c/chromium/src/+/4669995
* WIP: 4658680: Convert /content/browser to use ARC
https://chromium-review.googlesource.com/c/chromium/src/+/4658680
* chore: update printing patch after rebase
* chore: bump chromium in DEPS to 117.0.5882.0
* Revert "WIP: 4658680: Convert /content/browser to use ARC"
This reverts commit c8559ea448.
* Revert "4669995: Remove CFToNSCast and NSToCFCast"
This reverts commit 38e145f33d.
* chore: bump chromium in DEPS to 117.0.5874.0
* 4661244: Convert /content/browser/renderer_host to use ARC
https://chromium-review.googlesource.com/c/chromium/src/+/4661244
* 4653209: Convert /ui/views:views to use ARC
https://chromium-review.googlesource.com/c/chromium/src/+/4653209
* chore: fixup mas_disable_remote_accessibility.patch
* chore: fixup render_widget_host_view_mac.patch
* chore: update to newer clang
* chore: bump chromium in DEPS to 117.0.5884.1
(cherry picked from commit a3879acfde8f3d962d58d6ad0632164ccb88ee63)
* 4669995: Remove CFToNSCast and NSToCFCast
https://chromium-review.googlesource.com/c/chromium/src/+/4669995
(cherry picked from commit 38e145f33d)
(cherry picked from commit b1224ab7e00aedbd0e5dc78ebb3c6162573b28c4)
* 4658680: Convert /content/browser to use ARC
https://chromium-review.googlesource.com/c/chromium/src/+/4658680
(cherry picked from commit 77039a323b9ebb3e8edb3a92a3b94a8d7d026a32)
* Rename and cleanup ExtensionsBrowserClient functions
| https://chromium-review.googlesource.com/c/chromium/src/+/4665670
(cherry picked from commit 677a2e646a8d82da60dc252b08b320c3ddff6be6)
* chore: bump chromium in DEPS to 117.0.5886.0
* chore: update patches
* Revert "chore: update patches"
This reverts commit db9294f944.
* Revert "chore: bump chromium in DEPS to 117.0.5886.0"
This reverts commit a7de0276e6.
* build: use built toolchains instead of locally installed VSCode
* fixup: build: use built toolchains instead of locally installed VSCode
* chore: add missing mojo dep
---------
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: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* fix: use StartUpdating method for PipeWire capturer
Fixed a crash related to PipeWire capturer by adapting to Chromium's
interface changes. Chromium expects a call to
`NativeDesktopMediaList::StartUpdating` with an implementation of
`DesktopMediaListObserver` for delegated capturers like PipeWire. This
interface allows listening to user permission events and listing
sources only after the user has made a choice on the permission dialog.
The interface has been implemented by an inner class to allow listening
to screen and window capture permissions concurrently using two
instances of the class. A patch that was resetting the capturer on the
first refresh has been changed to exclude PipeWire. PipeWire capturer
object will follow the lifecycle of `NativeDesktopMediaList`, as is the
case in Chromium.
Fixes#37463
* fix: wait for thumbnails from PipeWire when necessary
The PipeWire stream starts after the dialog is dismissed. If the sources
are listed immediately afterwards, the thumbnail may not have been
generated by that time. Explicitly wait for both thumbnail generation
and a selection on the source dialog before listing sources.
* chore: bump chromium in DEPS to 117.0.5846.0
* chore: update patches
* 4628901: Bump the macOS deployment target to 10.15
https://chromium-review.googlesource.com/c/chromium/src/+/4628901
* 4593350: [Private Network Access] Trigger Permission Prompt
https://chromium-review.googlesource.com/c/chromium/src/+/4593350
* 4631011: Remove unlaunched "InstallReplacementAndroidApp" Platform App APIs
https://chromium-review.googlesource.com/c/chromium/src/+/4631011
* chore: disable API deprecation warnings in NSKeyedArchiver
* chore: update libcxx filenames
* chore: bump chromium in DEPS to 117.0.5848.2
* chore: update feat_add_set_theme_source_to_allow_apps_to.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4629743
No manual changes; patch succeeded with fuzz
* chore: update process_singleton.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4605398
Trivial manual patch adjustments to account for code shear.
* chore: remove electron::BrowserContext::GetMediaDeviceIDSalt()
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4608130
upstream tldr:
- content::BrowserContext::GetMediaDeviceIDSalt()
- content::ContentBrowserClient::ArePersistentMediaDeviceIDsAllowed()
+ content::ContentBrowserClient::GetMediaDeviceIDSalt()
This commit leaves ElectronBrowserContext::GetMediaDeviceIDSalt() in
place (now non-virtual, non-override). It is now called by the new
function ElectronBrowserClient::GetMediaDeviceIDSalt().
As a followup, we might want to consider using the new upstream
media_device_salt::MediaDeviceSaltService and removing our
electron::MediaDeviceIDSalt code. CC @MarshallOfSound for 2nd
opinion since he has done the most work on MediaDeviceIDSalt and
may have more context.
* chore: fix iwyu breakage
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4629624
electron_browser_main_parts.cc uses ui::ColorProviderManager but didn't
include it. Things worked anyway because we got it indirectly from
content/public/browser/web_contents.h until 4629624.
* chore: remove call to base::mac::IsAtLeastOS10_14
upstream has bumped minimum version to 10.15 so this call is moot?
* chore: remove obsolete API_AVAILABLE calls in IAP
upstream has bumped minimum version to 10.15 so this call is moot?
* chore: remove obsolete API_AVAILABLE calls in electron_application_delegate
upstream has bumped minimum version to 10.15 so this call is moot?
* chore: remove broken-before-macOS-10.15 patch in mas_avoid_usage_of_private_macos_apis.patch
Upstream has bumped minimum to macOS 10.15
* chore: remove @available(macOS 10.14) check
Upstream minimum requirement for macOS is now 10.15
* chore: update patches
* chore: bump chromium in DEPS to 117.0.5850.0
* chore: update patches
* chore: bump chromium in DEPS to 117.0.5852.0
* chore: update patches
* Move two params from NetworkContextParams to NetworkContextFilePaths.
https://chromium-review.googlesource.com/c/chromium/src/+/4615930
* WebUSB: Add exclusionFilters to USBRequestDeviceOptions
https://chromium-review.googlesource.com/c/chromium/src/+/4614682
* Convert /chrome/browser/ui to use ARC
https://chromium-review.googlesource.com/c/chromium/src/+/4615920
* fixup! Bump the macOS deployment target to 10.15
* fixup! Bump the macOS deployment target to 10.15
* chore: update libcxx files
* win: Remove 10Glass from Windows10Glass function and var names
https://chromium-review.googlesource.com/c/chromium/src/+/4641314
* chore: revert 392e5f43 from chromium
* Add an ExecutionContext to ScriptState
https://chromium-review.googlesource.com/c/chromium/src/+/4609446
* fixup! Add an ExecutionContext to ScriptState
* chore: fix header
* Revert "chore: revert 392e5f43 from chromium"
This reverts commit b7f782943e4ce83cae8cd35780d8d3618cf0772c.
* fix: return correct min/max sizes in WinFrameView
* fixup! Revert chore: revert 392e5f43 from chromium
* fixup! Add an ExecutionContext to ScriptState
* Revert "fixup! Revert chore: revert 392e5f43 from chromium"
This reverts commit 7e2c7281abfc4f309255339fdba073d90a9ae3eb.
* Revert "fix: return correct min/max sizes in WinFrameView"
This reverts commit 3f418b1ab5155686730e087ae6cabe4a21b4bb61.
* Revert "Revert "chore: revert 392e5f43 from chromium""
This reverts commit 56296d8b7c434147e032e3c3b08c0e371b6c27ba.
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
* refactor: use constexpr lookup table in electron_api_web_contents.cc
* refactor: make KeyboardCodeFromStr() private
it is only used as a helper to KeyboardCodeFromStr()
* chore: savepoint
* chore: make lint happy
* fixup! refactor: make KeyboardCodeFromStr() private
* refactor: use constexpr lookup table in electron_url_loader_factory
* refactor: use constexpr lookup table in electron_api_tray
* refactor: use constexpr lookup table in web_contents_preferences.cc
* refactor: use constexpr lookup table in content_converter