Robo
f68184a9f9
feat: add error event for utility process ( #43774 )
...
* feat: add error event for utility process
* chore: use public report api
* chore: fix lint
* doc: mark error event as experimental
---------
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2024-09-27 10:17:06 +09:00
Charles Kerr
8ae5aacc8c
refactor: declare gin::Wrapper subclasses as final ( #43527 )
...
As per the gin docs: "Wrappable<T> explicitly does not support further
subclassing of T. Subclasses of Wrappable<T> should be declared final."
2024-09-04 18:40:02 -05:00
Robo
9b166b3ed4
feat: support app#login event for utility process net requests ( #42631 )
...
* feat: support app#login event for utility process net requests
* chore: address review feedback
* GlobalRequestID: Avoid unwanted inlining and narrowing int conversions
Refs https://chromium-review.googlesource.com/c/chromium/src/+/5702737
2024-08-14 11:36:47 +09:00
Charles Kerr
aa23198ad8
chore: remove more unused #include calls ( #43000 )
...
* chore: in shell/renderer/renderer_client_base.h, remove include media/base/key_systems_support_registration.h
last use removed in c670e38b
(##41610)
* chore: iwyu electron/fuses.h
* chore: iwyu media/base/video_frame.h
* chore: iwyu base/functional/callback.h
* chore: iwyu base/task/cancelable_task_tracker.h
* chore: iwyu shell/browser/draggable_region_provider.h
* chore: iwyu shell/browser/ui/inspectable_web_contents_view.h
* chore: iwyu ui/aura/window.h
* chore: iwyu ui/base/win/shell.h
* chore: iwyu ui/display/win/screen_win.h
* chore: iwyu ui/gfx/geometry/insets.h
* chore: iwyu ui/display/display.h
* chore: iwyu ui/gfx/geometry/skia_conversions.h
* chore: iwyu ui/gfx/geometry/rect_conversions.h
* chore: iwyu ui/gfx/geometry/point.h
* chore: iwyu ui/gfx/scoped_canvas.h
* chore: iwyu ui/gfx/image/image.h
* chore: iwyu ui/accessibility/ax_node_data.h
* chore: iwyu ui/views/animation/ink_drop_highlight.h
* chore: iwyu ui/gfx/font_list.h
* chore: iwyu ui/linux/nav_button_provider.h
* chore: iwyu shell/browser/ui/views/frameless_view.h
* chore: iwyu services/metrics/public/cpp/ukm_source_id.h
* chore: iwyu net/http/http_util.h
* chore: iwyu net/base/mime_util.h
* chore: iwyu content/public/common/content_client.h
* chore: iwyu <list>
* chore: iwyu <optional>
* chore: iwyu <memory>
* chore: iwyu base/files/file_path.h
* chore: iwyu ui/base/cursor/cursor.h
* chore: iwyu build/build_config.h
* chore: iwyu content/public/browser/web_contents.h
* chore: iwyu shell/browser/hid/hid_chooser_context.h
* chore: iwyu shell/common/platform_util.h
* chore: iwyu base/task/single_thread_task_runner.h
* chore: iwyu content/browser/renderer_host/render_widget_host_impl.h
* chore: iwyu content/public/browser/render_widget_host.h
* chore: iwyu shell/browser/electron_browser_context.h
* chore: iwyu content/public/browser/web_contents_observer.h
* chore: iwyu content/public/browser/render_frame_host.h
* chore: iwyu content/public/browser/media_stream_request.h
* chore: iwyu chrome/common/chrome_paths.h
* chore: iwyu chrome/browser/icon_manager.h
* chore: iwyu printing/print_settings.h
* chore: iwyu renderer/pepper_helper.h
* chore: iwyu shell/browser/api/process_metric.h
* chore: iwyu shell/browser/electron_browser_client.h
* chore: iwyu shell/browser/electron_browser_context.h
* chore: iwyu shell/browser/api/electron_api_session.h
* chore: iwyu shell/browser/api/electron_api_app.h
* chore: iwyu shell/browser/ui/views/client_frame_view_linux.h
* chore: iwyu shell/browser/native_window_views.h
* chore: iwyu base/win/windows_version.h
* chore: iwyu shell/common/electron_paths.h
* chore: iwyu content/public/common/content_switches.h
* chore: iwyu third_party/skia/include/core/SkRRect.h
* chore: iwyu third_party/skia/include/core/SkBitmap.h
* chore: iwyu third_party/skia
* chore: iwyu shell/browser/osr/osr_host_display_client.h
* chore: iwyu shell/browser/login_handler.h
* chore: iwyu shell/browser/javascript_environment.h
* chore: iwyu shell/browser/event_emitter_mixin.h
* fix: mac
* fix: mac
* chore: iwyu base/nix/xdg_util.h
* fix: win
* fix: win
* fix: win
* fix: win
2024-07-25 11:25:45 +02:00
Shelley Vohr
8e8ea3ee8b
fix: MessagePort closing unexpectedly with non-cloneable objects ( #42535 )
...
* fix: MessagePort closing unexpectedly with non-cloneable objects
* fix: handle serialization failure in parentPort
2024-06-19 11:27:07 +02:00
Shelley Vohr
7f3dc7d4ce
fix: utilityProcess exit codes ( #42297 )
2024-06-07 10:06:00 +02:00
Shelley Vohr
4ded4d16a8
fix: destroy NodeService
message pipe last ( #41277 )
...
refactor: destroy NodeService message pipe last
2024-02-09 22:44:35 +01:00
Devraj Mehta
8c71e2adc9
feat: add net module to utility process ( #40017 )
...
* 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>
2024-01-04 16:20:37 -05:00
David Sanders
cf5f0419f1
chore: fix some typos ( #40506 )
2023-11-12 19:51:56 -08:00
Charles Kerr
a1c44a18e2
fix: NodeService order-of-destruction issue ( #39783 )
...
* 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
2023-09-12 12:27:14 +02:00
Charles Kerr
35969939a1
refactor: node::Environment self-cleanup ( #39604 )
...
* chore: savepoint
* chore: turn raw_ptr tests back off
2023-08-23 09:56:16 -04:00
Charles Kerr
5ad8b4b7d1
chore: remove unused std includes ( #38767 )
2023-06-14 11:07:18 -07:00
electron-roller[bot]
de192c2db2
chore: bump node to v18.16.0 (main) ( #37973 )
...
* chore: bump node in DEPS to v18.16.0
* build,test: add proper support for IBM i
https://github.com/nodejs/node/pull/46739
* lib: enforce use of trailing commas
https://github.com/nodejs/node/pull/46881
* src: add initial support for single executable applications
https://github.com/nodejs/node/pull/45038
* lib: do not crash using workers with disabled shared array buffers
https://github.com/nodejs/node/pull/41023
* src: remove shadowed variable in OptionsParser::Parse
https://github.com/nodejs/node/pull/46672
* src: allow embedder control of code generation policy
https://github.com/nodejs/node/pull/46368
* src: allow optional Isolate termination in node::Stop()
https://github.com/nodejs/node/pull/46583
* lib: fix BroadcastChannel initialization location
https://github.com/nodejs/node/pull/46864
* chore: fixup patch indices
* chore: sync filenames.json
* fix: add simdutf dep to src/inspector BUILD.gn
- https://github.com/nodejs/node/pull/46471
- https://github.com/nodejs/node/pull/46472
* deps: replace url parser with Ada
https://github.com/nodejs/node/pull/46410
* tls: support automatic DHE
https://github.com/nodejs/node/pull/46978
* fixup! src: add initial support for single executable applications
* http: unify header treatment
https://github.com/nodejs/node/pull/46528
* fix: libc++ buffer overflow in string_view ctor
https://github.com/nodejs/node/pull/46410
* test: include strace openat test
https://github.com/nodejs/node/pull/46150
* fixup! fixup! src: add initial support for single executable applications
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2023-04-18 22:23:11 +02:00
Shelley Vohr
6395898a79
refactor: use associated v8::Context
for event setup ( #37355 )
...
refactor: use associated v8::Context for event setup
2023-02-22 10:03:46 +01:00
Shelley Vohr
478ce96914
fix: avoid using v8 on Isolate termination ( #35766 )
...
* fix: avoid using v8 on Isolate termination
* chore: refactor for review
---------
Co-authored-by: electron-patch-conflict-fixer[bot] <83340002+electron-patch-conflict-fixer[bot]@users.noreply.github.com>
2023-02-09 09:48:49 +01:00
Milan Burda
35a9e67dba
chore: rename built-in modules to bindings to match naming update in node ( #37182 )
2023-02-09 10:31:38 +09:00
electron-roller[bot]
d02c9f8bc6
chore: bump chromium to 111.0.5544.3 (main) ( #36820 )
...
* chore: bump chromium in DEPS to 111.0.5522.0
* chore: bump chromium in DEPS to 111.0.5524.0
* chore: bump chromium in DEPS to 111.0.5526.0
* chore: bump chromium in DEPS to 111.0.5528.0
* chore: update patches/chromium/mas_avoid_usage_of_private_macos_apis.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4132807
Fix simple code shear
* chore: update patches/chromium/unsandboxed_ppapi_processes_skip_zygote.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4130675
Fix simple code shear
* chore: update patches/chromium/hack_plugin_response_interceptor_to_point_to_electron.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4144281
Fix simple code shear; applied cleanly w/patch-fuzz
* chore: update patches/chromium/disable_unload_metrics.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4126173
Fix simple code shear; applied cleanly w/patch-fuzz
* chore: update patches/chromium/feat_add_data_parameter_to_processsingleton.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4144281
Fix simple code shear; applied cleanly w/patch-fuzz
* chore: update patches/chromium/preconnect_manager.patch
https://chromium-review.googlesource.com/c/chromium/src/+/4144281
Fix simple code shear; applied cleanly w/patch-fuzz
* chore: update patches/v8/force_cppheapcreateparams_to_be_noncopyable.patch
https://chromium-review.googlesource.com/c/v8/v8/+/3533019
Fix simple code shear; applied cleanly w/patch-fuzz
* chore: update patches
* chore: update patches/chromium/add_maximized_parameter_to_linuxui_getwindowframeprovider.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4128765
Upstream added a new call to HeaderContext(), whose signature we have patched
* chore: bump chromium in DEPS to 111.0.5530.0
* chore: update patches
* Move ChildProcessHost* from content/common to content/browser
Xref: Move ChildProcessHost* from content/common to content/browser
* Remove RenderViewHostChanged
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4134103
[upstream removal of RenderViewHostChanged]
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4092763
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4093234
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4133892
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4134103
[examples of upstream code adjusting to the change]
Upstream handles this change in roughly two approaches:
1. Move the code over to RenderFrameHostChanged(old_host, new_host)
but test for new_host->IsInPrimaryMainFrame() before acting
2. Migrate to the PrimaryPageChanged(page) API and use
page.GetMainDocument() to get the RenderFrameHost.
I've chosen 1. because electron_api_web_contents needed that pointer
to old_host to call RemoveInputEventListener(), but I may be missing
some context & would appreciate review on this commit.
* Make electron/shell/browser/relauncher_win.cc use <winternl.h>
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4129135
Many internal Windows types are now available in winternl.h
so upstrem no longer defines the types themselves.
* Move ChildProcessHost* from content/common to content/browser
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4134795
* fixup! Make electron/shell/browser/relauncher_win.cc use <winternl.h>
winternl.h does not define the field we need, so clone the struct Chromium was using into unnamed namespace
* fixup! Move ChildProcessHost* from content/common to content/browser
chore: update #includes too
* chore: bump chromium in DEPS to 111.0.5532.0
* chore: sync patches/chromium/pepper_plugin_support.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4133323
manually reync patch; no code changes
* chore: sync patches/chromium/mas_no_private_api.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4143865
the content/common/pseudonymization_salt.cc patch is no longer needed
* chore: sync patches/chromium/mas_disable_remote_accessibility.patch
patch-fuzz update; no manual changes
* chore: sync patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4111725
manually reync patch; no code changes
* chore: sync patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4133323
manually reync patch; no code changes
* chore: sync patches/v8/fix_build_deprecated_attribute_for_older_msvc_versions.patch
Xref: https://chromium-review.googlesource.com/c/v8/v8/+/4127230
patch-fuzz update; no manual changes
* chore: rebuild patches
* fixup! Remove RenderViewHostChanged
Use PrimaryPageChanged()
* chore: remove unused method TabsUpdateFunction::OnExecuteCodeFinished()
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4133991
This private, already-unused function showed up as a FTBFS because it
took a base::ListValue parameter and ListValue was removed upstream.
* task posting v3: remove includes of runner handles and IWYU task runners
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4133323
* chore: lint
* chore: more lint
* fixup! task posting v3: remove includes of runner handles and IWYU task runners
macOS, too
* fixup! task posting v3: remove includes of runner handles and IWYU task runners
* chore: bump chromium in DEPS to 111.0.5534.0
* chore: sync patches/chromium/allow_new_privileges_in_unsandboxed_child_processes.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4141862
patch-fuzz update; no manual changes
* chore: sync patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4153110
Sync to minor upstream changes. Add const correctness.
* chore: sync electron/patches/chromium/feat_configure_launch_options_for_service_process.patch
https://chromium-review.googlesource.com/c/chromium/src/+/4141862
patch-fuzz update; no manual changes
* chore: patches/v8/fix_build_deprecated_attribute_for_older_msvc_versions.patch
sync https://chromium-review.googlesource.com/c/v8/v8/+/4147787
patch-fuzz update; no manual changes
* chore: update patches
* chore: bump chromium in DEPS to 111.0.5536.0
* chore: sync patches/chromium/allow_new_privileges_in_unsandboxed_child_processes.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4141863
Sync with upstream code changes. Minor code golf for readability.
Note: upstream is laying groundwork for being able to work off of env vars
instead of switches. Doesn't affect us yet but worth being aware of.
> + // Environment variables could be supported in the future, but are not
> + // currently supported when launching with the zygote.
* chore: update patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4126836
patch-fuzz update; no manual changes
* chore: sync electron/patches/chromium/feat_configure_launch_options_for_service_process.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4141863
manual sync
* chore: sync electron/patches/v8/fix_build_deprecated_attribute_for_older_msvc_versions.patch
https://chromium-review.googlesource.com/c/v8/v8/+/4147788
fuzz-patch
* chore: rebuild patches
* chore: bump chromium in DEPS to 111.0.5538.0
* chore: bump chromium in DEPS to 111.0.5540.0
* chore: update patches
* Remove sdk_forward_declarations
https://chromium-review.googlesource.com/c/chromium/src/+/4166680
* task posting v3: Remove task runner handles from codebase entirely
Refs https://chromium-review.googlesource.com/c/chromium/src/+/4150928
* Cleanup child_process_launcher_helper*
Refs https://chromium-review.googlesource.com/c/chromium/src/+/4141863
* fix: utilityprocess spec on macOS
* fix: build on windows
Refs https://chromium-review.googlesource.com/c/chromium/src/+/4141863
* chore: fix lint
* chore: bump chromium 111.0.5544.3
* chore: gen filenames.libcxx.gni
* Add check for Executable+Writable handles in renderer processes.
Refs https://chromium-review.googlesource.com/c/chromium/src/+/3774416
* fixup! Add check for Executable+Writable handles in renderer processes.
* 4143761: [110] Disable SwiftShader for WebGL on M1 Macs.
https://chromium-review.googlesource.com/c/chromium/src/+/4143761
(cherry picked from commit 2f74db3c2139424c416f92d9169aeaa8a2f9c1ec)
* chore: bump chromium to 111.0.5555.0
* 56085: Remove hmac.h include from ssl.h.
https://boringssl-review.googlesource.com/c/boringssl/+/56085
* 4167020: Remove forwarding headers
https://chromium-review.googlesource.com/c/chromium/src/+/4167020
* chore: bump chromium to 111.0.5559.0
* 4181044: Restrict WebCursor usage to RenderWidgetHostViewAura
https://chromium-review.googlesource.com/c/chromium/src/+/4181044
* 4189437: views: rename ink_drop_host_view to ink_drop_host
https://chromium-review.googlesource.com/c/chromium/src/+/4189437
* chore: bump chromium to 111.0.5560.0
* 4167016: win7dep: remove non aeroglass code
https://chromium-review.googlesource.com/c/chromium/src/+/4167016
* fixup after rebase: Remove forwarding header
s https://chromium-review.googlesource.com/c/chromium/src/+/4167020
* 4125755: Reland "Reject getDisplayMedia calls without user activation"
https://chromium-review.googlesource.com/c/chromium/src/+/4125755
* test: add workaround
* chore: update patches
* fix: alter coreModuleRegExp to prevent arm crash
* Revert "fix: alter coreModuleRegExp to prevent arm crash"
This reverts commit 7e50630c98137831a711c5abdbc8809e60cf1d73.
* 4218354: Disable the use of preserve_most on arm64 Windows
https://chromium-review.googlesource.com/c/v8/v8/+/4218354
* chore: review changes
---------
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: deepak1556 <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2023-02-03 12:43:42 +01:00
Robo
da0fd286b4
feat: UtilityProcess API ( #34980 )
...
* chore: initial scaffolding
* chore: implement interface and docs
* chore: address code style review
* fix: cleanup of utility process on shutdown
* chore: simplify NodeBindings::CreateEnvironment
* chore: rename disableLibraryValidation => allowLoadingUnsignedLibraries
* chore: implement process.parentPort
* chore(posix): implement stdio pipe interface
* chore(win): implement stdio interface
* chore: reenable SetNodeOptions for utility process
* chore: add specs
* chore: fix lint
* fix: update kill API
* fix: update process.parentPort API
* fix: exit event
* docs: update exit event
* fix: tests on linux
* chore: expand on some comments
* fix: shutdown of pipe reader
Avoid logging since it is always the case that reader end of
pipe will terminate after the child process.
* fix: remove exit code check for crash spec
* fix: rm PR_SET_NO_NEW_PRIVS for unsandbox utility process
* chore: fix incorrect rebase
* fix: address review feedback
* chore: rename utility_process -> utility
* chore: update docs
* chore: cleanup c++ implemantation
* fix: leak in NodeServiceHost impl
* chore: minor cleanup
* chore: cleanup JS implementation
* chore: flip default stdio to inherit
* fix: some api improvements
* Support cwd option
* Remove path restriction for modulePath
* Rewire impl for env support
* fix: add tests for cwd and env option
* chore: alt impl for reading stdio handles
* chore: support message queuing
* chore: fix lint
* chore: new UtilityProcess => utilityProcess.fork
* fix: support for uncaught exception exits
* chore: remove process.execArgv as default
* fix: windows build
* fix: style changes
* fix: docs and style changes
* chore: update patches
* spec: disable flaky test on win32 arm CI
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-10-19 22:49:49 -07:00