Commit graph

23 commits

Author SHA1 Message Date
Fedor Indutny
55e7a47d70
fix: always terminate active Node Streams (#43056)
`.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>
2024-07-27 12:25:43 -05:00
Samuel Attard
a0a13ad623
build: fix macOS tests on GHA (#42524)
* build: use --frozen-lockfile

* build: don't include src/electron in src artifacts

* Use mac intel runner for mac-x64 tests

* test: debug mac tests not exiting

* skip navigator.serial tests on GHA

* TCC magic

* Fix release notes tests needing ELECTRON_GITHUB_TOKEN

* Add Azure env vars to gn check pipeline segment

* use RO token for tests

* temporarily disable codesign tests

* test: disable LoginItemSettings on x64 macOS

* test: bump up time on protocol test for slower machines

* fixup: use RO token for tests

---------

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2024-06-17 16:33:44 -07:00
Jeremy Rose
4e8c28fdf0
fix: data corruption in protocol.handle (#41894) 2024-04-22 13:40:01 -07:00
Henrik Gaßmann
80906c0adb
fix: properly stream uploadData in protocol.handle() (#41052)
* refactor(protocol): extract file stream factory

Increase readability by moving the file stream creation logic out of the
`uploadData` to request body conversion function.

* fix: properly flatten streams in `protocol.handle()`

Refs: electron/electron#39658

* fix: `protocol.handle()` filter null origin header

Refs: electron/electron#40754

* fix: remove obsolete TODO comment

Refs: electron/electron#38929

* fix: forward `Blob` parts in `protocol.handle()`

Refs: electron/electron#40826

* fix: explicitly error out on unknown chunk parts
2024-02-16 14:29:29 -05:00
Cheng Zhao
9aa73abe78
feat: enable code cache for custom protocols (#40544) 2023-12-06 11:22:41 +09:00
Milan Burda
f6e8544ef6
refactor: use replaceAll() instead of replace() when appropriate (#39721)
refactor: use replaceAll() instead of replace() when appropriate
2023-09-07 15:50:14 +09:00
Milan Burda
f27b034045
test: convert a few more specs to async/await (#39712) 2023-09-04 12:33:29 +02:00
Milan Burda
c9bae5da8e
refactor: use optional catch binding (#39232) 2023-07-27 10:53:45 -04:00
Shelley Vohr
b142fce229
fix: protocol.handle not intercepting file protocol (#39048)
fix: protocol.handle not intercepting file protocol
2023-07-12 11:42:49 +02:00
Milan Burda
d78f37ec8f
refactor: use node scheme imports in spec (#38487)
Co-authored-by: Milan Burda <miburda@microsoft.com>
2023-06-15 10:42:27 -04:00
Shelley Vohr
86824c070e
fix: validate response in protocol.handle() (#38587)
fix: validate response in protocol.handle()
2023-06-07 09:29:04 +02:00
Calvin
fa81f77f40
test: re-enable tests that aren't broken & remove old test (#38251) 2023-05-16 14:30:25 +02:00
Calvin
b8a21dbcd7
test: migrate to helpers & disabled tests list (#37513)
* test: migrate to helpers & disabled tests list

* can't disable a test suite

* correct condition

* address review comments
2023-04-04 09:48:51 -04:00
Jeremy Rose
fda8ea9277
feat: add protocol.handle (#36674) 2023-03-27 10:00:55 -07:00
Jeremy Rose
a3e3efe4c4
test: use node helpers for events.once and setTimeout promise (#37374) 2023-02-23 15:53:53 -08:00
Milan Burda
f97d68c4bf
test: convert functions to async & eliminate duplicates (#37316)
test: convert functions to async

Co-authored-by: Milan Burda <miburda@microsoft.com>
2023-02-20 12:30:57 +01:00
Milan Burda
cf10c19c33
test: cleanup let xyz = null as unknown as T; (#37335) 2023-02-19 01:24:24 -08:00
Milan Burda
ea848bc1c5
test: use webContents.create() in type-safe way (#37281)
test: use (webContents as typeof ElectronInternal.WebContents).create()

Co-authored-by: Milan Burda <miburda@microsoft.com>
2023-02-16 15:41:41 +01:00
Jeremy Rose
01f1522cbd
chore: change undocumented protocol.registerProtocol to detect body type (#36595)
* feat: add protocol.registerProtocol

* remove wip handleProtocol code

* lint

* Update shell/browser/net/electron_url_loader_factory.h

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>

* fix

---------

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2023-02-13 16:48:30 +09:00
Milan Burda
4bc6b15f53
refactor: move spec helpers to spec/lib (#37010)
Co-authored-by: Milan Burda <miburda@microsoft.com>
2023-01-25 13:01:25 -08:00
Milan Burda
5fd7a43970
test: replace (webContents as any).destroy() with webContents.destroy() (#36653)
Co-authored-by: Milan Burda <miburda@microsoft.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-12-14 16:07:38 -05:00
Shelley Vohr
e0fb5cbe1f
fix: crash loading non-standard schemes in iframes (#35485) 2022-08-31 10:08:11 +02:00
Jeremy Rose
db7c92fd57
test: drop now-empty remote runner (#35343)
* test: drop the now-empty remote runner from CI

* move fixtures to spec-main

* remove remote runner

* fix stuff

* remove global-paths hack

* move ts-smoke to spec/

* fix test after merge

* rename spec-main to spec

* no need to ignore spec/node_modules twice

* simplify spec-runner a little

* no need to hash pj/yl twice

* undo lint change to verify-mksnapshot.py

* excessive ..

* update electron_woa_testing.yml

* don't search for test-results-remote.xml

it is never produced now
2022-08-16 15:23:13 -04:00
Renamed from spec-main/api-protocol-spec.ts (Browse further)