Compare commits

..

203 Commits

Author SHA1 Message Date
Sudowoodo Release Bot
48e78496ce Bump v16.0.9 2022-02-14 11:53:12 -08:00
Raymond Zhao
984e24ee16 chore: cherry-pick 5841c2bf1 from devtools-frontend (#32860)
Backports 5841c2bf19
2022-02-11 18:11:03 +09:00
Robo
33055eb1e0 chore: cherry-pick efdfe711d from chromium (#32802)
Backports
https://chromium-review.googlesource.com/c/chromium/src/+/3242785
https://chromium-review.googlesource.com/c/angle/angle/+/3242963

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-02-10 12:10:55 -05:00
Robo
4a7b5aa45b chore: cherry-pick 5f8ddef5a6 from chromium (#32804)
Backports https://chromium-review.googlesource.com/c/chromium/src/+/3193885
2022-02-09 12:09:22 -05:00
Jeremy Rose
77451d2cf3 chore: cherry-pick 27bc67f761e6 from v8 (#32738)
* chore: cherry-pick 27bc67f761e6 from v8

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-02-09 12:04:48 -05:00
trop[bot]
e8f90e57d8 test: disable the test that makes spec runner hang on exit (#32837)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2022-02-09 12:01:25 -05:00
trop[bot]
0b5c5d97bd build: rebuild the dist_zips when the deps get modified (#32817)
* build: rebuild the dist_zips when the deps get modified

The dist.zip generated by the electron_dist_zip action was not getting
updated when changes were being made to the dependencies, like the
source files. It turns out, we were using data_deps for the dependencies
instead of deps. Here is the difference:

data_deps: things needed to ultimately run the thing built by a target
deps: things needed to build the target

So the difference in treatment of both sets of dependencies is actually
intentional.

Signed-off-by: Darshan Sen <raisinten@gmail.com>

* fixup! build: rebuild the dist_zips when the deps get modified

Signed-off-by: Darshan Sen <raisinten@gmail.com>

Co-authored-by: Darshan Sen <raisinten@gmail.com>
2022-02-09 09:34:49 -05:00
Robo
70c0f06890 chore: cherry-pick bab8254c3 and 2dd23f757 from v8 (#32801)
* chore: cherry-pick bab8254c3 and 2dd23f757 from v8

Backports
https://chromium-review.googlesource.com/c/v8/v8/+/3204965
https://chromium-review.googlesource.com/c/v8/v8/+/3207892

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-02-08 11:40:05 -05:00
trop[bot]
1413e815ec fix: WCO window hover on window controls on Windows (#32720) 2022-02-03 10:05:44 +01:00
Robo
c899294a12 chore: bump chromium in DEPS to 96.0.4664.174 (#32715) 2022-02-02 17:13:30 -05:00
trop[bot]
736f9f21f1 docs: fix missing tag end in clipboard example (#32694)
Co-authored-by: Paul Hollinsky <paulhollinsky@gmail.com>
2022-02-02 10:13:09 -05:00
trop[bot]
2045d85d54 docs: fix typo in BrowserWindow description (#32698)
Co-authored-by: Tobias Nießen <tniessen@tnie.de>
2022-02-02 10:08:49 -05:00
trop[bot]
fe842f52b6 fix: some frameless windows showing a frame on Windows (#32710)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-02-02 15:10:05 +01:00
trop[bot]
c5f16f36f0 build(deps): bump node-fetch from 2.6.1 to 2.6.7 (#32634)
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-01 19:32:24 -05:00
trop[bot]
7d5d1a1e1b fix: expose all serial devices to setDevicePermissionHandler (#32687)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-02-01 20:22:48 +09:00
trop[bot]
476447c6ea fix: transparent window max/unmax event firing (#32689)
* fix: transparent window max/unmax event firing

* chore: fixup tests

* Update spec-main/api-browser-window-spec.ts

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2022-02-01 20:21:36 +09:00
trop[bot]
0e71144a8f docs: update the build docs for electron (#32680)
Co-authored-by: Harshil Jain <twitharshil@gmail.com>
2022-02-01 17:54:23 +09:00
trop[bot]
d62b02af05 Update config.py (#32677)
* Fix missing comma

Co-authored-by: Marek Šuppa <mrshu@users.noreply.github.com>
2022-02-01 17:52:21 +09:00
Shelley Vohr
f998093fad fix: undefined backgroundColor (#32654) 2022-01-31 09:24:54 +01:00
Sudowoodo Release Bot
b1ffac5969 Bump v16.0.8 2022-01-27 09:43:12 -08:00
trop[bot]
0bb5f136f4 fix: css transparent background being lost (#32648)
* fix: css transparent background being lost

* fix: also call SetContentBackgroundColor initially

* spec: add a test for correct behavior

* chore: address feedback from review

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-01-27 09:42:07 -08:00
trop[bot]
0027bd5979 fix: crash when saving edited PDF files (#32538)
* fix: crash when saving edited PDF files

* chore: update patches after backport

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-01-27 14:46:47 +01:00
trop[bot]
41926c1773 docs: update context bridge docs about Promises and Errors (#32533) (#32645)
* Update context bridge docs about Promises

From my testing it doesn't remove Promises in nested objects,
also according to the test suite it does not:
80577a4f08/spec-main/api-context-bridge-spec.ts (L693)

* docs: Update docs for errors too

Co-authored-by: Mikael Finstad <finstaden@gmail.com>
2022-01-27 14:44:39 +01:00
trop[bot]
bce34419b6 ci: update ts-compile-doc-change to properly use src cache (#32626)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-01-26 10:26:01 -05:00
trop[bot]
702645d84b fix: webContents.setZoomFactor crash (#32620)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-01-26 20:05:36 +09:00
trop[bot]
facee77287 docs: correct requestSingleInstanceLock parameter (#32622)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-01-26 20:04:13 +09:00
trop[bot]
37ca29a27e test: disable flaky test on WOA (#32561)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-01-25 16:14:40 -05:00
trop[bot]
03381c0281 fix: make window without rounded corners closable (#32611)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2022-01-25 13:28:51 -05:00
trop[bot]
71c8dd7028 fix: strip crashpad_handler binary (#32554)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2022-01-24 20:06:19 +09:00
David Sanders
0294075751 docs: fix anchors for broken relative links (#32566) 2022-01-24 19:58:39 +09:00
trop[bot]
39bb2a4cbf ci: call autoninja without ninjalog_uploader_wrapper.py (#32572)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-01-24 19:54:44 +09:00
Keeley Hammond
d8ad2afcad docs: fix supported versions (#32563) 2022-01-20 13:07:23 -08:00
trop[bot]
9ef4825b77 docs: fix broken images for symbol server setup (#32525)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2022-01-19 10:31:33 -05:00
trop[bot]
6b0479b556 fix: check for maximized window before unmaximizings (#32495)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2022-01-18 15:47:21 -05:00
Shelley Vohr
891374e794 fix: maximize/unmaximize firing on linux (#32497) 2022-01-18 15:20:39 -05:00
trop[bot]
de8623db8a fix: Corrupted title of alert dialog (#32470)
Co-authored-by: Takao Baba <babatakao@gmail.com>
2022-01-17 16:31:47 +09:00
trop[bot]
ada1e9137b fix: optional postMessage transfer arg (#32460)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-01-14 09:41:17 +09:00
trop[bot]
b6492686e4 fix: use setAspectRatio for frameless window on mac (#32446)
* fix(window): setAspectRatio for frameless windows

* dummy

* undo dummy

Co-authored-by: Gellert Hegyi <gellert.hegyi@around.co>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2022-01-13 16:55:19 +09:00
trop[bot]
0b57386492 fix: will-attach-webview handler modifying params.instanceId does not break <webview> (#32429)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-01-13 09:40:30 +09:00
trop[bot]
ad1101e610 build: pin colors to v1.4.0 in package.json (#32425)
* pin colors to v1.4.0 in packae.json

Fixes #32416

* fixup! pin colors to v1.4.0 in packae.json

update yarn.lock too

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2022-01-12 16:44:14 +09:00
Sudowoodo Release Bot
86cf473d81 Bump v16.0.7 2022-01-11 09:04:42 -08:00
trop[bot]
26e37db25c fix: Support running git-[im,ex]port-patches with Python3 too (#32409)
* script: Python3 compatibility for utf8 conversion

The unicode() method has been renamed to str() in Python3,
add a wrapper around it to support running against both versions.

* script: don't require python2 for git-[import,export]-patches

The scripts work just fine with python3 too, so use the generic
python executable as the script interpreter.
Most setups don't even require or provide python 2 anymore,
so this saves one from having to install it just for the scripts.

Co-authored-by: Romain Pokrzywka <rpokrzywka@nvidia.com>
2022-01-11 10:03:15 +01:00
trop[bot]
3ddb61fc3a fix: incorrect skipTransformProcessType option parsing in win.setVisibleOnAllWorkspaces() (#32397)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-01-11 14:44:51 +09:00
Milan Burda
68a512a541 docs: left is a valid mode in contents.openDevTools() options (#32372) (#32403) 2022-01-10 16:53:13 -05:00
trop[bot]
adb571bcde docs: clarify case insensitive dictionary hosting (#32401)
You must either (1) have a case-insensitive file server (2) upload files in both casings. This improves the docs to clarify that.

[0]: https://github.com/electron/electron/issues/22482#issuecomment-593617375

Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com>
2022-01-10 16:51:06 -05:00
trop[bot]
9183cf6a66 docs: fix note for will-move event (#32399)
* docs: fix note for `will-move` event

* Trigger Build

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-01-10 16:34:29 -05:00
trop[bot]
c5d5c28a79 fix: Don't create console window when creating process (#32379)
* fix: Don't create console window when creating process

* Update patches/node/fix_don_t_create_console_window_when_creating_process.patch

Co-authored-by: Robo <hop2deep@gmail.com>

* Remove extra line in description

* Update .patches

Co-authored-by: Raymond Zhao <raymondzhao@microsoft.com>
Co-authored-by: Raymond Zhao <rzhao271@gmail.com>
Co-authored-by: Robo <hop2deep@gmail.com>
2022-01-10 07:55:06 -08:00
trop[bot]
59aba70e8f fix: allow npm_config_arch override on mac (#32381)
If the npm_config_arch environment variable is set on Mac, then use the
specified architecture rather than overriding it to x64.

Co-authored-by: Tommy MacWilliam <tommy@serenade.ai>
2022-01-10 10:58:35 +01:00
trop[bot]
e640ab47fd docs: improve BrowserView example (#32365)
* working example

previous example not beginner-friendly

* Update browser-view.md

Co-authored-by: MikeBusuttil <31480000+MikeBusuttil@users.noreply.github.com>
Co-authored-by: Cheng Zhao <github@zcbenz.com>
2022-01-06 15:33:13 +09:00
John Kleinschmidt
fff7e18c70 fix: text input performance regression (#32352) 2022-01-06 09:22:20 +09:00
trop[bot]
569440962d Rename patch file to .patch to conform to naming standard which utilizes .gitattributes settings (#32345)
Co-authored-by: stsean <stsean@justin.tv>
2022-01-05 09:00:44 -08:00
trop[bot]
bee9ff83dd fix: #32141 register wrong command for setAsDefaultProtocolClient for windows (#32331)
Co-authored-by: Shubham-Kumar-2000 <shukhu10@gmail.com>
2022-01-05 18:34:44 +09:00
trop[bot]
41b7a0c9c2 fix: crash caused by app.getLocaleCountryCode() (#32321)
CFLocaleGetValue() returned null and crashed the process when
app.getLocaleCountryCode() was run on a CircleCI metal resource class
macOS instance with Xcode 12.5.1. This change fixes that logic and adds
further checks to make the code future-proof.

Here too people are complaining that the returned country code migth be
null: https://stackoverflow.com/questions/15202454/nslocalecountrycode-returns-nil

Signed-off-by: Darshan Sen <darshan.sen@postman.com>

Co-authored-by: Darshan Sen <darshan.sen@postman.com>
2022-01-04 16:04:51 +09:00
trop[bot]
cefa1bb82f docs: correct webFrame description (#32326)
The current description incorrectly states that the webFrame export represents the top frame but it actually represents the current frame.

Co-authored-by: Maciej Krawczyk <mckravchyk@gmail.com>
2022-01-04 16:04:11 +09:00
Sudowoodo Release Bot
eb7a897849 Bump v16.0.6 2022-01-03 10:39:59 -08:00
trop[bot]
ac0143af8e Fix typo in quick-start.md (#32312)
Resolve a grammar issue in the quick-start guide.

Co-authored-by: Jack Nemitz <62447711+terminalPoltergeist@users.noreply.github.com>
2022-01-03 11:55:30 -05:00
trop[bot]
6dc9d0629a fix: check for single bluetooth listener (#32243)
Co-authored-by: VerteDinde <khammond@slack-corp.com>
2021-12-20 12:48:34 +09:00
trop[bot]
187b009a70 fix: older systems crash when playing media files (#32215)
* fix: win7 crash when playing media

* reset

* chore: update patches

Co-authored-by: Micha Hanselmann <micha.hanselmann@gmail.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2021-12-17 13:30:23 -08:00
electron-roller[bot]
040910b1d0 chore: bump chromium to 96.0.4664.110 (16-x-y) (#32123)
* chore: bump chromium in DEPS to 96.0.4664.93

* chore: update patches

* chore: bump chromium in DEPS to 96.0.4664.110

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2021-12-16 14:41:06 -08:00
Sudowoodo Release Bot
27a2f89b2b Bump v16.0.5 2021-12-16 14:06:44 -08:00
Sudowoodo Release Bot
a3f736e655 Revert "Bump v16.0.5"
This reverts commit 8091d72019.
2021-12-16 12:45:54 -08:00
Sudowoodo Release Bot
8091d72019 Bump v16.0.5 2021-12-16 08:42:41 -08:00
trop[bot]
8a2f487605 fix: ensure bluetooth devices are not returned by default (#32199)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2021-12-15 19:51:22 -08:00
trop[bot]
66dec80e48 Update discord url to electronjs (#32175)
The discord url in this page is discord.gg/electron, which refers to a (supposed) roblox scripting group.

Co-authored-by: Dennis <70665154+dennisrijsdijk@users.noreply.github.com>
2021-12-14 15:53:01 -08:00
trop[bot]
ca946ac23e docs: Fix environment variable name (#32163)
The names of environment variables are case-sensitive on Linux and Mac.

Co-authored-by: stephen9357 <stephen9357@gmail.com>
2021-12-14 19:43:07 +09:00
trop[bot]
73ba0cb46b fix: window.open not overriding parent's webPreferences (#32108)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-12-07 09:47:59 +09:00
Keeley Hammond
cf0b1e1b68 build: add CI path-filtering for docs-only changes (#32055)
* build: add CI path-filtering for docs-only changes (#31741)

build: (wip) initial dynamic config research

* build: (wip) test path filtering option

* build: (wip) remove doc-only script, use path filtering to check changes

* build: (wip) add docker image with Electron dependencies

* build: (wip) clean up config

* build (wip): readd parameters, executors and env*s

* build: re-add steps and commands

* build: change doc-only to ts-compile-doc-only

* build: re-add workflows and jobs

* build: split configs to setup & build

* build: move lint to "always run" config

* build: clean up, remove old reference config

* build: bump to path-filtering 0.1.0

* build: remove ts-compile step from build-linux

* build: remove nightly-linux-release-test, linux-checks-nightly

* build: don't run build on publish

* build: set base-revision to main (runs branch vs commit)

* build: update config from chromium roll

* build: don't use python3 on sync-step

reverts ea6087e343. This commit was added specifically for the newest Chrome roll and doesn't apply to 16-x-y

* build: account for path-filtering workflow in release-build script (#32063)

* build: account for path-filtering workflow in release-build script

* build: update syntax for workflow id

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-12-06 11:35:02 +09:00
trop[bot]
371a61dc59 fix: gtk_native_dialog_run() calls show() internally (#32082)
In the synchronous code path, gtk_native_dialog_run() will call
gtk_native_dialog_show(). Previously this was causing an assertion to be
hit at run time.

Co-authored-by: Tristan Partin <tristan@partin.io>
2021-12-06 11:29:41 +09:00
Sudowoodo Release Bot
4aef2d7cc3 Bump v16.0.4 2021-12-02 17:46:05 -08:00
Keeley Hammond
ebd3360601 fix: avoid double call in OnRefreshComplete on aura platforms (#32052) (#32089) 2021-12-02 17:43:50 -08:00
Sudowoodo Release Bot
f1017d553d Bump v16.0.3 2021-11-30 12:54:02 -08:00
trop[bot]
f6c16b4966 fix: fix aspect ratio when max width/height is set (#31957)
Add the native frame border size to the minimum and maximum size if
the view reports its size as the client size. It allows to enlarge
window to proper values when aspect ratio and max width/height are
set. It also fixes DCHECK which was triggered when user tried to
enlarge window above dimensions set during creation of the
BrowserWindow.

Co-authored-by: Cezary Kulakowski <cezary@openfin.co>
2021-11-24 15:57:53 -05:00
Sudowoodo Release Bot
e029f65fe1 Bump v16.0.2 2021-11-24 12:47:45 -08:00
trop[bot]
a2b79a2450 docs: add playwright e2e testing docs (#31974)
Co-authored-by: Erick Zhao <erick@hotmail.ca>
2021-11-23 19:30:06 -08:00
trop[bot]
51d448c22d fix: console windows from ELECTRON_RUN_AS_NODE instances (#31973)
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2021-11-23 12:59:59 -08:00
electron-roller[bot]
28230978e8 chore: bump chromium in DEPS to 96.0.4664.55 (#31909)
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
2021-11-22 20:07:46 -05:00
trop[bot]
93ae6e3f73 fix: BrowserView setBackgroundColor needs two calls (#31947)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-11-22 16:38:15 +09:00
trop[bot]
b088673a5d fix: ninja build failed on some system (#31943)
Co-authored-by: Black-Hole1 <158blackhole@gmail.com>
2021-11-22 16:36:26 +09:00
trop[bot]
a66d541471 fix: lint Objective-C header files (#31939)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-11-22 16:35:07 +09:00
Sudowoodo Release Bot
beac90fba4 Bump v16.0.1 2021-11-18 08:07:12 -08:00
trop[bot]
b4a6e0ad34 docs: fix typo in distribution docs (#31879)
Co-authored-by: Sergey Zolotarev <sryze@protonmail.com>
2021-11-18 20:32:31 +09:00
trop[bot]
483d4fa603 fix: add resource strings for file selection (#31883)
Co-authored-by: VerteDinde <khammond@slack-corp.com>
2021-11-17 16:16:01 -08:00
trop[bot]
358bffbcb0 chore: use std::forward() in ConvertToV8() (#31858)
The variable `input` is accepted by a universal reference, so it doesn't
make sense to cast a potential lvalue reference into an rvalue
reference. In case `input` is an lvalue reference, we should rather
forward the value as is to `ToV8()`.

Signed-off-by: Darshan Sen <darshan.sen@postman.com>

Co-authored-by: Darshan Sen <darshan.sen@postman.com>
2021-11-16 10:03:59 -05:00
Sudowoodo Release Bot
dae224619f Bump v16.0.0 2021-11-15 15:32:15 -08:00
Keeley Hammond
9110380ef6 fix: provide paths for all NetworkContextFilePaths keys (#31852)
* fix: provide paths for all NetworkContextFilePaths keys

* chore: include chrome features header

* chore: build browser_features

* yolo

* add pref service

* fix: include sandbox policy features

* fix pref key

* fix: gate pref key to OS_WIN

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2021-11-15 15:25:57 -08:00
trop[bot]
00dff390ac fix: make BrowserView aware of owning window (#31842)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-11-15 11:52:18 -08:00
trop[bot]
16d3917334 fix: media shouldn't open permissions dialog (#31837)
* fix: media shouldn't open permissions dialog

Playing media shouldn't open Accessibility permissions dialog on macOS.
However, we still need to watch for media events, just not globally and
`media_keys_listener_` is an API over global capture of the media keys.

The fix is to let chromium call `UpdateWhichKeysAreListenedFor` which
will call `UpdateSystemMediaControlsEnabledControls` and watch for
events on `system_media_controls_` without triggering permissions popup.

* chore: update patches

Co-authored-by: Fedor Indutny <fedor@indutny.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2021-11-15 11:51:22 -08:00
trop[bot]
2cc843737b fix: crash on browserView.webContents.destroy() (#31827)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-11-15 11:50:47 -08:00
Charles Kerr
fe248d310d fix: revert "refactor: only create webContents after 'will-attach-webview'… (#31848)
* Revert "refactor: only create webContents after 'will-attach-webview' (#30311)" (#31785)

This reverts commit 6e43b0bcbf.

* fix: backport 31785 to fix localStorage persistence regression
2021-11-15 11:34:19 -08:00
Sudowoodo Release Bot
b2ea9fd381 Revert "Bump v16.0.0-beta.10"
This reverts commit 347f18a634.
2021-11-15 11:14:56 -08:00
trop[bot]
55a293cfaf fix: change cookie default from NO_RESTRICTION to LAX_MODE (#31839)
* fix: change default from NO_RESTRICTION to LAX_MODE

* chore: update cookie docs, redirect tests

Co-authored-by: VerteDinde <khammond@slack-corp.com>
2021-11-15 10:33:44 -08:00
trop[bot]
e8ba44c632 fix: setContentProtection affects BrowserWindow frame (#31832)
Co-authored-by: Micha Hanselmann <micha.hanselmann@gmail.com>
2021-11-15 16:26:24 +01:00
trop[bot]
ddab5ac3fc fix: in GTK open dialog, do not preview huge files (#31821)
* fix: in GTK open dialog, do not preview huge files

Previewing images whose files are larger than a GB can crash Electron.

* refactor: tweak CanPreview()

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2021-11-15 09:14:54 -06:00
Sudowoodo Release Bot
347f18a634 Bump v16.0.0-beta.10 2021-11-15 05:31:01 -08:00
trop[bot]
a2332646fa fix: crash caused by GetHostNameW on Windows 7 (#31814)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-11-15 13:42:31 +01:00
trop[bot]
cdf312e16f fix: correct default text for button labels in gtk dialogs (#31824) 2021-11-15 11:22:34 +01:00
electron-roller[bot]
445099073a chore: bump chromium to 96.0.4664.45 (16-x-y) (#31806)
* chore: bump chromium in DEPS to 96.0.4664.45

* chore: update patches

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2021-11-14 16:37:40 -08:00
trop[bot]
05eb145d2b doc: Update E17 release dates (#31788)
Co-authored-by: Sofia Nguy <sofianguy@gmail.com>
2021-11-11 10:08:16 -05:00
Sudowoodo Release Bot
c16e94ebbf Bump v16.0.0-beta.9 2021-11-11 05:30:51 -08:00
trop[bot]
48be5c3387 fix: failing Node.js certificate spec (#31771)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-11-11 11:35:24 +09:00
trop[bot]
9fd781073f fix: BrowserView setBackgroundColor() (#31772)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-11-10 10:06:03 +09:00
trop[bot]
c25edb5fdd chore: cleanup obsolete lib/common/remote/ipc-messages.ts (#31767)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-11-09 12:11:11 -05:00
trop[bot]
cf6df4ae36 test: fix crash in electron::NativeWindowMac::Close() (#31761)
* test: fix crash in electron::NativeWindowMac::Close()

* remove extra close

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-11-09 11:24:57 -05:00
trop[bot]
6729edf590 chore: remove Breakpad tests for crashReporter on Linux (#31745)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-11-08 11:46:39 -05:00
Sudowoodo Release Bot
2415813313 Bump v16.0.0-beta.8 2021-11-08 05:31:29 -08:00
trop[bot]
136c539836 refactor: move certificate_manager_model to shell (#31740)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-11-08 11:03:25 +01:00
trop[bot]
a76f2a07a9 fix: crash dump location on Linux (#31711)
* fix: crash dump location on Linux

* fix: ignore client_id for Zygote process

* chore: update comment

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2021-11-07 21:13:17 -08:00
trop[bot]
8b6aecc6f0 fix: <webview> background transparency (#31728)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-11-07 18:11:34 -08:00
trop[bot]
3186a246a5 test: deflake <webview> tag loads devtools extensions on WOA (#31715)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-11-04 19:46:23 -04:00
trop[bot]
15ff515437 fix: clipboard.writeBuffer raw format access (#31116) (#31719)
* fix: clipboard.writeBuffer raw format access

* test: clipboard.writeBuffer raw format access

* test: clipboard win32 test skip

* fixup spec

* cleanup patch

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>

Co-authored-by: henrit <henrit@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-11-04 17:41:42 -04:00
electron-roller[bot]
d3a24c24af chore: bump chromium to 96.0.4664.35 (16-x-y) (#31709)
* chore: bump chromium in DEPS to 96.0.4664.35

* chore: update patches

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2021-11-04 12:59:30 -04:00
Sudowoodo Release Bot
f4a51e2adc Bump v16.0.0-beta.7 2021-11-04 06:36:00 -07:00
trop[bot]
cdc897c745 fix: second-instance additionalData parameter (#31708)
* test: second-instance additionalData parameter

* Fix posix implementation

Co-authored-by: Raymond Zhao <raymondzhao@microsoft.com>
2021-11-04 19:59:51 +09:00
trop[bot]
8c842552b0 fix: incorrect Content-Disposition serialization (#31694)
* fix: incorrect Content-Disposition serialization

* test: fixup test

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-11-04 09:59:47 +09:00
trop[bot]
e918fe6030 fix: apply transparency settings to WebContentsPreferences (#31700)
* fix: add transparency to web_contents_preferences

* fix: correctly apply transparency settings to new webContents from webPreferences

Co-authored-by: VerteDinde <khammond@slack-corp.com>
2021-11-03 12:50:57 -07:00
trop[bot]
d9e0025429 fix: do not run dialog callback inside transaction commit (#31657)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-11-02 14:55:52 +01:00
trop[bot]
5fc4a4768e test: fix test-datetime-change-notify after daylight change (#31656)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-11-01 20:23:37 -04:00
Milan Burda
cf54123ec6 chore: update chore_add_context_to_context_aware_module_prevention.patch (#31579) (#31629) 2021-11-01 15:53:37 -04:00
trop[bot]
948aa12af0 fix: clipboard.read() to recognize custom types (#31652)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-11-01 14:31:20 -04:00
trop[bot]
5fdf37eac9 fix: use disable-hid-blocklist to allow FIDO (#31650)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-11-01 14:23:07 -04:00
trop[bot]
1dcf237c8d fix: crash on close window when webContents destroyed (#31646)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-11-01 13:57:22 -04:00
Sudowoodo Release Bot
8285172412 Bump v16.0.0-beta.6 2021-11-01 06:35:12 -07:00
trop[bot]
5735cb3cb0 fix: navigator.keyboard.lock() not working (#31621)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-10-28 19:41:01 +02:00
Shelley Vohr
1adea9e34e fix: silent print settings (#31615) 2021-10-28 12:04:35 -04:00
electron-roller[bot]
0cb6a2ea8a chore: bump chromium to 96.0.4664.27 (16-x-y) (#31619)
* chore: bump chromium in DEPS to 96.0.4664.27

* chore: update patches

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2021-10-28 12:04:02 -04:00
Sudowoodo Release Bot
48e9e34acd Bump v16.0.0-beta.5 2021-10-28 06:33:05 -07:00
trop[bot]
1433180472 docs: update test automation doc (#31613)
* Update WebdriverIO documentation

* Update docs/tutorial/using-selenium-and-webdriver.md

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>

* Update docs/tutorial/using-selenium-and-webdriver.md

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>

* docs: update automated testing docs

* lint

* update

* Update docs/tutorial/automated-testing.md

Co-authored-by: Christian Bromann <github@christian-bromann.com>

* fixes

Co-authored-by: Christian Bromann <github@christian-bromann.com>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Erick Zhao <erick@hotmail.ca>
2021-10-28 16:24:41 +09:00
trop[bot]
48a1117cbf docs: link to Apple developer docs for app.ready event (#31600)
Changes some links around. There was no link for `NSUserNotification`, and
`UNNotificationResponse` incorrectly linked to our own `NotificationResponse`
API structure doc.

Co-authored-by: Erick Zhao <erick@hotmail.ca>
2021-10-28 11:16:57 +09:00
Sudowoodo Release Bot
b213c345bf Bump v16.0.0-beta.4 2021-10-27 14:24:52 -07:00
trop[bot]
46b8dcfb03 fix: use shorter paths for creating singleton sockets (#31612)
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2021-10-27 14:23:34 -07:00
trop[bot]
5c48a94b48 fix: clipboard.read() crash (#31592)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-10-26 18:56:08 -04:00
electron-roller[bot]
22df8eadbf chore: bump chromium to 96.0.4664.18 (16-x-y) (#31593)
* chore: bump chromium in DEPS to 96.0.4664.18

* chore: update patches

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-10-26 17:23:41 -04:00
trop[bot]
8520fa8e6f fix: do not trigger CSP violations when checking eval (#31589)
* fix: do not trigger CSP violations when checking eval

* Update shell/renderer/api/electron_api_web_frame.cc

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

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Samuel Attard <sam@electronjs.org>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-10-26 16:57:50 -04:00
trop[bot]
517493a1f3 chore: import base/macros.h into asar archive.h (#31597)
Co-authored-by: VerteDinde <khammond@slack-corp.com>
2021-10-26 11:54:28 -07:00
trop[bot]
c10c449258 build: retry hasher function if it fails first time (#31581)
* build: retry hasher function if it fails first time

* Update script/release/get-url-hash.js

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

Co-authored-by: Samuel Attard <sattard@slack-corp.com>
Co-authored-by: Samuel Attard <sam@electronjs.org>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-10-26 17:41:14 +09:00
trop[bot]
5026e7823e docs: win.getParentWindow() returns BrowserWindow | null (#31577)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-10-26 17:37:51 +09:00
trop[bot]
c063a2d9fe chore: fix malformed mojom::CreateNewWindowParams patch (#31584)
* chore: fix malformed mojom::CreateNewWindowParams patch

* chore: update patches

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-10-26 09:36:17 +02:00
trop[bot]
c46620d4ba chore: bump chromium to 96.0.4664.4 (16-x-y) (#31529)
* chore: bump chromium in DEPS to 96.0.4662.0

* chore: bump chromium in DEPS to 96.0.4663.0

* chore: update patches

* Remove RuntimeData entirely

https://chromium-review.googlesource.com/c/chromium/src/+/3177328

* Make helper macros behave consistently for //content/public UserData types

https://chromium-review.googlesource.com/c/chromium/src/+/3198788

* Enabling sandboxing for the speech recognition service browser tests

 https://chromium-review.googlesource.com/c/chromium/src/+/3146090

* Add 'RegisterPreference' host binding

  https://chromium-review.googlesource.com/c/chromium/src/+/3162281

* Add persistAcrossSessions flag (scripting API)

https://chromium-review.googlesource.com/c/chromium/src/+/3175161

* Add Passkey prompt dialog for bonding.

https://chromium-review.googlesource.com/c/chromium/src/+/2841104

* Clipboard: Remove ReadImage path in browser

https://chromium-review.googlesource.com/c/chromium/src/+/3194826

* Split printing metafile code into its own target.

https://chromium-review.googlesource.com/c/chromium/src/+/3164925

* Cleanup unused DesktopMediaListObserver params

https://chromium-review.googlesource.com/c/chromium/src/+/3179203

* Remove base::DictionaryValue::GetBinary

https://chromium-review.googlesource.com/c/chromium/src/+/3201974

* Window Placement: change RWHV::GetDisplayList to GetScreenInfos

https://chromium-review.googlesource.com/c/chromium/src/+/3138774

* Add a preview to the Tab Capture picker dialog

https://chromium-review.googlesource.com/c/chromium/src/+/3045268

* Add service-based usage to update print settings

https://chromium-review.googlesource.com/c/chromium/src/+/3155426

* chore: bump chromium in DEPS to 96.0.4664.2

* chore: update patches

* chore: bump chromium in DEPS to 96.0.4664.4

* chore: update patches

* chore: bump chromium in DEPS to 97.0.4666.0

* Revert "chore: bump chromium in DEPS to 97.0.4666.0"

This reverts commit d73caae8ba4b39efc9b3ea4de52685b9c92ef3d0.

* Reland "Block external protocol handler with sandbox."

https://chromium-review.googlesource.com/c/chromium/src/+/3198263

* fixup for lint

* Add CookiePartitionKeychain parameter to CookeManager.GetCookieList.

https://chromium-review.googlesource.com/c/chromium/src/+/3206016

* Move ui/gfx/transform*,rrect*,mask_filter_info* into ui/gfx/geometry

https://chromium-review.googlesource.com/c/chromium/src/+/3200392

* fixup Move ui/gfx/transform*,rrect*,mask_filter_info* into ui/gfx/geometry

* ozone: //chrome/browser clean up from USE_X11

https://chromium-review.googlesource.com/c/chromium/src/+/3186490

* content: don't load v8 snapshot in browser process

https://chromium-review.googlesource.com/c/chromium/src/+/3183394

* Add 'RegisterPreference' host binding

  https://chromium-review.googlesource.com/c/chromium/src/+/3162281

* 3186491: Add 'devtools.sync_preferences' preference

https://chromium-review.googlesource.com/c/chromium/src/+/3186491

* 2951147: DCHECK accessible names for focusable Views

https://chromium-review.googlesource.com/c/chromium/src/+/2951147

* 3201014: Use real font size for calculation of SmallTextRatio

https://chromium-review.googlesource.com/c/chromium/src/+/3201014

* fixup Clipboard: Remove ReadImage path in browser

* chore: update patches

* fix: disable PlzServiceWorker to fix custom protocol SW script loading

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3199761

* chore: update patches

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2021-10-25 13:33:33 -04:00
Sudowoodo Release Bot
92f20955bd Bump v16.0.0-beta.3 2021-10-25 06:33:46 -07:00
trop[bot]
762ecfef24 fix: vibrant window should have transparent background (#31537)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-10-25 09:48:13 +09:00
trop[bot]
ea96f4c176 fix: MediaMetadata not working properly (#31535)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-10-22 21:17:24 +09:00
Erick Zhao
d085de4787 docs: add window customization guide (#31054) (#31508)
* docs: add window customization guide

* fixes

* Update docs/api/browser-window.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/api/browser-window.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/fiddles/windows/manage-windows/frameless-window/index.html

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/window-customization.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/window-customization.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/window-customization.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/window-customization.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/window-customization.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/window-customization.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/window-customization.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/window-customization.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/window-customization.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/window-customization.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/window-customization.md

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

* fix code fence

Co-authored-by: Mark Lee <malept@users.noreply.github.com>

Co-authored-by: Mark Lee <malept@users.noreply.github.com>
2021-10-22 21:15:57 +09:00
trop[bot]
dd7a8da6be fix: event with invalid timestamp in trace log (#31423)
* fix: event with invalid timestamp in trace log

When node is started within Electron's environment it doesn't
initialize v8 and time of v8's start is never set. As a result
we log v8's start time as 0 and it breaks timestamps in the
trace log. With this change we log v8's start time only when
it was initialized by node.

* update patches for 16-x-y

Co-authored-by: Cezary Kulakowski <cezary@openfin.co>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-10-21 13:55:02 -04:00
Sudowoodo Release Bot
a4ded39e61 Bump v16.0.0-beta.2 2021-10-21 06:33:22 -07:00
trop[bot]
d3ff2033ed feat: Add data parameter to app.requestSingleInstanceLock() (#31444)
* WIP

* Use serialization

* Rebase windows impl of new app requestSingleInstanceLock parameter

* Fix test

* Implement posix side

* Add backwards compatibility test

* Apply PR feedback Windows

* Fix posix impl

* Switch mac impl back to vector

* Refactor Windows impl

* Use vectors, inline make_span

* Use blink converter

* fix: ownership across sequences

* Fix upstream merge from Chromium

Co-authored-by: Raymond Zhao <raymondzhao@microsoft.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-10-21 21:52:15 +09:00
trop[bot]
005b193307 feat: warn when ipcRenderer.sendSync() called with no listeners for channel (#31435)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-10-21 09:08:47 +09:00
trop[bot]
369269c475 fix: remove 'NOTREACHED()' from 'GetWindowResizeEdge' (#31479)
Co-authored-by: mlaurencin <mlaurencin@electronjs.org>
2021-10-21 09:05:33 +09:00
Sudowoodo Release Bot
339eccfc42 Bump v16.0.0-beta.1 2021-10-20 07:57:25 -07:00
trop[bot]
65c8415bac fix: don't use private enterprise APIs in MAS build (#31488)
* fix: don't use private enterprise APIs in MAS build

* Update .patches

Co-authored-by: VerteDinde <khammond@slack-corp.com>
Co-authored-by: Samuel Attard <sam@electronjs.org>
2021-10-20 07:50:32 -07:00
trop[bot]
30be3150ff fix: ensure TracingAgent in place for SWs (#31477)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-10-19 11:43:23 -04:00
trop[bot]
7d9ce1379f fix: link to image windows progress bar image was linked with square brackets [] insted of parenthesis () and to github asset storage instead of local image directory. (#31473)
Co-authored-by: Daniel Ramp <12480131+DanielRamp@users.noreply.github.com>
2021-10-19 20:39:45 +09:00
trop[bot]
27d1f6a360 Avoid Undefined Variable In printToPdf Example (#31466)
Co-authored-by: universalstrapping <90921972+universalstrapping@users.noreply.github.com>
2021-10-19 17:41:05 +09:00
trop[bot]
be46387f22 fix: add isDestroyed check (#31469)
* Added isDestroyed check

fix: https://github.com/electron/electron/issues/31196

* fix: unregister frame name

Unregister the frame name so that we do not accidentally unregister the wrong window later on in case there is a timing issue with the events

* fix; check if webContents is destroyed

* fix: check if window/webContents is destroyed

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

Co-authored-by: t57ser <seve@live.at>
Co-authored-by: Cheng Zhao <github@zcbenz.com>
2021-10-19 17:39:33 +09:00
Cheng Zhao
fe160165b6 fix: generate valid config.gypi (#31441) 2021-10-18 10:35:07 -05:00
Sudowoodo Release Bot
be1c18096b Bump v16.0.0-alpha.9 2021-10-18 08:30:43 -07:00
trop[bot]
2e3b05bcad fix: also pass securityOrigin to media permissions request handler (#31416)
Co-authored-by: Maxime Serrano <mserrano@alumni.cmu.edu>
2021-10-15 13:32:01 +09:00
trop[bot]
54657fb667 fix: mac window crash native theme update (#31430)
Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com>
2021-10-15 09:05:53 +09:00
Sudowoodo Release Bot
c83d65eab0 Bump v16.0.0-alpha.8 2021-10-14 11:22:30 -07:00
trop[bot]
3daad4fd40 fix: reset render_frame_disposed_ after render frame host change (#31427)
* fix: reset render_frame_disposed_ after hang

* fix: handle exception in webContents.send

Co-authored-by: VerteDinde <keeleymhammond@gmail.com>
Co-authored-by: VerteDinde <khammond@slack-corp.com>
2021-10-14 11:21:31 -07:00
trop[bot]
b4a79672cf test: fix flaky contentTracing.startRecording spec (#31411)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-10-13 16:52:19 -04:00
trop[bot]
a71c610747 docs: update Versioning doc (#31389)
* fix information

* move historical section to bottom

* Update docs/tutorial/electron-versioning.md

Co-authored-by: Charles Kerr <charles@charleskerr.com>

Co-authored-by: Erick Zhao <erick@hotmail.ca>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2021-10-13 11:24:30 +09:00
trop[bot]
b1366421d1 chore: bump chromium to 96.0.4647.0 (main) (#31302)
* chore: bump chromium in DEPS to 95.0.4630.0

* 3133701: Fix chrome root store codegen for cross-compile builds.

https://chromium-review.googlesource.com/c/chromium/src/+/3133701

* 49125: Include SHA512-256 in EVP_get_digestbyname and EVP_MD_do_all.

https://boringssl-review.googlesource.com/c/boringssl/+/49125

* chore: fixup patch indices

* 3131662: [Code Health] Remove ListValue::Append(Integer|Boolean)

https://chromium-review.googlesource.com/c/chromium/src/+/3131662

* chore: bump chromium in DEPS to 95.0.4631.0

* chore: update patches

* chore: bump chromium in DEPS to 95.0.4635.0

* chore: update patches

* chore: bump chromium in DEPS to 95.0.4636.0

* chore: bump chromium in DEPS to 95.0.4637.0

* chore: update patches

* refactor: move PlatformNotificationService into BrowserContext

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/3137256

* refactor: ListValue::GetSize and ListValue::AppendString were removed

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/3144540

* chore: bump chromium in DEPS to 95.0.4638.0

* chore: bump chromium in DEPS to 95.0.4638.4

* chore: bump chromium in DEPS to 96.0.4640.0

* chore: bump chromium in DEPS to 96.0.4641.0

* chore: bump chromium in DEPS to 96.0.4642.0

* chore: update patches

Co-authored-by: Michaela Laurencin <mlaurencin@electronjs.org>

* 3134756: Move extensions/browser/value_store to components/value_store.

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3134756

* 3150092: [Autofill] Allow aligning Autofill suggestions to the field's center

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3150092

* chore: bump chromium in DEPS to 96.0.4643.0

* chore: update patches

* chore: bump chromium in DEPS to 96.0.4644.0

* chore: update patches

* chore: bump chromium in DEPS to 96.0.4645.0

* chore: update patches

* chore: bump chromium in DEPS to 96.0.4646.0

* chore: bump chromium in DEPS to 96.0.4647.0

* chore: update patches

Ref (for chromium): https://chromium-review.googlesource.com/c/chromium/src/+/3165772

* 3162087: Reland "Ensure Branch Target Identification is enabled for executable pages."

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3162087

* chore: update evert_add_inline_and_inline_origin_records_to_symbol_file.patch

Xref: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3166678

Xref: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3166674

* chore: update Allocator construction

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3135195

Change RefCount::kAllowed/Disallowed semantics into BackupRefPtr::kEnabled/Disabled

* chore: add UseConfigurablePool to v8::ArrayBuffer::Allocator invocation

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3090845

* chore: do not set network_context_params.context_name

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3155743

Remove name field from mojom::NetworkContext

* fix: use ForEachRenderFrameHost to iterate frames.

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3163336

New implementation partially cribbed from
https://source.chromium.org/chromium/chromium/src/+/main:extensions/browser/script_executor.cc;drc=f894f106c6d5fac8e0b75158f622256e0f34f593;l=109

* Remove WebLocalFrame::RequestExecuteScriptAndReturnValue()

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3149699

ExecuteJavaScript's RequestExecuteScript() new params are cribbed from
https://chromium-review.googlesource.com/c/chromium/src/+/3149699/4/third_party/blink/renderer/core/frame/web_local_frame_impl.cc

* Remove IsDescendantOf API on RenderFrameHost.

Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3165357

function is trivial to implement, so make a local copy in anon namespace

* Rewrite IsDescendantOf check to check GetParentOrOuterDocument.

https://chromium-review.googlesource.com/c/chromium/src/+/3160061

* Remove GetFramesInSubtree from RenderFrameHost

https://chromium-review.googlesource.com/c/chromium/src/+/3163336

* fix: dump_syms for macOS

* chore: update patches

* Remove ListValue::AppendString and ListValue::GetSize

https://chromium-review.googlesource.com/c/chromium/src/+/3144540

* fix: gn check

https://chromium-review.googlesource.com/c/chromium/src/+/3163890

* fix: crash with Isolate::GetHeapCodeAndMetadataStatistics

https://chromium-review.googlesource.com/c/v8/v8/+/3175820

* chore: update patches

* chore: fix windows build

* Add kPrintWithPostScriptType42Fonts feature.

https://chromium-review.googlesource.com/c/chromium/src/+/3150776

* chore: update patches

* chore: fix tests

* ozone/x11: fix VA-API.

https://chromium-review.googlesource.com/c/chromium/src/+/3141878

* Revert "ozone/x11: fix VA-API."

This reverts commit 23e742acb1.

* Reland "Make Ozone/X11 default."

https://chromium-review.googlesource.com/c/chromium/src/+/3114071

* fixup Reland "Make Ozone/X11 default."

* fixup Reland "Make Ozone/X11 default." for clipboard

* test: unflake contentTracing test

* Revert "test: unflake contentTracing test"

This reverts commit 62a6525235.

* chore: debug large contentTracing file

* fixup debug patch

* Revert "fixup debug patch"

* Roll Perfetto Trace Processor Linux from b852166f90d5 to e90b9fb93385

https://chromium-review.googlesource.com/c/chromium/src/+/3212306

* update patch after merge

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: VerteDinde <khammond@slack-corp.com>
Co-authored-by: Michaela Laurencin <mlaurencin@electronjs.org>
Co-authored-by: VerteDinde <keeleymhammond@gmail.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2021-10-12 13:56:37 -04:00
trop[bot]
f2696fb431 chore: refactor persisting permission granted to serial ports (#31324)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-10-12 09:19:07 +09:00
trop[bot]
25c536d355 fix: black window on screen capture when content protection is enabled (#31386)
Co-authored-by: Micha Hanselmann <mhanselmann@microsoft.com>
2021-10-12 09:07:27 +09:00
trop[bot]
6530067b85 feat: add commandLine.removeSwitch (#31327)
* feat: add commandLine.removeSwitch

In some cases apps may want to remove Chromium command line switches to avoid certain Chromium behaviors being used, E.g. remote-debugging-port or gpu-launcher

* fix: add missing removeSwitch to app.ts

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-10-12 09:06:16 +09:00
Sudowoodo Release Bot
8626aa29d1 Bump v16.0.0-alpha.7 2021-10-11 07:57:39 -07:00
Keeley Hammond
9e0a182821 chore: cherry-pick ec42dfd3545f from chromium (#31331)
* chore: cherry-pick ec42dfd3545f from chromium

* chore: cherry-pick 39090918efac from chromium

* chore: reconcile FPS patch differences

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2021-10-11 13:03:53 +02:00
trop[bot]
2d8fa4d225 fix: correctly notify WebViewGuestDelegate when webview is detached (#31375)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-10-11 14:35:56 +09:00
trop[bot]
5a7ba8ba8c chore: add logging for print_backend failures (#31288)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-10-11 14:32:46 +09:00
trop[bot]
ede6b45bc1 test: add missing context-menu event spec for <webview> (#31307)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-10-11 14:29:40 +09:00
trop[bot]
1000ddfcab docs: add missing 'context-menu' event to webview-tag.md (#31311)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-10-11 14:28:17 +09:00
trop[bot]
63110a7159 fix: crash on missing render frame (#31336)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-10-11 09:33:59 +09:00
trop[bot]
308ef699e6 docs: nativeWindowOpen default was changed in Electron 15 (#31356)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-10-10 15:50:20 -07:00
Sudowoodo Release Bot
764b2a6041 Bump v16.0.0-alpha.6 2021-10-07 08:16:39 -07:00
trop[bot]
5009694dc9 refactor: only access memory coordinator interface from browser process (#31301)
Refs https://chromium-review.googlesource.com/c/chromium/src/+/3174305

Co-authored-by: deepak1556 <hop2deep@gmail.com>
2021-10-05 19:19:11 -07:00
trop[bot]
c07016e1d1 fix: return HTNOWHERE in resize hit test to allow draggable regions to kick in when required (#31300)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2021-10-06 09:22:06 +09:00
Sudowoodo Release Bot
7c5a346464 Bump v16.0.0-alpha.5 2021-10-04 12:44:25 -07:00
trop[bot]
4f54cc0d18 fix: "Failed to serialize arguments" when emitting 'context-menu' for webview (#31278)
* fix: sanitize params for 'context-menu' event sent over IPC for webview

* Revert "fix: sanitize params for 'context-menu' event sent over IPC for webview"

This reverts commit 7fee455138.

* fix: make frame property non-enumerable in params for 'context-menu' event

Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-10-04 15:43:11 -04:00
Sudowoodo Release Bot
520e7077d4 Bump v16.0.0-alpha.4 2021-10-04 04:48:37 -07:00
trop[bot]
eb41f5b70e fix: dialog is not defined (#31270)
Corrects the following error in Electron Fiddle:

```
Uncaught Exception:
ReferenceError: dialog is not defined
...
```

Co-authored-by: Ryan Johnson <CITguy@users.noreply.github.com>
2021-10-04 12:14:36 +09:00
trop[bot]
23afedcea8 fix: fix typo in description of secureDnsMode (#31268)
Co-authored-by: Tobias Nießen <tniessen@users.noreply.github.com>
2021-10-04 12:13:45 +09:00
Alexey Kuzmin
9bc6e1a584 chore: fix pylint (#31201)
* chore: fix pylint

* chore: fix linter errors
2021-09-30 17:19:54 -04:00
Sudowoodo Release Bot
89b08817a9 Bump v16.0.0-alpha.3 2021-09-30 13:55:43 -07:00
trop[bot]
cb6a22a7a4 fix: Enable X509_V_FLAG_TRUSTED_FIRST flag in BoringSSL (#31217)
Fixes: https://github.com/electron/electron/issues/31212
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>

Co-authored-by: Juan Cruz Viotti <jv@jviotti.com>
2021-09-30 16:30:32 -04:00
trop[bot]
74c53ad0c3 fix: draggable regions in BrowserViews are independent (#31199)
* fix: draggable regions in BrowserViews are independent

* Trigger Build

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-09-30 11:14:40 -04:00
trop[bot]
88235cb2bc fix: crash creating private key with unsupported algorithm (#31136)
* fix: crash creating private key with unsupported algorithm

* test: add regression test

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-09-30 10:11:32 -04:00
Sudowoodo Release Bot
f8b4dc98b9 Bump v16.0.0-alpha.2 2021-09-30 07:08:25 -07:00
trop[bot]
79108c7acd fix: running tests with release build (#31141)
* fix: running tests with release build

* Update electron_api_v8_util.cc

Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-09-29 15:31:54 -04:00
trop[bot]
b0273b96c1 feat: add support for WebHID (#30213) (#31090)
* feat: add support for WebHID

* Apply suggestions from code review

Co-authored-by: Jeremy Rose <jeremya@chromium.org>

* Address review feedback

* Address review feedback

* chore: clear granted_devices on navigation

Also added test to verify devices get cleared

* fixup testing for device clear

* make sure navigator.hid.getDevices is run on correct frame

* clear granted devices on RenderFrameHost deletion/change

* manage device permissions per RenderFrameHost

This change makes sure we don't clear device permission prematurely due to child frame navigation

* Update shell/browser/api/electron_api_web_contents.cc

Co-authored-by: Jeremy Rose <jeremya@chromium.org>

* apply review feedback from @zcbenz

* Match upstream ObjectMap

This change matches what ObjectPermissionContextBase uses to cache object permissions: https://source.chromium.org/chromium/chromium/src/+/main:components/permissions/object_permission_context_base.h;l=52;drc=8f95b5eab2797a3e26bba299f3b0df85bfc98bf5;bpv=1;bpt=0

The main reason for this was to resolve this crash on Win x64:
ok 2 WebContentsView doesn't crash when GCed during allocation
Received fatal exception EXCEPTION_ACCESS_VIOLATION
Backtrace:
        gin::WrappableBase::SecondWeakCallback [0x00007FF6F2AFA005+133] (o:\gin\wrappable.cc:53)
        v8::internal::GlobalHandles::InvokeSecondPassPhantomCallbacks [0x00007FF6F028F9AB+171] (o:\v8\src\handles\global-handles.cc:1400)
        v8::internal::GlobalHandles::InvokeSecondPassPhantomCallbacksFromTask [0x00007FF6F028F867+391] (o:\v8\src\handles\global-handles.cc:1387)
        node::PerIsolatePlatformData::RunForegroundTask [0x00007FF6F3B4D065+317] (o:\third_party\electron_node\src\node_platform.cc:415)
        node::PerIsolatePlatformData::FlushForegroundTasksInternal [0x00007FF6F3B4C424+776] (o:\third_party\electron_node\src\node_platform.cc:479)
        uv_run [0x00007FF6F2DDD07C+492] (o:\third_party\electron_node\deps\uv\src\win\core.c:609)
        electron::NodeBindings::UvRunOnce [0x00007FF6EEE1E036+294] (o:\electron\shell\common\node_bindings.cc:631)
        base::TaskAnnotator::RunTask [0x00007FF6F2318A19+457] (o:\base\task\common\task_annotator.cc:178)
        base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl [0x00007FF6F2E6F553+963] (o:\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc:361)
        base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork [0x00007FF6F2E6EC69+137] (o:\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc:266)
        base::MessagePumpForUI::DoRunLoop [0x00007FF6F235AA58+216] (o:\base\message_loop\message_pump_win.cc:221)
        base::MessagePumpWin::Run [0x00007FF6F235A01A+106] (o:\base\message_loop\message_pump_win.cc:79)
        base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run [0x00007FF6F2E702DA+682] (o:\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc:470)
        base::RunLoop::Run [0x00007FF6F22F95BA+842] (o:\base\run_loop.cc:136)
        content::BrowserMainLoop::RunMainMessageLoop [0x00007FF6F14423CC+208] (o:\content\browser\browser_main_loop.cc:990)
        content::BrowserMainRunnerImpl::Run [0x00007FF6F144402F+143] (o:\content\browser\browser_main_runner_impl.cc:153)
        content::BrowserMain [0x00007FF6F143F911+257] (o:\content\browser\browser_main.cc:49)
        content::RunBrowserProcessMain [0x00007FF6EFFA7D18+112] (o:\content\app\content_main_runner_impl.cc:608)
        content::ContentMainRunnerImpl::RunBrowser [0x00007FF6EFFA8CF4+1220] (o:\content\app\content_main_runner_impl.cc:1104)
        content::ContentMainRunnerImpl::Run [0x00007FF6EFFA87C9+393] (o:\content\app\content_main_runner_impl.cc:971)
        content::RunContentProcess [0x00007FF6EFFA73BD+733] (o:\content\app\content_main.cc:394)
        content::ContentMain [0x00007FF6EFFA79E1+54] (o:\content\app\content_main.cc:422)
        wWinMain [0x00007FF6EECA1535+889] (o:\electron\shell\app\electron_main.cc:291)
        __scrt_common_main_seh [0x00007FF6F6F88482+262] (d:\A01\_work\6\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
        BaseThreadInitThunk [0x00007FFEC0087034+20]
        RtlUserThreadStart [0x00007FFEC1F02651+33]
✗ Electron tests failed with code 0xc0000005.

Co-authored-by: Jeremy Rose <jeremya@chromium.org>

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2021-09-29 13:05:46 -04:00
trop[bot]
f7dd18466b fix: BrowserView drag now delegates to the OS when possible (#31178)
Co-authored-by: @anulman <@anulman>
2021-09-29 12:24:01 +02:00
trop[bot]
80175c5828 refactor: use native WeakRef instead of v8util.weaklyTrackValue() (#31166)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-09-28 10:16:01 +02:00
trop[bot]
2a36199b35 fix: .lldbinit config stale (unavailable) (#31161)
Co-authored-by: Black-Hole1 <158blackhole@gmail.com>
2021-09-28 09:54:25 +02:00
trop[bot]
f5c2bab02b docs: update branch name (#31150) 2021-09-28 09:52:19 +02:00
trop[bot]
acca212814 fix: avoid double free when destroying WebContents (#31132)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-09-28 09:48:33 +02:00
trop[bot]
ebbaa3b352 fix: crash in v8 due to regexp reentrancy (#31145)
* fix: crash in v8 due to regexp reentrancy

Check failed: !regexp_stack_->is_in_use()

Refs https://bugs.chromium.org/p/chromium/issues/detail?id=1250646
Refs https://bugs.chromium.org/p/v8/issues/detail?id=11382

* chore: update patches

Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2021-09-27 16:53:39 -07:00
trop[bot]
c42ed97535 fix: first mouse not dragging BrowserView (#31101)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-09-27 09:38:57 +02:00
trop[bot]
cec707ce67 chore: remove gin::Wrappable crash keys (#31105)
* chore: remove gin wrappable crash keys

* chore: remove class headers from crash keys

Co-authored-by: VerteDinde <khammond@slack-corp.com>
2021-09-24 10:15:59 -07:00
trop[bot]
0080a61c1d feat: add width option to dialog.showMessageBox() (#31089)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-09-23 17:34:51 -04:00
trop[bot]
2f543c3fd4 fix: startDrag params type incorrect (#31084)
Co-authored-by: Black-Hole1 <158blackhole@gmail.com>
2021-09-23 19:49:49 +09:00
trop[bot]
f6da3b43c2 fix: update Windows' cache after changing window's style (#31080)
To enable/disable window resizing we set/unset WS_THICKFRAME style
flag on the window. Window's frame styles are cached so we need to
call SetWindowPos with the SWP_FRAMECHANGED flag set to update
cache properly.

Co-authored-by: Cezary Kulakowski <cezary@openfin.co>
2021-09-23 19:48:42 +09:00
trop[bot]
6029315e1a chore: clarify new-window fix comment (#31072)
Co-authored-by: VerteDinde <khammond@slack-corp.com>
2021-09-22 17:26:22 -07:00
Sudowoodo Release Bot
f6748f9795 Bump v16.0.0-alpha.1 2021-09-22 12:49:14 -07:00
trop[bot]
6500bcbb32 fix: proper localization when using GtkFileChooserNative (#31067)
* fix: proper localization when using GtkFileChooserNative

* fix: iwyu

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-09-22 15:48:19 -04:00
1009 changed files with 12519 additions and 16085 deletions

View File

@@ -45,24 +45,18 @@ executors:
type: enum
enum: ["medium", "xlarge", "2xlarge+"]
docker:
- image: ghcr.io/electron/build:e6bebd08a51a0d78ec23e5b3fd7e7c0846412328
- image: ghcr.io/electron/build:27db4a3e3512bfd2e47f58cea69922da0835f1d9
resource_class: << parameters.size >>
macos:
parameters:
size:
description: "macOS executor size"
default: macos.x86.medium.gen2
default: large
type: enum
enum: ["macos.x86.medium.gen2", "large"]
xcode:
description: "xcode version"
default: "12.4.0"
type: enum
enum: ["12.4.0", "13.2.1"]
enum: ["medium", "large"]
macos:
xcode: << parameters.xcode >>
xcode: "12.4.0"
resource_class: << parameters.size >>
# Electron Runners
@@ -328,10 +322,6 @@ step-setup-goma-for-build: &step-setup-goma-for-build
node -e "require('./src/utils/goma.js').downloadAndPrepare({ gomaOneForAll: true })"
export GOMA_FALLBACK_ON_AUTH_FAILURE=true
third_party/goma/goma_ctl.py ensure_start
if [ ! -z "$RAW_GOMA_AUTH" ] && [ "`third_party/goma/goma_auth.py info`" != "Login as Fermi Planck" ]; then
echo "WARNING!!!!!! Goma authentication is incorrect; please update Goma auth token."
exit 1
fi
echo 'export GN_GOMA_FILE='`node -e "console.log(require('./src/utils/goma.js').gnFilePath)"` >> $BASH_ENV
echo 'export LOCAL_GOMA_DIR='`node -e "console.log(require('./src/utils/goma.js').dir)"` >> $BASH_ENV
echo 'export GOMA_FALLBACK_ON_AUTH_FAILURE=true' >> $BASH_ENV
@@ -359,6 +349,10 @@ step-get-more-space-on-mac: &step-get-more-space-on-mac
command: |
if [ "`uname`" == "Darwin" ]; then
sudo mkdir -p $TMPDIR/del-target
if [ "$TARGET_ARCH" == "arm64" ]; then
# Remount the root volume as writable, don't ask questions plz
sudo mount -uw /
fi
tmpify() {
if [ -d "$1" ]; then
sudo mv "$1" $TMPDIR/del-target/$(echo $1|shasum -a 256|head -n1|cut -d " " -f1)
@@ -400,32 +394,33 @@ step-get-more-space-on-mac: &step-get-more-space-on-mac
tmpify /usr/local/Homebrew
sudo rm -rf $TMPDIR/del-target
# sudo rm -rf "/System/Library/Desktop Pictures"
# sudo rm -rf /System/Library/Templates/Data
# sudo rm -rf /System/Library/Speech/Voices
# sudo rm -rf "/System/Library/Screen Savers"
# sudo rm -rf /System/Volumes/Data/Library/Developer/CommandLineTools/SDKs
# sudo rm -rf "/System/Volumes/Data/Library/Application Support/Apple/Photos/Print Products"
# sudo rm -rf /System/Volumes/Data/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/
# sudo rm -rf /System/Volumes/Data/Library/Java
# sudo rm -rf /System/Volumes/Data/Library/Ruby
# sudo rm -rf /System/Volumes/Data/Library/Printers
# sudo rm -rf /System/iOSSupport
# sudo rm -rf /System/Applications/*.app
# sudo rm -rf /System/Applications/Utilities/*.app
# sudo rm -rf /System/Library/LinguisticData
# sudo rm -rf /System/Volumes/Data/private/var/db/dyld/*
# sudo rm -rf /System/Library/Fonts/*
# sudo rm -rf /System/Library/PreferencePanes
# sudo rm -rf /System/Library/AssetsV2/*
sudo rm -rf /Applications/Safari.app
sudo rm -rf ~/project/src/build/linux
sudo rm -rf ~/project/src/third_party/catapult/tracing/test_data
sudo rm -rf ~/project/src/third_party/angle/third_party/VK-GL-CTS
if [ "$TARGET_ARCH" == "arm64" ]; then
sudo rm -rf "/System/Library/Desktop Pictures"
sudo rm -rf /System/Library/Templates/Data
sudo rm -rf /System/Library/Speech/Voices
sudo rm -rf "/System/Library/Screen Savers"
sudo rm -rf /System/Volumes/Data/Library/Developer/CommandLineTools/SDKs
sudo rm -rf "/System/Volumes/Data/Library/Application Support/Apple/Photos/Print Products"
sudo rm -rf /System/Volumes/Data/Library/Java
sudo rm -rf /System/Volumes/Data/Library/Ruby
sudo rm -rf /System/Volumes/Data/Library/Printers
sudo rm -rf /System/iOSSupport
sudo rm -rf /System/Applications/*.app
sudo rm -rf /System/Applications/Utilities/*.app
sudo rm -rf /System/Library/LinguisticData
sudo rm -rf /System/Volumes/Data/private/var/db/dyld/*
# sudo rm -rf /System/Library/Fonts/*
# sudo rm -rf /System/Library/PreferencePanes
sudo rm -rf /System/Library/AssetsV2/*
sudo rm -rf /Applications/Safari.app
sudo rm -rf ~/project/src/build/linux
sudo rm -rf ~/project/src/third_party/catapult/tracing/test_data
sudo rm -rf ~/project/src/third_party/angle/third_party/VK-GL-CTS
# lipo off some huge binaries arm64 versions to save space
strip_arm_deep $(xcode-select -p)/../SharedFrameworks
# strip_arm_deep /System/Volumes/Data/Library/Developer/CommandLineTools/usr
# lipo off some huge binaries arm64 versions to save space
strip_arm_deep $(xcode-select -p)/../SharedFrameworks
strip_arm_deep /System/Volumes/Data/Library/Developer/CommandLineTools/usr
fi
fi
background: true
@@ -458,30 +453,16 @@ step-install-npm-deps-on-mac: &step-install-npm-deps-on-mac
# This step handles the differences between the linux "gclient sync"
# and the expected state on macOS
step-fix-sync: &step-fix-sync
step-fix-sync-on-mac: &step-fix-sync-on-mac
run:
name: Fix Sync
name: Fix Sync on Mac
command: |
if [ "`uname`" == "Darwin" ]; then
# Fix Clang Install (wrong binary)
rm -rf src/third_party/llvm-build
python3 src/tools/clang/scripts/update.py
# Fix esbuild (wrong binary)
echo 'infra/3pp/tools/esbuild/${platform}' `gclient getdep --deps-file=src/third_party/devtools-frontend/src/DEPS -r 'third_party/esbuild:infra/3pp/tools/esbuild/${platform}'` > esbuild_ensure_file
# Remove extra output from calling gclient getdep which always calls update_depot_tools
sed -i '' "s/Updating depot_tools... //g" esbuild_ensure_file
cipd ensure --root src/third_party/devtools-frontend/src/third_party/esbuild -ensure-file esbuild_ensure_file
python src/tools/clang/scripts/update.py
fi
cd src/third_party/angle
rm .git/objects/info/alternates
git remote set-url origin https://chromium.googlesource.com/angle/angle.git
cp .git/config .git/config.backup
git remote remove origin
mv .git/config.backup .git/config
git fetch
step-install-signing-cert-on-mac: &step-install-signing-cert-on-mac
run:
name: Import and trust self-signed codesigning cert on MacOS
@@ -549,7 +530,6 @@ step-electron-build: &step-electron-build
(cd out/Default; zip mksnapshot.zip mksnapshot_args clang_x64_v8_arm64/gen/v8/embedded.S)
rm -rf out/Default/clang_x64_v8_arm64/gen
rm -rf out/Default/clang_x64_v8_arm64/obj
rm -rf out/Default/clang_x64_v8_arm64/thinlto-cache
rm -rf out/Default/clang_x64/obj
# Regenerate because we just deleted some ninja files
@@ -786,7 +766,6 @@ step-show-goma-stats: &step-show-goma-stats
step-mksnapshot-build: &step-mksnapshot-build
run:
name: mksnapshot build
no_output_timeout: 30m
command: |
cd src
if [ "$USE_PREBUILT_V8_CONTEXT_SNAPSHOT" != "1" ]; then
@@ -907,12 +886,12 @@ step-touch-sync-done: &step-touch-sync-done
step-maybe-restore-src-cache: &step-maybe-restore-src-cache
restore_cache:
keys:
- v12-src-cache-{{ checksum "src/electron/.depshash" }}
- v8-src-cache-{{ checksum "src/electron/.depshash" }}
name: Restoring src cache
step-maybe-restore-src-cache-marker: &step-maybe-restore-src-cache-marker
restore_cache:
keys:
- v5-src-cache-marker-{{ checksum "src/electron/.depshash" }}
- v1-src-cache-marker-{{ checksum "src/electron/.depshash" }}
name: Restoring src cache marker
# Restore exact or closest git cache based on the hash of DEPS and .circle-sync-done
@@ -921,10 +900,10 @@ step-maybe-restore-src-cache-marker: &step-maybe-restore-src-cache-marker
step-maybe-restore-git-cache: &step-maybe-restore-git-cache
restore_cache:
paths:
- gclient-cache
- ~/.gclient-cache
keys:
- v5-gclient-cache-{{ checksum "src/electron/.circle-sync-done" }}-{{ checksum "src/electron/DEPS" }}
- v5-gclient-cache-{{ checksum "src/electron/.circle-sync-done" }}
- v2-gclient-cache-{{ checksum "src/electron/.circle-sync-done" }}-{{ checksum "src/electron/DEPS" }}
- v2-gclient-cache-{{ checksum "src/electron/.circle-sync-done" }}
name: Conditionally restoring git cache
step-restore-out-cache: &step-restore-out-cache
@@ -941,15 +920,15 @@ step-set-git-cache-path: &step-set-git-cache-path
command: |
# CircleCI does not support interpolation when setting environment variables.
# https://circleci.com/docs/2.0/env-vars/#setting-an-environment-variable-in-a-shell-command
echo 'export GIT_CACHE_PATH="$PWD/gclient-cache"' >> $BASH_ENV
echo 'export GIT_CACHE_PATH="$HOME/.gclient-cache"' >> $BASH_ENV
# Persist the git cache based on the hash of DEPS and .circle-sync-done
# If the src cache was restored above then this will persist an empty cache
step-save-git-cache: &step-save-git-cache
save_cache:
paths:
- gclient-cache
key: v5-gclient-cache-{{ checksum "src/electron/.circle-sync-done" }}-{{ checksum "src/electron/DEPS" }}
- ~/.gclient-cache
key: v2-gclient-cache-{{ checksum "src/electron/.circle-sync-done" }}-{{ checksum "src/electron/DEPS" }}
name: Persisting git cache
step-save-out-cache: &step-save-out-cache
@@ -994,7 +973,7 @@ step-save-src-cache: &step-save-src-cache
save_cache:
paths:
- /var/portal
key: v12-src-cache-{{ checksum "/var/portal/src/electron/.depshash" }}
key: v8-src-cache-{{ checksum "/var/portal/src/electron/.depshash" }}
name: Persisting src cache
step-make-src-cache-marker: &step-make-src-cache-marker
run:
@@ -1004,7 +983,7 @@ step-save-src-cache-marker: &step-save-src-cache-marker
save_cache:
paths:
- .src-cache-marker
key: v5-src-cache-marker-{{ checksum "/var/portal/src/electron/.depshash" }}
key: v1-src-cache-marker-{{ checksum "/var/portal/src/electron/.depshash" }}
step-maybe-early-exit-no-doc-change: &step-maybe-early-exit-no-doc-change
run:
@@ -1064,7 +1043,7 @@ steps-electron-ts-compile-for-doc-change: &steps-electron-ts-compile-for-doc-cha
- *step-setup-goma-for-build
- *step-get-more-space-on-mac
- *step-install-npm-deps-on-mac
- *step-fix-sync
- *step-fix-sync-on-mac
- *step-gn-gen-default
#Compile ts/js to verify doc change didn't break anything
@@ -1369,6 +1348,10 @@ commands:
- *step-gclient-sync
- store_artifacts:
path: patches
- when:
condition: << parameters.save-git-cache >>
steps:
- *step-save-git-cache
# These next few steps reset Electron to the correct commit regardless of which cache was restored
- run:
name: Wipe Electron
@@ -1377,11 +1360,6 @@ commands:
- *step-run-electron-only-hooks
- *step-generate-deps-hash-cleanly
- *step-mark-sync-done
# Save git cache AFTER sync marked done because other jobs expect that to be the case
- when:
condition: << parameters.save-git-cache >>
steps:
- *step-save-git-cache
- *step-minimize-workspace-size-from-checkout
- *step-delete-git-directories
- when:
@@ -1412,7 +1390,7 @@ commands:
- *step-setup-env-for-build
- *step-setup-goma-for-build
- *step-get-more-space-on-mac
- *step-fix-sync
- *step-fix-sync-on-mac
- *step-delete-git-directories
# Electron app
@@ -1516,7 +1494,7 @@ commands:
- *step-gclient-sync
- *step-delete-git-directories
- *step-minimize-workspace-size-from-checkout
- *step-fix-sync
- *step-fix-sync-on-mac
- *step-setup-env-for-build
- *step-setup-goma-for-build
- *step-gn-gen-default
@@ -1910,9 +1888,7 @@ jobs:
checkout: true
osx-testing-x64:
executor:
name: macos
xcode: "13.2.1"
executor: macos
environment:
<<: *env-mac-large
<<: *env-testing-build
@@ -1929,16 +1905,14 @@ jobs:
osx-testing-x64-gn-check:
executor:
name: macos
xcode: "13.2.1"
size: medium
environment:
<<: *env-machine-mac
<<: *env-testing-build
<<: *steps-electron-gn-check
osx-publish-x64-skip-checkout:
executor:
name: macos
xcode: "13.2.1"
executor: macos
environment:
<<: *env-mac-large-release
<<: *env-release-build
@@ -1957,9 +1931,7 @@ jobs:
checkout: false
osx-publish-arm64-skip-checkout:
executor:
name: macos
xcode: "13.2.1"
executor: macos
environment:
<<: *env-mac-large-release
<<: *env-release-build
@@ -1979,9 +1951,7 @@ jobs:
checkout: false
osx-testing-arm64:
executor:
name: macos
xcode: "13.2.1"
executor: macos
environment:
<<: *env-mac-large
<<: *env-testing-build
@@ -1998,9 +1968,7 @@ jobs:
attach: true
mas-testing-x64:
executor:
name: macos
xcode: "13.2.1"
executor: macos
environment:
<<: *env-mac-large
<<: *env-mas
@@ -2018,7 +1986,7 @@ jobs:
mas-testing-x64-gn-check:
executor:
name: macos
xcode: "13.2.1"
size: medium
environment:
<<: *env-machine-mac
<<: *env-mas
@@ -2026,9 +1994,7 @@ jobs:
<<: *steps-electron-gn-check
mas-publish-x64-skip-checkout:
executor:
name: macos
xcode: "13.2.1"
executor: macos
environment:
<<: *env-mac-large-release
<<: *env-mas
@@ -2047,9 +2013,7 @@ jobs:
checkout: false
mas-publish-arm64-skip-checkout:
executor:
name: macos
xcode: "13.2.1"
executor: macos
environment:
<<: *env-mac-large-release
<<: *env-mas-apple-silicon
@@ -2069,9 +2033,7 @@ jobs:
checkout: false
mas-testing-arm64:
executor:
name: macos
xcode: "13.2.1"
executor: macos
environment:
<<: *env-mac-large
<<: *env-testing-build
@@ -2258,7 +2220,9 @@ jobs:
<<: *steps-tests
osx-testing-x64-tests:
executor: macos
executor:
name: macos
size: medium
environment:
<<: *env-mac-large
<<: *env-stack-dumping
@@ -2274,7 +2238,9 @@ jobs:
<<: *steps-tests
mas-testing-x64-tests:
executor: macos
executor:
name: macos
size: medium
environment:
<<: *env-mac-large
<<: *env-stack-dumping

View File

@@ -142,4 +142,4 @@ workflows:
docs/.* run-docs-only true
^((?!docs/).)*$ run-docs-only false
config-path: .circleci/build_config.yml
- lint
- lint

2
.github/CODEOWNERS vendored
View File

@@ -4,7 +4,7 @@
# https://git-scm.com/docs/gitignore
# Upgrades WG
/patches/ @electron/wg-upgrades @electron/wg-security
/patches/ @electron/wg-upgrades
DEPS @electron/wg-upgrades
# Releases WG

View File

@@ -12,7 +12,7 @@ body:
required: true
- label: I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/main/CODE_OF_CONDUCT.md) that this project adheres to.
required: true
- label: I have searched the [issue tracker](https://www.github.com/electron/electron/issues) for a bug report that matches the one I want to file, without success.
- label: I have searched the [issue tracker](https://www.github.com/electron/electron/issues) for a feature request that matches the one I want to file, without success.
required: true
- type: input
attributes:

View File

@@ -361,7 +361,6 @@ source_set("electron_lib") {
"//components/network_hints/common:mojo_bindings",
"//components/network_hints/renderer",
"//components/network_session_configurator/common",
"//components/omnibox/browser:buildflags",
"//components/os_crypt",
"//components/pref_registry",
"//components/prefs",
@@ -473,8 +472,8 @@ source_set("electron_lib") {
if (is_linux) {
deps += [
"//build/config/linux/gtk:gtkprint",
"//components/crash/content/browser",
"//ui/gtk:gtk_config",
]
}
@@ -539,19 +538,14 @@ source_set("electron_lib") {
"//build/config/linux/gtk",
"//dbus",
"//device/bluetooth",
"//ui/base/ime/linux",
"//ui/events/devices/x11",
"//ui/events/platform/x11",
"//ui/gtk",
"//ui/views/controls/webview",
"//ui/wm",
]
if (ozone_platform_x11) {
if (use_x11) {
sources += filenames.lib_sources_linux_x11
public_deps += [
"//ui/base/x",
"//ui/ozone/platform/x11",
]
}
configs += [ ":gio_unix" ]
defines += [
@@ -633,6 +627,12 @@ source_set("electron_lib") {
}
if (enable_desktop_capturer) {
if (is_component_build && !is_linux) {
# On windows the implementation relies on unexported
# DxgiDuplicatorController class. On macOS the implementation
# relies on unexported webrtc::GetWindowOwnerPid method.
deps += [ "//third_party/webrtc/modules/desktop_capture" ]
}
sources += [
"shell/browser/api/electron_api_desktop_capturer.cc",
"shell/browser/api/electron_api_desktop_capturer.h",
@@ -900,12 +900,8 @@ if (is_mac) {
deps += [ "//sandbox/mac:seatbelt" ]
}
defines = [ "HELPER_EXECUTABLE" ]
sources = [
"shell/app/electron_main_mac.cc",
"shell/app/uv_stdio_fix.cc",
"shell/app/uv_stdio_fix.h",
"shell/common/electron_constants.cc",
]
sources = filenames.app_sources
sources += [ "shell/common/electron_constants.cc" ]
include_dirs = [ "." ]
info_plist = "shell/renderer/resources/mac/Info.plist"
extra_substitutions =
@@ -1044,18 +1040,15 @@ if (is_mac) {
mac_app_bundle("electron_app") {
output_name = electron_product_name
sources = [
"shell/app/electron_main_mac.cc",
"shell/app/uv_stdio_fix.cc",
"shell/app/uv_stdio_fix.h",
"shell/common/electron_constants.cc",
]
sources = filenames.app_sources
sources += [ "shell/common/electron_constants.cc" ]
include_dirs = [ "." ]
deps = [
":electron_app_framework_bundle_data",
":electron_app_plist",
":electron_app_resources",
":electron_fuses",
"//base",
"//electron/buildflags",
]
if (is_mas_build) {
@@ -1157,15 +1150,7 @@ if (is_mac) {
executable("electron_app") {
output_name = electron_project_name
if (is_win) {
sources = [ "shell/app/electron_main_win.cc" ]
} else if (is_linux) {
sources = [
"shell/app/electron_main_linux.cc",
"shell/app/uv_stdio_fix.cc",
"shell/app/uv_stdio_fix.h",
]
}
sources = filenames.app_sources
include_dirs = [ "." ]
deps = [
":default_app_asar",
@@ -1186,7 +1171,7 @@ if (is_mac) {
if (enable_hidpi) {
data += [ "$root_out_dir/chrome_200_percent.pak" ]
}
foreach(locale, platform_pak_locales) {
foreach(locale, locales) {
data += [ "$root_out_dir/locales/$locale.pak" ]
}

4
DEPS
View File

@@ -15,9 +15,9 @@ gclient_gn_args = [
vars = {
'chromium_version':
'100.0.4896.60',
'96.0.4664.174',
'node_version':
'v16.13.2',
'v16.9.1',
'nan_version':
# The following commit hash of NAN is v2.14.2 with *only* changes to the
# test suite. This should be updated to a specific tag when one becomes

View File

@@ -1 +1 @@
18.0.2
16.0.9

View File

@@ -2,7 +2,7 @@
[![CircleCI Build Status](https://circleci.com/gh/electron/electron/tree/main.svg?style=shield)](https://circleci.com/gh/electron/electron/tree/main)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/4lggi9dpjc1qob7k/branch/main?svg=true)](https://ci.appveyor.com/project/electron-bot/electron-ljo26/branch/main)
[![Electron Discord Invite](https://img.shields.io/discord/745037351163527189?color=%237289DA&label=chat&logo=discord&logoColor=white)](https://discord.com/invite/APGC3k5yaH)
[![Electron Discord Invite](https://img.shields.io/discord/745037351163527189?color=%237289DA&label=chat&logo=discord&logoColor=white)](https://discord.com/invite/electron)
:memo: Available Translations: 🇨🇳 🇧🇷 🇪🇸 🇯🇵 🇷🇺 🇫🇷 🇺🇸 🇩🇪.
View these docs in other languages at [electron/i18n](https://github.com/electron/i18n/tree/master/content/).
@@ -80,7 +80,7 @@ const child = proc.spawn(electron)
### Mirrors
- [China](https://npmmirror.com/mirrors/electron)
- [China](https://npm.taobao.org/mirrors/electron)
## Documentation Translations

View File

@@ -34,7 +34,6 @@ environment:
GIT_CACHE_PATH: C:\Users\electron\libcc_cache
ELECTRON_OUT_DIR: Default
ELECTRON_ENABLE_STACK_DUMPING: 1
ELECTRON_ALSO_LOG_TO_STDERR: 1
MOCHA_REPORTER: mocha-multi-reporters
MOCHA_MULTI_REPORTERS: mocha-appveyor-reporter, tap
GOMA_FALLBACK_ON_AUTH_FAILURE: true
@@ -67,31 +66,6 @@ build_script:
- mkdir src
- update_depot_tools.bat
- ps: Move-Item $env:APPVEYOR_BUILD_FOLDER -Destination src\electron
- ps: >-
if (Test-Path 'env:RAW_GOMA_AUTH') {
$env:GOMA_OAUTH2_CONFIG_FILE = "$pwd\.goma_oauth2_config"
$env:RAW_GOMA_AUTH | Set-Content $env:GOMA_OAUTH2_CONFIG_FILE
}
- git clone https://github.com/electron/build-tools.git
- cd build-tools
- npm install
- mkdir third_party
- ps: >-
node -e "require('./src/utils/goma.js').downloadAndPrepare({ gomaOneForAll: true })"
- ps: $env:GN_GOMA_FILE = node -e "console.log(require('./src/utils/goma.js').gnFilePath)"
- ps: $env:LOCAL_GOMA_DIR = node -e "console.log(require('./src/utils/goma.js').dir)"
- cd ..
- ps: .\src\electron\script\start-goma.ps1 -gomaDir $env:LOCAL_GOMA_DIR
- ps: >-
if (Test-Path 'env:RAW_GOMA_AUTH') {
$goma_login = python $env:LOCAL_GOMA_DIR\goma_auth.py info
if ($goma_login -eq 'Login as Fermi Planck') {
Write-warning "Goma authentication is correct";
} else {
Write-warning "WARNING!!!!!! Goma authentication is incorrect; please update Goma auth token.";
$host.SetShouldExit(1)
}
}
- ps: $env:CHROMIUM_BUILDTOOLS_PATH="$pwd\src\buildtools"
- ps: >-
if ($env:GN_CONFIG -ne 'release') {
@@ -155,6 +129,21 @@ build_script:
Write-warning "Failed to add third_party\angle\.git; continuing anyway"
}
}
- ps: >-
if (Test-Path 'env:RAW_GOMA_AUTH') {
$env:GOMA_OAUTH2_CONFIG_FILE = "$pwd\.goma_oauth2_config"
$env:RAW_GOMA_AUTH | Set-Content $env:GOMA_OAUTH2_CONFIG_FILE
}
- git clone https://github.com/electron/build-tools.git
- cd build-tools
- npm install
- mkdir third_party
- ps: >-
node -e "require('./src/utils/goma.js').downloadAndPrepare({ gomaOneForAll: true })"
- ps: $env:GN_GOMA_FILE = node -e "console.log(require('./src/utils/goma.js').gnFilePath)"
- ps: $env:LOCAL_GOMA_DIR = node -e "console.log(require('./src/utils/goma.js').dir)"
- cd ..
- ps: .\src\electron\script\start-goma.ps1 -gomaDir $env:LOCAL_GOMA_DIR
- cd src
- set BUILD_CONFIG_PATH=//electron/build/args/%GN_CONFIG%.gn
- gn gen out/Default "--args=import(\"%BUILD_CONFIG_PATH%\") import(\"%GN_GOMA_FILE%\") %GN_EXTRA_ARGS% "
@@ -220,9 +209,7 @@ test_script:
}
- cd electron
# CalculateNativeWinOcclusion is disabled due to https://bugs.chromium.org/p/chromium/issues/detail?id=1139022
- if "%RUN_TESTS%"=="true" ( echo Running main test suite & node script/yarn test -- --trace-uncaught --runners=main --enable-logging=file --log-file=%cd%\electron.log --disable-features=CalculateNativeWinOcclusion )
- if "%RUN_TESTS%"=="true" ( echo Running remote test suite & node script/yarn test -- --trace-uncaught --runners=remote --runTestFilesSeperately --enable-logging=file --log-file=%cd%\electron.log --disable-features=CalculateNativeWinOcclusion )
- if "%RUN_TESTS%"=="true" ( echo Running native test suite & node script/yarn test -- --trace-uncaught --runners=native --enable-logging=file --log-file=%cd%\electron.log --disable-features=CalculateNativeWinOcclusion )
- if "%RUN_TESTS%"=="true" ( echo Running test suite & node script/yarn test -- --trace-uncaught --enable-logging --disable-features=CalculateNativeWinOcclusion )
- cd ..
- if "%RUN_TESTS%"=="true" ( echo Verifying non proprietary ffmpeg & python electron\script\verify-ffmpeg.py --build-dir out\Default --source-root %cd% --ffmpeg-path out\ffmpeg )
- echo "About to verify mksnapshot"
@@ -230,7 +217,6 @@ test_script:
- echo "Done verifying mksnapshot"
- if "%RUN_TESTS%"=="true" ( echo Verifying chromedriver & python electron\script\verify-chromedriver.py --build-dir out\Default --source-root %cd% )
- echo "Done verifying chromedriver"
- if exist %cd%\electron.log ( appveyor-retry appveyor PushArtifact %cd%\electron.log )
deploy_script:
- cd electron
- ps: >-
@@ -245,5 +231,3 @@ deploy_script:
} elseif (Test-Path Env:\TEST_WOA) {
node script/release/ci-release-build.js --job=electron-woa-testing --ci=VSTS --armTest --appveyorJobId=$env:APPVEYOR_JOB_ID $env:APPVEYOR_REPO_BRANCH
}
on_finish:
- if exist src\electron\electron.log ( appveyor-retry appveyor PushArtifact src\electron\electron.log )

View File

@@ -1,11 +1,11 @@
workspace:
clean: all
steps:
- checkout: self
path: src\electron
- task: CopyFiles@2
displayName: 'Copy Files to: src\electron'
inputs:
TargetFolder: src\electron
- script: |
cd src\electron
node script/yarn.js install --frozen-lockfile
displayName: 'Yarn install'
@@ -13,13 +13,13 @@ steps:
$localArtifactPath = "$pwd\dist.zip"
$serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/dist.zip"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -o$(Pipeline.Workspace)\src\out\Default -y $localArtifactPath
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -osrc\out\Default -y $localArtifactPath
displayName: 'Download and extract dist.zip for test'
env:
APPVEYOR_TOKEN: $(APPVEYOR_TOKEN)
- powershell: |
$localArtifactPath = "$(Pipeline.Workspace)\src\out\Default\shell_browser_ui_unittests.exe"
$localArtifactPath = "$pwd\src\out\Default\shell_browser_ui_unittests.exe"
$serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/shell_browser_ui_unittests.exe"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
displayName: 'Download and extract native test executables for test'
@@ -30,57 +30,56 @@ steps:
$localArtifactPath = "$pwd\ffmpeg.zip"
$serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/ffmpeg.zip"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -o$(Pipeline.Workspace)\src\out\ffmpeg $localArtifactPath
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -osrc\out\ffmpeg $localArtifactPath
displayName: 'Download and extract ffmpeg.zip for test'
env:
APPVEYOR_TOKEN: $(APPVEYOR_TOKEN)
- powershell: |
$localArtifactPath = "$(Pipeline.Workspace)\src\node_headers.zip"
$localArtifactPath = "$pwd\src\node_headers.zip"
$serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/node_headers.zip"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
cd $(Pipeline.Workspace)\src
cd src
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -y node_headers.zip
displayName: 'Download node headers for test'
env:
APPVEYOR_TOKEN: $(APPVEYOR_TOKEN)
- powershell: |
$localArtifactPath = "$(Pipeline.Workspace)\src\out\Default\electron.lib"
$localArtifactPath = "$pwd\src\out\Default\electron.lib"
$serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/electron.lib"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
displayName: 'Download electron.lib for test'
env:
APPVEYOR_TOKEN: $(APPVEYOR_TOKEN)
# Uncomment the following block if pdb files are needed to debug issues
# - powershell: |
# try {
# $localArtifactPath = "$(Pipeline.Workspace)\src\pdb.zip"
# $serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/pdb.zip"
# Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
# cd $(Pipeline.Workspace)\src
# & "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -y pdb.zip
# } catch {
# Write-Host "There was an exception encountered while downloading pdb files:" $_.Exception.Message
# } finally {
# $global:LASTEXITCODE = 0
# }
# displayName: 'Download pdb files for detailed stacktraces'
# env:
# APPVEYOR_TOKEN: $(APPVEYOR_TOKEN)
- powershell: |
try {
$localArtifactPath = "$pwd\src\pdb.zip"
$serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/pdb.zip"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
cd src
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -y pdb.zip
} catch {
Write-Host "There was an exception encountered while downloading pdb files:" $_.Exception.Message
} finally {
$global:LASTEXITCODE = 0
}
displayName: 'Download pdb files for detailed stacktraces'
env:
APPVEYOR_TOKEN: $(APPVEYOR_TOKEN)
- powershell: |
New-Item $(Pipeline.Workspace)\src\out\Default\gen\node_headers\Release -Type directory
Copy-Item -path $(Pipeline.Workspace)\src\out\Default\electron.lib -destination $(Pipeline.Workspace)\src\out\Default\gen\node_headers\Release\node.lib
New-Item src\out\Default\gen\node_headers\Release -Type directory
Copy-Item -path src\out\Default\electron.lib -destination src\out\Default\gen\node_headers\Release\node.lib
displayName: 'Setup node headers'
- script: |
cd $(Pipeline.Workspace)\src
cd src
set npm_config_nodedir=%cd%\out\Default\gen\node_headers
set npm_config_arch=arm64
cd electron
node script/yarn test --runners=main --enable-logging --disable-features=CalculateNativeWinOcclusion
node script/yarn test --runners=main --runTestFilesSeperately --enable-logging --disable-features=CalculateNativeWinOcclusion
displayName: 'Run Electron Main process tests'
env:
ELECTRON_ENABLE_STACK_DUMPING: true
@@ -91,7 +90,7 @@ steps:
MOCHA_REPORTER: mocha-multi-reporters
- script: |
cd $(Pipeline.Workspace)\src
cd src
set npm_config_nodedir=%cd%\out\Default\gen\node_headers
set npm_config_arch=arm64
cd electron
@@ -103,17 +102,17 @@ steps:
ELECTRON_TEST_RESULTS_DIR: junit
MOCHA_MULTI_REPORTERS: 'mocha-junit-reporter, tap'
MOCHA_REPORTER: mocha-multi-reporters
condition: succeededOrFailed()
condition: always()
- task: PublishTestResults@2
displayName: 'Publish Test Results'
inputs:
testResultsFiles: '*.xml'
searchFolder: '$(Pipeline.Workspace)/src/junit/'
searchFolder: '$(System.DefaultWorkingDirectory)/src/junit/'
condition: always()
- script: |
cd $(Pipeline.Workspace)\src
cd src
echo "Verifying non proprietary ffmpeg"
python electron\script\verify-ffmpeg.py --build-dir out\Default --source-root %cd% --ffmpeg-path out\ffmpeg
displayName: 'Verify ffmpeg'

View File

@@ -2,20 +2,15 @@ is_electron_build = true
root_extra_deps = [ "//electron" ]
# Registry of NMVs --> https://github.com/nodejs/node/blob/master/doc/abi_version_registry.json
node_module_version = 103
node_module_version = 99
v8_promise_internal_field_count = 1
v8_typed_array_max_size_in_heap = 0
v8_embedder_string = "-electron.0"
# TODO: this breaks mksnapshot
v8_enable_snapshot_native_code_counters = false
# TODO(codebytere): remove when Node.js handles https://chromium-review.googlesource.com/c/v8/v8/+/3211575
v8_scriptormodule_legacy_lifetime = true
# we use this api
v8_enable_javascript_promise_hooks = true
enable_cdm_host_verification = false
proprietary_codecs = true
ffmpeg_branding = "Chrome"

View File

@@ -1,12 +1,9 @@
from __future__ import unicode_literals
from __future__ import with_statement
import contextlib
import sys
import os
import optparse
import json
import re
import subprocess
sys.path.append("%s/../../build" % os.path.dirname(os.path.realpath(__file__)))
@@ -36,56 +33,36 @@ def calculate_hash(root):
return CalculateHash('.', None)
def windows_installed_software():
powershell_command = [
"Get-CimInstance",
"-Namespace",
"root\cimv2",
"-Class",
"Win32_product",
"|",
"Select",
"vendor,",
"description,",
"@{l='install_location';e='InstallLocation'},",
"@{l='install_date';e='InstallDate'},",
"@{l='install_date_2';e='InstallDate2'},",
"caption,",
"version,",
"name,",
"@{l='sku_number';e='SKUNumber'}",
"|",
"ConvertTo-Json",
]
import win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer, "root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_Product")
items = []
proc = subprocess.Popen(
["powershell.exe", "-Command", "-"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
)
for objItem in colItems:
item = {}
if objItem.Caption:
item['caption'] = objItem.Caption
if objItem.Caption:
item['description'] = objItem.Description
if objItem.InstallDate:
item['install_date'] = objItem.InstallDate
if objItem.InstallDate2:
item['install_date_2'] = objItem.InstallDate2
if objItem.InstallLocation:
item['install_location'] = objItem.InstallLocation
if objItem.Name:
item['name'] = objItem.Name
if objItem.SKUNumber:
item['sku_number'] = objItem.SKUNumber
if objItem.Vendor:
item['vendor'] = objItem.Vendor
if objItem.Version:
item['version'] = objItem.Version
items.append(item)
stdout, _ = proc.communicate(" ".join(powershell_command).encode("utf-8"))
if proc.returncode != 0:
raise RuntimeError("Failed to get list of installed software")
# On AppVeyor there's other output related to PSReadline,
# so grab only the JSON output and ignore everything else
json_match = re.match(
r".*(\[.*{.*}.*\]).*", stdout.decode("utf-8"), re.DOTALL
)
if not json_match:
raise RuntimeError(
"Couldn't find JSON output for list of installed software"
)
# Filter out missing keys
return list(
map(
lambda info: {k: info[k] for k in info if info[k]},
json.loads(json_match.group(1)),
)
)
return items
def windows_profile():
@@ -112,7 +89,7 @@ def windows_profile():
def main(options):
if sys.platform == 'win32':
with open(options.output_json, 'w') as f:
with open(options.output_json, 'wb') as f:
json.dump(windows_profile(), f)
else:
raise OSError("Unsupported OS")

View File

@@ -53,8 +53,8 @@ static_library("chrome") {
"//chrome/browser/predictors/resolve_host_client_impl.cc",
"//chrome/browser/predictors/resolve_host_client_impl.h",
"//chrome/browser/process_singleton.h",
"//chrome/browser/process_singleton_internal.cc",
"//chrome/browser/process_singleton_internal.h",
"//chrome/browser/ui/browser_dialogs.cc",
"//chrome/browser/ui/browser_dialogs.h",
"//chrome/browser/ui/exclusive_access/exclusive_access_bubble_type.cc",
"//chrome/browser/ui/exclusive_access/exclusive_access_bubble_type.h",
"//chrome/browser/ui/exclusive_access/exclusive_access_controller_base.cc",
@@ -69,6 +69,8 @@ static_library("chrome") {
"//chrome/browser/ui/exclusive_access/keyboard_lock_controller.h",
"//chrome/browser/ui/exclusive_access/mouse_lock_controller.cc",
"//chrome/browser/ui/exclusive_access/mouse_lock_controller.h",
"//chrome/browser/ui/views/autofill/autofill_popup_view_utils.cc",
"//chrome/browser/ui/views/autofill/autofill_popup_view_utils.h",
"//chrome/browser/ui/views/eye_dropper/eye_dropper.cc",
"//chrome/browser/ui/views/eye_dropper/eye_dropper.h",
"//chrome/browser/ui/views/eye_dropper/eye_dropper_view.cc",
@@ -140,6 +142,10 @@ static_library("chrome") {
"//components/optimization_guide/proto:optimization_guide_proto",
]
if (enable_basic_printing && is_win) {
deps += [ "//chrome/common:cloud_print_utility_mojom" ]
}
if (is_linux) {
sources += [ "//chrome/browser/icon_loader_auralinux.cc" ]
if (use_ozone) {
@@ -195,16 +201,12 @@ static_library("chrome") {
if (enable_basic_printing) {
sources += [
"//chrome/browser/bad_message.cc",
"//chrome/browser/bad_message.h",
"//chrome/browser/printing/print_job.cc",
"//chrome/browser/printing/print_job.h",
"//chrome/browser/printing/print_job_manager.cc",
"//chrome/browser/printing/print_job_manager.h",
"//chrome/browser/printing/print_job_worker.cc",
"//chrome/browser/printing/print_job_worker.h",
"//chrome/browser/printing/print_job_worker_oop.cc",
"//chrome/browser/printing/print_job_worker_oop.h",
"//chrome/browser/printing/print_view_manager_base.cc",
"//chrome/browser/printing/print_view_manager_base.h",
"//chrome/browser/printing/printer_query.cc",
@@ -239,6 +241,8 @@ static_library("chrome") {
sources += [
"//chrome/browser/printing/pdf_to_emf_converter.cc",
"//chrome/browser/printing/pdf_to_emf_converter.h",
"//chrome/utility/printing_handler.cc",
"//chrome/utility/printing_handler.h",
]
}
}
@@ -253,12 +257,8 @@ static_library("chrome") {
"//chrome/browser/ui/views/overlay/close_image_button.cc",
"//chrome/browser/ui/views/overlay/close_image_button.h",
"//chrome/browser/ui/views/overlay/constants.h",
"//chrome/browser/ui/views/overlay/document_overlay_window_views.cc",
"//chrome/browser/ui/views/overlay/document_overlay_window_views.h",
"//chrome/browser/ui/views/overlay/hang_up_button.cc",
"//chrome/browser/ui/views/overlay/hang_up_button.h",
"//chrome/browser/ui/views/overlay/overlay_window_image_button.cc",
"//chrome/browser/ui/views/overlay/overlay_window_image_button.h",
"//chrome/browser/ui/views/overlay/overlay_window_views.cc",
"//chrome/browser/ui/views/overlay/overlay_window_views.h",
"//chrome/browser/ui/views/overlay/playback_image_button.cc",
@@ -273,14 +273,11 @@ static_library("chrome") {
"//chrome/browser/ui/views/overlay/toggle_microphone_button.h",
"//chrome/browser/ui/views/overlay/track_image_button.cc",
"//chrome/browser/ui/views/overlay/track_image_button.h",
"//chrome/browser/ui/views/overlay/video_overlay_window_views.cc",
"//chrome/browser/ui/views/overlay/video_overlay_window_views.h",
]
deps += [
"//chrome/app/vector_icons",
"//components/vector_icons:vector_icons",
"//ui/views/controls/webview",
]
}
@@ -300,8 +297,6 @@ static_library("chrome") {
sources += [
"//chrome/browser/pdf/pdf_extension_util.cc",
"//chrome/browser/pdf/pdf_extension_util.h",
"//chrome/browser/pdf/pdf_frame_util.cc",
"//chrome/browser/pdf/pdf_frame_util.h",
"//chrome/renderer/pepper/chrome_pdf_print_client.cc",
"//chrome/renderer/pepper/chrome_pdf_print_client.h",
]

View File

@@ -1,5 +1,4 @@
import { shell } from 'electron/common';
import { app, dialog, BrowserWindow, ipcMain } from 'electron/main';
import { app, dialog, BrowserWindow, shell, ipcMain } from 'electron';
import * as path from 'path';
import * as url from 'url';

View File

@@ -1,4 +1,4 @@
import * as electron from 'electron/main';
import * as electron from 'electron';
import * as fs from 'fs';
import * as path from 'path';
@@ -92,7 +92,7 @@ function loadApplicationPackage (packagePath: string) {
try {
packageJson = require(packageJsonPath);
} catch (e) {
showErrorMessage(`Unable to parse ${packageJsonPath}\n\n${(e as Error).message}`);
showErrorMessage(`Unable to parse ${packageJsonPath}\n\n${e.message}`);
return;
}
@@ -111,7 +111,7 @@ function loadApplicationPackage (packagePath: string) {
const filePath = Module._resolveFilename(packagePath, module, true);
app.setAppPath(appPath || path.dirname(filePath));
} catch (e) {
showErrorMessage(`Unable to find Electron app at ${packagePath}\n\n${(e as Error).message}`);
showErrorMessage(`Unable to find Electron app at ${packagePath}\n\n${e.message}`);
return;
}
@@ -119,7 +119,7 @@ function loadApplicationPackage (packagePath: string) {
Module._load(packagePath, module, true);
} catch (e) {
console.error('App threw an error during load');
console.error((e as Error).stack || e);
console.error(e.stack || e);
throw e;
}
}

View File

@@ -1,4 +1,4 @@
import { ipcRenderer, contextBridge } from 'electron/renderer';
import { ipcRenderer, contextBridge } from 'electron';
const policy = window.trustedTypes.createPolicy('electron-default-app', {
// we trust the SVG contents

View File

@@ -106,6 +106,7 @@ These individual tutorials expand on topics discussed in the guide above.
* [`File` Object](api/file-object.md)
* [`<webview>` Tag](api/webview-tag.md)
* [`window.open` Function](api/window-open.md)
* [`BrowserWindowProxy` Object](api/browser-window-proxy.md)
### Modules for the Main Process:

View File

@@ -2,7 +2,7 @@
> Define keyboard shortcuts.
Accelerators are strings that can contain multiple modifiers and a single key code,
Accelerators are Strings that can contain multiple modifiers and a single key code,
combined by the `+` character, and are used to define keyboard shortcuts
throughout your application.

View File

@@ -103,7 +103,7 @@ to a shutdown/restart of the system or a user logout.
Returns:
* `event` Event
* `path` string
* `path` String
Emitted when the user wants to open a file with the application. The `open-file`
event is usually emitted when the application is already open and the OS wants
@@ -122,7 +122,7 @@ filepath.
Returns:
* `event` Event
* `url` string
* `url` String
Emitted when the user wants to open a URL with the application. Your application's
`Info.plist` file must define the URL scheme within the `CFBundleURLTypes` key, and
@@ -135,7 +135,7 @@ You should call `event.preventDefault()` if you want to handle this event.
Returns:
* `event` Event
* `hasVisibleWindows` boolean
* `hasVisibleWindows` Boolean
Emitted when the application is activated. Various actions can trigger
this event, such as launching the application for the first time, attempting
@@ -157,12 +157,12 @@ when Dock icon is clicked or application is re-launched.
Returns:
* `event` Event
* `type` string - A string identifying the activity. Maps to
* `type` String - A string identifying the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
* `userInfo` unknown - Contains app-specific state stored by the activity on
another device.
* `details` Object
* `webpageURL` string (optional) - A string identifying the URL of the webpage accessed by the activity on another device, if available.
* `webpageURL` String (optional) - A string identifying the URL of the webpage accessed by the activity on another device, if available.
Emitted during [Handoff][handoff] when an activity from a different device wants
to be resumed. You should call `event.preventDefault()` if you want to handle
@@ -178,7 +178,7 @@ Supported activity types are specified in the app's `Info.plist` under the
Returns:
* `event` Event
* `type` string - A string identifying the activity. Maps to
* `type` String - A string identifying the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
Emitted during [Handoff][handoff] before an activity from a different device wants
@@ -190,9 +190,9 @@ this event.
Returns:
* `event` Event
* `type` string - A string identifying the activity. Maps to
* `type` String - A string identifying the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
* `error` string - A string with the error's localized description.
* `error` String - A string with the error's localized description.
Emitted during [Handoff][handoff] when an activity from a different device
fails to be resumed.
@@ -202,7 +202,7 @@ fails to be resumed.
Returns:
* `event` Event
* `type` string - A string identifying the activity. Maps to
* `type` String - A string identifying the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
* `userInfo` unknown - Contains app-specific state stored by the activity.
@@ -214,7 +214,7 @@ resumed on another one.
Returns:
* `event` Event
* `type` string - A string identifying the activity. Maps to
* `type` String - A string identifying the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
* `userInfo` unknown - Contains app-specific state stored by the activity.
@@ -272,12 +272,12 @@ Returns:
* `event` Event
* `webContents` [WebContents](web-contents.md)
* `url` string
* `error` string - The error code
* `url` String
* `error` String - The error code
* `certificate` [Certificate](structures/certificate.md)
* `callback` Function
* `isTrusted` boolean - Whether to consider the certificate as trusted
* `isMainFrame` boolean
* `isTrusted` Boolean - Whether to consider the certificate as trusted
* `isMainFrame` Boolean
Emitted when failed to verify the `certificate` for `url`, to trust the
certificate you should prevent the default behavior with
@@ -333,14 +333,14 @@ Returns:
* `authenticationResponseDetails` Object
* `url` URL
* `authInfo` Object
* `isProxy` boolean
* `scheme` string
* `host` string
* `isProxy` Boolean
* `scheme` String
* `host` String
* `port` Integer
* `realm` string
* `realm` String
* `callback` Function
* `username` string (optional)
* `password` string (optional)
* `username` String (optional)
* `password` String (optional)
Emitted when `webContents` wants to do basic auth.
@@ -370,7 +370,7 @@ Emitted whenever there is a GPU info update.
Returns:
* `event` Event
* `killed` boolean
* `killed` Boolean
Emitted when the GPU process crashes or is killed.
@@ -385,7 +385,7 @@ Returns:
* `event` Event
* `webContents` [WebContents](web-contents.md)
* `killed` boolean
* `killed` Boolean
Emitted when the renderer process of `webContents` crashes or is killed.
@@ -401,7 +401,7 @@ Returns:
* `event` Event
* `webContents` [WebContents](web-contents.md)
* `details` Object
* `reason` string - The reason the render process is gone. Possible values:
* `reason` String - The reason the render process is gone. Possible values:
* `clean-exit` - Process exited with an exit code of zero
* `abnormal-exit` - Process exited with a non-zero exit code
* `killed` - Process was sent a SIGTERM or otherwise killed externally
@@ -422,7 +422,7 @@ Returns:
* `event` Event
* `details` Object
* `type` string - Process type. One of the following values:
* `type` String - Process type. One of the following values:
* `Utility`
* `Zygote`
* `Sandbox helper`
@@ -430,7 +430,7 @@ Returns:
* `Pepper Plugin`
* `Pepper Plugin Broker`
* `Unknown`
* `reason` string - The reason the child process is gone. Possible values:
* `reason` String - The reason the child process is gone. Possible values:
* `clean-exit` - Process exited with an exit code of zero
* `abnormal-exit` - Process exited with a non-zero exit code
* `killed` - Process was sent a SIGTERM or otherwise killed externally
@@ -438,10 +438,10 @@ Returns:
* `oom` - Process ran out of memory
* `launch-failed` - Process never successfully launched
* `integrity-failure` - Windows code integrity checks failed
* `exitCode` number - The exit code for the process
* `exitCode` Number - The exit code for the process
(e.g. status from waitpid if on posix, from GetExitCodeProcess on Windows).
* `serviceName` string (optional) - The non-localized name of the process.
* `name` string (optional) - The name of the process.
* `serviceName` String (optional) - The non-localized name of the process.
* `name` String (optional) - The name of the process.
Examples for utility: `Audio Service`, `Content Decryption Module Service`, `Network Service`, `Video Capture`, etc.
Emitted when the child process unexpectedly disappears. This is normally
@@ -452,7 +452,7 @@ because it was crashed or killed. It does not include renderer processes.
Returns:
* `event` Event
* `accessibilitySupportEnabled` boolean - `true` when Chrome's accessibility
* `accessibilitySupportEnabled` Boolean - `true` when Chrome's accessibility
support is enabled, `false` otherwise.
Emitted when Chrome's accessibility support changes. This event fires when
@@ -481,10 +481,9 @@ app.on('session-created', (session) => {
Returns:
* `event` Event
* `argv` string[] - An array of the second instance's command line arguments
* `workingDirectory` string - The second instance's working directory
* `argv` String[] - An array of the second instance's command line arguments
* `workingDirectory` String - The second instance's working directory
* `additionalData` unknown - A JSON object of additional data passed from the second instance
* `ackCallback` unknown - A function that can be used to send data back to the second instance
This event will be emitted inside the primary instance of your application
when a second instance has been executed and calls `app.requestSingleInstanceLock()`.
@@ -496,34 +495,21 @@ non-minimized.
**Note:** If the second instance is started by a different user than the first, the `argv` array will not include the arguments.
**Note:** `ackCallback` allows the user to send data back to the
second instance during the `app.requestSingleInstanceLock()` flow.
This callback can be used for cases where the second instance
needs to obtain additional information from the first instance
before quitting.
Currently, the limit on the message size is kMaxMessageLength,
or around 32kB. To be safe, keep the amount of data passed to 31kB at most.
In order to call the callback, `event.preventDefault()` must be called, first.
If the callback is not called in either case, `null` will be sent back.
If `event.preventDefault()` is not called, but `ackCallback` is called
by the user in the event, then the behaviour is undefined.
This event is guaranteed to be emitted after the `ready` event of `app`
gets emitted.
**Note:** Extra command line arguments might be added by Chromium,
such as `--original-process-start-time`.
### Event: 'first-instance-ack'
### Event: 'desktop-capturer-get-sources'
Returns:
* `event` Event
* `additionalData` unknown - A JSON object of additional data passed from the first instance, in response to the first instance's `second-instance` event.
* `webContents` [WebContents](web-contents.md)
This event will be emitted within the second instance during the call to `app.requestSingleInstanceLock()`, when the first instance calls the `ackCallback` provided by the `second-instance` event handler.
Emitted when `desktopCapturer.getSources()` is called in the renderer process of `webContents`.
Calling `event.preventDefault()` will make it return empty sources.
## Methods
@@ -554,8 +540,8 @@ and `will-quit` events will not be emitted.
### `app.relaunch([options])`
* `options` Object (optional)
* `args` string[] (optional)
* `execPath` string (optional)
* `args` String[] (optional)
* `execPath` String (optional)
Relaunches the app when current instance exits.
@@ -582,7 +568,7 @@ app.exit(0)
### `app.isReady()`
Returns `boolean` - `true` if Electron has finished initializing, `false` otherwise.
Returns `Boolean` - `true` if Electron has finished initializing, `false` otherwise.
See also `app.whenReady()`.
### `app.whenReady()`
@@ -594,7 +580,7 @@ and subscribing to the `ready` event if the app is not ready yet.
### `app.focus([options])`
* `options` Object (optional)
* `steal` boolean _macOS_ - Make the receiver the active app even if another app is
* `steal` Boolean _macOS_ - Make the receiver the active app even if another app is
currently active.
On Linux, focuses on the first visible window. On macOS, makes the application
@@ -613,7 +599,7 @@ them.
### `app.setAppLogsPath([path])`
* `path` string (optional) - A custom path for your logs. Must be absolute.
* `path` String (optional) - A custom path for your logs. Must be absolute.
Sets or creates a directory your app's logs which can then be manipulated with `app.getPath()` or `app.setPath(pathName, newPath)`.
@@ -621,11 +607,11 @@ Calling `app.setAppLogsPath()` without a `path` parameter will result in this di
### `app.getAppPath()`
Returns `string` - The current application directory.
Returns `String` - The current application directory.
### `app.getPath(name)`
* `name` string - You can request the following paths by the name:
* `name` String - You can request the following paths by the name:
* `home` User's home directory.
* `appData` Per-user application data directory, which by default points to:
* `%APPDATA%` on Windows
@@ -647,16 +633,16 @@ Returns `string` - The current application directory.
* `logs` Directory for your app's log folder.
* `crashDumps` Directory where crash dumps are stored.
Returns `string` - A path to a special directory or file associated with `name`. On
Returns `String` - A path to a special directory or file associated with `name`. On
failure, an `Error` is thrown.
If `app.getPath('logs')` is called without called `app.setAppLogsPath()` being called first, a default log directory will be created equivalent to calling `app.setAppLogsPath()` without a `path` parameter.
### `app.getFileIcon(path[, options])`
* `path` string
* `path` String
* `options` Object (optional)
* `size` string
* `size` String
* `small` - 16x16
* `normal` - 32x32
* `large` - 48x48 on _Linux_, 32x32 on _Windows_, unsupported on _macOS_.
@@ -674,8 +660,8 @@ On _Linux_ and _macOS_, icons depend on the application associated with file mim
### `app.setPath(name, path)`
* `name` string
* `path` string
* `name` String
* `path` String
Overrides the `path` to a special directory or file associated with `name`.
If the path specifies a directory that does not exist, an `Error` is thrown.
@@ -689,13 +675,13 @@ directory. If you want to change this location, you have to override the
### `app.getVersion()`
Returns `string` - The version of the loaded application. If no version is found in the
Returns `String` - The version of the loaded application. If no version is found in the
application's `package.json` file, the version of the current bundle or
executable is returned.
### `app.getName()`
Returns `string` - The current application's name, which is the name in the application's
Returns `String` - The current application's name, which is the name in the application's
`package.json` file.
Usually the `name` field of `package.json` is a short lowercase name, according
@@ -705,7 +691,7 @@ preferred over `name` by Electron.
### `app.setName(name)`
* `name` string
* `name` String
Overrides the current application's name.
@@ -713,7 +699,7 @@ Overrides the current application's name.
### `app.getLocale()`
Returns `string` - The current application locale, fetched using Chromium's `l10n_util` library.
Returns `String` - The current application locale, fetched using Chromium's `l10n_util` library.
Possible return values are documented [here](https://source.chromium.org/chromium/chromium/src/+/master:ui/base/l10n/l10n_util.cc).
To set the locale, you'll want to use a command line switch at app startup, which may be found [here](command-line-switches.md).
@@ -725,13 +711,13 @@ To set the locale, you'll want to use a command line switch at app startup, whic
### `app.getLocaleCountryCode()`
Returns `string` - User operating system's locale two-letter [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) country code. The value is taken from native OS APIs.
Returns `String` - User operating system's locale two-letter [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) country code. The value is taken from native OS APIs.
**Note:** When unable to detect locale country code, it returns empty string.
### `app.addRecentDocument(path)` _macOS_ _Windows_
* `path` string
* `path` String
Adds `path` to the recent documents list.
@@ -744,15 +730,15 @@ Clears the recent documents list.
### `app.setAsDefaultProtocolClient(protocol[, path, args])`
* `protocol` string - The name of your protocol, without `://`. For example,
* `protocol` String - The name of your protocol, without `://`. For example,
if you want your app to handle `electron://` links, call this method with
`electron` as the parameter.
* `path` string (optional) _Windows_ - The path to the Electron executable.
* `path` String (optional) _Windows_ - The path to the Electron executable.
Defaults to `process.execPath`
* `args` string[] (optional) _Windows_ - Arguments passed to the executable.
* `args` String[] (optional) _Windows_ - Arguments passed to the executable.
Defaults to an empty array
Returns `boolean` - Whether the call succeeded.
Returns `Boolean` - Whether the call succeeded.
Sets the current executable as the default handler for a protocol (aka URI
scheme). It allows you to integrate your app deeper into the operating system.
@@ -775,22 +761,22 @@ The API uses the Windows Registry and `LSSetDefaultHandlerForURLScheme` internal
### `app.removeAsDefaultProtocolClient(protocol[, path, args])` _macOS_ _Windows_
* `protocol` string - The name of your protocol, without `://`.
* `path` string (optional) _Windows_ - Defaults to `process.execPath`
* `args` string[] (optional) _Windows_ - Defaults to an empty array
* `protocol` String - The name of your protocol, without `://`.
* `path` String (optional) _Windows_ - Defaults to `process.execPath`
* `args` String[] (optional) _Windows_ - Defaults to an empty array
Returns `boolean` - Whether the call succeeded.
Returns `Boolean` - Whether the call succeeded.
This method checks if the current executable as the default handler for a
protocol (aka URI scheme). If so, it will remove the app as the default handler.
### `app.isDefaultProtocolClient(protocol[, path, args])`
* `protocol` string - The name of your protocol, without `://`.
* `path` string (optional) _Windows_ - Defaults to `process.execPath`
* `args` string[] (optional) _Windows_ - Defaults to an empty array
* `protocol` String - The name of your protocol, without `://`.
* `path` String (optional) _Windows_ - Defaults to `process.execPath`
* `args` String[] (optional) _Windows_ - Defaults to an empty array
Returns `boolean` - Whether the current executable is the default handler for a
Returns `Boolean` - Whether the current executable is the default handler for a
protocol (aka URI scheme).
**Note:** On macOS, you can use this method to check if the app has been
@@ -803,11 +789,11 @@ The API uses the Windows Registry and `LSCopyDefaultHandlerForURLScheme` interna
### `app.getApplicationNameForProtocol(url)`
* `url` string - a URL with the protocol name to check. Unlike the other
* `url` String - a URL with the protocol name to check. Unlike the other
methods in this family, this accepts an entire URL, including `://` at a
minimum (e.g. `https://`).
Returns `string` - Name of the application handling the protocol, or an empty
Returns `String` - Name of the application handling the protocol, or an empty
string if there is no handler. For instance, if Electron is the default
handler of the URL, this could be `Electron` on Windows and Mac. However,
don't rely on the precise format which is not guaranteed to remain unchanged.
@@ -818,15 +804,15 @@ This method returns the application name of the default handler for the protocol
### `app.getApplicationInfoForProtocol(url)` _macOS_ _Windows_
* `url` string - a URL with the protocol name to check. Unlike the other
* `url` String - a URL with the protocol name to check. Unlike the other
methods in this family, this accepts an entire URL, including `://` at a
minimum (e.g. `https://`).
Returns `Promise<Object>` - Resolve with an object containing the following:
* `icon` NativeImage - the display icon of the app handling the protocol.
* `path` string - installation path of the app handling the protocol.
* `name` string - display name of the app handling the protocol.
* `path` String - installation path of the app handling the protocol.
* `name` String - display name of the app handling the protocol.
This method returns a promise that contains the application name, icon and path of the default handler for the protocol
(aka URI scheme) of a URL.
@@ -839,7 +825,7 @@ Adds `tasks` to the [Tasks][tasks] category of the Jump List on Windows.
`tasks` is an array of [`Task`](structures/task.md) objects.
Returns `boolean` - Whether the call succeeded.
Returns `Boolean` - Whether the call succeeded.
**Note:** If you'd like to customize the Jump List even more use
`app.setJumpList(categories)` instead.
@@ -958,7 +944,7 @@ app.setJumpList([
* `additionalData` Record<any, any> (optional) - A JSON object containing additional data to send to the first instance.
Returns `boolean`
Returns `Boolean`
The return value of this method indicates whether or not this instance of your
application successfully obtained the lock. If it failed to obtain the lock,
@@ -983,13 +969,6 @@ starts:
const { app } = require('electron')
let myWindow = null
app.on('first-instance-ack', (event, additionalData) => {
// Print out the ack received from the first instance.
// Note this event handler must come before the requestSingleInstanceLock call.
// Expected output: '{"myAckKey":"myAckValue"}'
console.log(JSON.stringify(additionalData))
})
const additionalData = { myKey: 'myValue' }
const gotTheLock = app.requestSingleInstanceLock(additionalData)
@@ -997,19 +976,14 @@ if (!gotTheLock) {
app.quit()
} else {
app.on('second-instance', (event, commandLine, workingDirectory, additionalData) => {
// We must call preventDefault if we're sending back data.
event.preventDefault()
// Print out data received from the second instance.
// Expected output: '{"myKey":"myValue"}'
console.log(JSON.stringify(additionalData))
console.log(additionalData)
// Someone tried to run a second instance, we should focus our window.
if (myWindow) {
if (myWindow.isMinimized()) myWindow.restore()
myWindow.focus()
}
const ackData = { myAckKey: 'myAckValue' }
ackCallback(ackData)
})
// Create myWindow, load the rest of the app, etc...
@@ -1021,7 +995,7 @@ if (!gotTheLock) {
### `app.hasSingleInstanceLock()`
Returns `boolean`
Returns `Boolean`
This method returns whether or not this instance of your app is currently
holding the single instance lock. You can request the lock with
@@ -1035,10 +1009,10 @@ allow multiple instances of the application to once again run side by side.
### `app.setUserActivity(type, userInfo[, webpageURL])` _macOS_
* `type` string - Uniquely identifies the activity. Maps to
* `type` String - Uniquely identifies the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
* `userInfo` any - App-specific state to store for use by another device.
* `webpageURL` string (optional) - The webpage to load in a browser if no suitable app is
* `webpageURL` String (optional) - The webpage to load in a browser if no suitable app is
installed on the resuming device. The scheme must be `http` or `https`.
Creates an `NSUserActivity` and sets it as the current activity. The activity
@@ -1046,7 +1020,7 @@ is eligible for [Handoff][handoff] to another device afterward.
### `app.getCurrentActivityType()` _macOS_
Returns `string` - The type of the currently running activity.
Returns `String` - The type of the currently running activity.
### `app.invalidateCurrentActivity()` _macOS_
@@ -1058,7 +1032,7 @@ Marks the current [Handoff][handoff] user activity as inactive without invalidat
### `app.updateCurrentActivity(type, userInfo)` _macOS_
* `type` string - Uniquely identifies the activity. Maps to
* `type` String - Uniquely identifies the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
* `userInfo` any - App-specific state to store for use by another device.
@@ -1067,13 +1041,13 @@ Updates the current activity if its type matches `type`, merging the entries fro
### `app.setAppUserModelId(id)` _Windows_
* `id` string
* `id` String
Changes the [Application User Model ID][app-user-model-id] to `id`.
### `app.setActivationPolicy(policy)` _macOS_
* `policy` string - Can be 'regular', 'accessory', or 'prohibited'.
* `policy` String - Can be 'regular', 'accessory', or 'prohibited'.
Sets the activation policy for a given app.
@@ -1086,8 +1060,8 @@ Activation policy types:
### `app.importCertificate(options, callback)` _Linux_
* `options` Object
* `certificate` string - Path for the pkcs12 file.
* `password` string - Passphrase for the certificate.
* `certificate` String - Path for the pkcs12 file.
* `password` String - Passphrase for the certificate.
* `callback` Function
* `result` Integer - Result of import.
@@ -1098,23 +1072,23 @@ indicates success while any other value indicates failure according to Chromium
### `app.configureHostResolver(options)`
* `options` Object
* `enableBuiltInResolver` boolean (optional) - Whether the built-in host
* `enableBuiltInResolver` Boolean (optional) - Whether the built-in host
resolver is used in preference to getaddrinfo. When enabled, the built-in
resolver will attempt to use the system's DNS settings to do DNS lookups
itself. Enabled by default on macOS, disabled by default on Windows and
Linux.
* `secureDnsMode` string (optional) - Can be "off", "automatic" or "secure".
* `secureDnsMode` String (optional) - Can be "off", "automatic" or "secure".
Configures the DNS-over-HTTP mode. When "off", no DoH lookups will be
performed. When "automatic", DoH lookups will be performed first if DoH is
available, and insecure DNS lookups will be performed as a fallback. When
"secure", only DoH lookups will be performed. Defaults to "automatic".
* `secureDnsServers` string[]&#32;(optional) - A list of DNS-over-HTTP
* `secureDnsServers` String[]&#32;(optional) - A list of DNS-over-HTTP
server templates. See [RFC8484 § 3][] for details on the template format.
Most servers support the POST method; the template for such servers is
simply a URI. Note that for [some DNS providers][doh-providers], the
resolver will automatically upgrade to DoH unless DoH is explicitly
disabled, even if there are no DoH servers provided in this list.
* `enableAdditionalDnsQueryTypes` boolean (optional) - Controls whether additional DNS
* `enableAdditionalDnsQueryTypes` Boolean (optional) - Controls whether additional DNS
query types, e.g. HTTPS (DNS type 65) will be allowed besides the
traditional A and AAAA queries when a request is being made via insecure
DNS. Has no effect on Secure DNS which always allows additional types.
@@ -1176,7 +1150,7 @@ Returns [`GPUFeatureStatus`](structures/gpu-feature-status.md) - The Graphics Fe
### `app.getGPUInfo(infoType)`
* `infoType` string - Can be `basic` or `complete`.
* `infoType` String - Can be `basic` or `complete`.
Returns `Promise<unknown>`
@@ -1219,7 +1193,7 @@ Using `basic` should be preferred if only basic information like `vendorId` or `
* `count` Integer (optional) - If a value is provided, set the badge to the provided value otherwise, on macOS, display a plain white dot (e.g. unknown number of notifications). On Linux, if a value is not provided the badge will not display.
Returns `boolean` - Whether the call succeeded.
Returns `Boolean` - Whether the call succeeded.
Sets the counter badge for current app. Setting the count to `0` will hide the
badge.
@@ -1235,14 +1209,14 @@ Returns `Integer` - The current value displayed in the counter badge.
### `app.isUnityRunning()` _Linux_
Returns `boolean` - Whether the current desktop environment is Unity launcher.
Returns `Boolean` - Whether the current desktop environment is Unity launcher.
### `app.getLoginItemSettings([options])` _macOS_ _Windows_
* `options` Object (optional)
* `path` string (optional) _Windows_ - The executable path to compare against.
* `path` String (optional) _Windows_ - The executable path to compare against.
Defaults to `process.execPath`.
* `args` string[] (optional) _Windows_ - The command-line arguments to compare
* `args` String[] (optional) _Windows_ - The command-line arguments to compare
against. Defaults to an empty array.
If you provided `path` and `args` options to `app.setLoginItemSettings`, then you
@@ -1250,43 +1224,43 @@ need to pass the same arguments here for `openAtLogin` to be set correctly.
Returns `Object`:
* `openAtLogin` boolean - `true` if the app is set to open at login.
* `openAsHidden` boolean _macOS_ - `true` if the app is set to open as hidden at login.
* `openAtLogin` Boolean - `true` if the app is set to open at login.
* `openAsHidden` Boolean _macOS_ - `true` if the app is set to open as hidden at login.
This setting is not available on [MAS builds][mas-builds].
* `wasOpenedAtLogin` boolean _macOS_ - `true` if the app was opened at login
* `wasOpenedAtLogin` Boolean _macOS_ - `true` if the app was opened at login
automatically. This setting is not available on [MAS builds][mas-builds].
* `wasOpenedAsHidden` boolean _macOS_ - `true` if the app was opened as a hidden login
* `wasOpenedAsHidden` Boolean _macOS_ - `true` if the app was opened as a hidden login
item. This indicates that the app should not open any windows at startup.
This setting is not available on [MAS builds][mas-builds].
* `restoreState` boolean _macOS_ - `true` if the app was opened as a login item that
* `restoreState` Boolean _macOS_ - `true` if the app was opened as a login item that
should restore the state from the previous session. This indicates that the
app should restore the windows that were open the last time the app was
closed. This setting is not available on [MAS builds][mas-builds].
* `executableWillLaunchAtLogin` boolean _Windows_ - `true` if app is set to open at login and its run key is not deactivated. This differs from `openAtLogin` as it ignores the `args` option, this property will be true if the given executable would be launched at login with **any** arguments.
* `executableWillLaunchAtLogin` Boolean _Windows_ - `true` if app is set to open at login and its run key is not deactivated. This differs from `openAtLogin` as it ignores the `args` option, this property will be true if the given executable would be launched at login with **any** arguments.
* `launchItems` Object[] _Windows_
* `name` string _Windows_ - name value of a registry entry.
* `path` string _Windows_ - The executable to an app that corresponds to a registry entry.
* `args` string[] _Windows_ - the command-line arguments to pass to the executable.
* `scope` string _Windows_ - one of `user` or `machine`. Indicates whether the registry entry is under `HKEY_CURRENT USER` or `HKEY_LOCAL_MACHINE`.
* `enabled` boolean _Windows_ - `true` if the app registry key is startup approved and therefore shows as `enabled` in Task Manager and Windows settings.
* `name` String _Windows_ - name value of a registry entry.
* `path` String _Windows_ - The executable to an app that corresponds to a registry entry.
* `args` String[] _Windows_ - the command-line arguments to pass to the executable.
* `scope` String _Windows_ - one of `user` or `machine`. Indicates whether the registry entry is under `HKEY_CURRENT USER` or `HKEY_LOCAL_MACHINE`.
* `enabled` Boolean _Windows_ - `true` if the app registry key is startup approved and therefore shows as `enabled` in Task Manager and Windows settings.
### `app.setLoginItemSettings(settings)` _macOS_ _Windows_
* `settings` Object
* `openAtLogin` boolean (optional) - `true` to open the app at login, `false` to remove
* `openAtLogin` Boolean (optional) - `true` to open the app at login, `false` to remove
the app as a login item. Defaults to `false`.
* `openAsHidden` boolean (optional) _macOS_ - `true` to open the app as hidden. Defaults to
* `openAsHidden` Boolean (optional) _macOS_ - `true` to open the app as hidden. Defaults to
`false`. The user can edit this setting from the System Preferences so
`app.getLoginItemSettings().wasOpenedAsHidden` should be checked when the app
is opened to know the current value. This setting is not available on [MAS builds][mas-builds].
* `path` string (optional) _Windows_ - The executable to launch at login.
* `path` String (optional) _Windows_ - The executable to launch at login.
Defaults to `process.execPath`.
* `args` string[] (optional) _Windows_ - The command-line arguments to pass to
* `args` String[] (optional) _Windows_ - The command-line arguments to pass to
the executable. Defaults to an empty array. Take care to wrap paths in
quotes.
* `enabled` boolean (optional) _Windows_ - `true` will change the startup approved registry key and `enable / disable` the App in Task Manager and Windows Settings.
* `enabled` Boolean (optional) _Windows_ - `true` will change the startup approved registry key and `enable / disable` the App in Task Manager and Windows Settings.
Defaults to `true`.
* `name` string (optional) _Windows_ - value name to write into registry. Defaults to the app's AppUserModelId().
* `name` String (optional) _Windows_ - value name to write into registry. Defaults to the app's AppUserModelId().
Set the app's login item settings.
To work with Electron's `autoUpdater` on Windows, which uses [Squirrel][Squirrel-Windows],
@@ -1310,7 +1284,7 @@ app.setLoginItemSettings({
### `app.isAccessibilitySupportEnabled()` _macOS_ _Windows_
Returns `boolean` - `true` if Chrome's accessibility support is enabled,
Returns `Boolean` - `true` if Chrome's accessibility support is enabled,
`false` otherwise. This API will return `true` if the use of assistive
technologies, such as screen readers, has been detected. See
https://www.chromium.org/developers/design-documents/accessibility for more
@@ -1318,7 +1292,7 @@ details.
### `app.setAccessibilitySupportEnabled(enabled)` _macOS_ _Windows_
* `enabled` boolean - Enable or disable [accessibility tree](https://developers.google.com/web/fundamentals/accessibility/semantics-builtin/the-accessibility-tree) rendering
* `enabled` Boolean - Enable or disable [accessibility tree](https://developers.google.com/web/fundamentals/accessibility/semantics-builtin/the-accessibility-tree) rendering
Manually enables Chrome's accessibility support, allowing to expose accessibility switch to users in application settings. See [Chromium's accessibility docs](https://www.chromium.org/developers/design-documents/accessibility) for more
details. Disabled by default.
@@ -1334,14 +1308,14 @@ Show the app's about panel options. These options can be overridden with `app.se
### `app.setAboutPanelOptions(options)`
* `options` Object
* `applicationName` string (optional) - The app's name.
* `applicationVersion` string (optional) - The app's version.
* `copyright` string (optional) - Copyright information.
* `version` string (optional) _macOS_ - The app's build version number.
* `credits` string (optional) _macOS_ _Windows_ - Credit information.
* `authors` string[] (optional) _Linux_ - List of app authors.
* `website` string (optional) _Linux_ - The app's website.
* `iconPath` string (optional) _Linux_ _Windows_ - Path to the app's icon in a JPEG or PNG file format. On Linux, will be shown as 64x64 pixels while retaining aspect ratio.
* `applicationName` String (optional) - The app's name.
* `applicationVersion` String (optional) - The app's version.
* `copyright` String (optional) - Copyright information.
* `version` String (optional) _macOS_ - The app's build version number.
* `credits` String (optional) _macOS_ _Windows_ - Credit information.
* `authors` String[] (optional) _Linux_ - List of app authors.
* `website` String (optional) _Linux_ - The app's website.
* `iconPath` String (optional) _Linux_ _Windows_ - Path to the app's icon in a JPEG or PNG file format. On Linux, will be shown as 64x64 pixels while retaining aspect ratio.
Set the about panel options. This will override the values defined in the app's `.plist` file on macOS. See the [Apple docs][about-panel-options] for more details. On Linux, values must be set in order to be shown; there are no defaults.
@@ -1349,7 +1323,7 @@ If you do not set `credits` but still wish to surface them in your app, AppKit w
### `app.isEmojiPanelSupported()`
Returns `boolean` - whether or not the current OS version allows for native emoji pickers.
Returns `Boolean` - whether or not the current OS version allows for native emoji pickers.
### `app.showEmojiPanel()` _macOS_ _Windows_
@@ -1357,7 +1331,7 @@ Show the platform's native emoji picker.
### `app.startAccessingSecurityScopedResource(bookmarkData)` _mas_
* `bookmarkData` string - The base64 encoded security scoped bookmark data returned by the `dialog.showOpenDialog` or `dialog.showSaveDialog` methods.
* `bookmarkData` String - The base64 encoded security scoped bookmark data returned by the `dialog.showOpenDialog` or `dialog.showSaveDialog` methods.
Returns `Function` - This function **must** be called once you have finished accessing the security scoped file. If you do not remember to stop accessing the bookmark, [kernel resources will be leaked](https://developer.apple.com/reference/foundation/nsurl/1417051-startaccessingsecurityscopedreso?language=objc) and your app will lose its ability to reach outside the sandbox completely, until your app is restarted.
@@ -1380,16 +1354,16 @@ This method can only be called before app is ready.
### `app.isInApplicationsFolder()` _macOS_
Returns `boolean` - Whether the application is currently running from the
Returns `Boolean` - Whether the application is currently running from the
systems Application folder. Use in combination with `app.moveToApplicationsFolder()`
### `app.moveToApplicationsFolder([options])` _macOS_
* `options` Object (optional)
* `conflictHandler` Function\<boolean> (optional) - A handler for potential conflict in move failure.
* `conflictType` string - The type of move conflict encountered by the handler; can be `exists` or `existsAndRunning`, where `exists` means that an app of the same name is present in the Applications directory and `existsAndRunning` means both that it exists and that it's presently running.
* `conflictHandler` Function\<Boolean> (optional) - A handler for potential conflict in move failure.
* `conflictType` String - The type of move conflict encountered by the handler; can be `exists` or `existsAndRunning`, where `exists` means that an app of the same name is present in the Applications directory and `existsAndRunning` means both that it exists and that it's presently running.
Returns `boolean` - Whether the move was successful. Please note that if
Returns `Boolean` - Whether the move was successful. Please note that if
the move is successful, your application will quit and relaunch.
No confirmation dialog will be presented by default. If you wish to allow
@@ -1425,13 +1399,13 @@ Would mean that if an app already exists in the user directory, if the user choo
### `app.isSecureKeyboardEntryEnabled()` _macOS_
Returns `boolean` - whether `Secure Keyboard Entry` is enabled.
Returns `Boolean` - whether `Secure Keyboard Entry` is enabled.
By default this API will return `false`.
### `app.setSecureKeyboardEntryEnabled(enabled)` _macOS_
* `enabled` boolean - Enable or disable `Secure Keyboard Entry`
* `enabled` Boolean - Enable or disable `Secure Keyboard Entry`
Set the `Secure Keyboard Entry` is enabled in your application.
@@ -1446,7 +1420,7 @@ details.
### `app.accessibilitySupportEnabled` _macOS_ _Windows_
A `boolean` property that's `true` if Chrome's accessibility support is enabled, `false` otherwise. This property will be `true` if the use of assistive technologies, such as screen readers, has been detected. Setting this property to `true` manually enables Chrome's accessibility support, allowing developers to expose accessibility switch to users in application settings.
A `Boolean` property that's `true` if Chrome's accessibility support is enabled, `false` otherwise. This property will be `true` if the use of assistive technologies, such as screen readers, has been detected. Setting this property to `true` manually enables Chrome's accessibility support, allowing developers to expose accessibility switch to users in application settings.
See [Chromium's accessibility docs](https://www.chromium.org/developers/design-documents/accessibility) for more details. Disabled by default.
@@ -1483,7 +1457,7 @@ dock on macOS.
### `app.isPackaged` _Readonly_
A `boolean` property that returns `true` if the app is packaged, `false` otherwise. For many apps, this property can be used to distinguish development and production environments.
A `Boolean` property that returns `true` if the app is packaged, `false` otherwise. For many apps, this property can be used to distinguish development and production environments.
[dock-menu]:https://developer.apple.com/macos/human-interface-guidelines/menus/dock-menus/
[tasks]:https://msdn.microsoft.com/en-us/library/windows/desktop/dd378460(v=vs.85).aspx#tasks
@@ -1502,7 +1476,7 @@ A `boolean` property that returns `true` if the app is packaged, `false` otherw
### `app.name`
A `string` property that indicates the current application's name, which is the name in the application's `package.json` file.
A `String` property that indicates the current application's name, which is the name in the application's `package.json` file.
Usually the `name` field of `package.json` is a short lowercase name, according
to the npm modules spec. You should usually also specify a `productName`
@@ -1511,7 +1485,7 @@ preferred over `name` by Electron.
### `app.userAgentFallback`
A `string` which is the user agent string Electron will use as a global fallback.
A `String` which is the user agent string Electron will use as a global fallback.
This is the user agent that will be used when no user agent is set at the
`webContents` or `session` level. It is useful for ensuring that your entire
@@ -1520,7 +1494,7 @@ in your app's initialization to ensure that your overridden value is used.
### `app.runningUnderRosettaTranslation` _macOS_ _Readonly_ _Deprecated_
A `boolean` which when `true` indicates that the app is currently running
A `Boolean` which when `true` indicates that the app is currently running
under the [Rosetta Translator Environment](https://en.wikipedia.org/wiki/Rosetta_(software)).
You can use this property to prompt users to download the arm64 version of
@@ -1533,7 +1507,7 @@ and Windows.
### `app.runningUnderARM64Translation` _Readonly_ _macOS_ _Windows_
A `boolean` which when `true` indicates that the app is currently running under
A `Boolean` which when `true` indicates that the app is currently running under
an ARM64 translator (like the macOS
[Rosetta Translator Environment](https://en.wikipedia.org/wiki/Rosetta_(software))
or Windows [WOW](https://en.wikipedia.org/wiki/Windows_on_Windows)).

View File

@@ -77,10 +77,10 @@ Emitted when there is no available update.
Returns:
* `event` Event
* `releaseNotes` string
* `releaseName` string
* `releaseNotes` String
* `releaseName` String
* `releaseDate` Date
* `updateURL` string
* `updateURL` String
Emitted when an update has been downloaded.
@@ -102,16 +102,16 @@ The `autoUpdater` object has the following methods:
### `autoUpdater.setFeedURL(options)`
* `options` Object
* `url` string
* `headers` Record<string, string> (optional) _macOS_ - HTTP request headers.
* `serverType` string (optional) _macOS_ - Can be `json` or `default`, see the [Squirrel.Mac][squirrel-mac]
* `url` String
* `headers` Record<String, String> (optional) _macOS_ - HTTP request headers.
* `serverType` String (optional) _macOS_ - Can be `json` or `default`, see the [Squirrel.Mac][squirrel-mac]
README for more information.
Sets the `url` and initialize the auto updater.
### `autoUpdater.getFeedURL()`
Returns `string` - The current update feed URL.
Returns `String` - The current update feed URL.
### `autoUpdater.checkForUpdates()`

View File

@@ -47,13 +47,13 @@ Objects created with `new BrowserView` have the following instance methods:
#### `view.setAutoResize(options)` _Experimental_
* `options` Object
* `width` boolean (optional) - If `true`, the view's width will grow and shrink together
* `width` Boolean (optional) - If `true`, the view's width will grow and shrink together
with the window. `false` by default.
* `height` boolean (optional) - If `true`, the view's height will grow and shrink
* `height` Boolean (optional) - If `true`, the view's height will grow and shrink
together with the window. `false` by default.
* `horizontal` boolean (optional) - If `true`, the view's x position and width will grow
* `horizontal` Boolean (optional) - If `true`, the view's x position and width will grow
and shrink proportionally with the window. `false` by default.
* `vertical` boolean (optional) - If `true`, the view's y position and height will grow
* `vertical` Boolean (optional) - If `true`, the view's y position and height will grow
and shrink proportionally with the window. `false` by default.
#### `view.setBounds(bounds)` _Experimental_
@@ -70,31 +70,5 @@ The `bounds` of this BrowserView instance as `Object`.
#### `view.setBackgroundColor(color)` _Experimental_
* `color` string - Color in Hex, RGB, ARGB, HSL, HSLA or named CSS color format. The alpha channel is
optional for the hex type.
Examples of valid `color` values:
* Hex
* #fff (RGB)
* #ffff (ARGB)
* #ffffff (RRGGBB)
* #ffffffff (AARRGGBB)
* RGB
* rgb\(([\d]+),\s*([\d]+),\s*([\d]+)\)
* e.g. rgb(255, 255, 255)
* RGBA
* rgba\(([\d]+),\s*([\d]+),\s*([\d]+),\s*([\d.]+)\)
* e.g. rgba(255, 255, 255, 1.0)
* HSL
* hsl\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%\)
* e.g. hsl(200, 20%, 50%)
* HSLA
* hsla\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)
* e.g. hsla(200, 20%, 50%, 0.5)
* Color name
* Options are listed in [SkParseColor.cpp](https://source.chromium.org/chromium/chromium/src/+/main:third_party/skia/src/utils/SkParseColor.cpp;l=11-152;drc=eea4bf52cb0d55e2a39c828b017c80a5ee054148)
* Similar to CSS Color Module Level 3 keywords, but case-sensitive.
* e.g. `blueviolet` or `red`
**Note:** Hex format with alpha takes `AARRGGBB` or `ARGB`, _not_ `RRGGBBA` or `RGA`.
* `color` String - Color in `#aarrggbb` or `#argb` form. The alpha channel is
optional.

View File

@@ -0,0 +1,54 @@
## Class: BrowserWindowProxy
> Manipulate the child browser window
Process: [Renderer](../glossary.md#renderer-process)<br />
_This class is not exported from the `'electron'` module. It is only available as a return value of other methods in the Electron API._
The `BrowserWindowProxy` object is returned from `window.open` and provides
limited functionality with the child window.
### Instance Methods
The `BrowserWindowProxy` object has the following instance methods:
#### `win.blur()`
Removes focus from the child window.
#### `win.close()`
Forcefully closes the child window without calling its unload event.
#### `win.eval(code)`
* `code` String
Evaluates the code in the child window.
#### `win.focus()`
Focuses the child window (brings the window to front).
#### `win.print()`
Invokes the print dialog on the child window.
#### `win.postMessage(message, targetOrigin)`
* `message` any
* `targetOrigin` String
Sends a message to the child window with the specified origin or `*` for no
origin preference.
In addition to these methods, the child window implements `window.opener` object
with no properties and a single method.
### Instance Properties
The `BrowserWindowProxy` object has the following instance properties:
#### `win.closed`
A `Boolean` that is set to true after the child window gets closed.

File diff suppressed because it is too large Load Diff

View File

@@ -10,20 +10,20 @@ interface and is therefore an [EventEmitter][event-emitter].
### `new ClientRequest(options)`
* `options` (Object | string) - If `options` is a string, it is interpreted as
* `options` (Object | String) - If `options` is a String, it is interpreted as
the request URL. If it is an object, it is expected to fully specify an HTTP request via the
following properties:
* `method` string (optional) - The HTTP request method. Defaults to the GET
* `method` String (optional) - The HTTP request method. Defaults to the GET
method.
* `url` string (optional) - The request URL. Must be provided in the absolute
* `url` String (optional) - The request URL. Must be provided in the absolute
form with the protocol scheme specified as http or https.
* `session` Session (optional) - The [`Session`](session.md) instance with
which the request is associated.
* `partition` string (optional) - The name of the [`partition`](session.md)
* `partition` String (optional) - The name of the [`partition`](session.md)
with which the request is associated. Defaults to the empty string. The
`session` option supersedes `partition`. Thus if a `session` is explicitly
specified, `partition` is ignored.
* `credentials` string (optional) - Can be `include` or `omit`. Whether to
* `credentials` String (optional) - Can be `include` or `omit`. Whether to
send [credentials](https://fetch.spec.whatwg.org/#credentials) with this
request. If set to `include`, credentials from the session associated with
the request will be used. If set to `omit`, credentials will not be sent
@@ -33,22 +33,22 @@ following properties:
option of the same name. If this option is not specified, authentication
data from the session will be sent, and cookies will not be sent (unless
`useSessionCookies` is set).
* `useSessionCookies` boolean (optional) - Whether to send cookies with this
* `useSessionCookies` Boolean (optional) - Whether to send cookies with this
request from the provided session. If `credentials` is specified, this
option has no effect. Default is `false`.
* `protocol` string (optional) - Can be `http:` or `https:`. The protocol
* `protocol` String (optional) - Can be `http:` or `https:`. The protocol
scheme in the form 'scheme:'. Defaults to 'http:'.
* `host` string (optional) - The server host provided as a concatenation of
* `host` String (optional) - The server host provided as a concatenation of
the hostname and the port number 'hostname:port'.
* `hostname` string (optional) - The server host name.
* `hostname` String (optional) - The server host name.
* `port` Integer (optional) - The server's listening port number.
* `path` string (optional) - The path part of the request URL.
* `redirect` string (optional) - Can be `follow`, `error` or `manual`. The
* `path` String (optional) - The path part of the request URL.
* `redirect` String (optional) - Can be `follow`, `error` or `manual`. The
redirect mode for this request. When mode is `error`, any redirection will
be aborted. When mode is `manual` the redirection will be cancelled unless
[`request.followRedirect`](#requestfollowredirect) is invoked synchronously
during the [`redirect`](#event-redirect) event. Defaults to `follow`.
* `origin` string (optional) - The origin URL of the request.
* `origin` String (optional) - The origin URL of the request.
`options` properties such as `protocol`, `host`, `hostname`, `port` and `path`
strictly follow the Node.js model as described in the
@@ -79,21 +79,21 @@ Returns:
Returns:
* `authInfo` Object
* `isProxy` boolean
* `scheme` string
* `host` string
* `isProxy` Boolean
* `scheme` String
* `host` String
* `port` Integer
* `realm` string
* `realm` String
* `callback` Function
* `username` string (optional)
* `password` string (optional)
* `username` String (optional)
* `password` String (optional)
Emitted when an authenticating proxy is asking for user credentials.
The `callback` function is expected to be called back with user credentials:
* `username` string
* `password` string
* `username` String
* `password` String
```JavaScript
request.on('login', (authInfo, callback) => {
@@ -147,9 +147,9 @@ event indicates that no more events will be emitted on either the `request` or
Returns:
* `statusCode` Integer
* `method` string
* `redirectUrl` string
* `responseHeaders` Record<string, string[]>
* `method` String
* `redirectUrl` String
* `responseHeaders` Record<String, String[]>
Emitted when the server returns a redirect response (e.g. 301 Moved
Permanently). Calling [`request.followRedirect`](#requestfollowredirect) will
@@ -161,7 +161,7 @@ continue with the redirection. If this event is handled,
#### `request.chunkedEncoding`
A `boolean` specifying whether the request will use HTTP chunked transfer encoding
A `Boolean` specifying whether the request will use HTTP chunked transfer encoding
or not. Defaults to false. The property is readable and writable, however it can
be set only before the first write operation as the HTTP headers are not yet put
on the wire. Trying to set the `chunkedEncoding` property after the first write
@@ -175,12 +175,12 @@ internally buffered inside Electron process memory.
#### `request.setHeader(name, value)`
* `name` string - An extra HTTP header name.
* `value` string - An extra HTTP header value.
* `name` String - An extra HTTP header name.
* `value` String - An extra HTTP header value.
Adds an extra HTTP header. The header name will be issued as-is without
lowercasing. It can be called only before first write. Calling this method after
the first write will throw an error. If the passed value is not a `string`, its
the first write will throw an error. If the passed value is not a `String`, its
`toString()` method will be called to obtain the final value.
Certain headers are restricted from being set by apps. These headers are
@@ -199,22 +199,22 @@ Additionally, setting the `Connection` header to the value `upgrade` is also dis
#### `request.getHeader(name)`
* `name` string - Specify an extra header name.
* `name` String - Specify an extra header name.
Returns `string` - The value of a previously set extra header name.
Returns `String` - The value of a previously set extra header name.
#### `request.removeHeader(name)`
* `name` string - Specify an extra header name.
* `name` String - Specify an extra header name.
Removes a previously set extra header name. This method can be called only
before first write. Trying to call it after the first write will throw an error.
#### `request.write(chunk[, encoding][, callback])`
* `chunk` (string | Buffer) - A chunk of the request body's data. If it is a
* `chunk` (String | Buffer) - A chunk of the request body's data. If it is a
string, it is converted into a Buffer using the specified encoding.
* `encoding` string (optional) - Used to convert string chunks into Buffer
* `encoding` String (optional) - Used to convert string chunks into Buffer
objects. Defaults to 'utf-8'.
* `callback` Function (optional) - Called after the write operation ends.
@@ -230,8 +230,8 @@ it is not allowed to add or remove a custom header.
#### `request.end([chunk][, encoding][, callback])`
* `chunk` (string | Buffer) (optional)
* `encoding` string (optional)
* `chunk` (String | Buffer) (optional)
* `encoding` String (optional)
* `callback` Function (optional)
Sends the last chunk of the request data. Subsequent write or end operations
@@ -253,9 +253,9 @@ event.
Returns `Object`:
* `active` boolean - Whether the request is currently active. If this is false
* `active` Boolean - Whether the request is currently active. If this is false
no other properties will be set
* `started` boolean - Whether the upload has started. If this is false both
* `started` Boolean - Whether the upload has started. If this is false both
`current` and `total` will be set to 0.
* `current` Integer - The number of bytes that have been uploaded so far
* `total` Integer - The number of bytes that will be uploaded this request

View File

@@ -10,7 +10,7 @@ you need to pass `selection` to each method:
```javascript
const { clipboard } = require('electron')
clipboard.writeText('Example string', 'selection')
clipboard.writeText('Example String', 'selection')
console.log(clipboard.readText('selection'))
```
@@ -22,9 +22,9 @@ The `clipboard` module has the following methods:
### `clipboard.readText([type])`
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Returns `string` - The content in the clipboard as plain text.
Returns `String` - The content in the clipboard as plain text.
```js
const { clipboard } = require('electron')
@@ -38,8 +38,8 @@ console.log(text)
### `clipboard.writeText(text[, type])`
* `text` string
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `text` String
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes the `text` into the clipboard as plain text.
@@ -52,9 +52,9 @@ clipboard.writeText(text)
### `clipboard.readHTML([type])`
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Returns `string` - The content in the clipboard as markup.
Returns `String` - The content in the clipboard as markup.
```js
const { clipboard } = require('electron')
@@ -68,8 +68,8 @@ console.log(html)
### `clipboard.writeHTML(markup[, type])`
* `markup` string
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `markup` String
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes `markup` to the clipboard.
@@ -81,22 +81,22 @@ clipboard.writeHTML('<b>Hi</b>')
### `clipboard.readImage([type])`
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Returns [`NativeImage`](native-image.md) - The image content in the clipboard.
### `clipboard.writeImage(image[, type])`
* `image` [NativeImage](native-image.md)
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes `image` to the clipboard.
### `clipboard.readRTF([type])`
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Returns `string` - The content in the clipboard as RTF.
Returns `String` - The content in the clipboard as RTF.
```js
const { clipboard } = require('electron')
@@ -110,8 +110,8 @@ console.log(rtf)
### `clipboard.writeRTF(text[, type])`
* `text` string
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `text` String
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes the `text` into the clipboard in RTF.
@@ -126,8 +126,8 @@ clipboard.writeRTF(rtf)
Returns `Object`:
* `title` string
* `url` string
* `title` String
* `url` String
Returns an Object containing `title` and `url` keys representing the bookmark in
the clipboard. The `title` and `url` values will be empty strings when the
@@ -135,9 +135,9 @@ bookmark is unavailable. The `title` value will always be empty on Windows.
### `clipboard.writeBookmark(title, url[, type])` _macOS_ _Windows_
* `title` string - Unused on Windows
* `url` string
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `title` String - Unused on Windows
* `url` String
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes the `title` (macOS only) and `url` into the clipboard as a bookmark.
@@ -156,28 +156,28 @@ clipboard.writeBookmark({
### `clipboard.readFindText()` _macOS_
Returns `string` - The text on the find pasteboard, which is the pasteboard that holds information about the current state of the active applications find panel.
Returns `String` - The text on the find pasteboard, which is the pasteboard that holds information about the current state of the active applications find panel.
This method uses synchronous IPC when called from the renderer process.
The cached value is reread from the find pasteboard whenever the application is activated.
### `clipboard.writeFindText(text)` _macOS_
* `text` string
* `text` String
Writes the `text` into the find pasteboard (the pasteboard that holds information about the current state of the active applications find panel) as plain text. This method uses synchronous IPC when called from the renderer process.
### `clipboard.clear([type])`
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Clears the clipboard content.
### `clipboard.availableFormats([type])`
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Returns `string[]` - An array of supported formats for the clipboard `type`.
Returns `String[]` - An array of supported formats for the clipboard `type`.
```js
const { clipboard } = require('electron')
@@ -189,10 +189,10 @@ console.log(formats)
### `clipboard.has(format[, type])` _Experimental_
* `format` string
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `format` String
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Returns `boolean` - Whether the clipboard supports the specified `format`.
Returns `Boolean` - Whether the clipboard supports the specified `format`.
```js
const { clipboard } = require('electron')
@@ -204,9 +204,9 @@ console.log(hasFormat)
### `clipboard.read(format)` _Experimental_
* `format` string
* `format` String
Returns `string` - Reads `format` type from the clipboard.
Returns `String` - Reads `format` type from the clipboard.
`format` should contain valid ASCII characters and have `/` separator.
`a/c`, `a/bc` are valid formats while `/abc`, `abc/`, `a/`, `/a`, `a`
@@ -214,7 +214,7 @@ are not valid.
### `clipboard.readBuffer(format)` _Experimental_
* `format` string
* `format` String
Returns `Buffer` - Reads `format` type from the clipboard.
@@ -232,9 +232,9 @@ console.log(buffer.equals(out))
### `clipboard.writeBuffer(format, buffer[, type])` _Experimental_
* `format` string
* `format` String
* `buffer` Buffer
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes the `buffer` into the clipboard as `format`.
@@ -248,12 +248,12 @@ clipboard.writeBuffer('public/utf8-plain-text', buffer)
### `clipboard.write(data[, type])`
* `data` Object
* `text` string (optional)
* `html` string (optional)
* `text` String (optional)
* `html` String (optional)
* `image` [NativeImage](native-image.md) (optional)
* `rtf` string (optional)
* `bookmark` string (optional) - The title of the URL at `text`.
* `type` string (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
* `rtf` String (optional)
* `bookmark` String (optional) - The title of the URL at `text`.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes `data` to the clipboard.

View File

@@ -61,6 +61,12 @@ throttling in one window, you can take the hack of
Forces the maximum disk space to be used by the disk cache, in bytes.
### --enable-api-filtering-logging
Enables caller stack logging for the following APIs (filtering events):
* `desktopCapturer.getSources()` / `desktop-capturer-get-sources`
### --enable-logging[=file]
Prints Chromium's logging to stderr (or a log file).

View File

@@ -20,8 +20,8 @@ document.
#### `commandLine.appendSwitch(switch[, value])`
* `switch` string - A command-line switch, without the leading `--`
* `value` string (optional) - A value for the given switch
* `switch` String - A command-line switch, without the leading `--`
* `value` String (optional) - A value for the given switch
Append a switch (with optional `value`) to Chromium's command line.
@@ -30,7 +30,7 @@ control Chromium's behavior.
#### `commandLine.appendArgument(value)`
* `value` string - The argument to append to the command line
* `value` String - The argument to append to the command line
Append an argument to Chromium's command line. The argument will be quoted
correctly. Switches will precede arguments regardless of appending order.
@@ -42,21 +42,21 @@ control Chromium's behavior.
#### `commandLine.hasSwitch(switch)`
* `switch` string - A command-line switch
* `switch` String - A command-line switch
Returns `boolean` - Whether the command-line switch is present.
Returns `Boolean` - Whether the command-line switch is present.
#### `commandLine.getSwitchValue(switch)`
* `switch` string - A command-line switch
* `switch` String - A command-line switch
Returns `string` - The command-line switch value.
Returns `String` - The command-line switch value.
**Note:** When the switch is not present or has no value, it returns empty string.
#### `commandLine.removeSwitch(switch)`
* `switch` string - A command-line switch
* `switch` String - A command-line switch
Removes the specified switch from Chromium's command line.

View File

@@ -32,7 +32,7 @@ The `contentTracing` module has the following methods:
### `contentTracing.getCategories()`
Returns `Promise<string[]>` - resolves with an array of category groups once all child processes have acknowledged the `getCategories` request
Returns `Promise<String[]>` - resolves with an array of category groups once all child processes have acknowledged the `getCategories` request
Get a set of category groups. The category groups can change as new code paths
are reached. See also the [list of built-in tracing
@@ -57,9 +57,9 @@ only one trace operation can be in progress at a time.
### `contentTracing.stopRecording([resultFilePath])`
* `resultFilePath` string (optional)
* `resultFilePath` String (optional)
Returns `Promise<string>` - resolves with a path to a file that contains the traced data once all child processes have acknowledged the `stopRecording` request
Returns `Promise<String>` - resolves with a path to a file that contains the traced data once all child processes have acknowledged the `stopRecording` request
Stop recording on all processes.
@@ -77,8 +77,8 @@ will be returned in the promise.
Returns `Promise<Object>` - Resolves with an object containing the `value` and `percentage` of trace buffer maximum usage
* `value` number
* `percentage` number
* `value` Number
* `percentage` Number
Get the maximum usage across processes of trace buffer as a percentage of the
full state.

View File

@@ -43,15 +43,15 @@ The `contextBridge` module has the following methods:
### `contextBridge.exposeInMainWorld(apiKey, api)`
* `apiKey` string - The key to inject the API onto `window` with. The API will be accessible on `window[apiKey]`.
* `apiKey` String - The key to inject the API onto `window` with. The API will be accessible on `window[apiKey]`.
* `api` any - Your API, more information on what this API can be and how it works is available below.
## Usage
### API
The `api` provided to [`exposeInMainWorld`](#contextbridgeexposeinmainworldapikey-api) must be a `Function`, `string`, `number`, `Array`, `boolean`, or an object
whose keys are strings and values are a `Function`, `string`, `number`, `Array`, `boolean`, or another nested object that meets the same conditions.
The `api` provided to [`exposeInMainWorld`](#contextbridgeexposeinmainworldapikey-api) must be a `Function`, `String`, `Number`, `Array`, `Boolean`, or an object
whose keys are strings and values are a `Function`, `String`, `Number`, `Array`, `Boolean`, or another nested object that meets the same conditions.
`Function` values are proxied to the other context and all other values are **copied** and **frozen**. Any data / primitives sent in
the API become immutable and updates on either side of the bridge do not result in an update on the other side.
@@ -97,9 +97,9 @@ has been included below for completeness:
| Type | Complexity | Parameter Support | Return Value Support | Limitations |
| ---- | ---------- | ----------------- | -------------------- | ----------- |
| `string` | Simple | ✅ | ✅ | N/A |
| `number` | Simple | ✅ | ✅ | N/A |
| `boolean` | Simple | ✅ | ✅ | N/A |
| `String` | Simple | ✅ | ✅ | N/A |
| `Number` | Simple | ✅ | ✅ | N/A |
| `Boolean` | Simple | ✅ | ✅ | N/A |
| `Object` | Complex | ✅ | ✅ | Keys must be supported using only "Simple" types in this table. Values must be supported in this table. Prototype modifications are dropped. Sending custom classes will copy values but not the prototype. |
| `Array` | Complex | ✅ | ✅ | Same limitations as the `Object` type |
| `Error` | Complex | ✅ | ✅ | Errors that are thrown are also copied, this can result in the message and stack trace of the error changing slightly due to being thrown in a different context, and any custom properties on the Error object [will be lost](https://github.com/electron/electron/issues/25596) |

View File

@@ -50,7 +50,7 @@ Returns:
* `event` Event
* `cookie` [Cookie](structures/cookie.md) - The cookie that was changed.
* `cause` string - The cause of the change with one of the following values:
* `cause` String - The cause of the change with one of the following values:
* `explicit` - The cookie was changed directly by a consumer's action.
* `overwrite` - The cookie was automatically removed due to an insert
operation that overwrote it.
@@ -58,7 +58,7 @@ Returns:
* `evicted` - The cookie was automatically evicted during garbage collection.
* `expired-overwrite` - The cookie was overwritten with an already-expired
expiration date.
* `removed` boolean - `true` if the cookie was removed, `false` otherwise.
* `removed` Boolean - `true` if the cookie was removed, `false` otherwise.
Emitted when a cookie is changed because it was added, edited, removed, or
expired.
@@ -70,14 +70,14 @@ The following methods are available on instances of `Cookies`:
#### `cookies.get(filter)`
* `filter` Object
* `url` string (optional) - Retrieves cookies which are associated with
* `url` String (optional) - Retrieves cookies which are associated with
`url`. Empty implies retrieving cookies of all URLs.
* `name` string (optional) - Filters cookies by name.
* `domain` string (optional) - Retrieves cookies whose domains match or are
* `name` String (optional) - Filters cookies by name.
* `domain` String (optional) - Retrieves cookies whose domains match or are
subdomains of `domains`.
* `path` string (optional) - Retrieves cookies whose path matches `path`.
* `secure` boolean (optional) - Filters cookies by their Secure property.
* `session` boolean (optional) - Filters out session or persistent cookies.
* `path` String (optional) - Retrieves cookies whose path matches `path`.
* `secure` Boolean (optional) - Filters cookies by their Secure property.
* `session` Boolean (optional) - Filters out session or persistent cookies.
Returns `Promise<Cookie[]>` - A promise which resolves an array of cookie objects.
@@ -87,19 +87,19 @@ the response.
#### `cookies.set(details)`
* `details` Object
* `url` string - The URL to associate the cookie with. The promise will be rejected if the URL is invalid.
* `name` string (optional) - The name of the cookie. Empty by default if omitted.
* `value` string (optional) - The value of the cookie. Empty by default if omitted.
* `domain` string (optional) - The domain of the cookie; this will be normalized with a preceding dot so that it's also valid for subdomains. Empty by default if omitted.
* `path` string (optional) - The path of the cookie. Empty by default if omitted.
* `secure` boolean (optional) - Whether the cookie should be marked as Secure. Defaults to
* `url` String - The URL to associate the cookie with. The promise will be rejected if the URL is invalid.
* `name` String (optional) - The name of the cookie. Empty by default if omitted.
* `value` String (optional) - The value of the cookie. Empty by default if omitted.
* `domain` String (optional) - The domain of the cookie; this will be normalized with a preceding dot so that it's also valid for subdomains. Empty by default if omitted.
* `path` String (optional) - The path of the cookie. Empty by default if omitted.
* `secure` Boolean (optional) - Whether the cookie should be marked as Secure. Defaults to
false unless [Same Site=None](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite#samesitenone_requires_secure) attribute is used.
* `httpOnly` boolean (optional) - Whether the cookie should be marked as HTTP only.
* `httpOnly` Boolean (optional) - Whether the cookie should be marked as HTTP only.
Defaults to false.
* `expirationDate` Double (optional) - The expiration date of the cookie as the number of
seconds since the UNIX epoch. If omitted then the cookie becomes a session
cookie and will not be retained between sessions.
* `sameSite` string (optional) - The [Same Site](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#SameSite_cookies) policy to apply to this cookie. Can be `unspecified`, `no_restriction`, `lax` or `strict`. Default is `lax`.
* `sameSite` String (optional) - The [Same Site](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#SameSite_cookies) policy to apply to this cookie. Can be `unspecified`, `no_restriction`, `lax` or `strict`. Default is `lax`.
Returns `Promise<void>` - A promise which resolves when the cookie has been set
@@ -107,8 +107,8 @@ Sets a cookie with `details`.
#### `cookies.remove(url, name)`
* `url` string - The URL associated with the cookie.
* `name` string - The name of cookie to remove.
* `url` String - The URL associated with the cookie.
* `name` String - The name of cookie to remove.
Returns `Promise<void>` - A promise which resolves when the cookie has been removed

View File

@@ -27,7 +27,6 @@ Or use a 3rd party hosted solution:
* [Backtrace](https://backtrace.io/electron/)
* [Sentry](https://docs.sentry.io/clients/electron)
* [BugSplat](https://www.bugsplat.com/docs/platforms/electron)
* [Bugsnag](https://docs.bugsnag.com/platforms/electron/)
Crash reports are stored temporarily before being uploaded in a directory
underneath the app's user data directory, called 'Crashpad'. You can override
@@ -44,29 +43,29 @@ The `crashReporter` module has the following methods:
### `crashReporter.start(options)`
* `options` Object
* `submitURL` string (optional) - URL that crash reports will be sent to as
* `submitURL` String (optional) - URL that crash reports will be sent to as
POST. Required unless `uploadToServer` is `false`.
* `productName` string (optional) - Defaults to `app.name`.
* `companyName` string (optional) _Deprecated_ - Deprecated alias for
* `productName` String (optional) - Defaults to `app.name`.
* `companyName` String (optional) _Deprecated_ - Deprecated alias for
`{ globalExtra: { _companyName: ... } }`.
* `uploadToServer` boolean (optional) - Whether crash reports should be sent
* `uploadToServer` Boolean (optional) - Whether crash reports should be sent
to the server. If false, crash reports will be collected and stored in the
crashes directory, but not uploaded. Default is `true`.
* `ignoreSystemCrashHandler` boolean (optional) - If true, crashes generated
* `ignoreSystemCrashHandler` Boolean (optional) - If true, crashes generated
in the main process will not be forwarded to the system crash handler.
Default is `false`.
* `rateLimit` boolean (optional) _macOS_ _Windows_ - If true, limit the
* `rateLimit` Boolean (optional) _macOS_ _Windows_ - If true, limit the
number of crashes uploaded to 1/hour. Default is `false`.
* `compress` boolean (optional) - If true, crash reports will be compressed
* `compress` Boolean (optional) - If true, crash reports will be compressed
and uploaded with `Content-Encoding: gzip`. Default is `true`.
* `extra` Record<string, string> (optional) - Extra string key/value
* `extra` Record<String, String> (optional) - Extra string key/value
annotations that will be sent along with crash reports that are generated
in the main process. Only string values are supported. Crashes generated in
child processes will not contain these extra
parameters to crash reports generated from child processes, call
[`addExtraParameter`](#crashreporteraddextraparameterkey-value) from the
child process.
* `globalExtra` Record<string, string> (optional) - Extra string key/value
* `globalExtra` Record<String, String> (optional) - Extra string key/value
annotations that will be sent along with any crash reports generated in any
process. These annotations cannot be changed once the crash reporter has
been started. If a key is present in both the global extra parameters and
@@ -118,14 +117,14 @@ ID.
### `crashReporter.getUploadToServer()`
Returns `boolean` - Whether reports should be submitted to the server. Set through
Returns `Boolean` - Whether reports should be submitted to the server. Set through
the `start` method or `setUploadToServer`.
**Note:** This method is only available in the main process.
### `crashReporter.setUploadToServer(uploadToServer)`
* `uploadToServer` boolean - Whether reports should be submitted to the server.
* `uploadToServer` Boolean - Whether reports should be submitted to the server.
This would normally be controlled by user preferences. This has no effect if
called before `start` is called.
@@ -134,8 +133,8 @@ called before `start` is called.
### `crashReporter.addExtraParameter(key, value)`
* `key` string - Parameter key, must be no longer than 39 bytes.
* `value` string - Parameter value, must be no longer than 127 bytes.
* `key` String - Parameter key, must be no longer than 39 bytes.
* `value` String - Parameter value, must be no longer than 127 bytes.
Set an extra parameter to be sent with the crash report. The values specified
here will be sent in addition to any values set via the `extra` option when
@@ -155,14 +154,14 @@ values longer than the maximum length will be truncated.
### `crashReporter.removeExtraParameter(key)`
* `key` string - Parameter key, must be no longer than 39 bytes.
* `key` String - Parameter key, must be no longer than 39 bytes.
Remove an extra parameter from the current set of parameters. Future crashes
will not include this parameter.
### `crashReporter.getParameters()`
Returns `Record<string, string>` - The current 'extra' parameters of the crash reporter.
Returns `Record<String, String>` - The current 'extra' parameters of the crash reporter.
## In Node child processes
@@ -195,15 +194,15 @@ See [`crashReporter.removeExtraParameter(key)`](#crashreporterremoveextraparamet
The crash reporter will send the following data to the `submitURL` as
a `multipart/form-data` `POST`:
* `ver` string - The version of Electron.
* `platform` string - e.g. 'win32'.
* `process_type` string - e.g. 'renderer'.
* `guid` string - e.g. '5e1286fc-da97-479e-918b-6bfb0c3d1c72'.
* `_version` string - The version in `package.json`.
* `_productName` string - The product name in the `crashReporter` `options`
* `ver` String - The version of Electron.
* `platform` String - e.g. 'win32'.
* `process_type` String - e.g. 'renderer'.
* `guid` String - e.g. '5e1286fc-da97-479e-918b-6bfb0c3d1c72'.
* `_version` String - The version in `package.json`.
* `_productName` String - The product name in the `crashReporter` `options`
object.
* `prod` string - Name of the underlying product. In this case Electron.
* `_companyName` string - The company name in the `crashReporter` `options`
* `prod` String - Name of the underlying product. In this case Electron.
* `_companyName` String - The company name in the `crashReporter` `options`
object.
* `upload_file_minidump` File - The crash report in the format of `minidump`.
* All level one properties of the `extra` object in the `crashReporter`

View File

@@ -40,7 +40,7 @@ win.webContents.debugger.sendCommand('Network.enable')
Returns:
* `event` Event
* `reason` string - Reason for detaching debugger.
* `reason` String - Reason for detaching debugger.
Emitted when the debugging session is terminated. This happens either when
`webContents` is closed or devtools is invoked for the attached `webContents`.
@@ -50,10 +50,10 @@ Emitted when the debugging session is terminated. This happens either when
Returns:
* `event` Event
* `method` string - Method name.
* `method` String - Method name.
* `params` any - Event parameters defined by the 'parameters'
attribute in the remote debugging protocol.
* `sessionId` string - Unique identifier of attached debugging session,
* `sessionId` String - Unique identifier of attached debugging session,
will match the value sent from `debugger.sendCommand`.
Emitted whenever the debugging target issues an instrumentation event.
@@ -65,13 +65,13 @@ Emitted whenever the debugging target issues an instrumentation event.
#### `debugger.attach([protocolVersion])`
* `protocolVersion` string (optional) - Requested debugging protocol version.
* `protocolVersion` String (optional) - Requested debugging protocol version.
Attaches the debugger to the `webContents`.
#### `debugger.isAttached()`
Returns `boolean` - Whether a debugger is attached to the `webContents`.
Returns `Boolean` - Whether a debugger is attached to the `webContents`.
#### `debugger.detach()`
@@ -79,10 +79,10 @@ Detaches the debugger from the `webContents`.
#### `debugger.sendCommand(method[, commandParams, sessionId])`
* `method` string - Method name, should be one of the methods defined by the
* `method` String - Method name, should be one of the methods defined by the
[remote debugging protocol][rdp].
* `commandParams` any (optional) - JSON object with request parameters.
* `sessionId` string (optional) - send command to the target with associated
* `sessionId` String (optional) - send command to the target with associated
debugging session id. The initial value can be obtained by sending
[Target.attachToTarget][attachToTarget] message.

View File

@@ -3,49 +3,40 @@
> Access information about media sources that can be used to capture audio and
> video from the desktop using the [`navigator.mediaDevices.getUserMedia`] API.
Process: [Main](../glossary.md#main-process)
Process: [Main](../glossary.md#main-process), [Renderer](../glossary.md#renderer-process)
The following example shows how to capture video from a desktop window whose
title is `Electron`:
```javascript
// In the main process.
// In the renderer process.
const { desktopCapturer } = require('electron')
desktopCapturer.getSources({ types: ['window', 'screen'] }).then(async sources => {
for (const source of sources) {
if (source.name === 'Electron') {
mainWindow.webContents.send('SET_SOURCE', source.id)
try {
const stream = await navigator.mediaDevices.getUserMedia({
audio: false,
video: {
mandatory: {
chromeMediaSource: 'desktop',
chromeMediaSourceId: source.id,
minWidth: 1280,
maxWidth: 1280,
minHeight: 720,
maxHeight: 720
}
}
})
handleStream(stream)
} catch (e) {
handleError(e)
}
return
}
}
})
```
```javascript
// In the preload script.
const { ipcRenderer } = require('electron')
ipcRenderer.on('SET_SOURCE', async (event, sourceId) => {
try {
const stream = await navigator.mediaDevices.getUserMedia({
audio: false,
video: {
mandatory: {
chromeMediaSource: 'desktop',
chromeMediaSourceId: sourceId,
minWidth: 1280,
maxWidth: 1280,
minHeight: 720,
maxHeight: 720
}
}
})
handleStream(stream)
} catch (e) {
handleError(e)
}
})
function handleStream (stream) {
const video = document.querySelector('video')
@@ -88,13 +79,13 @@ The `desktopCapturer` module has the following methods:
### `desktopCapturer.getSources(options)`
* `options` Object
* `types` string[] - An array of strings that lists the types of desktop sources
* `types` String[] - An array of Strings that lists the types of desktop sources
to be captured, available types are `screen` and `window`.
* `thumbnailSize` [Size](structures/size.md) (optional) - The size that the media source thumbnail
should be scaled to. Default is `150` x `150`. Set width or height to 0 when you do not need
the thumbnails. This will save the processing time required for capturing the content of each
window and screen.
* `fetchWindowIcons` boolean (optional) - Set to true to enable fetching window icons. The default
* `fetchWindowIcons` Boolean (optional) - Set to true to enable fetching window icons. The default
value is false. When false the appIcon property of the sources return null. Same if a source has
the type screen.

View File

@@ -19,12 +19,12 @@ The `dialog` module has the following methods:
* `browserWindow` [BrowserWindow](browser-window.md) (optional)
* `options` Object
* `title` string (optional)
* `defaultPath` string (optional)
* `buttonLabel` string (optional) - Custom label for the confirmation button, when
* `title` String (optional)
* `defaultPath` String (optional)
* `buttonLabel` String (optional) - Custom label for the confirmation button, when
left empty the default label will be used.
* `filters` [FileFilter[]](structures/file-filter.md) (optional)
* `properties` string[]&#32;(optional) - Contains which features the dialog should
* `properties` String[]&#32;(optional) - Contains which features the dialog should
use. The following values are supported:
* `openFile` - Allow files to be selected.
* `openDirectory` - Allow directories to be selected.
@@ -41,11 +41,11 @@ The `dialog` module has the following methods:
* `treatPackageAsDirectory` _macOS_ - Treat packages, such as `.app` folders,
as a directory instead of a file.
* `dontAddToRecent` _Windows_ - Do not add the item being opened to the recent documents list.
* `message` string (optional) _macOS_ - Message to display above input
* `message` String (optional) _macOS_ - Message to display above input
boxes.
* `securityScopedBookmarks` boolean (optional) _macOS_ _mas_ - Create [security scoped bookmarks](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) when packaged for the Mac App Store.
* `securityScopedBookmarks` Boolean (optional) _macOS_ _mas_ - Create [security scoped bookmarks](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) when packaged for the Mac App Store.
Returns `string[] | undefined`, the file paths chosen by the user; if the dialog is cancelled it returns `undefined`.
Returns `String[] | undefined`, the file paths chosen by the user; if the dialog is cancelled it returns `undefined`.
The `browserWindow` argument allows the dialog to attach itself to a parent window, making it modal.
@@ -82,12 +82,12 @@ dialog.showOpenDialogSync(mainWindow, {
* `browserWindow` [BrowserWindow](browser-window.md) (optional)
* `options` Object
* `title` string (optional)
* `defaultPath` string (optional)
* `buttonLabel` string (optional) - Custom label for the confirmation button, when
* `title` String (optional)
* `defaultPath` String (optional)
* `buttonLabel` String (optional) - Custom label for the confirmation button, when
left empty the default label will be used.
* `filters` [FileFilter[]](structures/file-filter.md) (optional)
* `properties` string[]&#32;(optional) - Contains which features the dialog should
* `properties` String[]&#32;(optional) - Contains which features the dialog should
use. The following values are supported:
* `openFile` - Allow files to be selected.
* `openDirectory` - Allow directories to be selected.
@@ -104,15 +104,15 @@ dialog.showOpenDialogSync(mainWindow, {
* `treatPackageAsDirectory` _macOS_ - Treat packages, such as `.app` folders,
as a directory instead of a file.
* `dontAddToRecent` _Windows_ - Do not add the item being opened to the recent documents list.
* `message` string (optional) _macOS_ - Message to display above input
* `message` String (optional) _macOS_ - Message to display above input
boxes.
* `securityScopedBookmarks` boolean (optional) _macOS_ _mas_ - Create [security scoped bookmarks](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) when packaged for the Mac App Store.
* `securityScopedBookmarks` Boolean (optional) _macOS_ _mas_ - Create [security scoped bookmarks](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) when packaged for the Mac App Store.
Returns `Promise<Object>` - Resolve with an object containing the following:
* `canceled` boolean - whether or not the dialog was canceled.
* `filePaths` string[] - An array of file paths chosen by the user. If the dialog is cancelled this will be an empty array.
* `bookmarks` string[]&#32;(optional) _macOS_ _mas_ - An array matching the `filePaths` array of base64 encoded strings which contains security scoped bookmark data. `securityScopedBookmarks` must be enabled for this to be populated. (For return values, see [table here](#bookmarks-array).)
* `canceled` Boolean - whether or not the dialog was canceled.
* `filePaths` String[] - An array of file paths chosen by the user. If the dialog is cancelled this will be an empty array.
* `bookmarks` String[]&#32;(optional) _macOS_ _mas_ - An array matching the `filePaths` array of base64 encoded strings which contains security scoped bookmark data. `securityScopedBookmarks` must be enabled for this to be populated. (For return values, see [table here](#bookmarks-array).)
The `browserWindow` argument allows the dialog to attach itself to a parent window, making it modal.
@@ -154,27 +154,27 @@ dialog.showOpenDialog(mainWindow, {
* `browserWindow` [BrowserWindow](browser-window.md) (optional)
* `options` Object
* `title` string (optional) - The dialog title. Cannot be displayed on some _Linux_ desktop environments.
* `defaultPath` string (optional) - Absolute directory path, absolute file
* `title` String (optional) - The dialog title. Cannot be displayed on some _Linux_ desktop environments.
* `defaultPath` String (optional) - Absolute directory path, absolute file
path, or file name to use by default.
* `buttonLabel` string (optional) - Custom label for the confirmation button, when
* `buttonLabel` String (optional) - Custom label for the confirmation button, when
left empty the default label will be used.
* `filters` [FileFilter[]](structures/file-filter.md) (optional)
* `message` string (optional) _macOS_ - Message to display above text fields.
* `nameFieldLabel` string (optional) _macOS_ - Custom label for the text
* `message` String (optional) _macOS_ - Message to display above text fields.
* `nameFieldLabel` String (optional) _macOS_ - Custom label for the text
displayed in front of the filename text field.
* `showsTagField` boolean (optional) _macOS_ - Show the tags input box,
* `showsTagField` Boolean (optional) _macOS_ - Show the tags input box,
defaults to `true`.
* `properties` string[]&#32;(optional)
* `properties` String[]&#32;(optional)
* `showHiddenFiles` - Show hidden files in dialog.
* `createDirectory` _macOS_ - Allow creating new directories from dialog.
* `treatPackageAsDirectory` _macOS_ - Treat packages, such as `.app` folders,
as a directory instead of a file.
* `showOverwriteConfirmation` _Linux_ - Sets whether the user will be presented a confirmation dialog if the user types a file name that already exists.
* `dontAddToRecent` _Windows_ - Do not add the item being saved to the recent documents list.
* `securityScopedBookmarks` boolean (optional) _macOS_ _mas_ - Create a [security scoped bookmark](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) when packaged for the Mac App Store. If this option is enabled and the file doesn't already exist a blank file will be created at the chosen path.
* `securityScopedBookmarks` Boolean (optional) _macOS_ _mas_ - Create a [security scoped bookmark](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) when packaged for the Mac App Store. If this option is enabled and the file doesn't already exist a blank file will be created at the chosen path.
Returns `string | undefined`, the path of the file chosen by the user; if the dialog is cancelled it returns `undefined`.
Returns `String | undefined`, the path of the file chosen by the user; if the dialog is cancelled it returns `undefined`.
The `browserWindow` argument allows the dialog to attach itself to a parent window, making it modal.
@@ -185,30 +185,30 @@ The `filters` specifies an array of file types that can be displayed, see
* `browserWindow` [BrowserWindow](browser-window.md) (optional)
* `options` Object
* `title` string (optional) - The dialog title. Cannot be displayed on some _Linux_ desktop environments.
* `defaultPath` string (optional) - Absolute directory path, absolute file
* `title` String (optional) - The dialog title. Cannot be displayed on some _Linux_ desktop environments.
* `defaultPath` String (optional) - Absolute directory path, absolute file
path, or file name to use by default.
* `buttonLabel` string (optional) - Custom label for the confirmation button, when
* `buttonLabel` String (optional) - Custom label for the confirmation button, when
left empty the default label will be used.
* `filters` [FileFilter[]](structures/file-filter.md) (optional)
* `message` string (optional) _macOS_ - Message to display above text fields.
* `nameFieldLabel` string (optional) _macOS_ - Custom label for the text
* `message` String (optional) _macOS_ - Message to display above text fields.
* `nameFieldLabel` String (optional) _macOS_ - Custom label for the text
displayed in front of the filename text field.
* `showsTagField` boolean (optional) _macOS_ - Show the tags input box, defaults to `true`.
* `properties` string[]&#32;(optional)
* `showsTagField` Boolean (optional) _macOS_ - Show the tags input box, defaults to `true`.
* `properties` String[]&#32;(optional)
* `showHiddenFiles` - Show hidden files in dialog.
* `createDirectory` _macOS_ - Allow creating new directories from dialog.
* `treatPackageAsDirectory` _macOS_ - Treat packages, such as `.app` folders,
as a directory instead of a file.
* `showOverwriteConfirmation` _Linux_ - Sets whether the user will be presented a confirmation dialog if the user types a file name that already exists.
* `dontAddToRecent` _Windows_ - Do not add the item being saved to the recent documents list.
* `securityScopedBookmarks` boolean (optional) _macOS_ _mas_ - Create a [security scoped bookmark](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) when packaged for the Mac App Store. If this option is enabled and the file doesn't already exist a blank file will be created at the chosen path.
* `securityScopedBookmarks` Boolean (optional) _macOS_ _mas_ - Create a [security scoped bookmark](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) when packaged for the Mac App Store. If this option is enabled and the file doesn't already exist a blank file will be created at the chosen path.
Returns `Promise<Object>` - Resolve with an object containing the following:
* `canceled` boolean - whether or not the dialog was canceled.
* `filePath` string (optional) - If the dialog is canceled, this will be `undefined`.
* `bookmark` string (optional) _macOS_ _mas_ - Base64 encoded string which contains the security scoped bookmark data for the saved file. `securityScopedBookmarks` must be enabled for this to be present. (For return values, see [table here](#bookmarks-array).)
* `canceled` Boolean - whether or not the dialog was canceled.
* `filePath` String (optional) - If the dialog is canceled, this will be `undefined`.
* `bookmark` String (optional) _macOS_ _mas_ - Base64 encoded string which contains the security scoped bookmark data for the saved file. `securityScopedBookmarks` must be enabled for this to be present. (For return values, see [table here](#bookmarks-array).)
The `browserWindow` argument allows the dialog to attach itself to a parent window, making it modal.
@@ -222,29 +222,29 @@ expanding and collapsing the dialog.
* `browserWindow` [BrowserWindow](browser-window.md) (optional)
* `options` Object
* `message` string - Content of the message box.
* `type` string (optional) - Can be `"none"`, `"info"`, `"error"`, `"question"` or
* `message` String - Content of the message box.
* `type` String (optional) - Can be `"none"`, `"info"`, `"error"`, `"question"` or
`"warning"`. On Windows, `"question"` displays the same icon as `"info"`, unless
you set an icon using the `"icon"` option. On macOS, both `"warning"` and
`"error"` display the same warning icon.
* `buttons` string[]&#32;(optional) - Array of texts for buttons. On Windows, an empty array
* `buttons` String[]&#32;(optional) - Array of texts for buttons. On Windows, an empty array
will result in one button labeled "OK".
* `defaultId` Integer (optional) - Index of the button in the buttons array which will
be selected by default when the message box opens.
* `title` string (optional) - Title of the message box, some platforms will not show it.
* `detail` string (optional) - Extra information of the message.
* `icon` ([NativeImage](native-image.md) | string) (optional)
* `title` String (optional) - Title of the message box, some platforms will not show it.
* `detail` String (optional) - Extra information of the message.
* `icon` ([NativeImage](native-image.md) | String) (optional)
* `textWidth` Integer (optional) _macOS_ - Custom width of the text in the message box.
* `cancelId` Integer (optional) - The index of the button to be used to cancel the dialog, via
the `Esc` key. By default this is assigned to the first button with "cancel" or "no" as the
label. If no such labeled buttons exist and this option is not set, `0` will be used as the
return value.
* `noLink` boolean (optional) - On Windows Electron will try to figure out which one of
* `noLink` Boolean (optional) - On Windows Electron will try to figure out which one of
the `buttons` are common buttons (like "Cancel" or "Yes"), and show the
others as command links in the dialog. This can make the dialog appear in
the style of modern Windows apps. If you don't like this behavior, you can
set `noLink` to `true`.
* `normalizeAccessKeys` boolean (optional) - Normalize the keyboard access keys
* `normalizeAccessKeys` Boolean (optional) - Normalize the keyboard access keys
across platforms. Default is `false`. Enabling this assumes `&` is used in
the button labels for the placement of the keyboard shortcut access key
and labels will be converted so they work correctly on each platform, `&`
@@ -265,12 +265,12 @@ If `browserWindow` is not shown dialog will not be attached to it. In such case
* `browserWindow` [BrowserWindow](browser-window.md) (optional)
* `options` Object
* `message` string - Content of the message box.
* `type` string (optional) - Can be `"none"`, `"info"`, `"error"`, `"question"` or
* `message` String - Content of the message box.
* `type` String (optional) - Can be `"none"`, `"info"`, `"error"`, `"question"` or
`"warning"`. On Windows, `"question"` displays the same icon as `"info"`, unless
you set an icon using the `"icon"` option. On macOS, both `"warning"` and
`"error"` display the same warning icon.
* `buttons` string[]&#32;(optional) - Array of texts for buttons. On Windows, an empty array
* `buttons` String[]&#32;(optional) - Array of texts for buttons. On Windows, an empty array
will result in one button labeled "OK".
* `defaultId` Integer (optional) - Index of the button in the buttons array which will
be selected by default when the message box opens.
@@ -279,24 +279,24 @@ If `browserWindow` is not shown dialog will not be attached to it. In such case
cancelled by the user. On macOS, `signal` does not work with message boxes
that do not have a parent window, since those message boxes run
synchronously due to platform limitations.
* `title` string (optional) - Title of the message box, some platforms will not show it.
* `detail` string (optional) - Extra information of the message.
* `checkboxLabel` string (optional) - If provided, the message box will
* `title` String (optional) - Title of the message box, some platforms will not show it.
* `detail` String (optional) - Extra information of the message.
* `checkboxLabel` String (optional) - If provided, the message box will
include a checkbox with the given label.
* `checkboxChecked` boolean (optional) - Initial checked state of the
* `checkboxChecked` Boolean (optional) - Initial checked state of the
checkbox. `false` by default.
* `icon` ([NativeImage](native-image.md) | string) (optional)
* `icon` [NativeImage](native-image.md) (optional)
* `textWidth` Integer (optional) _macOS_ - Custom width of the text in the message box.
* `cancelId` Integer (optional) - The index of the button to be used to cancel the dialog, via
the `Esc` key. By default this is assigned to the first button with "cancel" or "no" as the
label. If no such labeled buttons exist and this option is not set, `0` will be used as the
return value.
* `noLink` boolean (optional) - On Windows Electron will try to figure out which one of
* `noLink` Boolean (optional) - On Windows Electron will try to figure out which one of
the `buttons` are common buttons (like "Cancel" or "Yes"), and show the
others as command links in the dialog. This can make the dialog appear in
the style of modern Windows apps. If you don't like this behavior, you can
set `noLink` to `true`.
* `normalizeAccessKeys` boolean (optional) - Normalize the keyboard access keys
* `normalizeAccessKeys` Boolean (optional) - Normalize the keyboard access keys
across platforms. Default is `false`. Enabling this assumes `&` is used in
the button labels for the placement of the keyboard shortcut access key
and labels will be converted so they work correctly on each platform, `&`
@@ -307,8 +307,8 @@ If `browserWindow` is not shown dialog will not be attached to it. In such case
Returns `Promise<Object>` - resolves with a promise containing the following properties:
* `response` number - The index of the clicked button.
* `checkboxChecked` boolean - The checked state of the checkbox if
* `response` Number - The index of the clicked button.
* `checkboxChecked` Boolean - The checked state of the checkbox if
`checkboxLabel` was set. Otherwise `false`.
Shows a message box.
@@ -317,8 +317,8 @@ The `browserWindow` argument allows the dialog to attach itself to a parent wind
### `dialog.showErrorBox(title, content)`
* `title` string - The title to display in the error box.
* `content` string - The text content to display in the error box.
* `title` String - The title to display in the error box.
* `content` String - The text content to display in the error box.
Displays a modal dialog that shows an error message.
@@ -332,7 +332,7 @@ and no GUI dialog will appear.
* `browserWindow` [BrowserWindow](browser-window.md) (optional)
* `options` Object
* `certificate` [Certificate](structures/certificate.md) - The certificate to trust/import.
* `message` string - The message to display to the user.
* `message` String - The message to display to the user.
Returns `Promise<void>` - resolves when the certificate trust dialog is shown.

View File

@@ -16,7 +16,7 @@ app.dock.bounce()
#### `dock.bounce([type])` _macOS_
* `type` string (optional) - Can be `critical` or `informational`. The default is
* `type` String (optional) - Can be `critical` or `informational`. The default is
`informational`
Returns `Integer` - an ID representing the request.
@@ -28,7 +28,7 @@ When `informational` is passed, the dock icon will bounce for one second.
However, the request remains active until either the application becomes active
or the request is canceled.
**Note:** This method can only be used while the app is not focused; when the app is focused it will return -1.
**Nota Bene:** This method can only be used while the app is not focused; when the app is focused it will return -1.
#### `dock.cancelBounce(id)` _macOS_
@@ -38,19 +38,19 @@ Cancel the bounce of `id`.
#### `dock.downloadFinished(filePath)` _macOS_
* `filePath` string
* `filePath` String
Bounces the Downloads stack if the filePath is inside the Downloads folder.
#### `dock.setBadge(text)` _macOS_
* `text` string
* `text` String
Sets the string to be displayed in the docks badging area.
#### `dock.getBadge()` _macOS_
Returns `string` - The badge string of the dock.
Returns `String` - The badge string of the dock.
#### `dock.hide()` _macOS_
@@ -62,7 +62,7 @@ Returns `Promise<void>` - Resolves when the dock icon is shown.
#### `dock.isVisible()` _macOS_
Returns `boolean` - Whether the dock icon is visible.
Returns `Boolean` - Whether the dock icon is visible.
#### `dock.setMenu(menu)` _macOS_
@@ -76,6 +76,6 @@ Returns `Menu | null` - The application's [dock menu][dock-menu].
#### `dock.setIcon(image)` _macOS_
* `image` ([NativeImage](native-image.md) | string)
* `image` ([NativeImage](native-image.md) | String)
Sets the `image` associated with this dock icon.

View File

@@ -45,7 +45,7 @@ win.webContents.session.on('will-download', (event, item, webContents) => {
Returns:
* `event` Event
* `state` string - Can be `progressing` or `interrupted`.
* `state` String - Can be `progressing` or `interrupted`.
Emitted when the download has been updated and is not done.
@@ -59,7 +59,7 @@ The `state` can be one of following:
Returns:
* `event` Event
* `state` string - Can be `completed`, `cancelled` or `interrupted`.
* `state` String - Can be `completed`, `cancelled` or `interrupted`.
Emitted when the download is in a terminal state. This includes a completed
download, a cancelled download (via `downloadItem.cancel()`), and interrupted
@@ -77,7 +77,7 @@ The `downloadItem` object has the following methods:
#### `downloadItem.setSavePath(path)`
* `path` string - Set the save file path of the download item.
* `path` String - Set the save file path of the download item.
The API is only available in session's `will-download` callback function.
If `path` doesn't exist, Electron will try to make the directory recursively.
@@ -86,7 +86,7 @@ routine to determine the save path; this usually prompts a save dialog.
#### `downloadItem.getSavePath()`
Returns `string` - The save path of the download item. This will be either the path
Returns `String` - The save path of the download item. This will be either the path
set via `downloadItem.setSavePath(path)` or the path selected from the shown
save dialog.
@@ -109,7 +109,7 @@ Pauses the download.
#### `downloadItem.isPaused()`
Returns `boolean` - Whether the download is paused.
Returns `Boolean` - Whether the download is paused.
#### `downloadItem.resume()`
@@ -119,7 +119,7 @@ Resumes the download that has been paused.
#### `downloadItem.canResume()`
Returns `boolean` - Whether the download can resume.
Returns `Boolean` - Whether the download can resume.
#### `downloadItem.cancel()`
@@ -127,19 +127,19 @@ Cancels the download operation.
#### `downloadItem.getURL()`
Returns `string` - The origin URL where the item is downloaded from.
Returns `String` - The origin URL where the item is downloaded from.
#### `downloadItem.getMimeType()`
Returns `string` - The files mime type.
Returns `String` - The files mime type.
#### `downloadItem.hasUserGesture()`
Returns `boolean` - Whether the download has user gesture.
Returns `Boolean` - Whether the download has user gesture.
#### `downloadItem.getFilename()`
Returns `string` - The file name of the download item.
Returns `String` - The file name of the download item.
**Note:** The file name is not always the same as the actual one saved in local
disk. If user changes the file name in a prompted download saving dialog, the
@@ -157,27 +157,27 @@ Returns `Integer` - The received bytes of the download item.
#### `downloadItem.getContentDisposition()`
Returns `string` - The Content-Disposition field from the response
Returns `String` - The Content-Disposition field from the response
header.
#### `downloadItem.getState()`
Returns `string` - The current state. Can be `progressing`, `completed`, `cancelled` or `interrupted`.
Returns `String` - The current state. Can be `progressing`, `completed`, `cancelled` or `interrupted`.
**Note:** The following methods are useful specifically to resume a
`cancelled` item when session is restarted.
#### `downloadItem.getURLChain()`
Returns `string[]` - The complete URL chain of the item including any redirects.
Returns `String[]` - The complete URL chain of the item including any redirects.
#### `downloadItem.getLastModifiedTime()`
Returns `string` - Last-Modified header value.
Returns `String` - Last-Modified header value.
#### `downloadItem.getETag()`
Returns `string` - ETag header value.
Returns `String` - ETag header value.
#### `downloadItem.getStartTime()`
@@ -188,7 +188,7 @@ started.
#### `downloadItem.savePath`
A `string` property that determines the save file path of the download item.
A `String` property that determines the save file path of the download item.
The property is only available in session's `will-download` callback function.
If user doesn't set the save path via the property, Electron will use the original

View File

@@ -47,7 +47,7 @@ The `globalShortcut` module has the following methods:
* `accelerator` [Accelerator](accelerator.md)
* `callback` Function
Returns `boolean` - Whether or not the shortcut was registered successfully.
Returns `Boolean` - Whether or not the shortcut was registered successfully.
Registers a global shortcut of `accelerator`. The `callback` is called when
the registered shortcut is pressed by the user.
@@ -66,7 +66,7 @@ the app has been authorized as a [trusted accessibility client](https://develope
### `globalShortcut.registerAll(accelerators, callback)`
* `accelerators` string[] - an array of [Accelerator](accelerator.md)s.
* `accelerators` String[] - an array of [Accelerator](accelerator.md)s.
* `callback` Function
Registers a global shortcut of all `accelerator` items in `accelerators`. The `callback` is called when any of the registered shortcuts are pressed by the user.
@@ -87,7 +87,7 @@ the app has been authorized as a [trusted accessibility client](https://develope
* `accelerator` [Accelerator](accelerator.md)
Returns `boolean` - Whether this application has registered `accelerator`.
Returns `Boolean` - Whether this application has registered `accelerator`.
When the accelerator is already taken by other applications, this call will
still return `false`. This behavior is intended by operating systems, since they

View File

@@ -23,16 +23,16 @@ The `inAppPurchase` module has the following methods:
### `inAppPurchase.purchaseProduct(productID[, quantity])`
* `productID` string - The identifiers of the product to purchase. (The identifier of `com.example.app.product1` is `product1`).
* `productID` String - The identifiers of the product to purchase. (The identifier of `com.example.app.product1` is `product1`).
* `quantity` Integer (optional) - The number of items the user wants to purchase.
Returns `Promise<boolean>` - Returns `true` if the product is valid and added to the payment queue.
Returns `Promise<Boolean>` - Returns `true` if the product is valid and added to the payment queue.
You should listen for the `transactions-updated` event as soon as possible and certainly before you call `purchaseProduct`.
### `inAppPurchase.getProducts(productIDs)`
* `productIDs` string[] - The identifiers of the products to get.
* `productIDs` String[] - The identifiers of the products to get.
Returns `Promise<Product[]>` - Resolves with an array of [`Product`](structures/product.md) objects.
@@ -40,7 +40,7 @@ Retrieves the product descriptions.
### `inAppPurchase.canMakePayments()`
Returns `boolean` - whether a user can make a payment.
Returns `Boolean` - whether a user can make a payment.
### `inAppPurchase.restoreCompletedTransactions()`
@@ -50,7 +50,7 @@ Restores finished transactions. This method can be called either to install purc
### `inAppPurchase.getReceiptURL()`
Returns `string` - the path to the receipt.
Returns `String` - the path to the receipt.
### `inAppPurchase.finishAllTransactions()`
@@ -58,6 +58,6 @@ Completes all pending transactions.
### `inAppPurchase.finishTransactionByDate(date)`
* `date` string - The ISO formatted date of the transaction to finish.
* `date` String - The ISO formatted date of the transaction to finish.
Completes the pending transactions corresponding to the date.

View File

@@ -48,7 +48,7 @@ An `Integer` indicating the HTTP response status code.
#### `response.statusMessage`
A `string` representing the HTTP status message.
A `String` representing the HTTP status message.
#### `response.headers`
@@ -66,7 +66,7 @@ formatted as follows:
#### `response.httpVersion`
A `string` indicating the HTTP protocol version number. Typical values are '1.0'
A `String` indicating the HTTP protocol version number. Typical values are '1.0'
or '1.1'. Additionally `httpVersionMajor` and `httpVersionMinor` are two
Integer-valued readable properties that return respectively the HTTP major and
minor version numbers.
@@ -80,25 +80,3 @@ An `Integer` indicating the HTTP protocol major version number.
An `Integer` indicating the HTTP protocol minor version number.
[event-emitter]: https://nodejs.org/api/events.html#events_class_eventemitter
#### `response.rawHeaders`
A `string[]` containing the raw HTTP response headers exactly as they were
received. The keys and values are in the same list. It is not a list of
tuples. So, the even-numbered offsets are key values, and the odd-numbered
offsets are the associated values. Header names are not lowercased, and
duplicates are not merged.
```javascript
// Prints something like:
//
// [ 'user-agent',
// 'this is invalid because there can be only one',
// 'User-Agent',
// 'curl/7.22.0',
// 'Host',
// '127.0.0.1:8000',
// 'ACCEPT',
// '*/*' ]
console.log(request.rawHeaders)
```

View File

@@ -57,7 +57,7 @@ The `ipcMain` module has the following method to listen for events:
### `ipcMain.on(channel, listener)`
* `channel` string
* `channel` String
* `listener` Function
* `event` IpcMainEvent
* `...args` any[]
@@ -67,7 +67,7 @@ Listens to `channel`, when a new message arrives `listener` would be called with
### `ipcMain.once(channel, listener)`
* `channel` string
* `channel` String
* `listener` Function
* `event` IpcMainEvent
* `...args` any[]
@@ -77,7 +77,7 @@ only the next time a message is sent to `channel`, after which it is removed.
### `ipcMain.removeListener(channel, listener)`
* `channel` string
* `channel` String
* `listener` Function
* `...args` any[]
@@ -86,13 +86,13 @@ Removes the specified `listener` from the listener array for the specified
### `ipcMain.removeAllListeners([channel])`
* `channel` string (optional)
* `channel` String (optional)
Removes listeners of the specified `channel`.
### `ipcMain.handle(channel, listener)`
* `channel` string
* `channel` String
* `listener` Function<Promise\<void> | any>
* `event` IpcMainInvokeEvent
* `...args` any[]
@@ -129,7 +129,7 @@ provided to the renderer process. Please refer to
### `ipcMain.handleOnce(channel, listener)`
* `channel` string
* `channel` String
* `listener` Function<Promise\<void> | any>
* `event` IpcMainInvokeEvent
* `...args` any[]
@@ -139,7 +139,7 @@ Handles a single `invoke`able IPC message, then removes the listener. See
### `ipcMain.removeHandler(channel)`
* `channel` string
* `channel` String
Removes any handler for `channel`, if present.

View File

@@ -17,7 +17,7 @@ The `ipcRenderer` module has the following method to listen for events and send
### `ipcRenderer.on(channel, listener)`
* `channel` string
* `channel` String
* `listener` Function
* `event` IpcRendererEvent
* `...args` any[]
@@ -27,7 +27,7 @@ Listens to `channel`, when a new message arrives `listener` would be called with
### `ipcRenderer.once(channel, listener)`
* `channel` string
* `channel` String
* `listener` Function
* `event` IpcRendererEvent
* `...args` any[]
@@ -37,7 +37,7 @@ only the next time a message is sent to `channel`, after which it is removed.
### `ipcRenderer.removeListener(channel, listener)`
* `channel` string
* `channel` String
* `listener` Function
* `...args` any[]
@@ -46,13 +46,13 @@ Removes the specified `listener` from the listener array for the specified
### `ipcRenderer.removeAllListeners(channel)`
* `channel` string
* `channel` String
Removes all listeners, or those of the specified `channel`.
### `ipcRenderer.send(channel, ...args)`
* `channel` string
* `channel` String
* `...args` any[]
Send an asynchronous message to the main process via `channel`, along with
@@ -78,7 +78,7 @@ If you want to receive a single response from the main process, like the result
### `ipcRenderer.invoke(channel, ...args)`
* `channel` string
* `channel` String
* `...args` any[]
Returns `Promise<any>` - Resolves with the response from the main process.
@@ -121,7 +121,7 @@ If you do not need a response to the message, consider using [`ipcRenderer.send`
### `ipcRenderer.sendSync(channel, ...args)`
* `channel` string
* `channel` String
* `...args` any[]
Returns `any` - The value sent back by the [`ipcMain`](ipc-main.md) handler.
@@ -150,7 +150,7 @@ and replies by setting `event.returnValue`.
### `ipcRenderer.postMessage(channel, message, [transfer])`
* `channel` string
* `channel` String
* `message` any
* `transfer` MessagePort[] (optional)
@@ -180,15 +180,15 @@ documentation](https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel).
### `ipcRenderer.sendTo(webContentsId, channel, ...args)`
* `webContentsId` number
* `channel` string
* `webContentsId` Number
* `channel` String
* `...args` any[]
Sends a message to a window with `webContentsId` via `channel`.
### `ipcRenderer.sendToHost(channel, ...args)`
* `channel` string
* `channel` String
* `...args` any[]
Like `ipcRenderer.send` but the event will be sent to the `<webview>` element in

View File

@@ -14,40 +14,40 @@ See [`Menu`](menu.md) for examples.
* `menuItem` MenuItem
* `browserWindow` [BrowserWindow](browser-window.md) | undefined - This will not be defined if no window is open.
* `event` [KeyboardEvent](structures/keyboard-event.md)
* `role` string (optional) - Can be `undo`, `redo`, `cut`, `copy`, `paste`, `pasteAndMatchStyle`, `delete`, `selectAll`, `reload`, `forceReload`, `toggleDevTools`, `resetZoom`, `zoomIn`, `zoomOut`, `toggleSpellChecker`, `togglefullscreen`, `window`, `minimize`, `close`, `help`, `about`, `services`, `hide`, `hideOthers`, `unhide`, `quit`, 'showSubstitutions', 'toggleSmartQuotes', 'toggleSmartDashes', 'toggleTextReplacement', `startSpeaking`, `stopSpeaking`, `zoom`, `front`, `appMenu`, `fileMenu`, `editMenu`, `viewMenu`, `shareMenu`, `recentDocuments`, `toggleTabBar`, `selectNextTab`, `selectPreviousTab`, `mergeAllWindows`, `clearRecentDocuments`, `moveTabToNewWindow` or `windowMenu` - Define the action of the menu item, when specified the
* `role` String (optional) - Can be `undo`, `redo`, `cut`, `copy`, `paste`, `pasteAndMatchStyle`, `delete`, `selectAll`, `reload`, `forceReload`, `toggleDevTools`, `resetZoom`, `zoomIn`, `zoomOut`, `toggleSpellChecker`, `togglefullscreen`, `window`, `minimize`, `close`, `help`, `about`, `services`, `hide`, `hideOthers`, `unhide`, `quit`, `startSpeaking`, `stopSpeaking`, `zoom`, `front`, `appMenu`, `fileMenu`, `editMenu`, `viewMenu`, `shareMenu`, `recentDocuments`, `toggleTabBar`, `selectNextTab`, `selectPreviousTab`, `mergeAllWindows`, `clearRecentDocuments`, `moveTabToNewWindow` or `windowMenu` - Define the action of the menu item, when specified the
`click` property will be ignored. See [roles](#roles).
* `type` string (optional) - Can be `normal`, `separator`, `submenu`, `checkbox` or
* `type` String (optional) - Can be `normal`, `separator`, `submenu`, `checkbox` or
`radio`.
* `label` string (optional)
* `sublabel` string (optional)
* `toolTip` string (optional) _macOS_ - Hover text for this menu item.
* `label` String (optional)
* `sublabel` String (optional)
* `toolTip` String (optional) _macOS_ - Hover text for this menu item.
* `accelerator` [Accelerator](accelerator.md) (optional)
* `icon` ([NativeImage](native-image.md) | string) (optional)
* `enabled` boolean (optional) - If false, the menu item will be greyed out and
* `icon` ([NativeImage](native-image.md) | String) (optional)
* `enabled` Boolean (optional) - If false, the menu item will be greyed out and
unclickable.
* `acceleratorWorksWhenHidden` boolean (optional) _macOS_ - default is `true`, and when `false` will prevent the accelerator from triggering the item if the item is not visible`.
* `visible` boolean (optional) - If false, the menu item will be entirely hidden.
* `checked` boolean (optional) - Should only be specified for `checkbox` or `radio` type
* `acceleratorWorksWhenHidden` Boolean (optional) _macOS_ - default is `true`, and when `false` will prevent the accelerator from triggering the item if the item is not visible`.
* `visible` Boolean (optional) - If false, the menu item will be entirely hidden.
* `checked` Boolean (optional) - Should only be specified for `checkbox` or `radio` type
menu items.
* `registerAccelerator` boolean (optional) _Linux_ _Windows_ - If false, the accelerator won't be registered
* `registerAccelerator` Boolean (optional) _Linux_ _Windows_ - If false, the accelerator won't be registered
with the system, but it will still be displayed. Defaults to true.
* `sharingItem` SharingItem (optional) _macOS_ - The item to share when the `role` is `shareMenu`.
* `submenu` (MenuItemConstructorOptions[] | [Menu](menu.md)) (optional) - Should be specified
for `submenu` type menu items. If `submenu` is specified, the `type: 'submenu'` can be omitted.
If the value is not a [`Menu`](menu.md) then it will be automatically converted to one using
`Menu.buildFromTemplate`.
* `id` string (optional) - Unique within a single menu. If defined then it can be used
* `id` String (optional) - Unique within a single menu. If defined then it can be used
as a reference to this item by the position attribute.
* `before` string[] (optional) - Inserts this item before the item with the specified label. If
* `before` String[] (optional) - Inserts this item before the item with the specified label. If
the referenced item doesn't exist the item will be inserted at the end of the menu. Also implies
that the menu item in question should be placed in the same “group” as the item.
* `after` string[] (optional) - Inserts this item after the item with the specified label. If the
* `after` String[] (optional) - Inserts this item after the item with the specified label. If the
referenced item doesn't exist the item will be inserted at the end of
the menu.
* `beforeGroupContaining` string[] (optional) - Provides a means for a single context menu to declare
* `beforeGroupContaining` String[] (optional) - Provides a means for a single context menu to declare
the placement of their containing group before the containing group of the item
with the specified label.
* `afterGroupContaining` string[] (optional) - Provides a means for a single context menu to declare
* `afterGroupContaining` String[] (optional) - Provides a means for a single context menu to declare
the placement of their containing group after the containing group of the item
with the specified label.
@@ -100,10 +100,6 @@ The following additional roles are available on _macOS_:
* `hide` - Map to the `hide` action.
* `hideOthers` - Map to the `hideOtherApplications` action.
* `unhide` - Map to the `unhideAllApplications` action.
* `showSubstitutions` - Map to the `orderFrontSubstitutionsPanel` action.
* `toggleSmartQuotes` - Map to the `toggleAutomaticQuoteSubstitution` action.
* `toggleSmartDashes` - Map to the `toggleAutomaticDashSubstitution` action.
* `toggleTextReplacement` - Map to the `toggleAutomaticTextReplacement` action.
* `startSpeaking` - Map to the `startSpeaking` action.
* `stopSpeaking` - Map to the `stopSpeaking` action.
* `front` - Map to the `arrangeInFront` action.
@@ -124,7 +120,7 @@ When specifying a `role` on macOS, `label` and `accelerator` are the only
options that will affect the menu item. All other options will be ignored.
Lowercase `role`, e.g. `toggledevtools`, is still supported.
**Note:** The `enabled` and `visibility` properties are not available for top-level menu items in the tray on macOS.
**Nota Bene:** The `enabled` and `visibility` properties are not available for top-level menu items in the tray on macOS.
### Instance Properties
@@ -132,12 +128,12 @@ The following properties are available on instances of `MenuItem`:
#### `menuItem.id`
A `string` indicating the item's unique id, this property can be
A `String` indicating the item's unique id, this property can be
dynamically changed.
#### `menuItem.label`
A `string` indicating the item's visible label.
A `String` indicating the item's visible label.
#### `menuItem.click`
@@ -155,11 +151,11 @@ item's submenu, if present.
#### `menuItem.type`
A `string` indicating the type of the item. Can be `normal`, `separator`, `submenu`, `checkbox` or `radio`.
A `String` indicating the type of the item. Can be `normal`, `separator`, `submenu`, `checkbox` or `radio`.
#### `menuItem.role`
A `string` (optional) indicating the item's role, if set. Can be `undo`, `redo`, `cut`, `copy`, `paste`, `pasteAndMatchStyle`, `delete`, `selectAll`, `reload`, `forceReload`, `toggleDevTools`, `resetZoom`, `zoomIn`, `zoomOut`, `toggleSpellChecker`, `togglefullscreen`, `window`, `minimize`, `close`, `help`, `about`, `services`, `hide`, `hideOthers`, `unhide`, `quit`, `startSpeaking`, `stopSpeaking`, `zoom`, `front`, `appMenu`, `fileMenu`, `editMenu`, `viewMenu`, `shareMenu`, `recentDocuments`, `toggleTabBar`, `selectNextTab`, `selectPreviousTab`, `mergeAllWindows`, `clearRecentDocuments`, `moveTabToNewWindow` or `windowMenu`
A `String` (optional) indicating the item's role, if set. Can be `undo`, `redo`, `cut`, `copy`, `paste`, `pasteAndMatchStyle`, `delete`, `selectAll`, `reload`, `forceReload`, `toggleDevTools`, `resetZoom`, `zoomIn`, `zoomOut`, `toggleSpellChecker`, `togglefullscreen`, `window`, `minimize`, `close`, `help`, `about`, `services`, `hide`, `hideOthers`, `unhide`, `quit`, `startSpeaking`, `stopSpeaking`, `zoom`, `front`, `appMenu`, `fileMenu`, `editMenu`, `viewMenu`, `shareMenu`, `recentDocuments`, `toggleTabBar`, `selectNextTab`, `selectPreviousTab`, `mergeAllWindows`, `clearRecentDocuments`, `moveTabToNewWindow` or `windowMenu`
#### `menuItem.accelerator`
@@ -173,30 +169,30 @@ An `Accelerator | null` indicating the item's [user-assigned accelerator](https:
#### `menuItem.icon`
A `NativeImage | string` (optional) indicating the
A `NativeImage | String` (optional) indicating the
item's icon, if set.
#### `menuItem.sublabel`
A `string` indicating the item's sublabel.
A `String` indicating the item's sublabel.
#### `menuItem.toolTip` _macOS_
A `string` indicating the item's hover text.
A `String` indicating the item's hover text.
#### `menuItem.enabled`
A `boolean` indicating whether the item is enabled, this property can be
A `Boolean` indicating whether the item is enabled, this property can be
dynamically changed.
#### `menuItem.visible`
A `boolean` indicating whether the item is visible, this property can be
A `Boolean` indicating whether the item is visible, this property can be
dynamically changed.
#### `menuItem.checked`
A `boolean` indicating whether the item is checked, this property can be
A `Boolean` indicating whether the item is checked, this property can be
dynamically changed.
A `checkbox` menu item will toggle the `checked` property on and off when
@@ -209,7 +205,7 @@ You can add a `click` function for additional behavior.
#### `menuItem.registerAccelerator`
A `boolean` indicating if the accelerator should be registered with the
A `Boolean` indicating if the accelerator should be registered with the
system or just displayed.
This property can be dynamically changed.
@@ -222,7 +218,7 @@ This property can be dynamically changed.
#### `menuItem.commandId`
A `number` indicating an item's sequential unique id.
A `Number` indicating an item's sequential unique id.
#### `menuItem.menu`

View File

@@ -45,7 +45,7 @@ be dynamically modified.
#### `Menu.sendActionToFirstResponder(action)` _macOS_
* `action` string
* `action` String
Sends the `action` to the first responder of application. This is used for
emulating default macOS menu behaviors. Usually you would use the
@@ -73,11 +73,11 @@ The `menu` object has the following instance methods:
* `options` Object (optional)
* `window` [BrowserWindow](browser-window.md) (optional) - Default is the focused window.
* `x` number (optional) - Default is the current mouse cursor position.
* `x` Number (optional) - Default is the current mouse cursor position.
Must be declared if `y` is declared.
* `y` number (optional) - Default is the current mouse cursor position.
* `y` Number (optional) - Default is the current mouse cursor position.
Must be declared if `x` is declared.
* `positioningItem` number (optional) _macOS_ - The index of the menu item to
* `positioningItem` Number (optional) _macOS_ - The index of the menu item to
be positioned under the mouse cursor at the specified coordinates. Default
is -1.
* `callback` Function (optional) - Called when menu is closed.
@@ -98,7 +98,7 @@ Appends the `menuItem` to the menu.
#### `menu.getMenuItemById(id)`
* `id` string
* `id` String
Returns `MenuItem | null` the item with the specified `id`

View File

@@ -8,7 +8,7 @@ In Electron, for the APIs that take images, you can pass either file paths or
`NativeImage` instances. An empty image will be used when `null` is passed.
For example, when creating a tray or setting a window's icon, you can pass an
image file path as a `string`:
image file path as a `String`:
```javascript
const { BrowserWindow, Tray } = require('electron')
@@ -121,14 +121,14 @@ Creates an empty `NativeImage` instance.
### `nativeImage.createThumbnailFromPath(path, maxSize)` _macOS_ _Windows_
* `path` string - path to a file that we intend to construct a thumbnail out of.
* `path` String - path to a file that we intend to construct a thumbnail out of.
* `maxSize` [Size](structures/size.md) - the maximum width and height (positive numbers) the thumbnail returned can be. The Windows implementation will ignore `maxSize.height` and scale the height according to `maxSize.width`.
Returns `Promise<NativeImage>` - fulfilled with the file's thumbnail preview image, which is a [NativeImage](native-image.md).
### `nativeImage.createFromPath(path)`
* `path` string
* `path` String
Returns `NativeImage`
@@ -170,7 +170,7 @@ Creates a new `NativeImage` instance from `buffer`. Tries to decode as PNG or JP
### `nativeImage.createFromDataURL(dataURL)`
* `dataURL` string
* `dataURL` String
Returns `NativeImage`
@@ -178,8 +178,8 @@ Creates a new `NativeImage` instance from `dataURL`.
### `nativeImage.createFromNamedImage(imageName[, hslShift])` _macOS_
* `imageName` string
* `hslShift` number[] (optional)
* `imageName` String
* `hslShift` Number[] (optional)
Returns `NativeImage`
@@ -248,7 +248,7 @@ data.
* `options` Object (optional)
* `scaleFactor` Double (optional) - Defaults to 1.0.
Returns `string` - The data URL of the image.
Returns `String` - The data URL of the image.
#### `image.getBitmap([options])`
@@ -272,7 +272,7 @@ image instead of a copy, so you _must_ ensure that the associated
#### `image.isEmpty()`
Returns `boolean` - Whether the image is empty.
Returns `Boolean` - Whether the image is empty.
#### `image.getSize([scaleFactor])`
@@ -284,13 +284,13 @@ If `scaleFactor` is passed, this will return the size corresponding to the image
#### `image.setTemplateImage(option)`
* `option` boolean
* `option` Boolean
Marks the image as a template image.
#### `image.isTemplateImage()`
Returns `boolean` - Whether the image is a template image.
Returns `Boolean` - Whether the image is a template image.
#### `image.crop(rect)`
@@ -303,7 +303,7 @@ Returns `NativeImage` - The cropped image.
* `options` Object
* `width` Integer (optional) - Defaults to the image's width.
* `height` Integer (optional) - Defaults to the image's height.
* `quality` string (optional) - The desired quality of the resize image.
* `quality` String (optional) - The desired quality of the resize image.
Possible values are `good`, `better`, or `best`. The default is `best`.
These values express a desired quality/speed tradeoff. They are translated
into an algorithm-specific method that depends on the capabilities
@@ -336,7 +336,7 @@ Returns `Float[]` - An array of all scale factors corresponding to representatio
* `height` Integer (optional) - Defaults to 0. Required if a bitmap buffer
is specified as `buffer`.
* `buffer` Buffer (optional) - The buffer containing the raw image data.
* `dataURL` string (optional) - The data URL containing either a base 64
* `dataURL` String (optional) - The data URL containing either a base 64
encoded PNG or JPEG image.
Add an image representation for a specific scale factor. This can be used
@@ -349,6 +349,6 @@ can be called on empty images.
#### `nativeImage.isMacTemplateImage` _macOS_
A `boolean` property that determines whether the image is considered a [template image](https://developer.apple.com/documentation/appkit/nsimage/1520017-template).
A `Boolean` property that determines whether the image is considered a [template image](https://developer.apple.com/documentation/appkit/nsimage/1520017-template).
Please note that this property only has an effect on macOS.

View File

@@ -21,13 +21,13 @@ The `nativeTheme` module has the following properties:
### `nativeTheme.shouldUseDarkColors` _Readonly_
A `boolean` for if the OS / Chromium currently has a dark mode enabled or is
A `Boolean` for if the OS / Chromium currently has a dark mode enabled or is
being instructed to show a dark-style UI. If you want to modify this value you
should use `themeSource` below.
### `nativeTheme.themeSource`
A `string` property that can be `system`, `light` or `dark`. It is used to override and supersede
A `String` property that can be `system`, `light` or `dark`. It is used to override and supersede
the value that Chromium has chosen to use internally.
Setting this property to `system` will remove the override and
@@ -60,15 +60,10 @@ Your application should then always use `shouldUseDarkColors` to determine what
### `nativeTheme.shouldUseHighContrastColors` _macOS_ _Windows_ _Readonly_
A `boolean` for if the OS / Chromium currently has high-contrast mode enabled
A `Boolean` for if the OS / Chromium currently has high-contrast mode enabled
or is being instructed to show a high-contrast UI.
### `nativeTheme.shouldUseInvertedColorScheme` _macOS_ _Windows_ _Readonly_
A `boolean` for if the OS / Chromium currently has an inverted color scheme
A `Boolean` for if the OS / Chromium currently has an inverted color scheme
or is being instructed to use an inverted color scheme.
### `nativeTheme.inForcedColorsMode` _Windows_ _Readonly_
A `boolean` indicating whether Chromium is in forced colors mode, controlled by system accessibility settings.
Currently, Windows high contrast is the only system setting that triggers forced colors mode.

View File

@@ -24,14 +24,14 @@ of the `app` module gets emitted.
### `netLog.startLogging(path[, options])`
* `path` string - File path to record network logs.
* `path` String - File path to record network logs.
* `options` Object (optional)
* `captureMode` string (optional) - What kinds of data should be captured. By
* `captureMode` String (optional) - What kinds of data should be captured. By
default, only metadata about requests will be captured. Setting this to
`includeSensitive` will include cookies and authentication data. Setting
it to `everything` will include all bytes transferred on sockets. Can be
`default`, `includeSensitive` or `everything`.
* `maxFileSize` number (optional) - When the log grows beyond this size,
* `maxFileSize` Number (optional) - When the log grows beyond this size,
logging will automatically stop. Defaults to unlimited.
Returns `Promise<void>` - resolves when the net log has begun recording.
@@ -48,4 +48,4 @@ Stops recording network events. If not called, net logging will automatically en
### `netLog.currentlyLogging` _Readonly_
A `boolean` property that indicates whether network logs are currently being recorded.
A `Boolean` property that indicates whether network logs are currently being recorded.

View File

@@ -54,7 +54,7 @@ The `net` module has the following methods:
### `net.request(options)`
* `options` (ClientRequestConstructorOptions | string) - The `ClientRequest` constructor options.
* `options` (ClientRequestConstructorOptions | String) - The `ClientRequest` constructor options.
Returns [`ClientRequest`](./client-request.md)
@@ -65,7 +65,7 @@ requests according to the specified protocol scheme in the `options` object.
### `net.isOnline()`
Returns `boolean` - Whether there is currently internet connection.
Returns `Boolean` - Whether there is currently internet connection.
A return value of `false` is a pretty strong indicator that the user
won't be able to connect to remote sites. However, a return value of
@@ -77,7 +77,7 @@ will be successful.
### `net.online` _Readonly_
A `boolean` property. Whether there is currently internet connection.
A `Boolean` property. Whether there is currently internet connection.
A return value of `false` is a pretty strong indicator that the user
won't be able to connect to remote sites. However, a return value of

View File

@@ -24,24 +24,24 @@ The `Notification` class has the following static methods:
#### `Notification.isSupported()`
Returns `boolean` - Whether or not desktop notifications are supported on the current system
Returns `Boolean` - Whether or not desktop notifications are supported on the current system
### `new Notification([options])`
* `options` Object (optional)
* `title` string (optional) - A title for the notification, which will be shown at the top of the notification window when it is shown.
* `subtitle` string (optional) _macOS_ - A subtitle for the notification, which will be displayed below the title.
* `body` string (optional) - The body text of the notification, which will be displayed below the title or subtitle.
* `silent` boolean (optional) - Whether or not to emit an OS notification noise when showing the notification.
* `icon` (string | [NativeImage](native-image.md)) (optional) - An icon to use in the notification.
* `hasReply` boolean (optional) _macOS_ - Whether or not to add an inline reply option to the notification.
* `timeoutType` string (optional) _Linux_ _Windows_ - The timeout duration of the notification. Can be 'default' or 'never'.
* `replyPlaceholder` string (optional) _macOS_ - The placeholder to write in the inline reply input field.
* `sound` string (optional) _macOS_ - The name of the sound file to play when the notification is shown.
* `urgency` string (optional) _Linux_ - The urgency level of the notification. Can be 'normal', 'critical', or 'low'.
* `title` String (optional) - A title for the notification, which will be shown at the top of the notification window when it is shown.
* `subtitle` String (optional) _macOS_ - A subtitle for the notification, which will be displayed below the title.
* `body` String (optional) - The body text of the notification, which will be displayed below the title or subtitle.
* `silent` Boolean (optional) - Whether or not to emit an OS notification noise when showing the notification.
* `icon` (String | [NativeImage](native-image.md)) (optional) - An icon to use in the notification.
* `hasReply` Boolean (optional) _macOS_ - Whether or not to add an inline reply option to the notification.
* `timeoutType` String (optional) _Linux_ _Windows_ - The timeout duration of the notification. Can be 'default' or 'never'.
* `replyPlaceholder` String (optional) _macOS_ - The placeholder to write in the inline reply input field.
* `sound` String (optional) _macOS_ - The name of the sound file to play when the notification is shown.
* `urgency` String (optional) _Linux_ - The urgency level of the notification. Can be 'normal', 'critical', or 'low'.
* `actions` [NotificationAction[]](structures/notification-action.md) (optional) _macOS_ - Actions to add to the notification. Please read the available actions and limitations in the `NotificationAction` documentation.
* `closeButtonText` string (optional) _macOS_ - A custom title for the close button of an alert. An empty string will cause the default localized text to be used.
* `toastXml` string (optional) _Windows_ - A custom description of the Notification on Windows superseding all properties above. Provides full customization of design and behavior of the notification.
* `closeButtonText` String (optional) _macOS_ - A custom title for the close button of an alert. An empty string will cause the default localized text to be used.
* `toastXml` String (optional) _Windows_ - A custom description of the Notification on Windows superseding all properties above. Provides full customization of design and behavior of the notification.
### Instance Events
@@ -84,7 +84,7 @@ is closed.
Returns:
* `event` Event
* `reply` string - The string the user entered into the inline reply field.
* `reply` String - The string the user entered into the inline reply field.
Emitted when the user clicks the "Reply" button on a notification with `hasReply: true`.
@@ -93,14 +93,14 @@ Emitted when the user clicks the "Reply" button on a notification with `hasReply
Returns:
* `event` Event
* `index` number - The index of the action that was activated.
* `index` Number - The index of the action that was activated.
#### Event: 'failed' _Windows_
Returns:
* `event` Event
* `error` string - The error encountered during execution of the `show()` method.
* `error` String - The error encountered during execution of the `show()` method.
Emitted when an error is encountered while creating and showing the native notification.
@@ -126,45 +126,45 @@ Dismisses the notification.
#### `notification.title`
A `string` property representing the title of the notification.
A `String` property representing the title of the notification.
#### `notification.subtitle`
A `string` property representing the subtitle of the notification.
A `String` property representing the subtitle of the notification.
#### `notification.body`
A `string` property representing the body of the notification.
A `String` property representing the body of the notification.
#### `notification.replyPlaceholder`
A `string` property representing the reply placeholder of the notification.
A `String` property representing the reply placeholder of the notification.
#### `notification.sound`
A `string` property representing the sound of the notification.
A `String` property representing the sound of the notification.
#### `notification.closeButtonText`
A `string` property representing the close button text of the notification.
A `String` property representing the close button text of the notification.
#### `notification.silent`
A `boolean` property representing whether the notification is silent.
A `Boolean` property representing whether the notification is silent.
#### `notification.hasReply`
A `boolean` property representing whether the notification has a reply action.
A `Boolean` property representing whether the notification has a reply action.
#### `notification.urgency` _Linux_
A `string` property representing the urgency level of the notification. Can be 'normal', 'critical', or 'low'.
A `String` property representing the urgency level of the notification. Can be 'normal', 'critical', or 'low'.
Default is 'low' - see [NotifyUrgency](https://developer.gnome.org/notification-spec/#urgency-levels) for more information.
#### `notification.timeoutType` _Linux_ _Windows_
A `string` property representing the type of timeout duration for the notification. Can be 'default' or 'never'.
A `String` property representing the type of timeout duration for the notification. Can be 'default' or 'never'.
If `timeoutType` is set to 'never', the notification never expires. It stays open until closed by the calling API or the user.
@@ -174,7 +174,7 @@ A [`NotificationAction[]`](structures/notification-action.md) property represent
#### `notification.toastXml` _Windows_
A `string` property representing the custom Toast XML of the notification.
A `String` property representing the custom Toast XML of the notification.
### Playing Sounds

View File

@@ -55,7 +55,7 @@ The `powerMonitor` module has the following methods:
* `idleThreshold` Integer
Returns `string` - The system's current state. Can be `active`, `idle`, `locked` or `unknown`.
Returns `String` - The system's current state. Can be `active`, `idle`, `locked` or `unknown`.
Calculate the system idle state. `idleThreshold` is the amount of time (in seconds)
before considered idle. `locked` is available on supported systems only.
@@ -68,7 +68,7 @@ Calculate system idle time in seconds.
### `powerMonitor.isOnBatteryPower()`
Returns `boolean` - Whether the system is on battery power.
Returns `Boolean` - Whether the system is on battery power.
To monitor for changes in this property, use the `on-battery` and `on-ac`
events.
@@ -77,6 +77,6 @@ events.
### `powerMonitor.onBatteryPower`
A `boolean` property. True if the system is on battery power.
A `Boolean` property. True if the system is on battery power.
See [`powerMonitor.isOnBatteryPower()`](#powermonitorisonbatterypower).

View File

@@ -21,7 +21,7 @@ The `powerSaveBlocker` module has the following methods:
### `powerSaveBlocker.start(type)`
* `type` string - Power save blocker type.
* `type` String - Power save blocker type.
* `prevent-app-suspension` - Prevent the application from being suspended.
Keeps system active but allows screen to be turned off. Example use cases:
downloading a file or playing audio.
@@ -53,4 +53,4 @@ Stops the specified power save blocker.
* `id` Integer - The power save blocker id returned by `powerSaveBlocker.start`.
Returns `boolean` - Whether the corresponding `powerSaveBlocker` has started.
Returns `Boolean` - Whether the corresponding `powerSaveBlocker` has started.

View File

@@ -49,66 +49,66 @@ beginning to load the web page or the main script.
### `process.defaultApp` _Readonly_
A `boolean`. When app is started by being passed as parameter to the default app, this
A `Boolean`. When app is started by being passed as parameter to the default app, this
property is `true` in the main process, otherwise it is `undefined`.
### `process.isMainFrame` _Readonly_
A `boolean`, `true` when the current renderer context is the "main" renderer
A `Boolean`, `true` when the current renderer context is the "main" renderer
frame. If you want the ID of the current frame you should use `webFrame.routingId`.
### `process.mas` _Readonly_
A `boolean`. For Mac App Store build, this property is `true`, for other builds it is
A `Boolean`. For Mac App Store build, this property is `true`, for other builds it is
`undefined`.
### `process.noAsar`
A `boolean` that controls ASAR support inside your application. Setting this to `true`
A `Boolean` that controls ASAR support inside your application. Setting this to `true`
will disable the support for `asar` archives in Node's built-in modules.
### `process.noDeprecation`
A `boolean` that controls whether or not deprecation warnings are printed to `stderr`.
A `Boolean` that controls whether or not deprecation warnings are printed to `stderr`.
Setting this to `true` will silence deprecation warnings. This property is used
instead of the `--no-deprecation` command line flag.
### `process.resourcesPath` _Readonly_
A `string` representing the path to the resources directory.
A `String` representing the path to the resources directory.
### `process.sandboxed` _Readonly_
A `boolean`. When the renderer process is sandboxed, this property is `true`,
A `Boolean`. When the renderer process is sandboxed, this property is `true`,
otherwise it is `undefined`.
### `process.contextIsolated` _Readonly_
A `boolean` that indicates whether the current renderer context has `contextIsolation` enabled.
A `Boolean` that indicates whether the current renderer context has `contextIsolation` enabled.
It is `undefined` in the main process.
### `process.throwDeprecation`
A `boolean` that controls whether or not deprecation warnings will be thrown as
A `Boolean` that controls whether or not deprecation warnings will be thrown as
exceptions. Setting this to `true` will throw errors for deprecations. This
property is used instead of the `--throw-deprecation` command line flag.
### `process.traceDeprecation`
A `boolean` that controls whether or not deprecations printed to `stderr` include
A `Boolean` that controls whether or not deprecations printed to `stderr` include
their stack trace. Setting this to `true` will print stack traces for deprecations.
This property is instead of the `--trace-deprecation` command line flag.
### `process.traceProcessWarnings`
A `boolean` that controls whether or not process warnings printed to `stderr` include
A `Boolean` that controls whether or not process warnings printed to `stderr` include
their stack trace. Setting this to `true` will print stack traces for process warnings
(including deprecations). This property is instead of the `--trace-warnings` command
line flag.
### `process.type` _Readonly_
A `string` representing the current process's type, can be:
A `String` representing the current process's type, can be:
* `browser` - The main process
* `renderer` - A renderer process
@@ -116,20 +116,20 @@ A `string` representing the current process's type, can be:
### `process.versions.chrome` _Readonly_
A `string` representing Chrome's version string.
A `String` representing Chrome's version string.
### `process.versions.electron` _Readonly_
A `string` representing Electron's version string.
A `String` representing Electron's version string.
### `process.windowsStore` _Readonly_
A `boolean`. If the app is running as a Windows Store app (appx), this property is `true`,
A `Boolean`. If the app is running as a Windows Store app (appx), this property is `true`,
for otherwise it is `undefined`.
### `process.contextId` _Readonly_
A `string` (optional) representing a globally unique ID of the current JavaScript context.
A `String` (optional) representing a globally unique ID of the current JavaScript context.
Each frame has its own JavaScript context. When contextIsolation is enabled, the isolated
world also has a separate JavaScript context.
This property is only available in the renderer process.
@@ -144,7 +144,7 @@ Causes the main thread of the current process crash.
### `process.getCreationTime()`
Returns `number | null` - The number of milliseconds since epoch, or `null` if the information is unavailable
Returns `Number | null` - The number of milliseconds since epoch, or `null` if the information is unavailable
Indicates the creation time of the application.
The time is represented as number of milliseconds since epoch. It returns null if it is unable to get the process creation time.
@@ -169,7 +169,7 @@ Returns `Object`:
* `heapSizeLimit` Integer
* `mallocedMemory` Integer
* `peakMallocedMemory` Integer
* `doesZapGarbage` boolean
* `doesZapGarbage` Boolean
Returns an object with V8 heap statistics. Note that all statistics are reported in Kilobytes.
@@ -178,6 +178,7 @@ Returns an object with V8 heap statistics. Note that all statistics are reported
Returns `Object`:
* `allocated` Integer - Size of all allocated objects in Kilobytes.
* `marked` Integer - Size of all marked objects in Kilobytes.
* `total` Integer - Total allocated space in Kilobytes.
Returns an object with Blink memory information.
@@ -216,7 +217,7 @@ that all statistics are reported in Kilobytes.
### `process.getSystemVersion()`
Returns `string` - The version of the host operating system.
Returns `String` - The version of the host operating system.
Example:
@@ -232,9 +233,9 @@ console.log(version)
### `process.takeHeapSnapshot(filePath)`
* `filePath` string - Path to the output file.
* `filePath` String - Path to the output file.
Returns `boolean` - Indicates whether the snapshot has been created successfully.
Returns `Boolean` - Indicates whether the snapshot has been created successfully.
Takes a V8 heap snapshot and saves it to `filePath`.

View File

@@ -110,13 +110,13 @@ expect streaming responses.
### `protocol.registerFileProtocol(scheme, handler)`
* `scheme` string
* `scheme` String
* `handler` Function
* `request` [ProtocolRequest](structures/protocol-request.md)
* `callback` Function
* `response` (string | [ProtocolResponse](structures/protocol-response.md))
* `response` (String | [ProtocolResponse](structures/protocol-response.md))
Returns `boolean` - Whether the protocol was successfully registered
Returns `Boolean` - Whether the protocol was successfully registered
Registers a protocol of `scheme` that will send a file as the response. The
`handler` will be called with `request` and `callback` where `request` is
@@ -131,13 +131,13 @@ from protocols that follow the "generic URI syntax" like `file:`.
### `protocol.registerBufferProtocol(scheme, handler)`
* `scheme` string
* `scheme` String
* `handler` Function
* `request` [ProtocolRequest](structures/protocol-request.md)
* `callback` Function
* `response` (Buffer | [ProtocolResponse](structures/protocol-response.md))
Returns `boolean` - Whether the protocol was successfully registered
Returns `Boolean` - Whether the protocol was successfully registered
Registers a protocol of `scheme` that will send a `Buffer` as a response.
@@ -155,29 +155,29 @@ protocol.registerBufferProtocol('atom', (request, callback) => {
### `protocol.registerStringProtocol(scheme, handler)`
* `scheme` string
* `scheme` String
* `handler` Function
* `request` [ProtocolRequest](structures/protocol-request.md)
* `callback` Function
* `response` (string | [ProtocolResponse](structures/protocol-response.md))
* `response` (String | [ProtocolResponse](structures/protocol-response.md))
Returns `boolean` - Whether the protocol was successfully registered
Returns `Boolean` - Whether the protocol was successfully registered
Registers a protocol of `scheme` that will send a `string` as a response.
Registers a protocol of `scheme` that will send a `String` as a response.
The usage is the same with `registerFileProtocol`, except that the `callback`
should be called with either a `string` or an object that has the `data`
should be called with either a `String` or an object that has the `data`
property.
### `protocol.registerHttpProtocol(scheme, handler)`
* `scheme` string
* `scheme` String
* `handler` Function
* `request` [ProtocolRequest](structures/protocol-request.md)
* `callback` Function
* `response` ProtocolResponse
Returns `boolean` - Whether the protocol was successfully registered
Returns `Boolean` - Whether the protocol was successfully registered
Registers a protocol of `scheme` that will send an HTTP request as a response.
@@ -186,13 +186,13 @@ should be called with an object that has the `url` property.
### `protocol.registerStreamProtocol(scheme, handler)`
* `scheme` string
* `scheme` String
* `handler` Function
* `request` [ProtocolRequest](structures/protocol-request.md)
* `callback` Function
* `response` (ReadableStream | [ProtocolResponse](structures/protocol-response.md))
Returns `boolean` - Whether the protocol was successfully registered
Returns `Boolean` - Whether the protocol was successfully registered
Registers a protocol of `scheme` that will send a stream as a response.
@@ -235,95 +235,95 @@ protocol.registerStreamProtocol('atom', (request, callback) => {
### `protocol.unregisterProtocol(scheme)`
* `scheme` string
* `scheme` String
Returns `boolean` - Whether the protocol was successfully unregistered
Returns `Boolean` - Whether the protocol was successfully unregistered
Unregisters the custom protocol of `scheme`.
### `protocol.isProtocolRegistered(scheme)`
* `scheme` string
* `scheme` String
Returns `boolean` - Whether `scheme` is already registered.
Returns `Boolean` - Whether `scheme` is already registered.
### `protocol.interceptFileProtocol(scheme, handler)`
* `scheme` string
* `scheme` String
* `handler` Function
* `request` [ProtocolRequest](structures/protocol-request.md)
* `callback` Function
* `response` (string | [ProtocolResponse](structures/protocol-response.md))
* `response` (String | [ProtocolResponse](structures/protocol-response.md))
Returns `boolean` - Whether the protocol was successfully intercepted
Returns `Boolean` - Whether the protocol was successfully intercepted
Intercepts `scheme` protocol and uses `handler` as the protocol's new handler
which sends a file as a response.
### `protocol.interceptStringProtocol(scheme, handler)`
* `scheme` string
* `scheme` String
* `handler` Function
* `request` [ProtocolRequest](structures/protocol-request.md)
* `callback` Function
* `response` (string | [ProtocolResponse](structures/protocol-response.md))
* `response` (String | [ProtocolResponse](structures/protocol-response.md))
Returns `boolean` - Whether the protocol was successfully intercepted
Returns `Boolean` - Whether the protocol was successfully intercepted
Intercepts `scheme` protocol and uses `handler` as the protocol's new handler
which sends a `string` as a response.
which sends a `String` as a response.
### `protocol.interceptBufferProtocol(scheme, handler)`
* `scheme` string
* `scheme` String
* `handler` Function
* `request` [ProtocolRequest](structures/protocol-request.md)
* `callback` Function
* `response` (Buffer | [ProtocolResponse](structures/protocol-response.md))
Returns `boolean` - Whether the protocol was successfully intercepted
Returns `Boolean` - Whether the protocol was successfully intercepted
Intercepts `scheme` protocol and uses `handler` as the protocol's new handler
which sends a `Buffer` as a response.
### `protocol.interceptHttpProtocol(scheme, handler)`
* `scheme` string
* `scheme` String
* `handler` Function
* `request` [ProtocolRequest](structures/protocol-request.md)
* `callback` Function
* `response` [ProtocolResponse](structures/protocol-response.md)
Returns `boolean` - Whether the protocol was successfully intercepted
Returns `Boolean` - Whether the protocol was successfully intercepted
Intercepts `scheme` protocol and uses `handler` as the protocol's new handler
which sends a new HTTP request as a response.
### `protocol.interceptStreamProtocol(scheme, handler)`
* `scheme` string
* `scheme` String
* `handler` Function
* `request` [ProtocolRequest](structures/protocol-request.md)
* `callback` Function
* `response` (ReadableStream | [ProtocolResponse](structures/protocol-response.md))
Returns `boolean` - Whether the protocol was successfully intercepted
Returns `Boolean` - Whether the protocol was successfully intercepted
Same as `protocol.registerStreamProtocol`, except that it replaces an existing
protocol handler.
### `protocol.uninterceptProtocol(scheme)`
* `scheme` string
* `scheme` String
Returns `boolean` - Whether the protocol was successfully unintercepted
Returns `Boolean` - Whether the protocol was successfully unintercepted
Remove the interceptor installed for `scheme` and restore its original handler.
### `protocol.isProtocolIntercepted(scheme)`
* `scheme` string
* `scheme` String
Returns `boolean` - Whether `scheme` is already intercepted.
Returns `Boolean` - Whether `scheme` is already intercepted.
[file-system-api]: https://developer.mozilla.org/en-US/docs/Web/API/LocalFileSystem

View File

@@ -16,7 +16,7 @@ The `safeStorage` module has the following methods:
### `safeStorage.isEncryptionAvailable()`
Returns `boolean` - Whether encryption is available.
Returns `Boolean` - Whether encryption is available.
On Linux, returns true if the secret key is
available. On MacOS, returns true if Keychain is available.
@@ -24,7 +24,7 @@ On Windows, returns true with no other preconditions.
### `safeStorage.encryptString(plainText)`
* `plainText` string
* `plainText` String
Returns `Buffer` - An array of bytes representing the encrypted string.
@@ -34,7 +34,7 @@ This function will throw an error if encryption fails.
* `encrypted` Buffer
Returns `string` - the decrypted string. Decrypts the encrypted buffer
Returns `String` - the decrypted string. Decrypts the encrypted buffer
obtained with `safeStorage.encryptString` back into a string.
This function will throw an error if decryption fails.

View File

@@ -76,7 +76,7 @@ Returns:
* `event` Event
* `display` [Display](structures/display.md)
* `changedMetrics` string[]
* `changedMetrics` String[]
Emitted when one or more metrics change in a `display`. The `changedMetrics` is
an array of strings that describe the changes. Possible changes are `bounds`,

View File

@@ -37,12 +37,12 @@ Returns:
* `event` Event
* `messageDetails` Object - Information about the console message
* `message` string - The actual console message
* `versionId` number - The version ID of the service worker that sent the log message
* `source` string - The type of source for this message. Can be `javascript`, `xml`, `network`, `console-api`, `storage`, `rendering`, `security`, `deprecation`, `worker`, `violation`, `intervention`, `recommendation` or `other`.
* `level` number - The log level, from 0 to 3. In order it matches `verbose`, `info`, `warning` and `error`.
* `sourceUrl` string - The URL the message came from
* `lineNumber` number - The line number of the source that triggered this console message
* `message` String - The actual console message
* `versionId` Number - The version ID of the service worker that sent the log message
* `source` String - The type of source for this message. Can be `javascript`, `xml`, `network`, `console-api`, `storage`, `app-cache`, `rendering`, `security`, `deprecation`, `worker`, `violation`, `intervention`, `recommendation` or `other`.
* `level` Number - The log level, from 0 to 3. In order it matches `verbose`, `info`, `warning` and `error`.
* `sourceUrl` String - The URL the message came from
* `lineNumber` Number - The line number of the source that triggered this console message
Emitted when a service worker logs something to the console.
@@ -52,7 +52,7 @@ Returns:
* `event` Event
* `details` Object - Information about the registered service worker
* `scope` string - The base URL that a service worker is registered for
* `scope` String - The base URL that a service worker is registered for
Emitted when a service worker has been registered. Can occur after a call to [`navigator.serviceWorker.register('/sw.js')`](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register) successfully resolves or when a Chrome extension is loaded.
@@ -62,11 +62,11 @@ The following methods are available on instances of `ServiceWorkers`:
#### `serviceWorkers.getAllRunning()`
Returns `Record<number, ServiceWorkerInfo>` - A [ServiceWorkerInfo](structures/service-worker-info.md) object where the keys are the service worker version ID and the values are the information about that service worker.
Returns `Record<Number, ServiceWorkerInfo>` - A [ServiceWorkerInfo](structures/service-worker-info.md) object where the keys are the service worker version ID and the values are the information about that service worker.
#### `serviceWorkers.getFromVersionID(versionId)`
* `versionId` number
* `versionId` Number
Returns [`ServiceWorkerInfo`](structures/service-worker-info.md) - Information about this service worker

View File

@@ -25,9 +25,9 @@ The `session` module has the following methods:
### `session.fromPartition(partition[, options])`
* `partition` string
* `partition` String
* `options` Object (optional)
* `cache` boolean - Whether to enable cache.
* `cache` Boolean - Whether to enable cache.
Returns `Session` - A session instance from `partition` string. When there is an existing
`Session` with the same `partition`, it will be returned; otherwise a new
@@ -132,9 +132,9 @@ initialized to support the start of the extension's background page.
Returns:
* `event` Event
* `preconnectUrl` string - The URL being requested for preconnection by the
* `preconnectUrl` String - The URL being requested for preconnection by the
renderer.
* `allowCredentials` boolean - True if the renderer is requesting that the
* `allowCredentials` Boolean - True if the renderer is requesting that the
connection include credentials (see the
[spec](https://w3c.github.io/resource-hints/#preconnect) for more details.)
@@ -146,7 +146,7 @@ a [resource hint](https://w3c.github.io/resource-hints/).
Returns:
* `event` Event
* `languageCode` string - The language code of the dictionary file
* `languageCode` String - The language code of the dictionary file
Emitted when a hunspell dictionary file has been successfully initialized. This
occurs after the file has been downloaded.
@@ -156,7 +156,7 @@ occurs after the file has been downloaded.
Returns:
* `event` Event
* `languageCode` string - The language code of the dictionary file
* `languageCode` String - The language code of the dictionary file
Emitted when a hunspell dictionary file starts downloading
@@ -165,7 +165,7 @@ Emitted when a hunspell dictionary file starts downloading
Returns:
* `event` Event
* `languageCode` string - The language code of the dictionary file
* `languageCode` String - The language code of the dictionary file
Emitted when a hunspell dictionary file has been successfully downloaded
@@ -174,7 +174,7 @@ Emitted when a hunspell dictionary file has been successfully downloaded
Returns:
* `event` Event
* `languageCode` string - The language code of the dictionary file
* `languageCode` String - The language code of the dictionary file
Emitted when a hunspell dictionary file download fails. For details
on the failure you should collect a netlog and inspect the download
@@ -189,7 +189,7 @@ Returns:
* `deviceList` [HIDDevice[]](structures/hid-device.md)
* `frame` [WebFrameMain](web-frame-main.md)
* `callback` Function
* `deviceId` string | null (optional)
* `deviceId` String | null (optional)
Emitted when a HID device needs to be selected when a call to
`navigator.hid.requestDevice` is made. `callback` should be called with
@@ -278,7 +278,7 @@ Returns:
* `portList` [SerialPort[]](structures/serial-port.md)
* `webContents` [WebContents](web-contents.md)
* `callback` Function
* `portId` string
* `portId` String
Emitted when a serial port needs to be selected when a call to
`navigator.serial.requestPort` is made. `callback` should be called with
@@ -377,13 +377,13 @@ Clears the sessions HTTP cache.
#### `ses.clearStorageData([options])`
* `options` Object (optional)
* `origin` string (optional) - Should follow `window.location.origin`s representation
* `origin` String (optional) - Should follow `window.location.origin`s representation
`scheme://host:port`.
* `storages` string[] (optional) - The types of storages to clear, can contain:
* `storages` String[] (optional) - The types of storages to clear, can contain:
`appcache`, `cookies`, `filesystem`, `indexdb`, `localstorage`,
`shadercache`, `websql`, `serviceworkers`, `cachestorage`. If not
specified, clear all storage types.
* `quotas` string[] (optional) - The types of quotas to clear, can contain:
* `quotas` String[] (optional) - The types of quotas to clear, can contain:
`temporary`, `persistent`, `syncable`. If not specified, clear all quotas.
Returns `Promise<void>` - resolves when the storage data has been cleared.
@@ -395,7 +395,7 @@ Writes any unwritten DOMStorage data to disk.
#### `ses.setProxy(config)`
* `config` Object
* `mode` string (optional) - The proxy mode. Should be one of `direct`,
* `mode` String (optional) - The proxy mode. Should be one of `direct`,
`auto_detect`, `pac_script`, `fixed_servers` or `system`. If it's
unspecified, it will be automatically determined based on other specified
options.
@@ -416,9 +416,9 @@ Writes any unwritten DOMStorage data to disk.
Note that the system mode is different from setting no proxy configuration.
In the latter case, Electron falls back to the system settings
only if no command-line options influence the proxy configuration.
* `pacScript` string (optional) - The URL associated with the PAC file.
* `proxyRules` string (optional) - Rules indicating which proxies to use.
* `proxyBypassRules` string (optional) - Rules indicating which URLs should
* `pacScript` String (optional) - The URL associated with the PAC file.
* `proxyRules` String (optional) - Rules indicating which proxies to use.
* `proxyBypassRules` String (optional) - Rules indicating which URLs should
bypass the proxy settings.
Returns `Promise<void>` - Resolves when the proxy setting process is complete.
@@ -497,7 +497,7 @@ The `proxyBypassRules` is a comma separated list of rules described below:
* `url` URL
Returns `Promise<string>` - Resolves with the proxy information for `url`.
Returns `Promise<String>` - Resolves with the proxy information for `url`.
#### `ses.forceReloadProxyConfig()`
@@ -505,7 +505,7 @@ Returns `Promise<void>` - Resolves when the all internal states of proxy service
#### `ses.setDownloadPath(path)`
* `path` string - The download location.
* `path` String - The download location.
Sets download saving directory. By default, the download directory will be the
`Downloads` under the respective app folder.
@@ -513,7 +513,7 @@ Sets download saving directory. By default, the download directory will be the
#### `ses.enableNetworkEmulation(options)`
* `options` Object
* `offline` boolean (optional) - Whether to emulate network outage. Defaults
* `offline` Boolean (optional) - Whether to emulate network outage. Defaults
to false.
* `latency` Double (optional) - RTT in ms. Defaults to 0 which will disable
latency throttling.
@@ -539,8 +539,8 @@ window.webContents.session.enableNetworkEmulation({ offline: true })
#### `ses.preconnect(options)`
* `options` Object
* `url` string - URL for preconnect. Only the origin is relevant for opening the socket.
* `numSockets` number (optional) - number of sockets to preconnect. Must be between 1 and 6. Defaults to 1.
* `url` String - URL for preconnect. Only the origin is relevant for opening the socket.
* `numSockets` Number (optional) - number of sockets to preconnect. Must be between 1 and 6. Defaults to 1.
Preconnects the given number of sockets to an origin.
@@ -559,11 +559,11 @@ the original network configuration.
* `proc` Function | null
* `request` Object
* `hostname` string
* `hostname` String
* `certificate` [Certificate](structures/certificate.md)
* `validatedCertificate` [Certificate](structures/certificate.md)
* `isIssuedByKnownRoot` boolean - `true` if Chromium recognises the root CA as a standard root. If it isn't then it's probably the case that this certificate was generated by a MITM proxy whose root has been installed locally (for example, by a corporate proxy). This should not be trusted if the `verificationResult` is not `OK`.
* `verificationResult` string - `OK` if the certificate is trusted, otherwise an error like `CERT_REVOKED`.
* `isIssuedByKnownRoot` Boolean - `true` if Chromium recognises the root CA as a standard root. If it isn't then it's probably the case that this certificate was generated by a MITM proxy whose root has been installed locally (for example, by a corporate proxy). This should not be trusted if the `verificationResult` is not `OK`.
* `verificationResult` String - `OK` if the certificate is trusted, otherwise an error like `CERT_REVOKED`.
* `errorCode` Integer - Error code.
* `callback` Function
* `verificationResult` Integer - Value can be one of certificate error codes
@@ -601,7 +601,7 @@ win.webContents.session.setCertificateVerifyProc((request, callback) => {
* `handler` Function | null
* `webContents` [WebContents](web-contents.md) - WebContents requesting the permission. Please note that if the request comes from a subframe you should use `requestingUrl` to check the request origin.
* `permission` string - The type of requested permission.
* `permission` String - The type of requested permission.
* `clipboard-read` - Request access to read from the clipboard.
* `media` - Request access to media devices such as camera, microphone and speakers.
* `display-capture` - Request access to capture the screen.
@@ -615,14 +615,14 @@ win.webContents.session.setCertificateVerifyProc((request, callback) => {
* `openExternal` - Request to open links in external applications.
* `unknown` - An unrecognized permission request
* `callback` Function
* `permissionGranted` boolean - Allow or deny the permission.
* `permissionGranted` Boolean - Allow or deny the permission.
* `details` Object - Some properties are only available on certain permission types.
* `externalURL` string (optional) - The url of the `openExternal` request.
* `securityOrigin` string (optional) - The security origin of the `media` request.
* `mediaTypes` string[] (optional) - The types of media access being requested, elements can be `video`
* `externalURL` String (optional) - The url of the `openExternal` request.
* `securityOrigin` String (optional) - The security origin of the `media` request.
* `mediaTypes` String[] (optional) - The types of media access being requested, elements can be `video`
or `audio`
* `requestingUrl` string - The last URL the requesting frame loaded
* `isMainFrame` boolean - Whether the frame making the request is the main frame
* `requestingUrl` String - The last URL the requesting frame loaded
* `isMainFrame` Boolean - Whether the frame making the request is the main frame
Sets the handler which can be used to respond to permission requests for the `session`.
Calling `callback(true)` will allow the permission and `callback(false)` will reject it.
@@ -643,17 +643,17 @@ session.fromPartition('some-partition').setPermissionRequestHandler((webContents
#### `ses.setPermissionCheckHandler(handler)`
* `handler` Function\<boolean> | null
* `handler` Function\<Boolean> | null
* `webContents` ([WebContents](web-contents.md) | null) - WebContents checking the permission. Please note that if the request comes from a subframe you should use `requestingUrl` to check the request origin. All cross origin sub frames making permission checks will pass a `null` webContents to this handler, while certain other permission checks such as `notifications` checks will always pass `null`. You should use `embeddingOrigin` and `requestingOrigin` to determine what origin the owning frame and the requesting frame are on respectively.
* `permission` string - Type of permission check. Valid values are `midiSysex`, `notifications`, `geolocation`, `media`,`mediaKeySystem`,`midi`, `pointerLock`, `fullscreen`, `openExternal`, `hid`, or `serial`.
* `requestingOrigin` string - The origin URL of the permission check
* `permission` String - Type of permission check. Valid values are `midiSysex`, `notifications`, `geolocation`, `media`,`mediaKeySystem`,`midi`, `pointerLock`, `fullscreen`, `openExternal`, `hid`, or `serial`.
* `requestingOrigin` String - The origin URL of the permission check
* `details` Object - Some properties are only available on certain permission types.
* `embeddingOrigin` string (optional) - The origin of the frame embedding the frame that made the permission check. Only set for cross-origin sub frames making permission checks.
* `securityOrigin` string (optional) - The security origin of the `media` check.
* `mediaType` string (optional) - The type of media access being requested, can be `video`,
* `embeddingOrigin` String (optional) - The origin of the frame embedding the frame that made the permission check. Only set for cross-origin sub frames making permission checks.
* `securityOrigin` String (optional) - The security origin of the `media` check.
* `mediaType` String (optional) - The type of media access being requested, can be `video`,
`audio` or `unknown`
* `requestingUrl` string (optional) - The last URL the requesting frame loaded. This is not provided for cross-origin sub frames making permission checks.
* `isMainFrame` boolean - Whether the frame making the request is the main frame
* `requestingUrl` String (optional) - The last URL the requesting frame loaded. This is not provided for cross-origin sub frames making permission checks.
* `isMainFrame` Boolean - Whether the frame making the request is the main frame
Sets the handler which can be used to respond to permission checks for the `session`.
Returning `true` will allow the permission and `false` will reject it. Please note that
@@ -675,10 +675,10 @@ session.fromPartition('some-partition').setPermissionCheckHandler((webContents,
#### `ses.setDevicePermissionHandler(handler)`
* `handler` Function\<boolean> | null
* `handler` Function\<Boolean> | null
* `details` Object
* `deviceType` string - The type of device that permission is being requested on, can be `hid` or `serial`.
* `origin` string - The origin URL of the device permission check.
* `deviceType` String - The type of device that permission is being requested on, can be `hid` or `serial`.
* `origin` String - The origin URL of the device permission check.
* `device` [HIDDevice](structures/hid-device.md) | [SerialPort](structures/serial-port.md)- the device that permission is being requested for.
* `frame` [WebFrameMain](web-frame-main.md) - WebFrameMain checking the device permission.
@@ -753,7 +753,7 @@ Clears the host resolver cache.
#### `ses.allowNTLMCredentialsForDomains(domains)`
* `domains` string - A comma-separated list of servers for which
* `domains` String - A comma-separated list of servers for which
integrated authentication is enabled.
Dynamically sets whether to always send credentials for HTTP NTLM or Negotiate
@@ -771,8 +771,8 @@ session.defaultSession.allowNTLMCredentialsForDomains('*')
#### `ses.setUserAgent(userAgent[, acceptLanguages])`
* `userAgent` string
* `acceptLanguages` string (optional)
* `userAgent` String
* `acceptLanguages` String (optional)
Overrides the `userAgent` and `acceptLanguages` for this session.
@@ -784,22 +784,22 @@ This doesn't affect existing `WebContents`, and each `WebContents` can use
#### `ses.isPersistent()`
Returns `boolean` - Whether or not this session is a persistent one. The default
Returns `Boolean` - Whether or not this session is a persistent one. The default
`webContents` session of a `BrowserWindow` is persistent. When creating a session
from a partition, session prefixed with `persist:` will be persistent, while others
will be temporary.
#### `ses.getUserAgent()`
Returns `string` - The user agent for this session.
Returns `String` - The user agent for this session.
#### `ses.setSSLConfig(config)`
* `config` Object
* `minVersion` string (optional) - Can be `tls1`, `tls1.1`, `tls1.2` or `tls1.3`. The
* `minVersion` String (optional) - Can be `tls1`, `tls1.1`, `tls1.2` or `tls1.3`. The
minimum SSL version to allow when connecting to remote servers. Defaults to
`tls1`.
* `maxVersion` string (optional) - Can be `tls1.2` or `tls1.3`. The maximum SSL version
* `maxVersion` String (optional) - Can be `tls1.2` or `tls1.3`. The maximum SSL version
to allow when connecting to remote servers. Defaults to `tls1.3`.
* `disabledCipherSuites` Integer[] (optional) - List of cipher suites which
should be explicitly prevented from being used in addition to those
@@ -818,13 +818,13 @@ reused for new connections.
#### `ses.getBlobData(identifier)`
* `identifier` string - Valid UUID.
* `identifier` String - Valid UUID.
Returns `Promise<Buffer>` - resolves with blob data.
#### `ses.downloadURL(url)`
* `url` string
* `url` String
Initiates a download of the resource at `url`.
The API will generate a [DownloadItem](download-item.md) that can be accessed
@@ -836,13 +836,13 @@ unlike [`webContents.downloadURL`](web-contents.md#contentsdownloadurlurl).
#### `ses.createInterruptedDownload(options)`
* `options` Object
* `path` string - Absolute path of the download.
* `urlChain` string[] - Complete URL chain for the download.
* `mimeType` string (optional)
* `path` String - Absolute path of the download.
* `urlChain` String[] - Complete URL chain for the download.
* `mimeType` String (optional)
* `offset` Integer - Start range for the download.
* `length` Integer - Total length of the download.
* `lastModified` string (optional) - Last-Modified header value.
* `eTag` string (optional) - ETag header value.
* `lastModified` String (optional) - Last-Modified header value.
* `eTag` String (optional) - ETag header value.
* `startTime` Double (optional) - Time when download was started in
number of seconds since UNIX epoch.
@@ -858,43 +858,29 @@ Returns `Promise<void>` - resolves when the sessions HTTP authentication cach
#### `ses.setPreloads(preloads)`
* `preloads` string[] - An array of absolute path to preload scripts
* `preloads` String[] - An array of absolute path to preload scripts
Adds scripts that will be executed on ALL web contents that are associated with
this session just before normal `preload` scripts run.
#### `ses.getPreloads()`
Returns `string[]` an array of paths to preload scripts that have been
Returns `String[]` an array of paths to preload scripts that have been
registered.
#### `ses.setCodeCachePath(path)`
* `path` String - Absolute path to store the v8 generated JS code cache from the renderer.
Sets the directory to store the generated JS [code cache](https://v8.dev/blog/code-caching-for-devs) for this session. The directory is not required to be created by the user before this call, the runtime will create if it does not exist otherwise will use the existing directory. If directory cannot be created, then code cache will not be used and all operations related to code cache will fail silently inside the runtime. By default, the directory will be `Code Cache` under the
respective user data folder.
#### `ses.clearCodeCaches(options)`
* `options` Object
* `urls` String[] (optional) - An array of url corresponding to the resource whose generated code cache needs to be removed. If the list is empty then all entries in the cache directory will be removed.
Returns `Promise<void>` - resolves when the code cache clear operation is complete.
#### `ses.setSpellCheckerEnabled(enable)`
* `enable` boolean
* `enable` Boolean
Sets whether to enable the builtin spell checker.
#### `ses.isSpellCheckerEnabled()`
Returns `boolean` - Whether the builtin spell checker is enabled.
Returns `Boolean` - Whether the builtin spell checker is enabled.
#### `ses.setSpellCheckerLanguages(languages)`
* `languages` string[] - An array of language codes to enable the spellchecker for.
* `languages` String[] - An array of language codes to enable the spellchecker for.
The built in spellchecker does not automatically detect what language a user is typing in. In order for the
spell checker to correctly check their words you must call this API with an array of language codes. You can
@@ -904,7 +890,7 @@ get the list of supported language codes with the `ses.availableSpellCheckerLang
#### `ses.getSpellCheckerLanguages()`
Returns `string[]` - An array of language codes the spellchecker is enabled for. If this list is empty the spellchecker
Returns `String[]` - An array of language codes the spellchecker is enabled for. If this list is empty the spellchecker
will fallback to using `en-US`. By default on launch if this setting is an empty list Electron will try to populate this
setting with the current OS locale. This setting is persisted across restarts.
@@ -912,7 +898,7 @@ setting with the current OS locale. This setting is persisted across restarts.
#### `ses.setSpellCheckerDictionaryDownloadURL(url)`
* `url` string - A base URL for Electron to download hunspell dictionaries from.
* `url` String - A base URL for Electron to download hunspell dictionaries from.
By default Electron will download hunspell dictionaries from the Chromium CDN. If you want to override this
behavior you can use this API to point the dictionary downloader at your own hosted version of the hunspell
@@ -930,32 +916,32 @@ note the trailing slash. The URL to the dictionaries is formed as `${url}${file
#### `ses.listWordsInSpellCheckerDictionary()`
Returns `Promise<string[]>` - An array of all words in app's custom dictionary.
Returns `Promise<String[]>` - An array of all words in app's custom dictionary.
Resolves when the full dictionary is loaded from disk.
#### `ses.addWordToSpellCheckerDictionary(word)`
* `word` string - The word you want to add to the dictionary
* `word` String - The word you want to add to the dictionary
Returns `boolean` - Whether the word was successfully written to the custom dictionary. This API
Returns `Boolean` - Whether the word was successfully written to the custom dictionary. This API
will not work on non-persistent (in-memory) sessions.
**Note:** On macOS and Windows 10 this word will be written to the OS custom dictionary as well
#### `ses.removeWordFromSpellCheckerDictionary(word)`
* `word` string - The word you want to remove from the dictionary
* `word` String - The word you want to remove from the dictionary
Returns `boolean` - Whether the word was successfully removed from the custom dictionary. This API
Returns `Boolean` - Whether the word was successfully removed from the custom dictionary. This API
will not work on non-persistent (in-memory) sessions.
**Note:** On macOS and Windows 10 this word will be removed from the OS custom dictionary as well
#### `ses.loadExtension(path[, options])`
* `path` string - Path to a directory containing an unpacked Chrome extension
* `path` String - Path to a directory containing an unpacked Chrome extension
* `options` Object (optional)
* `allowFileAccess` boolean - Whether to allow the extension to read local files over `file://`
* `allowFileAccess` Boolean - Whether to allow the extension to read local files over `file://`
protocol and inject content scripts into `file://` pages. This is required e.g. for loading
devtools extensions on `file://` URLs. Defaults to false.
@@ -1000,7 +986,7 @@ supported and will throw an error.
#### `ses.removeExtension(extensionId)`
* `extensionId` string - ID of extension to remove
* `extensionId` String - ID of extension to remove
Unloads an extension.
@@ -1009,7 +995,7 @@ is emitted.
#### `ses.getExtension(extensionId)`
* `extensionId` string - ID of extension to query
* `extensionId` String - ID of extension to query
Returns `Extension` | `null` - The loaded extension with the given ID.
@@ -1025,7 +1011,7 @@ is emitted.
#### `ses.getStoragePath()`
A `string | null` indicating the absolute file system path where data for this
A `String | null` indicating the absolute file system path where data for this
session is persisted on disk. For in memory sessions this returns `null`.
### Instance Properties
@@ -1034,16 +1020,16 @@ The following properties are available on instances of `Session`:
#### `ses.availableSpellCheckerLanguages` _Readonly_
A `string[]` array which consists of all the known available spell checker languages. Providing a language
A `String[]` array which consists of all the known available spell checker languages. Providing a language
code to the `setSpellCheckerLanguages` API that isn't in this array will result in an error.
#### `ses.spellCheckerEnabled`
A `boolean` indicating whether builtin spell checker is enabled.
A `Boolean` indicating whether builtin spell checker is enabled.
#### `ses.storagePath` _Readonly_
A `string | null` indicating the absolute file system path where data for this
A `String | null` indicating the absolute file system path where data for this
session is persisted on disk. For in memory sessions this returns `null`.
#### `ses.cookies` _Readonly_

View File

@@ -27,11 +27,11 @@ The `shareMenu` object has the following instance methods:
* `options` PopupOptions (optional)
* `browserWindow` [BrowserWindow](browser-window.md) (optional) - Default is the focused window.
* `x` number (optional) - Default is the current mouse cursor position.
* `x` Number (optional) - Default is the current mouse cursor position.
Must be declared if `y` is declared.
* `y` number (optional) - Default is the current mouse cursor position.
* `y` Number (optional) - Default is the current mouse cursor position.
Must be declared if `x` is declared.
* `positioningItem` number (optional) _macOS_ - The index of the menu item to
* `positioningItem` Number (optional) _macOS_ - The index of the menu item to
be positioned under the mouse cursor at the specified coordinates. Default
is -1.
* `callback` Function (optional) - Called when menu is closed.

View File

@@ -22,24 +22,24 @@ The `shell` module has the following methods:
### `shell.showItemInFolder(fullPath)`
* `fullPath` string
* `fullPath` String
Show the given file in a file manager. If possible, select the file.
### `shell.openPath(path)`
* `path` string
* `path` String
Returns `Promise<string>` - Resolves with a string containing the error message corresponding to the failure if a failure occurred, otherwise "".
Returns `Promise<String>` - Resolves with a string containing the error message corresponding to the failure if a failure occurred, otherwise "".
Open the given file in the desktop's default manner.
### `shell.openExternal(url[, options])`
* `url` string - Max 2081 characters on windows.
* `url` String - Max 2081 characters on windows.
* `options` Object (optional)
* `activate` boolean (optional) _macOS_ - `true` to bring the opened application to the foreground. The default is `true`.
* `workingDirectory` string (optional) _Windows_ - The working directory.
* `activate` Boolean (optional) _macOS_ - `true` to bring the opened application to the foreground. The default is `true`.
* `workingDirectory` String (optional) _Windows_ - The working directory.
Returns `Promise<void>`
@@ -47,7 +47,7 @@ Open the given external protocol URL in the desktop's default manner. (For examp
### `shell.trashItem(path)`
* `path` string - path to the item to be moved to the trash.
* `path` String - path to the item to be moved to the trash.
Returns `Promise<void>` - Resolves when the operation has been completed.
Rejects if there was an error while deleting the requested item.
@@ -61,21 +61,21 @@ Play the beep sound.
### `shell.writeShortcutLink(shortcutPath[, operation], options)` _Windows_
* `shortcutPath` string
* `operation` string (optional) - Default is `create`, can be one of following:
* `shortcutPath` String
* `operation` String (optional) - Default is `create`, can be one of following:
* `create` - Creates a new shortcut, overwriting if necessary.
* `update` - Updates specified properties only on an existing shortcut.
* `replace` - Overwrites an existing shortcut, fails if the shortcut doesn't
exist.
* `options` [ShortcutDetails](structures/shortcut-details.md)
Returns `boolean` - Whether the shortcut was created successfully.
Returns `Boolean` - Whether the shortcut was created successfully.
Creates or updates a shortcut link at `shortcutPath`.
### `shell.readShortcutLink(shortcutPath)` _Windows_
* `shortcutPath` string
* `shortcutPath` String
Returns [`ShortcutDetails`](structures/shortcut-details.md)

View File

@@ -1,4 +1,4 @@
# BluetoothDevice Object
* `deviceName` string
* `deviceId` string
* `deviceName` String
* `deviceId` String

View File

@@ -1,8 +1,8 @@
# CertificatePrincipal Object
* `commonName` string - Common Name.
* `organizations` string[] - Organization names.
* `organizationUnits` string[] - Organization Unit names.
* `locality` string - Locality.
* `state` string - State or province.
* `country` string - Country or region.
* `commonName` String - Common Name.
* `organizations` String[] - Organization names.
* `organizationUnits` String[] - Organization Unit names.
* `locality` String - Locality.
* `state` String - State or province.
* `country` String - Country or region.

View File

@@ -1,12 +1,12 @@
# Certificate Object
* `data` string - PEM encoded data
* `data` String - PEM encoded data
* `issuer` [CertificatePrincipal](certificate-principal.md) - Issuer principal
* `issuerName` string - Issuer's Common Name
* `issuerName` String - Issuer's Common Name
* `issuerCert` Certificate - Issuer certificate (if not self-signed)
* `subject` [CertificatePrincipal](certificate-principal.md) - Subject principal
* `subjectName` string - Subject's Common Name
* `serialNumber` string - Hex value represented string
* `validStart` number - Start date of the certificate being valid in seconds
* `validExpiry` number - End date of the certificate being valid in seconds
* `fingerprint` string - Fingerprint of the certificate
* `subjectName` String - Subject's Common Name
* `serialNumber` String - Hex value represented string
* `validStart` Number - Start date of the certificate being valid in seconds
* `validExpiry` Number - End date of the certificate being valid in seconds
* `fingerprint` String - Fingerprint of the certificate

View File

@@ -1,15 +1,15 @@
# Cookie Object
* `name` string - The name of the cookie.
* `value` string - The value of the cookie.
* `domain` string (optional) - The domain of the cookie; this will be normalized with a preceding dot so that it's also valid for subdomains.
* `hostOnly` boolean (optional) - Whether the cookie is a host-only cookie; this will only be `true` if no domain was passed.
* `path` string (optional) - The path of the cookie.
* `secure` boolean (optional) - Whether the cookie is marked as secure.
* `httpOnly` boolean (optional) - Whether the cookie is marked as HTTP only.
* `session` boolean (optional) - Whether the cookie is a session cookie or a persistent
* `name` String - The name of the cookie.
* `value` String - The value of the cookie.
* `domain` String (optional) - The domain of the cookie; this will be normalized with a preceding dot so that it's also valid for subdomains.
* `hostOnly` Boolean (optional) - Whether the cookie is a host-only cookie; this will only be `true` if no domain was passed.
* `path` String (optional) - The path of the cookie.
* `secure` Boolean (optional) - Whether the cookie is marked as secure.
* `httpOnly` Boolean (optional) - Whether the cookie is marked as HTTP only.
* `session` Boolean (optional) - Whether the cookie is a session cookie or a persistent
cookie with an expiration date.
* `expirationDate` Double (optional) - The expiration date of the cookie as
the number of seconds since the UNIX epoch. Not provided for session
cookies.
* `sameSite` string - The [Same Site](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#SameSite_cookies) policy applied to this cookie. Can be `unspecified`, `no_restriction`, `lax` or `strict`.
* `sameSite` String - The [Same Site](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#SameSite_cookies) policy applied to this cookie. Can be `unspecified`, `no_restriction`, `lax` or `strict`.

View File

@@ -1,7 +1,7 @@
# CPUUsage Object
* `percentCPUUsage` number - Percentage of CPU used since the last call to getCPUUsage.
* `percentCPUUsage` Number - Percentage of CPU used since the last call to getCPUUsage.
First call returns 0.
* `idleWakeupsPerSecond` number - The number of average idle CPU wakeups per second
* `idleWakeupsPerSecond` Number - The number of average idle CPU wakeups per second
since the last call to getCPUUsage. First call returns 0. Will always return 0 on
Windows.

View File

@@ -1,4 +1,4 @@
# CrashReport Object
* `date` Date
* `id` string
* `id` String

View File

@@ -1,11 +1,11 @@
# CustomScheme Object
* `scheme` string - Custom schemes to be registered with options.
* `scheme` String - Custom schemes to be registered with options.
* `privileges` Object (optional)
* `standard` boolean (optional) - Default false.
* `secure` boolean (optional) - Default false.
* `bypassCSP` boolean (optional) - Default false.
* `allowServiceWorkers` boolean (optional) - Default false.
* `supportFetchAPI` boolean (optional) - Default false.
* `corsEnabled` boolean (optional) - Default false.
* `stream` boolean (optional) - Default false.
* `standard` Boolean (optional) - Default false.
* `secure` Boolean (optional) - Default false.
* `bypassCSP` Boolean (optional) - Default false.
* `allowServiceWorkers` Boolean (optional) - Default false.
* `supportFetchAPI` Boolean (optional) - Default false.
* `corsEnabled` Boolean (optional) - Default false.
* `stream` Boolean (optional) - Default false.

View File

@@ -1,13 +1,13 @@
# DesktopCapturerSource Object
* `id` string - The identifier of a window or screen that can be used as a
* `id` String - The identifier of a window or screen that can be used as a
`chromeMediaSourceId` constraint when calling
[`navigator.webkitGetUserMedia`]. The format of the identifier will be
`window:XX:YY` or `screen:ZZ:0`. XX is the windowID/handle. YY is 1 for
the current process, and 0 for all others. ZZ is a sequential number
that represents the screen, and it does not equal to the index in the
source's name.
* `name` string - A screen source will be named either `Entire Screen` or
* `name` String - A screen source will be named either `Entire Screen` or
`Screen <index>`, while the name of a window source will match the window
title.
* `thumbnail` [NativeImage](../native-image.md) - A thumbnail image. **Note:**
@@ -15,7 +15,7 @@
`thumbnailSize` specified in the `options` passed to
`desktopCapturer.getSources`. The actual size depends on the scale of the
screen or window.
* `display_id` string - A unique identifier that will correspond to the `id` of
* `display_id` String - A unique identifier that will correspond to the `id` of
the matching [Display](display.md) returned by the [Screen API](../screen.md).
On some platforms, this is equivalent to the `XX` portion of the `id` field
above and on others it will differ. It will be an empty string if not

View File

@@ -1,21 +1,21 @@
# Display Object
* `id` number - Unique identifier associated with the display.
* `rotation` number - Can be 0, 90, 180, 270, represents screen rotation in
* `id` Number - Unique identifier associated with the display.
* `rotation` Number - Can be 0, 90, 180, 270, represents screen rotation in
clock-wise degrees.
* `scaleFactor` number - Output device's pixel scale factor.
* `touchSupport` string - Can be `available`, `unavailable`, `unknown`.
* `monochrome` boolean - Whether or not the display is a monochrome display.
* `accelerometerSupport` string - Can be `available`, `unavailable`, `unknown`.
* `colorSpace` string - represent a color space (three-dimensional object which contains all realizable color combinations) for the purpose of color conversions
* `colorDepth` number - The number of bits per pixel.
* `depthPerComponent` number - The number of bits per color component.
* `displayFrequency` number - The display refresh rate.
* `scaleFactor` Number - Output device's pixel scale factor.
* `touchSupport` String - Can be `available`, `unavailable`, `unknown`.
* `monochrome` Boolean - Whether or not the display is a monochrome display.
* `accelerometerSupport` String - Can be `available`, `unavailable`, `unknown`.
* `colorSpace` String - represent a color space (three-dimensional object which contains all realizable color combinations) for the purpose of color conversions
* `colorDepth` Number - The number of bits per pixel.
* `depthPerComponent` Number - The number of bits per color component.
* `displayFrequency` Number - The display refresh rate.
* `bounds` [Rectangle](rectangle.md) - the bounds of the display in DIP points.
* `size` [Size](size.md)
* `workArea` [Rectangle](rectangle.md) - the work area of the display in DIP points.
* `workAreaSize` [Size](size.md)
* `internal` boolean - `true` for an internal display and `false` for an external display
* `internal` Boolean - `true` for an internal display and `false` for an external display
The `Display` object represents a physical display connected to the system. A
fake `Display` may exist on a headless system, or a `Display` may correspond to

View File

@@ -1,4 +1,4 @@
# ExtensionInfo Object
* `name` string
* `version` string
* `name` String
* `version` String

View File

@@ -1,8 +1,8 @@
# Extension Object
* `id` string
* `id` String
* `manifest` any - Copy of the [extension's manifest data](https://developer.chrome.com/extensions/manifest).
* `name` string
* `path` string - The extension's file path.
* `version` string
* `url` string - The extension's `chrome-extension://` URL.
* `name` String
* `path` String - The extension's file path.
* `version` String
* `url` String - The extension's `chrome-extension://` URL.

View File

@@ -1,4 +1,4 @@
# FileFilter Object
* `name` string
* `extensions` string[]
* `name` String
* `extensions` String[]

View File

@@ -1,4 +1,4 @@
# FilePathWithHeaders Object
* `path` string - The path to the file to send.
* `path` String - The path to the file to send.
* `headers` Record<string, string> (optional) - Additional headers to be sent.

View File

@@ -1,18 +1,18 @@
# GPUFeatureStatus Object
* `2d_canvas` string - Canvas.
* `flash_3d` string - Flash.
* `flash_stage3d` string - Flash Stage3D.
* `flash_stage3d_baseline` string - Flash Stage3D Baseline profile.
* `gpu_compositing` string - Compositing.
* `multiple_raster_threads` string - Multiple Raster Threads.
* `native_gpu_memory_buffers` string - Native GpuMemoryBuffers.
* `rasterization` string - Rasterization.
* `video_decode` string - Video Decode.
* `video_encode` string - Video Encode.
* `vpx_decode` string - VPx Video Decode.
* `webgl` string - WebGL.
* `webgl2` string - WebGL2.
* `2d_canvas` String - Canvas.
* `flash_3d` String - Flash.
* `flash_stage3d` String - Flash Stage3D.
* `flash_stage3d_baseline` String - Flash Stage3D Baseline profile.
* `gpu_compositing` String - Compositing.
* `multiple_raster_threads` String - Multiple Raster Threads.
* `native_gpu_memory_buffers` String - Native GpuMemoryBuffers.
* `rasterization` String - Rasterization.
* `video_decode` String - Video Decode.
* `video_encode` String - Video Encode.
* `vpx_decode` String - VPx Video Decode.
* `webgl` String - WebGL.
* `webgl2` String - WebGL2.
Possible values:

View File

@@ -1,8 +1,8 @@
# HIDDevice Object
* `deviceId` string - Unique identifier for the device.
* `name` string - Name of the device.
* `deviceId` String - Unique identifier for the device.
* `name` String - Name of the device.
* `vendorId` Integer - The USB vendor ID.
* `productId` Integer - The USB product ID.
* `serialNumber` string (optional) - The USB device serial number.
* `guid` string (optional) - Unique identifier for the HID interface. A device may have multiple HID interfaces.
* `serialNumber` String (optional) - The USB device serial number.
* `guid` String (optional) - Unique identifier for the HID interface. A device may have multiple HID interfaces.

View File

@@ -1,6 +1,6 @@
# InputEvent Object
* `modifiers` string[] (optional) - An array of modifiers of the event, can
* `modifiers` String[] (optional) - An array of modifiers of the event, can
be `shift`, `control`, `ctrl`, `alt`, `meta`, `command`, `cmd`, `isKeypad`,
`isAutoRepeat`, `leftButtonDown`, `middleButtonDown`, `rightButtonDown`,
`capsLock`, `numLock`, `left`, `right`.

View File

@@ -1,8 +1,8 @@
# IOCounters Object
* `readOperationCount` number - The number of I/O read operations.
* `writeOperationCount` number - The number of I/O write operations.
* `otherOperationCount` number - Then number of I/O other operations.
* `readTransferCount` number - The number of I/O read transfers.
* `writeTransferCount` number - The number of I/O write transfers.
* `otherTransferCount` number - Then number of I/O other transfers.
* `readOperationCount` Number - The number of I/O read operations.
* `writeOperationCount` Number - The number of I/O write operations.
* `otherOperationCount` Number - Then number of I/O other operations.
* `readTransferCount` Number - The number of I/O read transfers.
* `writeTransferCount` Number - The number of I/O write transfers.
* `otherTransferCount` Number - Then number of I/O other transfers.

View File

@@ -7,5 +7,5 @@
* `senderFrame` WebFrameMain _Readonly_ - The frame that sent this message
* `ports` MessagePortMain[] - A list of MessagePorts that were transferred with this message
* `reply` Function - A function that will send an IPC message to the renderer frame that sent the original message that you are currently handling. You should use this method to "reply" to the sent message in order to guarantee the reply will go to the correct process and frame.
* `channel` string
* `channel` String
* `...args` any[]

View File

@@ -1,6 +1,6 @@
# JumpListCategory Object
* `type` string (optional) - One of the following:
* `type` String (optional) - One of the following:
* `tasks` - Items in this category will be placed into the standard `Tasks`
category. There can be only one such category, and it will always be
displayed at the bottom of the Jump List.
@@ -10,7 +10,7 @@
of the category and its items are set by Windows. Items may be added to
this category indirectly using `app.addRecentDocument(path)`.
* `custom` - Displays tasks or file links, `name` must be set by the app.
* `name` string (optional) - Must be set if `type` is `custom`, otherwise it should be
* `name` String (optional) - Must be set if `type` is `custom`, otherwise it should be
omitted.
* `items` JumpListItem[] (optional) - Array of [`JumpListItem`](jump-list-item.md) objects if `type` is `tasks` or
`custom`, otherwise it should be omitted.

View File

@@ -1,29 +1,29 @@
# JumpListItem Object
* `type` string (optional) - One of the following:
* `type` String (optional) - One of the following:
* `task` - A task will launch an app with specific arguments.
* `separator` - Can be used to separate items in the standard `Tasks`
category.
* `file` - A file link will open a file using the app that created the
Jump List, for this to work the app must be registered as a handler for
the file type (though it doesn't have to be the default handler).
* `path` string (optional) - Path of the file to open, should only be set if `type` is
* `path` String (optional) - Path of the file to open, should only be set if `type` is
`file`.
* `program` string (optional) - Path of the program to execute, usually you should
* `program` String (optional) - Path of the program to execute, usually you should
specify `process.execPath` which opens the current program. Should only be
set if `type` is `task`.
* `args` string (optional) - The command line arguments when `program` is executed. Should
* `args` String (optional) - The command line arguments when `program` is executed. Should
only be set if `type` is `task`.
* `title` string (optional) - The text to be displayed for the item in the Jump List.
* `title` String (optional) - The text to be displayed for the item in the Jump List.
Should only be set if `type` is `task`.
* `description` string (optional) - Description of the task (displayed in a tooltip).
* `description` String (optional) - Description of the task (displayed in a tooltip).
Should only be set if `type` is `task`. Maximum length 260 characters.
* `iconPath` string (optional) - The absolute path to an icon to be displayed in a
* `iconPath` String (optional) - The absolute path to an icon to be displayed in a
Jump List, which can be an arbitrary resource file that contains an icon
(e.g. `.ico`, `.exe`, `.dll`). You can usually specify `process.execPath` to
show the program icon.
* `iconIndex` number (optional) - The index of the icon in the resource file. If a
* `iconIndex` Number (optional) - The index of the icon in the resource file. If a
resource file contains multiple icons this value can be used to specify the
zero-based index of the icon that should be displayed for this task. If a
resource file contains only one icon, this property should be set to zero.
* `workingDirectory` string (optional) - The working directory. Default is empty.
* `workingDirectory` String (optional) - The working directory. Default is empty.

View File

@@ -1,7 +1,7 @@
# KeyboardEvent Object
* `ctrlKey` boolean (optional) - whether the Control key was used in an accelerator to trigger the Event
* `metaKey` boolean (optional) - whether a meta key was used in an accelerator to trigger the Event
* `shiftKey` boolean (optional) - whether a Shift key was used in an accelerator to trigger the Event
* `altKey` boolean (optional) - whether an Alt key was used in an accelerator to trigger the Event
* `triggeredByAccelerator` boolean (optional) - whether an accelerator was used to trigger the event as opposed to another user gesture like mouse click
* `ctrlKey` Boolean (optional) - whether the Control key was used in an accelerator to trigger the Event
* `metaKey` Boolean (optional) - whether a meta key was used in an accelerator to trigger the Event
* `shiftKey` Boolean (optional) - whether a Shift key was used in an accelerator to trigger the Event
* `altKey` Boolean (optional) - whether an Alt key was used in an accelerator to trigger the Event
* `triggeredByAccelerator` Boolean (optional) - whether an accelerator was used to trigger the event as opposed to another user gesture like mouse click

View File

@@ -1,6 +1,6 @@
# KeyboardInputEvent Object extends `InputEvent`
* `type` string - The type of the event, can be `keyDown`, `keyUp` or `char`.
* `keyCode` string - The character that will be sent
* `type` String - The type of the event, can be `keyDown`, `keyUp` or `char`.
* `keyCode` String - The character that will be sent
as the keyboard event. Should only use the valid key codes in
[Accelerator](../accelerator.md).

View File

@@ -1,5 +1,5 @@
# MemoryUsageDetails Object
* `count` number
* `size` number
* `liveSize` number
* `count` Number
* `size` Number
* `liveSize` Number

View File

@@ -1,5 +1,5 @@
# MimeTypedBuffer Object
* `mimeType` string (optional) - MIME type of the buffer.
* `charset` string (optional) - Charset of the buffer.
* `mimeType` String (optional) - MIME type of the buffer.
* `charset` String (optional) - Charset of the buffer.
* `data` Buffer - The actual Buffer content.

View File

@@ -1,10 +1,10 @@
# MouseInputEvent Object extends `InputEvent`
* `type` string - The type of the event, can be `mouseDown`,
* `type` String - The type of the event, can be `mouseDown`,
`mouseUp`, `mouseEnter`, `mouseLeave`, `contextMenu`, `mouseWheel` or `mouseMove`.
* `x` Integer
* `y` Integer
* `button` string (optional) - The button pressed, can be `left`, `middle`, `right`.
* `button` String (optional) - The button pressed, can be `left`, `middle`, `right`.
* `globalX` Integer (optional)
* `globalY` Integer (optional)
* `movementX` Integer (optional)

View File

@@ -1,11 +1,11 @@
# MouseWheelInputEvent Object extends `MouseInputEvent`
* `type` string - The type of the event, can be `mouseWheel`.
* `type` String - The type of the event, can be `mouseWheel`.
* `deltaX` Integer (optional)
* `deltaY` Integer (optional)
* `wheelTicksX` Integer (optional)
* `wheelTicksY` Integer (optional)
* `accelerationRatioX` Integer (optional)
* `accelerationRatioY` Integer (optional)
* `hasPreciseScrollingDeltas` boolean (optional)
* `canScroll` boolean (optional)
* `hasPreciseScrollingDeltas` Boolean (optional)
* `canScroll` Boolean (optional)

View File

@@ -1,7 +1,7 @@
# NotificationAction Object
* `type` string - The type of action, can be `button`.
* `text` string (optional) - The label for the given action.
* `type` String - The type of action, can be `button`.
* `text` String (optional) - The label for the given action.
## Platform / Action Support

View File

@@ -1,7 +1,7 @@
# NotificationResponse Object
* `actionIdentifier` string - The identifier string of the action that the user selected.
* `date` number - The delivery date of the notification.
* `identifier` string - The unique identifier for this notification request.
* `userInfo` Record<string, any> - A dictionary of custom information associated with the notification.
* `userText` string (optional) - The text entered or chosen by the user.
* `actionIdentifier` String - The identifier string of the action that the user selected.
* `date` Number - The delivery date of the notification.
* `identifier` String - The unique identifier for this notification request.
* `userInfo` Record<String, any> - A dictionary of custom information associated with the notification.
* `userText` String (optional) - The text entered or chosen by the user.

View File

@@ -1,7 +0,0 @@
# PaymentDiscount Object
* `identifier` string - A string used to uniquely identify a discount offer for a product.
* `keyIdentifier` string - A string that identifies the key used to generate the signature.
* `nonce` string - A universally unique ID (UUID) value that you define.
* `signature` string - A UTF-8 string representing the properties of a specific discount offer, cryptographically signed.
* `timestamp` number - The date and time of the signature's creation in milliseconds, formatted in Unix epoch time.

View File

@@ -1,7 +1,7 @@
# Point Object
* `x` number
* `y` number
* `x` Number
* `y` Number
**Note:** Both `x` and `y` must be whole integers, when providing a point object
as input to an Electron API we will automatically round your `x` and `y` values

View File

@@ -2,8 +2,22 @@
* `data` ([UploadRawData](upload-raw-data.md) | [UploadFile](upload-file.md))[] - The post data to be sent to the
new window.
* `contentType` string - The `content-type` header used for the data. One of
* `contentType` String - The `content-type` header used for the data. One of
`application/x-www-form-urlencoded` or `multipart/form-data`. Corresponds to
the `enctype` attribute of the submitted HTML form.
* `boundary` string (optional) - The boundary used to separate multiple parts of
* `boundary` String (optional) - The boundary used to separate multiple parts of
the message. Only valid when `contentType` is `multipart/form-data`.
Note that keys starting with `--` are not currently supported. For example, this will errantly submit as `multipart/form-data` when `nativeWindowOpen` is set to `false` in webPreferences:
```html
<form
target="_blank"
method="POST"
enctype="application/x-www-form-urlencoded"
action="https://postman-echo.com/post"
>
<input type="text" name="--theKey">
<input type="submit">
</form>
```

View File

@@ -1,10 +1,10 @@
# PrinterInfo Object
* `name` string - the name of the printer as understood by the OS.
* `displayName` string - the name of the printer as shown in Print Preview.
* `description` string - a longer description of the printer's type.
* `status` number - the current status of the printer.
* `isDefault` boolean - whether or not a given printer is set as the default printer on the OS.
* `name` String - the name of the printer as understood by the OS.
* `displayName` String - the name of the printer as shown in Print Preview.
* `description` String - a longer description of the printer's type.
* `status` Number - the current status of the printer.
* `isDefault` Boolean - whether or not a given printer is set as the default printer on the OS.
* `options` Object - an object containing a variable number of platform-specific printer information.
The number represented by `status` means different things on different platforms: on Windows its potential values can be found [here](https://docs.microsoft.com/en-us/windows/win32/printdocs/printer-info-2), and on Linux and macOS they can be found [here](https://www.cups.org/doc/cupspm.html).

View File

@@ -1,7 +1,7 @@
# ProcessMetric Object
* `pid` Integer - Process id of the process.
* `type` string - Process type. One of the following values:
* `type` String - Process type. One of the following values:
* `Browser`
* `Tab`
* `Utility`
@@ -11,17 +11,17 @@
* `Pepper Plugin`
* `Pepper Plugin Broker`
* `Unknown`
* `serviceName` string (optional) - The non-localized name of the process.
* `name` string (optional) - The name of the process.
* `serviceName` String (optional) - The non-localized name of the process.
* `name` String (optional) - The name of the process.
Examples for utility: `Audio Service`, `Content Decryption Module Service`, `Network Service`, `Video Capture`, etc.
* `cpu` [CPUUsage](cpu-usage.md) - CPU usage of the process.
* `creationTime` number - Creation time for this process.
* `creationTime` Number - Creation time for this process.
The time is represented as number of milliseconds since epoch.
Since the `pid` can be reused after a process dies,
it is useful to use both the `pid` and the `creationTime` to uniquely identify a process.
* `memory` [MemoryInfo](memory-info.md) - Memory information for the process.
* `sandboxed` boolean (optional) _macOS_ _Windows_ - Whether the process is sandboxed on OS level.
* `integrityLevel` string (optional) _Windows_ - One of the following values:
* `sandboxed` Boolean (optional) _macOS_ _Windows_ - Whether the process is sandboxed on OS level.
* `integrityLevel` String (optional) _Windows_ - One of the following values:
* `untrusted`
* `low`
* `medium`

View File

@@ -1,9 +0,0 @@
# ProductDiscount Object
* `identifier` string - A string used to uniquely identify a discount offer for a product.
* `type` number - The type of discount offer.
* `price` number - The discount price of the product in the local currency.
* `priceLocale` string - The locale used to format the discount price of the product.
* `paymentMode` string - The payment mode for this product discount. Can be `payAsYouGo`, `payUpFront`, or `freeTrial`.
* `numberOfPeriods` number - An integer that indicates the number of periods the product discount is available.
* `subscriptionPeriod` [ProductSubscriptionPeriod](product-subscription-period.md) (optional) - An object that defines the period for the product discount.

View File

@@ -1,4 +0,0 @@
# ProductSubscriptionPeriod Object
* `numberOfUnits` number - The number of units per subscription period.
* `unit` string - The increment of time that a subscription period is specified in. Can be `day`, `week`, `month`, `year`.

View File

@@ -1,18 +1,11 @@
# Product Object
* `productIdentifier` string - The string that identifies the product to the Apple App Store.
* `localizedDescription` string - A description of the product.
* `localizedTitle` string - The name of the product.
* `contentVersion` string - A string that identifies the version of the content.
* `contentLengths` number[] - The total size of the content, in bytes.
* `price` number - The cost of the product in the local currency.
* `formattedPrice` string - The locale formatted price of the product.
* `currencyCode` string - 3 character code presenting a product's currency based on the ISO 4217 standard.
* `introductoryPrice` [ProductDiscount](product-discount.md) (optional) - The object containing introductory price information for the product.
available for the product.
* `discounts` [ProductDiscount](product-discount.md)[] - An array of discount offers
* `subscriptionGroupIdentifier` string - The identifier of the subscription group to which the subscription belongs.
* `subscriptionPeriod` [ProductSubscriptionPeriod](product-subscription-period.md) (optional) - The period details for products that are subscriptions.
* `isDownloadable` boolean - A boolean value that indicates whether the App Store has downloadable content for this product. `true` if at least one file has been associated with the product.
* `downloadContentVersion` string - A string that identifies the version of the content.
* `downloadContentLengths` number[] - The total size of the content, in bytes.
* `productIdentifier` String - The string that identifies the product to the Apple App Store.
* `localizedDescription` String - A description of the product.
* `localizedTitle` String - The name of the product.
* `contentVersion` String - A string that identifies the version of the content.
* `contentLengths` Number[] - The total size of the content, in bytes.
* `price` Number - The cost of the product in the local currency.
* `formattedPrice` String - The locale formatted price of the product.
* `currencyCode` String - 3 character code presenting a product's currency based on the ISO 4217 standard.
* `isDownloadable` Boolean - A Boolean value that indicates whether the App Store has downloadable content for this product. `true` if at least one file has been associated with the product.

View File

@@ -1,7 +1,7 @@
# ProtocolRequest Object
* `url` string
* `referrer` string
* `method` string
* `url` String
* `referrer` String
* `method` String
* `uploadData` [UploadData[]](upload-data.md) (optional)
* `headers` Record<string, string>
* `headers` Record<String, String>

View File

@@ -1,4 +1,4 @@
# ProtocolResponseUploadData Object
* `contentType` string - MIME type of the content.
* `data` string | Buffer - Content to be sent.
* `contentType` String - MIME type of the content.
* `data` String | Buffer - Content to be sent.

View File

@@ -3,27 +3,27 @@
* `error` Integer (optional) - When assigned, the `request` will fail with the
`error` number . For the available error numbers you can use, please see the
[net error list][net-error].
* `statusCode` number (optional) - The HTTP response code, default is 200.
* `charset` string (optional) - The charset of response body, default is
* `statusCode` Number (optional) - The HTTP response code, default is 200.
* `charset` String (optional) - The charset of response body, default is
`"utf-8"`.
* `mimeType` string (optional) - The MIME type of response body, default is
* `mimeType` String (optional) - The MIME type of response body, default is
`"text/html"`. Setting `mimeType` would implicitly set the `content-type`
header in response, but if `content-type` is already set in `headers`, the
`mimeType` would be ignored.
* `headers` Record<string, string | string[]> (optional) - An object containing the response headers. The
keys must be string, and values must be either string or Array of string.
* `data` (Buffer | string | ReadableStream) (optional) - The response body. When
keys must be String, and values must be either String or Array of String.
* `data` (Buffer | String | ReadableStream) (optional) - The response body. When
returning stream as response, this is a Node.js readable stream representing
the response body. When returning `Buffer` as response, this is a `Buffer`.
When returning `string` as response, this is a `string`. This is ignored for
When returning `String` as response, this is a `String`. This is ignored for
other types of responses.
* `path` string (optional) - Path to the file which would be sent as response
* `path` String (optional) - Path to the file which would be sent as response
body. This is only used for file responses.
* `url` string (optional) - Download the `url` and pipe the result as response
* `url` String (optional) - Download the `url` and pipe the result as response
body. This is only used for URL responses.
* `referrer` string (optional) - The `referrer` URL. This is only used for file
* `referrer` String (optional) - The `referrer` URL. This is only used for file
and URL responses.
* `method` string (optional) - The HTTP `method`. This is only used for file
* `method` String (optional) - The HTTP `method`. This is only used for file
and URL responses.
* `session` Session (optional) - The session used for requesting URL, by default
the HTTP request will reuse the current session. Setting `session` to `null`

View File

@@ -1,6 +1,6 @@
# Rectangle Object
* `x` number - The x coordinate of the origin of the rectangle (must be an integer).
* `y` number - The y coordinate of the origin of the rectangle (must be an integer).
* `width` number - The width of the rectangle (must be an integer).
* `height` number - The height of the rectangle (must be an integer).
* `x` Number - The x coordinate of the origin of the rectangle (must be an integer).
* `y` Number - The y coordinate of the origin of the rectangle (must be an integer).
* `width` Number - The width of the rectangle (must be an integer).
* `height` Number - The height of the rectangle (must be an integer).

View File

@@ -1,7 +1,7 @@
# Referrer Object
* `url` string - HTTP Referrer URL.
* `policy` string - Can be `default`, `unsafe-url`,
* `url` String - HTTP Referrer URL.
* `policy` String - Can be `default`, `unsafe-url`,
`no-referrer-when-downgrade`, `no-referrer`, `origin`,
`strict-origin-when-cross-origin`, `same-origin` or `strict-origin`.
See the [Referrer-Policy spec][1] for more details on the

View File

@@ -1,4 +1,4 @@
# ScrubberItem Object
* `label` string (optional) - The text to appear in this item.
* `label` String (optional) - The text to appear in this item.
* `icon` NativeImage (optional) - The image to appear in this item.

Some files were not shown because too many files have changed in this diff Show More