Compare commits

..

502 Commits

Author SHA1 Message Date
Electron Bot
9fc28e2296 Bump v10.4.7 2021-05-24 08:50:38 -07:00
Andrey Belenko
fcdd18074f chore: backport the security fixes from Chromium release M90-3 (#29249)
* Backports of security fixes in Chromium release M90-3
https://chromereleases.googleblog.com/2021/05/stable-channel-update-for-desktop.html

Includes backports for the following Chromium issues:
https://crbug.com/1204071
https://crbug.com/1203590 (CVE-2021-30518)
https://crbug.com/1201446 (CVE-2021-30516)
https://crbug.com/1201073 (CVE-2021-30515)
https://crbug.com/1200490 (CVE-2021-30513)
https://crbug.com/1200019 (CVE-2021-30512)
https://crbug.com/1197436 (CVE-2021-30510)
https://crbug.com/1195340 (CVE-2021-30508)
https://crbug.com/1180126
https://crbug.com/1203667

* chore: update patches

Co-authored-by: Andrey Belenko <anbelen@microsoft.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2021-05-20 10:49:40 -07:00
Electron Bot
faa1655880 Bump v10.4.6 2021-05-18 14:04:21 -07:00
trop[bot]
ebe509d24f build: make patch auto fixes come from PatchUp rather than Electron Bot (#29154)
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2021-05-17 14:47:19 -04:00
Milan Burda
ab3e65ae34 fix: [webview] fix missing properties on events when contextIsolation: true (#29143)
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2021-05-13 23:39:16 +02:00
Milan Burda
29d8cf5423 fix: <webview> focus / blur events don't work with contextIsolation enabled (#29004) (#29026) 2021-05-07 11:15:45 +09:00
Electron Bot
3ed3d28d70 Bump v10.4.5 2021-05-04 11:47:30 -07:00
Samuel Attard
030562e065 build: Use goma for all releases (#26476) (#28977)
* build: use goma for all release builds

* Make sure goma is setup everywhere it is needed

* Show ninja stats on release builds

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-05-03 18:01:24 -07:00
Samuel Attard
1adea52f3d Revert "Bump v10.4.5"
This reverts commit 9824bc06d5.
2021-05-03 16:04:55 -07:00
Electron Bot
9824bc06d5 Bump v10.4.5 2021-04-30 11:09:10 -07:00
Samuel Attard
382f1ec9e4 build: do not require vsts token for releases (#28643) 2021-04-30 11:07:02 -07:00
Keeley Hammond
b0bbf47e0c build: add release-env context to publish-macos (#28946) 2021-04-30 10:58:47 -07:00
Pedro Pontes
770fff694a chore: cherry-pick f37149c4434f from chromium (#28949)
* chore: cherry-pick f37149c4434f from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-04-30 09:37:06 -07:00
Pedro Pontes
56b680713a chore: cherry-pick 02f5ef8c88d7 from chromium (#28935)
* chore: cherry-pick 02f5ef8c88d7 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-04-29 13:38:17 -07:00
Pedro Pontes
118c2faa86 chore: cherry-pick 668cf831e912 from chromium (#28931)
* chore: cherry-pick 668cf831e912 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-04-29 17:33:42 +02:00
Pedro Pontes
3cd06c9095 chore: cherry-pick 619083c7d8 from v8 (#28906)
Co-authored-by: Electron Bot <electron@github.com>
2021-04-28 15:40:15 -07:00
Pedro Pontes
88ede25a99 chore: cherry-pick 00245033cf from v8 (#28903) 2021-04-28 12:50:08 -07:00
Pedro Pontes
d52c1ef201 chore: cherry-pick 7dd3b1c86795 from chromium (#28820)
* chore: cherry-pick 7dd3b1c86795 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-04-28 09:58:42 -04:00
Pedro Pontes
40d0be9661 chore: cherry-pick 1028ffc9bd83 from chromium (#28817)
* chore: cherry-pick 1028ffc9bd83 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-04-28 20:10:07 +09:00
Pedro Pontes
72f3c5e8ec chore: cherry-pick ed5f62c36d from angle. (#28874)
* chore: cherry-pick ed5f62c36d from angle.

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-04-28 02:12:08 -07:00
trop[bot]
882eb8a3ba build: actually use SSL when downloading things via python (#28891)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2021-04-28 02:03:04 -07:00
Pedro Pontes
c840550619 chore: cherry-pick 5745eaf16077 from chromium (#28802)
* chore: cherry-pick 5745eaf16077 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-04-27 21:05:00 -07:00
Pedro Pontes
59c0c9fce0 chore: cherry-pick aa2154a9c1 from v8 (#28863) 2021-04-27 12:02:50 -04:00
Electron Bot
1b8d60305b Bump v10.4.4 2021-04-27 08:00:07 -07:00
Pedro Pontes
1f6e825a9f chore: cherry-pick fe85e04a1797 from chromium (#28798)
* chore: cherry-pick fe85e04a1797 from chromium

* update patches

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-04-27 16:47:26 +09:00
Pedro Pontes
c9774944ba chore: cherry-pick 406ae3e8a9a8 from chromium (#28814)
* chore: cherry-pick 406ae3e8a9a8 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-04-27 10:11:54 +09:00
trop[bot]
99a521ecbe build: fix releases that failed halfway through npm publish actions (#28854)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2021-04-26 20:37:25 -04:00
Pedro Pontes
d3152808bb chore: cherry-pick 8f054c5df2 and de1dbdb608 from chromium (#28823)
* chore: cherry-pick 8f054c5df2 and de1dbdb608 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-04-26 12:35:15 -04:00
Pedro Pontes
3fe97b1b1b chore: cherry-pick 8ebd894186 and 1e35f64725 from v8 (#28811)
* chore: cherry-pick 8ebd894186 and 1e35f64725 from v8

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-04-26 20:09:36 +09:00
Pedro Pontes
95d9d7ddfe chore: cherry-pick fe20b05a0e5e from chromium (#28780)
* chore: cherry-pick fe20b05a0e5e from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-04-26 20:08:57 +09:00
trop[bot]
5593485831 fix: only set backgroundColor in default-app for default index.html (#28840)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-04-26 11:49:43 +02:00
Pedro Pontes
049b1d0817 chore: cherry-pick ffde6ee0e4 from v8 (#28800) 2021-04-26 16:30:37 +09:00
Pedro Pontes
a5e40fea7d chore: cherry-pick 6b84dc72351b from chromium (#28808)
* chore: cherry-pick 6b84dc72351b from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-04-26 09:16:38 +02:00
Pedro Pontes
840ff8d720 chore: cherry-pick 74c9ad9a53 from chromium (#28761) 2021-04-22 10:57:47 -07:00
Pedro Pontes
f8738fb355 chore: cherry-pick 8c3eb9d1c409 from chromium (#28705)
* chore: cherry-pick 8c3eb9d1c409 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-04-21 11:42:27 -04:00
Pedro Pontes
16568d71e4 chore: cherry-pick 6a6361c9f31c from chromium (#28703)
* chore: cherry-pick 6a6361c9f31c from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-04-21 13:18:10 +02:00
Electron Bot
8f1074c204 chore: cherry-pick 512cd5e179f4 from v8 (#28750)
* chore: cherry-pick 512cd5e179f4 from v8

* update patches
2021-04-21 12:29:48 +02:00
Pedro Pontes
0b6842d429 chore: cherry-pick 872b8c13d7 from skia (#28739) 2021-04-21 12:21:04 +02:00
Pedro Pontes
4f4c6a2161 chore: cherry-pick 012e9baf46c9 from chromium (#28725)
* chore: cherry-pick 012e9baf46c9 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-04-20 11:50:10 -04:00
trop[bot]
95b81c16c4 build: read node files as binary files (#28733)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-04-19 19:59:11 -04:00
Pedro Pontes
bb913bc17b chore: cherry-pick 254c7945ee from v8 (#28698) 2021-04-19 09:54:40 -04:00
Pedro Pontes
7c72a36b15 chore: cherry-pick 3c80bb2a594f from chromium (#28690)
* chore: cherry-pick 3c80bb2a594f from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-04-19 09:52:15 -04:00
Electron Bot
792d189241 Bump v10.4.3 2021-04-13 13:36:46 -07:00
Electron Bot
602f65ab5d chore: cherry-pick 02f84c745fc0 from v8 (#28640)
* chore: cherry-pick 02f84c745fc0 from v8

* update patches
2021-04-13 13:29:37 -07:00
trop[bot]
18d60df173 docs: systemPreferences.subscribeWorkspaceNotification return type (#28611)
Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com>
2021-04-12 00:14:36 -07:00
trop[bot]
ce12429814 ci: Add goma fallback flag (#28547)
* ci: fallback to local compile if goma auth fails

* use correct flag

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-04-07 09:47:42 +09:00
trop[bot]
b44be57752 fix: disappearing thumbar after win.hide() (#28388)
* fix: disappearing thumbar after win.hide()

* Add descriptive comment

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-03-25 12:15:45 -07:00
Pedro Pontes
7d8616b2b7 chore: cherry-pick e1505713dc31 from chromium (#28234) 2021-03-24 09:55:51 +09:00
Electron Bot
35b0e35544 Bump v10.4.2 2021-03-23 08:09:55 -07:00
trop[bot]
93b44837a2 fix: escape URL passed to shell.openExternal on windows (#28339)
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2021-03-23 03:00:30 -07:00
Pedro Pontes
e16d593fcb chore: cherry-pick a66dbdcf6493 from chromium (#28299) 2021-03-22 08:09:21 -07:00
trop[bot]
51f9712c8f fix: DesktopCapturer gc'd prior to capture completion (#28279)
desktopCapture.getSources() returns a promise which should resolve
when capturing finishes. Internally it creates an instance of
DesktopCapturer which is responsible for resolving or rejecting
the promise.

Between the time DesktopCapturer starts capturing frames and when
it finishes, it's possible for its handle to be GC'd leading to
it never resolving.

These changes pin the instance of DesktopCapturer until it either
finishes or errors.

fixes #25595

Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>
2021-03-22 11:03:41 +09:00
trop[bot]
36cdfef776 fix: drag region offsets in BrowserViews (#28295)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-03-22 10:58:42 +09:00
Pedro Pontes
8920fd100e chore: cherry-pick c6d6f7aee733 from chromium (#28250)
* chore: cherry-pick c6d6f7aee733 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-03-19 10:23:05 +09:00
Pedro Pontes
4142f4e74e chore: cherry-pick 37210e5ab006 from chromium (#28248)
* chore: cherry-pick 37210e5ab006 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-03-18 15:15:59 +09:00
Pedro Pontes
ffd43c97f2 chore: cherry-pick 53c4d05797 and 6e8f04c980 from v8 (#28237)
* cherry-pick 53c4d05797 and 6e8f04c980 from v8

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-03-18 15:15:21 +09:00
Pedro Pontes
a576c92d4b chore: cherry-pick 5651fb858b75 from chromium (#28199)
* chore: cherry-pick 5651fb858b75 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-03-16 19:20:21 +09:00
Pedro Pontes
9c3da1cb35 chore: cherry-pick b3dc4c4b349d from chromium (#28133)
* chore: cherry-pick b3dc4c4b349d from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-03-15 13:32:29 -04:00
Electron Bot
2e5c33a25b Bump v10.4.1 2021-03-15 10:28:28 -07:00
Pedro Pontes
beca2c5c02 chore: cherry-pick 6e8856624cbb from chromium (#28166)
* chore: cherry-pick 6e8856624cbb from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-03-15 16:54:55 +09:00
Pedro Pontes
4b24e2b045 chore: cherry-pick b772b48067c4 from chromium (#28098)
* chore: cherry-pick b772b48067c4 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-03-15 10:23:52 +09:00
Keeley Hammond
1f1ff0e51f fix: documentEdited property on BrowserWindow (#28159) 2021-03-14 17:27:36 -07:00
Pedro Pontes
e744ac042a chore: cherry-pick 3910c9f5cde6 from chromium (#28094)
* chore: cherry-pick 3910c9f5cde6 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-03-13 10:44:05 +09:00
Keeley Hammond
12a9970969 fix: values return from the ctx bridge with dynamic property support should themselves support dynamic properties (#28160)
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2021-03-12 17:39:06 -08:00
Pedro Pontes
bb915813d7 chore: cherry-pick a4faa754a9ef from chromium (#28092)
* chore: cherry-pick a4faa754a9ef from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-03-12 19:44:33 +09:00
Pedro Pontes
2e9a3d6f28 chore: cherry-pick 38781b86f0 from chromium (#28051) 2021-03-12 16:37:59 +09:00
Pedro Pontes
91c465dcea chore: cherry-pick dea071d8b30f from chromium (#28090)
* chore: cherry-pick dea071d8b30f from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-03-10 11:06:03 -05:00
trop[bot]
200e7294de build: call goma_ctl.py ensure_start directly (#28059)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-03-08 19:17:45 -08:00
Pedro Pontes
c2cef0aa02 chore: cherry-pick 7e0e52df283c from chromium (#28047)
* chore: cherry-pick 7e0e52df283c from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-03-08 14:03:59 -05:00
Milan Burda
581b47582f fix: warning when worldSafeExecuteJavaScript is disabled (#27974) 2021-03-05 10:15:37 +09:00
trop[bot]
59951f344b fix: offset browserview drag regions on macOS (#27986)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-03-04 16:31:49 +09:00
trop[bot]
6e9db782c7 fix: ensure owner window valid (#27946)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-03-02 09:44:05 -08:00
Shelley Vohr
a64d0713cd fix: set WebContents background color ubiquitously (#27945)
Move it from LoadURL to RenderViewCreated which is present
in all window creation cases and is called early enough to be
relevant from user prespective and after RenderWidgetHostView
is already present.

Co-authored-by: marekharanczyk <48673767+marekharanczyk@users.noreply.github.com>
2021-03-01 13:21:32 -08:00
Shelley Vohr
e7d7c66636 fix: libuv hang when nodeIntegrationInSubframes enabled (#27881) 2021-02-24 18:01:05 +09:00
Michaela Laurencin
c6f8625947 fix: replace default frameName title with null check (#27813) (#27868)
* fix: replace default frameName title with null check (#27521)

* refactor: replace default frameName title with null check

* add isNativeWindowOpen check in makeBrowserWindowOptions

* modify snapshot test files

* replace title with frame-name again for proxy - not native open

* modify proxy snapshot title key-value to come after height key-value

* add nativewindowopen check to null title

* fix lint and json formatting

* reformat test cases for this branch

the merged changes included some rearrangements to the json items that
do not apply to this branch, so the items were reordered according to
this branch's previous files.

* remove default frameName title for native open call and modify test txts
2021-02-23 10:26:01 -05:00
trop[bot]
1c198eef50 fix: cap sendInputEvent text length at n-1 (#27854)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2021-02-22 14:01:21 -08:00
Electron Bot
dc664acab2 Bump v10.4.0 2021-02-19 11:56:33 -08:00
Keeley Hammond
6b89037dea Revert "perf: patch libuv to use posix_spawn on macOS (#27655)" (#27811)
This reverts commit afb74be01a.
2021-02-19 10:00:45 -08:00
trop[bot]
d3e828cc4e docs: update menu item '&' escaping (#27816)
Co-authored-by: mlaurencin <mlaurencin@electronjs.org>
2021-02-19 09:45:03 -08:00
trop[bot]
acabbf22fe fix: don't create last saved path if none exists (#27807)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-02-19 15:44:28 +09:00
trop[bot]
ee95a258b3 fix: restore window event redispatching on mac (#27812)
Co-authored-by: clavin <cwatford@slack-corp.com>
2021-02-19 15:42:02 +09:00
Robo
072bec5d01 chore: cherry-pick b712f9fd66 from chromium (#27796)
Backports https://chromium-review.googlesource.com/c/chromium/src/+/2690730
2021-02-18 17:59:11 -08:00
Robo
c3da53d3c0 chore: cherry-pick 62bda83979 from chromium (#27795)
Backports https://chromium-review.googlesource.com/c/chromium/src/+/2651183
2021-02-18 15:33:47 -08:00
trop[bot]
2345ff0644 fix: enableBlinkFeatures warning in webviews (#27788)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-02-18 14:06:56 -08:00
Robo
a217df4a9d chore: cherry-pick 59f3ca2780 from chromium (#27794)
Backports https://chromium-review.googlesource.com/c/chromium/src/+/2679121
2021-02-18 13:59:39 -08:00
Robo
4de0f99073 chore: cherry-pick 84853ff62a from v8 (#27793)
Backports https://chromium-review.googlesource.com/c/v8/v8/+/2689191
2021-02-18 13:19:48 -08:00
Robo
4f3b520516 chore: cherry-pick 3a6f6fbfd8 from chromium (#27791)
Backports https://chromium-review.googlesource.com/c/chromium/src/+/2692927
2021-02-18 13:18:59 -08:00
Eryk Rakowski
4293389679 feat: add win.setTopBrowserView() so that BrowserViews can be raised (#27711)
* feat: add `win.setTopBrowserView()` so that BrowserViews can be raised (#27007)

* feat: Raise a browser view via `BrowserWindow.setTopBrowserView()`.

This is similar to removing and re-adding a browser view, but avoids a visible flicker as the browser view is not removed from the window when using `setTopBrowserView`. Note: if the given browser view is not attached to the window, it will be added.

This commit contains the macOS implementation.

* feat: setTopBrowserView support for Windows and Linux

* docs: add info about setTopBrowserView

* docs: Clarify behavior when browserView is not yet attached.

* fix: throw en error when browserView is not attached to the window

* fix: build error

* fix: test

* fix: add test case

* fix: tests

* fix: reparenting

* fix: close second window in tests

Co-authored-by: sentialx <sentialx@gmail.com>

* fix: build error

Co-authored-by: Stewart Lord <stew@offbynone.com>
2021-02-18 19:17:04 +09:00
Jeremy Rose
7c1335ec1c chore: cherry-pick 76cb1cc32baa from chromium (#27749)
* chore: cherry-pick 76cb1cc32baa from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-02-18 10:18:17 +09:00
Cheng Zhao
779efcfa11 fix: check WebContents before emitting render-process-gone event (#27758) 2021-02-17 15:52:05 -08:00
Milan Burda
bd08155093 refactor: load preload script directly as a string (#27741) 2021-02-16 11:40:10 -08:00
trop[bot]
f71c2c78dd ci: ignore errors deleting user app directories on WOA testing (#27727)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-02-15 11:49:07 +09:00
Jeremy Rose
5e30c0ae26 chore: cherry-pick df438f22f7d2 from chromium (#27608)
* chore: cherry-pick df438f22f7d2 from chromium

* fix patch
2021-02-15 09:37:38 +09:00
Jeremy Rose
7966baff5a chore: cherry-pick 9afec1792cfc from chromium (#27611) 2021-02-11 16:35:05 -08:00
Jeremy Rose
986d23d793 chore: cherry-pick b0d3d3e85fa6 from skia (#27613) 2021-02-11 15:59:05 -08:00
trop[bot]
afb74be01a perf: patch libuv to use posix_spawn on macOS (#27655)
* perf: patch libuv to use posix_spawn on macOS

patch libuv to fix a performance regression in macOS >= 11

Spawning child processes in an Electron application with a hardened
runtime has become slow in macOS Big Sur. This patch is a squashed
version of https://github.com/libuv/libuv/pull/3064

This patch should be removed when libuv PR 3064 is merged.

Fixes: https://github.com/libuv/libuv/issues/3050
Fixes: https://github.com/electron/electron/issues/26143
PR-URL: https://github.com/libuv/libuv/pull/3064

Authored-by: Juan Pablo Canepa <jpcanepa@gmail.com>
Co-authored-by: Marcello Bastéa-Forte <marcello@descript.com>
Electron patch prepared by: Pat DeSantis <pdesantis3@gmail.com>

* Remove trailing whitespaces from patch file

* update patches

* Update patch description

* Update .patches

* update patches

Co-authored-by: Pat DeSantis <pdesantis3@gmail.com>
Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Robo <hop2deep@gmail.com>
2021-02-10 16:53:36 -08:00
Shelley Vohr
8068b39ddc fix: Cannot read property 'setDockSide' of undefined (#27691) 2021-02-10 10:58:51 -08:00
Shelley Vohr
e8ae6fe0d0 fix: BrowserView rendering flicker (#27660) 2021-02-09 13:09:51 -08:00
trop[bot]
b5de6d9440 perf: optimize data structures in context_bridge::ObjectCache (#27665)
* Use std::forward_list instead of base::LinkedList for better perf,
more consistent memory management.  Better than std::list because we
don't need the double-linked-list behavior of std::list
* Use std::unordered_map instead of std::map for the v8 hash table

Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2021-02-09 08:32:03 -08:00
trop[bot]
a2f777213d fix: clean up base::LinkedList in context_bridge::ObjectCache (#27637)
base::LinkedList does not delete its members on destruction. We need to
manually ensure the linkedlist is empty when the ObjectCache is
destroyed.

Fixes #27039

Notes: Fixed memory leak when sending non-primitives over the context
bridge

Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2021-02-05 14:25:05 -08:00
Electron Bot
f916f172e0 Bump v10.3.2 2021-02-05 10:08:23 -08:00
Jeremy Rose
6606b743c0 chore: cherry-pick 36abafa0a316 from v8 (#27623) 2021-02-05 09:43:16 -08:00
Andrey Belenko
ee86f029d8 chore: Chromium backports M87-1 (#26932)
* chore: chromium backports M87-1

Contains applicable backports from M87-1 release
CVE-2020-16037
CVE-2020-16041
CVE-2020-16042

* chore: cherry-pick 381c4b5679 from chromium. (#26832)

* fix: message box missing an "OK" button in GTK (#26915)

Co-authored-by: Mimi <1119186082@qq.com>

* chore: cherry-pick d8d64b7cd244 from chromium (#26892)

* chore: cherry-pick 290fe9c6e245 from v8 (#26896)

* docs: add missing deprecated systemPreferences APIs to breaking-changes (#26934)

Co-authored-by: Milan Burda <milan.burda@gmail.com>

* chore: cherry-pick 3abc372c9c00 from chromium (#26894)

* chore: cherry-pick 3abc372c9c00 from chromium

* resolve conflict

* fix: Avoid crashing in NativeViewHost::SetParentAccessible on Windows 10 (#26949)

* fix: Avoid crashing in NativeViewHost::SetParentAccessible on Windows

This fixes #26905. The patch was obtained from @deepak1556, who in turn
got it from the Microsoft Teams folks.

I believe the crash started happening due to the changes in
5c6c8e994b%5E!/#F15

This affects Electron 9 and later.

Notes: Fix occasional crash on Windows

* Update .patches

* update patches

Co-authored-by: Biru Mohanathas <birunthan@mohanathas.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: Electron Bot <electron@github.com>

* fix: Upload all *.dll.pdb to symbol server (#26964)

Fixes #26961.

Notes: Add Electron DLLs like libGLESv2.dll to symbol server

Co-authored-by: Biru Mohanathas <birunthan@mohanathas.com>

* fix: restrict sendToFrame to same-process frames by default (#26875) (#26927)

* fix: restrict sendToFrame to same-process frames by default (#26875)

* missed a conflict

* fix build

* fix build again

* fix usage of defer

* Bump v10.2.0

* chore: cherry-pick 6763a713f957 from skia (#26956)

* chore: chromium backports M87-1

PR feedback: add links to changes in the upstream

Co-authored-by: Andrey Belenko <anbelen@microsoft.com>
Co-authored-by: Pedro Pontes <pepontes@microsoft.com>
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Mimi <1119186082@qq.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: Milan Burda <milan.burda@gmail.com>
Co-authored-by: Biru Mohanathas <birunthan@mohanathas.com>
Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Michaela Laurencin <35157522+mlaurencin@users.noreply.github.com>
2021-02-04 13:46:08 -05:00
trop[bot]
8baf1dc0e5 fix: crash when loadExtension fails (#27590)
Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>
2021-02-03 16:29:09 +09:00
trop[bot]
0827a06b1e docs: Update Readme, don't mention Electron < 2 (#27540)
* chore: Update Readme, don't mention Electron < 2

* chore: Add back versioning info

Co-authored-by: Felix Rieseberg <felix@felixrieseberg.com>
2021-01-29 12:44:12 -08:00
Pedro Pontes
2aec5c5df5 chore: cherry-pick 0d2bf89e15cc from chromium (#27533)
* chore: cherry-pick 0d2bf89e15cc from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-01-29 12:39:43 -08:00
Pedro Pontes
5483733b1b chore: cherry-pick eddb823309 from v8. (#27532) 2021-01-28 14:57:33 -08:00
Milan Burda
52f8f91931 docs: update Xcode / macOS SDK version in build-instructions-macos.md (#27514) 2021-01-28 11:47:14 -08:00
Pedro Pontes
227d6ead6d chore: cherry-pick 442703fe44 from chromium. (#27531) 2021-01-28 13:31:11 -06:00
Erick Zhao
fb4cd68f93 docs: update verb tenses for structured clone notes (#27520) 2021-01-27 11:49:16 -08:00
Electron Bot
7d3db3d7f8 Bump v10.3.1 2021-01-27 11:18:22 -08:00
Pedro Pontes
9510e1f6e4 chore: cherry-pick f9add3b8e5 from chromium. (#27452)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2021-01-27 20:09:48 +09:00
Pedro Pontes
a396489101 chore: cherry-pick 4af9de9806 and 115eccc0c6 from chromium. (#27495)
* chore: cherry-pick 4af9de9806 and 115eccc0c6 from chromium.

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-01-27 20:09:16 +09:00
Milan Burda
b90f5435a9 fix(asar): readdir(withFileTypes) fails on deep directory (#26865) (#27507)
when using readdirSync on a deep directory within the archive, the code fails to get the stats of child paths.

Co-authored-by: Avi Vahl <avi.vahl@wix.com>
2021-01-27 17:04:34 +09:00
Milan Burda
13a0757acb build: fix build with enable_printing=false (#27456) (#27505) 2021-01-27 16:35:38 +09:00
Pedro Pontes
a5a6f12e1d chore: cherry-pick 9ec949913373 from chromium (#27402)
* chore: cherry-pick 9ec949913373 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-01-26 14:30:30 -08:00
Pedro Pontes
cef56e162f chore: cherry-pick 2c26785, b03de8b and a3c3ef6 from usrsctp. (#27492)
* chore: cherry-pick 2c26785, b03de8b and a3c3ef6 from usrsctp.

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-01-26 14:13:44 -08:00
Pedro Pontes
a73163d09a chore: cherry-pick d74ba931c4b7 from chromium (#27407)
* chore: cherry-pick d74ba931c4b7 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-01-26 09:19:52 -08:00
trop[bot]
2e98e11364 fix: <webview> not working with Trusted Types (#27465)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-01-25 11:47:33 -08:00
tosmolka
0ead47ffea chore: cherry-pick 3ca3d70c7af5 from chromium (#27395)
* chore: cherry-pick 3ca3d70c7af5 from chromium

* update patches

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-01-25 11:29:54 -08:00
tosmolka
1897909a50 chore: cherry-pick 4794770cf175 from chromium (#27394)
* chore: cherry-pick 4794770cf175 from chromium

* update patches
2021-01-25 08:39:19 -08:00
trop[bot]
62b2243574 fix: CSP with unsafe-eval detection with Trusted Types (#27468)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-01-25 08:33:25 -08:00
tosmolka
6e35f2b7dd chore: cherry-pick 861253f1de98 from chromium (#27361)
* chore: cherry-pick 861253f1de98 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-01-25 13:34:22 +09:00
tosmolka
c4bf95576c chore: cherry-pick da9b5ec032ad from chromium (#27399)
* chore: cherry-pick da9b5ec032ad from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-01-22 11:35:28 -08:00
tosmolka
4005935937 chore: cherry-pick 79440c3a0675 from chromium (#27360)
* chore: cherry-pick 79440c3a0675 from chromium

* Resolve merge conflicts
2021-01-22 11:33:58 -08:00
Pedro Pontes
31fa081da1 chore: cherry-pick ffd6ff5a61b9 from v8 (#27412)
* chore: cherry-pick ffd6ff5a61b9 from v8

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-01-21 12:59:06 -08:00
trop[bot]
340b4a2c1e fix: actually clear pending requests in devtoolsagenthost (#27438)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-01-21 12:51:03 -08:00
Pedro Pontes
fd269ec973 chore: cherry-pick 44d052c and 0919d75 from v8. (#27420) 2021-01-21 09:42:55 -08:00
tosmolka
d133ec709f chore: cherry-pick d866af575997 from chromium (#27393)
* chore: cherry-pick d866af575997 from chromium

* update patches
2021-01-21 09:33:52 -08:00
Milan Burda
2b76ac0848 fix: apply tzdata2020f to ICU (#27368)
Co-authored-by: Milan Burda <miburda@microsoft.com>
2021-01-21 15:43:21 +09:00
trop[bot]
726e3f9bb8 fix: Shutdown crash in DownloadItem callback (#27417)
The call stack for one of our top crashes looks like this:

```
node::Abort (node_errors.cc:241)
node::Assert (node_errors.cc:256)
node::MakeCallback (callback.cc:226)
gin_helper::internal::CallMethodWithArgs (event_emitter_caller.cc:23)
gin_helper::EmitEvent<T> (event_emitter_caller.h:51)
gin_helper::EventEmitterMixin<T>::Emit<T> (event_emitter_mixin.h:81)
electron::api::DownloadItem::OnDownloadUpdated (electron_api_download_item.cc:115)
download::DownloadItemImpl::UpdateObservers (download_item_impl.cc:482)
content::DownloadManagerImpl::Shutdown (download_manager_impl.cc:508)
content::BrowserContext::~BrowserContext (browser_context.cc:476)
```

Full stack here: https://sentry.io/share/issue/9b030a0601b547188181b543c16ecda2/

During browser shutdown, the `DownloadManager` was being cleaned up
*after* the Node environment had already been destroyed. This caused the
`DownloadItem::OnDownloadUpdated` callback to crash when trying to emit
the JS `done` event.

To prevent this, we now manually shut down the `DownloadManager`
earlier. This is also mentioned in the comment on
`DownloadManager::Shutdown`:

```
// Shutdown the download manager. Content calls this when BrowserContext is
// being destructed. If the embedder needs this to be called earlier, it can
// call it. In that case, the delegate's Shutdown() method will only be called
// once.
```

Co-authored-by: Biru Mohanathas <birunthan@mohanathas.com>
2021-01-21 15:29:50 +09:00
tosmolka
bc336e16ef chore: cherry-pick 63166010061d from v8 (#27397)
* chore: cherry-pick 63166010061d from v8

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-01-20 11:34:02 -08:00
tosmolka
1faf18f2d4 chore: cherry-pick 19aeffd4d93f from chromium (#27396)
* chore: cherry-pick 19aeffd4d93f from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2021-01-20 10:58:10 -08:00
Robo
4a1e299053 fix: increase stack size on windows (#27386) 2021-01-20 13:29:31 -05:00
trop[bot]
ae1f1f2dfa fix: prevent crash when keyboard event immediately precedes calling BrowserWindow.close() (#27358)
* fix: prevent crash when destroyed widget receives keyboard event

Activating a key to close a window will cause a silent crash. Handling the keyboard
event will lead to a nullptr dereferenced in Chromium code if the window widget has
already been destroyed.

* test: ensure BrowserWindow doesn't crash from keyboard events during close

Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>
2021-01-19 15:50:43 +09:00
Shelley Vohr
fe4bc1d568 refactor: use platform-specific TaskRunner to print (#27328) 2021-01-19 15:24:09 +09:00
Electron Bot
d6d9d954b4 Bump v10.3.0 2021-01-14 08:50:03 -08:00
Erick Zhao
2ee375c5bf docs: update devtools extension tutorial (#26326) (#27312)
* docs: update devtools extension tutorial

* Update docs/tutorial/devtools-extension.md

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

* update

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

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2021-01-14 14:55:12 +09:00
trop[bot]
c04ec2d332 build: fix installing of code-signing identity on macOS (#27293)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-01-13 13:46:13 -08:00
Keeley Hammond
4f9122647a ci: fix broken homebrew cache (#27308)
Backport of #27224
2021-01-13 11:11:30 -08:00
trop[bot]
846504af8e test: disable flaky reporting API test (#27272)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2021-01-12 10:12:17 +09:00
Shelley Vohr
5d97320ba3 Revert "Bump v10.2.1"
This reverts commit 2aaa5438cd.
2021-01-11 14:27:47 -08:00
Electron Bot
2aaa5438cd Bump v10.2.1 2021-01-11 09:33:58 -08:00
Shelley Vohr
08da5ee22a fix: handle BrowserView reparenting (#27220) 2021-01-11 10:49:56 +09:00
trop[bot]
f3a4b44662 test: skip PictureInPicture video when media not supported (#27234)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-01-07 21:39:04 -08:00
trop[bot]
424177164e test: skip media-started-playing media-paused events test when media not supported (#27238)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2021-01-07 18:46:19 -08:00
Shelley Vohr
079251f168 fix: draggable views on BrowserViews on Windows (#27222) 2021-01-07 13:11:07 -08:00
trop[bot]
17054405d8 docs: document frameId meaning (#27190)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2021-01-05 17:19:40 +09:00
trop[bot]
d1d8c9badd fix: default offset when no drag regions (#27185)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-01-05 12:14:15 +09:00
Eryk Rakowski
700c410ec3 fix(extensions): implement missing web_request hooks (#27097)
* fix(extensions): implement missing web_request hooks (#22655)

Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>

* fix: remove ukm_source_id

Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>
2021-01-05 11:40:36 +09:00
Eryk Rakowski
d3f7ad2035 feat: add support for webContents option in BrowserView (#27094)
* feat: add support for webContents option in BrowserView (#26802)

* feat: add support for webContents option in BrowserView

* tests: add tests

* fix: missing webContents import

* fix: WebContents::New -> Create
2021-01-05 11:22:56 +09:00
Erick Zhao
f5deaedfaa docs: update OSR max FPS number (#27060) 2020-12-17 20:30:53 +09:00
trop[bot]
2717a48f30 fix: memory leak in desktopCapturer.getSources (#27057)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-12-16 20:47:47 -08:00
Jeremy Rose
fea41c6f6d fix: throw when using globalShortcut before ready (#27023)
* fix: throw when using globalShortcut before ready (#27002)

* add missing include
2020-12-17 10:07:44 +09:00
Michaela Laurencin
d58bfdcdfd chore: cherry-pick 2d18de63acf1 from chromium (#26953)
* chore: cherry-pick 2d18de63acf1 from chromium

* resolve conflict

* modified patches from CRLF to LF

* Update cherry-pick-2d18de63acf1.patch

Remove test from patch
2020-12-15 16:36:13 -05:00
trop[bot]
d0451832ed fix: add SafeForTerminationScopes for SIGINT interruptions (#26970)
* fix: add SafeForTerminationScopes for SIGINT interruptions

* update patches

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-12-14 11:02:48 -08:00
trop[bot]
22481aa347 ci: ignore failures on Ninja summary (#26993)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2020-12-14 13:43:52 -05:00
Jeremy Rose
7b0bb0b637 fix: cherry-pick b84b4f3323b from chromium (#26963) 2020-12-14 13:01:43 -05:00
Michaela Laurencin
36f8e9daa2 chore: cherry-pick 6763a713f957 from skia (#26956) 2020-12-11 15:05:16 -08:00
Electron Bot
4594af595e Bump v10.2.0 2020-12-11 13:03:39 -08:00
Jeremy Rose
0bbd268eb4 fix: restrict sendToFrame to same-process frames by default (#26875) (#26927)
* fix: restrict sendToFrame to same-process frames by default (#26875)

* missed a conflict

* fix build

* fix build again

* fix usage of defer
2020-12-11 13:01:40 -08:00
trop[bot]
47b9207e6d fix: Upload all *.dll.pdb to symbol server (#26964)
Fixes #26961.

Notes: Add Electron DLLs like libGLESv2.dll to symbol server

Co-authored-by: Biru Mohanathas <birunthan@mohanathas.com>
2020-12-11 12:53:16 -08:00
trop[bot]
846412cdf1 fix: Avoid crashing in NativeViewHost::SetParentAccessible on Windows 10 (#26949)
* fix: Avoid crashing in NativeViewHost::SetParentAccessible on Windows

This fixes #26905. The patch was obtained from @deepak1556, who in turn
got it from the Microsoft Teams folks.

I believe the crash started happening due to the changes in
5c6c8e994b%5E!/#F15

This affects Electron 9 and later.

Notes: Fix occasional crash on Windows

* Update .patches

* update patches

Co-authored-by: Biru Mohanathas <birunthan@mohanathas.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: Electron Bot <electron@github.com>
2020-12-11 12:12:08 -08:00
Jeremy Rose
b77e48a2c7 chore: cherry-pick 3abc372c9c00 from chromium (#26894)
* chore: cherry-pick 3abc372c9c00 from chromium

* resolve conflict
2020-12-11 11:03:59 -08:00
trop[bot]
87d98480fa docs: add missing deprecated systemPreferences APIs to breaking-changes (#26934)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-12-11 10:59:09 -08:00
Jeremy Rose
6d468cd9b5 chore: cherry-pick 290fe9c6e245 from v8 (#26896) 2020-12-10 15:28:32 -08:00
Jeremy Rose
38e585434f chore: cherry-pick d8d64b7cd244 from chromium (#26892) 2020-12-10 15:25:17 -08:00
trop[bot]
5481d27bcd fix: message box missing an "OK" button in GTK (#26915)
Co-authored-by: Mimi <1119186082@qq.com>
2020-12-10 13:05:18 -08:00
Pedro Pontes
135133e391 chore: cherry-pick 381c4b5679 from chromium. (#26832) 2020-12-10 11:23:38 -05:00
Pedro Pontes
ad8de076e3 chore: cherry-pick ecdec1fb0f42 from chromium (#26866)
* chore: cherry-pick ecdec1fb0f42 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2020-12-09 15:01:37 -08:00
Pedro Pontes
5bad2d106c chore: cherry-pick 8c346e3cd9 from chromium. (#26830)
* chore: cherry-pick 8c346e3cd9 from chromium.

* update patches

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Electron Bot <electron@github.com>
2020-12-09 09:23:32 -08:00
Milan Burda
883b089e0f fix: systemPreferences.effectiveAppearance returning systemPreferences.getAppLevelAppearance() (#26852) (#26882) 2020-12-09 14:59:01 +09:00
Pedro Pontes
d0abffc1e7 chore: cherry-pick 5ffbb7ed173a from chromium (#26855)
* chore: cherry-pick 5ffbb7ed173a from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2020-12-08 20:38:02 -08:00
Electron Bot
e24e77f4a2 Bump v10.1.7 2020-12-07 14:30:27 -08:00
trop[bot]
9562a92c5d fix: handle security warnings promise when JS is disabled (#26871)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-12-07 13:03:37 -08:00
Pedro Pontes
4efe747847 chore: cherry-pick bbc6ab5bb49c from chromium (#26860)
* chore: cherry-pick bbc6ab5bb49c from chromium

* update patches

* update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2020-12-07 13:52:58 -05:00
Pedro Pontes
47f015f1e8 chore: cherry-pick eec5025668f8 from chromium (#26858)
* chore: cherry-pick eec5025668f8 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2020-12-07 10:56:35 -05:00
trop[bot]
5604037294 build: use all-for-one goma (#26699) (#26799)
* Revert "Revert "build: use one-for-all goma (#26679)" (#26689)"

This reverts commit 38ab829ea6.

* build: ensure file descriptor limit is higher on macOS

Co-authored-by: Samuel Attard <sam@electronjs.org>
2020-12-03 11:45:21 -08:00
trop[bot]
f6a3ba5d67 docs: BrowserWindow extension APIs are deprecated in Electron 9 (#26781)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-12-01 21:32:50 -08:00
trop[bot]
34fe161bdd fix: add check in IsMaximized for non-WS_THICKFRAME windows (#26779)
Co-authored-by: mlaurencin <mlaurencin@electronjs.org>
2020-12-01 21:30:40 -08:00
Shelley Vohr
e1bf7b9d8b fix: webContents interaction with draggable BrowserViews (#26744) 2020-12-01 16:03:33 -08:00
Shelley Vohr
5de766deb5 fix: renderer crash on setImmediate (#26747) 2020-12-01 15:42:17 -06:00
trop[bot]
70e41bcf43 fix: draggable regions calculation in BrowserWindow/BrowserView (#26753) 2020-12-01 11:30:08 -08:00
Milan Burda
f7a61c4592 fix: <webview> render-process-gone event dispatch (#26577)
Co-authored-by: Milan Burda <miburda@microsoft.com>
2020-11-18 17:56:44 -06:00
trop[bot]
b19c549511 revert: disable rosetta as Electron does not run under rosetta
This reverts commit 4829b0f816.

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-11-18 11:18:55 -08:00
Electron Bot
de14497f1c Bump v10.1.6 2020-11-18 05:17:23 -08:00
trop[bot]
570f9827ce fix: LC_ALL env should not be changed (#26550)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-11-18 08:14:49 -05:00
Shelley Vohr
9900e697b5 fix: transparently package bundles as zip archives (#26555) 2020-11-18 08:13:57 -05:00
trop[bot]
c6979ca421 test: support for adding extra module paths (#26544)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2020-11-17 19:42:43 -08:00
Pedro Pontes
ace3f9d3e1 chore: cherry-pick c244270e23 from chromium. (#26473)
* chore: cherry-pick 244270e23 from chromium.

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2020-11-16 16:15:31 -05:00
trop[bot]
7bd2f0db23 fix: make draggable regions work when devtools is opened on macOS (#26394)
* fix: make draggable region work when devtools is open

* fix: update draggable regions when resizing

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-11-16 15:38:25 +09:00
Milan Burda
83db340eb3 fix: ensure that internal messages are sent from the main process (#26439) 2020-11-16 15:32:00 +09:00
Pedro Pontes
17d08c1557 chore: cherry-pick 633f67caa6d0 from v8 (#26455)
* chore: cherry-pick 633f67caa6d0 from v8

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2020-11-12 09:14:51 -05:00
trop[bot]
66e548333f build: fix usage of octokit/rest and make uploading better (#26388)
* build: fix usage of octokit/rest and make uploading better

* Update with change from #26414

* Update with changes from #26425

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2020-11-11 14:32:29 -05:00
trop[bot]
7558b5878b chore: synchronously destroy WebContents on event prevented (#26417)
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-11-11 10:07:02 -05:00
Jeremy Rose
3ad830c804 chore: cherry-pick bbb64b5c6916 from chromium (#26438)
* chore: cherry-pick bbb64b5c6916 from chromium

* update patches

Co-authored-by: Electron Bot <electron@github.com>
2020-11-11 09:27:22 -05:00
Jeremy Rose
2460b02e48 chore: cherry-pick 815b12dfb5ec from v8 (#26411) 2020-11-10 14:47:49 -08:00
Jeremy Rose
9012c3bb8b chore: cherry-pick 8c725f7b5bbf from v8 (#26408) 2020-11-10 14:23:01 -08:00
Jeremy Rose
90d72684fc chore: cherry-pick 2882e1afd982 from angle (#26405) 2020-11-10 13:50:27 -08:00
Jeremy Rose
529fbf53e1 chore: cherry-pick 146bd99e762b from v8 (#26399) 2020-11-10 13:50:10 -08:00
Jeremy Rose
4ef5c2666e chore: cherry-pick 8f24f935c903 from chromium (#26396) 2020-11-10 13:49:59 -08:00
Samuel Attard
4aa4d1914b build: auto-push patch file changes (#26235) (#26433)
* build: auto-push patch file changes

* chore: change patch for testing purposes

* build: remove stray log

* build: push as electron bot

* build: suppress all output of the push-patch script

* chore: fix linting
2020-11-10 13:47:56 -08:00
trop[bot]
16681be8fd chore: cleanup inline HTML in docs (#26391)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2020-11-10 10:48:22 -05:00
trop[bot]
0aef4d6a8d fix: Initialize logging for crashpad (#26266)
* fix: Initialize logging for crashpad

* chore: update mini_chromium

* conditionally access CommandLine because crashpad doesn't initialize one.

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

* chore: update patches

Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-11-10 10:44:50 -05:00
trop[bot]
ae3c79d6ce refactor: store <webview> attributes as typed Map (#26329)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-11-05 11:25:53 -05:00
trop[bot]
fee2655061 fix: window.open not accepting size values with "px" at the end (#26333)
* fix: use parseInt to parse sizes

* fix: pass radix to parseInt

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>

Co-authored-by: Abhishek Shingane <abhisheks@iitbhilai.ac.in>
Co-authored-by: Cheng Zhao <github@zcbenz.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-11-04 10:59:54 -08:00
Shelley Vohr
a3c1866581 fix: draggable region edge calculation on resize (#26321) 2020-11-03 15:01:55 -08:00
Shelley Vohr
38f0916eea build: only check patch diffs in testing builds (#26284)
* build: only check patch diffs in testing builds

* Fixup patch indices
2020-11-02 18:56:35 +09:00
Shelley Vohr
6543acce1d fix: draggable regions exclusively on BrowserViews (#26260) 2020-11-02 16:07:45 +09:00
trop[bot]
15db70d661 chore: change some for loops to range-based (#26262)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2020-10-30 09:58:43 -07:00
trop[bot]
1b32fd2a9b fix: hover text only working when VO enabled (#26245)
* fix: hover text only working when VO enabled

* chore: simplify conditional

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-10-29 08:51:31 -07:00
David Sanders
6147bd77ac chore: use auto to avoid repeating type (#26255) 2020-10-29 08:50:29 -07:00
Charles Kerr
ffd1e9bad2 fix: nativeTheme.themeSource = 'dark' on windows (#26237)
Manually backports #25373.
2020-10-29 10:03:15 -04:00
Cheng Zhao
682b382aa3 fix: set app locale after user's script is loaded (#26241) 2020-10-28 21:42:28 -07:00
Jeremy Rose
3ad59397ae chore: cherry-pick f440137cd96a from chromium (#26209) 2020-10-28 15:42:57 -07:00
Jeremy Rose
6502e4e9cb chore: cherry-pick 229fdaf8fc05 from chromium (#26193) 2020-10-28 15:42:13 -07:00
Jeremy Rose
d5119c499c chore: cherry-pick 1ed869ad4bb3 from chromium (#26190) 2020-10-28 14:40:30 -07:00
Jeremy Rose
0fa84aef3b chore: cherry-pick 6a4cd97d6691 from v8 (#26206) 2020-10-28 14:39:40 -07:00
Jeremy Rose
fe28c5ba06 chore: cherry-pick 30261f9de11e from chromium (#26203) 2020-10-28 14:01:24 -07:00
Jeremy Rose
9242fff9c2 chore: cherry-pick 9591642a0896 from pdfium (#26212) 2020-10-28 13:59:02 -07:00
Jeremy Rose
a538755595 chore: cherry-pick 6aa1e71fbd09 from v8 (#26199) 2020-10-28 13:58:49 -07:00
Jeremy Rose
139cb2dea5 chore: cherry-pick 88f263f401b4 from chromium (#26196)
* chore: cherry-pick 88f263f401b4 from chromium

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-10-28 16:00:17 -04:00
Charles Kerr
831e84504d perf: improve heap snapshot performance (#26229)
Fixes #24509.

cherry-pick 2e2dc98 from v8
2020-10-28 12:07:52 -07:00
trop[bot]
ccbf615da0 fix: delay emitting powerMonitor events on windows (#26180)
* fix: delay emitting powerMonitor events

* Update electron_api_power_monitor_win.cc

* Update electron_api_power_monitor_win.cc

* syntax

* Update electron_api_power_monitor_win.cc

* Update electron_api_power_monitor_win.cc

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-10-28 12:38:31 -05:00
trop[bot]
d8fd2dca6d docs: fix app 'ready' event arguments (#26173)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-10-26 20:37:50 -07:00
trop[bot]
86d6aa75ad chore: tweak branch detection in release notes. (#26107)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-10-27 10:30:18 +09:00
David Sanders
99df3b8147 chore: bump @electron/docs-parser version (#26156) 2020-10-26 11:48:32 -07:00
David Sanders
776f76c6f5 chore: prefer empty() check for readability (#26159) 2020-10-26 11:48:03 -07:00
Electron Bot
1df0ea58d5 Bump v10.1.5 2020-10-23 10:20:28 -07:00
trop[bot]
e50545db30 fix: setSimpleFullScreen shows traffic light in frameless window (#26126)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-10-23 09:17:24 -07:00
trop[bot]
4a312e9c6b fix: return early on promise rejection (#26110)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2020-10-22 14:45:09 -05:00
trop[bot]
0992fb35ea docs: add discord link to docs community page (#26106)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-10-22 14:42:48 -05:00
trop[bot]
904404d3c4 fix: release NSAlert properly (#26097)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-10-22 08:04:20 -07:00
Andrey Belenko
fa491d7e4b chore: cherry-pick b977dff8 from freetype (#26070)
Co-authored-by: Andrey Belenko <anbelen@microsoft.com>
2020-10-20 18:57:39 -07:00
Shelley Vohr
8a052c5537 fix: wasm code generation in the renderer (#26063) 2020-10-20 18:34:33 -07:00
Shelley Vohr
b3d89bd3bf fix: crash in printing on Windows (#26064) 2020-10-20 15:13:37 -05:00
trop[bot]
28f4c546ca perf: remove GC timer that fired once per minute. (#26052)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-10-19 21:43:32 -07:00
Electron Bot
aac0012c8c Bump v10.1.4 2020-10-19 15:40:55 -07:00
trop[bot]
7e74f2ca1e fix: correct null pointer checks in autoresizing browser views (#26033)
* Correction null pointer checks

* fix: correct null pointer checks in autoresizing browser views

Co-authored-by: mlaurencin <mlaurencin@microsoft.com>
2020-10-19 14:05:29 -07:00
trop[bot]
fd3ce5f63f build: fix invocation of cpplint on Windows (#26040)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2020-10-19 13:27:46 -07:00
trop[bot]
62536dc907 fix: Save As PDF from PDF Preview (#26013)
* fix: Save As PDF from PDF Preview

* Address review feedback

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-10-16 19:47:59 -07:00
trop[bot]
b679813fc5 fix: maximized frameless window bleeding to other monitors (#25977)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-10-15 20:03:39 -07:00
Shelley Vohr
38d126fb5c fix: order menu items before filtering excess separators (#25931)
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2020-10-15 11:13:55 -04:00
trop[bot]
04fdfe610c docs: move breaking-changes-ns.md contents to breaking-changes.md (#25946)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-10-15 10:51:31 +09:00
trop[bot]
ac917b5573 fix: pass module resolution paths to wrapped function (#25944)
Co-authored-by: Matt Kane <matt@gatsbyjs.com>
2020-10-15 10:49:18 +09:00
Pedro Pontes
fb482ae4cb chore: cherry-pick b1b3ccbd57 from chromium. (#25852)
* chore: cherry-pick b1b3ccbd57 from chromium.

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-10-15 10:07:27 +09:00
Shelley Vohr
13722f83e3 fix: ensure ready-to-show event is fired (#25932)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
2020-10-15 10:02:36 +09:00
Shelley Vohr
ccaea19e32 docs: rename launch-failure -> launch-failed to match C++ code (#25929) 2020-10-14 07:40:03 -07:00
Pedro Pontes
25674a40bd chore: cherry-pick b7ccc3f6cc from chromium (#25893)
* chore: cherry-pick b7ccc3f6cc from chromium

* update patches

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: Charles Kerr <ckerr@github.com>
2020-10-14 10:19:58 +09:00
Michaela Laurencin
fe94fd029f fix: notifications successfully never timeout with included flag (#25926)
* fix: notifications successfully never timeout with included flag

* Correct return with if statement

Co-authored-by: mlaurencin <mlaurencin@microsoft.com>
2020-10-13 14:14:00 -07:00
Shelley Vohr
f1359e6b12 fix: uv loop polling when render process reuse enabled (#25923) 2020-10-13 12:17:26 -07:00
trop[bot]
f01defa58c fix: NativeImage.getScaleFactors returns correct scales (#25905)
* fix: NativeImage.getScaleFactors returns correct scales

* fix tests

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-10-13 09:21:28 -07:00
Pedro Pontes
11847e78a8 chore: backport ffed0925f2 from webrtc. (#25853) 2020-10-13 10:53:22 +09:00
Pedro Pontes
29ca849382 chore: cherry-pick 8629cd7f8af3 from chromium (#25856) 2020-10-13 10:47:59 +09:00
trop[bot]
624ea4b694 test: improve app 'session-created' event spec (#25804)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-10-08 20:39:27 -07:00
trop[bot]
56a764d510 fix: suppress worldSafe warning emitted from security checks (#25827)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-10-08 20:20:09 -07:00
trop[bot]
88af747a5b ci: fixup doc only check on Windows (#25837)
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-10-08 21:39:04 -04:00
Milan Burda
7ae4b2b559 fix: session argument of app 'session-created' event (#25798)
Co-authored-by: Milan Burda <miburda@microsoft.com>
2020-10-08 16:32:26 -05:00
trop[bot]
244f405e6a fix: nativeImage.crop().toBitmap() returning garbage (#25773)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-10-06 09:41:17 +09:00
trop[bot]
c8f9d0908a fix: crash when application launched from UNUserNotificationCenter notification (#25737)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-10-02 13:58:04 -07:00
trop[bot]
9f21accfc2 build: move to ACR for docker image storage (#25732)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-10-02 13:28:44 -07:00
Robert Borg
93677081f0 fix: gdi printing in silent printing mode (#25740)
for windows print_text_with_gdi is set to the value of is_modifiable
but this code path is not taken for silent printing
2020-10-02 08:31:19 -07:00
trop[bot]
455098db90 fix: submenu should be autoreleased (#25687)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-29 15:56:01 -07:00
trop[bot]
d4239bb42e docs: command line flags for GPU controls (#25685)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-29 13:54:20 -04:00
trop[bot]
de0ddd5b56 chore: tsify net-log (#25670)
* chore: tsify net-log

* comment

* gn

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-09-29 12:56:54 -04:00
trop[bot]
cdfbcb39f2 fix: provide asynchronous cleanup hooks in n-api (#25280)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-09-29 11:46:02 -04:00
Electron Bot
21afda3679 Bump v10.1.3 2020-09-28 16:34:43 -07:00
trop[bot]
37bcb093e7 refactor: add a wrapper for wrangling uv handles. (#25662) 2020-09-27 20:42:28 -07:00
trop[bot]
4a0f2bede2 chore: improve renderer crash logging (#25621)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-09-24 13:23:41 -07:00
trop[bot]
e964c1ed7b fix: prevent destroyed view references from causing crashes (#25511) 2020-09-24 11:26:58 -07:00
Shelley Vohr
6fe6dffe93 fix: honor pageRanges when printing (#25597) 2020-09-24 11:53:09 -04:00
Shelley Vohr
0b75053fdc fix: check printer list when no default printers (#25606) 2020-09-23 15:44:19 -07:00
Shelley Vohr
894d41ef5a fix: close window when leave fs crash (#25604) 2020-09-23 15:44:00 -07:00
trop[bot]
a99256da8c fix: decompress devtools discovery html (#25601)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-09-23 13:00:03 -07:00
Electron Bot
430a6ada64 chore: bump chromium to 85.0.4183.121 (10-x-y) (#25559)
* chore: bump chromium in DEPS to 85.0.4183.102

* chore: bump chromium in DEPS to 85.0.4183.121

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-09-23 12:40:13 -07:00
trop[bot]
f82c375698 fix: update node certdata to NSS 3.56 (#25361)
* fix: update node certdata to NSS 3.56

* Update .patches

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-09-23 12:25:05 -07:00
trop[bot]
113c65f32f docs: remove unused StreamProtocolResponse / StringProtocolResponse (#25582)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-09-23 12:19:04 -07:00
trop[bot]
a42a529236 fix: unsubscribe from observers when window is closing (#25584)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-23 09:59:03 -04:00
Samuel Maddock
9582f0b457 fix(extensions): devtools now open for background pages (#25566) 2020-09-22 07:12:43 -07:00
trop[bot]
a230e31b31 fix: NOTREACHED in content::ChildProcessHost::GetChildPath when enable_plugins=false (#25551)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-09-21 11:06:26 -07:00
Milan Burda
63688e8649 build: fix buildflags in shell/utility/electron_content_utility_client.cc (#25520)
Co-authored-by: Milan Burda <miburda@microsoft.com>
2020-09-21 09:38:44 +09:00
trop[bot]
24691a4e0f fix: app.importCertificate crash on Linux (#25536)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-09-19 20:48:27 -06:00
Shelley Vohr
a3ac80640d fix: multiple window.print() crash (#25530) 2020-09-18 12:43:41 -06:00
Milan Burda
552ec2267b build: fix build with enable_pdf_viewer=false (#25494) (#25508) 2020-09-17 14:55:31 -06:00
trop[bot]
fc915754f6 fix: disable CORS when webSecurity is disabled (#25503)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-17 10:21:45 +09:00
Cheng Zhao
80ef3c7c84 fix: ensure ready-to-show event is fired (#25476) 2020-09-16 07:58:53 -06:00
trop[bot]
21a46bc0eb chore: log hint on renderer crash (#25472)
* chore: log hint on renderer crash

* Address feedback from review

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-09-15 14:01:49 -06:00
trop[bot]
7fc5c468e9 fix: call node::Stop on exit (#25458)
* fix: call node::Stop on exit

* also call Stop in node_main

* oop, we were already calling set_can_call_into_js(false)??

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-09-15 10:25:40 -06:00
Electron Bot
fbd99fbed1 Bump v10.1.2 2020-09-14 12:53:27 -07:00
Samuel Attard
d563c79521 fix: handle electron script errors better (#25331) (#25452)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
2020-09-14 11:21:36 -07:00
trop[bot]
2ccfb825df fix: Ensure electron delay loads the same modules as chromium (#25435)
* Ensure electron delay loads the appropriate modules as chromium on windows

This change adds the same module delay load list that chromium uses for electron.  Some modules were already getting delay loaded from other build files in chromium but not the main list via //build/config/win:delayloads.  We do not include the list of delay loads in delayloads_not_for_child_dll as those have issues being loaded in sandboxes processes.  This will reduce the overall reference set impact of the electron processes.

* fix: Ensure win modules are properly delayloaded

* chore: fix linting

Co-authored-by: Chris Davis <chrisdavis@outlook.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-09-14 10:20:21 -07:00
trop[bot]
88d7bdc8c8 fix: bind fake mojo service for badging (#25369)
* fix: bind fake mojo service for badging

* Add a test

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-09-10 09:15:13 +09:00
Charles Kerr
c6eeff8055 chore: sync 10-x-y release notes script to master (#25304)
* chore: sync 10-x-y release notes script to master

* adds the '(Also in N-x-y)' annotations
* handle sublists in release notes (#25279)
* has prepare-release.js catch thrown exceptions (#24923)
* syncs related tests

* chore: update cache entries in release notes tests
2020-09-08 20:19:02 +09:00
Eryk Rakowski
f99afa4d58 feat(extensions): add support for some chrome.management APIs (#25098) (#25345)
* fix: initialize management policy

* fix(extensions): crash when using chrome.management

* test: add tests

* docs: add a note about chrome.management

* fix: lint errors

* fix: lint errors

* fix: remove favicon_service include

* fix: add missing management permission

* docs: more supported apis

* fix: extensions.md line endings
2020-09-08 20:12:44 +09:00
trop[bot]
303b420200 fix: avoid creating client_id file for empty DIR_CRASH_DUMPS (#25309)
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-09-08 17:13:13 +09:00
Samuel Attard
fa3652a14f fix: only focus a webContents if the window was not initially hidden (#25323) (#25330)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
2020-09-08 16:55:46 +09:00
trop[bot]
fdbd2439a6 fix: multiple dock icons when calling dock.show/hide (#25299)
* fix: mulitple dock icons when calling dock.show/hide

* test: run dock.show tests after dock.hide tests

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-03 13:57:21 -07:00
Electron Bot
ac3e10c88c chore: bump chromium to 85.0.4183.98 (10-x-y) (#25275)
* chore: bump chromium in DEPS to 85.0.4183.97

* chore: bump chromium in DEPS to 85.0.4183.98
2020-09-03 11:26:05 -04:00
Electron Bot
5067b012d4 chore: bump chromium in DEPS to 85.0.4183.94 (#25255) 2020-09-01 13:45:44 -04:00
trop[bot]
ae80f43675 ci: cleanup up test app directories (#25256)
* ci: cleanup up test app directories

* ci: use electron prefix for a testing apps so that the can be cleaned up

* Revert "ci: cleanup up test app directories"

This reverts commit a47daba812.

* fixup test due to app name change

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-09-01 10:43:22 -04:00
trop[bot]
9b6b09216b chore: force source code and markdown files to use LF line ending (#25175)
* chore: force source code and markdown files to use LF line ending

* chore: replace CRLF with LF

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-01 12:48:35 +09:00
Electron Bot
34a246e3ce Bump v10.1.1 2020-08-31 19:50:16 -07:00
Samuel Attard
0dea6fa7f0 revert: "fix: reply notifs sometimes destroyed too early" (#25246)
* Revert "fix: reply notifs sometimes destroyed too early (#25100)"

This reverts commit da5eac885d.

* nothing
2020-08-31 19:46:38 -07:00
Robo
61dc1c88fd fix: client area inset calculation when maximized for framless windows (#25052) (#25216)
* adopt per monitor scale factor

* fix: client area inset calculation when maximized

* address review feedback

* pass correct glass insets to GetDwmFrameInsetsInPixels

* remove unused code

* Windows 8 and 10 use the same DWM frame calculation

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

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-08-31 13:22:46 -07:00
Electron Bot
c63327f9b2 chore: bump chromium to 85.0.4183.93 (10-x-y) (#25188)
* chore: bump chromium in DEPS to 85.0.4183.88

* chore: bump chromium in DEPS to 85.0.4183.90

* chore: bump chromium in DEPS to 85.0.4183.92

* chore: bump chromium in DEPS to 85.0.4183.93
2020-08-31 13:03:53 -07:00
Cheng Zhao
615dce3275 docs: fix supported platforms of powerMonitor (#25212) 2020-08-31 08:35:19 -07:00
trop[bot]
4ea6af64a7 fix: do not reset process_id in URLLoaderFactoryParams (#25178)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-08-28 11:39:16 -07:00
trop[bot]
66b6789c50 fix: save dialog extensions should be deterministic (#25192)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-08-28 11:38:35 -07:00
Markus Olsson
749b134e09 fix: make shell.moveItemToTrash return false on Windows when move is unsuccessful (#25170)
* test: add tests for shell.moveItemToTrash (#25113)

* fix: make shell.moveItemToTrash return false on Windows when move unsuccessful (#25124)

Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-08-27 14:00:50 -07:00
Electron Bot
1c3ebfdc30 Bump v10.1.0 2020-08-27 13:48:23 -07:00
trop[bot]
2206330795 fix: resolve RegisterSuspendResumeNotification dynamically (#25167)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-08-27 13:45:23 -07:00
Samuel Attard
10de79126a Revert "Bump v10.1.0"
This reverts commit a42fa5158f.
2020-08-27 11:35:13 -07:00
Electron Bot
a42fa5158f Bump v10.1.0 2020-08-27 11:26:09 -07:00
Electron Bot
f2c6053111 chore: bump chromium in DEPS to 85.0.4183.87 (#25160) 2020-08-27 10:55:44 -07:00
Shelley Vohr
34a321f46b feat: reinvigorate visibleOnFullscreen option (#25125)
* feat: reinvigorate visibleOnFullscreen option

* Update electron_api_top_level_window.cc

Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2020-08-26 23:49:46 -07:00
trop[bot]
deb78453c0 feat: make window visual effect state customizable (#25106)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-08-26 16:19:12 -07:00
George Xu
d73b67f386 feat: add nativeImage.createThumbnailFromPath API (#25072)
* cherry-picking

* add documentation

* convert createThumbnailFromPath to async function

* windows impl protoype

* add tests

* clean up

* fix

* fix test

* update docs

* cleaning up code

* fix test

* refactor from app to native_image

* windows build

* lint

* lint

* add smart pointers, fix test

* change tests and update docs

* fix test, remove nolint

* add renderer-main process routing to fix tests

* lint

* thanks sam

* cherry-pick

* lint

* remove getApplicationInfoForProtocol code

* chore: fix filenames conflict

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-08-26 16:18:28 -07:00
trop[bot]
0b834877fe feat: expose currencyCode on Product struct in IAP module (#25084)
Co-authored-by: Shur Singh <ssingh@evernote.com>
2020-08-26 16:18:09 -07:00
Electron Bot
4df5ecdf82 Bump v10.0.1 2020-08-26 12:23:16 -07:00
trop[bot]
a980ad5645 fix: mitigate use of private macOS font API (#25137)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-08-26 10:40:46 -07:00
Shelley Vohr
7cc0cb4331 chore: fix DCHECK on print job cancellation (#25131)
* chore: fix DCHECK on print job cancellation

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-08-26 10:40:31 -07:00
Electron Bot
414aa3111b chore: bump chromium in DEPS to 85.0.4183.86 (#25142) 2020-08-26 09:30:54 -07:00
Shelley Vohr
5753370c8d fix: save normal window bounds when maximizing (#25132)
* fix: save normal window bounds when maximizing

* fix: prevent maximize being emitted twice

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-08-26 14:08:22 +09:00
Electron Bot
606919f701 chore: bump chromium in DEPS to 85.0.4183.85 (#25122) 2020-08-25 14:23:18 -07:00
Samuel Attard
1861392561 refactor: wire will-navigate up to a navigation throttle instead of OpenURL (#25108)
* refactor: wire will-navigate up to a navigation throttle instead of OpenURL (#25065)

* refactor: wire will-navigate up to a navigation throttle instead of OpenURL

* spec: add test for x-site _top navigation

* chore: old code be old
2020-08-25 19:22:24 +09:00
John Kleinschmidt
e492b88f9f ci: fix WOA failing tests (10-x-y) (#25107)
* tests: fix early-in-memory-session-create crash test on WOA

ci: cleanup user app data directories on WOA
(cherry picked from commit 43106d28d8)

* Renable crash tests on WOA
2020-08-24 22:25:57 -07:00
trop[bot]
da5eac885d fix: reply notifs sometimes destroyed too early (#25100)
* fix: reply notifs sometimes destroyed too early

* Fix windows build

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-08-24 22:25:12 -07:00
trop[bot]
44ecd34289 fix: register for connected standby changes (#25111)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-08-24 22:24:48 -07:00
Electron Bot
c5b5ca50a6 Bump v10.0.0 2020-08-24 09:09:12 -07:00
Samuel Attard
4b7b3dc4f2 Revert "Bump v10.0.0"
This reverts commit a799860d7e.
2020-08-24 09:04:48 -07:00
Electron Bot
4a43487b39 chore: bump chromium to 85.0.4183.84 (10-x-y) (#25093)
* chore: bump chromium in DEPS to 85.0.4183.82

* chore: bump chromium in DEPS to 85.0.4183.83

* chore: bump chromium in DEPS to 85.0.4183.84

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-08-24 09:02:20 -07:00
Electron Bot
a799860d7e Bump v10.0.0 2020-08-24 08:41:58 -07:00
Shelley Vohr
93727d6a11 Revert "Bump v10.0.0-beta.26"
This reverts commit 207fbecddf.
2020-08-24 08:27:54 -07:00
Electron Bot
207fbecddf Bump v10.0.0-beta.26 2020-08-24 08:03:26 -07:00
Electron Bot
588ae53970 Bump v10.0.0-beta.25 2020-08-21 20:35:23 -07:00
trop[bot]
8a8fe090ae docs: update default value for enableRemoteModule in BrowserWindow (#25011)
Co-authored-by: Vlad Hashimoto <hashimoto.stream@gmail.com>
2020-08-21 20:34:12 -07:00
Electron Bot
711bab1950 chore: bump chromium to 85.0.4183.80 (10-x-y) (#25063)
* chore: bump chromium in DEPS to 85.0.4183.79

* chore: bump chromium in DEPS to 85.0.4183.80

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-08-21 20:33:54 -07:00
trop[bot]
50046f8df6 fix: add handling for non-absolute extension paths (#25074)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-08-21 12:34:22 -07:00
Eryk Rakowski
9193d35769 fix(extensions): enable WebSQL in background pages (#25071) 2020-08-21 10:39:47 -07:00
Charles Kerr
8191a8418f fix: revert 6ecf729 to fix Linux titlebar dark mode (#25056)
Fixes #24741
2020-08-21 09:05:51 -05:00
trop[bot]
f4600bdfdf fix: enable TLS renegotiation in node (#25040) 2020-08-20 13:27:31 -07:00
Shelley Vohr
7fd8e6a14e fix: pdf viewer template strings (#25047) 2020-08-20 11:46:58 -07:00
Electron Bot
a1abe6b64c Bump v10.0.0-beta.24 2020-08-20 08:02:18 -07:00
trop[bot]
a6f22059af fix: calculate frame when setting window placement (#25044)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-08-19 18:36:05 -07:00
Daniel White
3089bf939f chore: cherry-pick fix from chromium issue 1113227 (#24998) 2020-08-19 12:46:35 -07:00
Electron Bot
180204887a chore: bump chromium to 85.0.4183.78 (10-x-y) (#25016)
* chore: bump chromium in DEPS to 85.0.4183.75

* update patches

* chore: bump chromium in DEPS to 85.0.4183.78

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-08-19 15:13:10 -04:00
trop[bot]
af59f68281 test: use custom partition for sw tests (#25020)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-08-19 12:17:58 -04:00
Samuel Attard
e9c9a6f177 fix: backport performance fix for CSS counters (#25023)
Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2363252
2020-08-18 14:57:35 -07:00
Shelley Vohr
6582017231 fix: add handle scope in SelectClientCertificate (#25019) 2020-08-18 13:32:15 -07:00
trop[bot]
4e82a50883 build: upload windows breakpad symbols (#25006)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-08-17 22:15:42 -07:00
Robo
7079304a6c fix: [a11y] Allow focus to move into an editable combobox's listbox (#25003)
* fix: [a11y] Allow focus to move into an editable combobox's listbox

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

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-08-17 21:31:22 -07:00
trop[bot]
8fb28051a4 fix: pdf download not working (#24995)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-08-17 19:50:13 -07:00
Jeremy Rose
72901f9d91 fix: browser contexts live forever (#25001) 2020-08-17 19:49:09 -07:00
Electron Bot
838e00a523 chore: bump chromium to 85.0.4183.74 (10-x-y) (#24980)
* chore: bump chromium in DEPS to 85.0.4183.71

* chore: bump chromium in DEPS to 85.0.4183.72

* chore: bump chromium in DEPS to 85.0.4183.73

* chore: bump chromium in DEPS to 85.0.4183.74

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-08-17 12:24:36 -04:00
Electron Bot
596136ae99 Bump v10.0.0-beta.23 2020-08-17 08:01:15 -07:00
Electron Bot
8e1daa4449 chore: bump chromium to 85.0.4183.70 (10-x-y) (#24953)
* chore: bump chromium in DEPS to 85.0.4183.69

* update patches

* Update patches

* Fixup patch update

* no, really fix it up this time

* chore: bump chromium in DEPS to 85.0.4183.70

* update patches

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-08-13 13:24:17 -04:00
Electron Bot
5c19e983f9 Bump v10.0.0-beta.22 2020-08-13 08:01:19 -07:00
Electron Bot
cf5be544b6 chore: bump chromium to 85.0.4183.66 (10-x-y) (#24706)
* chore: bump chromium in DEPS to 85.0.4183.40

* chore: bump chromium in DEPS to 85.0.4183.41

* chore: bump chromium in DEPS to 85.0.4183.42

* chore: bump chromium in DEPS to 85.0.4183.43

* chore: bump chromium in DEPS to 85.0.4183.44

* chore: bump chromium in DEPS to 85.0.4183.47

* chore: bump chromium in DEPS to 85.0.4183.49

* chore: bump chromium in DEPS to 85.0.4183.50

* chore: bump chromium in DEPS to 85.0.4183.51

* chore: bump chromium in DEPS to 85.0.4183.53

* chore: bump chromium in DEPS to 85.0.4183.54

* chore: bump chromium in DEPS to 85.0.4183.56

* update patches

* chore: bump chromium in DEPS to 85.0.4183.57

* update patches

* chore: bump chromium in DEPS to 85.0.4183.59

* update patches

* chore: bump chromium in DEPS to 85.0.4183.61

* chore: bump chromium in DEPS to 85.0.4183.62

* chore: bump chromium in DEPS to 85.0.4183.63

* chore: bump chromium in DEPS to 85.0.4183.64

* chore: bump chromium in DEPS to 85.0.4183.65

* update patches

* try to track down WOA failure

* tests: disable crash test on WOA

* chore: bump chromium in DEPS to 85.0.4183.66

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-08-11 16:25:24 -04:00
trop[bot]
28a9fb8ea2 fix: add deps on the new devtools highlighter (#24929)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-08-10 20:22:11 -07:00
Electron Bot
cf935eb81b Bump v10.0.0-beta.21 2020-08-10 16:52:42 -07:00
Samuel Attard
f47f8df7f9 fix: provide AXTextChangeValueStartMarker for macOS a11y value change notifications (#24838) 2020-08-10 16:51:14 -07:00
trop[bot]
d77f4f62fd fix: send guid with linux crashes (#24897)
* fix: send guid with linux crashes

* simplify with file_util

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-08-10 09:59:09 -07:00
Electron Bot
276d17a063 Bump v10.0.0-beta.20 2020-08-10 09:47:49 -07:00
Shelley Vohr
f6ddfd70b3 chore: revert adding Trop annotations to release notes (#24922)
This reverts commit e3cf1ab030.
2020-08-10 09:40:27 -07:00
trop[bot]
04f652a53b build: ensure symbol files are named lowercase on disk so that boto can find them (#24857)
* build: ensure symbol files are named lowercase on disk so that boto can find them

* build: only do the lower case symbol copy on case sensitive file systems (#24876)

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2020-08-07 13:51:44 -07:00
trop[bot]
04c5f4acac fix: use non-symbols in isURLInstance check (#24860)
* fix: use non-symbols in isURLInstance check

* update patches

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-08-06 20:48:09 -07:00
Shelley Vohr
ca15aa70d6 chore: add V8 crash information to crashReporter (#24866) 2020-08-06 20:46:37 -07:00
trop[bot]
96bc80ace7 fix: do not render inactive titlebar as active on Windows (#24874)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-08-06 10:46:09 -07:00
Charles Kerr
e3cf1ab030 chore: add Trop annotations to release notes. (#24666) 2020-08-06 10:41:47 -07:00
trop[bot]
04e3a95b85 fix: loading dedicated/shared worker scripts over custom protocol (#24749)
* fix: add patch to avoid crash in worker with nodeintegration enabled

[worker_global_scope.cc(111)] Check failed: url_.IsValid().

* fix: loading dedicated/shared worker over custom protocols

Backports https://chromium-review.googlesource.com/c/chromium/src/+/1798250
that distinguishes loading the main script resource of dedicated/shared
worker, this allows us to register a custom URLLoaderFactory.

* spec: add crash test for worker with nodeIntegrationInWorker

* update patches

* Remove extra patchlist patches

* Fixup patch

* update patches

Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-08-06 09:59:24 -07:00
trop[bot]
58045d85c8 fix: duplicate suspend/resume events (#24843)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-08-06 08:30:48 -07:00
Jeremy Rose
08fc9dfc40 fix: increase max crash key value length (#24853) 2020-08-06 08:30:25 -07:00
Electron Bot
5fb3e0359d Bump v10.0.0-beta.19 2020-08-06 08:03:00 -07:00
Electron Bot
325444e1c8 Bump v10.0.0-beta.18 2020-08-05 12:10:22 -07:00
trop[bot]
bc4884788c feat: add worldSafe flag for executeJS results (#24711)
* feat: add worldSafe flag for executeJS results

* chore: do not log warning for webContents.executeJS

* Apply suggestions from code review

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

* chore: apply PR feedback

* chore: split logic a bit

* chore: allow primitives through the world safe checl

* chore: clean up per PR feedback

* chore: flip boolean logic

* chore: update per PR feedback

* chore: fix typo

* chore: fix spec

* Update web-frame.ts

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-08-05 10:24:51 -07:00
trop[bot]
0a766acc73 fix(extensions): bypass cors in requests made from background pages (#24822)
* fix: cors

* test: add tests

* Update spec-main/extensions-spec.ts

* fix: tests

* fix: add all_urls permission

Co-authored-by: sentialx <sentialx@gmail.com>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-08-04 11:21:24 -04:00
Electron Bot
578aef4714 Bump v10.0.0-beta.17 2020-08-03 08:02:35 -07:00
Electron Bot
c9c89f9c8e Bump v10.0.0-beta.16 2020-07-30 08:01:38 -07:00
trop[bot]
9d90a994cf fix: save crash reports locally when uploadToServer: false on linux (#24787)
* fix: generate dumps under crashDumps folder in linux

* Update spec-main/api-crash-reporter-spec.ts

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

Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-07-29 19:33:11 -07:00
trop[bot]
3cfdc086bb build: upload sentry src bundles on windows as well (#24783)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-07-29 13:53:26 -07:00
Electron Bot
6c04533fca Bump v10.0.0-beta.15 2020-07-29 11:03:57 -07:00
Jeremy Rose
99f1d7e57a fix: wrap OnWindowMessage w/ handlescope (#24716) (#24768) 2020-07-28 20:34:20 -07:00
trop[bot]
009105db4f fix: crash when navigating from a page with webview that has inherited zoom level (#24763)
* fix: cleanup webview zoom level observers on navigation

* add spec

* webview should be on same partition

* wait for webview to finish loading

Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-07-28 19:18:39 -07:00
trop[bot]
b2f09a1469 fix: disable rosetta as Electron does not run under rosetta (#24742)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-07-28 10:56:18 -07:00
Electron Bot
74212577e5 Bump v10.0.0-beta.14 2020-07-27 08:01:33 -07:00
trop[bot]
8da4e299c6 fix: ensure that errors thrown in the context bridge are created in the correct context (#24713)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-07-23 15:34:28 -07:00
trop[bot]
b2ffded4a9 fix: Allow VoiceOver to navigate "back into" web contents (#24698)
* fix: Use ElectronAdaptedContentView

* fix: Actually, nevermind, it's "BrowserAccessebilityCocoa"

* chore: Remove things instead of manually keeping them

Co-authored-by: Felix Rieseberg <felix@felixrieseberg.com>
2020-07-23 12:07:05 -07:00
loc
039a8ab49b chore: cherry pick from chrome 86 to avoid DCHECK (#24691) 2020-07-23 11:48:06 -04:00
Electron Bot
1b4b4fddaa Bump v10.0.0-beta.13 2020-07-23 08:03:04 -07:00
trop[bot]
fdde45379e fix: remove corner mask override to increase window resize performance (#24701)
* fix: remove corner mask override to increase window resize performance

* uses corner mask only for vibrant view

Co-authored-by: gellert <gellert.hegyi@around.co>
2020-07-23 19:46:26 +09:00
Electron Bot
9462e9a3ed chore: bump chromium to 85.0.4183.39 (10-x-y) (#24663)
* chore: bump chromium in DEPS to 85.0.4183.38

* chore: bump chromium in DEPS to 85.0.4183.39
2020-07-22 11:17:06 -07:00
trop[bot]
d08e31c6b4 fix: Close protocol response streams when aborted (#24656)
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2020-07-21 13:47:08 +09:00
Electron Bot
b2449f3ce1 chore: bump chromium to 85.0.4183.34 (10-x-y) (#24628) 2020-07-20 14:10:54 -07:00
trop[bot]
683c0c0491 build: free up more space on the mac VM (#24653)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-07-20 14:05:42 -07:00
Electron Bot
91a6399c22 Revert "Bump v10.0.0-beta.13"
This reverts commit 799a04a4c0.
2020-07-20 13:35:10 -07:00
Electron Bot
799a04a4c0 Bump v10.0.0-beta.13 2020-07-20 08:31:36 -07:00
Electron Bot
82092471e4 chore: bump chromium to 85.0.4183.28 (10-x-y) (#24600)
* chore: bump chromium in DEPS to 85.0.4183.28

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-07-16 11:53:38 -04:00
Electron Bot
39a931968c Bump v10.0.0-beta.12 2020-07-16 08:31:50 -07:00
Electron Bot
bd7f6a9090 chore: bump chromium to 85.0.4183.26 (10-x-y) (#24574)
* chore: bump chromium in DEPS to 85.0.4183.26

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-07-15 13:53:55 -04:00
trop[bot]
2d747acd67 perf: pass primitives directly through the context bridge, avoids copying (#24551)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-07-15 08:35:26 -07:00
trop[bot]
8371e83a9d fix: broken --trace-sync-io flag in Node.js (#24544)
* fix: --trace-sync-io flag in Node.js

* Also handle set_trace_sync_io in ElectronBrowserMainParts

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-07-14 14:23:54 -07:00
Shelley Vohr
22c804a4ad fix: Node.js cpu and heap profiling (#24540)
* fix: Node.js cpu and heap profiling

* chore: emable more now-working Node.js specs
2020-07-14 11:26:53 -07:00
Electron Bot
5481ddf9df chore: bump chromium in DEPS to 85.0.4183.25 (#24538) 2020-07-14 13:04:58 -04:00
trop[bot]
4c596ab969 fix: default to simplex for printing DuplexMode (#24527)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-07-13 22:07:14 -07:00
trop[bot]
328c5c7b46 fix: use default NSVisualEffectState (#24532)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-07-13 20:27:01 -07:00
Electron Bot
5b8d4240d6 chore: bump chromium to 85.0.4183.24 (10-x-y) (#24503)
* chore: bump chromium in DEPS to 85.0.4183.21

* chore: bump chromium in DEPS to 85.0.4183.22

* chore: bump chromium in DEPS to 85.0.4183.23

* chore: bump chromium in DEPS to 85.0.4183.24

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-07-13 17:14:38 -04:00
trop[bot]
d52412dea7 docs: fix incorrect formatting in browser docs. (#24514)
Address incorrect typing for isEnabled. The root cause of this was due
to missing backticks which caused the docs parser to think that the
return type of the `isEnabled` function was null, where it was supposed
to be a boolean type.

The side effect of this was that the generated typescript typings were
incorrect for this function.

Fixes #24409

Co-authored-by: Sam Saccone <samccone@gmail.com>
2020-07-13 08:56:48 -07:00
Shelley Vohr
39edbd6af4 fix: always callback error with invalid print settings (#24507) 2020-07-13 08:55:30 -07:00
Electron Bot
30db185060 Bump v10.0.0-beta.11 2020-07-13 08:32:43 -07:00
Electron Bot
c804212426 chore: bump chromium in DEPS to 85.0.4183.20 (#24487) 2020-07-09 19:57:43 -07:00
Electron Bot
7a5b18b0d6 Bump v10.0.0-beta.10 2020-07-09 08:33:13 -07:00
Electron Bot
d608a30015 chore: bump chromium to 85.0.4183.19 (10-x-y) (#24299)
* chore: bump chromium in DEPS to 85.0.4182.1

* chore: bump chromium in DEPS to 85.0.4183.2

* chore: bump chromium in DEPS to 85.0.4183.4

* chore: bump chromium in DEPS to 85.0.4183.5

* update patches

* chore: bump chromium in DEPS to 85.0.4183.6

* chore: bump chromium in DEPS to 85.0.4183.7

* update patches

* chore: bump chromium in DEPS to 85.0.4183.8

* remove chromeos-only TtsControllerDelegate

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2255314
(cherry picked from commit f975f84a3c)

* rename GetHighContrastColorScheme -> GetPlatformHighContrastColorScheme

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2250224
(cherry picked from commit 014b487258)

* add max_xcode_version build var

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2264867
(cherry picked from commit 2c3b94f497)

* add empty floc blocklist to BrowserProcessImpl

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2240873
(cherry picked from commit 3cdaae146d)

* Move zygote from //services/service_manager back to //content

https://chromium-review.googlesource.com/c/chromium/src/+/2252466
(cherry picked from commit e0d6dbcf1e)

* Reland "[base] Stop including check.h, notreached.h, etc. in logging.h"

https://chromium-review.googlesource.com/c/chromium/src/+/2264297
(cherry picked from commit 1407040133)

* Update mas private api patch

* Reland "Reland "New toolchain for Windows 10 19041 SDK""

https://chromium-review.googlesource.com/c/chromium/src/+/2255527
(cherry picked from commit 8101d956f5)

* [XProto] Remove usage of Shape extension

https://chromium-review.googlesource.com/c/chromium/src/+/2262113
(cherry picked from commit 72b6f11958)

* chore: bump chromium in DEPS to 85.0.4183.9

* chore: bump chromium in DEPS to 85.0.4183.10

* chore: bump chromium in DEPS to 85.0.4183.11

* chore: bump chromium in DEPS to 85.0.4183.12

* chore: bump chromium in DEPS to 85.0.4183.13

* update patches

* fixup! add empty floc blocklist to BrowserProcessImpl

(cherry picked from commit 07b0b65c1d)

* fixup! Reland "[base] Stop including check.h, notreached.h, etc. in logging.h"

(cherry picked from commit f91c1ab162)

* Check for GDI exhaustion if window creation fails

https://chromium-review.googlesource.com/c/chromium/src/+/2244124
(cherry picked from commit 3d45d7b78c)

* chore: bump chromium in DEPS to 85.0.4183.14

* Fixup lint issue

* update patches

* fix: include missing header file

* chore: bump chromium in DEPS to 85.0.4183.19

* update patches

* refactor: match upstream print preview handling (#24452)

(cherry picked from commit 004e29ad33)

* use PrintHostMsg_DidPreviewPage_Params

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

Co-authored-by: Andy Locascio <andy@slack-corp.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-07-09 10:04:19 -04:00
trop[bot]
74efe8d834 fix: clipboard.readBuffer returning empty value (#24467)
Co-authored-by: Deepak Mohan <hop2deep@gmail.com>
2020-07-08 17:22:58 -07:00
trop[bot]
3283211a15 fix: uv_walk crash on web worker close (#24462)
* fix: uv_walk crash on web worker close

* Use DCHECK_EQ

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-07-08 13:07:53 -07:00
trop[bot]
d4a6affa4b fix: use try/catch for base class converter error (#24450)
* fix: use try/catch for base class converter error

* Place try/catch in a block

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-07-07 20:00:46 -07:00
trop[bot]
73e13ab6d6 chore: add missing _Deprecated_ to 'renderer-process-crashed' on app (#24432)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-07-06 16:08:57 -04:00
trop[bot]
c32c69604a feat: expose sessionId in debugger module (#24397)
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-07-06 12:38:01 -07:00
Electron Bot
2761be6467 Bump v10.0.0-beta.9 2020-07-06 08:32:36 -07:00
Milan Burda
30cb2b134b test: make sure tests fail properly instead of timing out (#24372)
* test: use delay() helper (#24321)

* test: make sure tests fail properly instead of timing out (#24316)

* test: remove defer()

Co-authored-by: Milan Burda <miburda@microsoft.com>
2020-07-03 18:55:56 -07:00
trop[bot]
48cd3eeced chore: use node_bindings loop for clarity (#24416)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-07-03 18:47:37 -07:00
trop[bot]
831b6fa227 fix: intermittent 100% CPU usage on macOS (#24413)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-07-03 11:25:18 -07:00
trop[bot]
91ce51cfb3 fix: remove same-tag notifications before showing new ones (#24404)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-07-03 09:20:53 -07:00
Electron Bot
bf1870facc Bump v10.0.0-beta.8 2020-07-02 08:35:19 -07:00
trop[bot]
39bc7c82a6 feat: implement systemPreferences.getMediaAccessStatus() on Windows (#24311)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-07-01 16:51:10 -07:00
trop[bot]
991d982622 ci: update timeout on breakpad generation to 30 minutes (#24387)
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-07-01 11:59:16 -04:00
trop[bot]
195662ead0 fix: macOS modal focus (#24352)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-29 15:49:33 -07:00
trop[bot]
d580cc1578 feat: support suspend/resume on Windows (#24281)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-29 09:07:16 -07:00
trop[bot]
d8de43f534 feat: support suspend/resume on macOS (#24293)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-29 09:06:00 -07:00
Electron Bot
c48a6b48c9 Bump v10.0.0-beta.7 2020-06-29 08:31:24 -07:00
Electron Bot
d701c292a0 Bump v10.0.0-beta.6 2020-06-25 08:31:59 -07:00
Electron Bot
19e7af9841 chore: bump chromium to 85.0.4181.1 (10-x-y) (#23987)
* chore: bump chromium in DEPS to 85.0.4165.1

* chore: bump chromium in DEPS to 85.0.4166.1

* chore: bump chromium in DEPS to 85.0.4166.2

* chore: bump chromium in DEPS to 85.0.4166.3

* update patches

* fixup! Revert "[printing] Mojofy PrintHostMsg_CheckForCancel"

(cherry picked from commit 2cc1caf5d7d716ceefb23d5228a79544a2e91206)

* update patches

* Revert "[printing] Mojofy PrintHostMsg_CheckForCancel"

(cherry picked from commit c2b389957836ad77eb8e977872e6a8590666f3da)

* Remove WebImeTextSpan

https://chromium-review.googlesource.com/c/chromium/src/+/2225240
(cherry picked from commit d839261d71b156c972d3878f16f971e6b6d98f45)

* Remove PDFAnnotations flag altogether.

https://chromium-review.googlesource.com/c/chromium/src/+/2229317
(cherry picked from commit 50384ed12602d4a9da3209eacfca4faae78f9986)

* Rework find-from-selection so it's synchronous -- fixes flaky tests

https://chromium-review.googlesource.com/c/chromium/src/+/2181570
(cherry picked from commit 3e9241560390fb18969393beda425afc63f5a151)

* Use ExtensionSystem::is_ready() instead of ExtensionService::is_ready()

https://chromium-review.googlesource.com/c/chromium/src/+/2207499
(cherry picked from commit 2424589454a9a2ef9cc89c232b4ee87b0bf400cc)

* update sysroots

(cherry picked from commit b5ea653e602152dde00303d1cfb915d4df320983)

* chore: bump chromium in DEPS to 85.0.4167.1

* Take RFH as a parameter for DidUpdateFavicon/ManifestURL

https://chromium-review.googlesource.com/c/chromium/src/+/2224745
(cherry picked from commit ad40668221732e28bcc8b9b270ab4686c42e956a)

* update patches

* update patches

* Rename net::cookie_util::StripStatuses to StripAccessResults

https://chromium-review.googlesource.com/c/chromium/src/+/2212697
(cherry picked from commit bf3de1fe1cbb17feb46b40c81f0eb13b1e7b6412)

* use net::CookieAccessResultList instead of net::CookieAccessResultList

(cherry picked from commit 400da79504da2310b7c1177b4b3f9f83a3f2b305)

* chore: bump chromium in DEPS to 85.0.4168.1

* fix mas_no_private_api patch

https://chromium-review.googlesource.com/c/chromium/src/+/2230281
(cherry picked from commit 9b127147e0ba7ef1d4454099effe49327b1a5ab6)

* Update patches

* fix: add new navigation state REUSE_SITE_INSTANCE

To fix the new set of state checks added in
https://chromium-review.googlesource.com/c/chromium/src/+/2215141

(cherry picked from commit 3a91b684efdc7742e7c5efa65263f80e8a24ec4a)

* chore: bump chromium in DEPS to 85.0.4169.1

* update patches

* chore: bump chromium in DEPS to 85.0.4170.1

* chore: bump chromium in DEPS to 85.0.4171.1

* chore: bump chromium in DEPS to 85.0.4172.1

* chore: bump chromium in DEPS to 85.0.4173.1

* chore: bump chromium in DEPS to 85.0.4174.1

* chore: bump chromium in DEPS to 85.0.4175.3

* chore: bump chromium in DEPS to 85.0.4176.1

* chore: bump chromium in DEPS to 85.0.4177.2

* chore: bump chromium in DEPS to 85.0.4178.1

* chore: bump chromium in DEPS to 85.0.4178.3

* refactor: MessageLoop, you are terminated \o/

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2246173
(cherry picked from commit 0368131d60)

* chore: bump chromium in DEPS to 85.0.4178.4

* update patches

* update lib_src_switch_buffer_kmaxlength_to_size_t.patch

(cherry picked from commit c5efbdd166)

* [v8] Allow for 4GB TypedArrays

https: //chromium-review.googlesource.com/c/v8/v8/+/2249668
(cherry picked from commit 2c1d6bfd9d)
Co-Authored-By: Robo <hop2deep@gmail.com>

* Cleanup usages of old mojo types and remove unused code

https://chromium-review.googlesource.com/c/chromium/src/+/2235699
(cherry picked from commit e89cb21e8e)

* refactor: plumb DownloadSchedule to DownloadItem

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2242202
(cherry picked from commit 4d549ae2b0)

* chore: fix variable typo in IPC

(cherry picked from commit 7251b1e6c5)

* chore: s/BindPipeAndPassReceiver/BindNewPipeAndPassReceiver

(cherry picked from commit e89bd6c639)

* chore: XEvent becomes x11::Event

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2240355
(cherry picked from commit 4d832da740)

* fixup! refactor: MessageLoop, you are terminated \o/

(cherry picked from commit 902d72d740)

* fixup! chore: XEvent becomes x11::Event

(cherry picked from commit 27043549f3)

* chore: fix windows build

(cherry picked from commit 4977098eb3)

* chore: disable SameSite-by-default changes

https://chromium-review.googlesource.com/c/chromium/src/+/2231445
(cherry picked from commit d8318aafff)

* update printing.patch

(cherry picked from commit e2037f527f)

* Convert WidgetHostMsg_SelectionBoundsChanged/TextInputStateChanged

https://chromium-review.googlesource.com/c/chromium/src/+/2243531
(cherry picked from commit 60ff2e067d)

* [XProto] Replace usages of XID and ::Window with x11::Window

https://chromium-review.googlesource.com/c/chromium/src/+/2249389
(cherry picked from commit 97f5b59e06)

* Update VideoFrameMetadata to use base::Optionals

https://chromium-review.googlesource.com/c/chromium/src/+/2231706
https://chromium-review.googlesource.com/c/chromium/src/+/2238361
(cherry picked from commit 4787e1f541)

* --disable-dev-shm-usage for gpu process crash

(cherry picked from commit 207d8a380a)

* update patches

* fixup: Cleanup usages of old mojo types and remove unused code

* update patches

* chore: bump chromium in DEPS to 85.0.4180.1

* build: update v8 headers

(cherry picked from commit 4808975f75)

* Update patches

* fixup: build: update v8 headers

* Fixup ssl_security_state_tab_helper.patch

* Add missing headers

* Adds icon loading service with sandbox for Windows.

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

* disable app.getGPUInfo spec on linux

(cherry picked from commit b7ea16c4b7)

* Add missing headers for Linux and Windows

* Fixup Adds icon loading service with sandbox for Windows

* chore: bump chromium in DEPS to 85.0.4181.1

* update patches

* Fixup: (for real) Adds icon loading service with sandbox for Windows

* No more Vulkan info collection for UMA on Windows

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

* extensions: Rename SharedUserScriptMaster to SharedUserScriptManager

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

* Add missing headers

* fixup: extensions: Rename SharedUserScriptMaster to SharedUserScriptManager

* fixup: No more Vulkan info collection for UMA on Windows

* Add missing header

* Add resource for IDS_UTILITY_PROCESS_UTILITY_WIN_NAME

* fix build on windows

* fix gn check

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-06-25 00:48:48 -07:00
trop[bot]
86e4a96f45 chore: minify internal JS code (#24272)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-06-24 19:37:23 -07:00
trop[bot]
e059ae7bd6 fix: frameless vibrant modals shouldn't bezel (#24284)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-24 10:15:26 -07:00
Jeremy Rose
fb292c26d5 fix: backport nodejs/node#33682 (#24266) 2020-06-24 00:57:50 -07:00
trop[bot]
0e0dd6460f fix: emit click events with tray context menu (#24235)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-22 19:02:54 -07:00
Electron Bot
b464589143 Bump v10.0.0-beta.5 2020-06-22 08:32:33 -07:00
trop[bot]
ee372c152a fix: isTrustedSender() in test-app (#24230)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-06-22 08:24:23 -07:00
trop[bot]
53bdc4a71b build: remove dead symlink from MAS build (#24166) 2020-06-18 17:40:34 -07:00
trop[bot]
ab0960ecd9 fix: do not use CONTEXT_MENU flag for tray menu (reland) (#24192)
* fix: menu window should not appear in taskbar

* fix: do not use CONTEXT_MENU flag for tray menu

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-06-18 14:43:20 -07:00
Electron Bot
29c9c80c89 Bump v10.0.0-beta.4 2020-06-18 08:32:38 -07:00
trop[bot]
72f2dad3a1 Make pasteandmatchstyle accelerator OS specific (#24182)
Co-authored-by: Elena Topaka <el1topa@gmail.com>
2020-06-17 21:47:47 -07:00
trop[bot]
64cdfda810 fix: let Node.js perform microtask checkpoint in the main process (#24174)
* fix: let Node.js perform microtask checkpoint in the main process

* fix: don't specify v8::MicrotasksScope for explicit policy

* fix: remove checkpoint from some call-sites

We already perform checkpoint at the end of a task,
either through MicrotaskRunner or through NodeBindings.
There isn't a need to add them again when calling into JS
except when dealing with promises.

* fix: remove checkpoint from some call-sites

We already perform checkpoint at the end of a task,
either through MicrotaskRunner or through NodeBindings.
There isn't a need to add them again when calling into JS
except when dealing with promises.

* fix incorrect specs

* default constructor arguments are considered for explicit mark

* add regression spec

Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-06-17 12:48:31 -07:00
trop[bot]
9f8f82af00 docs: fix MenuItem click handler type (#24175)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-17 11:30:11 -07:00
trop[bot]
306d76b317 fix: emit 'shutdown' outside -[NSApplication terminate:] (#24139)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-16 10:03:09 -07:00
trop[bot]
097c501cf5 fix: handle non-client area pointer events from pen on Win10 (#24102) 2020-06-15 21:01:47 -07:00
Electron Bot
d4bc4e1d4c Bump v10.0.0-beta.3 2020-06-15 08:31:31 -07:00
trop[bot]
0c861dc83e fix: correctly handle nexttick scheduling in stream reads (#24081)
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2020-06-15 19:00:13 +09:00
trop[bot]
57b766aa82 fix: showing certificate dialog with no window (#24118)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-13 08:22:36 -07:00
trop[bot]
4b8295a24d fix: fs.readdir should support withFileTypes (#24106)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-12 13:42:17 -07:00
Samuel Attard
710199c308 Revert "fix: do not use CONTEXT_MENU flag for tray menu (#23879)" (#24077)
This reverts commit d4001c1787.
2020-06-11 14:27:25 -04:00
Shelley Vohr
c2d9cde38f chore: roll latest Node.js security release (#23945) 2020-06-11 11:18:10 -07:00
trop[bot]
fbaca68bd0 fix: Add .paks for media-internals and webrtc-internals pages (#24057)
* fix: adds paks for media-internals and webrtc-internals pages

* adds tests

Co-authored-by: gellert <gellert.hegyi@around.co>
2020-06-11 09:26:01 -07:00
trop[bot]
ee9f95df30 fix: assign session to remote webContents (#24064)
* fix: assign session to remote webContents

* fix: test name

Co-authored-by: sentialx <sentialx@gmail.com>
2020-06-11 08:49:59 -07:00
trop[bot]
9df936d941 fix: use system installed objcopy to copy debug symbols (#24031)
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-06-11 10:56:59 +09:00
trop[bot]
baa2940488 fix: Allow windows behind macOS elements if frame = false (#24032)
Co-authored-by: Felix Rieseberg <felix@felixrieseberg.com>
2020-06-11 10:56:25 +09:00
trop[bot]
25879ba929 chore: backport advapi32 libuv fix (#24038)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-06-11 10:55:22 +09:00
Electron Bot
34b04e5fbb Revert "Bump v10.0.0-beta.3"
This reverts commit 710ac2a5a8.
2020-06-09 12:02:57 -07:00
Electron Bot
710ac2a5a8 Bump v10.0.0-beta.3 2020-06-09 08:50:04 -07:00
trop[bot]
1f0d2594bd fix: throw instead of crash when using ipcRenderer after context released (#23977)
Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
2020-06-08 11:36:32 -07:00
trop[bot]
656d9e7490 build: fix filenames autogen with new BUILDFLAG syntax (#23958)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-06-08 11:09:34 -07:00
trop[bot]
5bf938f899 fix: add missing isComposing KeyboardEvent property (#23995)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-08 10:51:12 -05:00
trop[bot]
7759048136 fix: volume key globalShortcut deregistration (#24012)
Co-authored-by: Aleksei Kuzmin <alkuzmin@microsoft.com>
2020-06-08 10:50:17 -04:00
trop[bot]
321c1c1075 fix: use acceptLanguages argument in session.setUserAgent() (#23961)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-06-05 09:46:03 -07:00
trop[bot]
d69d1bbf20 fix: missing handlescoped in touch bar (#23970)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-04 19:34:17 -07:00
trop[bot]
f3dd997dbd feat: add V8CacheOptions webpreference (#23867)
* feat: add V8CacheOptions webpreference

* address review comments

Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-06-04 17:15:44 -04:00
trop[bot]
faf7951439 fix: destroy GetSize callback at last (#23954)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-06-03 15:54:24 -04:00
trop[bot]
3087492994 fix: compensate for lazy-loaded circular deps (#23951)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-03 15:18:55 -04:00
John Kleinschmidt
f7e4377ee8 chore: update chromium to 85.0.4161.2 (#23915)
* chore: update 10-x-y to 85.0.4161.2

* Update patches

* chore: SetHostCleanupFinalizationGroupCallback has been removed from V8

(cherry picked from commit 7aa3058829)

* Window Placement: Gate cross-screen fullscreen behavior on permission

https://chromium-review.googlesource.com/c/chromium/src/+/2203268
(cherry picked from commit fdccae9246)

* refactor: GetSublabelAt => GetSecondaryLabelAt

(cherry picked from commit cc8be2f634)

* refactor: use WebInputEvent::Namespace types directly

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2160523
(cherry picked from commit f35200077e)

* refactor: service_manager::BinderMapWithContext merged into mojo::BinderMap

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2174654
(cherry picked from commit c2a4d1b515)

* remove WebContentsView::SizeContents

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2188931
(cherry picked from commit f4ccf3556c)

* adapt to //content creating NetworkContexts

https://chromium-review.googlesource.com/c/chromium/src/+/2195196
(cherry picked from commit 6834366747)

* Use a normal return value for WebContentsView::GetContainerBounds.

https://chromium-review.googlesource.com/c/chromium/src/+/2212481
(cherry picked from commit 68c8ea6ea9)

* fixup patch

* refactor: AddNewContents now takes a target_url

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2167732
(cherry picked from commit 69fe1f6f47)

* refactor: FollowRedirect takes in cors exempt headers now

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2129787
(cherry picked from commit 58f3770c19)

* refactor: printing::DuplexMode moved to mojo

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2162388
(cherry picked from commit a14cdc465a)

* refactor: use MessagePortDescriptor instead of raw mojo::MessagePipeHandles

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/1952124
(cherry picked from commit dce81ad06f)

* refactor: cursor.mojom and cursor_types.mojom moved to //ui/base/cursor/mojom

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2172874
(cherry picked from commit 7f3c13de3f)

* refactor: shuttle cursor changed event to WebContentsObserver

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2172779
(cherry picked from commit 2f3a23afb7)
Co-Authored-By: loc <loc@users.noreply.github.com>

* chore: unused argument removed from ReadAvailableTypes in ui::Clipboard

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2173666
(cherry picked from commit d9152c3668)

* remove ClientSideDetectionService from browser_process

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2175320
(cherry picked from commit 2461522752)

* Remove cors_exempt_headers.h

https://chromium-review.googlesource.com/c/chromium/src/+/2203759
(cherry picked from commit b73faa6411)

* [content] Remove unused methods from WebContents

https://chromium-review.googlesource.com/c/chromium/src/+/2199113
(cherry picked from commit 8b9ea9cd2b)

* Unnest CanonicalCookie::CookieInclusionStatus

https://chromium-review.googlesource.com/c/chromium/src/+/2203171
(cherry picked from commit 7d4349b37c)

* WebContentsObserver now implements OnRendererResponsive

https://chromium-review.googlesource.com/c/chromium/src/+/2211066
(cherry picked from commit 53f32b7e45)

* chore: remove NOTIFICATION_EXTENSIONS_READY_DEPRECATED

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2199874
(cherry picked from commit 7914445469)

* Supply speech recognition sandbox from service_sandbox_type.h

https://chromium-review.googlesource.com/c/chromium/src/+/2206918
(cherry picked from commit f15a0fdfab)

* [XProto] Replace XAtom with x11::Atom

https://chromium-review.googlesource.com/c/chromium/src/+/2202789
(cherry picked from commit 143110105a)

* update print-to-pdf.html with latest html data

https://bugs.chromium.org/p/chromium/issues/detail?id=1085667
(cherry picked from commit 205105fc16)

* fix build on windows

(cherry picked from commit 0a255c4fa7)

* [printing] Mojofy PrintHostMsg_CheckForCancel

https://chromium-review.googlesource.com/c/chromium/src/+/2212181
(cherry picked from commit 4f1064afa9)

* chore: update sysroots

(cherry picked from commit 2a1b78a4bf)

* chore: DesktopWindowTreeHostLinux becomes DesktopWindowTreeHostPlatform

Refs:
(cherry picked from commit 3fd0875d3d)

* refactor: LogErrorEventDescription moved from ui to x11

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2164245
(cherry picked from commit 9291fc4afc)

* fix: inherit base network context params

(cherry picked from commit 698c66f7f9)

* fix: use message handle api specific to embedders

(cherry picked from commit 23d01dc8e0)

* chore: update v8 headers

(cherry picked from commit 81bc1e0bee)

* add checkout_pgo_profiles to DEPS

(cherry picked from commit 9b73e6935c)

* refactor: use newly mojo-ified PrintPreviewFailed

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2195343
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
(cherry picked from commit de074ce23a)

* [printing] Mojofy PrintHostMsg_PrintPreviewCancelled

https://chromium-review.googlesource.com/c/chromium/src/+/2198331
(cherry picked from commit 7bd8a6a576)

* [printing] Mojofy PrintHostMsg_PrintPreviewInvalidPrinterSettings

https://chromium-review.googlesource.com/c/chromium/src/+/2200556
(cherry picked from commit dd68ba1ecf)

* Network service: Remove primary_network_context bool.

https://chromium-review.googlesource.com/c/chromium/src/+/2204678
(cherry picked from commit 6a0e8e5bf9)

* [printing] Move PrintHostMsg_DidPrintContent_Params to print.mojom

https://chromium-review.googlesource.com/c/chromium/src/+/2212110
(cherry picked from commit a6a3291d9a)

* [XProto] Move items from ::x11::XProto to ::x11

https://chromium-review.googlesource.com/c/chromium/src/+/2218476
(cherry picked from commit b16c48830a)

* Update patches

* Remove no longer needed patch

* update patches

* update patches

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Andy Locascio <andy@slack-corp.com>
Co-authored-by: loc <loc@users.noreply.github.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-06-03 14:38:01 -04:00
trop[bot]
ef288a6ae2 fix: restore original GTK/appindicator implementation of tray icons (#23925)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-06-03 10:14:53 -07:00
trop[bot]
7797835f93 test: load page with some content when testing extension (#23939)
* test: load page with some content when testing extension

* test: use dom-ready to wait for page loaded with extension

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-06-03 09:51:06 -07:00
trop[bot]
9572209e91 fix: correctly support the --inspect-brk-node flag (#23918)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-06-03 17:01:17 +09:00
trop[bot]
3602216e6c fix: default to NTLM v2 in the network service for POSIX platforms (#23916)
* fix: default to NTLM v2 in the network service

* chore: update patch details

* update patches

Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-06-02 20:58:38 -07:00
trop[bot]
c29382b6d0 fix: Make the --disable-color-correct-rendering switch work again (#23899)
This regressed once again in Electron 8 due to Chromium changes.

Test Plan:

- Confirm that test case from https://github.com/electron/electron/pull/15898#issuecomment-443191770 now works

Notes: Fix disabling color correct rendering with `--disable-color-correct-rendering`

Co-authored-by: Biru Mohanathas <birunthan@mohanathas.com>
2020-06-02 15:40:24 -04:00
trop[bot]
a8fc41d8b3 docs: default of allowRendererProcessReuse is true (#23912)
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2020-06-02 12:02:53 -07:00
trop[bot]
9ea42da40e docs: move protocol-ns to protocol.md (#23911)
* docs: move protocol-ns to protocol.md

* chore: fix up tests and implement missing pieces required for tests

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-06-02 10:55:50 -07:00
trop[bot]
87cd20b9e9 fix: add patch to prevent crash during frame swap with ctx isolation enabled (#23896)
* fix: add patch to prevent crash during frame swap with ctx isolation enabled

* Update .patches

* chore: update patches

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2020-06-02 10:55:14 -07:00
trop[bot]
79acd3e0ef fix: expose electron/common and electron/renderer modules in sandboxed preloads (#23893)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-06-02 14:23:19 +09:00
trop[bot]
67be46986c test: wait for beforeunload handler to be installed (#23898)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-06-02 14:21:42 +09:00
trop[bot]
d4001c1787 fix: do not use CONTEXT_MENU flag for tray menu (#23879)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-06-02 11:10:41 +09:00
trop[bot]
eeaad9c6ab build: make electron renderer init scripts profilable (#23891)
The devtools profiler is not attached at the point we run out init scripts (or our apps preload scripts), we do not really want to change when we run these init scripts but for when a dev is doing performance work it makes sense to give them an option to make the devtools profiler actually work on both our init scripts and their preload script.  This PR adds that logic behind an environment variable ELECTRON_PROFILE_INIT_SCRIPTS.

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-06-01 17:38:33 -07:00
Alexey Kuzmin
cc0c7632ac build: fix for "enable_desktop_capturer = false" (#23864) (#23876)
(cherry picked from commit 4133c71105)
2020-06-01 17:23:33 -04:00
Electron Bot
12ea1c0c41 Bump v10.0.0-beta.2 2020-06-01 08:32:38 -07:00
Shelley Vohr
9d2aa93581 fix: ensure nativeImage serialization main->renderer (#23794)
* refactor: use typeutils for nativeImage serialization (#23693)

* fix: ensure nativeImage serialization main->renderer
2020-05-28 12:07:33 -07:00
trop[bot]
cee9e6f0d0 fix: weakly reference MenuModel from MenuController (#23806)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-05-28 09:47:43 -07:00
trop[bot]
eb93acc463 fix: handle asynchronous URL loading in bw proxy (#23804)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-05-28 09:41:54 -07:00
trop[bot]
241e74c098 test: refactor how spec files are collected (#23811)
Co-authored-by: Aleksei Kuzmin <alkuzmin@microsoft.com>
2020-05-28 09:40:59 -07:00
trop[bot]
c0183d15af fix: volume key globalShortcut registration (#23823)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-05-28 08:57:25 -07:00
trop[bot]
4fe7c9ac24 fix: only bezel frameless windows (#23809)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-05-28 08:52:58 -04:00
Cheng Zhao
50efa847a5 Revert "fix: trigger activate event when app is activated via app switcher (#23771)" (#23819)
This reverts commit 7709e600c6.
2020-05-28 08:47:55 -04:00
trop[bot]
c2354d44ea fix: pass correct buffer length (#23798)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-05-27 14:09:30 -07:00
trop[bot]
7709e600c6 fix: trigger activate event when app is activated via app switcher (#23771)
When application is activated thru macOS app switcher (cmd+tab) the
App's activate event is note emitted. The reason is that
`applicationShouldHandleReopen:hasVisibleWindows:` is sent only when app
is activated via Dock. Using `applicationDidBecomeActive:` is handling
all cases properly.

Co-authored-by: Lukas Weber <luweber@microsoft.com>
2020-05-27 09:52:10 +09:00
trop[bot]
0962c1bd74 ci: deflake WOA tests (#23769)
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-05-26 13:22:55 -04:00
trop[bot]
471f80521d test: use WebContents event to test beforeunload (#23766)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-05-26 10:53:23 -04:00
trop[bot]
1fb11e1e76 fix: trigger about panel for about role on on win (#23717)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-05-22 00:55:25 -07:00
trop[bot]
f8508b3c18 fix: read GTK dark theme setting on Linux (#23711)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-05-21 21:07:42 -04:00
Electron Bot
95e3853b77 Bump v10.0.0-beta.1 2020-05-21 14:28:15 -07:00
Samuel Attard
9de5ede1fb Revert "feat: look harder for a commit's pull request. (#23593)"
This reverts commit 2342aaffbd.
2020-05-21 14:27:04 -07:00
Electron Bot
05efbbcdd5 Revert "Bump v10.0.0-beta.1"
This reverts commit 2789f32efb.
2020-05-21 14:23:22 -07:00
Electron Bot
2789f32efb Bump v10.0.0-beta.1 2020-05-21 14:23:00 -07:00
Samuel Attard
4c8b884998 fix: support 10-x-y in the release notes generator (#23709) 2020-05-21 14:13:17 -07:00
Electron Bot
03ddd2d7af Revert "Bump v10.0.0-beta.1"
This reverts commit c141b1a906.
2020-05-21 13:33:35 -07:00
Electron Bot
c141b1a906 Bump v10.0.0-beta.1 2020-05-21 13:33:02 -07:00
940 changed files with 34204 additions and 21092 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -4,4 +4,3 @@
APPVEYOR_CLOUD_TOKEN=
CIRCLE_TOKEN=
ELECTRON_GITHUB_TOKEN=
VSTS_TOKEN=

View File

@@ -28,7 +28,6 @@
},
"globals": {
"standardScheme": "readonly",
"globalThis": "readonly",
"BUILDFLAG": "readonly",
"ENABLE_DESKTOP_CAPTURER": "readonly",
"ENABLE_REMOTE_MODULE": "readonly",

View File

@@ -15,7 +15,6 @@ Contributors guide: https://github.com/electron/electron/blob/master/CONTRIBUTIN
- [ ] relevant documentation is changed or added
- [ ] PR title follows semantic [commit guidelines](https://github.com/electron/electron/blob/master/docs/development/pull-requests.md#commit-message-guidelines)
- [ ] [PR release notes](https://github.com/electron/clerk/blob/master/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/master/README.md#examples).
- [ ] This is **NOT A BREAKING CHANGE**. Breaking changes may not be merged to master until 11-x-y is branched.
#### Release Notes

244
BUILD.gn
View File

@@ -49,10 +49,6 @@ if (is_linux) {
}
}
declare_args() {
use_prebuilt_v8_context_snapshot = false
}
branding = read_file("shell/app/BRANDING.json", "json")
electron_project_name = branding.project_name
electron_product_name = branding.product_name
@@ -98,15 +94,6 @@ npm_action("build_electron_definitions") {
outputs = [ "$target_gen_dir/tsc/typings/electron.d.ts" ]
}
webpack_build("electron_asar_bundle") {
deps = [ ":build_electron_definitions" ]
inputs = auto_filenames.asar_bundle_deps
config_file = "//electron/build/webpack/webpack.config.asar.js"
out_file = "$target_gen_dir/js2c/asar_bundle.js"
}
webpack_build("electron_browser_bundle") {
deps = [ ":build_electron_definitions" ]
@@ -152,18 +139,25 @@ webpack_build("electron_isolated_renderer_bundle") {
out_file = "$target_gen_dir/js2c/isolated_bundle.js"
}
copy("electron_js2c_copy") {
sources = [
"lib/common/asar.js",
"lib/common/asar_init.js",
]
outputs = [ "$target_gen_dir/js2c/{{source_file_part}}" ]
}
action("electron_js2c") {
deps = [
":electron_asar_bundle",
":electron_browser_bundle",
":electron_isolated_renderer_bundle",
":electron_js2c_copy",
":electron_renderer_bundle",
":electron_sandboxed_renderer_bundle",
":electron_worker_bundle",
]
sources = [
"$target_gen_dir/js2c/asar_bundle.js",
webpack_sources = [
"$target_gen_dir/js2c/browser_init.js",
"$target_gen_dir/js2c/isolated_bundle.js",
"$target_gen_dir/js2c/renderer_init.js",
@@ -171,10 +165,15 @@ action("electron_js2c") {
"$target_gen_dir/js2c/worker_init.js",
]
sources = webpack_sources + [
"$target_gen_dir/js2c/asar.js",
"$target_gen_dir/js2c/asar_init.js",
]
inputs = sources + [ "//third_party/electron_node/tools/js2c.py" ]
outputs = [ "$root_gen_dir/electron_natives.cc" ]
script = "build/js2c.py"
script = "tools/js2c.py"
args = [ rebase_path("//third_party/electron_node") ] +
rebase_path(outputs, root_build_dir) +
rebase_path(sources, root_build_dir)
@@ -325,6 +324,7 @@ source_set("electron_lib") {
"//base/allocator:buildflags",
"//chrome/app:command_ids",
"//chrome/app/resources:platform_locale_settings",
"//chrome/services/printing/public/mojom",
"//components/certificate_transparency",
"//components/language/core/browser",
"//components/net_log",
@@ -347,7 +347,6 @@ source_set("electron_lib") {
"//device/bluetooth",
"//device/bluetooth/public/cpp",
"//gin",
"//media/blink:blink",
"//media/capture/mojom:video_capture",
"//media/mojo/mojom",
"//net:extras",
@@ -405,26 +404,44 @@ source_set("electron_lib") {
defines += [ "GDK_DISABLE_DEPRECATION_WARNINGS" ]
}
extra_source_filters = []
if (!is_linux) {
extra_source_filters += [
"*\bx/*",
"*_x11.h",
"*_x11.cc",
"*_gtk.h",
"*_gtk.cc",
"*\blibrary_loaders/*",
]
}
if (!is_win) {
extra_source_filters += [
"*\bwin_*.h",
"*\bwin_*.cc",
]
}
if (!is_posix) {
extra_source_filters += [
"*_posix.cc",
"*_posix.h",
]
}
if (is_mac) {
extra_source_filters += [
"*_views.cc",
"*_views.h",
"*\bviews/*",
]
}
if (!is_mas_build) {
deps += [ "//components/crash/core/app" ]
}
set_sources_assignment_filter(
sources_assignment_filter + extra_source_filters)
sources = filenames.lib_sources
if (is_win) {
sources += filenames.lib_sources_win
}
if (is_mac) {
sources += filenames.lib_sources_mac
}
if (is_posix) {
sources += filenames.lib_sources_posix
}
if (is_linux) {
sources += filenames.lib_sources_linux
}
if (!is_mac) {
sources += filenames.lib_sources_views
}
set_sources_assignment_filter(sources_assignment_filter)
if (is_component_build) {
defines += [ "NODE_SHARED_MODE" ]
@@ -452,7 +469,7 @@ source_set("electron_lib") {
deps += [ "//third_party/crashpad/crashpad/client" ]
}
frameworks = [
libs = [
"AVFoundation.framework",
"Carbon.framework",
"LocalAuthentication.framework",
@@ -479,19 +496,18 @@ source_set("electron_lib") {
"shell/common/crash_keys.h",
]
} else {
frameworks += [
libs += [
"Squirrel.framework",
"ReactiveObjC.framework",
"ReactiveCocoa.framework",
"Mantle.framework",
]
deps += [
"//third_party/squirrel.mac:reactiveobjc_framework+link",
"//third_party/squirrel.mac:squirrel_framework+link",
cflags_objcc = [
"-F",
rebase_path("external_binaries", root_build_dir),
]
# ReactiveObjC which is used by Squirrel requires using __weak.
cflags_objcc = [ "-fobjc-weak" ]
# ReactiveCocoa which is used by Squirrel requires using __weak.
cflags_objcc += [ "-fobjc-weak" ]
}
}
if (is_linux) {
@@ -513,9 +529,7 @@ source_set("electron_lib") {
]
}
configs += [ ":gio_unix" ]
if (use_x11) {
deps += [ "//ui/gfx/x" ]
}
configs += [ "//build/config/linux:x11" ]
defines += [
# Disable warnings for g_settings_list_schemas.
"GLIB_DISABLE_DEPRECATION_WARNINGS",
@@ -571,6 +585,7 @@ source_set("electron_lib") {
sources += [
"shell/browser/osr/osr_host_display_client.cc",
"shell/browser/osr/osr_host_display_client.h",
"shell/browser/osr/osr_host_display_client_mac.mm",
"shell/browser/osr/osr_render_widget_host_view.cc",
"shell/browser/osr/osr_render_widget_host_view.h",
"shell/browser/osr/osr_video_consumer.cc",
@@ -579,13 +594,8 @@ source_set("electron_lib") {
"shell/browser/osr/osr_view_proxy.h",
"shell/browser/osr/osr_web_contents_view.cc",
"shell/browser/osr/osr_web_contents_view.h",
"shell/browser/osr/osr_web_contents_view_mac.mm",
]
if (is_mac) {
sources += [
"shell/browser/osr/osr_host_display_client_mac.mm",
"shell/browser/osr/osr_web_contents_view_mac.mm",
]
}
deps += [
"//components/viz/service",
"//services/viz/public/mojom",
@@ -593,6 +603,15 @@ source_set("electron_lib") {
]
}
if (enable_remote_module) {
sources += [
"shell/common/api/remote/remote_callback_freer.cc",
"shell/common/api/remote/remote_callback_freer.h",
"shell/common/api/remote/remote_object_freer.cc",
"shell/common/api/remote/remote_object_freer.h",
]
}
if (enable_desktop_capturer) {
if (is_component_build && !is_linux) {
# On windows the implementation relies on unexported
@@ -620,10 +639,7 @@ source_set("electron_lib") {
"shell/renderer/printing/print_render_frame_helper_delegate.cc",
"shell/renderer/printing/print_render_frame_helper_delegate.h",
]
deps += [
"//chrome/services/printing/public/mojom",
"//components/printing/common:mojo_interfaces",
]
deps += [ "//components/printing/common:mojo_interfaces" ]
}
if (enable_electron_extensions) {
@@ -654,7 +670,6 @@ source_set("electron_lib") {
deps += [
"//components/pdf/browser",
"//components/pdf/renderer",
"//pdf:pdf_ppapi",
]
sources += [
"shell/browser/electron_pdf_web_contents_helper_client.cc",
@@ -691,15 +706,6 @@ if (is_mac) {
sources = [ "shell/common/resources/mac/MainMenu.xib" ]
}
action("fake_v8_context_snapshot_generator") {
script = "build/fake_v8_context_snapshot_generator.py"
args = [
rebase_path("$root_out_dir/$v8_context_snapshot_filename"),
rebase_path("$root_out_dir/fake/$v8_context_snapshot_filename"),
]
outputs = [ "$root_out_dir/fake/$v8_context_snapshot_filename" ]
}
bundle_data("electron_framework_resources") {
public_deps = [ ":packed_resources" ]
sources = []
@@ -710,13 +716,8 @@ if (is_mac) {
if (v8_use_external_startup_data) {
public_deps += [ "//v8" ]
if (use_v8_context_snapshot) {
if (use_prebuilt_v8_context_snapshot) {
sources += [ "$root_out_dir/fake/$v8_context_snapshot_filename" ]
public_deps += [ ":fake_v8_context_snapshot_generator" ]
} else {
sources += [ "$root_out_dir/$v8_context_snapshot_filename" ]
public_deps += [ "//tools/v8_context_snapshot" ]
}
sources += [ "$root_out_dir/v8_context_snapshot.bin" ]
public_deps += [ "//tools/v8_context_snapshot" ]
} else {
sources += [ "$root_out_dir/snapshot_blob.bin" ]
}
@@ -821,19 +822,18 @@ if (is_mac) {
include_dirs = [ "." ]
sources = filenames.framework_sources
frameworks = []
libs = []
if (enable_osr) {
frameworks += [ "IOSurface.framework" ]
libs += [ "IOSurface.framework" ]
}
ldflags = [
"-F",
rebase_path("external_binaries", root_build_dir),
"-Wl,-install_name,@rpath/$output_name.framework/$output_name",
"-rpath",
"@loader_path/Libraries",
# Required for exporting all symbols of libuv.
"-Wl,-force_load,obj/third_party/electron_node/deps/uv/libuv.a",
]
if (is_component_build) {
ldflags += [
@@ -881,49 +881,17 @@ if (is_mac) {
}
}
template("stripped_framework") {
action(target_name) {
assert(defined(invoker.framework))
script = "//electron/build/strip_framework.py"
forward_variables_from(invoker, [ "deps" ])
inputs = [ "$root_out_dir/" + invoker.framework ]
outputs = [ "$target_out_dir/stripped_frameworks/" + invoker.framework ]
args = rebase_path(inputs) + rebase_path(outputs)
}
}
stripped_framework("stripped_mantle_framework") {
framework = "Mantle.framework"
deps = [ "//third_party/squirrel.mac:mantle_framework" ]
}
stripped_framework("stripped_reactiveobjc_framework") {
framework = "ReactiveObjC.framework"
deps = [ "//third_party/squirrel.mac:reactiveobjc_framework" ]
}
stripped_framework("stripped_squirrel_framework") {
framework = "Squirrel.framework"
deps = [ "//third_party/squirrel.mac:squirrel_framework" ]
}
bundle_data("electron_app_framework_bundle_data") {
sources = [ "$root_out_dir/$electron_framework_name.framework" ]
if (!is_mas_build) {
sources += get_target_outputs(":stripped_mantle_framework") +
get_target_outputs(":stripped_reactiveobjc_framework") +
get_target_outputs(":stripped_squirrel_framework")
sources += [
"external_binaries/Mantle.framework",
"external_binaries/ReactiveCocoa.framework",
"external_binaries/Squirrel.framework",
]
}
outputs = [ "{{bundle_contents_dir}}/Frameworks/{{source_file_part}}" ]
public_deps = [
":electron_framework+link",
":stripped_mantle_framework",
":stripped_reactiveobjc_framework",
":stripped_squirrel_framework",
]
public_deps = [ ":electron_framework+link" ]
foreach(helper_params, content_mac_helpers) {
sources +=
@@ -936,7 +904,7 @@ if (is_mac) {
output_name = electron_login_helper_name
sources = filenames.login_helper_sources
include_dirs = [ "." ]
frameworks = [ "AppKit.framework" ]
libs = [ "AppKit.framework" ]
info_plist = "shell/app/resources/mac/loginhelper-Info.plist"
extra_substitutions =
[ "ELECTRON_BUNDLE_ID=$electron_mac_bundle_id.loginhelper" ]
@@ -1121,9 +1089,7 @@ if (is_mac) {
data += [ "$root_out_dir/resources/default_app.asar" ]
}
if (use_v8_context_snapshot) {
public_deps = [ "//tools/v8_context_snapshot:v8_context_snapshot" ]
}
public_deps = [ "//tools/v8_context_snapshot:v8_context_snapshot" ]
if (is_win) {
sources += [
@@ -1150,9 +1116,17 @@ if (is_mac) {
"//build/config/win:delayloads",
]
if (target_cpu == "arm64") {
configs -= [ "//build/config/win:cfi_linker" ]
ldflags += [ "/guard:cf,nolongjmp" ]
if (current_cpu == "x86") {
# Set the initial stack size to 0.5MiB, instead of the 1.5MiB needed by
# Chrome's main thread. This saves significant memory on threads (like
# those in the Windows thread pool, and others) whose stack size we can
# only control through this setting. Because Chrome's main thread needs
# a minimum 1.5 MiB stack, the main thread (in 32-bit builds only) uses
# fibers to switch to a 1.5 MiB stack before running any other code.
ldflags += [ "/STACK:0x80000" ]
} else {
# Increase the initial stack size. The default is 1MB, this is 8MB.
ldflags += [ "/STACK:0x800000" ]
}
# This is to support renaming of electron.exe. node-gyp has hard-coded
@@ -1167,14 +1141,7 @@ if (is_mac) {
]
}
if (is_linux) {
ldflags = [
"-pie",
# Required for exporting all symbols of libuv.
"-Wl,--whole-archive",
"obj/third_party/electron_node/deps/uv/libuv.a",
"-Wl,--no-whole-archive",
]
ldflags = [ "-pie" ]
if (!is_component_build && is_component_ffmpeg) {
configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
@@ -1240,6 +1207,18 @@ test("shell_browser_ui_unittests") {
"//ui/base",
"//ui/strings",
]
if (is_mac) {
# Resolve paths owing to different test executable locations
ldflags = [
"-F",
rebase_path("external_binaries", root_build_dir),
"-rpath",
"@loader_path",
"-rpath",
"@executable_path/" + rebase_path("external_binaries", root_build_dir),
]
}
}
template("dist_zip") {
@@ -1337,13 +1316,10 @@ dist_zip("electron_chromedriver_zip") {
mksnapshot_deps = [
":licenses",
"//tools/v8_context_snapshot:v8_context_snapshot_generator($v8_snapshot_toolchain)",
"//v8:mksnapshot($v8_snapshot_toolchain)",
]
if (use_v8_context_snapshot) {
mksnapshot_deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_generator($v8_snapshot_toolchain)" ]
}
group("electron_mksnapshot") {
public_deps = mksnapshot_deps
}

View File

@@ -47,17 +47,17 @@ dependencies, and tools contained in the `electron/electron` repository.
* [Step 1: Fork](https://electronjs.org/docs/development/pull-requests#step-1-fork)
* [Step 2: Build](https://electronjs.org/docs/development/pull-requests#step-2-build)
* [Step 3: Branch](https://electronjs.org/docs/development/pull-requests#step-3-branch)
* [Making Changes](https://electronjs.org/docs/development/pull-requests#making-changes)
* [The Process of Making Changes](https://electronjs.org/docs/development/pull-requests#the-process-of-making-changes)
* [Step 4: Code](https://electronjs.org/docs/development/pull-requests#step-4-code)
* [Step 5: Commit](https://electronjs.org/docs/development/pull-requests#step-5-commit)
* [Commit message guidelines](https://electronjs.org/docs/development/pull-requests#commit-message-guidelines)
* [Step 6: Rebase](https://electronjs.org/docs/development/pull-requests#step-6-rebase)
* [Step 7: Test](https://electronjs.org/docs/development/pull-requests#step-7-test)
* [Step 8: Push](https://electronjs.org/docs/development/pull-requests#step-8-push)
* [Step 9: Opening the Pull Request](https://electronjs.org/docs/development/pull-requests#step-9-opening-the-pull-request)
* [Step 10: Discuss and Update](https://electronjs.org/docs/development/pull-requests#step-10-discuss-and-update)
* [Step 8: Opening the Pull Request](https://electronjs.org/docs/development/pull-requests#step-8-opening-the-pull-request)
* [Step 9: Discuss and Update](#step-9-discuss-and-update)
* [Approval and Request Changes Workflow](https://electronjs.org/docs/development/pull-requests#approval-and-request-changes-workflow)
* [Step 11: Landing](https://electronjs.org/docs/development/pull-requests#step-11-landing)
* [Step 10: Landing](https://electronjs.org/docs/development/pull-requests#step-10-landing)
* [Continuous Integration Testing](https://electronjs.org/docs/development/pull-requests#continuous-integration-testing)
## Style Guides

28
DEPS
View File

@@ -14,13 +14,11 @@ gclient_gn_args = [
vars = {
'chromium_version':
'87.0.4280.67',
'85.0.4183.121',
'node_version':
'v12.18.3',
'v12.16.3',
'nan_version':
'2c4ee8a32a299eada3cd6e468bbd0a473bfea96d',
'squirrel.mac_version':
'a3a5b3f03b824441c014893b18f99a103b2603e9',
'boto_version': 'f7574aa6cc2c819430c1f05e9a1a1a666ef8169b',
'pyyaml_version': '3.12',
@@ -32,7 +30,6 @@ vars = {
'nodejs_git': 'https://github.com/nodejs',
'requests_git': 'https://github.com/kennethreitz',
'yaml_git': 'https://github.com/yaml',
'squirrel_git': 'https://github.com/Squirrel',
# KEEP IN SYNC WITH utils.js FILE
'yarn_version': '1.15.2',
@@ -107,18 +104,6 @@ deps = {
'url': Var('requests_git') + '/requests.git' + '@' + Var('requests_version'),
'condition': 'checkout_requests and process_deps',
},
'src/third_party/squirrel.mac': {
'url': Var("squirrel_git") + '/Squirrel.Mac.git@' + Var("squirrel.mac_version"),
'condition': 'process_deps',
},
'src/third_party/squirrel.mac/vendor/ReactiveObjC': {
'url': 'https://github.com/ReactiveCocoa/ReactiveObjC.git@74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76',
'condition': 'process_deps'
},
'src/third_party/squirrel.mac/vendor/Mantle': {
'url': 'https://github.com/Mantle/Mantle.git@78d3966b3c331292ea29ec38661b25df0a245948',
'condition': 'process_deps',
}
}
hooks = [
@@ -127,7 +112,7 @@ hooks = [
'condition': '(checkout_chromium and apply_patches) and process_deps',
'pattern': 'src/electron',
'action': [
'python3',
'python',
'src/electron/script/apply_all_patches.py',
'src/electron/patches/config.json',
],
@@ -145,7 +130,7 @@ hooks = [
'name': 'electron_npm_deps',
'pattern': 'src/electron/package.json',
'action': [
'python3',
'python',
'-c',
'import os, subprocess; os.chdir(os.path.join("src", "electron")); subprocess.check_call(["python", "script/lib/npx.py", "yarn@' + (Var("yarn_version")) + '", "install", "--frozen-lockfile"]);',
],
@@ -155,7 +140,7 @@ hooks = [
'pattern': 'src/electron',
'condition': 'checkout_boto and process_deps',
'action': [
'python3',
'python',
'-c',
'import os, subprocess; os.chdir(os.path.join("src", "electron", "vendor", "boto")); subprocess.check_call(["python", "setup.py", "build"]);',
],
@@ -165,7 +150,7 @@ hooks = [
'pattern': 'src/electron',
'condition': 'checkout_requests and process_deps',
'action': [
'python3',
'python',
'-c',
'import os, subprocess; os.chdir(os.path.join("src", "electron", "vendor", "requests")); subprocess.check_call(["python", "setup.py", "build"]);',
],
@@ -174,5 +159,4 @@ hooks = [
recursedeps = [
'src',
'src/third_party/squirrel.mac',
]

View File

@@ -1 +1 @@
11.0.4
10.4.7

View File

@@ -28,15 +28,12 @@ The preferred method is to install Electron as a development dependency in your
app:
```sh
npm install electron --save-dev [--save-exact]
npm install electron --save-dev
```
The `--save-exact` flag is recommended for Electron prior to version 2, as it does not follow semantic
versioning. As of version 2.0.0, Electron follows semver, so you don't need `--save-exact` flag. For info on how to manage Electron versions in your apps, see
[Electron versioning](docs/tutorial/electron-versioning.md).
For more installation options and troubleshooting tips, see
[installation](docs/tutorial/installation.md).
[installation](docs/tutorial/installation.md). For info on how to manage Electron versions in your apps, see
[Electron versioning](docs/tutorial/electron-versioning.md).
## Quick start & Electron Fiddle

View File

@@ -6,11 +6,7 @@ To report a security issue, email [security@electronjs.org](mailto:security@elec
The Electron team will send a response indicating the next steps in handling your report. After the initial reply to your report, the security team will keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.
Report security bugs in third-party modules to the person or team maintaining the module. You can also report a vulnerability through the [npm contact form](https://www.npmjs.com/support) by selecting "I'm reporting a security vulnerability".
## The Electron Security Notification Process
For context on Electron's security notification process, please see the [Notifications](https://github.com/electron/governance/blob/master/wg-security/membership-and-notifications.md#notifications) section of the Security WG's [Membership and Notifications](https://github.com/electron/governance/blob/master/wg-security/membership-and-notifications.md) Governance document.
Report security bugs in third-party modules to the person or team maintaining the module. You can also report a vulnerability through the [Node Security Project](https://nodesecurity.io/report).
## Learning More About Security
To learn more about securing an Electron application, please see the [security tutorial](docs/tutorial/security.md).

View File

@@ -36,6 +36,7 @@ environment:
ELECTRON_ENABLE_STACK_DUMPING: 1
MOCHA_REPORTER: mocha-multi-reporters
MOCHA_MULTI_REPORTERS: mocha-appveyor-reporter, tap
GOMA_FALLBACK_ON_AUTH_FAILURE: true
notifications:
- provider: Webhook
url: https://electron-mission-control.herokuapp.com/rest/appveyor-hook
@@ -63,7 +64,6 @@ build_script:
- git config --global core.longpaths true
- cd ..
- mkdir src
- update_depot_tools.bat
- ps: Move-Item $env:APPVEYOR_BUILD_FOLDER -Destination src\electron
- ps: $env:CHROMIUM_BUILDTOOLS_PATH="$pwd\src\buildtools"
- ps: $env:SCCACHE_PATH="$pwd\src\electron\external_binaries\sccache.exe"
@@ -101,11 +101,6 @@ build_script:
} else {
# update external binaries
python src/electron/script/update-external-binaries.py
# update angle
cd src\third_party\angle
git remote set-url origin https://chromium.googlesource.com/angle/angle.git
git fetch
cd ..\..\..
}
} else {
# file does not exist, gclient sync, then zip
@@ -121,16 +116,14 @@ build_script:
if ($env:SAVE_GCLIENT_SRC -eq 'true') {
# archive current source for future use
# only run on x64/woa to avoid contention saving
$(7z a $zipfile src -xr!android_webview -xr!electron -xr'!*\.git' -xr!third_party\WebKit\LayoutTests! -xr!third_party\blink\web_tests -xr!third_party\blink\perf_tests -slp -t7z -mmt=30)
if ($LASTEXITCODE -ne 0) {
if ($(7z a $zipfile src -xr!android_webview -xr!electron -xr'!*\.git' -xr!third_party\WebKit\LayoutTests! -xr!third_party\blink\web_tests -xr!third_party\blink\perf_tests -slp -t7z -mmt=30;$LASTEXITCODE -ne 0)) {
Write-warning "Could not save source to shared drive; continuing anyway"
}
# build time generation of file gen/angle/angle_commit.h depends on
# third_party/angle/.git
# build time generation of file gen/angle/commit.h depends on
# third_party/angle/.git/HEAD.
# https://chromium-review.googlesource.com/c/angle/angle/+/2074924
$(7z a $zipfile src\third_party\angle\.git)
if ($LASTEXITCODE -ne 0) {
Write-warning "Failed to add third_party\angle\.git; continuing anyway"
if ($(7z a $zipfile src\third_party\angle\.git\HEAD;$LASTEXITCODE -ne 0)) {
Write-warning "Failed to add third_party\angle\.git\HEAD; continuing anyway"
}
}
- ps: >-
@@ -214,8 +207,7 @@ test_script:
echo "Skipping tests for $env:GN_CONFIG build"
}
- cd electron
# CalculateNativeWinOcclusion is disabled due to https://bugs.chromium.org/p/chromium/issues/detail?id=1139022
- if "%RUN_TESTS%"=="true" ( echo Running test suite & node script/yarn test -- --trace-uncaught --enable-logging --disable-features=CalculateNativeWinOcclusion )
- if "%RUN_TESTS%"=="true" ( echo Running test suite & node script/yarn test -- --trace-uncaught --enable-logging)
- 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"

View File

@@ -1,104 +0,0 @@
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: src/electron'
inputs:
TargetFolder: src/electron
- bash: |
cd src/electron
node script/yarn.js install --frozen-lockfile
displayName: 'Yarn install'
- bash: |
export ZIP_DEST=$PWD/src/out/Default
echo "##vso[task.setvariable variable=ZIP_DEST]$ZIP_DEST"
mkdir -p $ZIP_DEST
cd src/electron
node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=dist.zip --dest=$ZIP_DEST
cd $ZIP_DEST
unzip -o dist.zip
displayName: 'Download and unzip dist files for test'
env:
CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
- bash: |
export FFMPEG_ZIP_DEST=$PWD/src/out/ffmpeg
mkdir -p $FFMPEG_ZIP_DEST
cd src/electron
node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=ffmpeg.zip --dest=$FFMPEG_ZIP_DEST
cd $FFMPEG_ZIP_DEST
unzip -o ffmpeg.zip
displayName: 'Download and unzip ffmpeg for test'
env:
CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
- bash: |
export NODE_HEADERS_DEST=$PWD/src/out/Default/gen
mkdir -p $NODE_HEADERS_DEST
cd src/electron
node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=node_headers.tar.gz --dest=$NODE_HEADERS_DEST
cd $NODE_HEADERS_DEST
tar xzf node_headers.tar.gz
displayName: 'Download and untar node header files for test'
env:
CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
- bash: |
export CROSS_ARCH_SNAPSHOTS=$PWD/src/out/Default/cross-arch-snapshots
mkdir -p $CROSS_ARCH_SNAPSHOTS
cd src/electron
node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=cross-arch-snapshots/snapshot_blob.bin --dest=$CROSS_ARCH_SNAPSHOTS
node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=cross-arch-snapshots/v8_context_snapshot.bin --dest=$CROSS_ARCH_SNAPSHOTS
displayName: 'Download cross arch snapshot files'
env:
CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
- bash: |
export NATIVE_UNITTESTS_DEST=$PWD/src/out/Default
cd src/electron
node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=shell_browser_ui_unittests --dest=$NATIVE_UNITTESTS_DEST
chmod +x $NATIVE_UNITTESTS_DEST/shell_browser_ui_unittests
displayName: 'Download native unittest executables'
env:
CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
- bash: |
cd src
export ELECTRON_OUT_DIR=Default
set npm_config_arch=arm64
(cd electron && node script/yarn test -- --enable-logging)
displayName: 'Run Electron tests'
timeoutInMinutes: 20
env:
ELECTRON_DISABLE_SECURITY_WARNINGS: 1
IGNORE_YARN_INSTALL_ERROR: 1
ELECTRON_TEST_RESULTS_DIR: junit
- bash: |
cd src
python electron/script/verify-ffmpeg.py --source-root "$PWD" --build-dir out/Default --ffmpeg-path out/ffmpeg
displayName: Verify non proprietary ffmpeg
timeoutInMinutes: 5
condition: succeededOrFailed()
- bash: |
cd src
echo Verify cross arch snapshot
python electron/script/verify-mksnapshot.py --source-root "$PWD" --build-dir out/Default --snapshot-files-dir $PWD/out/Default/cross-arch-snapshots
displayName: Verify cross arch snapshot
timeoutInMinutes: 5
condition: succeededOrFailed()
- task: PublishTestResults@2
displayName: 'Publish Test Results'
inputs:
testResultsFiles: '*.xml'
searchFolder: '$(System.DefaultWorkingDirectory)/src/junit/'
condition: succeededOrFailed()
- task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
displayName: 'Clean Agent Directories'
condition: always()

View File

@@ -63,8 +63,7 @@ steps:
set npm_config_nodedir=%cd%\out\Default\gen\node_headers
set npm_config_arch=arm64
cd electron
# CalculateNativeWinOcclusion is disabled due to https://bugs.chromium.org/p/chromium/issues/detail?id=1139022
node script/yarn test -- --enable-logging --verbose --disable-features=CalculateNativeWinOcclusion
node script/yarn test -- --enable-logging --verbose
displayName: 'Run Electron tests'
env:
ELECTRON_OUT_DIR: Default
@@ -93,6 +92,6 @@ steps:
condition: always()
- powershell: |
Remove-Item -path $env:APPDATA/Electron* -Recurse
Remove-Item -path $env:APPDATA/Electron* -Recurse -Force -ErrorAction Ignore
displayName: 'Delete user app data directories'
condition: always()

View File

@@ -2,7 +2,7 @@ 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 = 85
node_module_version = 82
v8_promise_internal_field_count = 1
v8_typed_array_max_size_in_heap = 0

View File

@@ -1,8 +0,0 @@
import os
import shutil
import sys
if os.path.exists(sys.argv[2]):
os.remove(sys.argv[2])
shutil.copy(sys.argv[1], sys.argv[2])

View File

@@ -1,16 +0,0 @@
#!/usr/bin/env python
import os
import subprocess
import sys
source = sys.argv[1]
dest = sys.argv[2]
# Ensure any existing framework is removed
subprocess.check_output(["rm", "-rf", dest])
subprocess.check_output(["cp", "-a", source, dest])
# Strip headers, we do not need to ship them
subprocess.check_output(["rm", "-r", os.path.join(dest, 'Headers')])
subprocess.check_output(["rm", "-r", os.path.join(dest, 'Versions', 'Current', 'Headers')])

View File

@@ -1,2 +1,2 @@
process.env.PRINT_WEBPACK_GRAPH = true;
require('./run-compiler');
process.env.PRINT_WEBPACK_GRAPH = true
require('./run-compiler')

View File

@@ -1,24 +1,24 @@
const fs = require('fs');
const path = require('path');
const webpack = require('webpack');
const path = require('path')
const webpack = require('webpack')
const configPath = process.argv[2];
const outPath = path.resolve(process.argv[3]);
const config = require(configPath);
const configPath = process.argv[2]
const outPath = path.resolve(process.argv[3])
const config = require(configPath)
config.output = {
path: path.dirname(outPath),
filename: path.basename(outPath)
};
}
const { wrapInitWithProfilingTimeout, wrapInitWithTryCatch, ...webpackConfig } = config;
webpack(webpackConfig, (err, stats) => {
if (err) {
console.error(err);
process.exit(1);
console.error(err)
process.exit(1)
} else if (stats.hasErrors()) {
console.error(stats.toString('normal'));
process.exit(1);
console.error(stats.toString('normal'))
process.exit(1)
} else {
let contents = fs.readFileSync(outPath, 'utf8');
if (wrapInitWithTryCatch) {
@@ -39,7 +39,7 @@ if ((globalThis.process || binding.process).argv.includes("--profile-electron-in
___electron_webpack_init__();
}`;
}
fs.writeFileSync(outPath, contents);
process.exit(0);
fs.writeFileSync(outPath, contents)
process.exit(0)
}
});
})

View File

@@ -1,5 +0,0 @@
module.exports = require('./webpack.config.base')({
target: 'asar',
alwaysHasNode: true,
targetDeletesNodeGlobals: true
});

View File

@@ -1,39 +1,39 @@
const fs = require('fs');
const path = require('path');
const webpack = require('webpack');
const fs = require('fs')
const path = require('path')
const webpack = require('webpack')
const TerserPlugin = require('terser-webpack-plugin');
const electronRoot = path.resolve(__dirname, '../..');
const electronRoot = path.resolve(__dirname, '../..')
const onlyPrintingGraph = !!process.env.PRINT_WEBPACK_GRAPH;
const onlyPrintingGraph = !!process.env.PRINT_WEBPACK_GRAPH
class AccessDependenciesPlugin {
apply (compiler) {
apply(compiler) {
// Only hook into webpack when we are printing the dependency graph
if (!onlyPrintingGraph) return;
if (!onlyPrintingGraph) return
compiler.hooks.compilation.tap('AccessDependenciesPlugin', compilation => {
compilation.hooks.finishModules.tap('AccessDependenciesPlugin', modules => {
const filePaths = modules.map(m => m.resource).filter(p => p).map(p => path.relative(electronRoot, p));
console.info(JSON.stringify(filePaths));
});
});
const filePaths = modules.map(m => m.resource).filter(p => p).map(p => path.relative(electronRoot, p))
console.info(JSON.stringify(filePaths))
})
})
}
}
const defines = {
BUILDFLAG: onlyPrintingGraph ? '(a => a)' : ''
};
}
const buildFlagsPrefix = '--buildflags=';
const buildFlagsPrefix = '--buildflags='
const buildFlagArg = process.argv.find(arg => arg.startsWith(buildFlagsPrefix));
if (buildFlagArg) {
const buildFlagPath = buildFlagArg.substr(buildFlagsPrefix.length);
const buildFlagPath = buildFlagArg.substr(buildFlagsPrefix.length)
const flagFile = fs.readFileSync(buildFlagPath, 'utf8');
const flagFile = fs.readFileSync(buildFlagPath, 'utf8')
for (const line of flagFile.split(/(\r\n|\r|\n)/g)) {
const flagMatch = line.match(/#define BUILDFLAG_INTERNAL_(.+?)\(\) \(([01])\)/);
const flagMatch = line.match(/#define BUILDFLAG_INTERNAL_(.+?)\(\) \(([01])\)/)
if (flagMatch) {
const [, flagName, flagValue] = flagMatch;
defines[flagName] = JSON.stringify(Boolean(parseInt(flagValue, 10)));
@@ -41,27 +41,27 @@ if (buildFlagArg) {
}
}
const ignoredModules = [];
const ignoredModules = []
if (defines.ENABLE_DESKTOP_CAPTURER === 'false') {
if (defines['ENABLE_DESKTOP_CAPTURER'] === 'false') {
ignoredModules.push(
'@electron/internal/browser/desktop-capturer',
'@electron/internal/browser/api/desktop-capturer',
'@electron/internal/renderer/api/desktop-capturer'
);
)
}
if (defines.ENABLE_REMOTE_MODULE === 'false') {
if (defines['ENABLE_REMOTE_MODULE'] === 'false') {
ignoredModules.push(
'@electron/internal/browser/remote/server',
'@electron/internal/renderer/api/remote'
);
)
}
if (defines.ENABLE_VIEWS_API === 'false') {
if (defines['ENABLE_VIEWS_API'] === 'false') {
ignoredModules.push(
'@electron/internal/browser/api/views/image-view.js'
);
)
}
module.exports = ({
@@ -72,13 +72,11 @@ module.exports = ({
wrapInitWithProfilingTimeout,
wrapInitWithTryCatch
}) => {
let entry = path.resolve(electronRoot, 'lib', target, 'init.ts');
let entry = path.resolve(electronRoot, 'lib', target, 'init.ts')
if (!fs.existsSync(entry)) {
entry = path.resolve(electronRoot, 'lib', target, 'init.js');
entry = path.resolve(electronRoot, 'lib', target, 'init.js')
}
const electronAPIFile = path.resolve(electronRoot, 'lib', loadElectronFromAlternateTarget || target, 'api', 'exports', 'electron.ts');
return ({
mode: 'development',
devtool: false,
@@ -92,19 +90,16 @@ module.exports = ({
resolve: {
alias: {
'@electron/internal': path.resolve(electronRoot, 'lib'),
electron$: electronAPIFile,
'electron/main$': electronAPIFile,
'electron/renderer$': electronAPIFile,
'electron/common$': electronAPIFile,
'electron': path.resolve(electronRoot, 'lib', loadElectronFromAlternateTarget || target, 'api', 'exports', 'electron.ts'),
// Force timers to resolve to our dependency that doesn't use window.postMessage
timers: path.resolve(electronRoot, 'node_modules', 'timers-browserify', 'main.js')
'timers': path.resolve(electronRoot, 'node_modules', 'timers-browserify', 'main.js')
},
extensions: ['.ts', '.js']
},
module: {
rules: [{
test: (moduleName) => !onlyPrintingGraph && ignoredModules.includes(moduleName),
loader: 'null-loader'
loader: 'null-loader',
}, {
test: /\.ts$/,
loader: 'ts-loader',
@@ -113,7 +108,7 @@ module.exports = ({
transpileOnly: onlyPrintingGraph,
ignoreDiagnostics: [
// File '{0}' is not under 'rootDir' '{1}'.
6059
6059,
]
}
}]
@@ -123,7 +118,7 @@ module.exports = ({
__filename: false,
// We provide our own "timers" import above, any usage of setImmediate inside
// one of our renderer bundles should import it from the 'timers' package
setImmediate: false
setImmediate: false,
},
optimization: {
minimize: true,
@@ -131,24 +126,24 @@ module.exports = ({
new TerserPlugin({
terserOptions: {
keep_classnames: true,
keep_fnames: true
}
})
]
keep_fnames: true,
},
}),
],
},
plugins: [
new AccessDependenciesPlugin(),
...(targetDeletesNodeGlobals ? [
new webpack.ProvidePlugin({
process: ['@electron/internal/common/webpack-provider', 'process'],
global: ['@electron/internal/common/webpack-provider', '_global'],
Buffer: ['@electron/internal/common/webpack-provider', 'Buffer']
process: ['@electron/internal/renderer/webpack-provider', 'process'],
global: ['@electron/internal/renderer/webpack-provider', '_global'],
Buffer: ['@electron/internal/renderer/webpack-provider', 'Buffer'],
})
] : []),
new webpack.ProvidePlugin({
Promise: ['@electron/internal/common/webpack-globals-provider', 'Promise']
Promise: ['@electron/internal/common/webpack-globals-provider', 'Promise'],
}),
new webpack.DefinePlugin(defines)
new webpack.DefinePlugin(defines),
]
});
};
})
}

View File

@@ -1,4 +1,4 @@
module.exports = require('./webpack.config.base')({
target: 'browser',
alwaysHasNode: true
});
})

View File

@@ -2,4 +2,4 @@ module.exports = require('./webpack.config.base')({
target: 'isolated_renderer',
alwaysHasNode: false,
wrapInitWithTryCatch: true
});
})

View File

@@ -4,4 +4,4 @@ module.exports = require('./webpack.config.base')({
targetDeletesNodeGlobals: true,
wrapInitWithProfilingTimeout: true,
wrapInitWithTryCatch: true
});
})

View File

@@ -3,4 +3,4 @@ module.exports = require('./webpack.config.base')({
alwaysHasNode: false,
wrapInitWithProfilingTimeout: true,
wrapInitWithTryCatch: true
});
})

View File

@@ -4,4 +4,4 @@ module.exports = require('./webpack.config.base')({
alwaysHasNode: true,
targetDeletesNodeGlobals: true,
wrapInitWithTryCatch: true
});
})

View File

@@ -13,30 +13,25 @@ EXTENSIONS_TO_SKIP = [
]
PATHS_TO_SKIP = [
# Skip because it is an output of //ui/gl that we don't need.
'angledata',
# Skip because these are outputs that we don't need.
'./libVkICD_mock_',
# Skip because these are outputs that we don't need.
'./VkICD_mock_',
# Skip because its an output of create_bundle from //build/config/mac/rules.gni
'angledata', #Skipping because it is an output of //ui/gl that we don't need
'./libVkICD_mock_', #Skipping because these are outputs that we don't need
'./VkICD_mock_', #Skipping because these are outputs that we don't need
# Skipping because its an output of create_bundle from //build/config/mac/rules.gni
# that we don't need
'Electron.dSYM',
# Refs https://chromium-review.googlesource.com/c/angle/angle/+/2425197.
# Remove this when Angle themselves remove the file: https://issuetracker.google.com/issues/168736059
'gen/angle/angle_commit.h',
# //chrome/browser:resources depends on this via
# //chrome/browser/resources/ssl/ssl_error_assistant, but we don't need to
# ship it.
'pyproto',
# On Windows, this binary doesn't exist (the crashpad handler is built-in).
# On MacOS, the binary is called 'chrome_crashpad_handler' and is inside the
# app bundle.
# On Linux, we don't use crashpad, but this binary is still built for some
# reason. Exclude it from the zip.
'./crashpad_handler',
# Skip because these are outputs that we don't need.
'resources/inspector',
]
def skip_path(dep, dist_zip, target_cpu):

View File

@@ -12,8 +12,6 @@ import("//third_party/widevine/cdm/widevine.gni")
static_library("chrome") {
visibility = [ "//electron:electron_lib" ]
sources = [
"//chrome/browser/accessibility/accessibility_ui.cc",
"//chrome/browser/accessibility/accessibility_ui.h",
"//chrome/browser/browser_process.cc",
"//chrome/browser/browser_process.h",
"//chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc",
@@ -26,10 +24,18 @@ static_library("chrome") {
"//chrome/browser/devtools/devtools_file_system_indexer.h",
"//chrome/browser/extensions/global_shortcut_listener.cc",
"//chrome/browser/extensions/global_shortcut_listener.h",
"//chrome/browser/extensions/global_shortcut_listener_mac.h",
"//chrome/browser/extensions/global_shortcut_listener_mac.mm",
"//chrome/browser/extensions/global_shortcut_listener_win.cc",
"//chrome/browser/extensions/global_shortcut_listener_win.h",
"//chrome/browser/icon_loader.cc",
"//chrome/browser/icon_loader.h",
"//chrome/browser/icon_loader_mac.mm",
"//chrome/browser/icon_loader_win.cc",
"//chrome/browser/icon_manager.cc",
"//chrome/browser/icon_manager.h",
"//chrome/browser/media/webrtc/system_media_capture_permissions_mac.h",
"//chrome/browser/media/webrtc/system_media_capture_permissions_mac.mm",
"//chrome/browser/net/chrome_mojo_proxy_resolver_factory.cc",
"//chrome/browser/net/chrome_mojo_proxy_resolver_factory.h",
"//chrome/browser/net/proxy_config_monitor.cc",
@@ -49,45 +55,25 @@ static_library("chrome") {
"//chrome/browser/ssl/tls_deprecation_config.cc",
"//chrome/browser/ui/views/autofill/autofill_popup_view_utils.cc",
"//chrome/browser/ui/views/autofill/autofill_popup_view_utils.h",
"//chrome/browser/win/chrome_process_finder.cc",
"//chrome/browser/win/chrome_process_finder.h",
"//chrome/child/v8_crashpad_support_win.cc",
"//chrome/child/v8_crashpad_support_win.h",
"//extensions/browser/app_window/size_constraints.cc",
"//extensions/browser/app_window/size_constraints.h",
]
if (is_mac) {
sources += [
"//chrome/browser/extensions/global_shortcut_listener_mac.h",
"//chrome/browser/extensions/global_shortcut_listener_mac.mm",
"//chrome/browser/icon_loader_mac.mm",
"//chrome/browser/media/webrtc/system_media_capture_permissions_mac.h",
"//chrome/browser/media/webrtc/system_media_capture_permissions_mac.mm",
]
}
if (is_win) {
sources += [
"//chrome/browser/extensions/global_shortcut_listener_win.cc",
"//chrome/browser/extensions/global_shortcut_listener_win.h",
"//chrome/browser/icon_loader_win.cc",
"//chrome/browser/win/chrome_process_finder.cc",
"//chrome/browser/win/chrome_process_finder.h",
"//chrome/child/v8_crashpad_support_win.cc",
"//chrome/child/v8_crashpad_support_win.h",
]
}
public_deps = [
"//chrome/common",
"//chrome/common:version_header",
"//components/keyed_service/content",
"//components/paint_preview/buildflags",
"//components/proxy_config",
"//components/security_state/content",
"//content/public/browser",
]
deps = [
"//chrome/browser:resource_prefetch_predictor_proto",
"//chrome/services/speech:buildflags",
"//components/feature_engagement:buildflags",
"//components/optimization_guide/proto:optimization_guide_proto",
]
@@ -276,23 +262,12 @@ static_library("chrome") {
]
}
}
if (!is_mas_build) {
sources += [ "//chrome/browser/hang_monitor/hang_crash_dump.h" ]
if (is_mac) {
sources += [ "//chrome/browser/hang_monitor/hang_crash_dump_mac.cc" ]
} else if (is_win) {
sources += [ "//chrome/browser/hang_monitor/hang_crash_dump_win.cc" ]
} else {
sources += [ "//chrome/browser/hang_monitor/hang_crash_dump.cc" ]
}
}
}
source_set("plugins") {
sources = []
deps = []
frameworks = []
libs = []
# browser side
sources += [
@@ -326,7 +301,7 @@ source_set("plugins") {
"//chrome/browser/renderer_host/pepper/monitor_finder_mac.h",
"//chrome/browser/renderer_host/pepper/monitor_finder_mac.mm",
]
frameworks += [ "CoreGraphics.framework" ]
libs += [ "CoreGraphics.framework" ]
}
if (is_linux) {
deps += [ "//components/services/font/public/cpp" ]
@@ -390,8 +365,8 @@ source_set("chrome_spellchecker") {
"//chrome/browser/spellchecker/spellcheck_factory.h",
"//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc",
"//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h",
"//chrome/browser/spellchecker/spellcheck_language_blocklist_policy_handler.cc",
"//chrome/browser/spellchecker/spellcheck_language_blocklist_policy_handler.h",
"//chrome/browser/spellchecker/spellcheck_language_blacklist_policy_handler.cc",
"//chrome/browser/spellchecker/spellcheck_language_blacklist_policy_handler.h",
"//chrome/browser/spellchecker/spellcheck_language_policy_handler.cc",
"//chrome/browser/spellchecker/spellcheck_language_policy_handler.h",
"//chrome/browser/spellchecker/spellcheck_service.cc",

View File

@@ -360,7 +360,7 @@ bool CheckCookie(const base::FilePath& path, const base::FilePath& cookie) {
}
bool IsAppSandboxed() {
#if defined(OS_MAC)
#if defined(OS_MACOSX)
// NB: There is no sane API for this, we have to just guess by
// reading tea leaves
base::FilePath home_dir;
@@ -371,7 +371,7 @@ bool IsAppSandboxed() {
return home_dir.value().find("Library/Containers") != std::string::npos;
#else
return false;
#endif // defined(OS_MAC)
#endif // defined(OS_MACOSX)
}
bool ConnectSocket(ScopedSocket* socket,
@@ -421,7 +421,7 @@ bool ConnectSocket(ScopedSocket* socket,
}
}
#if defined(OS_MAC)
#if defined(OS_MACOSX)
bool ReplaceOldSingletonLock(const base::FilePath& symlink_content,
const base::FilePath& lock_path) {
// Try taking an flock(2) on the file. Failure means the lock is taken so we
@@ -447,14 +447,14 @@ bool ReplaceOldSingletonLock(const base::FilePath& symlink_content,
// lock. We never flock() the lock file from now on. I.e. we assume that an
// old version of Chrome will not run with the same user data dir after this
// version has run.
if (!base::DeleteFile(lock_path)) {
if (!base::DeleteFile(lock_path, false)) {
PLOG(ERROR) << "Could not delete old singleton lock.";
return false;
}
return SymlinkPath(symlink_content, lock_path);
}
#endif // defined(OS_MAC)
#endif // defined(OS_MACOSX)
} // namespace
@@ -969,7 +969,7 @@ bool ProcessSingleton::Create() {
if (!SymlinkPath(symlink_content, lock_path_)) {
// TODO(jackhou): Remove this case once this code is stable on Mac.
// http://crbug.com/367612
#if defined(OS_MAC)
#if defined(OS_MACOSX)
// On Mac, an existing non-symlink lock file means the lock could be held by
// the old process singleton code. If we can successfully replace the lock,
// continue as normal.

View File

@@ -41,14 +41,14 @@ ipcMain.handle('bootstrap', (event) => {
return isTrustedSender(event.sender) ? electronPath : null;
});
async function createWindow () {
async function createWindow (backgroundColor?: string) {
await app.whenReady();
const options: Electron.BrowserWindowConstructorOptions = {
width: 960,
height: 620,
autoHideMenuBar: true,
backgroundColor: '#2f3241',
backgroundColor,
webPreferences: {
preload: path.resolve(__dirname, 'preload.js'),
contextIsolation: true,
@@ -96,7 +96,7 @@ export const loadURL = async (appUrl: string) => {
};
export const loadFile = async (appPath: string) => {
mainWindow = await createWindow();
mainWindow = await createWindow(appPath === 'index.html' ? '#2f3241' : undefined);
mainWindow.loadFile(appPath);
mainWindow.focus();
};

View File

@@ -53,31 +53,31 @@
<nav>
<div class="linkcol">
<a class="hero-link" target="_blank" href="https://electronjs.org/blog">
<span class="octicon hero-octicon octicon-code-square-24" aria-hidden="true"></span>
<span class="octicon hero-octicon octicon-gist" aria-hidden="true"></span>
<h4>Blog</h4>
</a>
</div>
<div class="linkcol">
<a class="hero-link" target="_blank" href="https://github.com/electron/electron">
<span class="octicon hero-octicon octicon-mark-github-16" aria-hidden="true"></span>
<span class="octicon hero-octicon octicon-mark-github" aria-hidden="true"></span>
<h4>Repository</h4>
</a>
</div>
<div class="linkcol">
<a class="hero-link" target="_blank" href="https://electronjs.org/docs">
<span class="octicon hero-octicon octicon-book-24" aria-hidden="true"></span>
<span class="octicon hero-octicon octicon-gear" aria-hidden="true"></span>
<h4>Docs</h4>
</a>
</div>
<div class="linkcol">
<a class="hero-link" target="_blank" href="https://github.com/electron/electron-api-demos">
<span class="octicon hero-octicon octicon-star-fill-24" aria-hidden="true"></span>
<span class="octicon hero-octicon octicon-star" aria-hidden="true"></span>
<h4>API Demos</h4>
</a>
</div>
<div class="linkcol">
<a class="hero-link" target="_blank" href="https://electronforge.io">
<span class="octicon hero-octicon octicon-gift-24" aria-hidden="true"></span>
<span class="octicon hero-octicon octicon-gift" aria-hidden="true"></span>
<h4>Forge</h4>
</a>
</div>

View File

@@ -1,9 +1,8 @@
import * as electron from 'electron';
import { app, dialog } from 'electron';
import * as fs from 'fs';
import * as path from 'path';
import * as url from 'url';
const { app, dialog } = electron;
type DefaultAppOptions = {
file: null | string;
@@ -146,90 +145,13 @@ function startRepl () {
process.exit(1);
}
// Prevent quitting.
// prevent quitting
app.on('window-all-closed', () => {});
const GREEN = '32';
const colorize = (color: string, s: string) => `\x1b[${color}m${s}\x1b[0m`;
const electronVersion = colorize(GREEN, `v${process.versions.electron}`);
const nodeVersion = colorize(GREEN, `v${process.versions.node}`);
console.info(`
Welcome to the Electron.js REPL \\[._.]/
You can access all Electron.js modules here as well as Node.js modules.
Using: Node.js ${nodeVersion} and Electron.js ${electronVersion}
`);
const { REPLServer } = require('repl');
const repl = new REPLServer({
prompt: '> '
}).on('exit', () => {
const repl = require('repl');
repl.start('> ').on('exit', () => {
process.exit(0);
});
function defineBuiltin (context: any, name: string, getter: Function) {
const setReal = (val: any) => {
// Deleting the property before re-assigning it disables the
// getter/setter mechanism.
delete context[name];
context[name] = val;
};
Object.defineProperty(context, name, {
get: () => {
const lib = getter();
delete context[name];
Object.defineProperty(context, name, {
get: () => lib,
set: setReal,
configurable: true,
enumerable: false
});
return lib;
},
set: setReal,
configurable: true,
enumerable: false
});
}
defineBuiltin(repl.context, 'electron', () => electron);
for (const api of Object.keys(electron) as (keyof typeof electron)[]) {
defineBuiltin(repl.context, api, () => electron[api]);
}
// Copied from node/lib/repl.js. For better DX, we don't want to
// show e.g 'contentTracing' at a higher priority than 'const', so
// we only trigger custom tab-completion when no common words are
// potentially matches.
const commonWords = [
'async', 'await', 'break', 'case', 'catch', 'const', 'continue',
'debugger', 'default', 'delete', 'do', 'else', 'export', 'false',
'finally', 'for', 'function', 'if', 'import', 'in', 'instanceof', 'let',
'new', 'null', 'return', 'switch', 'this', 'throw', 'true', 'try',
'typeof', 'var', 'void', 'while', 'with', 'yield'
];
const electronBuiltins = [...Object.keys(electron), 'original-fs', 'electron'];
const defaultComplete = repl.completer;
repl.completer = (line: string, callback: Function) => {
const lastSpace = line.lastIndexOf(' ');
const currentSymbol = line.substring(lastSpace + 1, repl.cursor);
const filterFn = (c: string) => c.startsWith(currentSymbol);
const ignores = commonWords.filter(filterFn);
const hits = electronBuiltins.filter(filterFn);
if (!ignores.length && hits.length) {
callback(null, [hits, currentSymbol]);
} else {
defaultComplete.apply(repl, [line, callback]);
}
};
}
// Start the specified app if there is one specified in command line, otherwise

View File

@@ -92,6 +92,7 @@ These individual tutorials expand on topics discussed in the guide above.
* Electron Releases & Developer Feedback
* [Versioning Policy](tutorial/electron-versioning.md)
* [Release Timelines](tutorial/electron-timelines.md)
* [App Feedback Program](tutorial/app-feedback-program.md)
* [Packaging App Source Code with asar](tutorial/application-packaging.md)
* [Generating asar Archives](tutorial/application-packaging.md#generating-asar-archives)
* [Using asar Archives](tutorial/application-packaging.md#using-asar-archives)

View File

@@ -141,16 +141,6 @@ this event, such as launching the application for the first time, attempting
to re-launch the application when it's already running, or clicking on the
application's dock or taskbar icon.
### Event: 'did-become-active' _macOS_
Returns:
* `event` Event
Emitted when mac application become active. Difference from `activate` event is
that `did-become-active` is emitted every time the app becomes active, not only
when Dock icon is clicked or application is re-launched.
### Event: 'continue-activity' _macOS_
Returns:
@@ -361,7 +351,7 @@ page.
Emitted whenever there is a GPU info update.
### Event: 'gpu-process-crashed' _Deprecated_
### Event: 'gpu-process-crashed'
Returns:
@@ -370,11 +360,6 @@ Returns:
Emitted when the GPU process crashes or is killed.
**Deprecated:** This event is superceded by the `child-process-gone` event
which contains more information about why the child process disappeared. It
isn't always because it crashed. The `killed` boolean can be replaced by
checking `reason === 'killed'` when you switch to that event.
### Event: 'renderer-process-crashed' _Deprecated_
Returns:
@@ -386,7 +371,7 @@ Returns:
Emitted when the renderer process of `webContents` crashes or is killed.
**Deprecated:** This event is superceded by the `render-process-gone` event
which contains more information about why the render process disappeared. It
which contains more information about why the render process dissapeared. It
isn't always because it crashed. The `killed` boolean can be replaced by
checking `reason === 'killed'` when you switch to that event.
@@ -406,39 +391,9 @@ Returns:
* `launch-failed` - Process never successfully launched
* `integrity-failure` - Windows code integrity checks failed
Emitted when the renderer process unexpectedly disappears. This is normally
Emitted when the renderer process unexpectedly dissapears. This is normally
because it was crashed or killed.
#### Event: 'child-process-gone'
Returns:
* `event` Event
* `details` Object
* `type` String - Process type. One of the following values:
* `Utility`
* `Zygote`
* `Sandbox helper`
* `GPU`
* `Pepper Plugin`
* `Pepper Plugin Broker`
* `Unknown`
* `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
* `crashed` - Process crashed
* `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
(e.g. status from waitpid if on posix, from GetExitCodeProcess on Windows).
* `name` String (optional) - The name of the process. i.e. for plugins it might be Flash.
Examples for utility: `Audio Service`, `Content Decryption Module Service`, `Network Service`, `Video Capture`, etc.
Emitted when the child process unexpectedly disappears. This is normally
because it was crashed or killed. It does not include renderer processes.
### Event: 'accessibility-support-changed' _macOS_ _Windows_
Returns:
@@ -851,20 +806,6 @@ Returns `String` - Name of the application handling the protocol, or an empty
This method returns the application name of the default handler for the protocol
(aka URI scheme) of a URL.
### `app.getApplicationInfoForProtocol(url)` _macOS_ _Windows_
* `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.
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.
### `app.setUserTasks(tasks)` _Windows_
* `tasks` [Task[]](structures/task.md) - Array of `Task` objects
@@ -1026,7 +967,6 @@ if (!gotTheLock) {
// Create myWindow, load the rest of the app, etc...
app.whenReady().then(() => {
myWindow = createWindow()
})
}
```
@@ -1142,10 +1082,8 @@ For `infoType` equal to `complete`:
For `infoType` equal to `basic`:
Promise is fulfilled with `Object` containing fewer attributes than when requested with `complete`. Here's an example of basic response:
```js
{
auxAttributes:
{
amdSwitchable: true,
{ auxAttributes:
{ amdSwitchable: true,
canSupportThreadedTextureMailbox: false,
directComposition: false,
directRendering: true,
@@ -1158,14 +1096,12 @@ For `infoType` equal to `basic`:
sandboxed: false,
softwareRendering: false,
supportsOverlays: false,
videoDecodeAcceleratorFlags: 0
},
gpuDevice:
[{ active: true, deviceId: 26657, vendorId: 4098 },
{ active: false, deviceId: 3366, vendorId: 32902 }],
machineModelName: 'MacBookPro',
machineModelVersion: '11.5'
}
videoDecodeAcceleratorFlags: 0 },
gpuDevice:
[ { active: true, deviceId: 26657, vendorId: 4098 },
{ active: false, deviceId: 3366, vendorId: 32902 } ],
machineModelName: 'MacBookPro',
machineModelVersion: '11.5' }
```
Using `basic` should be preferred if only basic information like `vendorId` or `driverId` is needed.
@@ -1217,13 +1153,6 @@ Returns `Object`:
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.
* `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.
### `app.setLoginItemSettings(settings)` _macOS_ _Windows_
@@ -1239,9 +1168,7 @@ Returns `Object`:
* `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.
Defaults to `true`.
* `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],
@@ -1296,7 +1223,7 @@ Show the app's about panel options. These options can be overridden with `app.se
* `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.
* `iconPath` String (optional) _Linux_ _Windows_ - Path to the app's icon. 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.
@@ -1357,7 +1284,7 @@ method returns false. If we fail to perform the copy, then this method will
throw an error. The message in the error should be informative and tell
you exactly what went wrong.
By default, if an app of the same name as the one being moved exists in the Applications directory and is _not_ running, the existing app will be trashed and the active app moved into its place. If it _is_ running, the pre-existing running app will assume focus and the previously active app will quit itself. This behavior can be changed by providing the optional conflict handler, where the boolean returned by the handler determines whether or not the move conflict is resolved with default behavior. i.e. returning `false` will ensure no further action is taken, returning `true` will result in the default behavior and the method continuing.
By default, if an app of the same name as the one being moved exists in the Applications directory and is _not_ running, the existing app will be trashed and the active app moved into its place. If it _is_ running, the pre-existing running app will assume focus and the the previously active app will quit itself. This behavior can be changed by providing the optional conflict handler, where the boolean returned by the handler determines whether or not the move conflict is resolved with default behavior. i.e. returning `false` will ensure no further action is taken, returning `true` will result in the default behavior and the method continuing.
For example:
@@ -1485,12 +1412,3 @@ which native modules you can use in the renderer process. For more information
on the direction Electron is going with renderer process restarts and usage of
native modules in the renderer process please check out this
[Tracking Issue](https://github.com/electron/electron/issues/18397).
### `app.runningUnderRosettaTranslation` _macOS_ _Readonly_
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
your application when they are running the x64 version under Rosetta
incorrectly.

View File

@@ -104,7 +104,7 @@ The `autoUpdater` object has the following methods:
* `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]
* `serverType` String (optional) _macOS_ - Either `json` or `default`, see the [Squirrel.Mac][squirrel-mac]
README for more information.
Sets the `url` and initialize the auto updater.

View File

@@ -28,6 +28,25 @@ view.webContents.loadURL('https://electronjs.org')
* `options` Object (optional)
* `webPreferences` Object (optional) - See [BrowserWindow](browser-window.md).
### Static Methods
#### `BrowserView.getAllViews()`
Returns `BrowserView[]` - An array of all opened BrowserViews.
#### `BrowserView.fromWebContents(webContents)`
* `webContents` [WebContents](web-contents.md)
Returns `BrowserView | null` - The BrowserView that owns the given `webContents`
or `null` if the contents are not owned by a BrowserView.
#### `BrowserView.fromId(id)`
* `id` Integer
Returns `BrowserView` - The view with the given `id`.
### Instance Properties
Objects created with `new BrowserView` have the following properties:
@@ -36,10 +55,24 @@ Objects created with `new BrowserView` have the following properties:
A [`WebContents`](web-contents.md) object owned by this view.
#### `view.id` _Experimental_
A `Integer` representing the unique ID of the view.
### Instance Methods
Objects created with `new BrowserView` have the following instance methods:
#### `view.destroy()`
Force closing the view, the `unload` and `beforeunload` events won't be emitted
for the web page. After you're done with a view, call this function in order to
free memory and other resources as soon as possible.
#### `view.isDestroyed()`
Returns `Boolean` - Whether the view is destroyed.
#### `view.setAutoResize(options)` _Experimental_
* `options` Object

View File

@@ -38,7 +38,7 @@ the window after this event will have no visual flash:
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ show: false })
let win = new BrowserWindow({ show: false })
win.once('ready-to-show', () => {
win.show()
})
@@ -60,7 +60,7 @@ immediately, and use a `backgroundColor` close to your app's background:
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ backgroundColor: '#2e2c29' })
let win = new BrowserWindow({ backgroundColor: '#2e2c29' })
win.loadURL('https://github.com')
```
@@ -74,8 +74,8 @@ By using `parent` option, you can create child windows:
```javascript
const { BrowserWindow } = require('electron')
const top = new BrowserWindow()
const child = new BrowserWindow({ parent: top })
let top = new BrowserWindow()
let child = new BrowserWindow({ parent: top })
child.show()
top.show()
```
@@ -90,7 +90,7 @@ window, you have to set both `parent` and `modal` options:
```javascript
const { BrowserWindow } = require('electron')
const child = new BrowserWindow({ parent: top, modal: true, show: false })
let child = new BrowserWindow({ parent: top, modal: true, show: false })
child.loadURL('https://github.com')
child.once('ready-to-show', () => {
child.show()
@@ -541,12 +541,6 @@ Note that this is only emitted when the window is being resized manually. Resizi
Emitted after the window has been resized.
#### Event: 'resized' _macOS_ _Windows_
Emitted once when the window has finished being resized.
This is usually emitted when the window has been resized manually. On macOS, resizing the window with `setBounds`/`setSize` and setting the `animate` parameter to `true` will also emit this event once resizing has finished.
#### Event: 'will-move' _macOS_ _Windows_
Returns:
@@ -562,12 +556,12 @@ Note that this is only emitted when the window is being resized manually. Resizi
Emitted when the window is being moved to a new position.
#### Event: 'moved' _macOS_ _Windows_
__Note__: On macOS this event is an alias of `moved`.
#### Event: 'moved' _macOS_
Emitted once when the window is moved to a new position.
__Note__: On macOS this event is an alias of `move`.
#### Event: 'enter-full-screen'
Emitted when the window enters a full-screen state.
@@ -610,7 +604,7 @@ e.g. `APPCOMMAND_BROWSER_BACKWARD` is emitted as `browser-backward`.
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow()
let win = new BrowserWindow()
win.on('app-command', (e, cmd) => {
// Navigate the window back when the user hits their mouse back button
if (cmd === 'browser-backward' && win.webContents.canGoBack()) {
@@ -676,20 +670,6 @@ Emitted when the window has closed a sheet.
Emitted when the native new tab button is clicked.
#### Event: 'system-context-menu' _Windows_
Returns:
* `event` Event
* `point` [Point](structures/point.md) - The screen coordinates the context menu was triggered at
Emitted when the system context menu is triggered on the window, this is
normally only triggered when the user right clicks on the non-client area
of your window. This is the window titlebar or any area you have declared
as `-webkit-app-region: drag` in a frameless window.
Calling `event.preventDefault()` will prevent the menu from being displayed.
### Static Methods
The `BrowserWindow` class has the following static methods:
@@ -719,7 +699,7 @@ Returns `BrowserWindow | null` - The window that owns the given `browserView`. I
* `id` Integer
Returns `BrowserWindow | null` - The window with the given `id`.
Returns `BrowserWindow` - The window with the given `id`.
#### `BrowserWindow.addExtension(path)` _Deprecated_
@@ -799,7 +779,7 @@ To check if a DevTools extension is installed you can run the following:
```javascript
const { BrowserWindow } = require('electron')
const installed = 'devtron' in BrowserWindow.getDevToolsExtensions()
let installed = BrowserWindow.getDevToolsExtensions().hasOwnProperty('devtron')
console.log(installed)
```
@@ -816,7 +796,7 @@ Objects created with `new BrowserWindow` have the following properties:
```javascript
const { BrowserWindow } = require('electron')
// In this example `win` is our instance
const win = new BrowserWindow({ width: 800, height: 600 })
let win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('https://github.com')
```
@@ -1341,9 +1321,9 @@ a HTML-rendered toolbar. For example:
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow()
let win = new BrowserWindow()
const toolbarRect = document.getElementById('toolbar').getBoundingClientRect()
let toolbarRect = document.getElementById('toolbar').getBoundingClientRect()
win.setSheetOffset(toolbarRect.height)
```
@@ -1467,7 +1447,7 @@ Node's [`url.format`](https://nodejs.org/api/url.html#url_url_format_urlobject)
method:
```javascript
const url = require('url').format({
let url = require('url').format({
protocol: 'file',
slashes: true,
pathname: require('path').join(__dirname, 'index.html')
@@ -1849,6 +1829,13 @@ Replacement API for setBrowserView supporting work with multi browser views.
* `browserView` [BrowserView](browser-view.md)
#### `win.setTopBrowserView(browserView)` _Experimental_
* `browserView` [BrowserView](browser-view.md)
Raises `browserView` above other `BrowserView`s attached to `win`.
Throws an error if `browserView` is not attached to `win`.
#### `win.getBrowserViews()` _Experimental_
Returns `BrowserView[]` - an array of all BrowserViews that have been attached

View File

@@ -171,20 +171,6 @@ 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
`toString()` method will be called to obtain the final value.
Certain headers are restricted from being set by apps. These headers are
listed below. More information on restricted headers can be found in
[Chromium's header utils](https://source.chromium.org/chromium/chromium/src/+/master:services/network/public/cpp/header_util.cc;drc=1562cab3f1eda927938f8f4a5a91991fefde66d3;bpv=1;bpt=1;l=22).
* `Content-Length`
* `Host`
* `Trailer` or `Te`
* `Upgrade`
* `Cookie2`
* `Keep-Alive`
* `Transfer-Encoding`
Additionally, setting the `Connection` header to the value `upgrade` is also disallowed.
#### `request.getHeader(name)`
* `name` String - Specify an extra header name.

View File

@@ -16,7 +16,7 @@ const { app, contentTracing } = require('electron')
app.whenReady().then(() => {
(async () => {
await contentTracing.startRecording({
included_categories: ['*']
include_categories: ['*']
})
console.log('Tracing started')
await new Promise(resolve => setTimeout(resolve, 5000))
@@ -83,4 +83,4 @@ Returns `Promise<Object>` - Resolves with an object containing the `value` and `
Get the maximum usage across processes of trace buffer as a percentage of the
full state.
[trace viewer]: https://chromium.googlesource.com/catapult/+/HEAD/tracing/README.md
[trace viewer]: https://github.com/catapult-project/catapult/blob/master/tracing

View File

@@ -170,7 +170,7 @@ your crash reporting backend you should stitch together keys in this format.
* `key` String - Parameter key, must be no longer than 39 bytes.
Remove an extra parameter from the current set of parameters. Future crashes
Remove a extra parameter from the current set of parameters. Future crashes
will not include this parameter.
### `crashReporter.getParameters()`

View File

@@ -9,7 +9,7 @@ runtime that allows interacting with pages and instrumenting them.
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow()
let win = new BrowserWindow()
try {
win.webContents.debugger.attach('1.1')

View File

@@ -269,7 +269,7 @@ Shows a message box, it will block the process until the message box is closed.
It returns the index of the clicked button.
The `browserWindow` argument allows the dialog to attach itself to a parent window, making it modal.
If `browserWindow` is not shown dialog will not be attached to it. In such case it will be displayed as an independent window.
If `browserWindow` is not shown dialog will not be attached to it. In such case It will be displayed as independed window.
### `dialog.showMessageBox([browserWindow, ]options)`

View File

@@ -11,7 +11,7 @@ control the download item.
```javascript
// In the main process.
const { BrowserWindow } = require('electron')
const win = new BrowserWindow()
let win = new BrowserWindow()
win.webContents.session.on('will-download', (event, item, webContents) => {
// Set the save path, making Electron not to prompt a save dialog.
item.setSavePath('/tmp/save.pdf')

View File

@@ -114,3 +114,9 @@ The following methods of `chrome.management` are supported:
- `chrome.management.getPermissionWarningsByManifest`
- `chrome.management.onEnabled`
- `chrome.management.onDisabled`
### `chrome.webRequest`
All features of this API are supported.
> **NOTE:** Electron's [`webRequest`](web-request.md) module takes precedence over `chrome.webRequest` if there are conflicting handlers.

View File

@@ -15,7 +15,7 @@ To create a frameless window, you need to set `frame` to `false` in
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ width: 800, height: 600, frame: false })
let win = new BrowserWindow({ width: 800, height: 600, frame: false })
win.show()
```
@@ -33,7 +33,7 @@ Results in a hidden title bar and a full size content window, yet the title bar
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ titleBarStyle: 'hidden' })
let win = new BrowserWindow({ titleBarStyle: 'hidden' })
win.show()
```
@@ -43,7 +43,7 @@ Results in a hidden title bar with an alternative look where the traffic light b
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ titleBarStyle: 'hiddenInset' })
let win = new BrowserWindow({ titleBarStyle: 'hiddenInset' })
win.show()
```
@@ -58,7 +58,7 @@ This option is only applicable for frameless windows.
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ titleBarStyle: 'customButtonsOnHover', frame: false })
let win = new BrowserWindow({ titleBarStyle: 'customButtonsOnHover', frame: false })
win.show()
```
@@ -69,7 +69,7 @@ window transparent:
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ transparent: true, frame: false })
let win = new BrowserWindow({ transparent: true, frame: false })
win.show()
```
@@ -100,7 +100,7 @@ API:
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow()
let win = new BrowserWindow()
win.setIgnoreMouseEvents(true)
```
@@ -112,8 +112,8 @@ optional parameter can be used to forward mouse move messages to the web page,
allowing events such as `mouseleave` to be emitted:
```javascript
const win = require('electron').remote.getCurrentWindow()
const el = document.getElementById('clickThroughElement')
let win = require('electron').remote.getCurrentWindow()
let el = document.getElementById('clickThroughElement')
el.addEventListener('mouseenter', () => {
win.setIgnoreMouseEvents(true, { forward: true })
})

View File

@@ -9,7 +9,7 @@ with the operating system so that you can customize the operations for various
shortcuts.
**Note:** The shortcut is global; it will work even if the app does
not have the keyboard focus. You should not use this module until the `ready`
not have the keyboard focus. This module cannot be used before the `ready`
event of the app module is emitted.
```javascript

View File

@@ -148,4 +148,4 @@ found in the [`ipc-main-invoke-event`](structures/ipc-main-invoke-event.md)
structure docs.
[event-emitter]: https://nodejs.org/api/events.html#events_class_eventemitter
[web-contents-send]: web-contents.md#contentssendchannel-args
[web-contents-send]: web-contents.md#contentssendchannel-arg1-arg2-

View File

@@ -61,9 +61,13 @@ Algorithm][SCA], just like [`window.postMessage`][], so prototype chains will no
included. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will
throw an exception.
> **NOTE**: Sending non-standard JavaScript types such as DOM objects or
> special Electron objects is deprecated, and will begin throwing an exception
> starting with Electron 9.
> **NOTE:** Sending non-standard JavaScript types such as DOM objects or
> special Electron objects will throw an exception.
>
> Since the main process does not have support for DOM objects such as
> `ImageBitmap`, `File`, `DOMMatrix` and so on, such objects cannot be sent over
> Electron's IPC to the main process, as the main process would have no way to decode
> them. Attempting to send such objects over IPC will result in an error.
The main process handles it by listening for `channel` with the
[`ipcMain`](ipc-main.md) module.
@@ -85,9 +89,13 @@ Algorithm][SCA], just like [`window.postMessage`][], so prototype chains will no
included. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will
throw an exception.
> **NOTE**: Sending non-standard JavaScript types such as DOM objects or
> special Electron objects is deprecated, and will begin throwing an exception
> starting with Electron 9.
> **NOTE:** Sending non-standard JavaScript types such as DOM objects or
> special Electron objects will throw an exception.
>
> Since the main process does not have support for DOM objects such as
> `ImageBitmap`, `File`, `DOMMatrix` and so on, such objects cannot be sent over
> Electron's IPC to the main process, as the main process would have no way to decode
> them. Attempting to send such objects over IPC will result in an error.
The main process should listen for `channel` with
[`ipcMain.handle()`](ipc-main.md#ipcmainhandlechannel-listener).
@@ -108,7 +116,7 @@ ipcMain.handle('some-name', async (event, someArgument) => {
If you need to transfer a [`MessagePort`][] to the main process, use [`ipcRenderer.postMessage`](#ipcrendererpostmessagechannel-message-transfer).
If you do not need a response to the message, consider using [`ipcRenderer.send`](#ipcrenderersendchannel-args).
If you do not need a respons to the message, consider using [`ipcRenderer.send`](#ipcrenderersendchannel-args).
### `ipcRenderer.sendSync(channel, ...args)`
@@ -123,9 +131,13 @@ Algorithm][SCA], just like [`window.postMessage`][], so prototype chains will no
included. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will
throw an exception.
> **NOTE**: Sending non-standard JavaScript types such as DOM objects or
> special Electron objects is deprecated, and will begin throwing an exception
> starting with Electron 9.
> **NOTE:** Sending non-standard JavaScript types such as DOM objects or
> special Electron objects will throw an exception.
>
> Since the main process does not have support for DOM objects such as
> `ImageBitmap`, `File`, `DOMMatrix` and so on, such objects cannot be sent over
> Electron's IPC to the main process, as the main process would have no way to decode
> them. Attempting to send such objects over IPC will result in an error.
The main process handles it by listening for `channel` with [`ipcMain`](ipc-main.md) module,
and replies by setting `event.returnValue`.

View File

@@ -22,8 +22,10 @@ Sets `menu` as the application menu on macOS. On Windows and Linux, the
Also on Windows and Linux, you can use a `&` in the top-level item name to
indicate which letter should get a generated accelerator. For example, using
`&File` for the file menu would result in a generated `Alt-F` accelerator that
opens the associated menu. The indicated character in the button label gets an
underline. The `&` character is not displayed on the button label.
opens the associated menu. The indicated character in the button label then gets an
underline, and the `&` character is not displayed on the button label.
In order to escape the `&` character in an item name, add a proceeding `&`. For example, `&&File` would result in `&File` displayed on the button label.
Passing `null` will suppress the default menu. On Windows and Linux,
this has the additional effect of removing the menu bar from the window.
@@ -96,7 +98,7 @@ Appends the `menuItem` to the menu.
* `id` String
Returns `MenuItem | null` the item with the specified `id`
Returns `MenuItem` the item with the specified `id`
#### `menu.insert(pos, menuItem)`
@@ -195,8 +197,8 @@ const template = [
{
label: 'Speech',
submenu: [
{ role: 'startSpeaking' },
{ role: 'stopSpeaking' }
{ role: 'startspeaking' },
{ role: 'stopspeaking' }
]
}
] : [
@@ -211,12 +213,12 @@ const template = [
label: 'View',
submenu: [
{ role: 'reload' },
{ role: 'forceReload' },
{ role: 'toggleDevTools' },
{ role: 'forcereload' },
{ role: 'toggledevtools' },
{ type: 'separator' },
{ role: 'resetZoom' },
{ role: 'zoomIn' },
{ role: 'zoomOut' },
{ role: 'resetzoom' },
{ role: 'zoomin' },
{ role: 'zoomout' },
{ type: 'separator' },
{ role: 'togglefullscreen' }
]

View File

@@ -1,6 +1,6 @@
## Modernization
The Electron team is currently undergoing an initiative to modernize our API in a few concrete ways. These include: updating our modules to use idiomatic JS properties instead of separate `getPropertyX` and `setpropertyX`, converting callbacks to promises, and removing some other anti-patterns present in our APIs. The current status of the Promise initiative can be tracked in the [promisification](promisification.md) tracking file.
The Electron team is currently undergoing an initiative to modernize our API in a few concrete ways. These include: updating our modules to use idiomatic JS properties instead of separate `getPropertyX` and `setpropertyX`, converting callbacks to promises, and removing some other anti-patterns present in our APIs. The current status of the Promise intiative can be tracked in the [promisification](promisification.md) tracking file.
As we work to perform these updates, we seek to create the least disruptive amount of change at any given time, so as many changes as possible will be introduced in a backward compatible manner and deprecated after enough time has passed to give users a chance to upgrade their API calls.

View File

@@ -58,7 +58,7 @@ 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
or is being instructed to show a high-contrast UI.
or is being instructed to show a high-constrast UI.
### `nativeTheme.shouldUseInvertedColorScheme` _macOS_ _Windows_ _Readonly_

View File

@@ -63,8 +63,8 @@ The `protocol` module has the following methods:
module gets emitted and can be called only once.
Registers the `scheme` as standard, secure, bypasses content security policy for
resources, allows registering ServiceWorker, supports fetch API, and streaming
video/audio. Specify a privilege with the value of `true` to enable the capability.
resources, allows registering ServiceWorker and supports fetch API. Specify a
privilege with the value of `true` to enable the capability.
An example of registering a privileged scheme, that bypasses Content Security
Policy:
@@ -103,11 +103,6 @@ cookies) are disabled for non standard schemes. So in general if you want to
register a custom protocol to replace the `http` protocol, you have to register
it as a standard scheme.
Protocols that use streams (http and stream protocols) should set `stream: true`.
The `<video>` and `<audio>` HTML elements expect protocols to buffer their
responses by default. The `stream` flag configures those elements to correctly
expect streaming responses.
### `protocol.registerFileProtocol(scheme, handler)`
* `scheme` String

View File

@@ -17,7 +17,7 @@ renderer process:
```javascript
const { BrowserWindow } = require('electron').remote
const win = new BrowserWindow({ width: 800, height: 600 })
let win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('https://github.com')
```

View File

@@ -33,8 +33,8 @@ const { app, BrowserWindow, screen } = require('electron')
let win
app.whenReady().then(() => {
const displays = screen.getAllDisplays()
const externalDisplay = displays.find((display) => {
let displays = screen.getAllDisplays()
let externalDisplay = displays.find((display) => {
return display.bounds.x !== 0 || display.bounds.y !== 0
})

View File

@@ -39,7 +39,7 @@ Returns:
* `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`.
* `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

View File

@@ -12,7 +12,7 @@ property of [`WebContents`](web-contents.md), or from the `session` module.
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ width: 800, height: 600 })
let win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('http://github.com')
const ses = win.webContents.session
@@ -332,7 +332,7 @@ verify proc.
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow()
let win = new BrowserWindow()
win.webContents.session.setCertificateVerifyProc((request, callback) => {
const { hostname } = request
@@ -348,17 +348,8 @@ 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.
* `clipboard-read` - Request access to read from the clipboard.
* `media` - Request access to media devices such as camera, microphone and speakers.
* `mediaKeySystem` - Request access to DRM protected content.
* `geolocation` - Request access to user's current location.
* `notifications` - Request notification creation and the ability to display them in the user's system tray.
* `midi` - Request MIDI access in the `webmidi` API.
* `midiSysex` - Request the use of system exclusive messages in the `webmidi` API.
* `pointerLock` - Request to directly interpret mouse movements as an input method. Click [here](https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API) to know more.
* `fullscreen` - Request for the app to enter fullscreen mode.
* `openExternal` - Request to open links in external applications.
* `permission` String - Enum of 'media', 'geolocation', 'notifications', 'midiSysex',
'pointerLock', 'fullscreen', 'openExternal'.
* `callback` Function
* `permissionGranted` Boolean - Allow or deny the permission.
* `details` Object - Some properties are only available on certain permission types.
@@ -390,7 +381,7 @@ session.fromPartition('some-partition').setPermissionRequestHandler((webContents
* `permission` String - Enum of 'media'.
* `requestingOrigin` String - The origin URL of the permission check
* `details` Object - Some properties are only available on certain permission types.
* `securityOrigin` String - The security origin of the `media` check.
* `securityOrigin` String - The security orign of the `media` check.
* `mediaType` String - The type of media access being requested, can be `video`,
`audio` or `unknown`
* `requestingUrl` String - The last URL the requesting frame loaded
@@ -527,7 +518,7 @@ Returns `String[]` - An array of language codes the spellchecker is enabled for.
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.
**Note:** On macOS the OS spellchecker is used and has its own list of languages. This API is a no-op on macOS.
**Note:** On macOS the OS spellchecker is used and has it's own list of languages. This API is a no-op on macOS.
#### `ses.setSpellCheckerDictionaryDownloadURL(url)`
@@ -664,7 +655,7 @@ const path = require('path')
app.whenReady().then(() => {
const protocol = session.fromPartition('some-partition').protocol
protocol.registerFileProtocol('atom', (request, callback) => {
const url = request.url.substr(7)
let url = request.url.substr(7)
callback({ path: path.normalize(`${__dirname}/${url}`) })
}, (error) => {
if (error) console.error('Failed to register protocol')

View File

@@ -30,7 +30,7 @@ Show the given file in a file manager. If possible, select the file.
* `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 an string containing the error message corresponding to the failure if a failure occurred, otherwise "".
Open the given file in the desktop's default manner.

View File

@@ -8,4 +8,3 @@
* `allowServiceWorkers` Boolean (optional) - Default false.
* `supportFetchAPI` Boolean (optional) - Default false.
* `corsEnabled` Boolean (optional) - Default false.
* `stream` Boolean (optional) - Default false.

View File

@@ -19,5 +19,5 @@
available.
* `appIcon` [NativeImage](../native-image.md) - An icon image of the
application that owns the window or null if the source has a type screen.
The size of the icon is not known in advance and depends on what
The size of the icon is not known in advance and depends on what the
the application provides.

View File

@@ -1,5 +1,6 @@
# IpcMainEvent Object extends `Event`
* `processId` Integer - The internal ID of the renderer process that sent this message
* `frameId` Integer - The ID of the renderer frame that sent this message
* `returnValue` any - Set this to the value to be returned in a synchronous message
* `sender` WebContents - Returns the `webContents` that sent the message

View File

@@ -1,4 +1,5 @@
# IpcMainInvokeEvent Object extends `Event`
* `processId` Integer - The internal ID of the renderer process that sent this message
* `frameId` Integer - The ID of the renderer frame that sent this message
* `sender` WebContents - Returns the `webContents` that sent the message

View File

@@ -1,4 +1,4 @@
# KeyboardEvent Object
# KeyboardEvent Object extends `Event`
* `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

View File

@@ -7,7 +7,7 @@
* `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).
The number represented by `status` means different things on different platforms: on Windows it's 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).
## Example

View File

@@ -11,8 +11,6 @@
* `Pepper Plugin`
* `Pepper Plugin Broker`
* `Unknown`
* `name` String (optional) - The name of the process. i.e. for plugins it might be Flash.
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.
The time is represented as number of milliseconds since epoch.

View File

@@ -6,7 +6,7 @@
* `trace_buffer_size_in_events` number (optional) - maximum size of the trace
recording buffer in events.
* `enable_argument_filter` boolean (optional) - if true, filter event data
according to a specific list of events that have been manually vetted to not
according to a whitelist of events that have been manually vetted to not
include any PII. See [the implementation in
Chromium][trace_event_args_whitelist.cc] for specifics.
* `included_categories` String[] (optional) - a list of tracing categories to
@@ -41,7 +41,7 @@ An example TraceConfig that roughly matches what Chrome DevTools records:
'disabled-by-default-v8.cpu_profiler',
'disabled-by-default-v8.cpu_profiler.hires'
],
excluded_categories: ['*']
excluded_categories: [ '*' ]
}
```

View File

@@ -132,6 +132,8 @@ This is necessary for events such as `NSUserDefaultsDidChangeNotification`.
* `userInfo` Record<String, unknown>
* `object` String
Returns `Number` - The ID of this subscription
Same as `subscribeNotification`, but uses `NSWorkspace.sharedWorkspace.notificationCenter`.
This is necessary for events such as `NSWorkspaceDidActivateApplicationNotification`.
@@ -209,7 +211,7 @@ not (transparent windows won't work correctly when DWM composition is disabled):
```javascript
const { BrowserWindow, systemPreferences } = require('electron')
const browserOptions = { width: 1000, height: 800 }
let browserOptions = { width: 1000, height: 800 }
// Make the window transparent only if the platform supports it.
if (process.platform !== 'win32' || systemPreferences.isAeroGlassEnabled()) {
@@ -218,7 +220,7 @@ if (process.platform !== 'win32' || systemPreferences.isAeroGlassEnabled()) {
}
// Create the window.
const win = new BrowserWindow(browserOptions)
let win = new BrowserWindow(browserOptions)
// Navigate.
if (browserOptions.transparent) {
@@ -406,7 +408,7 @@ systemPreferences.promptTouchID('To get consent for a Security-Gated Thing').the
})
```
This API itself will not protect your user data; rather, it is a mechanism to allow you to do so. Native apps will need to set [Access Control Constants](https://developer.apple.com/documentation/security/secaccesscontrolcreateflags?language=objc) like [`kSecAccessControlUserPresence`](https://developer.apple.com/documentation/security/secaccesscontrolcreateflags/ksecaccesscontroluserpresence?language=objc) on their keychain entry so that reading it would auto-prompt for Touch ID biometric consent. This could be done with [`node-keytar`](https://github.com/atom/node-keytar), such that one would store an encryption key with `node-keytar` and only fetch it if `promptTouchID()` resolves.
This API itself will not protect your user data; rather, it is a mechanism to allow you to do so. Native apps will need to set [Access Control Constants](https://developer.apple.com/documentation/security/secaccesscontrolcreateflags?language=objc) like [`kSecAccessControlUserPresence`](https://developer.apple.com/documentation/security/secaccesscontrolcreateflags/ksecaccesscontroluserpresence?language=objc) on the their keychain entry so that reading it would auto-prompt for Touch ID biometric consent. This could be done with [`node-keytar`](https://github.com/atom/node-keytar), such that one would store an encryption key with `node-keytar` and only fetch it if `promptTouchID()` resolves.
**NOTE:** This API will return a rejected Promise on macOS systems older than Sierra 10.12.2.

View File

@@ -41,10 +41,6 @@ the button in the touch bar.
A `NativeImage` representing the button's current icon. Changing this value immediately updates the button
in the touch bar.
#### `touchBarButton.iconPosition`
A `String` - Can be `left`, `right` or `overlay`. Defaults to `overlay`.
#### `touchBarButton.enabled`
A `Boolean` representing whether the button is in an enabled state.

View File

@@ -49,7 +49,3 @@ updates the control in the touch bar. Updating deep properties inside this array
An `Integer` representing the currently selected segment. Changing this value immediately updates the control
in the touch bar. User interaction with the touch bar will update this value automatically.
#### `touchBarSegmentedControl.mode`
A `String` representing the current selection mode of the control. Can be `single`, `multiple` or `buttons`.

View File

@@ -11,11 +11,3 @@ Process: [Main](../tutorial/application-architecture.md#main-and-renderer-proces
* `small` - Small space between items. Maps to `NSTouchBarItemIdentifierFixedSpaceSmall`. This is the default.
* `large` - Large space between items. Maps to `NSTouchBarItemIdentifierFixedSpaceLarge`.
* `flexible` - Take up all available space. Maps to `NSTouchBarItemIdentifierFlexibleSpace`.
### Instance Properties
The following properties are available on instances of `TouchBarSpacer`:
#### `touchBarSpacer.size`
A `String` representing the size of the spacer. Can be `small`, `large` or `flexible`.

View File

@@ -217,11 +217,9 @@ Sets the `image` associated with this tray icon when pressed on macOS.
Sets the hover text for this tray icon.
#### `tray.setTitle(title[, options])` _macOS_
#### `tray.setTitle(title)` _macOS_
* `title` String
* `options` Object (optional)
* `fontType` String (optional) - The font family variant to display, can be `monospaced` or `monospacedDigit`. `monospaced` is available in macOS 10.15+ and `monospacedDigit` is available in macOS 10.11+. When left blank, the title uses the default system font.
Sets the title displayed next to the tray icon in the status bar (Support ANSI colors).

View File

@@ -12,10 +12,10 @@ the [`BrowserWindow`](browser-window.md) object. An example of accessing the
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ width: 800, height: 1500 })
let win = new BrowserWindow({ width: 800, height: 1500 })
win.loadURL('http://github.com')
const contents = win.webContents
let contents = win.webContents
console.log(contents)
```
@@ -42,8 +42,7 @@ returns `null`.
* `id` Integer
Returns `WebContents` | undefined - A WebContents instance with the given ID, or
`undefined` if there is no WebContents associated with the given ID.
Returns `WebContents` - A WebContents instance with the given ID.
## Class: WebContents
@@ -257,7 +256,7 @@ Returns:
Emitted after a server side redirect occurs during navigation. For example a 302
redirect.
This event cannot be prevented, if you want to prevent redirects you should
This event can not be prevented, if you want to prevent redirects you should
checkout out the `will-redirect` event above.
#### Event: 'did-navigate'
@@ -349,7 +348,7 @@ Returns:
Emitted when the renderer process crashes or is killed.
**Deprecated:** This event is superceded by the `render-process-gone` event
which contains more information about why the render process disappeared. It
which contains more information about why the render process dissapeared. It
isn't always because it crashed. The `killed` boolean can be replaced by
checking `reason === 'killed'` when you switch to that event.
@@ -368,7 +367,7 @@ Returns:
* `launch-failed` - Process never successfully launched
* `integrity-failure` - Windows code integrity checks failed
Emitted when the renderer process unexpectedly disappears. This is normally
Emitted when the renderer process unexpectedly dissapears. This is normally
because it was crashed or killed.
#### Event: 'unresponsive'
@@ -419,7 +418,7 @@ To only prevent the menu shortcuts, use
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ width: 800, height: 600 })
let win = new BrowserWindow({ width: 800, height: 600 })
win.webContents.on('before-input-event', (event, input) => {
// For example, only enable application menu keyboard shortcuts when
@@ -666,7 +665,7 @@ app.whenReady().then(() => {
win = new BrowserWindow({ width: 800, height: 600 })
win.webContents.on('select-bluetooth-device', (event, deviceList, callback) => {
event.preventDefault()
const result = deviceList.find((device) => {
let result = deviceList.find((device) => {
return device.deviceName === 'test'
})
if (!result) {
@@ -692,7 +691,7 @@ buffer.
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ webPreferences: { offscreen: true } })
let win = new BrowserWindow({ webPreferences: { offscreen: true } })
win.webContents.on('paint', (event, dirty, image) => {
// updateBitmap(dirty, image.getBitmap())
})
@@ -721,7 +720,7 @@ This event can be used to configure `webPreferences` for the `webContents`
of a `<webview>` before it's loaded, and provides the ability to set settings
that can't be set via `<webview>` attributes.
**Note:** The specified `preload` script option will appear as `preloadURL`
**Note:** The specified `preload` script option will be appear as `preloadURL`
(not `preload`) in the `webPreferences` object emitted with this event.
#### Event: 'did-attach-webview'
@@ -739,9 +738,9 @@ Emitted when a `<webview>` has been attached to this web contents.
Returns:
* `event` Event
* `level` Integer - The log level, from 0 to 3. In order it matches `verbose`, `info`, `warning` and `error`.
* `message` String - The actual console message
* `line` Integer - The line number of the source that triggered this console message
* `level` Integer
* `message` String
* `line` Integer
* `sourceId` String
Emitted when the associated window logs a console message.
@@ -908,7 +907,7 @@ Returns `String` - The URL of the current web page.
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ width: 800, height: 600 })
let win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('http://github.com').then(() => {
const currentURL = win.webContents.getURL()
console.log(currentURL)
@@ -999,34 +998,6 @@ Navigates to the specified offset from the "current entry".
Returns `Boolean` - Whether the renderer process has crashed.
#### `contents.forcefullyCrashRenderer()`
Forcefully terminates the renderer process that is currently hosting this
`webContents`. This will cause the `render-process-gone` event to be emitted
with the `reason=killed || reason=crashed`. Please note that some webContents share renderer
processes and therefore calling this method may also crash the host process
for other webContents as well.
Calling `reload()` immediately after calling this
method will force the reload to occur in a new process. This should be used
when this process is unstable or unusable, for instance in order to recover
from the `unresponsive` event.
```js
contents.on('unresponsive', async () => {
const { response } = await dialog.showMessageBox({
message: 'App X has become unresponsive',
title: 'Do you want to try forcefully reloading the app?',
buttons: ['OK', 'Cancel'],
cancelId: 1
})
if (response === 0) {
contents.forcefullyCrashRenderer()
contents.reload()
}
})
```
#### `contents.setUserAgent(userAgent)`
* `userAgent` String
@@ -1284,7 +1255,7 @@ is large then 0.
#### `contents.incrementCapturerCount([size, stayHidden])`
* `size` [Size](structures/size.md) (optional) - The preferred size for the capturer.
* `size` [Size](structures/size.md) (optional) - The perferred size for the capturer.
* `stayHidden` Boolean (optional) - Keep the page hidden instead of visible.
Increase the capturer count by one. The page is considered visible when its browser window is
@@ -1340,7 +1311,7 @@ Returns [`PrinterInfo[]`](structures/printer-info.md)
* `success` Boolean - Indicates success of the print call.
* `failureReason` String - Error description called back if the print fails.
When a custom `pageSize` is passed, Chromium attempts to validate platform specific minimum values for `width_microns` and `height_microns`. Width and height must both be minimum 353 microns but may be higher on some operating systems.
When a custom `pageSize` is passed, Chromium attempts to validate platform specific minumum values for `width_microns` and `height_microns`. Width and height must both be minimum 353 microns but may be higher on some operating systems.
Prints window's web page. When `silent` is set to `true`, Electron will pick
the system's default printer if `deviceName` is empty and the default settings for printing.
@@ -1350,14 +1321,7 @@ Use `page-break-before: always;` CSS style to force to print to a new page.
Example usage:
```js
const options = {
silent: true,
deviceName: 'My-Printer',
pageRanges: [{
from: 0,
to: 1
}]
}
const options = { silent: true, deviceName: 'My-Printer' }
win.webContents.print(options, (success, errorType) => {
if (!success) console.log(errorType)
})
@@ -1411,7 +1375,7 @@ const fs = require('fs')
const path = require('path')
const os = require('os')
const win = new BrowserWindow({ width: 800, height: 600 })
let win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('http://github.com')
win.webContents.on('did-finish-load', () => {
@@ -1437,7 +1401,7 @@ creation:
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow()
let win = new BrowserWindow()
win.webContents.on('devtools-opened', () => {
win.webContents.addWorkSpace(__dirname)
})
@@ -1585,8 +1549,7 @@ included. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will
throw an exception.
> **NOTE**: Sending non-standard JavaScript types such as DOM objects or
> special Electron objects is deprecated, and will begin throwing an exception
> starting with Electron 9.
> special Electron objects will throw an exception.
The renderer process can handle the message by listening to `channel` with the
[`ipcRenderer`](ipc-renderer.md) module.
@@ -1622,7 +1585,9 @@ app.whenReady().then(() => {
#### `contents.sendToFrame(frameId, channel, ...args)`
* `frameId` Integer
* `frameId` Integer | [number, number] - the ID of the frame to send to, or a
pair of `[processId, frameId]` if the frame is in a different process to the
main frame.
* `channel` String
* `...args` any[]
@@ -1632,9 +1597,8 @@ Send an asynchronous message to a specific frame in a renderer process via
chains will not be included. Sending Functions, Promises, Symbols, WeakMaps, or
WeakSets will throw an exception.
> **NOTE**: Sending non-standard JavaScript types such as DOM objects or
> special Electron objects is deprecated, and will begin throwing an exception
> starting with Electron 9.
> **NOTE:** Sending non-standard JavaScript types such as DOM objects or
> special Electron objects will throw an exception.
The renderer process can handle the message by listening to `channel` with the
[`ipcRenderer`](ipc-renderer.md) module.
@@ -1758,7 +1722,7 @@ Returns `Promise<void>` - resolves if the page is saved.
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow()
let win = new BrowserWindow()
win.loadURL('https://github.com')
@@ -1796,7 +1760,7 @@ Returns `Boolean` - If *offscreen rendering* is enabled returns whether it is cu
* `fps` Integer
If *offscreen rendering* is enabled sets the frame rate to the specified number.
Only values between 1 and 60 are accepted.
Only values between 1 and 240 are accepted.
#### `contents.getFrameRate()`
@@ -1894,7 +1858,7 @@ The zoom factor is the zoom percent divided by 100, so 300% = 3.0.
#### `contents.frameRate`
An `Integer` property that sets the frame rate of the web contents to the specified number.
Only values between 1 and 60 are accepted.
Only values between 1 and 240 are accepted.
Only applicable if *offscreen rendering* is enabled.

View File

@@ -560,7 +560,7 @@ Stops any `findInPage` request for the `webview` with the provided `action`.
* `pagesPerSheet` Number (optional) - The number of pages to print per page sheet.
* `collate` Boolean (optional) - Whether the web page should be collated.
* `copies` Number (optional) - The number of copies of the web page to print.
* `pageRanges` Object[] (optional) - The page range to print.
* `pageRanges` Object[] (optional) - The page range to print. On macOS, only the first range is honored.
* `from` Number - Index of the first page to print (0-based).
* `to` Number - Index of the last page to print (inclusive) (0-based).
* `duplexMode` String (optional) - Set the duplex mode of the printed web page. Can be `simplex`, `shortEdge`, or `longEdge`.
@@ -755,9 +755,9 @@ Fired when page leaves fullscreen triggered by HTML API.
Returns:
* `level` Integer - The log level, from 0 to 3. In order it matches `verbose`, `info`, `warning` and `error`.
* `message` String - The actual console message
* `line` Integer - The line number of the source that triggered this console message
* `level` Integer
* `message` String
* `line` Integer
* `sourceId` String
Fired when the guest window logs a console message.
@@ -816,7 +816,7 @@ const { shell } = require('electron')
const webview = document.querySelector('webview')
webview.addEventListener('new-window', async (e) => {
const protocol = (new URL(e.url)).protocol
const protocol = require('url').parse(e.url).protocol
if (protocol === 'http:' || protocol === 'https:') {
await shell.openExternal(e.url)
}

View File

@@ -94,6 +94,6 @@ mainWindow.webContents.on('new-window', (event, url, frameName, disposition, opt
```javascript
// renderer process (mainWindow)
const modal = window.open('', 'modal')
let modal = window.open('', 'modal')
modal.document.write('<h1>Hello</h1>')
```

View File

@@ -14,15 +14,6 @@ This document uses the following convention to categorize breaking changes:
## Planned Breaking API Changes (12.0)
### Default Changed: `contextIsolation` defaults to `true`
In Electron 12, `contextIsolation` will be enabled by default. To restore
the previous behavior, `contextIsolation: false` must be specified in WebPreferences.
We [recommend having contextIsolation enabled](https://github.com/electron/electron/blob/master/docs/tutorial/security.md#3-enable-context-isolation-for-remote-content) for the security of your application.
For more details see: https://github.com/electron/electron/issues/23506
### Removed: `crashReporter` methods in the renderer process
The following `crashReporter` methods are no longer available in the renderer
@@ -353,7 +344,7 @@ const getGuestForWebContents = (webContentsId, contents) => {
throw new Error(`Invalid webContentsId: ${webContentsId}`)
}
if (guest.hostWebContents !== contents) {
throw new Error('Access denied to webContents')
throw new Error(`Access denied to webContents`)
}
return guest
}
@@ -377,6 +368,52 @@ in Electron 8.x, and cease to exist in Electron 9.x. The layout zoom level
limits are now fixed at a minimum of 0.25 and a maximum of 5.0, as defined
[here](https://chromium.googlesource.com/chromium/src/+/938b37a6d2886bf8335fc7db792f1eb46c65b2ae/third_party/blink/common/page/page_zoom.cc#11).
### Deprecated events in `systemPreferences`
The following `systemPreferences` events have been deprecated:
* `inverted-color-scheme-changed`
* `high-contrast-color-scheme-changed`
Use the new `updated` event on the `nativeTheme` module instead.
```js
// Deprecated
systemPreferences.on('inverted-color-scheme-changed', () => { /* ... */ })
systemPreferences.on('high-contrast-color-scheme-changed', () => { /* ... */ })
// Replace with
nativeTheme.on('updated', () => { /* ... */ })
```
### Deprecated: methods in `systemPreferences`
The following `systemPreferences` methods have been deprecated:
* `systemPreferences.isDarkMode()`
* `systemPreferences.isInvertedColorScheme()`
* `systemPreferences.isHighContrastColorScheme()`
Use the following `nativeTheme` properties instead:
* `nativeTheme.shouldUseDarkColors`
* `nativeTheme.shouldUseInvertedColorScheme`
* `nativeTheme.shouldUseHighContrastColors`
```js
// Deprecated
systemPreferences.isDarkMode()
// Replace with
nativeTheme.shouldUseDarkColors
// Deprecated
systemPreferences.isInvertedColorScheme()
// Replace with
nativeTheme.shouldUseInvertedColorScheme
// Deprecated
systemPreferences.isHighContrastColorScheme()
// Replace with
nativeTheme.shouldUseHighContrastColors
```
## Planned Breaking API Changes (7.0)
### Deprecated: Atom.io Node Headers URL
@@ -409,7 +446,7 @@ powerMonitor.querySystemIdleState(threshold, callback)
const idleState = powerMonitor.getSystemIdleState(threshold)
```
### API Changed: `powerMonitor.querySystemIdleTime` is now `powerMonitor.getSystemIdleTime`
### API Changed: `powerMonitor.querySystemIdleTime` is now `powerMonitor.getSystemIdleState`
```js
// Removed in Electron 7.0
@@ -697,11 +734,11 @@ const { memory } = metrics[0] // Deprecated property
```js
// Deprecated
const optionsA = { webPreferences: { blinkFeatures: '' } }
const windowA = new BrowserWindow(optionsA)
let optionsA = { webPreferences: { blinkFeatures: '' } }
let windowA = new BrowserWindow(optionsA)
// Replace with
const optionsB = { webPreferences: { enableBlinkFeatures: '' } }
const windowB = new BrowserWindow(optionsB)
let optionsB = { webPreferences: { enableBlinkFeatures: '' } }
let windowB = new BrowserWindow(optionsB)
// Deprecated
window.on('app-command', (e, cmd) => {
@@ -872,11 +909,11 @@ The following list includes the breaking API changes made in Electron 2.0.
```js
// Deprecated
const optionsA = { titleBarStyle: 'hidden-inset' }
const windowA = new BrowserWindow(optionsA)
let optionsA = { titleBarStyle: 'hidden-inset' }
let windowA = new BrowserWindow(optionsA)
// Replace with
const optionsB = { titleBarStyle: 'hiddenInset' }
const windowB = new BrowserWindow(optionsB)
let optionsB = { titleBarStyle: 'hiddenInset' }
let windowB = new BrowserWindow(optionsB)
```
### `menu`

View File

@@ -23,3 +23,4 @@ For guides on Electron app development, see
* [Debugging on macOS](debugging-instructions-macos.md)
* [Setting Up Symbol Server in Debugger](setting-up-symbol-server.md)
* [Patches](patches.md)
* [Upgrading Node](upgrading-node.md)

View File

@@ -10,10 +10,6 @@ Check the build prerequisites for your platform before proceeding
* [Linux](build-instructions-linux.md#prerequisites)
* [Windows](build-instructions-windows.md#prerequisites)
## Build Tools
[Electron's Build Tools](https://github.com/electron/build-tools) automate much of the setup for compiling Electron from source with different configurations and build targets. If you wish to set up the environment manually, the instructions are listed below.
## GN prerequisites
You'll need to install [`depot_tools`][depot-tools], the toolset

View File

@@ -42,7 +42,7 @@ $ pip install pyobjc
If you're developing Electron and don't plan to redistribute your
custom Electron build, you may skip this section.
Official Electron builds are built with [Xcode 9.4.1](http://adcdownload.apple.com/Developer_Tools/Xcode_9.4.1/Xcode_9.4.1.xip), and the macOS 10.13 SDK. Building with a newer SDK works too, but the releases currently use the 10.13 SDK.
Official Electron builds are built with [Xcode 11.1](https://download.developer.apple.com/Developer_Tools/Xcode_11.1/Xcode_11.1.xip), and the macOS 10.15 SDK. Building with a newer SDK works too, but the releases currently use the 10.15 SDK.
## Building Electron

View File

@@ -233,7 +233,7 @@ Try not to be discouraged. If you feel that a review is unfair, say so or seek
the input of another project contributor. Often such comments are the result of
a reviewer having taken insufficient time to review and are not ill-intended.
Such difficulties can often be resolved with a bit of patience. That said,
reviewers should be expected to provide helpful feedback.
reviewers should be expected to provide helpful feeback.
### Step 11: Landing

View File

@@ -15,7 +15,7 @@ calls, and other compiler optimizations. The only workaround is to build an
unoptimized local build.
The official symbol server URL for Electron is
https://symbols.electronjs.org.
https://electron-symbols.githubapp.com.
You cannot visit this URL directly, you must add it to the symbol path of your
debugging tool. In the examples below, a local cache directory is used to avoid
repeatedly fetching the PDB from the server. Replace `c:\code\symbols` with an
@@ -30,7 +30,7 @@ directory on your computer, if you'd prefer a different location for downloaded
symbols):
```powershell
SRV*c:\code\symbols\*https://symbols.electronjs.org
SRV*c:\code\symbols\*https://electron-symbols.githubapp.com
```
Set this string as `_NT_SYMBOL_PATH` in the environment, using the Windbg menus,
@@ -38,7 +38,7 @@ or by typing the `.sympath` command. If you would like to get symbols from
Microsoft's symbol server as well, you should list that first:
```powershell
SRV*c:\code\symbols\*https://msdl.microsoft.com/download/symbols;SRV*c:\code\symbols\*https://symbols.electronjs.org
SRV*c:\code\symbols\*https://msdl.microsoft.com/download/symbols;SRV*c:\code\symbols\*https://electron-symbols.githubapp.com
```
## Using the symbol server in Visual Studio

View File

@@ -0,0 +1,121 @@
# Upgrading Node
## Discussion
Chromium and Node.js both depend on V8, and Electron contains
only a single copy of V8, so it's important to ensure that the
version of V8 chosen is compatible with the build's version of
Node.js and Chromium.
Upgrading Node is much easier than upgrading Chromium, so fewer
conflicts arise if one upgrades Chromium first, then chooses the
upstream Node release whose version of V8 is closest to the one
Chromium contains.
Electron has its own [Node fork](https://github.com/electron/node)
with modifications for the V8 build details mentioned above
and for exposing API needed by Electron. Once an upstream Node
release is chosen, it's placed in a branch in Electron's Node fork
and any Electron Node patches are applied there.
Another factor is that the Node project patches its version of V8.
As mentioned above, Electron builds everything with a single copy
of V8, so Node's V8 patches must be ported to that copy.
Once all of Electron's dependencies are building and using the same
copy of V8, the next step is to fix any Electron code issues caused
by the Node upgrade.
[FIXME] something about a Node debugger in Atom that we (e.g. deepak)
use and need to confirm doesn't break with the Node upgrade?
So in short, the primary steps are:
1. Update Electron's Node fork to the desired version
2. Backport Node's V8 patches to our copy of V8
3. Update the GN build files, porting changes from node's GYP files
4. Update Electron's DEPS to use new version of Node
## Updating Electron's Node [fork](https://github.com/electron/node)
1. Ensure that `master` on `electron/node` has updated release tags from `nodejs/node`
2. Create a branch in https://github.com/electron/node: `electron-node-vX.X.X` where the base that you're branching from is the tag for the desired update
- `vX.X.X` Must use a version of Node compatible with our current version of Chromium
3. Re-apply our commits from the previous version of Node we were using (`vY.Y.Y`) to `v.X.X.X`
- Check release tag and select the range of commits we need to re-apply
- Cherry-pick commit range:
1. Checkout both `vY.Y.Y` & `v.X.X.X`
2. `git cherry-pick FIRST_COMMIT_HASH..LAST_COMMIT_HASH`
- Resolve merge conflicts in each file encountered, then:
1. `git add <conflict-file>`
2. `git cherry-pick --continue`
3. Repeat until finished
## Updating [V8](https://github.com/electron/node/src/V8) Patches
We need to generate a patch file from each patch that Node
applies to V8.
```sh
$ cd third_party/electron_node
$ CURRENT_NODE_VERSION=vX.Y.Z
# Find the last commit with the message "deps: update V8 to <some version>"
# This commit corresponds to Node resetting V8 to its pristine upstream
# state at the stated version.
$ LAST_V8_UPDATE="$(git log --grep='^deps: update V8' --format='%H' -1 deps/v8)"
# This creates a patch file containing all changes in deps/v8 from
# $LAST_V8_UPDATE up to the current Node version, formatted in a way that
# it will apply cleanly to the V8 repository (i.e. with `deps/v8`
# stripped off the path and excluding the v8/gypfiles directory, which
# isn't present in V8.
$ git format-patch \
--relative=deps/v8 \
$LAST_V8_UPDATE..$CURRENT_NODE_VERSION \
deps/v8 \
':(exclude)deps/v8/gypfiles' \
--stdout \
> ../../electron/common/patches/v8/node_v8_patches.patch
```
This list of patches will probably include one that claims to
make the V8 API backwards-compatible with a previous version of
V8. Unfortunately, those patches almost always change the V8 API
in a way that is incompatible with Chromium.
It's usually easier to update Node to work without the
compatibility patch than to update Chromium to work with the
compatibility patch, so it's recommended to revert the
compatibility patch and fix any errors that arise when compiling
Node.
## Update Electron's `DEPS` file
Update the `DEPS` file in the root of
[electron/electron](https://github.com/electron/electron) to
point to the git hash of the updated Node.
## Notes
- Node maintains its own fork of V8
- They backport a small amount of things as needed
- Documentation in Node about how [they work with V8](https://nodejs.org/api/v8.html)
- We update code such that we only use one copy of V8 across all of Electron
- E.g Electron, Chromium, and Node.js
- We dont track upstream closely due to logistics:
- Upstream uses multiple repos and so merging into a single repo
would result in lost history. So we only update when were planning
a Node version bump in Electron.
- Chromium is large and time-consuming to update, so we typically
choose the Node version based on which of its releases has a version
of V8 thats closest to the version in Chromium that were using.
- We sometimes have to wait for the next periodic Node release
because it will sync more closely with the version of V8 in the new Chromium
- Electron keeps all its patches in the repo because its simpler than
maintaining different repos for patches for each upstream project.
- Crashpad, Node.js, Chromium, Skia etc. patches are all kept in the same place
- Building Node:
- We maintain our own GN build files for Node.js to make it easier to ensure
that eevrything is built with the same compiler flags.
This means that every time we upgrade Node.js we have to do a modest amount of
work to synchronize the GN files with the upstream GYP files.

View File

@@ -43,14 +43,26 @@ use HTML5 APIs which are already available in browsers. Good candidates are
[Storage API][storage], [`localStorage`][local-storage],
[`sessionStorage`][session-storage], and [IndexedDB][indexed-db].
Alternatively, you can use the IPC primitives that are provided by Electron. To
share data between the main and renderer processes, you can use the
[`ipcMain`](api/ipc-main.md) and [`ipcRenderer`](api/ipc-renderer.md) modules.
To communicate directly between web pages, you can send a
[`MessagePort`][message-port] from one to the other, possibly via the main process
using [`ipcRenderer.postMessage()`](api/ipc-renderer.md#ipcrendererpostmessagechannel-message-transfer).
Subsequent communication over message ports is direct and does not detour through
the main process.
Or you can use the IPC system, which is specific to Electron, to store objects
in the main process as a global variable, and then to access them from the
renderers through the `remote` property of `electron` module:
```javascript
// In the main process.
global.sharedObject = {
someProperty: 'default value'
}
```
```javascript
// In page 1.
require('electron').remote.getGlobal('sharedObject').someProperty = 'new value'
```
```javascript
// In page 2.
console.log(require('electron').remote.getGlobal('sharedObject').someProperty)
```
## My app's tray disappeared after a few minutes.
@@ -95,7 +107,7 @@ To solve this, you can turn off node integration in Electron:
```javascript
// In the main process.
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({
let win = new BrowserWindow({
webPreferences: {
nodeIntegration: false
}
@@ -143,7 +155,7 @@ To achieve this goal, set the background in the constructor for [BrowserWindow][
```javascript
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({
let win = new BrowserWindow({
backgroundColor: '#fff'
})
```
@@ -159,6 +171,5 @@ Notice that just setting the background in the CSS does not have the desired eff
[local-storage]: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
[session-storage]: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage
[indexed-db]: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API
[message-port]: https://developer.mozilla.org/en-US/docs/Web/API/MessagePort
[browser-window]: api/browser-window.md
[subpixel rendering example]: images/subpixel-rendering-screenshot.gif

View File

@@ -1,18 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
<h1>Hello World!</h1>
<p>
We are using node <script>document.write(process.versions.node)</script>,
Chrome <script>document.write(process.versions.chrome)</script>,
and Electron <script>document.write(process.versions.electron)</script>.
</p>
<a href="#" id="drag">Drag me</a>
<script src="renderer.js"></script>
</body>
</html>

View File

@@ -1,41 +0,0 @@
const { app, BrowserWindow, ipcMain, nativeImage, NativeImage } = require('electron')
const fs = require('fs');
const http = require('http');
function createWindow () {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
win.loadFile('index.html')
}
const iconName = 'iconForDragAndDrop.png';
const icon = fs.createWriteStream(`${process.cwd()}/${iconName}`);
http.get('http://img.icons8.com/ios/452/drag-and-drop.png', (response) => {
response.pipe(icon);
});
app.whenReady().then(createWindow)
ipcMain.on('ondragstart', (event, filePath) => {
event.sender.startDrag({
file: filePath,
icon: `${process.cwd()}/${iconName}`
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})

View File

@@ -1,9 +0,0 @@
const { ipcRenderer } = require('electron')
const fs = require('fs')
document.getElementById('drag').ondragstart = (event) => {
const fileName = 'drag-and-drop.md'
fs.writeFileSync(fileName, '# Test drag and drop');
event.preventDefault()
ipcRenderer.send('ondragstart', process.cwd() + `/${fileName}`)
}

View File

@@ -1,16 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
<h1>Hello World!</h1>
<p>
We are using node <script>document.write(process.versions.node)</script>,
Chrome <script>document.write(process.versions.chrome)</script>,
and Electron <script>document.write(process.versions.electron)</script>.
</p>
</body>
</html>

View File

@@ -1,31 +0,0 @@
const { app, BrowserWindow, globalShortcut } = require('electron')
function createWindow () {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
win.loadFile('index.html')
}
app.whenReady().then(() => {
globalShortcut.register('Alt+CommandOrControl+I', () => {
console.log('Electron loves global shortcuts!')
})
}).then(createWindow)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})

View File

@@ -1,14 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
<h1>Hello World!</h1>
We are using node <script>document.write(process.versions.node)</script>,
Chrome <script>document.write(process.versions.chrome)</script>,
and Electron <script>document.write(process.versions.electron)</script>.
</body>
</html>

View File

@@ -1,13 +0,0 @@
const { app, BrowserWindow } = require('electron')
app.whenReady().then(() => {
const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } })
win.loadFile('index.html')
win.webContents.on('before-input-event', (event, input) => {
if (input.control && input.key.toLowerCase() === 'i') {
console.log('Pressed Control+I')
event.preventDefault()
}
})
})

View File

@@ -1,16 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
<h1>Hello World!</h1>
<p>
We are using node <script>document.write(process.versions.node)</script>,
Chrome <script>document.write(process.versions.chrome)</script>,
and Electron <script>document.write(process.versions.electron)</script>.
</p>
</body>
</html>

View File

@@ -1,39 +0,0 @@
const { app, BrowserWindow, Menu, MenuItem } = require('electron')
function createWindow () {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
win.loadFile('index.html')
}
const menu = new Menu()
menu.append(new MenuItem({
label: 'Electron',
submenu: [{
role: 'help',
accelerator: process.platform === 'darwin' ? 'Alt+Cmd+I' : 'Alt+Shift+I',
click: () => { console.log('Electron rocks!') }
}]
}))
Menu.setApplicationMenu(menu)
app.whenReady().then(createWindow)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})

View File

@@ -1,19 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
<link rel="stylesheet" type="text/css" href="./styles.css">
</head>
<body>
<h1>Hello World!</h1>
<p>Current theme source: <strong id="theme-source">System</strong></p>
<button id="toggle-dark-mode">Toggle Dark Mode</button>
<button id="reset-to-system">Reset to System Theme</button>
<script src="renderer.js"></script>
</body>
</body>
</html>

View File

@@ -1,40 +0,0 @@
const { app, BrowserWindow, ipcMain, nativeTheme } = require('electron')
function createWindow () {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
win.loadFile('index.html')
ipcMain.handle('dark-mode:toggle', () => {
if (nativeTheme.shouldUseDarkColors) {
nativeTheme.themeSource = 'light'
} else {
nativeTheme.themeSource = 'dark'
}
return nativeTheme.shouldUseDarkColors
})
ipcMain.handle('dark-mode:system', () => {
nativeTheme.themeSouce = 'system'
})
}
app.whenReady().then(createWindow)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})

View File

@@ -1,11 +0,0 @@
const { ipcRenderer } = require('electron')
document.getElementById('toggle-dark-mode').addEventListener('click', async () => {
const isDarkMode = await ipcRenderer.invoke('dark-mode:toggle')
document.getElementById('theme-source').innerHTML = isDarkMode ? 'Dark' : 'Light'
})
document.getElementById('reset-to-system').addEventListener('click', async () => {
await ipcRenderer.invoke('dark-mode:system')
document.getElementById('theme-source').innerHTML = 'System'
})

View File

@@ -1,7 +0,0 @@
@media (prefers-color-scheme: dark) {
body { background: #333; color: white; }
}
@media (prefers-color-scheme: light) {
body { background: #ddd; color: black; }
}

View File

@@ -1,16 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
<h1>Hello World!</h1>
<p>
We are using node <script>document.write(process.versions.node)</script>,
Chrome <script>document.write(process.versions.chrome)</script>,
and Electron <script>document.write(process.versions.electron)</script>.
</p>
</body>
</html>

View File

@@ -1,43 +0,0 @@
const { app, BrowserWindow, Menu } = require('electron')
function createWindow () {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
win.loadFile('index.html')
}
const dockMenu = Menu.buildFromTemplate([
{
label: 'New Window',
click () { console.log('New Window') }
}, {
label: 'New Window with Settings',
submenu: [
{ label: 'Basic' },
{ label: 'Pro' }
]
},
{ label: 'New Command...' }
])
app.whenReady().then(() => {
app.dock.setMenu(dockMenu)
}).then(createWindow)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})

View File

@@ -1,16 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
<h1>Hello World!</h1>
<p>
We are using node <script>document.write(process.versions.node)</script>,
Chrome <script>document.write(process.versions.chrome)</script>,
and Electron <script>document.write(process.versions.electron)</script>.
</p>
</body>
</html>

View File

@@ -1,35 +0,0 @@
const { app, BrowserWindow, Notification } = require('electron')
function createWindow () {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
win.loadFile('index.html')
}
function showNotification () {
const notification = {
title: 'Basic Notification',
body: 'Notification from the Main process'
}
new Notification(notification).show()
}
app.whenReady().then(createWindow).then(showNotification)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})

View File

@@ -1,17 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
<h1>Hello World!</h1>
<p>
We are using node <script>document.write(process.versions.node)</script>,
Chrome <script>document.write(process.versions.chrome)</script>,
and Electron <script>document.write(process.versions.electron)</script>.
</p>
<script src="renderer.js"></script>
</body>
</html>

View File

@@ -1,27 +0,0 @@
const { app, BrowserWindow } = require('electron')
function createWindow () {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
win.loadFile('index.html')
}
app.whenReady().then(createWindow)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})

View File

@@ -1,7 +0,0 @@
const myNotification = new Notification('Title', {
body: 'Notification from the Renderer process'
})
myNotification.onclick = () => {
console.log('Notification clicked')
}

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