* chore: move as_byte_span() to new shell/common/mac_util.h
this way it can be used by multiple mm files
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fix: -Wunsafe-buffer-usage warnings in UNNotificationResponseToNSDictionary
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use base::HexEncode() instead of rolling our own
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fixup! chore: move as_byte_span() to new shell/common/mac_util.h
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fixup! chore: move as_byte_span() to new shell/common/mac_util.h
fix: move mac_util to the right place in filenames.gni
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>
* fix: do not build electron_plugin_info_host_impl.cc when plugins are disabled
it fails to build from source with this error:
../../content/public/browser/plugin_service.h:17:2: error: "Plugins should be enabled"
17 | #error "Plugins should be enabled"
* fix: FTBFS in printing_utils.cc when ENABLE_PDF is false
* fixup! fix: do not build electron_plugin_info_host_impl.cc when plugins are disabled
fix BUILD.gn linting
* chore: bump chromium in DEPS to 129.0.6645.0
* chore: update patches
* chore: bump chromium in DEPS to 129.0.6646.0
* refactor: remove ppapi dependency
PPAPI removal - https://issues.chromium.org/issues/40511450
PDF viewer migration - https://issues.chromium.org/issues/40511452
* chore: update patches
* chore: enable `content_enable_legacy_ipc`
We were indirectly relying on this via `enable_ppapi=true`, with
633a57d9b62da7850ef7946f6b101ed440d04cdd ppapi is now disabled and
this commit makes the dependency explicit.
* fix: gn check
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
* chore: remove unused electron::ObjectLifeMonitor
The last users were removed in June 2020 e1e73fa5f (#24115)
and May 2020 9d7ba982 (#23592).
* fixup! chore: remove unused electron::ObjectLifeMonitor
fix: oops
* feat: Implement password delegate for NSS (#41188)
Introduce an app event client-certificate-request-password. It allows
the user to display a UI to prompt for the password.
An alternative would have been to implement a class similar to
CryptoModulePasswordDialogView, to provide the UI. This might have been
simpler for the user, comparing to letting them implement the UI. But it
seems like electron does not have an i18n framework, so it's not
possible to provide a locale aware UI.
* fix lint:markdown error
* address review comments
* use a trampoline handler in JS. The api exposed is now app.setClientCertRequestPasswordHandler
* use properties on the Event object instead of positional parameters
* remove ChromeNSSCryptoModuleDelegate::OnPassword in favor of args->GetNext(&password_)
* address review comments second round
- backslash escape parametrized TypeScript
- rename hostName param to hostname
- use base::ScopedAllowBaseSyncPrimitivesForTesting
- and then, rename ChromeNSSCryptoModuleDelegate to ElectronNSSCryptoModuleDelegate
* Update docs/api/app.md
Co-authored-by: Sam Maddock <samuel.maddock@gmail.com>
* Update docs/api/app.md
Co-authored-by: Erick Zhao <erick@hotmail.ca>
---------
Co-authored-by: Arno Renevier <arnaud@switchboard.app>
Co-authored-by: Sam Maddock <samuel.maddock@gmail.com>
Co-authored-by: Erick Zhao <erick@hotmail.ca>
* refactor: use //ui/shell_dialogs on Linux
* fix: add proper filtering
* fix: add support for missing dialog features to //shell_dialogs
* fix: parent_window could be null
* chore: cleanup patch
* fix: use a OnceCallback in the sync implementation
* chore: remove stray debuglog
* Apply suggestions from code review
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use settings struct
* fix: show hidden file property checking
* chore: changes from review
* fix: multi selection for dialogs
---------
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.
* 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>
* 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
* 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>
* 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 c8559ea448ad93123865a6fa8af6fe2767e43396.
* Revert "4669995: Remove CFToNSCast and NSToCFCast"
This reverts commit 38e145f33d844e077b09e1fb119fae9d5d7bbc3e.
* 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 38e145f33d844e077b09e1fb119fae9d5d7bbc3e)
(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 db9294f9446492d4a3d63f5f3ecc551aeeeb2e26.
* Revert "chore: bump chromium in DEPS to 117.0.5886.0"
This reverts commit a7de0276e6e0eeecfdbb17f9bbc27c01b4bbfc24.
* 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>
* feat: remove enable_run_as_node flag
* drop features.isRunAsNodeEnabled()
* use IsEnvSet() helper in electron_main_linux.cc
* cleanup [[maybe_unused]]
---------
Co-authored-by: Milan Burda <miburda@microsoft.com>