* chore: bump chromium in DEPS to 146.0.7652.0
* fix(patch-conflict): update mas_avoid_private_macos_api_usage context for constrainFrameRect method
The upstream CL added a new constrainFrameRect:toScreen: method override to
NativeWidgetMacNSWindow as part of headless mode window zoom implementation.
The MAS patch's #endif for frameViewClassForStyleMask now correctly appears
after that method, since constrainFrameRect is a public API override that
doesn't need to be guarded.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7487666
* fix(patch-conflict): update printing.patch for base::DictValue rename
Updated printing.patch to use the new base::DictValue type name instead of
base::Value::Dict following Chromium's type renaming change. This affects
CompleteUpdatePrintSettings() signature and related code.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7509820
* fix(patch-conflict): update accessibility_ui patch for base::DictValue/ListValue rename
Updated adjust_accessibility_ui_for_electron.patch to use the new
base::DictValue and base::ListValue type names instead of base::Value::Dict
and base::Value::List following Chromium's type renaming change.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7509820
* chore: update patches
* 6625736: Rename DURABLE_STORAGE to PERSISTENT_STORAGE for consistency | https://chromium-review.googlesource.com/c/chromium/src/+/6625736
* chore: bump chromium in DEPS to 146.0.7653.0
* chore: update patches
* 7000847: add type tag to v8::External for gin_helper function templates
The upstream gin function templates now use v8::ExternalPointerTypeTag
for type safety when using v8::External. Updated Electron's forked
gin_helper function template to use the same kGinInternalCallbackHolderBaseTag
that Chromium's gin uses.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7000847
* fix(patch-update): extend V8 Object API deprecation patch for Node.js
Extended the existing patch to cover additional files that use
GetAlignedPointerFromInternalField and SetAlignedPointerInInternalField:
- src/stream_base-inl.h
- src/udp_wrap.cc
- src/js_udp_wrap.cc
- src/node_process_methods.cc
- src/node_snapshotable.cc
- src/base_object.cc
These APIs now require an EmbedderDataTypeTag parameter.
Ref: https://chromium-review.googlesource.com/c/v8/v8/+/7087956
* 7000847: add type tag to v8::External calls in shared_texture
Updated v8::External::New and v8::External::Value calls to use the
kExternalPointerTypeTagDefault tag as required by the V8 API change
that deprecates the tagless versions.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7000847
* 7508687: use ChildProcessId for file permission APIs
The ChildProcessSecurityPolicy::CanReadFile and GrantReadFile APIs
now require ChildProcessId instead of int. Updated to use GetID()
instead of GetDeprecatedID() for these specific calls.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7508687
* 7000847: add type tag to v8::External calls in callback and osr_converter
The v8::External API now requires an EmbedderPointerTypeTag parameter
for both New() and Value() methods to improve V8 sandbox type safety.
Updated calls in:
- callback.cc: TranslatorHolder constructor and CallTranslator
- osr_converter.cc: OffscreenSharedTextureValue converter
Ref: https://chromium-review.googlesource.com/c/v8/v8/+/7000847
* fixup! 7087956: [api] Promote deprecation of v8::Context and v8::Object API methods
Extended the Node.js patch to cover histogram.cc which also uses
SetAlignedPointerInInternalField and GetAlignedPointerFromInternalField
APIs that now require the EmbedderDataTypeTag parameter.
Ref: https://chromium-review.googlesource.com/c/v8/v8/+/7087956
* chore: bump chromium in DEPS to 146.0.7655.0
* chore: update patches
* 7509043: update WebSpellingMarker type for API change
The upstream Chromium API changed - WebSpellingMarker was moved from a
nested type within WebTextCheckClient to a standalone type in the blink
namespace.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7509043
* 7498491: update process_id to use OriginatingProcess type
The upstream Chromium API changed - URLLoaderFactoryParams::process_id
was changed from an integer to a union type network::OriginatingProcess
that distinguishes between browser and renderer processes.
- For browser process requests, use OriginatingProcess::browser()
- For renderer process lookups, check !is_browser() and use
renderer_process().value() to get the child_id
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7498491
* 5710330: Add crash keys to debug NativeWidgetMacNSWindowBorderlessFrame exception | https://chromium-review.googlesource.com/c/chromium/src/+/5710330
5710330 added a new NSNextStepFrame interface extension and
implementations for NativeWidgetMacNSWindowTitledFrame and
NativeWidgetMacNSWindowBorderlessFrame. These use private macOS APIs
that are not available in Mac App Store builds.
* chore: update patches
* chore: bump chromium in DEPS to 146.0.7661.0
* chore: bump chromium in DEPS to 146.0.7663.0
* fix(patch-conflict): update accessibility_ui for string_view API change
Upstream removed redundant std::string(default_api_type) conversion as part
of a string_view optimization cleanup. Updated patch context to match.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7514107
* fix(patch-conflict): update service process launch options for sandbox API refactor
Upstream removed content/common/sandbox_init_win.cc and
content/public/common/sandbox_init_win.h, moving the functionality directly
into ChildProcessLauncherHelper. Updated patch to call
sandbox::policy::SandboxWin::StartSandboxedProcess directly with the
LaunchOptions pointer instead of going through the removed helper.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7528253
* fix(patch-conflict): update MAS safestorage for keychain API refactor
Upstream refactored KeychainPassword::GetPassword() to use a new
GetPasswordImpl() helper function with improved error tracking via
base::expected<std::string, OSStatus>. Adapted patch to use the new
GetPasswordImpl with the suffixed account name and handle migration
from legacy accounts through the new API.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7516438
* chore: update patches
* chore: bump chromium in DEPS to 146.0.7663.0
* fix: base::Value::Dict -> base::DictValue
https://chromium-review.googlesource.com/c/chromium/src/+/7513889
* fix: include new cookie exclusion reason
https://chromium-review.googlesource.com/c/chromium/src/+/7486527
* fix: enable libc++ ABI flag for trivially copyable std::vector<bool>
Required for changes introduced in the following CL
https://chromium-review.googlesource.com/c/chromium/src/+/7513653
* fixup! fix: base::Value::Dict -> base::DictValue https://chromium-review.googlesource.com/c/chromium/src/+/7513889
* fix: spellcheck not working in tests
https://chromium-review.googlesource.com/c/chromium/src/+/7452579
* fix: cookie test failing due to multiple rejection reasons
https://chromium-review.googlesource.com/c/chromium/src/+/7506629
* fix: macos sizing unmaximized window incorrectly
https://chromium-review.googlesource.com/c/chromium/src/+/7487666
Changes to headless mode caused the unmaximized window to subtract
the height of the menubar.
* fix: skip tests for incompatible BoringSSL ML-DSA crypto
https://boringssl-review.googlesource.com/c/boringssl/+/84929
* test: fix pseudonymization registration in utility process on Linux
Ref: 7486913: Pass pseudonymization salt via shared memory at process launch | https://chromium-review.googlesource.com/c/chromium/src/+/7486913
* fix: restore MAS patch-outs
Restores some `#if !IS_MAS_BUILD()` gates dropped in 773054ad59
* fixup! 7508687: use ChildProcessId for file permission APIs
* fixup! fix(patch-conflict): update MAS safestorage for keychain API refactor
* chore: add note about parallel upstream change
* fixup! Merge remote-tracking branch 'origin/main' into roller/chromium/main
* Revert "fixup! 7508687: use ChildProcessId for file permission APIs"
This reverts commit 05c43e4e5d.
The _impl version has the signature, but not the public interface. :oof:
* fixup! fix(patch-conflict): update MAS safestorage for keychain API refactor
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
Co-authored-by: Samuel Maddock <samuelmaddock@electronjs.org>
Co-authored-by: clavin <clavin@electronjs.org>
* refactor: make `DataPipeHolder` inherit from `gin::Wrappable`
* test: add a test to ensure GC clears the data pipe holder
* chore: e patches all
* chore: e patches all (trivial only)
* refactor: make AllDataPipeHolders a base::flat_map of WeakPersistent
* feat(macos): add --disable-geolocation-mac command-line flag
* internally deny geolocation requests if flag set
e
* wrap PermissionRequestHandler instead
* wrap custom handler and deny regardless of response
* Update docs/api/command-line-switches.md
Co-authored-by: Will Anderson <will@itsananderson.com>
* resolving conflicts during rebase
* tests added
* tests added: minor changes
* move IsGeolocationDisabledViaCommandLine inside ElectronPermissionManager as a static member
* test: inject fixturesPath via --boot-eval
* Update shell/browser/electron_permission_manager.cc
Co-authored-by: Robo <hop2deep@gmail.com>
* chore: Fixup after merge
* fixup after merge
---------
Co-authored-by: Will Anderson <will@itsananderson.com>
Co-authored-by: Robo <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* refactor: make api::WebRequest inherit from gin::Wrappable
refactor: remove unused v8::Isolate* arg from WebRequest ctor
refactor: make electron::api::Session::web_request_ a cppgc::Member<api::WebRequest>
refactor: allocate api::WebRequest on cpp heap
refactor: modify Create(), Find(), and FindOrCreate() to return a WebRequest*
* refactor: ProxyingURLLoaderFactory takes a concrete api::WebRequest instead of a WebRequestAPI
Experimental commit to ensure `ProxyingURLLoaderFactory::web_request_api_`
won't be a dangling pointer.
* chore: fix doc shear
* refactor: use cppgc::WeakPersistent<> in ProxyingURLLoaderFactory
* refactor: make ProxyingURLLoaderFactory::web_request_ const
* refactor: make ProxyingWebSocket::web_request_ a cppgc::WeakPersistent<>
* add a gin::WeakCellFactory to api::WebRequest
* refactor: use a gin::WeakCell for the bound WebRequest argument in HandleOnBeforeRequestResponseEvent()
* chore: update patches
* refactor: Session::NetLog() returns a NetLog*
Use gin_helper's gin::Wrappable-to-v8::Local converter instead
of rewriting it.
* refactor: FromPath(base::FilePath&, gin::Arguments*) returns a Session*
refactor: FromPartition(std::string&, gin::Arguments*) returns a Session*
Use gin_helper's gin::Wrappable-to-v8::Local converter instead
of rewriting it.
* refactor: rename api::Session::CreateFrom() to api::Session::FromOrCreate()
This is both clearer and more consistent with other classes
* refactor: add Session::FromOrCreate(content::BrowserContext*)
* refactor: reimplement api::WebRequest::FromOrCreate() using api::Session::FromOrCreate()
* refactor: use base::PassKey to ensure WebRequest is only instantiated by Session
* refactor: remove WebRequest::From()
no longer needed; Session already guarantees uniqueness
* refactor: remove unused isolate arg from WebRequest ctor
* refactor: do not attach WebRequest to BrowserContext
no longer needed now that access goes through Session
* refactor: use gin::Arguments::ThrowTypeError() in AutoUpdater::SetFeedURL()
* refactor: use gin::Arguments::ThrowTypeError() in Browser::Focus()
* refactor: use gin::Arguments::ThrowTypeError() in SystemPreferences::SetUserDefault()
* refactor: use gin::Arguments::ThrowTypeError() in UtilityProcessWrapper::Create()
* refactor: use gin::Arguments::ThrowTypeError() in UtilityProcessWrapper::PostMessage()
* refactor: use gin::Arguments::ThrowTypeError() in ElectronBundleMover::ShouldContinueMove()
* refactor: use gin::Arguments::ThrowTypeError() in OnClientCertificateSelected()
* refactor: use gin::Arguments::ThrowTypeError() in Session::ClearData()
* refactor: use gin::Arguments::ThrowTypeError() in ElectronBrowserContext::DisplayMediaDeviceChosen()
* refactor: use gin::Arguments::ThrowTypeError() in WebContents::ReplaceMisspelling()
* refactor: use gin::Arguments::ThrowTypeError() in WebContents::Print()
* chore: iwyu shell/common/gin_helper/error_thrower.h
* chore: bump chromium in DEPS to 140.0.7330.0
* chore: bump chromium in DEPS to 140.0.7331.0
* chore: update patches
* fix: gn check failing on crashpad.h
Not yet sure what caused this
* fix: predictors::PreconnectManager -> content::PreconnectManager
CL: https://chromium-review.googlesource.com/c/chromium/src/+/6788473
* chore: bump chromium in DEPS to 140.0.7333.0
* chore: bump chromium in DEPS to 140.0.7335.0
* chore: bump chromium in DEPS to 140.0.7337.0
* chore: update patches
* chore: restore some gin utility
* 6804057: [Extensions] Validate nodoc is specified as a boolean in schemas
https://chromium-review.googlesource.com/c/chromium/src/+/6804057
* fixup! chore: restore some gin utility
* fixup! fix: predictors::PreconnectManager -> content::PreconnectManager CL: https://chromium-review.googlesource.com/c/chromium/src/+/6788473
* 6772346: Reset MouseWheelPhaseHandler state when trackpoint scroll is detected
https://chromium-review.googlesource.com/c/chromium/src/+/6772346
Not certain about what the "correct" argument to pass here is. A quick dive into the CL suggests that passing `false` is safe to keep things working. The blast radius if this assumption is wrong is that "fling" scroll gestures may not work as expected with the OSR.
* 6789383: Uninstall SODA language pack after 30 days of inactivity
https://chromium-review.googlesource.com/c/chromium/src/+/6789383
* chore: update libcxx filenames
* chore: bump chromium in DEPS to 140.0.7339.0
* chore: update patches
* fixup! 6772346: Reset MouseWheelPhaseHandler state when trackpoint scroll is detected https://chromium-review.googlesource.com/c/chromium/src/+/6772346
* chore: bump chromium in DEPS to 140.0.7339.2
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Samuel Maddock <smaddock@slack-corp.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: clavin <clavin@electronjs.org>
* refactor: add a v8::Isolate* arg to Constructible::GetConstructor()
* refactor: add a v8::Isolate* arg to NodeBindings::Initialize()
This is needed for the GetConstructor() call
* refactor: avoid v8::Context::GetIsolate() call in GetIpcObject() by taking it as an arg
* refactor: avoid v8::Context::GetIsolate() call in ipc_native::EmitIPCEvent() by taking it as an arg
* refactor: decouple api::Protocol from ElectronBrowserContext
now they do not know about each other
* refactor: make electron::api::ProtocolError private
* refactor: remove unused isolate arg in Protocol constructor
* refactor: use =default for trivial destructor
refactor: use GetDefaultStoragePartition()
Use GetDefaultStorageParition() instead of GetStoragePartition(nullptr)
- It improves code uniformity, since we use get-default everywhere else
- It's more readable
- It's marginally faster, since GetStoragePartition() has more steps
Added in 49b0a1bf4a
* chore: bump chromium in DEPS to 136.0.7054.0
* chore: update allow_in-process_windows_to_have_different_web_prefs.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5906158
patch applied manually due to context shear
* chore: e patches all
* refactor!: Session.clearStorageData(syncable)
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6309405
Remove syncable type from opts.quota in Session.clearStorageData(opts)
because it that category has been removed upstream.
BREAKING CHANGE: Removed ses.clearDataStorage({ quota: 'syncable' })
* docs: deprecate Session.clearDataStorage({ quota })
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.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
* refactor: use private inheritance in PushNotifications
* refactor: use private inheritance in electron::api::App
* refactor: use private inheritance in electron::api::BrowserWindow
* refactor: use private inheritance in electron::api::NativeTheme
* refactor: use private inheritance in electron::api::Tray
* refactor: use private inheritance in electron::api::Session
* refactor: use private inheritance in electron::api::WebContents
* refactor: use private inheritance in electron::api::DownloadItem
* refactor: use private inheritance in electron::api::MenuBar
* refactor: use private inheritance in ClearDataOperation
* refactor: use private inheritance in electron::api::Screen
* refactor: use private inheritance in electron::ElectronDesktopWindowTreeHostLinux
* refactor: use private inheritance in SpellCheckerHolder
* refactor: use private inheritance in electron::api::PowerMonitor
* refactor: use private inheritance in electron::api::BaseWindow
* refactor: use private inheritance in electron::api::AutoUpdater
* refactor: use private inheritance in electron::api::Menu
* refactor: use private inheritance in electron::api::NativeWindowViews
* refactor: use private inheritance in electron::ElectronBrowserClient
* refactor: use private inheritance in electron::AutofillPopupView
* refactor: use private inheritance in GtkMessageBox
* refactor: use private inheritance in electron::OffScreenRenderWidgetHostView
* refactor: use private inheritance in electron::InspectableWebContents
* refactor: use private inheritance in electron::ElectronUsbDelegate
* refactor: use private inheritance in electron::LoginHandler
* refactor: use private inheritance in WebFrameRenderer
* refactor: use private inheritance in electron::ElectronSerialDelegate
* refactor: use private inheritance in electron::ClientFrameViewLinux
* refactor: use private inheritance in electron::ElectronHidDelegate
* refactor: use private inheritance in IPCRenderer
* refactor: use private inheritance in electron::WinCaptionButtonContainer
* refactor: use private inheritance in electron::ElectronApiIPCHandlerImpl
* refactor: use private inheritance in electron::api::ServiceWorkerContext
* refactor: use private inheritance in ui::FileSelectHelper
* refactor: use private inheritance in electron::api::WebContentsView
* refactor: use private inheritance in electron::api::SimpleURLLoaderWrapper
* refactor: use private inheritance in electron::api::InAppPurchase
* refactor: use private inheritance in electron::api::Debugger
* refactor: use private inheritance in electron::ElectronWebContentsUtilityHandlerImpl
* refactor: use private inheritance in electron::OffScreenWebContentsView
* 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
* 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`