fix: update shell.openExternal to correctly focus on external window (#44408)
* fix: Use openURL:configuration:completionHandler instead of openUrl
* test: add a test
* fix: add dispatch_async to replace GetUIThreadTaskRunner
* refactor: remove unused import
* fix: update to use BindPostTaskToCurrentDefault
* test: add regression test for window focus
* refactor: update to explicit task runner
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Alice Zhao <alice@makenotion.com>
* test: fixup flaky test
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* test: disable flaky protocol speed test on macOS
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* test: fixup flaky test in api-browser-window-spec.ts
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
fix: respect setAlwaysOnTop before showInactive on Linux under X11 (#44078)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: John Beutner <31829097+cptpcrd@users.noreply.github.com>
* fix: trace-startup crashing child process on macOS
Co-authored-by: deepak1556 <hop2deep@gmail.com>
* chore: disable test on linux arm
* chore: also disable on linux arm64
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
* test: refactor visibility-state-spec
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* ci: shard tests
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* test: update split-tests for use on Windows
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* test: run visibility-state-spec.ts first
Co-Authored-By: John Kleinschmidt <jkleinsc@electronjs.org>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* build: convert all release scripts to typescript (#44035)
* build: convert all release scripts to typescript
* fix test imports
* build: fix version bumper export
* refactor: use as const
* spec: fix bad type spec
* build: use ts-node to spawn the version-bumper (#44057)
Missed this in the tsification, we should probably call this via API instead of spawning a sub-proc?
* build: still colors
* 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>
* fixup! feat: add error event for utility process (#43774)
remove #include "electron/mas.h"
this header did not exist before c1c8fbfd9
---------
Co-authored-by: Robo <hop2deep@gmail.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* test: add tests dbus notification images
Provide a NativeImage icon in the notification tests and then inspect
the DBus message payload's `image_data` hint to see if it's correct.
This adds test coverage for LibnotifyNotification::Show() and for
GdkPixbufFromSkBitmap().
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: use the same notification_icon.png as in main
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
test: expect a `sender-pid` hint in Linux notifications.
This PR ensures that the `sender-pid` hint is set for new notifications.
It also updates the spec to confirm that DBus receives the hint and that
it has the correct value.
This fixes a spec failure when running libnotify >= 0.7.12 (2022-05-05).
Starting with that version, libnotify started injecting `sender-pid` if
not provided by the client. So our tests received a slightly different
DBus payload depending on what version of libnotify was installed,
causing our deep-equals tests to fail.
By always providing and testing the `sender-pid` hint, our behavior and
tests should be consistent across distros.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* build: add support for fetching github token from sudowoodo
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
* chore: update release notes cache for tests
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
* build: support nightlies repo correctly
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
* build: post token
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
* fix: restore Chromium default Content-Disposition header parsing
Co-authored-by: Milan Burda <milan.burda@gmail.com>
* Update api-web-request-spec.ts
Co-authored-by: Milan Burda <milan.burda@gmail.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Milan Burda <milan.burda@gmail.com>
`.destroy()` is an important method in the lifecycle of a Node.js
Readable stream. It is typically called to reclaim the resources
(e.g., close file descriptor). The only situations where calling
it manually isn't necessary are when the following events are
emitted first:
- `end`: natural end of a stream
- `error`: stream terminated due to a failure
Prior to this commit the ended state was incorrectly tracked together
with a pending internal error. It led to situations where the request
could get aborted during a read and then get marked as ended (having
pending error).
With this change we disentangle pending "error" and "destroyed" cases to
always properly terminate an active Node.js Readable stream.
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
* feat: add View#setBorderRadius
test: initial setBorderRadius tests
fix: robustly set border radius
chore: add PAUSE_CAPTURE_TESTS for easier screencap dev
feat: add view border radius support
test: view border radius
refactor: cleanup view code
* maybe delay capture to fix tests?
* refactor: retry screen captures in an attempt to fix flakiness
* refactor: ScreenCapture constructor no longer async
* increase screen capture timeout, feels a little short
* refactor: move rounded rect util into chromium_src
* skip some capture tests on mas
Fixes an issue where Chromium could crash on a dangling unretained pointer in one of several webRequest functions. This was happening as a result of the fact that we had outstanding blocking requests continue to reference state owned by ProxyingWebsocket and ProxyingURLLoaderFactory after the requests were destroyed.
This had been going on for a few years, and was likely leading to some ongoing memory issues. To fix this, we need to ensure that all state is cleaned up in OnRequestWillBeDestroyed. I chose to create a new BlockedRequest struct to do so, which approximates the approach that upstream takes. The complexities of doing so also made our templated approach more trouble than it felt worth, so i pried that apart into separate handlers.