Compare commits

...

498 Commits

Author SHA1 Message Date
Sudowoodo Release Bot
4123310d4d Bump v18.3.13 2022-09-14 08:31:32 -07:00
trop[bot]
5efbea4c7c fix: remove extra dot in extension (#35661)
* fix: remove extra period of extension

* update comment

Co-authored-by: mlaurencin <mlaurencin@electronjs.org>
2022-09-13 13:32:09 -07:00
trop[bot]
90068fac78 fix: potential "Object has been destroyed" error in BrowserWindow.getFocusedWindow (#35645)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-09-13 18:21:23 +02:00
Sudowoodo Release Bot
27dc8d4a2a Bump v18.3.12 2022-09-08 12:02:53 -07:00
Sudowoodo Release Bot
13d8ee8d52 Revert "Bump v18.3.12"
This reverts commit dd2d921f0c.
2022-09-07 10:16:38 -07:00
Sudowoodo Release Bot
dd2d921f0c Bump v18.3.12 2022-09-07 08:32:17 -07:00
Pedro Pontes
b8f0882c6c chore: cherry-pick 51daffbf5cd8 from chromium (#35547)
* chore: [18-x-y] cherry-pick 51daffbf5cd8 from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-09-07 16:24:30 +02:00
Pedro Pontes
44926055ae chore: cherry-pick 079105b7ebba from chromium (#35556)
* chore: cherry-pick 079105b7ebba from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-09-07 11:45:27 +02:00
Pedro Pontes
1374b3cd60 chore: cherry-pick fd34e75b0a from sqlite (#35559)
* chore: cherry-pick fd34e75b0a from sqlite

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-09-05 09:52:56 +02:00
Sudowoodo Release Bot
a225c66082 Bump v18.3.11 2022-08-31 08:32:07 -07:00
trop[bot]
0bd5d881ec fix: Frameless window shows frame while opening (#35477)
Co-authored-by: Raymond Zhao <7199958+rzhao271@users.noreply.github.com>
2022-08-29 09:49:56 +02:00
Pedro Pontes
770c7b3806 chore: cherry-pick 2f19801aeb77 from chromium (#35434)
* chore: cherry-pick 2f19801aeb77 from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-08-25 12:42:48 -04:00
Pedro Pontes
7a0dc04ba1 chore: cherry-pick 1121a459f094 from angle (#35424)
chore: [18-x-y] cherry-pick 1121a459f094 from angle
2022-08-25 15:43:38 +09:00
Pedro Pontes
ec4fe39323 chore: cherry-pick 96306321286a from chromium (#35426)
* chore: [18-x-y] cherry-pick 96306321286a from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-08-24 17:20:17 -04:00
Sudowoodo Release Bot
151e098f9f Bump v18.3.10 2022-08-24 08:32:04 -07:00
trop[bot]
89945eced3 fix: don't bypass redirect checks (#35367)
Co-authored-by: Jeremy Rose <japthorp@slack-corp.com>
2022-08-18 10:09:11 -07:00
Sudowoodo Release Bot
dce1b44b61 Bump v18.3.9 2022-08-17 08:34:27 -07:00
Pedro Pontes
8b7a1ca78f chore: cherry-pick bd9724c9fe63 from chromium (#35276)
* chore: cherry-pick bd9724c9fe63 from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-08-16 13:31:41 -04:00
trop[bot]
00120e6337 fix: add uv_loop_close when object release to fix crash (#35340)
Co-authored-by: yangzuohui <yangzuohui@bytedance.com>
2022-08-15 16:48:01 -04:00
Pedro Pontes
3e524ffe31 chore: cherry-pick c643d18a078d from chromium (#35272)
* chore: cherry-pick c643d18a078d from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-08-15 15:46:06 +09:00
trop[bot]
57f29743b4 fix: WCO occlusion of DevTools (#35307)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-08-15 10:30:49 +09:00
Pedro Pontes
75b03a5aae chore: cherry-pick 54a7927b19f9 from chromium (#35268)
Co-authored-by: Electron Bot <electron@github.com>
2022-08-15 09:58:51 +09:00
Sudowoodo Release Bot
6efe392926 Bump v18.3.8 2022-08-10 08:32:20 -07:00
Pedro Pontes
16a5482dde chore: cherry-pick 60d8559e150a from chromium (#35270)
* chore: cherry-pick 60d8559e150a from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-08-09 14:51:52 -04:00
Pedro Pontes
047a48ebfd chore: cherry-pick 54e32332750c from chromium (#35274)
* chore: cherry-pick 54e32332750c from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-08-09 10:37:12 +02:00
Jeremy Rose
f78d95d3ad chore: cherry-pick 94a8bdafc8c6 from chromium (#35236)
* chore: cherry-pick 94a8bdafc8c6 from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-08-09 09:38:56 +02:00
trop[bot]
3314f0cbf5 fix: merge crash annotations instead of overwriting (#35263)
ElectronCrashReporterClient::GetProcessSimpleAnnotations() merges
annotations provided as argument with global_annotations_,
preserving useful information.

Co-authored-by: Alexander Petrov <zowers+github@zowers.net>
2022-08-08 21:57:43 +02:00
Milan Burda
05bf827fc0 build: fix building with enable_plugins = false (#35261) 2022-08-08 11:46:01 -04:00
Jeremy Rose
03d98f04b6 chore: cherry-pick 06aea31d10f8 from webrtc (#35238)
* chore: cherry-pick 06aea31d10f8 from webrtc

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-08-08 16:44:08 +02:00
trop[bot]
b494afe684 fix: add support for --ozone-platform-hint flag on Linux (#35013)
* fix: add support for --ozone-platform-hint flag on Linux

* fixup! fix: add support for --ozone-platform-hint flag on Linux

Co-authored-by: Valentin Hăloiu <valentin.haloiu@gmail.com>
2022-08-04 10:57:46 +02:00
trop[bot]
f54c9df0cd fix: handle WCO pressed state when going maximized -> minimized (#35072)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-08-04 10:51:48 +02:00
Sudowoodo Release Bot
dee6e01e9e Bump v18.3.7 2022-08-03 08:32:21 -07:00
Robo
483e39cc74 chore: cherry-pick 97193a64b431 from chromium (#35184)
Backports https://chromium-review.googlesource.com/c/chromium/src/+/3542265

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-08-03 10:34:29 -04:00
trop[bot]
cd7490d233 fix: consider dock space when showing menu (#35198)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2022-08-03 10:21:04 -04:00
trop[bot]
b990bd6c97 fix: allow setsize to be called within a move or resize for preventDefault (#35082)
fix: #34599 allow setsize to be called within a move or resize for preventDefault

Co-authored-by: Ian German Mesner <mesner@gmail.com>
2022-08-03 11:54:58 +02:00
trop[bot]
56a0b45ef2 fix: modify file extension generation on Windows (#35171)
fix: modify file extension generation on Windows (#34723)

* fix: modify file extension generation on Windows

* modify includes

* include vector in header

* add win build flags

* remove hardcoded strings

* Update shell/browser/electron_download_manager_delegate.h

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

* fix string manipulation and function definitions

* Update electron_download_manager_delegate.h

* convert to std::string and modify for electron

* Update shell/browser/electron_download_manager_delegate.cc

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

* remove vector include and update conversion

* add vectr include for lint

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

Co-authored-by: Michaela Laurencin <35157522+mlaurencin@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2022-08-02 15:54:02 -04:00
Robo
5871f81bb9 fix: touch events not recognized by WCO on windows (#35117) (#35177)
* fix: touch events not recognized by WCO on windows (#35117)

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-08-02 15:39:57 -04:00
trop[bot]
511f27506f ci: turn off windows on arm test result comments (#35167)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-08-02 10:58:22 -04:00
trop[bot]
8189ee64b9 chore: add electron deps to //src gitignore (#35148)
chore: add electon deps to //src gitignore

Co-authored-by: Samuel Attard <sattard@salesforce.com>
2022-08-01 16:55:07 -04:00
trop[bot]
cc52f07023 ci: switch to GHA for WOA (#35127)
ci: switch to GHA for WOA (#35109)

* ci: switch to GHA for WOA

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
(cherry picked from commit 674596d11e)

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-07-29 14:56:31 -04:00
trop[bot]
890adefb95 docs: new main -> renderers messageChannel example (#35133)
* docs: new main -> renderers messageChannel example

* consistent use of your

* fix a typo

* linting

* markdown linting

* Update docs/tutorial/message-ports.md

Co-authored-by: Erick Zhao <erick@hotmail.ca>

* update code example headings, reference contextIsolation example

* remove nodeIntegration: false from browserWindows

* rename "messagePort" to "electronMessagePort" for compatibility

Co-authored-by: Kilian Valkhof <kilian@kilianvalkhof.com>
Co-authored-by: Erick Zhao <erick@hotmail.ca>
2022-07-29 11:44:45 -07:00
trop[bot]
348e76b1d6 fix: empty result of webContents.getUserAgent() (#35130)
fix: empty result of webContents.getUserAgent()

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-07-29 11:44:14 -07:00
Pedro Pontes
cfee3286b2 chore: cherry-pick 902f0d144a5b from chromium (#35097)
* chore: cherry-pick 902f0d144a5b from chromium

* chore: update patches

* Trigger Build

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-07-29 10:57:32 -04:00
Pedro Pontes
d7acbeb8ee chore: cherry-pick 3466cc056b05 from pdfium (#35099)
* chore: cherry-pick 3466cc056b05 from pdfium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-07-28 15:46:48 -04:00
Sudowoodo Release Bot
b35c90777a Bump v18.3.6 2022-07-28 09:21:57 -07:00
Pedro Pontes
b5bc30da45 chore: cherry-pick 664e0d8b4cfb from chromium (#35102)
* chore: cherry-pick 664e0d8b4cfb from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-07-28 11:54:23 -04:00
Devin Foley
3ca4944ad8 fix: Make disable_color_correct_rendering patch work again (#35088)
Fix disable_color_correct_rendering patch.
2022-07-28 12:14:13 +02:00
Keeley Hammond
40fcfaa5e9 fix: use win_clang_x64 binary for x86 extract symbols (#35078) (#35096) 2022-07-28 16:55:54 +09:00
John Kleinschmidt
da6e16157f ci: explicitly use pylint-1.5 for pylint (#35105)
3780302: pylint: drop unversioned program

https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3780302
2022-07-27 16:26:54 -04:00
trop[bot]
358d6f83cf fix: crash on BrowserWindow.setEnabled() (#34973)
fix: crash on BrowserWindow.setEnabled()

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-07-27 11:16:01 +02:00
Jeremy Rose
c5918acbf1 chore: cherry-pick ecad352cd614 from chromium (#34689) 2022-07-25 15:44:10 -07:00
Jeremy Rose
dba8e7fe42 chore: cherry-pick d7a5d6b38ea8 from chromium (#34998)
* chore: [18-x-y] cherry-pick d7a5d6b38ea8 from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-07-25 10:50:07 +02:00
Sudowoodo Release Bot
2fc331859f Revert "Bump v18.3.6"
This reverts commit c3a3274826.
2022-07-22 14:52:13 -07:00
Sudowoodo Release Bot
c3a3274826 Bump v18.3.6 2022-07-22 13:10:03 -07:00
Jeremy Rose
675737397d chore: cherry-pick 22abbad430b6 from chromium (#35004)
* chore: [18-x-y] cherry-pick 22abbad430b6 from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-07-21 10:29:03 -07:00
Jeremy Rose
5059502456 chore: cherry-pick 3cbd5973d704 from chromium (#35002)
* chore: [18-x-y] cherry-pick 3cbd5973d704 from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-07-21 09:37:35 +02:00
Jeremy Rose
b1093f454c chore: cherry-pick 8ea66a7833e2 from v8 (#35000)
* chore: [18-x-y] cherry-pick 8ea66a7833e2 from v8

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-07-21 09:37:24 +02:00
John Kleinschmidt
51146df170 build: run CI tests on Xcode 13.3.0 (#34982)
* build: run CI tests on Xcode 13.3.0 (#34850)

* build: test disabling security

* build: install python2 during tests

* build: do not install python2 on arm64 runners

* attempt 2

* build: only allow 13.3.0 xcode

(cherry picked from commit 459404f536)

* chore: update circleci config with needed changes from main

(cherry picked from commit f3ed1bd0f1)

Co-authored-by: Samuel Attard <sam@electronjs.org>
2022-07-20 09:30:48 +02:00
trop[bot]
1c59c8eb61 ci: wait longer for goma to be ready (#34964)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-07-19 16:28:17 +02:00
trop[bot]
09bb0c14a7 fix: alwaysOnTop browser window option for X11 Linux (#34911)
fix: alwaysontop browser window option for x11

Co-authored-by: Gellert Hegyi <gellert.hegyi@around.co>
2022-07-19 10:52:59 +02:00
trop[bot]
fcef0963d2 fix: prevent brief display of "Ozone X11" in window title on Linux (#34943) 2022-07-19 10:19:59 +02:00
Shelley Vohr
b608874076 fix: fullscreen windows aren't resizable on macOS (#34907) 2022-07-14 09:22:17 +02:00
Shelley Vohr
f06842e6f8 fix: call loadUrl when opening new windows from links (#34910) 2022-07-13 17:17:04 -04:00
trop[bot]
4119881a36 fix: set Wayland application ID (#34877)
* refactor: extract XDG app ID logic into a method

* fix: set application ID on Wayland

Co-authored-by: Valentin Hăloiu <valentin.haloiu@gmail.com>
2022-07-12 10:16:15 +02:00
Pedro Pontes
ecb9afd7d6 chore: cherry-pick 13ffdf63a471 from v8 (#34881)
* chore: [18-x-y] cherry-pick 13ffdf63a471 from v8

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-07-12 10:16:05 +02:00
Pedro Pontes
a70431f8db chore: cherry-pick 763d847f1e5a from webrtc (#34882)
* chore: cherry-pick 763d847f1e5a from webrtc

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-07-11 20:08:19 -04:00
trop[bot]
b21dae6bee fix: safer check for WCO button updates (#34873)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-07-11 13:37:42 +02:00
trop[bot]
cb3fef890f fix: WCO pressed background state updates (#34838)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-07-11 17:21:36 +09:00
trop[bot]
b61a6f8021 fix: setRepresentedFilename with non-default titlebarStyle (#34847)
fix: setRepresentedFilename with non-default titlebarStyle

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-07-08 10:50:54 +02:00
Sudowoodo Release Bot
b390336a5c Revert "Bump v18.3.6"
This reverts commit 7a9747021d.
2022-07-06 13:00:39 -07:00
Sudowoodo Release Bot
7a9747021d Bump v18.3.6 2022-07-06 08:32:51 -07:00
Jeremy Rose
18fd51af5f chore: cherry-pick f427936d32db from chromium (#34685)
* chore: [18-x-y] cherry-pick f427936d32db from chromium

* fix patch.

* chore: update patches

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Pedro Pontes <pepontes@microsoft.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-07-05 13:51:45 -04:00
Jeremy Rose
9e51cf4a65 chore: cherry-pick d0882b3dff76 from v8 (#34687)
* chore: [18-x-y] cherry-pick d0882b3dff76 from v8

* fix patch.

* fix patch pt. 2

Co-authored-by: Electron Bot <electron@github.com>
Co-authored-by: Pedro Pontes <pepontes@microsoft.com>
2022-07-05 11:37:11 -04:00
Sudowoodo Release Bot
76a07c227d Revert "Bump v18.3.6"
This reverts commit 9308ac6e67.
2022-06-30 22:39:32 -07:00
Sudowoodo Release Bot
9308ac6e67 Bump v18.3.6 2022-06-30 15:06:31 -07:00
trop[bot]
3823245a46 fix: BrowserView background color in webContents (#33478)
* chore: fix BrowserView background color in webContents

* disable screen capture test on linux

* spec: fix platform failure condition

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-06-30 12:35:07 -07:00
Keeley Hammond
f49f74831b docs: expand tutorial (#34604) (#34799)
* docs: base tutorial update

* more docs

* zzz

* remove unused images

Co-authored-by: Erick Zhao <erick@hotmail.ca>
2022-06-30 09:23:36 -07:00
trop[bot]
0b26e76739 build: remove appveyor hook to defunct service (#34793)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-06-29 10:45:16 -07:00
Sudowoodo Release Bot
079010f01a Revert "Bump v18.3.6"
This reverts commit 8f673fe81d.
2022-06-29 10:44:30 -07:00
Sudowoodo Release Bot
8f673fe81d Bump v18.3.6 2022-06-29 08:32:34 -07:00
trop[bot]
1012fd687a fix: resolve symlinks when computing relative asar paths for integrity (#34780)
Co-authored-by: Samuel Attard <sattard@salesforce.com>
2022-06-29 10:12:55 +02:00
trop[bot]
871be236f8 docs: replace broken Windows taskbar images (#34752)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2022-06-28 10:08:13 +02:00
trop[bot]
cee4a64493 fix: make navigator.userAgentData non-empty (#34758)
fix: make navigator.userAgentData non-empty (#34481)

Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2022-06-28 10:07:42 +02:00
trop[bot]
d71c08a404 refactor: load webFrame via process._linkedBinding in security-warnings.ts (#34746)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-06-27 14:12:41 +02:00
trop[bot]
5a0f75f42c fix: WCO respects maximizable/closable/minimizable (#34720)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-06-23 21:07:28 +02:00
Pedro Pontes
f5e26258da chore: cherry-pick 22c61cfae5d1 from chromium (#34714)
* chore: cherry-pick 22c61cfae5d1 from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-06-23 14:24:29 -04:00
Sudowoodo Release Bot
6165f6afc9 Bump v18.3.5 2022-06-22 08:31:20 -07:00
Jeremy Rose
35f871c702 chore: cherry-pick 44c4e56fea2c from v8 (#34692) 2022-06-22 12:26:57 +02:00
trop[bot]
8c3c382673 fix: window button visibility fullscreen interaction (#34673)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-06-22 10:49:09 +02:00
Shelley Vohr
16ae9e16cf refactor: remove deprecated drag-and-drop code (#34653) 2022-06-20 15:57:04 -04:00
trop[bot]
1d14d15d8c fix: performance problem in crashReporter.start() on macOS (#34640)
* fix: performance problem in crashReporter.start() on macOS

This change reduces the duration of crashReporter.start() on Intel macOS
from 622 milliseconds to 257 milliseconds!

Backports https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3641386

  posix: Replace DoubleForkAndExec() with ForkAndSpawn()

  The DoubleForkAndExec() function was taking over 622 milliseconds to run
  on macOS 11 (BigSur) on Intel i5-1038NG7. I did some debugging by adding
  some custom traces and found that the fork() syscall is the bottleneck
  here, i.e., the first fork() takes around 359 milliseconds and the
  nested fork() takes around 263 milliseconds. Replacing the nested fork()
  and exec() with posix_spawn() reduces the time consumption to 257
  milliseconds!

  See https://github.com/libuv/libuv/pull/3064 to know why fork() is so
  slow on macOS and why posix_spawn() is a better replacement.

  Another point to note is that even base::LaunchProcess() from Chromium
  calls posix_spawnp() on macOS -
  8f8d82dea0:base/process/launch_mac.cc;l=295-296

  Change-Id: I25c6ee9629a1ae5d0c32b361b56a1ce0b4b0fd26
  Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3641386
  Reviewed-by: Mark Mentovai <mark@chromium.org>
  Commit-Queue: Mark Mentovai <mark@chromium.org>

Fixes: https://github.com/electron/electron/issues/34321
Signed-off-by: Darshan Sen <raisinten@gmail.com>

* Update .patches

* chore: update patches

Co-authored-by: Darshan Sen <raisinten@gmail.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-06-20 16:43:17 +09:00
trop[bot]
32df7f58bb chore: fix BrowserView painting when origin updated (#34641)
chore: fix View painting when origin updated

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-06-20 09:19:36 +02:00
Raymond Zhao
66c3319458 refactor: use stubs for gdk-pixbuf dependency (#34601) 2022-06-20 13:30:47 +09:00
Milan Burda
49955512a8 fix: crash when setWindowOpenHandler callback throws (#34627)
fix: crash when `setWindowOpenHandler` callback throws (#34523)

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-06-20 09:34:59 +09:00
Pedro Pontes
977dc2527e chore: cherry-pick b03797bdb1df from chromium (#34631)
* chore: cherry-pick b03797bdb1df from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-06-20 09:33:19 +09:00
trop[bot]
4f70332460 fix: draggable regions updating on bounds change (#34610)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-06-17 15:36:29 +02:00
Jeremy Rose
d8e1f4f73b chore: add ffmpeg patch dir to config.json (#34597)
* chore: add ffmpeg patch dir to config.json

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-06-16 17:14:27 -07:00
Jeremy Rose
ec40581e83 chore: cherry-pick e481fc655a62 from ffmpeg (#34560) 2022-06-16 18:31:13 +02:00
Jeremy Rose
22cdcf400c chore: cherry-pick 2782c7bc5bbe from chromium (#34569)
* chore: cherry-pick 2782c7bc5bbe from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-06-16 16:43:45 +09:00
Jeremy Rose
1b36d1d175 chore: cherry-pick 801b904aea7d from angle (#34566)
* chore: cherry-pick 801b904aea7d from angle

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-06-15 15:47:53 -04:00
Jeremy Rose
4578597dea chore: cherry-pick f3d01ff794dc from chromium (#34556)
* chore: cherry-pick f3d01ff794dc from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-06-15 15:46:01 -04:00
Jeremy Rose
20deb65058 chore: cherry-pick 03aa5ae75c29 from angle (#34568)
* chore: cherry-pick 03aa5ae75c29 from angle

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-06-15 12:53:44 -04:00
Jeremy Rose
7b7d22fa7c chore: cherry-pick 919b1ffe1fe7 from chromium (#34558)
* chore: cherry-pick 919b1ffe1fe7 from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-06-15 12:51:11 -04:00
Pedro Pontes
851350b9f3 chore: cherry-pick f1504440487f from chromium (#34540)
* chore: cherry-pick f1504440487f from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-06-15 11:33:37 -04:00
Sudowoodo Release Bot
7162f641b5 Bump v18.3.4 2022-06-15 08:31:31 -07:00
Jeremy Rose
88e3f4a1e6 chore: cherry-pick 6661eb4900da from angle (#34554)
* chore: cherry-pick 6661eb4900da from angle

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-06-15 14:25:57 +09:00
trop[bot]
0d1900048d test: add missing page-title-updated event spec for webview (#34545)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-06-15 14:25:44 +09:00
Jeremy Rose
af65324717 chore: cherry-pick f1dd785e021e from chromium (#34562)
* chore: cherry-pick f1dd785e021e from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-06-15 11:29:54 +09:00
Jeremy Rose
6d1cc18322 chore: cherry-pick 21139756239b from chromium (#34534)
* chore: cherry-pick 21139756239b from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-06-14 15:26:47 -04:00
Pedro Pontes
4d73469ed5 chore: cherry-pick 9768648fffc9 from angle (#34537)
* chore: cherry-pick 9768648fffc9 from angle

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-06-14 15:22:19 -04:00
trop[bot]
ca17f574de fix: all files selection logic on linux (#34518)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-06-13 16:22:06 +02:00
trop[bot]
a5fdd272b1 fix: update normal bounds prior to minimizing (#34485)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-06-09 15:39:37 -04:00
Sudowoodo Release Bot
15f3c45fe9 Bump v18.3.3 2022-06-08 08:31:14 -07:00
trop[bot]
3f01fb3110 test: fix for flaky renderer crash test (#34453)
Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>
2022-06-08 11:33:01 +02:00
trop[bot]
96789ee78b chore: fix nan spec runner on macOS (#34461)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-06-08 16:10:16 +09:00
trop[bot]
4b8885ffc8 docs: fix did-frame-navigate example in webFrameMain docs (#34445)
docs: fix did-frame-navigate example in webFrameMain docs

Co-authored-by: Will Anderson <will@itsananderson.com>
2022-06-06 11:20:05 -04:00
trop[bot]
c47b196d02 fix: render process crash handling (#34430)
* fix: crash when renderer process is reused

Could occur when a renderer crashes and the same-origin URL is loaded again
which leads to reusing the renderer process.

* test: renderer process crash recovery

* fix: handle case which leads to render frame DCHECK

* fix: lint

Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>
2022-06-02 20:12:50 -07:00
trop[bot]
d67c319642 fix: crash in WebFrameMain mojo connection when RenderFrameHost is nullptr (#34415)
* fix: crash when RenderFrameHost is nullptr

* chore: lint fix

Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>
2022-06-02 15:16:43 +09:00
Sudowoodo Release Bot
6839dd92b8 Bump v18.3.2 2022-06-01 08:32:20 -07:00
trop[bot]
d468a73edb fix: zombie windows when fullscreening and closing (#34392)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-05-31 15:36:47 +02:00
Robo
e4dbd1407e chore: backport a704c3a from chromium (#34385)
* chore: backport a704c3a from chromium

Refs https://chromium-review.googlesource.com/c/chromium/src/+/3545665
Fixes https://github.com/electron/electron/issues/25387

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-05-31 10:43:38 +02:00
Shelley Vohr
37a422d05b fix: esc not working on Windows during fullscreen (#34361)
* fix: esc not working on Windows during fullscreen

* chore: fix lint
2022-05-31 14:08:45 +09:00
Sudowoodo Release Bot
26e7f27110 Bump v18.3.1 2022-05-25 08:32:14 -07:00
John Kleinschmidt
707e8d5b7b fix: crash on navigator.serial.getPorts() (#34327)
(cherry picked from commit 7f9431764f)
2022-05-24 16:55:20 +02:00
trop[bot]
6fda94858d chore: add a TRACE call for crash_reporter::Start() (#34325)
chore: add a TRACE call for crash_reporter::Start()

Initializing the crashReporter takes around 620 milliseconds on Intel
macOS. I have sent a CL to crashpad to partially fix the performance
issue in
https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3641386.
It would be beneficial to log the performance impact of this function in
the traces in case this slows down in the future.

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

Co-authored-by: Darshan Sen <raisinten@gmail.com>
2022-05-24 10:21:42 +02:00
trop[bot]
1eece7ada0 docs: remove X-Content-Security-Policy header in quick-start.md (#34318)
reference: Note: It is known that having both Content-Security-Policy
 and X-Content-Security-Policy or X-Webkit-CSP causes unexpected
 behaviours on certain versions of browsers. Please avoid using deprecated
 X-* headers. https://content-security-policy.com/
also:
1ad18486ed

Co-authored-by: Letu Ren <fantasquex@gmail.com>
2022-05-23 13:45:06 -04:00
Sudowoodo Release Bot
c33bfffeec Bump v18.3.0 2022-05-23 08:54:56 -07:00
Shelley Vohr
02bf71fb43 fix: crash when loading extension with missing manifest (#34304) 2022-05-23 10:43:53 -04:00
Robo
74b85afca4 fix: service worker registration with custom protocols (#34291)
Refs https://github.com/electron/electron/issues/32664
2022-05-23 21:20:03 +09:00
Keeley Hammond
fbc398f9bc fix: revert "feat: add first-instance-ack event to the app.requestSingleInstanceLock() flow (#34295)
* Revert "fix: requestSingleInstanceLock API ConnectNamedPipe sometimes hangs program (#33778)"

This reverts commit ffb8749243.

* fix: revert "feat: add first-instance-ack event to the `app.requestSingleInstanceLock()` flow"

* chore: update patch
2022-05-22 22:22:01 -07:00
trop[bot]
4c32d141d8 fix: delayed bounds when moving/resizing and preventing default (#34284)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-05-20 10:32:44 +02:00
trop[bot]
88bedfcf25 fix: crash when creating interface for speculative frame (#34293)
* fix: crash when creating interface for speculative frame

* fix: (attempt 2) always try to connect when using renderer api

* fix: potential crash when rfh is disposed

* refactor: always teardown mojo connection

This should eliminate an entire class of potential errors from appearing in the future.

Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>
2022-05-19 16:37:22 -04:00
Sudowoodo Release Bot
f4ba63536a Bump v18.2.4 2022-05-18 08:31:32 -07:00
trop[bot]
f024af603c docs: add missing explanation for [angle|dawn]_enable_vulkan_validation_layers = false (#34257)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-05-17 11:21:26 -04:00
trop[bot]
9c669210c4 fix: fetching PDF element from WebLocalFrame (#34214)
fix: fetching PDF element from WebLocalFrame

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-05-16 18:13:28 -04:00
Pedro Pontes
1bd99405ad chore: cherry-pick 723ed8a9cfff from v8 (#34202)
* chore: cherry-pick 723ed8a9cfff from v8

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-05-12 20:18:35 -04:00
trop[bot]
ef939db944 fix: tray icon not highlighting on empty menu (#34207)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-05-12 16:19:48 -07:00
trop[bot]
e7e8b324ff test: fixup done being called multiple times (#34186)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-05-11 13:09:48 -07:00
Samuel Attard
b4533d19e6 fix: disable SIGUSR1 when --inspect is disabled (#34180)
fix: disable SIGUSR1 when --inspect is disabled (#33188)
2022-05-11 12:38:31 -07:00
Cheng Zhao
2ecc68621f fix: remove use of xkb_keymap_key_get_mods_for_level (#34155) 2022-05-11 11:48:29 -07:00
electron-roller[bot]
0971add78a chore: bump chromium to 100.0.4896.160 (18-x-y) (#34171)
* chore: bump chromium in DEPS to 100.0.4896.160

* chore: update patch indexes

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-05-11 10:23:59 -07:00
Sudowoodo Release Bot
ebd134881b Bump v18.2.3 2022-05-11 08:31:15 -07:00
trop[bot]
448069cd04 build: change upload-to-s3 vars to upload-to-storage (#34146)
* build: change upload-to-s3 vars to upload-to-az

* build: change upload-to-az to upload-to-storage

* build: change linux-ia32-publish var

Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
2022-05-11 09:59:39 -04:00
trop[bot]
7afc5ab88e fix: fix a crash in safeStorage on Linux (#34148)
On Linux, `isEncryptionAvailable()` was crashing instead of returning a
boolean before the 'ready' event was emitted by the app. The reason of
the crash is that [`CreateKeyStorage()`](https://source.chromium.org/chromium/chromium/src/+/main:components/os_crypt/os_crypt_linux.cc;l=74;drc=35be6215ec8f09e50176f36753c68f26c63d1885;bpv=1;bpt=0)
expects the config to be set but the function responsible for setting the
config, [`SetConfig()`](https://source.chromium.org/chromium/chromium/src/+/main:components/os_crypt/os_crypt_linux.cc;l=237;drc=35be6215ec8f09e50176f36753c68f26c63d1885;bpv=1;bpt=0),
is called only after the app is ready inside [`PostCreateMainMessageLoop()`](https://github.com/electron/electron/blob/main/shell/browser/electron_browser_main_parts.cc#L499).
So this changes `IsEncryptionAvailable()` to return `false` when the app
is not ready on Linux and uses that instead of the raw API in other
places like `EncryptString()` and `DecryptString()`.

Fixes: https://github.com/electron/electron/issues/32206
Signed-off-by: Darshan Sen <raisinten@gmail.com>

Co-authored-by: Darshan Sen <raisinten@gmail.com>
2022-05-11 10:55:58 +02:00
Milan Burda
601ca745c1 fix: building node modules with Visual Studio 2017 (#34110) 2022-05-11 01:02:48 -07:00
Sudowoodo Release Bot
ba3a6c1193 Bump v18.2.2 2022-05-10 18:35:55 -07:00
Keeley Hammond
af3e3ff0cb fix: create singleton pipename from user & executable (#34161) 2022-05-10 16:28:06 -07:00
trop[bot]
85e19bd0ad chore: stub gtk_native_dialog_get_type (#34150)
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2022-05-10 10:33:55 +09:00
trop[bot]
cc428fdea2 refactor: prevent RemoveFromLoginItems() from mounting volumes from login items (#34106)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-05-09 13:11:29 +02:00
trop[bot]
553573e6ff docs: add missing ackCallback parameter (#34127)
Co-authored-by: Raymond Zhao <raymondzhao@microsoft.com>
2022-05-06 23:33:41 -07:00
trop[bot]
f057e0669d build: use azure function to hash assets instead of lambda (#34122)
Co-authored-by: Samuel Attard <sattard@salesforce.com>
2022-05-06 23:27:26 -07:00
trop[bot]
4ae399e4eb build: stop uploading assets to S3 (#34114)
* build: remove S3 uploads

* build: remove ending slash upload-index-json (#34125)

Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
2022-05-06 23:26:39 -07:00
trop[bot]
418c957e13 test: unflake some more tests (#34100)
* test: unflake webview fullscreen test

* test: unflake net throttle test

* Update spec-main/api-net-spec.ts

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

Co-authored-by: Samuel Attard <sattard@salesforce.com>
Co-authored-by: Samuel Attard <sam@electronjs.org>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2022-05-05 22:07:13 -04:00
trop[bot]
fe96879a9d fix: offscreen rendering crash on input select (#34092)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-05-05 11:49:49 -07:00
Pedro Pontes
8acf68c980 chore: cherry-pick 6b66a45021a0 from chromium (#34072)
* chore: cherry-pick 6b66a45021a0 from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-05-05 09:42:33 -04:00
trop[bot]
11a0e2a402 test: unflake some focus tests (#34080)
* spec: unflake some focus tests

* test: disable flaky webFrame visibiilty spec

Co-authored-by: Samuel Attard <sattard@salesforce.com>
2022-05-05 10:17:36 +02:00
Pedro Pontes
fabdfb2c18 chore: cherry-pick cf64617c1cc5 from chromium (#34052)
* chore: cherry-pick cf64617c1cc5 from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Electron Bot <electron@github.com>
2022-05-05 09:32:59 +09:00
trop[bot]
eca4b1325f test: fix nativeModulesEnabled in spec/webview-spec.js (#34067)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-05-04 11:57:01 -04:00
Sudowoodo Release Bot
3bc25c997d Bump v18.2.1 2022-05-04 08:33:09 -07:00
trop[bot]
b715e8714a fix: make BrowserWindow#isFocused() return false when blur() is called on macOS (#34030)
The isFocused() method on macOS works by checking if the selected
BrowserWindow is a key window. Unfortunately, this didn't work well
with blur() because it wasn't calling any macOS APIs that would change
the key status of the window. Hence, this changes the implementation of
blur() to call orderOut first, which removes the key
status of the window. Then when the orderBack function is called, it
moves the window to the back of its level in the screen list, without
changing the key window.

Fixes: https://github.com/electron/electron/issues/33732
Signed-off-by: Darshan Sen <raisinten@gmail.com>

Co-authored-by: Darshan Sen <raisinten@gmail.com>
2022-05-04 00:05:23 -07:00
trop[bot]
2a0828e69a test: scope internal test fixtures under @electron-ci (#34025)
* test: scope internal test fixtures under `@electron`

* Missed references

* Move packages from @electron to @electron-ci scope

* Fix tests

* fix require

Co-authored-by: Jamie Magee <jamie.magee@gmail.com>
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-05-03 23:56:55 -07:00
Samuel Attard
5d46db1839 refactor: use posix_spawn instead of NSTask so we can disclaim the spawned ShipIt executable (#34059)
* refactor: use posix_spawn instead of NSTask so we can disclaim the spawned ShipIt executable (#33468)

* Update .patches
2022-05-03 16:21:10 -07:00
Pedro Pontes
9d482f438a chore: cherry-pick e2b8856012e0 from chromium (#34048)
* chore: cherry-pick e2b8856012e0 from chromium

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-05-03 16:17:24 -07:00
Samuel Attard
7630fc801e build: use smaller resource_class because goma (#33905) (#34033) 2022-05-03 12:06:50 -07:00
trop[bot]
6b2375cba0 fix: support mixed-case extensions in Linux file dialogs (#34016)
Co-authored-by: Kevin Ushey <kevinushey@gmail.com>
2022-05-02 11:03:03 -07:00
Keeley Hammond
c017200e85 build: improve CI speeds and reduce CI costs (#33904) (#33952)
* build: improve CI speeds and reduce CI costs (#33904)

* remove third_party/electron_node:overlapped-checker

target isn't present in older versions

* build: use original arch logic

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Samuel Attard <sattard@salesforce.com>
2022-05-02 12:50:42 -04:00
trop[bot]
daf55a81b1 build: allow script/spec-runner.js with empty list of runners (#34003)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-05-02 09:45:11 -04:00
trop[bot]
067314ec32 docs: fix return type of setJumpList() in electron.d.ts (#33964)
Before:
```ts
setJumpList(categories: (JumpListCategory[]) | (null)): void;
```

After:
```ts
setJumpList(categories: (JumpListCategory[]) | (null)): ('ok' | 'error' | 'invalidSeparatorError' | 'fileTypeRegistrationError' | 'customCategoryAccessDeniedError');
```

Fixes: https://github.com/electron/electron/issues/33909
Signed-off-by: Darshan Sen <raisinten@gmail.com>

Co-authored-by: Darshan Sen <raisinten@gmail.com>
2022-05-02 17:40:42 +09:00
trop[bot]
a128449e3d refactor: better solution for resizable frameless DCHECK (#33973)
* refactor: better solution for resizable frameless DCHECK

* fix: also implement TargetForRectin WinFrameView

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-05-02 15:24:37 +09:00
Samuel Attard
de74dce663 build: use dev-cdn instead of sysroots s3 bucket (#33984)
* build: use dev-cdn instead of sysroots s3 bucket (#33922)

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-05-02 10:30:50 +09:00
trop[bot]
0e3a558913 spec: allow connections to port 2049 (#33992)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-05-02 10:28:04 +09:00
trop[bot]
e2d4a98c76 fix: disable MallocNanoZone on mac (#33965)
Co-authored-by: Jacek Oleksy <jacek.oleksy@gmail.com>
2022-04-28 20:19:03 -04:00
Sudowoodo Release Bot
015e9a8843 Bump v18.2.0 2022-04-28 17:04:33 -07:00
Sudowoodo Release Bot
1fc8f72126 Revert "Bump v18.1.1"
This reverts commit 6a91276172.
2022-04-28 16:58:15 -07:00
Sudowoodo Release Bot
6a91276172 Bump v18.1.1 2022-04-28 13:32:04 -07:00
Keeley Hammond
32ab3297fa Revert "Bump v18.2.0" (#33968)
This reverts commit 3b4e17e7e2.
2022-04-28 12:50:45 -07:00
Sudowoodo Release Bot
3b4e17e7e2 Bump v18.2.0 2022-04-28 11:04:44 -07:00
trop[bot]
6c314dc08b build: ensure sync-done file exists during git cache save (#33958)
Co-authored-by: Samuel Attard <sattard@salesforce.com>
2022-04-27 17:21:46 -07:00
electron-roller[bot]
cd6a17db08 chore: bump chromium in DEPS to 100.0.4896.143 (#33948)
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
2022-04-27 15:56:28 -04:00
trop[bot]
b6d6f86ee8 feat: implement chrome.tabs.reload to fix PDF Viewer (#33711)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-04-27 12:18:23 -07:00
Samuel Attard
178688fe61 build: upload to AZ as well as S3 (#33924)
* build: upload to AZ as well as S3

* build: actually verify az urls too
2022-04-27 10:43:11 -07:00
Samuel Attard
40f6e2ee7e build: improve circleci config (#33941)
* build: improve circleci config (#33881)

* build: fix conditional restore of git cache

* build: split lint out of setup.yml

* ci: update release script to handle new CircleCI configs (#33914)

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-04-27 10:13:11 -07:00
Sudowoodo Release Bot
f747f071fb Revert "Bump v18.1.1"
This reverts commit 8476bfbcaa.
2022-04-27 09:34:03 -07:00
Sudowoodo Release Bot
8476bfbcaa Bump v18.1.1 2022-04-27 08:32:00 -07:00
trop[bot]
d1abb62943 build: fix intermittent compilation failures on macOS (#33878)
* build: fix intermittent compilation failures on macOS

* chore: remove //base dependency from main executable

* chore: fix lint

Co-authored-by: Milan Burda <milan.burda@gmail.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2022-04-21 06:37:56 -07:00
trop[bot]
86bf9ea252 chore: backport 7c9b3938d from libuv (#33871)
* chore: backport 7c9b3938d from libuv

Backports https://github.com/libuv/libuv/pull/3597

* Update .patches

* chore: update patches

Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-04-21 03:13:19 -07:00
Raymond Zhao
ffb8749243 fix: requestSingleInstanceLock API ConnectNamedPipe sometimes hangs program (#33778) 2022-04-21 17:25:07 +09:00
Sudowoodo Release Bot
feea88600a Bump v18.1.0 2022-04-20 15:30:29 -07:00
Sudowoodo Release Bot
89188cd4e9 Revert "Bump v18.1.0"
This reverts commit 45c1d22489.
2022-04-20 15:24:23 -07:00
Sudowoodo Release Bot
45c1d22489 Bump v18.1.0 2022-04-20 14:29:03 -07:00
trop[bot]
3f39d85501 fix: include accessibility blink strings (#33843)
* fix: include accessibility blink strings

* chore: empty commit to trigger semantic check

Co-authored-by: Samuel Attard <sattard@salesforce.com>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
2022-04-20 14:26:22 -07:00
Sudowoodo Release Bot
2dd7749181 Revert "Bump v18.1.0"
This reverts commit 6de6d3966a.
2022-04-20 14:25:48 -07:00
trop[bot]
5634ddc665 chore: use semantic-commit-action (#33866)
* chore: use semantic-commit-action

* Update semantic.yml

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2022-04-20 14:15:06 -07:00
Sudowoodo Release Bot
6de6d3966a Bump v18.1.0 2022-04-20 08:31:28 -07:00
trop[bot]
02562e903b feat: allow null when subscribing notification (#33771)
* feat: allow null when subscribing notification

* docs: document null event

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-04-18 10:10:58 -04:00
trop[bot]
718ef5269f fix: potential crash caused by dlopen different gtk libraries (#33812)
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2022-04-18 09:44:27 -04:00
electron-roller[bot]
ddaa4a9686 chore: bump chromium to 100.0.4896.127 (18-x-y) (#33730)
* chore: bump chromium in DEPS to 100.0.4896.88

* chore: update patches

* chore: bump chromium in DEPS to 100.0.4896.127

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-04-18 09:38:43 -04:00
trop[bot]
f646744d32 test: re-enable desktop specs (#33542)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-04-18 13:27:57 +09:00
trop[bot]
75ccd1fb65 docs: recommend setting e.returnValue (#33645)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2022-04-18 13:24:04 +09:00
Sudowoodo Release Bot
f30034d1a9 Bump v18.0.4 2022-04-14 06:58:03 -07:00
trop[bot]
00b6524793 fix: event propagation after exiting fullscreen on Windows (#33787)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-04-14 06:54:19 -07:00
trop[bot]
f8f08814a2 fix: apply senderFrame details to ipcMain port event (#33782)
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2022-04-14 19:17:30 +09:00
trop[bot]
0a758c418c chore: interpret bytes to string (#33773)
Co-authored-by: VerteDinde <vertedinde@electronjs.org>
2022-04-14 16:26:23 +09:00
trop[bot]
daff2057a4 docs: note safeStorage.isEncryptionAvailable() needs ready event (#33738)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-04-13 10:45:49 +02:00
trop[bot]
67f2f9e024 build: migrate urllib to python3 (#33745)
Co-authored-by: VerteDinde <vertedinde@electronjs.org>
2022-04-12 21:59:43 -07:00
Erick Zhao
3ee1a45d76 docs: add ipc fiddle samples (#33748) 2022-04-12 16:29:58 -07:00
Erick Zhao
652d87282a docs: manually backport ipc doc (#33746) 2022-04-12 16:02:10 -07:00
trop[bot]
923788b4e4 build: explicitly run scripts with python3 (#33729)
* build: explicitly run scripts with python3

* chore: update patches

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-04-12 13:32:56 -07:00
Jeremy Rose
541504c8a4 fix: backport unseasoned pdf support to 18.x (#33664) 2022-04-12 11:09:30 +02:00
Jeremy Rose
490584834e chore: cherry-pick a18fddcb53e6 from webrtc (#33708)
* chore: cherry-pick a18fddcb53e6 from webrtc

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-04-12 11:04:12 +02:00
trop[bot]
a269ebd1d8 build: use python3 to lint (#33719) 2022-04-12 11:02:32 +02:00
trop[bot]
0f073186ff fix: report more detailed errors in shell.openExternal() on Windows (#33705)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-04-11 22:18:56 -07:00
trop[bot]
73e216f182 fix: report more detailed errors in shell.openExternal() on Windows (#33659)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-04-11 16:36:04 -07:00
Sudowoodo Release Bot
0a80eb4a9c Bump v18.0.3 2022-04-06 08:31:11 -07:00
trop[bot]
50e386ead4 fix: remove usage of private pid API on MAS (#33622)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-04-06 13:40:27 +02:00
electron-roller[bot]
5f0810a177 chore: bump chromium to 100.0.4896.75 (18-x-y) (#33619)
* chore: bump chromium in DEPS to 100.0.4896.75

* chore: update patches

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-04-05 21:21:00 -04:00
Sudowoodo Release Bot
65f3729bfb Bump v18.0.2 2022-04-05 09:44:17 -07:00
trop[bot]
b5bdd26a45 Revert "fix: some frameless windows showing a frame on Windows (#32692)" (#33610)
This reverts commit 7c701367c0.

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2022-04-05 09:42:45 -07:00
trop[bot]
9ac2ee317d chore: set v8_typed_array_max_size_in_heap to default (#33541)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-04-05 11:25:31 -05:00
trop[bot]
a600027384 fix: add missing translation string for ax tree (#33616)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2022-04-05 09:20:40 -07:00
trop[bot]
7f82836d67 test: BrowserWindow backgroundColor and transparency (#33561)
* test: BrowserWindow backgroundColor

* test: allow similar colors

* test: disable linux capturing

* refactor: split screen capture from reading pixel color

Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>
2022-04-04 09:54:21 -04:00
trop[bot]
769088f8dc fix: create userData on requestSingleInstanceLock() if needed (#33559) (#33592)
* test: use custom userData folder for requestSingleInstanceLock()

* update test

* prefix test folder path

* fix: create userDataDir on requestSingleInstanceLock() if needed

* Trigger Build

Co-authored-by: Micha Hanselmann <micha.hanselmann@gmail.com>
2022-04-04 10:48:04 +02:00
trop[bot]
c85bc3c932 fix: getting focused window with destroyed webContents (#33538)
* fix: getting focused window with destroyed webContents

* fix: add extra safeguards

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-03-31 13:01:44 -05:00
trop[bot]
3cd795a927 fix: don't unmaximize on macOS if user set max bounds (#33550)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-03-31 10:07:56 -04:00
David Sanders
6179b03fa1 fix: on macOS show BrowserWindow on maximize if not currently shown (#33537) 2022-03-31 10:36:39 +02:00
Sudowoodo Release Bot
72c48aa400 Bump v18.0.1 2022-03-30 08:32:15 -07:00
trop[bot]
befe53e5ad fix: pointer lock escape handling (#32828) 2022-03-30 09:41:48 +02:00
trop[bot]
41aaed307d fix: crash when WindowButtonsProxy references cleared NSWindow (#33490)
* resets WindowButtonsProxy on window delete on macOS

* fixes reset

Co-authored-by: Gellert Hegyi <gellert.hegyi@around.co>
2022-03-29 12:25:01 -04:00
electron-roller[bot]
0d17fac455 chore: bump chromium to 100.0.4896.60 (18-x-y) (#33501)
* chore: bump chromium in DEPS to 100.0.4896.60

* chore: update patches

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-03-29 11:39:34 -04:00
Robo
5c3d6aaa81 fix: calling of X11 functions when running under Wayland (#33355) (#33498)
Backports https://github.com/electron/electron/pull/33355

Co-authored-by: Marek Rusinowski <marekrusinowski@gmail.com>
2022-03-29 15:09:18 +02:00
Sudowoodo Release Bot
da6996dc63 Bump v18.0.0 2022-03-28 21:35:58 -07:00
Keeley Hammond
4cfa648a2e Revert "Bump v18.0.0" (#33493)
This reverts commit 8680415128.
2022-03-28 21:34:36 -07:00
Sudowoodo Release Bot
86294aa1d0 Revert "Bump v18.0.1"
This reverts commit 50d9fd215e.
2022-03-28 21:20:30 -07:00
Sudowoodo Release Bot
50d9fd215e Bump v18.0.1 2022-03-28 21:18:45 -07:00
trop[bot]
06b3615e30 ci: fixup esbuild on macos (#33492)
* ci: fixup esbuild on macos

* ci: call update_depot_tools right after clone

* when all else fails, use sed

* chore: empty commit to trigger ci

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: VerteDinde <vertedinde@electronjs.org>
2022-03-28 21:17:13 -07:00
Sudowoodo Release Bot
8680415128 Bump v18.0.0 2022-03-28 17:11:02 -07:00
Calvin
35bf159cd3 chore: update node types version (#33477)
* chore: update node types version

* update another types package to fix incompatible global declarations

* remove incompatible type magicks

* update our ambient types to match the node types

* fix test type
2022-03-28 19:07:29 -04:00
electron-roller[bot]
f8c7408279 chore: bump chromium to 100.0.4896.56 (18-x-y) (#33475)
* chore: bump chromium in DEPS to 100.0.4896.56

* chore: update patches

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-03-28 17:09:35 -05:00
Charles Kerr
9b1e7a8963 docs: simplify skipTaskbar breaking changes text (#33479) (#33482) 2022-03-28 16:49:30 -05:00
trop[bot]
765e1025f4 feat: add WCO title bar style setters (#33440)
* feat: add wco title bar style setters

* return after throwing

Co-authored-by: clavin <clavin@electronjs.org>
2022-03-28 12:51:50 -05:00
Sudowoodo Release Bot
a5d2a56105 Revert "Bump v18.0.0-beta.7"
This reverts commit d8f43ed7bd.
2022-03-28 09:28:37 -07:00
Sudowoodo Release Bot
d8f43ed7bd Bump v18.0.0-beta.7 2022-03-28 06:30:58 -07:00
trop[bot]
f1b30c26f9 fix: non-client windows messages on legacy widget host (again) (#33446)
Co-authored-by: clavin <clavin@electronjs.org>
2022-03-28 16:34:25 +09:00
trop[bot]
c80f701085 fix: gn check when //printing component is disabled (#33442)
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2022-03-25 00:51:25 -07:00
Sudowoodo Release Bot
fa6dde3e1c Bump v18.0.0-beta.6 2022-03-24 06:30:31 -07:00
trop[bot]
bb6a072380 fix: initialize asar support in worker threads (#33396)
* fix: initialize asar support in worker threads (#33216)

* fix: initialize asar support in worker threads

Use `ObjectWrap` instead of gin's Wrap in `electron_api_asar.cc` because
gin isn't fully initialized (and apparently not possible to initialize
without ruining the isolate configuration and array buffer allocator) in
worker threads. In the worker thread call `setupAsarSupport` just as we
do for the main process.

* Update lib/asar/fs-wrapper.ts

Co-authored-by: Darshan Sen <raisinten@gmail.com>

* Update patches/node/worker_thread_add_asar_support.patch

Co-authored-by: Darshan Sen <raisinten@gmail.com>

* Add a test

Co-authored-by: Darshan Sen <raisinten@gmail.com>
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>

* chore: update .patches after merge

Co-authored-by: Fedor Indutny <fedor@indutny.com>
Co-authored-by: Darshan Sen <raisinten@gmail.com>
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-03-24 16:24:34 +09:00
trop[bot]
743e442796 ci: abort CI if goma authentication is invalid (#33420)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-03-23 21:17:13 -04:00
trop[bot]
4abb7e9709 feat: add nativeTheme.inForcedColorsMode (#33357)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-03-23 16:54:11 -07:00
trop[bot]
8b996a478a fix: libuv patches to address child_process.spawn slowness (#33407)
* fix: libuv patches to address child_process.spawn slowness

* chore: backport additional patches

* Update .patches

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2022-03-23 19:03:25 -04:00
trop[bot]
d36dc1c7de fix: persist BrowserView content bounds when calculating layout (#33399)
Reverting change introduced in PR: https://github.com/electron/electron/pull/30510

Co-authored-by: Andreas Johansson <aj3621@tobii.com>
2022-03-23 10:10:12 +01:00
trop[bot]
e5c56c08a4 ci: enable thin LTO on Mac (#33194) (#33387)
* build: remove thin lto mac patch

* build: remove step-get-more-space-on-mac

* build: remove USE_PREBUILT_V8_CONTEXT_SNAPSHOT

* ci: re-add mksnapshot logic

* ci: re-add USE_PREBUILT_V8_CONTEXT_SNAPSHOT

* ci: re-add get-more-space, delete thin LTO cache & .dSYM

* ci: don't delete v8_snapshot_generator.dSYM

* ci: add timeout to mksnapshot

Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
2022-03-22 20:11:43 -04:00
trop[bot]
1763f4cfc8 fix: use stricter options in SecStaticCodeCheckValidity (#33378)
* fix: use stricter options in SecStaticCodeCheckValidity

* Update patches/squirrel.mac/fix_use_kseccschecknestedcode_kseccsstrictvalidate_in_the_sec.patch

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

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Samuel Attard <sam@electronjs.org>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-03-22 14:19:43 -07:00
trop[bot]
700887d623 fix: IncrementCapturerCount doesn't increase the capturer count (#33371)
This regression was introduced by commit 22a70eb8.

Co-authored-by: Zeeker <13848632+zeeker999@users.noreply.github.com>
2022-03-22 11:25:27 -04:00
trop[bot]
f893707c5d fix: pend bounds change when moving BrowserWindows (#33375)
* fix: ensure bounds changes apply when moving windows

* chore: remove unused queue include

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-03-22 08:57:18 +01:00
trop[bot]
dcf825bed6 fix: fire show event when BrowserWindow shown via maximize() (#33214)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2022-03-21 20:33:20 -04:00
trop[bot]
cee4e3707f feat: support more color formats for backgroundColor (#33364)
* feat: support more color formats for backgroundColor

* feat: support more formats in getBackgroundColor

* chore: remove redundant includes

* refactor: differentiate rgb/rgba/hsl/hsla + docs

* chore: address review cleanup comments

* refactor: simple getBackgroundColor

* chore: fix iwyu

* fix: typescript arg

* Update docs/api/browser-view.md

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

* chore: address comments

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2022-03-21 20:06:03 -04:00
trop[bot]
e9fa834757 fix: ensure ElectronBrowser mojo service is only bound to appropriate render frames (#33344)
* fix: ensure ElectronBrowser mojo service is only bound to authorized render frames

Notes: no-notes

* refactor: extract electron API IPC to its own mojo interface

* fix: just check main frame not primary main frame

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Samuel Attard <sattard@salesforce.com>
2022-03-21 13:41:15 -07:00
Robo
a327684118 fix: iocp integration when process is reused (#33207) (#33361) 2022-03-21 09:21:59 -07:00
Sudowoodo Release Bot
ef5424cee0 Bump v18.0.0-beta.5 2022-03-21 06:30:49 -07:00
trop[bot]
388acd7e2a fix: race condition where webContents can be nullptr during re-focus and a multi-window close sequence (#33284)
* fix: race condition where webContents can be nullptr during re-focus and a multi-window close sequence

* chore: update electron_inspectable_web_contents_view.mm

Co-authored-by: Samuel Attard <sam@electronjs.org>
2022-03-21 10:26:49 +09:00
trop[bot]
46d74390fc feat: allow setting code cache directory (#33286)
* feat: allow setting code cache directory

* chore: address review feedback

* chore: update docs

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

* chore: rewrite with base::Contains

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

Co-authored-by: Milan Burda <milan.burda@gmail.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2022-03-21 10:22:33 +09:00
trop[bot]
d305082ab7 build: drop pywin32 usage (#33298)
* build: drop pywin32 usage

* chore: ignore extra output on AppVeyor

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2022-03-21 10:19:45 +09:00
trop[bot]
0370583c73 fix: intialize FPS file in network service (#33345)
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
2022-03-20 11:12:17 -07:00
trop[bot]
91274e5a7e fix: crash when destroying node env with pending promises (#33302)
* fix: crash when destroying node env with pending promises

* chore: add spec

Co-authored-by: deepak1556 <hop2deep@gmail.com>
2022-03-18 04:08:45 -07:00
Sudowoodo Release Bot
fc3172dd2a Bump v18.0.0-beta.4 2022-03-17 06:30:45 -07:00
trop[bot]
7e0b787a76 docs: webFrame.insertCSS should mention options arg (#33293)
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2022-03-17 14:08:01 +01:00
trop[bot]
4556adde82 fix: ensure external memory adjustments are balanced (#33305)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2022-03-17 14:07:16 +01:00
trop[bot]
7283c257ae fix: BrowserWindow.fromWebContents should work in browser-window-created (#33316)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2022-03-17 09:45:24 +01:00
trop[bot]
bf5a0cdd6a chore: cherry-pick 2ed58f4 from chromium (#33109) (#33250)
Refs: https://chromium-review.googlesource.com/c/chromium/src/+/3492658
Fixes: https://github.com/electron/electron/issues/33049
Signed-off-by: Darshan Sen <raisinten@gmail.com>

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

Co-authored-by: Darshan Sen <raisinten@gmail.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2022-03-16 14:38:31 -04:00
trop[bot]
1c8e9b3651 docs: remove "marked" from process.getBlinkMemoryInfo() (#33291)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2022-03-16 09:30:25 -04:00
trop[bot]
90726a46e1 fix: add missing [[maybe_unused]] to IsEnvSet (#33269)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-03-16 11:49:21 +01:00
trop[bot]
9cd76a8e52 fix: prevent UAF crash in setCertificateVerifyProc (#33253)
* fix: prevent UAF crash in setCertificateVerifyProc

* fix patch

* fix tests

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2022-03-15 10:46:57 -07:00
trop[bot]
a9b17793de fix: cppgc/node collisions in renderer process (#33260) 2022-03-15 10:04:58 -07:00
Sudowoodo Release Bot
134042cc43 Bump v18.0.0-beta.3 2022-03-14 06:30:53 -07:00
trop[bot]
26d729a4a3 fix: settings not persisting across devtools loads (#33206)
* fix: settings not persisting across devtools loads

* chore: remove redundant RegisterPreference impl

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-03-11 11:18:50 -06:00
Sudowoodo Release Bot
68c3c3f7ad Bump v18.0.0-beta.2 2022-03-10 05:30:48 -08:00
trop[bot]
92cd3d1fa5 fix: crash when showin item in folder on DevTools (#33197)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-03-09 17:32:52 -05:00
trop[bot]
47f8a13384 fix: non-client mouse events on WCO-enabled windows (#33202)
Co-authored-by: clavin <clavin@electronjs.org>
2022-03-09 16:54:54 -05:00
trop[bot]
19c3e1c8b7 fix: patches to use BUILDFLAG(IS_WIN) / BUILDFLAG(IS_MAC) checks (#33195)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-03-09 16:54:28 -05:00
trop[bot]
7e771a3db5 feat: warn that preloads will be sandboxed by default in v20 (#33203)
* feat: warn that preloads will be sandboxed by default in v20

* add a note to breaking changes

* fix type error

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2022-03-09 12:04:48 -05:00
trop[bot]
c5ec2099bb docs: remove platform notices from tutorial titles (#33136)
* docs: remove platform notices from tutorial titles

* Update docs/tutorial/launch-app-from-url-in-another-app.md

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

Co-authored-by: Erick Zhao <erick@hotmail.ca>
Co-authored-by: Mark Lee <malept@users.noreply.github.com>
2022-03-08 14:37:52 -05:00
trop[bot]
262cc48ad0 fix: max window size defaults to 0 (#33119)
* fix: max window size defaults to 0

* fix: also check max_size empty

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-03-08 14:20:39 -05:00
trop[bot]
fb5741efd6 fix: really strip crashpad handler binary (#33175)
Co-authored-by: Micha Hanselmann <micha.hanselmann@gmail.com>
2022-03-08 13:56:04 -05:00
Sudowoodo Release Bot
47669c55fd Bump v18.0.0-beta.1 2022-03-08 10:16:46 -08:00
trop[bot]
7b76a70e07 build: put v8_context_snapshot_generator.dSYM in its own zip file (#33187)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-03-08 12:20:00 -05:00
Sudowoodo Release Bot
b4466f8f3e Revert "Bump v18.0.0-alpha.6"
This reverts commit 1528b0d307.
2022-03-07 09:22:59 -08:00
trop[bot]
2e9ccd4372 docs: Updated list numbering (#33147)
* docs: Updated list numbering

The steps to package and distribute an application using electron had incorrect numbering

* Indented text within ordered list sections

* Removed single space

* Fixed indentation

Co-authored-by: Alvin Philips <alvinphilips257@gmail.com>
2022-03-07 09:26:36 -05:00
Sudowoodo Release Bot
1528b0d307 Bump v18.0.0-alpha.6 2022-03-07 05:31:18 -08:00
John Kleinschmidt
da86676a43 chore: fixup 18-x-y release (#33145)
* build: add stack_trace.h to main delegate (#32854)

* build: add stack_trace.h to main delegate

* build: trigger circleci

* build: free up a tiny bit more space

* build: disable use_thin_lto

* fixup build/args/all.gn

Co-authored-by: Samuel Attard <sam@electronjs.org>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
(cherry picked from commit 4fa3310887)

* ci: disable use-thin-lto on Mac only (#33115)

* build: remove use_thin_lto = false

* ci: enabling if things get really bad (all darwin)

* build: lol don't enable that

* build: add patch to disable thin lto for mac

(cherry picked from commit f71a6db3ff)

Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
2022-03-03 20:50:21 -08:00
trop[bot]
0579822008 fix: macOS tray icon alternate images (#33107)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-03-03 14:52:35 -08:00
Sudowoodo Release Bot
ff64cd722f Revert "Bump v18.0.0-alpha.6"
This reverts commit fea2aabdd4.
2022-03-03 12:21:06 -08:00
Sudowoodo Release Bot
fea2aabdd4 Bump v18.0.0-alpha.6 2022-03-03 05:31:19 -08:00
trop[bot]
3bbbf4b27f fix: disable partition alloc on mac (#33117)
Co-authored-by: VerteDinde <vertedinde@electronjs.org>
2022-03-01 16:13:33 -08:00
trop[bot]
6dc7384f3a fix: DCHECK when calling app.exit() (#33059)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-02-28 11:45:47 -08:00
John Kleinschmidt
68c541380e chore: bump chromium to 100.0.4894.0 (18-x-y) (#33093)
* chore: bump chromium to 100.0.4857.0 (main) (#32419)

* chore: bump chromium in DEPS to 99.0.4819.0

* chore: update patches

* chore: bump chromium in DEPS to 99.0.4824.0

* chore: update patches

* chore: bump chromium in DEPS to 99.0.4827.0

* chore: update patches

* 3352511: PiP: Add inkdrop and pointer cursor to PiP window buttons

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

* 3309164: webhid: Show FIDO devices in the chooser if allowed

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

* 3297868: hid: Add experimental HIDDevice.forget()

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

* 3362491: [Extensions] Move i18n API to //extensions

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

* MCC Refactor step0: Allow embedders to register associated_interface binders with RenderFrameHostImpl::associated_registry_.

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

* 3352616: [Gtk] Remove libgtk from the link-line

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

* 3249211: Clear-Site-Data support for partitioned cookies

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

* [Extensions][COIL] Use [allow|block]list in //extensions/common

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

* Begin ScopedUserPrefUpdate migration to modern base::Value

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

* [Code Health] Refactor PrefService GetDict + GetList to use base::Value

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

* 3354997: [CodeHealth] Remove deprecated SetDictionary method

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

* 3287323: Add LacrosPrefStore for lacros settings

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

* 3365916: [PA] Clean up remaining lazy commit code

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

* [MPArch] Target the external protocol error at the responsible frame.

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

* Pass origin to RegisterNonNetworkSubresourceURLLoaderFactories

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

* Linux: Send OSCrypt raw encryption key to the Network Service

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

* [PlzServiceWorker] Remove remaining references to PlzServiceWorker.

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

* chore: fixup for lint

* 3327621: Fix tablet mode detection for Win 11.

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

* 3342428: ax_mac: move AXTextMarker conversion utils under ui umbrella

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

* 3353974: Mac: Use base::Feature for overlay features

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

* chore: bump chromium in DEPS to 99.0.4828.0

* chore: update patches

* chore: bump chromium in DEPS to 99.0.4837.0

* chore: update patches

* chore: update patches

* 3379142: Drop FALLTHROUGH macro
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3379142

* 3381749: C++17: Allow use of std::map::try_emplace and std::map::insert_or_assign
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3381749

* chore: bump chromium in DEPS to 99.0.4839.0

* chore: update patches

* chore: bump chromium in DEPS to 99.0.4840.0

* chore: bump chromium in DEPS to 99.0.4844.0

* 3395881: [api] Deprecate Local<v8::Context> v8::Object::CreationContext()

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

* chore: update patches

* chore: bump chromium in DEPS to 100.0.4845.0

* chore: update patches

* chore: bump chromium in DEPS to 100.0.4847.0

* chore: update patches

* chore: bump chromium in DEPS to 100.0.4849.0

* chore: update patches

* chore: bump chromium in DEPS to 100.0.4851.0

* chore: bump chromium in DEPS to 100.0.4853.0

* update patches

* chore: update patches

* update patches

* 3383599: Fonts Access: Remove prototype that uses a font picker.

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

* 3404768: Remove ALLOW_UNUSED macros

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

* 3374762: Remove ignore_result.h

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

* 3399305: [unseasoned-pdf] Apply proper frame offsets for touch selections

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

* 3402210: [Extensions] Don't trigger unload event for already unloaded extension

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

* 3410912: Combine URLLoaderClient OnReceiveResponse and OnStartLoadingResponseBody.

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

* 3370428: Make the AuthSchemes policy support dynamic refresh

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

* 3407603: Finish ScopedUserPrefUpdate migration to modern base::Value

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

* 3378352: ozone/x11: move code from //ui/p/x11 to //ui/ozone/p/x11

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

* 3370810: Delete chrome/service, AKA the Cloud Print service process.

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

* chore: bump chromium in DEPS to 100.0.4855.0

* chore: update patches

* fixup! 3370810: Delete chrome/service, AKA the Cloud Print service process.

* revert 3348007 to fix windows build

* 3318572: [Code health] Fix gn check errors in //extensions/browser:*

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

* fix printing.patch

* fix iwyu issue

* 3408515: win: Make ShorcutOperation an enum class and modernize names

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

* 3388333: [UIA] Remove dead code accessibility_misc_utils.h/cc

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

* fix windows build? i hope

* patch gn visibility of //ui/ozone/platform/x11

* missing include base/logging.h

* use BUILDFLAG for USE_NSS_CERTS

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

* defined(OS_*) ==> BUILDFLAG(IS_*)

https://bugs.chromium.org/p/chromium/issues/detail?id=1234043

* fixup! 3404768: Remove ALLOW_UNUSED macros

* another attempt to fix windows build

* temporarily disable the custom scheme service worker test

https://github.com/electron/electron/issues/32664

* fix loading mv3 extensions

not sure what cl broke this unfort.

* fixup! 3404768: Remove ALLOW_UNUSED macros

* patch nan

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

* fix node test

* fix nullptr in FindPdfFrame

* patch perfetto to fix build issue on win-ia32

bc44c3c753

* fix build for linux-x64-testing-no-run-as-node

* fix patch

* skip <webview>.capturePage() test

https://github.com/electron/electron/issues/32705

* test: fix failing tests of focus/blur events of WebContents (#32711)

* inherit stdio from app module test child processes

this prevents them from timing out due to full stdout buffers

* test to see if we can get better logs on windows ci

* try again for appveyor log things

* skip contentTracing tests on ia32

* ci: disable gpu compositing

* drop applied patch

* fix merge fail

* Revert "ci: disable gpu compositing"

This reverts commit 0344129fcb.

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: VerteDinde <khammond@slack-corp.com>
Co-authored-by: VerteDinde <vertedinde@electronjs.org>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
(cherry picked from commit 28ada6ea8b)

* chore: bump chromium to 100.0.4894.0 (main) (#32852)

* chore: bump chromium in DEPS to 100.0.4880.0

* resolve conflicts

* chore: update patches

* fix patch

* PIP20: add a new DocumentOverlayWindowViews subtype

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

* Clean up PictureInPictureWindowManager::EnterPictureInPicture()

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

* Remove StoragePartitionId.

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

* Remove FLoC code

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

* media: Make AddSupportedKeySystems() Async

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

* [Extensions] Move some l10n file util methods to //extensions/browser

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

* chore: IWYU

* Reland "webhid: Grant permissions for policy-allowed devices"

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

* Migrate base::Value::GetList() to base::Value::GetListDeprecated(): 2/N.

https://chromium-review.googlesource.com/c/chromium/src/+/3435727
https://chromium-review.googlesource.com/c/chromium/src/+/3440910
https://chromium-review.googlesource.com/c/chromium/src/+/3440088

* [text blink period] Cache blink period instead of fetching from defaults

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

* chore: update picture-in-picture.patch

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

* ci: update to Xcode 13.2.1

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

* chore: bump chromium in DEPS to 100.0.4882.1

* chore: update patches

* chore: bump chromium in DEPS to 100.0.4884.0

* chore: update patches

* chore: bump chromium in DEPS to 100.0.4886.0

* chore: update patches

* Refactor DownloadManager to use StoragePartitionConfig

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

* Remove ToWebInputElement() in favor of new WebNode::DynamicTo<> helpers.

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

* refactor: autofill to use the color pipeline

https://bugs.chromium.org/p/chromium/issues/detail?id=1249558
https://bugs.chromium.org/p/chromium/issues/detail?id=1003612

* [ProcessSingleton] Add many more trace events to cover all scenarios

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

* fixup! PIP20: add a new DocumentOverlayWindowViews subtype

* chore: bump chromium in DEPS to 100.0.4888.0

* chore: update patches

* chore: update picture-in-picture.patch

* fixup! refactor: autofill to use the color pipeline

* ci: fixup fix sync

(cherry picked from commit c1e3e395465739bce5ca8e1c5ec1f5bd72b99ebd)

* chore: bump chromium in DEPS to 100.0.4889.0

* chore: update patches

* chore: fix feat_add_data_transfer_to_requestsingleinstancelock.patch

* fixup! PIP20: add a new DocumentOverlayWindowViews subtype

* Remove remaining NativeTheme::GetSystemColor() machinery.

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

* ci: fetch proper esbuild for macos

* ci: fixup fetch proper esbuild for macos

* fix: failing Node.js test on outdated CurrentValueSerializerFormatVersion

* chore: bump chromium in DEPS to 100.0.4892.0

* 3460365: Set V8 fatal error callbacks during Isolate initialization

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

* 3454343: PIP20: use permanent top controls

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

* 3465574: Move most of GTK color mixers to ui/color/.

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

* chore: fixup patch indices

* 3445327: [locales] Remove locales reference

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

* 3456548: [DBB][#7] Blue border falls back to all tab if cropped-to zero pixels

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

* 3441196: Convert GuestView's remaining legacy IPC messages to Mojo

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

* 3455491: Don't include run_loop.h in thread_task_runner_handle.h

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

* fixup! 3454343: PIP20: use permanent top controls

* 3442501: Add missing includes of //base/observer_list.h

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

* 3437552: mac: Deploy a new hermetic build of Xcode 13.2.1 13C100

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

* chore: bump chromium in DEPS to 100.0.4894.0

* fixup! 3460365: Set V8 fatal error callbacks during Isolate initialization

* chore: update patches

* 3425231: Use DnsOverHttpsConfig where appropriate

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

* test: disable test-heapsnapshot-near-heap-limit-worker.js

As a result of CLs linked in https://bugs.chromium.org/p/v8/issues/detail?id=12503,
heap snapshotting near the heap limit DCHECKS in Node.js specs. This will
likely require a larger refactor in Node.js so i've disabled the test for
now and opened an upstream issue on node-v8 issue
at https://github.com/nodejs/node-v8/issues/218.

* Port all usage of NativeTheme color IDs to color pipeline

https://bugs.chromium.org/p/chromium/issues/detail?id=1249558

* chore: update patches after rebase

* ci: use gen2 machine for more disk space

* ci: don't try to make root volume writeable

* ci: use older xcode/macos for tests

* fix: html fullscreen transitions stacking

(cherry picked from commit 5e10965cdd7b2a024def5fc568912cefd0f05b44)

* ci: speed up woa testing

(cherry picked from commit 75c33c48b032137794f5734348a9ee3daa60d9de)
(cherry picked from commit e819962340)

* ci: disable flaky tests on WOA

* ci: run remote tests separately to isolate issue there

* tests: disable node test parallel/test-worker-debug for now

* revert: fix: html fullscreen transitions stacking

* tests: disable flaky test on macOS arm64

* fixup circleci config so build tools can find xcode version

* make sure the workspace is clean before job runs

(cherry picked from commit 75f713c974)

* tests: disable flaky test on Linux

* ci: debug why windows i32 is crashing

* Revert "ci: debug why windows i32 is crashing"

This reverts commit 4c4bba87ea.

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
(cherry picked from commit 3da598015b)

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
2022-02-28 11:37:30 -08:00
Sudowoodo Release Bot
fe8c831a0c Bump v18.0.0-alpha.5 2022-02-28 05:30:50 -08:00
trop[bot]
cc9ba35c51 fix: tray garbage collection (#33074)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-02-25 14:17:18 +01:00
Sudowoodo Release Bot
56ccfad7a5 Bump v18.0.0-alpha.4 2022-02-24 11:06:40 -08:00
Sudowoodo Release Bot
47bda9c0e5 Revert "Bump v18.0.0-alpha.4"
This reverts commit 339ae4c014.
2022-02-24 11:04:23 -08:00
Keeley Hammond
4f27c367b1 build: debug getDraftRelease call (#33073) 2022-02-24 14:03:56 -05:00
Sudowoodo Release Bot
339ae4c014 Bump v18.0.0-alpha.4 2022-02-24 05:31:27 -08:00
trop[bot]
c1f4b6a4cb fix: broken OSR transparent option (#33053)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-02-24 12:09:46 +01:00
trop[bot]
0a908224c2 fix: savePage throw on relative paths (#33019)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-02-22 16:29:32 +09:00
trop[bot]
34c4889bbb fix: command string for windows protocol handler (#33013)
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2022-02-22 16:26:39 +09:00
trop[bot]
8c066c2a35 fix: don't restore maximized BrowserWindow when calling showInactive (#33022)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2022-02-22 16:25:09 +09:00
trop[bot]
7c9b609389 chore: backport EPROTOTYPE fixes from libuv (#32944)
* chore: backport EPROTOTYPE fixes from libuv

This commit backports three commits from libuv's 1.x branch to fix
issues with CPU going to 100% on macOS when EPROTOTYPE is returned.

See: abb109f30f
See: 3a7b95593a
See: de24da8c11

* Update .patches

Co-authored-by: Fedor Indutny <fedor@indutny.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-02-22 16:18:18 +09:00
trop[bot]
7ab85558f5 chore: add @electron/wg-security to patches/ CODEOWNERS (#33007)
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2022-02-21 15:04:51 +01:00
trop[bot]
ca06034fdd fix: stale renderer process on quit (#32971)
Co-authored-by: Micha Hanselmann <micha.hanselmann@gmail.com>
2022-02-21 10:53:39 +01:00
trop[bot]
d07fe4480f fix: webContents.openDevTools({mode}) not working (#32946)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-02-21 10:25:02 +01:00
trop[bot]
c2195915d8 fix: failure to print on macOS (#32813)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-02-21 16:40:14 +09:00
trop[bot]
57408e4c2a Fix broken link to GNOME notifications spec (#33002)
Co-authored-by: Kev <kevslashnull@gmail.com>
2022-02-21 16:37:23 +09:00
trop[bot]
0012e01c86 docs: update checklists (#32931)
Co-authored-by: Erick Zhao <erick@hotmail.ca>
2022-02-21 10:21:31 +09:00
trop[bot]
2b97ff3fba docs: fix relative link in developer documentation (#32922)
Co-authored-by: Erick Zhao <erick@hotmail.ca>
2022-02-15 14:36:39 -08:00
Sudowoodo Release Bot
87590da2fb Bump v18.0.0-alpha.3 2022-02-14 07:44:33 -08:00
trop[bot]
493751b321 Make ElectronBrowser mojo interface frame associated. (#32851)
Co-authored-by: Marek Haranczyk <marek@openfin.co>
2022-02-14 20:34:11 +09:00
trop[bot]
36008e0dea test: disable the test that makes spec runner hang on exit (#32838)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2022-02-09 12:00:38 -06:00
trop[bot]
2871698148 build: rebuild the dist_zips when the deps get modified (#32820)
* build: rebuild the dist_zips when the deps get modified

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

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

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

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

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

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

Co-authored-by: Darshan Sen <raisinten@gmail.com>
2022-02-09 11:12:29 -05:00
trop[bot]
9d8dde5c76 docs: clarify meaning of cssOrigin (#32810)
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2022-02-08 12:59:17 -06:00
trop[bot]
f72efecf95 test: improve webContents.savePage() specs (#32745)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-02-08 12:59:45 +01:00
Sudowoodo Release Bot
5b45cb3f77 Bump v18.0.0-alpha.2 2022-02-07 06:13:30 -08:00
trop[bot]
ad2b136425 fix: WCO window hover on window controls on Windows (#32723)
* fix: WCO window hover on window controls

* Update shell/browser/ui/win/electron_desktop_window_tree_host_win.cc

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

* Trigger Build

Co-authored-by: clavin <clavin@electronjs.org>
Co-authored-by: Calvin <clavin@users.noreply.github.com>
Co-authored-by: Robo <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-02-03 09:46:32 -05:00
trop[bot]
94f4c18d7c fix: some frameless windows showing a frame on Windows (#32714)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2022-02-03 21:51:16 +09:00
trop[bot]
f7f41fee99 test: fix failing tests of focus/blur events of WebContents (#32724)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2022-02-02 18:32:37 -05:00
trop[bot]
907e9c8c0e docs: Update E18 release date (#32722)
Co-authored-by: Sofia Nguy <sofianguy@gmail.com>
2022-02-02 09:27:25 -08:00
Sudowoodo Release Bot
4d2968bfc1 Bump v18.0.0-alpha.1 2022-02-02 08:20:06 -08:00
Shelley Vohr
56c6d25e98 fix: crash on printer dialog cancellation (#32632)
* fix: crash on printer dialog cancellation

* fix: remove commented out code

* chore: address review
2022-02-01 20:00:09 +01:00
John Kleinschmidt
b346f909e7 ci: fixup gclient cache on ubuntu 20 (#32691)
* ci: fixup gclient cache on ubuntu 20

* ci: update to Ubuntu 20.04 docker image
2022-02-01 11:54:27 -05:00
Sudowoodo Release Bot
939bfa50f6 Bump v18.0.0-nightly.20220201 2022-02-01 05:01:37 -08:00
Tobias Nießen
2289a52fb3 docs: fix typo in BrowserWindow description (#32667) 2022-02-01 12:47:49 +01:00
Samuel Maddock
aeee9cfb78 feat: add focus and blur events for WebContents (#25873)
test: add focus and blur WebContents event tests

test: confirm that webcontents focus event is fired on browserwindow focus

fix: mac focus event test timeout
2022-02-01 19:28:57 +09:00
Paul Hollinsky
e34d7f5d6f docs: fix missing tag end in clipboard example (#32673) 2022-02-01 17:57:33 +09:00
Shelley Vohr
f5dc2a6535 fix: transparent window max/unmax event firing (#32643) 2022-01-31 22:10:57 +01:00
John Kleinschmidt
365933f1f3 fix: expose all serial devices to setDevicePermissionHandler (#32651) 2022-01-31 14:04:45 -05:00
Sudowoodo Release Bot
8e0e2d40e2 Bump v18.0.0-nightly.20220131 2022-01-31 05:01:27 -08:00
Milan Burda
db9ab80694 chore: update to latest TypeScript (#32596) 2022-01-31 20:37:40 +09:00
Harshil jain
32ae67c873 docs: update the build docs for electron to improve doc readability (#32663) 2022-01-31 20:36:47 +09:00
Marek Šuppa
c6d061c2d4 Update config.py (#32666)
* Fix missing comma
2022-01-31 10:57:52 +01:00
Harshil jain
d657cd8ed6 docs: Remove the latin words from doc (#32641) 2022-01-28 12:40:20 -08:00
Sudowoodo Release Bot
e693738f7c Bump v18.0.0-nightly.20220128 2022-01-28 05:02:11 -08:00
John Kleinschmidt
63908ccf89 Revert "ci: update to Ubuntu 20.04 docker image (#32614)" (#32656)
This reverts commit 8803e7f020.
2022-01-27 17:45:06 -05:00
Shelley Vohr
3768a7b25f fix: css transparent background being lost (#32593) 2022-01-27 15:56:35 +01:00
Sudowoodo Release Bot
86f8faea6b Bump v18.0.0-nightly.20220127 2022-01-27 05:01:10 -08:00
Mikael Finstad
20ed5701e9 docs: update context bridge docs about Promises and Errors (#32533)
* Update context bridge docs about Promises

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

* docs: Update docs for errors too
2022-01-27 20:23:40 +09:00
Jeremy Rose
16fcad3488 fix: maxWidth not being respected (#32628) 2022-01-26 14:00:17 -08:00
Ryan Gonzalez
7caa88c46f fix: Add support for Wayland window decorations (#29618)
Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2022-01-26 13:59:09 -08:00
dependabot[bot]
cabad35383 build(deps): bump node-fetch from 2.6.1 to 2.6.7 (#32599)
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 15:42:38 -05:00
WeiZhiHuang
8ec81c1437 fix webRequest.onBeforeSendHeaders' attributes (#32474)
Co-authored-by: Wayne Huang <zjason4202@gmail.com>
2022-01-26 11:41:54 -05:00
Balakrishna Avulapati
7f517ba878 docs: separate the dependency list for ubuntu (#32607) 2022-01-26 10:29:16 -05:00
Sudowoodo Release Bot
bac0a28324 Revert "Bump v18.0.0-nightly.20220126"
This reverts commit 4f6b8d06be.
2022-01-26 07:03:50 -08:00
Sudowoodo Release Bot
4f6b8d06be Bump v18.0.0-nightly.20220126 2022-01-26 05:03:03 -08:00
John Kleinschmidt
8803e7f020 ci: update to Ubuntu 20.04 docker image (#32614) 2022-01-25 16:06:41 -05:00
John Kleinschmidt
7814f96413 ci: update ts-compile-doc-change to properly use src cache (#32613) 2022-01-25 15:58:24 -05:00
Shelley Vohr
65bee9120f docs: correct requestSingleInstanceLock parameter (#32595) 2022-01-25 12:57:57 -08:00
John Kleinschmidt
335f24b0d0 fix: webContents.setZoomFactor crash (#32604) 2022-01-25 12:54:48 -08:00
Cheng Zhao
1cf36822e3 fix: make window without rounded corners closable (#32597) 2022-01-25 09:51:53 -05:00
Sudowoodo Release Bot
a0b7e30fe7 Bump v18.0.0-nightly.20220125 2022-01-25 05:01:35 -08:00
Michaela Laurencin
2f0d5651a9 feat: add WCO height option (#31222)
* feat: add WCO height option

* add docs and mac functionality

* add macOS functionality and height lowerbound

* Update docs/api/browser-window.md

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

* update macOS functionality

* add chromium related notes

* add test and fix pixel under button bug and fix typo

* revert changes to docs/api/frameless-window.md

* modify `useCustomHeight` calls

* update `useCustomHeight` and `getCurrentMargin`

* modify margin calculation

* fix minimum custom height on macOS

* Update window_buttons_proxy.mm

* fix specified traffic light positions

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2022-01-24 17:09:21 -05:00
Kevin
2fe5d0e1e8 feat: Added missing info to IAP transaction and product structures (#31739) 2022-01-24 08:55:18 -08:00
Matthew Rayermann
d26d337bb8 feat: add rawHeaders to IncomingMessage (#31853)
* Add response.rawHeaders to docs for IncomingMessage

* Remove trailing spaces

* Implement raw headers, add tests

* Fix lint issues

* Add example from NodeJS docs

* Fix lint issue in doc example

* Add missing #
2022-01-24 11:46:15 -05:00
Sudowoodo Release Bot
d1b48c0636 Bump v18.0.0-nightly.20220124 2022-01-24 05:01:18 -08:00
Milan Burda
9d054755d6 refactor: implement ajax() in tests using native fetch instead of jQuery (#32579) 2022-01-24 10:34:23 +01:00
Jeremy Rose
7032be660d fix: bundle a11y strings in resources (#32564) 2022-01-21 10:04:06 -08:00
Sudowoodo Release Bot
f5e138a5e3 Bump v18.0.0-nightly.20220121 2022-01-21 05:02:26 -08:00
Sudowoodo Release Bot
11a8a296b5 Revert "Bump v18.0.0-nightly.20220120"
This reverts commit d619804fc8.
2022-01-20 19:35:20 -08:00
John Kleinschmidt
6fb013fc10 ci: call autoninja without ninjalog_uploader_wrapper.py (#32569) 2022-01-20 19:58:04 -05:00
Jeremy Rose
87b3f6db9d fix: undisable AXTextMarker and related APIs on MAS (#32543) 2022-01-20 15:42:43 -08:00
John Kleinschmidt
6b41356868 test: disable flaky test on WOA (#32542) 2022-01-20 13:59:02 -05:00
Sudowoodo Release Bot
d619804fc8 Bump v18.0.0-nightly.20220120 2022-01-20 05:01:34 -08:00
Jeremy Rose
84e2460012 fix: strip crashpad_handler binary (#32540) 2022-01-19 19:48:48 -08:00
Shelley Vohr
df50a0efb1 fix: undefined backgroundColor (#32517) 2022-01-19 15:51:12 -05:00
Shelley Vohr
b89361a991 fix: crash when saving edited PDF files (#32512) 2022-01-19 12:58:32 -05:00
Sudowoodo Release Bot
edfadda899 Bump v18.0.0-nightly.20220119 2022-01-19 05:01:13 -08:00
dependabot[bot]
92bbac8ab6 build(deps): bump shelljs from 0.8.3 to 0.8.5 (#32481)
Bumps [shelljs](https://github.com/shelljs/shelljs) from 0.8.3 to 0.8.5.
- [Release notes](https://github.com/shelljs/shelljs/releases)
- [Changelog](https://github.com/shelljs/shelljs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/shelljs/shelljs/compare/v0.8.3...v0.8.5)

---
updated-dependencies:
- dependency-name: shelljs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-18 12:26:47 -05:00
David Sanders
4903d47ef3 docs: fix broken images for symbol server setup (#32485) 2022-01-18 12:14:48 -05:00
AN
ac0d6bdb1e Clarify will-redirect event doc (#32093) 2022-01-18 12:06:22 -05:00
Julia Nam
6860429bf4 Remove broken link and update CircleCI's name (#32448) 2022-01-18 12:02:35 -05:00
Sudowoodo Release Bot
015d54ac10 Bump v18.0.0-nightly.20220118 2022-01-18 05:01:15 -08:00
Sudowoodo Release Bot
b93f5fb066 Bump v18.0.0-nightly.20220117 2022-01-17 05:02:43 -08:00
David Sanders
0c75b3b2ea fix: check for maximized window before unmaximizings (#32438) 2022-01-17 16:47:14 +09:00
Shelley Vohr
2a8d49a059 fix: maximize/unmaximize firing on linux (#32441) 2022-01-17 16:46:52 +09:00
Jeremy Rose
6e6f5efad9 fix: re-enable PartitionAlloc on macOS (#32442)
* fix: re-enable PartitionAlloc on macOS

* no need to copy ignore_result on linux

* factor out FixStdioStreams

* include buildflags.h in electron_main_linux

* #include electron/fuses

* more missing includes
2022-01-17 16:46:33 +09:00
David Sanders
fac61122d5 docs: fix anchors for broken relative links (#32478) 2022-01-17 16:36:19 +09:00
Sudowoodo Release Bot
868794a6bd Bump v18.0.0-nightly.20220114 2022-01-14 05:01:00 -08:00
Takao Baba
f75a274019 fix: Corrupted title of alert dialog (#32434) 2022-01-13 16:23:36 -05:00
Shelley Vohr
7f4efb6747 fix: desktop screen capture on macOS not releasing (#32435) 2022-01-13 16:21:28 +01:00
Shelley Vohr
6c88e3b8e7 fix: optional postMessage transfer arg (#32433) 2022-01-13 14:52:48 +01:00
Sudowoodo Release Bot
1aaa0fad69 Bump v18.0.0-nightly.20220113 2022-01-13 05:01:31 -08:00
Charles Kerr
ddd66543f7 docs: explicitly allow string for MessageBoxOptions.icon (#32422)
Fixes #32390. See #19782 for context.
2022-01-13 10:30:15 +09:00
Gellert Hegyi
f4548985f4 fix: use setAspectRatio for frameless window on mac (#32287)
* fix(window): setAspectRatio for frameless windows

* dummy

* undo dummy

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2022-01-13 09:42:42 +09:00
David Sanders
506d82a902 chore: update IsWebContentsCreationOverridden patch (#32421) 2022-01-13 09:41:06 +09:00
Jeremy Rose
0a7bc4f5d1 feat: expose blowfish cipher family (#32356)
Closes #20238
2022-01-12 10:44:28 -08:00
Sudowoodo Release Bot
de436f040f Bump v18.0.0-nightly.20220112 2022-01-12 05:01:36 -08:00
Milan Burda
99ee1fc0eb fix: will-attach-webview handler modifying params.instanceId does not break <webview> (#32386) 2022-01-12 16:41:20 +09:00
David Sanders
cbe68bdbb8 chore: update DesktopMediaList patch (#32414) 2022-01-12 16:39:49 +09:00
David Sanders
2bbba9e242 chore: fix incorrect usage of reference (#32413) 2022-01-12 16:39:30 +09:00
David Sanders
94db8cd45e chore: update notification provenance patch (#32415) 2022-01-11 11:27:24 -08:00
Charles Kerr
5d90ff083f build: pin colors to v1.4.0 in package.json (#32420) 2022-01-11 11:24:54 -08:00
electron-roller[bot]
cb927af455 chore: bump node to v16.13.2 (main) (#32418)
* chore: bump node in DEPS to v16.13.2

* chore: update patches

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2022-01-11 10:12:30 -06:00
Sudowoodo Release Bot
d640260592 Bump v18.0.0-nightly.20220111 2022-01-11 05:01:39 -08:00
electron-roller[bot]
b0f315a637 chore: bump chromium to 99.0.4767.0 (main) (#31986)
* chore: bump chromium in DEPS to 98.0.4726.0

* 3292117: Remove unneeded base/compiler_specific.h includes in //chrome.

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

* 3289198: Enables calculating line, word and sentence boundaries on the browser

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

* 3276176: Remove expired gdi-text-printing flag and associated code.

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

* 3240963: content: allow embedder to prevent locking scheme registry

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

* 3269899: Rename WebContentsImpl::GetFrameTree to GetPrimaryFrameTree

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

* chore: fixup patch indices

* 3276279: Enable -Wshadow by default for the "chromium code" config.

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

* 3279737: appcache: Remove WebPreference/WebSetting

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

* 3275564: [api] Advance API deprecation for APIs last marked in v9.6

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

* 3261873: Clean up WebScriptSource constructors

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

* 3279346: appcache: Remove ConsoleMessage appcache field

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

* 3264212: Move legacy file loading to legacy_test_runner

https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3264212

Both Persistence and UI have been removed from globals, but the issues they
seemed to be patching are no longer reproducible from what I can tell, and
so we can just delete these and re-evaluate if something surfaces.

* 3290415: x11: remove the USE_X11 define.

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

* chore: bump Chromium to 98.0.4728.0

* 3179530: Defer system calls in PrintingContext for OOP printing

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

* 3299445: Consolidate is_win conditionals in chrome/test/BUILD.gn.

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

* chore: update patch indices

* 3223975: Break PrintJobWorker OOP logic into separate class

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

* chore: bump chromium in DEPS to 98.0.4730.0

* 3279001: Remove support for font-family: -webkit-pictograph

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

* chore: fixup patch indices

* chore: bump chromium in DEPS to 98.0.4732.0

* chore: update patches

* chore: bump chromium in DEPS to 98.0.4734.0

* chore: bump chromium in DEPS to 98.0.4736.0

* chore: update patches

* chore: update printing patch for miracle ptr

* chore: add noexcept to fix clang error

* chore: bump chromium in DEPS to 98.0.4738.0

* chore: update patches

* chore: bump chromium in DEPS to 98.0.4740.0

* chore: bump chromium in DEPS to 98.0.4742.0

* chore: bump chromium in DEPS to 98.0.4744.0

* chore: bump chromium in DEPS to 98.0.4746.0

* chore: bump chromium in DEPS to 98.0.4748.0

* chore: bump chromium in DEPS to 98.0.4750.0

* chore: update patches

* 3293841: Remove File Handling permissions code

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

* chore: update patches

3311700: Move the PpapiPluginSandboxedProcessLauncherDelegate | https://chromium-review.googlesource.com/c/chromium/src/+/3311700

* 3289260: [CodeHealth]: Remove uses of Notification Service

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

* 3301600: Disable scripted print in fenced frames

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

* chore: add missing thread_restrictions headers

* 3305132: Rewrite most `Foo* field_` pointer fields to `raw_ptr<Foo> field_`.

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

* fix: add ppapi_sandbox header for linux

3311700: Move the PpapiPluginSandboxedProcessLauncherDelegate | https://chromium-review.googlesource.com/c/chromium/src/+/3311700

* chore: manually bump chromium in DEPS to 98.0.4757.0

* chore: update patches

* 3321044: Remove DictionaryValue::Clear()
 Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3321044

* chore: update printing.patch
Refs:
- 3304556: [code health] Remove notification observation from PrintJob. | https://chromium-review.googlesource.com/c/chromium/src/+/3304556
- 3305095: [code health] Remove NotificationService from PrintViewManagerBase. | https://chromium-review.googlesource.com/c/chromium/src/+/3305095

* build: add v8-embedder-state headers to GN patch

* chore: bump chromium in DEPS to 99.0.4767.0

* chore: update patches

* chore: rename CookiePartitionKeychain

...to CookiePartitionKeyCollection

* chore: update video consumers

* refactor: use newer base::Value API

* 3232598: Convert net::DnsOverHttpsServerConfig into a class | https://chromium-review.googlesource.com/c/chromium/src/+/3232598

* 3327865: Remove the default WebContentsUserData ctor. | https://chromium-review.googlesource.com/c/chromium/src/+/3327865

* 3302814: DevTools: Add getPreference binding | https://chromium-review.googlesource.com/c/chromium/src/+/3302814

* 3301474: [tq][runtime] Use build flags for JS context promise hooks | https://chromium-review.googlesource.com/c/v8/v8/+/3301474

* oops 😵‍💫

* 3272411: Reland "base/allocator: Enable PartitionAlloc-Everywhere on macOS" | https://chromium-review.googlesource.com/c/chromium/src/+/3272411

build: turn PartitionAlloc back off on mac for now

* fix: WCO method got renamed

* 3344749: Revert "Stop using NSRunLoop in renderer process"

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

* 3288746: [serial] Fix BluetoothSerialDeviceEnumerator threading issues.

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

* Revert "3288746: [serial] Fix BluetoothSerialDeviceEnumerator threading issues."

This reverts commit 5cc69f102e43ca72ac9ef45063711bcc7d849740.

* chore: disable serial device enumerator sequence dcheck

* fix: comment out line in DeviceService dtor

* fixup! 3279001: Remove support for font-family: -webkit-pictograph

* fixup! 3279346: appcache: Remove ConsoleMessage appcache field

* chore: update patches after rebase

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: VerteDinde <khammond@slack-corp.com>
Co-authored-by: clavin <clavin@electronjs.org>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2022-01-10 17:31:39 -05:00
Romain Pokrzywka
483808a8cf fix: Support running git-[im,ex]port-patches with Python3 too (#32303)
* script: Python3 compatibility for utf8 conversion

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

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

The scripts work just fine with python3 too, so use the generic
python executable as the script interpreter.
Most setups don't even require or provide python 2 anymore,
so this saves one from having to install it just for the scripts.
2022-01-10 16:47:55 -05:00
Raymond Zhao
746927c972 feat: Add first-instance-ack event to the app.requestSingleInstanceLock() flow (#31460)
* feat: Add onFirstInstanceAck event for requestSingleInstanceLock

* Add tests

* Apply patch fix

* Add back missing docs

* Rebase

* Listen for exit earlier in test

* Rebase
2022-01-10 11:54:46 -05:00
Sudowoodo Release Bot
7c16ef1f62 Bump v18.0.0-nightly.20220110 2022-01-10 05:02:55 -08:00
Evan Hahn
ef058892bb docs: clarify case insensitive dictionary hosting (#32222)
You must either (1) have a case-insensitive file server (2) upload files in both casings. This improves the docs to clarify that.

[0]: https://github.com/electron/electron/issues/22482#issuecomment-593617375
2022-01-10 11:07:46 +01:00
David Sanders
bd861e5079 docs: fix note for will-move event (#32362) 2022-01-10 11:02:16 +01:00
Milan Burda
cb2c1f888e fix: incorrect skipTransformProcessType option parsing in win.setVisibleOnAllWorkspaces() (#32364) 2022-01-10 11:00:28 +01:00
Milan Burda
6d8a858897 docs: left is a valid mode in contents.openDevTools() options (#32372) 2022-01-10 10:50:18 +01:00
Sudowoodo Release Bot
948db1d881 Bump v18.0.0-nightly.20220107 2022-01-07 05:01:26 -08:00
Tommy MacWilliam
824c909e2a fix: Allow npm_config_arch override on mac (#32266)
If the npm_config_arch environment variable is set on Mac, then use the
specified architecture rather than overriding it to x64.
2022-01-07 17:53:15 +09:00
Milan Burda
7678a0aebb chore: cleanup spec-main/ambient.d.ts (#32363) 2022-01-07 17:52:47 +09:00
Raymond Zhao
88ae6c0635 fix: Don't create console window when creating process (#32340)
* fix: Don't create console window when creating process

* Update patches/node/fix_don_t_create_console_window_when_creating_process.patch

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

* Remove extra line in description

Co-authored-by: Robo <hop2deep@gmail.com>
2022-01-07 17:38:34 +09:00
Jeremy Rose
a015332342 fix: drop nativeWindowOpen deprecation warning (#32370) 2022-01-06 12:01:55 -08:00
Mitchell Cohen
5af6b898d9 feat: add Substitutions menu roles on macOS (#32024) 2022-01-06 10:41:28 -08:00
Jeremy Rose
d44a187d0b feat: remove nativeWindowOpen option (#29405)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2022-01-06 09:28:03 -08:00
Milan Burda
2f9fd06534 chore: deprecate nativeWindowOpen in Electron 17 (#32116) 2022-01-06 05:08:59 -08:00
Sudowoodo Release Bot
c3b9f0e7b2 Bump v18.0.0-nightly.20220106 2022-01-06 05:01:49 -08:00
MikeBusuttil
c1c710bc01 docs: improve BrowserView example (#32098)
* working example

previous example not beginner-friendly

* Update browser-view.md

Co-authored-by: Cheng Zhao <github@zcbenz.com>
2022-01-06 12:09:36 +09:00
Timothy
30e0620ccc docs: fix wording on testing documentation (#32279) 2022-01-06 09:24:52 +09:00
Keeley Hammond
b61805b63a fix: use allocationtype kold in v8 scriptormodule legacy lifetime (#32339) 2022-01-05 11:43:28 -08:00
Sudowoodo Release Bot
dd4eae8a3b Bump v18.0.0-nightly.20220105 2022-01-05 05:01:56 -08:00
vulture
62c1c86be9 Rename patch file to .patch to conform to naming standard which utilizes .gitattributes settings (#32324)
Co-authored-by: stsean <stsean@justin.tv>
2022-01-05 10:36:48 +01:00
Sudowoodo Release Bot
b63c190fe6 Bump v18.0.0-nightly.20220104 2022-01-04 05:01:25 -08:00
Shubham Kumar
cbdb2e6ec2 fix: #32141 register wrong command for setAsDefaultProtocolClient for windows (#32220) 2022-01-04 10:47:28 +09:00
Maciej Krawczyk
84f1d78558 docs: correct webFrame description (#32205)
The current description incorrectly states that the webFrame export represents the top frame but it actually represents the current frame.
2022-01-04 10:12:55 +09:00
Darshan Sen
4600d7e7f6 fix: crash caused by app.getLocaleCountryCode() (#32256)
CFLocaleGetValue() returned null and crashed the process when
app.getLocaleCountryCode() was run on a CircleCI metal resource class
macOS instance with Xcode 12.5.1. This change fixes that logic and adds
further checks to make the code future-proof.

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

Signed-off-by: Darshan Sen <darshan.sen@postman.com>
2022-01-03 13:54:58 -08:00
Duncan Hewett
2c700da4de docs: add Bugsnag as a 3rd party crash server (#32053) 2022-01-03 14:48:15 -05:00
Oran C
195d2b5b3e [fix] Docs rendering issue with rendering on electronjs quick-start (#32293)
there is a issue with rendering on the bottom of page https://www.electronjs.org/docs/v14-x-y/tutorial/quick-start
which looks like this
![](https://dl3.pushbulletusercontent.com/MXsLhjaoKRj1bhu4R73E3WLiuKCBMkgh/image.png)

all id did is remove the spacing and it should fix the issue. sometimes having spaces before a "```" will cause issues

hope this helps!
2022-01-03 11:18:02 -08:00
Romain Pokrzywka
727453ef04 build: remove stale dependency for webrtc desktop capture module (#32304)
WebRTC has changed how they integrate into Chromium, they don't
expose their dependencies externally anymore. Instead, one must
now go through webrtc_overrides:
https://chromium.googlesource.com/chromium/src.git/+/cbc90fd093956

We're already including webrtc_overrides as a dependency which
includes the modules, so this extra deps isn't needed anymore.
2022-01-03 11:57:00 -05:00
Sudowoodo Release Bot
84451e7daf Bump v18.0.0-nightly.20220103 2022-01-03 05:04:24 -08:00
ganthern
f766bb483d docs: fix typo in bug report issue template (#32208) 2022-01-03 10:35:19 +01:00
Jack Nemitz
1d8612ad5d Fix typo in quick-start.md (#32282)
Resolve a grammar issue in the quick-start guide.
2022-01-03 09:59:55 +01:00
Sudowoodo Release Bot
ac39cb14e9 Bump v18.0.0-nightly.20211231 2021-12-31 05:01:03 -08:00
Sudowoodo Release Bot
f1b0d30d8d Bump v18.0.0-nightly.20211229 2021-12-29 05:01:36 -08:00
Sudowoodo Release Bot
d59a4a0771 Bump v18.0.0-nightly.20211228 2021-12-28 05:01:13 -08:00
Sudowoodo Release Bot
6b2adea867 Revert "Bump v18.0.0-nightly.20211227"
This reverts commit 66a55ba778.
2021-12-27 11:35:06 -08:00
Sudowoodo Release Bot
66a55ba778 Bump v18.0.0-nightly.20211227 2021-12-27 05:01:32 -08:00
Sudowoodo Release Bot
f17e8996ac Bump v18.0.0-nightly.20211223 2021-12-23 05:02:41 -08:00
Sudowoodo Release Bot
b433163d7a Bump v18.0.0-nightly.20211222 2021-12-22 05:04:57 -08:00
Sudowoodo Release Bot
79eaef4aab Bump v18.0.0-nightly.20211221 2021-12-21 05:01:15 -08:00
Sudowoodo Release Bot
2b25e737a7 Bump v18.0.0-nightly.20211220 2021-12-20 05:02:21 -08:00
Keeley Hammond
ffbaa1d83f fix: check for single bluetooth listener (#32240) 2021-12-17 16:55:43 -08:00
Sudowoodo Release Bot
909dbe6890 Bump v18.0.0-nightly.20211217 2021-12-17 05:01:12 -08:00
electron-roller[bot]
eaae6c1553 chore: bump node to v16.13.1 (main) (#32086)
* chore: bump node in DEPS to v16.13.1

* update patches

* update c-ares BUILD.gn

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: clavin <clavin@electronjs.org>
2021-12-16 14:41:25 -08:00
Micha Hanselmann
e9420982d2 fix: older systems crash when playing media files (#32046)
* fix: win7 crash when playing media

* reset

* chore: update patches

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2021-12-16 09:23:30 -08:00
Sudowoodo Release Bot
c1b3b3064b Bump v18.0.0-nightly.20211216 2021-12-16 05:00:36 -08:00
Samuel Attard
a11f5cbb27 fix: ensure bluetooth devices are not returned by default (#32178) 2021-12-15 11:46:48 -08:00
Sudowoodo Release Bot
1facbb4a09 Bump v18.0.0-nightly.20211215 2021-12-15 05:02:27 -08:00
Dennis
d5b6a2f800 Update discord url to electronjs (#32173)
The discord url in this page is discord.gg/electron, which refers to a (supposed) roblox scripting group.
2021-12-14 13:25:56 -08:00
Sudowoodo Release Bot
292409a301 Bump v18.0.0-nightly.20211214 2021-12-14 05:01:26 -08:00
Sudowoodo Release Bot
f887ca0082 Bump v18.0.0-nightly.20211213 2021-12-13 05:01:46 -08:00
stephen9357
6d9e2e3ad0 docs: Fix environment variable name (#32094)
The names of environment variables are case-sensitive on Linux and Mac.
2021-12-13 15:42:43 +09:00
Sudowoodo Release Bot
c4e471fbe2 Bump v18.0.0-nightly.20211210 2021-12-10 05:02:25 -08:00
Sudowoodo Release Bot
1341b0a6b7 Bump v18.0.0-nightly.20211209 2021-12-09 05:01:05 -08:00
Sudowoodo Release Bot
cf0959f834 Bump v18.0.0-nightly.20211208 2021-12-08 05:01:41 -08:00
Sudowoodo Release Bot
f615075847 Bump v18.0.0-nightly.20211207 2021-12-07 14:57:31 -08:00
Sudowoodo Release Bot
d53399ea31 Revert "Bump v18.0.0-nightly.20211207"
This reverts commit df7eb209a5.
2021-12-07 08:21:50 -08:00
Sudowoodo Release Bot
df7eb209a5 Bump v18.0.0-nightly.20211207 2021-12-07 05:01:42 -08:00
Sudowoodo Release Bot
12c5b9eaac Bump v18.0.0-nightly.20211206 2021-12-06 05:01:29 -08:00
Cheng Zhao
35ac7fb8e6 fix: window.open not overriding parent's webPreferences (#32057)
* fix: window.open not overriding parent's webPreferences

* test: remove "nativeWindowOpen: false" from renderer tests
2021-12-06 12:54:14 +09:00
Milan Burda
77287febf4 refactor: use process type specific electron imports in default_app (#32097) 2021-12-06 11:44:41 +09:00
fengmk2
f46e9c3205 docs: change China mirror domain to npmmirror.com (#32076) 2021-12-06 11:28:41 +09:00
Sudowoodo Release Bot
f3df76dbdc Bump v18.0.0-nightly.20211203 2021-12-03 05:02:32 -08:00
Sudowoodo Release Bot
0c5b01f5f6 Bump v18.0.0-nightly.20211202 2021-12-02 05:05:03 -08:00
Tristan Partin
eabfd6c1b9 fix: gtk_native_dialog_run() calls show() internally (#32049)
In the synchronous code path, gtk_native_dialog_run() will call
gtk_native_dialog_show(). Previously this was causing an assertion to be
hit at run time.
2021-12-01 20:19:36 -08:00
Sudowoodo Release Bot
cce427dc46 Bump v18.0.0-nightly.20211201 2021-12-01 05:00:57 -08:00
Samuel Attard
ed7f9ad5c2 fix: avoid double call in OnRefreshComplete on aura platforms (#32052) 2021-11-30 15:12:39 -08:00
Black-Hole
bc8cfbac59 docs: add debug build (#31979)
* docs: add debug build

* docs: move debug config document to debugging.md

* fix: debug.gn import failed

* docs: modify debug.gn folder on doc

* docs: imporve gn import path
2021-11-30 16:40:58 -05:00
Sudowoodo Release Bot
3d34fd7c91 Bump v18.0.0-nightly.20211130 2021-11-30 11:14:36 -08:00
Sudowoodo Release Bot
ab92455fc8 Revert "Bump v18.0.0-nightly.20211130"
This reverts commit 90410e0419.
2021-11-30 09:49:21 -08:00
Sudowoodo Release Bot
90410e0419 Bump v18.0.0-nightly.20211130 2021-11-30 09:18:59 -08:00
Keeley Hammond
83a4b234d7 build: account for path-filtering workflow in release-build script (#32063)
* build: account for path-filtering workflow in release-build script

* build: update syntax for workflow id

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

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2021-11-30 09:17:04 -08:00
Sudowoodo Release Bot
3278ff6a05 Revert "Bump v18.0.0-nightly.20211130"
This reverts commit 395b43b293.
2021-11-30 09:16:09 -08:00
Sudowoodo Release Bot
395b43b293 Bump v18.0.0-nightly.20211130 2021-11-30 05:00:57 -08:00
Keeley Hammond
43f36b5b24 build: add CI path-filtering for docs-only changes (#31741)
build: (wip) initial dynamic config research

* build: (wip) test path filtering option

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

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

* build: (wip) clean up config

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

* build: re-add steps and commands

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

* build: re-add workflows and jobs

* build: split configs to setup & build

* build: move lint to "always run" config

* build: clean up, remove old reference config

* build: bump to path-filtering 0.1.0

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

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

* build: don't run build on publish

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

* build: update config from chromium roll
2021-11-29 18:09:07 -05:00
Sudowoodo Release Bot
46634bc0f2 Bump v18.0.0-nightly.20211129 2021-11-29 05:03:23 -08:00
Sudowoodo Release Bot
24d272ca41 Bump v18.0.0-nightly.20211126 2021-11-26 05:01:27 -08:00
Erick Zhao
b4b0667d52 chore: make Discord invite non-vanity (#31991) 2021-11-26 13:10:07 +13:00
Sudowoodo Release Bot
4609d4cb7a Bump v18.0.0-nightly.20211125 2021-11-25 05:01:26 -08:00
Sudowoodo Release Bot
3834aaf4e9 Bump v18.0.0-nightly.20211124 2021-11-24 12:47:25 -08:00
John Kleinschmidt
f1b8f9692d chore: update patches (#31988) 2021-11-24 15:35:48 -05:00
Sudowoodo Release Bot
b49a9629c0 Revert "Bump v18.0.0-nightly.20211124"
This reverts commit e53f1af97e.
2021-11-24 07:28:53 -08:00
Sudowoodo Release Bot
e53f1af97e Bump v18.0.0-nightly.20211124 2021-11-24 05:02:04 -08:00
electron-roller[bot]
bd10b19b0c chore: bump chromium to 98.0.4706.0 (main) (#31555)
* chore: bump chromium in DEPS to 97.0.4678.0

* chore: bump chromium in DEPS to 97.0.4679.0

* chore: bump chromium in DEPS to 97.0.4680.0

* chore: bump chromium in DEPS to 97.0.4681.0

* chore: bump chromium in DEPS to 97.0.4682.0

* chore: update patches

* 3234737: Disable -Wunused-but-set-variable

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

* 3216953: Reland "Move task-related files from base/ to base/task/"

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

* 3202710: TimeDelta factory function migration.

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

* 3226841: Rename WCO::RenderProcessGone to PrimaryMainFrameRenderProcessGone

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

* 3212165: blink/gin: changes blink to load snapshot based on runtime information

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

* 3220292: Deprecate returning a GURL from GURL::GetOrigin()

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

* 3231995: build: Enable -Wbitwise-instead-of-logical everywhere except iOS and Windows

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

* 3205121: Remove base::DictionaryValue::GetDouble

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

* 3208413: [flags] Make --js-flags settings have priority over V8 features

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

* chore: bump chromium in DEPS to 97.0.4683.0

* chore: update patches

* 3188834: Combine RWHVBase GetCurrentDeviceScaleFactor/GetDeviceScaleFactor

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

* chore: update process_singleton patches

* chore: bump chromium in DEPS to 97.0.4684.0

* chore: update patches

* chore: bump chromium in DEPS to 97.0.4685.0

* chore: update patches

* chore: bump chromium in DEPS to 97.0.4686.0

* chore: update patches

* chore: bump chromium in DEPS to 97.0.4687.0

* chore: update patches

* chore: bump chromium in DEPS to 97.0.4688.0

* chore: update patches

* 3247722: Use correct source_site_instance if navigating via context menu

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

Update signature of HandleContextMenu()

* 3247722: Use correct source_site_instance if navigating via context menu

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

Update signature of HandleContextMenu()

* 3223422: Remove PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_PLUGINPRIVATE enum option

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

sync pepper_plugin_support.patch with upstream

* chore: bump chromium in DEPS to 97.0.4689.0

* 3247791: ax_mac_merge: Merge AX Math attribute implementations

Xref: ax_mac_merge: Merge AX Math attribute implementations

chore: fix minor patch shear in #includes

* 3243425: Add VisibleTimeRequestTrigger helper class

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

chore: fix minor patch shear in #includes

* chore: regen chromium patches

* fixup! 3247722: Use correct source_site_instance if navigating via context menu

* chore: bump chromium in DEPS to 97.0.4690.0

* 3188659: Window Placement: make GetScreenInfo(s) const

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

simple sync GetScreenInfo with upstream refactor

* chore: update patches

* chore: bump chromium in DEPS to 97.0.4690.4

* chore: bump chromium in DEPS to 97.0.4692.0

* 3198073: ozone: //content: clean up from USE_X11

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

Fixing patch shear. Nothing to see here.

* 3252338: Remove label images checkbox from chrome://accessibility page

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

Part of our a11y patch is no longer needed due to upstream label removal

* 3258183: Remove DISALLOW_IMPLICIT_CONSTRUCTORS() definition

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

Replace our use of the macro with explicitly-deleted class methods.
See https://chromium-review.googlesource.com/c/chromium/src/+/3256952
for upstream examples of this same replacement.

* chore: update patches

* 3247295: Unwind SecurityStyleExplanations

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

update GetSecurityStyle() signature and impl to match upstream changes

* 3259578: media: grabs lock to ensure video output when occluded

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

Add stub for new upstream virtual method OnCapturerCountChanged()

* fixup! 3247295: Unwind SecurityStyleExplanations

* 3238504: Fix up drag image is not shown from bookmark bar

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

SetDragImage() no longer takes a widget argument

* 3217452: [devtools] Add getSyncInformation host binding

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

Add stub for new upstream method GetSyncInformation(). Stub sends info back to caller saying that syncing is disabled.

* chore: bump chromium in DEPS to 98.0.4693.0

* chore: bump chromium in DEPS to 98.0.4694.0

* chore: bump chromium in DEPS to 98.0.4695.0

* chore: bump chromium in DEPS to 98.0.4696.0

* chore: bump chromium in DEPS to 98.0.4697.0

* chore: bump chromium in DEPS to 98.0.4699.0

* chore: bump chromium in DEPS to 98.0.4701.0

* chore: bump chromium in DEPS to 98.0.4703.0

* chore: bump chromium in DEPS to 98.0.4705.0

* chore: bump chromium in DEPS to 98.0.4706.0

* chore: update patches

* 3279210: Rename "base/macros.h" => "base/ignore_result.h"

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

* 3259964: Remove all DISALLOW_COPY_AND_ASSIGNs

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

* 3269029: blink/gin: sets histogram callbacks during isolate creation

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

* fixup after rebase

* [content] Make ContentMainParams and MainFunctionParams move-only

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

* 3255305: Stop sending the securityStateChanged event and unwind

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

* [Blink] Add promise support to WebLocalFrame::RequestExecuteScript()

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

* 3256162: Simplify RWHV Show and ShowWithVisibility handling

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

* 3263824: ozone: //ui/base: clean up from USE_X11 1/*

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

* Request or cancel RecordContentToPresentationTimeRequest during capture

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

* appcache: remove BrowsingData/quota references

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

* [Autofill] Don't show Autofill dropdown if overlaps with permissions

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

* Rename to_different_document to should_show_loading_ui in LoadingStateChanged() callbacks

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

* cleanup patch

* fixup [content] Make ContentMainParams and MainFunctionParams move-only

* 3279210: Rename "base/macros.h" => "base/ignore_result.h"

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

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

https://chromium-review.googlesource.com/c/chromium/src/+/3186490
Refs: https://github.com/electron/electron/issues/31382

* chore: update support_mixed_sandbox_with_zygote.patch

* Enable -Wunused-but-set-variable.

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

* fixup! ozone: //ui/base: clean up from USE_X11 1/*

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

* chore: fix deprecation warning in libuv

* chore: fixup for lint

* 3251161: Reland "Make the Clang update.py script require Python 3"

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

* fixup: Enable -Wunused-but-set-variable.

* [base][win] Rename DIR_APP_DATA to DIR_ROAMING_APP_DATA

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

* Replace sandbox::policy::SandboxType with mojom Sandbox enum

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

* fixup: [content] Make ContentMainParams and MainFunctionParams move-only

* build: ensure angle has a full git checkout available to it

* fixup: [base][win] Rename DIR_APP_DATA to DIR_ROAMING_APP_DATA

* fixup lint

* [unseasoned-pdf] Dispatch 'afterprint' event in PDF plugin frame

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

* fixup: [Autofill] Don't show Autofill dropdown if overlaps with permissions

* 3217591: Move browser UI CSS color parsing to own file part 2/2

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

* Make kNoSandboxAndElevatedPrivileges only available to utilities

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

* 3211575: [modules] Change ScriptOrModule to custom Struct

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

* Address review feedback

* chore: update patches

* 3211575: [modules] Change ScriptOrModule to custom Struct

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

* fix: unused variable compat

* chore: remove redundant patch

* fixup for 3262517: Re-enable WindowCaptureMacV2

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

* chore: cleanup todo

The functions added in https://chromium-review.googlesource.com/c/chromium/src/+/3256802 are not used by offscreen rendering.

* fixup: update mas_no_private_api.patch

* 3216879: [PA] Make features::kPartitionAllocLazyCommit to be PartitionOptions::LazyCommit

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3216879 Fixes up commit b2f1aca956

* chore: cleanup support_mixed_sandbox_with_zygote.patch

* test: use window focus event instead of delay to wait for webContents focus

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: VerteDinde <khammond@slack-corp.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2021-11-24 09:45:59 +01:00
Erick Zhao
065cad6d2c docs: add playwright e2e testing docs (#31961) 2021-11-23 11:47:24 -08:00
Robo
9ab102e156 fix: console windows from ELECTRON_RUN_AS_NODE instances (#31963) 2021-11-23 09:34:07 -08:00
Sudowoodo Release Bot
681fe435fe Bump v18.0.0-nightly.20211123 2021-11-23 05:01:47 -08:00
Sudowoodo Release Bot
4713acce8d Bump v18.0.0-nightly.20211122 2021-11-22 05:00:55 -08:00
CezaryKulakowski
557e586667 fix: fix aspect ratio when max width/height is set (#29101)
Add the native frame border size to the minimum and maximum size if
the view reports its size as the client size. It allows to enlarge
window to proper values when aspect ratio and max width/height are
set. It also fixes DCHECK which was triggered when user tried to
enlarge window above dimensions set during creation of the
BrowserWindow.
2021-11-22 18:31:21 +09:00
Milan Burda
c4ea33d1bf chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
dependabot[bot]
0865267387 build(deps-dev): bump aws-sdk from 2.727.1 to 2.814.0 (#31867)
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.727.1 to 2.814.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js/compare/v2.727.1...v2.814.0)

---
updated-dependencies:
- dependency-name: aws-sdk
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-22 09:50:36 +09:00
Shelley Vohr
239ba7d905 fix: BrowserView setBackgroundColor needs two calls (#31863) 2021-11-22 09:38:05 +09:00
Black-Hole
38d2ec0cb6 fix: ninja build failed on some system (#31887) 2021-11-22 09:37:13 +09:00
Milan Burda
7ff15038d6 fix: lint Objective-C header files (#31923) 2021-11-22 09:36:32 +09:00
Sudowoodo Release Bot
98a5996b30 Bump v18.0.0-nightly.20211119 2021-11-19 05:02:11 -08:00
Sudowoodo Release Bot
eb56209206 Bump v18.0.0-nightly.20211118 2021-11-18 05:01:32 -08:00
Keeley Hammond
0cb46a3712 fix: add resource strings for file selection (#31881) 2021-11-17 14:13:49 -08:00
Keeley Hammond
3e71310a9f chore: update nmv to 103 for Electron 18 (#31778) 2021-11-17 11:35:00 -08:00
Sergey Zolotarev
9f12edac65 Fix typo in distribution docs (#31791) 2021-11-17 12:20:24 -06:00
1074 changed files with 30894 additions and 11731 deletions

1
.circleci/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
config-staging

File diff suppressed because it is too large Load Diff

2416
.circleci/config/base.yml Normal file

File diff suppressed because it is too large Load Diff

34
.circleci/config/build.js Normal file
View File

@@ -0,0 +1,34 @@
const cp = require('child_process');
const fs = require('fs-extra');
const path = require('path');
const yaml = require('js-yaml');
const STAGING_DIR = path.resolve(__dirname, '..', 'config-staging');
function copyAndExpand(dir = './') {
const absDir = path.resolve(__dirname, dir);
const targetDir = path.resolve(STAGING_DIR, dir);
if (!fs.existsSync(targetDir)) {
fs.mkdirSync(targetDir);
}
for (const file of fs.readdirSync(absDir)) {
if (!file.endsWith('.yml')) {
if (fs.statSync(path.resolve(absDir, file)).isDirectory()) {
copyAndExpand(path.join(dir, file));
}
continue;
}
fs.writeFileSync(path.resolve(targetDir, file), yaml.dump(yaml.load(fs.readFileSync(path.resolve(absDir, file), 'utf8')), {
noRefs: true,
}));
}
}
if (fs.pathExists(STAGING_DIR)) fs.removeSync(STAGING_DIR);
copyAndExpand();
const output = cp.spawnSync(process.env.CIRCLECI_BINARY || 'circleci', ['config', 'pack', STAGING_DIR]);
fs.writeFileSync(path.resolve(STAGING_DIR, 'built.yml'), output.stdout.toString());

View File

@@ -0,0 +1,51 @@
executor:
name: linux-docker
size: medium
steps:
- checkout:
path: src/electron
- run:
name: Setup third_party Depot Tools
command: |
# "depot_tools" has to be checkout into "//third_party/depot_tools" so pylint.py can a "pylintrc" file.
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git src/third_party/depot_tools
echo 'export PATH="$PATH:'"$PWD"'/src/third_party/depot_tools"' >> $BASH_ENV
- run:
name: Download GN Binary
command: |
chromium_revision="$(grep -A1 chromium_version src/electron/DEPS | tr -d '\n' | cut -d\' -f4)"
gn_version="$(curl -sL "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/DEPS?format=TEXT" | base64 -d | grep gn_version | head -n1 | cut -d\' -f4)"
cipd ensure -ensure-file - -root . \<<-CIPD
\$ServiceURL https://chrome-infra-packages.appspot.com/
@Subdir src/buildtools/linux64
gn/gn/linux-amd64 $gn_version
CIPD
echo 'export CHROMIUM_BUILDTOOLS_PATH="'"$PWD"'/src/buildtools"' >> $BASH_ENV
- run:
name: Download clang-format Binary
command: |
chromium_revision="$(grep -A1 chromium_version src/electron/DEPS | tr -d '\n' | cut -d\' -f4)"
sha1_path='buildtools/linux64/clang-format.sha1'
curl -sL "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/${sha1_path}?format=TEXT" | base64 -d > "src/${sha1_path}"
download_from_google_storage.py --no_resume --no_auth --bucket chromium-clang-format -s "src/${sha1_path}"
- run:
name: Run Lint
command: |
# gn.py tries to find a gclient root folder starting from the current dir.
# When it fails and returns "None" path, the whole script fails. Let's "fix" it.
touch .gclient
# Another option would be to checkout "buildtools" inside the Electron checkout,
# but then we would lint its contents (at least gn format), and it doesn't pass it.
cd src/electron
node script/yarn install --frozen-lockfile
node script/yarn lint
- run:
name: Run Script Typechecker
command: |
cd src/electron
node script/yarn tsc -p tsconfig.script.json

View File

@@ -0,0 +1,10 @@
{
"name": "@electron/circleci-config",
"version": "0.0.0",
"private": true,
"license": "MIT",
"dependencies": {
"fs-extra": "^10.1.0",
"js-yaml": "^4.1.0"
}
}

View File

@@ -0,0 +1,43 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
argparse@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
fs-extra@^10.1.0:
version "10.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf"
integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
dependencies:
graceful-fs "^4.2.0"
jsonfile "^6.0.1"
universalify "^2.0.0"
graceful-fs@^4.1.6, graceful-fs@^4.2.0:
version "4.2.10"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
js-yaml@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
dependencies:
argparse "^2.0.1"
jsonfile@^6.0.1:
version "6.1.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
dependencies:
universalify "^2.0.0"
optionalDependencies:
graceful-fs "^4.1.6"
universalify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==

2
.github/CODEOWNERS vendored
View File

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

View File

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

View File

@@ -0,0 +1,178 @@
name: Electron WOA Testing
on:
push:
branches: '**'
workflow_dispatch:
inputs:
appveyor_job_id:
description: 'Job Id of Appveyor WOA job to test'
type: text
required: true
jobs:
electron-woa-init:
if: ${{ github.event_name == 'push' && github.repository == 'electron/electron' }}
runs-on: ubuntu-latest
steps:
- name: Dummy step for push event
run: |
echo "This job is a needed initialization step for Electron WOA testing. Another test result will appear once the electron-woa-testing build is done."
electron-woa-testing:
if: ${{ github.event_name == 'workflow_dispatch' && github.repository == 'electron/electron' }}
runs-on: [self-hosted, woa]
permissions:
checks: write
pull-requests: write
steps:
- uses: LouisBrunner/checks-action@v1.1.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: electron-woa-testing
status: in_progress
details_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
output: |
{"summary":"Test In Progress","text_description":"See job details here: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}
- name: Clean Workspace
run: |
Remove-Item * -Recurse -Force
shell: powershell
- name: Checkout
uses: actions/checkout@v3
with:
path: src\electron
fetch-depth: 0
- name: Yarn install
run: |
cd src\electron
node script/yarn.js install --frozen-lockfile
- name: Download and extract dist.zip for test
run: |
$localArtifactPath = "$pwd\dist.zip"
$serverArtifactPath = "https://ci.appveyor.com/api/buildjobs/${{ inputs.appveyor_job_id }}/artifacts/dist.zip"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer ${{ secrets.APPVEYOR_TOKEN }}" }
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -osrc\out\Default -y $localArtifactPath
shell: powershell
- name: Download and extract native test executables for test
run: |
$localArtifactPath = "src\out\Default\shell_browser_ui_unittests.exe"
$serverArtifactPath = "https://ci.appveyor.com/api/buildjobs/${{ inputs.appveyor_job_id }}/artifacts/shell_browser_ui_unittests.exe"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer ${{ secrets.APPVEYOR_TOKEN }}" }
shell: powershell
- name: Download and extract ffmpeg.zip for test
run: |
$localArtifactPath = "$pwd\ffmpeg.zip"
$serverArtifactPath = "https://ci.appveyor.com/api/buildjobs/${{ inputs.appveyor_job_id }}/artifacts/ffmpeg.zip"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer ${{ secrets.APPVEYOR_TOKEN }}" }
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -osrc\out\ffmpeg $localArtifactPath
shell: powershell
- name: Download node headers for test
run: |
$localArtifactPath = "src\node_headers.zip"
$serverArtifactPath = "https://ci.appveyor.com/api/buildjobs/${{ inputs.appveyor_job_id }}/artifacts/node_headers.zip"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer ${{ secrets.APPVEYOR_TOKEN }}" }
cd src
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -y node_headers.zip
shell: powershell
- name: Download electron.lib for test
run: |
$localArtifactPath = "src\out\Default\electron.lib"
$serverArtifactPath = "https://ci.appveyor.com/api/buildjobs/${{ inputs.appveyor_job_id }}/artifacts/electron.lib"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer ${{ secrets.APPVEYOR_TOKEN }}" }
shell: powershell
# Uncomment the following block if pdb files are needed to debug issues
# - name: Download pdb files for detailed stacktraces
# if: ${{ github.event_name == 'workflow_dispatch' }}
# run: |
# try {
# $localArtifactPath = "src\pdb.zip"
# $serverArtifactPath = "https://ci.appveyor.com/api/buildjobs/${{ inputs.appveyor_job_id }}/artifacts/pdb.zip"
# Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer ${{ secrets.APPVEYOR_TOKEN }}" }
# cd src
# & "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -y pdb.zip
# } catch {
# Write-Host "There was an exception encountered while downloading pdb files:" $_.Exception.Message
# } finally {
# $global:LASTEXITCODE = 0
# }
# shell: powershell
- name: Setup node headers
run: |
New-Item src\out\Default\gen\node_headers\Release -Type directory
Copy-Item -path src\out\Default\electron.lib -destination src\out\Default\gen\node_headers\Release\node.lib
shell: powershell
- name: Run Electron Main process tests
run: |
cd src
set npm_config_nodedir=%cd%\out\Default\gen\node_headers
set npm_config_arch=arm64
cd electron
node script/yarn test --runners=main --enable-logging --disable-features=CalculateNativeWinOcclusion
env:
ELECTRON_ENABLE_STACK_DUMPING: true
ELECTRON_OUT_DIR: Default
IGNORE_YARN_INSTALL_ERROR: 1
ELECTRON_TEST_RESULTS_DIR: junit
MOCHA_MULTI_REPORTERS: 'mocha-junit-reporter, tap'
MOCHA_REPORTER: mocha-multi-reporters
ELECTRON_SKIP_NATIVE_MODULE_TESTS: true
- name: Run Electron Remote based tests
if: ${{ success() || failure() }}
run: |
cd src
set npm_config_nodedir=%cd%\out\Default\gen\node_headers
set npm_config_arch=arm64
cd electron
node script/yarn test --runners=remote --enable-logging --disable-features=CalculateNativeWinOcclusion
env:
ELECTRON_OUT_DIR: Default
IGNORE_YARN_INSTALL_ERROR: 1
ELECTRON_TEST_RESULTS_DIR: junit
MOCHA_MULTI_REPORTERS: 'mocha-junit-reporter, tap'
MOCHA_REPORTER: mocha-multi-reporters
ELECTRON_SKIP_NATIVE_MODULE_TESTS: true
- name: Verify ffmpeg
run: |
cd src
echo "Verifying non proprietary ffmpeg"
python electron\script\verify-ffmpeg.py --build-dir out\Default --source-root %cd% --ffmpeg-path out\ffmpeg
shell: cmd
- name: Kill processes left running from last test run
if: ${{ always() }}
run: |
Get-Process | Where Name -Like "electron*" | Stop-Process
Get-Process | Where Name -Like "msedge*" | Stop-Process
shell: powershell
- name: Delete user app data directories
if: ${{ always() }}
run: |
Remove-Item -path $env:APPDATA/Electron* -Recurse -Force -ErrorAction Ignore
shell: powershell
- uses: LouisBrunner/checks-action@v1.1.1
if: ${{ success() }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: electron-woa-testing
conclusion: "${{ job.status }}"
details_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
output: |
{"summary":"${{ job.status }}","text_description":"See job details here: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}
- uses: LouisBrunner/checks-action@v1.1.1
if: ${{ success() }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: electron-woa-testing
conclusion: "${{ job.status }}"
details_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
output: |
{"summary":"Job Succeeded","text_description":"See job details here: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}
- uses: LouisBrunner/checks-action@v1.1.1
if: ${{ ! success() }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: electron-woa-testing
conclusion: "${{ job.status }}"
details_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
output: |
{"summary":"Job Failed","text_description":"See job details here: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}

20
.github/workflows/semantic.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: "Check Semantic Commit"
on:
pull_request_target:
types:
- opened
- edited
- synchronize
jobs:
main:
name: Validate PR Title
runs-on: ubuntu-latest
steps:
- name: semantic-pull-request
uses: amannn/action-semantic-pull-request@v4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
validateSingleCommit: false

View File

@@ -23,7 +23,5 @@
"br_spaces": 0
},
"single-h1": false,
"no-inline-html": {
"allowed_elements": ["br"]
}
"no-inline-html": false
}

120
BUILD.gn
View File

@@ -43,6 +43,7 @@ if (is_mac) {
if (is_linux) {
import("//build/config/linux/pkg_config.gni")
import("//tools/generate_stubs/rules.gni")
pkg_config("gio_unix") {
packages = [ "gio-unix-2.0" ]
@@ -54,6 +55,41 @@ if (is_linux) {
"gdk-pixbuf-2.0",
]
}
generate_library_loader("libnotify_loader") {
name = "LibNotifyLoader"
output_h = "libnotify_loader.h"
output_cc = "libnotify_loader.cc"
header = "<libnotify/notify.h>"
config = ":libnotify_config"
functions = [
"notify_is_initted",
"notify_init",
"notify_get_server_caps",
"notify_get_server_info",
"notify_notification_new",
"notify_notification_add_action",
"notify_notification_set_image_from_pixbuf",
"notify_notification_set_timeout",
"notify_notification_set_urgency",
"notify_notification_set_hint_string",
"notify_notification_show",
"notify_notification_close",
]
}
generate_stubs("electron_gtk_stubs") {
sigs = [
"shell/browser/ui/electron_gdk_pixbuf.sigs",
"shell/browser/ui/electron_gtk.sigs",
]
extra_header = "shell/browser/ui/electron_gtk.fragment"
output_name = "electron_gtk_stubs"
public_deps = [ "//ui/gtk:gtk_config" ]
logging_function = "LogNoop()"
logging_include = "ui/gtk/log_noop.h"
}
}
declare_args() {
@@ -253,31 +289,6 @@ copy("copy_shell_devtools_discovery_page") {
outputs = [ "$target_gen_dir/shell_devtools_discovery_page.html" ]
}
if (is_linux) {
generate_library_loader("libnotify_loader") {
name = "LibNotifyLoader"
output_h = "libnotify_loader.h"
output_cc = "libnotify_loader.cc"
header = "<libnotify/notify.h>"
config = ":libnotify_config"
functions = [
"notify_is_initted",
"notify_init",
"notify_get_server_caps",
"notify_get_server_info",
"notify_notification_new",
"notify_notification_add_action",
"notify_notification_set_image_from_pixbuf",
"notify_notification_set_timeout",
"notify_notification_set_urgency",
"notify_notification_set_hint_string",
"notify_notification_show",
"notify_notification_close",
]
}
}
npm_action("electron_version_args") {
script = "generate-version-json"
@@ -355,12 +366,14 @@ source_set("electron_lib") {
"//chrome/app/resources:platform_locale_settings",
"//components/autofill/core/common:features",
"//components/certificate_transparency",
"//components/embedder_support:browser_util",
"//components/language/core/browser",
"//components/net_log",
"//components/network_hints/browser",
"//components/network_hints/common:mojo_bindings",
"//components/network_hints/renderer",
"//components/network_session_configurator/common",
"//components/omnibox/browser:buildflags",
"//components/os_crypt",
"//components/pref_registry",
"//components/prefs",
@@ -472,8 +485,8 @@ source_set("electron_lib") {
if (is_linux) {
deps += [
"//build/config/linux/gtk:gtkprint",
"//components/crash/content/browser",
"//ui/gtk:gtk_config",
]
}
@@ -534,18 +547,24 @@ source_set("electron_lib") {
if (is_linux) {
libs = [ "xshmfence" ]
deps += [
":electron_gtk_stubs",
":libnotify_loader",
"//build/config/linux/gtk",
"//dbus",
"//device/bluetooth",
"//ui/base/ime/linux",
"//ui/events/devices/x11",
"//ui/events/platform/x11",
"//ui/gtk",
"//ui/views/controls/webview",
"//ui/wm",
]
if (use_x11) {
if (ozone_platform_x11) {
sources += filenames.lib_sources_linux_x11
public_deps += [
"//ui/base/x",
"//ui/ozone/platform/x11",
]
}
configs += [ ":gio_unix" ]
defines += [
@@ -627,12 +646,6 @@ source_set("electron_lib") {
}
if (enable_desktop_capturer) {
if (is_component_build && !is_linux) {
# On windows the implementation relies on unexported
# DxgiDuplicatorController class. On macOS the implementation
# relies on unexported webrtc::GetWindowOwnerPid method.
deps += [ "//third_party/webrtc/modules/desktop_capture" ]
}
sources += [
"shell/browser/api/electron_api_desktop_capturer.cc",
"shell/browser/api/electron_api_desktop_capturer.h",
@@ -694,6 +707,8 @@ source_set("electron_lib") {
deps += [
"//chrome/browser/resources/pdf:resources",
"//components/pdf/browser",
"//components/pdf/browser:interceptors",
"//components/pdf/common",
"//components/pdf/renderer",
"//pdf:pdf_ppapi",
]
@@ -900,8 +915,12 @@ if (is_mac) {
deps += [ "//sandbox/mac:seatbelt" ]
}
defines = [ "HELPER_EXECUTABLE" ]
sources = filenames.app_sources
sources += [ "shell/common/electron_constants.cc" ]
sources = [
"shell/app/electron_main_mac.cc",
"shell/app/uv_stdio_fix.cc",
"shell/app/uv_stdio_fix.h",
"shell/common/electron_constants.cc",
]
include_dirs = [ "." ]
info_plist = "shell/renderer/resources/mac/Info.plist"
extra_substitutions =
@@ -1040,15 +1059,17 @@ if (is_mac) {
mac_app_bundle("electron_app") {
output_name = electron_product_name
sources = filenames.app_sources
sources += [ "shell/common/electron_constants.cc" ]
sources = [
"shell/app/electron_main_mac.cc",
"shell/app/uv_stdio_fix.cc",
"shell/app/uv_stdio_fix.h",
]
include_dirs = [ "." ]
deps = [
":electron_app_framework_bundle_data",
":electron_app_plist",
":electron_app_resources",
":electron_fuses",
"//base",
"//electron/buildflags",
]
if (is_mas_build) {
@@ -1150,7 +1171,15 @@ if (is_mac) {
executable("electron_app") {
output_name = electron_project_name
sources = filenames.app_sources
if (is_win) {
sources = [ "shell/app/electron_main_win.cc" ]
} else if (is_linux) {
sources = [
"shell/app/electron_main_linux.cc",
"shell/app/uv_stdio_fix.cc",
"shell/app/uv_stdio_fix.h",
]
}
include_dirs = [ "." ]
deps = [
":default_app_asar",
@@ -1171,7 +1200,7 @@ if (is_mac) {
if (enable_hidpi) {
data += [ "$root_out_dir/chrome_200_percent.pak" ]
}
foreach(locale, locales) {
foreach(locale, platform_pak_locales) {
data += [ "$root_out_dir/locales/$locale.pak" ]
}
@@ -1250,6 +1279,10 @@ if (is_mac) {
if (!is_component_build && is_component_ffmpeg) {
configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
}
if (is_linux) {
deps += [ "//sandbox/linux:chrome_sandbox" ]
}
}
}
@@ -1386,11 +1419,13 @@ dist_zip("electron_dist_zip") {
if (is_linux) {
data_deps += [ "//sandbox/linux:chrome_sandbox" ]
}
deps = data_deps
outputs = [ "$root_build_dir/dist.zip" ]
}
dist_zip("electron_ffmpeg_zip") {
data_deps = [ "//third_party/ffmpeg" ]
deps = data_deps
outputs = [ "$root_build_dir/ffmpeg.zip" ]
}
@@ -1408,6 +1443,7 @@ group("electron_chromedriver") {
dist_zip("electron_chromedriver_zip") {
testonly = true
data_deps = electron_chromedriver_deps
deps = data_deps
outputs = [ "$root_build_dir/chromedriver.zip" ]
}
@@ -1426,6 +1462,7 @@ group("electron_mksnapshot") {
dist_zip("electron_mksnapshot_zip") {
data_deps = mksnapshot_deps
deps = data_deps
outputs = [ "$root_build_dir/mksnapshot.zip" ]
}
@@ -1436,6 +1473,7 @@ copy("hunspell_dictionaries") {
dist_zip("hunspell_dictionaries_zip") {
data_deps = [ ":hunspell_dictionaries" ]
deps = data_deps
flatten = true
outputs = [ "$root_build_dir/hunspell_dictionaries.zip" ]
@@ -1449,6 +1487,7 @@ copy("libcxx_headers") {
dist_zip("libcxx_headers_zip") {
data_deps = [ ":libcxx_headers" ]
deps = data_deps
flatten = true
flatten_relative_to = rebase_path(
"$target_gen_dir/electron_libcxx_include/buildtools/third_party/libc++/trunk",
@@ -1464,6 +1503,7 @@ copy("libcxxabi_headers") {
dist_zip("libcxxabi_headers_zip") {
data_deps = [ ":libcxxabi_headers" ]
deps = data_deps
flatten = true
flatten_relative_to = rebase_path(
"$target_gen_dir/electron_libcxxabi_include/buildtools/third_party/libc++abi/trunk",

4
DEPS
View File

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

View File

@@ -1 +1 @@
17.0.0-nightly.20211117
18.3.13

View File

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

View File

@@ -11,7 +11,7 @@
# - "TARGET_ARCH" Choose from {'ia32', 'x64', 'arm', 'arm64', 'mips64el'}.
# Is used in some publishing scripts, but does NOT affect the Electron binary.
# Must match 'target_cpu' passed to "GN_EXTRA_ARGS" and "NPM_CONFIG_ARCH" value.
# - "UPLOAD_TO_S3" Set it to '1' upload a release to the S3 bucket.
# - "UPLOAD_TO_STORAGE" Set it to '1' upload a release to the Azure bucket.
# Otherwise the release will be uploaded to the Github Releases.
# (The value is only checked if "ELECTRON_RELEASE" is defined.)
#
@@ -34,19 +34,10 @@ environment:
GIT_CACHE_PATH: C:\Users\electron\libcc_cache
ELECTRON_OUT_DIR: Default
ELECTRON_ENABLE_STACK_DUMPING: 1
ELECTRON_ALSO_LOG_TO_STDERR: 1
MOCHA_REPORTER: mocha-multi-reporters
MOCHA_MULTI_REPORTERS: mocha-appveyor-reporter, tap
GOMA_FALLBACK_ON_AUTH_FAILURE: true
notifications:
- provider: Webhook
url: https://electron-mission-control.herokuapp.com/rest/appveyor-hook
method: POST
headers:
x-mission-control-secret:
secure: 90BLVPcqhJPG7d24v0q/RRray6W3wDQ8uVQlQjOHaBWkw1i8FoA1lsjr2C/v1dVok+tS2Pi6KxDctPUkwIb4T27u4RhvmcPzQhVpfwVJAG9oNtq+yKN7vzHfg7k/pojEzVdJpQLzeJGcSrZu7VY39Q==
on_build_success: false
on_build_failure: true
on_build_status_changed: false
build_script:
- ps: >-
if(($env:APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME -split "/")[0] -eq ($env:APPVEYOR_REPO_NAME -split "/")[0]) {
@@ -66,6 +57,31 @@ build_script:
- mkdir src
- update_depot_tools.bat
- ps: Move-Item $env:APPVEYOR_BUILD_FOLDER -Destination src\electron
- ps: >-
if (Test-Path 'env:RAW_GOMA_AUTH') {
$env:GOMA_OAUTH2_CONFIG_FILE = "$pwd\.goma_oauth2_config"
$env:RAW_GOMA_AUTH | Set-Content $env:GOMA_OAUTH2_CONFIG_FILE
}
- git clone https://github.com/electron/build-tools.git
- cd build-tools
- npm install
- mkdir third_party
- ps: >-
node -e "require('./src/utils/goma.js').downloadAndPrepare({ gomaOneForAll: true })"
- ps: $env:GN_GOMA_FILE = node -e "console.log(require('./src/utils/goma.js').gnFilePath)"
- ps: $env:LOCAL_GOMA_DIR = node -e "console.log(require('./src/utils/goma.js').dir)"
- cd ..
- ps: .\src\electron\script\start-goma.ps1 -gomaDir $env:LOCAL_GOMA_DIR
- ps: >-
if (Test-Path 'env:RAW_GOMA_AUTH') {
$goma_login = python $env:LOCAL_GOMA_DIR\goma_auth.py info
if ($goma_login -eq 'Login as Fermi Planck') {
Write-warning "Goma authentication is correct";
} else {
Write-warning "WARNING!!!!!! Goma authentication is incorrect; please update Goma auth token.";
$host.SetShouldExit(1)
}
}
- ps: $env:CHROMIUM_BUILDTOOLS_PATH="$pwd\src\buildtools"
- ps: >-
if ($env:GN_CONFIG -ne 'release') {
@@ -129,21 +145,6 @@ build_script:
Write-warning "Failed to add third_party\angle\.git; continuing anyway"
}
}
- ps: >-
if (Test-Path 'env:RAW_GOMA_AUTH') {
$env:GOMA_OAUTH2_CONFIG_FILE = "$pwd\.goma_oauth2_config"
$env:RAW_GOMA_AUTH | Set-Content $env:GOMA_OAUTH2_CONFIG_FILE
}
- git clone https://github.com/electron/build-tools.git
- cd build-tools
- npm install
- mkdir third_party
- ps: >-
node -e "require('./src/utils/goma.js').downloadAndPrepare({ gomaOneForAll: true })"
- ps: $env:GN_GOMA_FILE = node -e "console.log(require('./src/utils/goma.js').gnFilePath)"
- ps: $env:LOCAL_GOMA_DIR = node -e "console.log(require('./src/utils/goma.js').dir)"
- cd ..
- ps: .\src\electron\script\start-goma.ps1 -gomaDir $env:LOCAL_GOMA_DIR
- cd src
- set BUILD_CONFIG_PATH=//electron/build/args/%GN_CONFIG%.gn
- gn gen out/Default "--args=import(\"%BUILD_CONFIG_PATH%\") import(\"%GN_GOMA_FILE%\") %GN_EXTRA_ARGS% "
@@ -209,7 +210,9 @@ test_script:
}
- cd electron
# CalculateNativeWinOcclusion is disabled due to https://bugs.chromium.org/p/chromium/issues/detail?id=1139022
- if "%RUN_TESTS%"=="true" ( echo Running test suite & node script/yarn test -- --trace-uncaught --enable-logging --disable-features=CalculateNativeWinOcclusion )
- if "%RUN_TESTS%"=="true" ( echo Running main test suite & node script/yarn test -- --trace-uncaught --runners=main --enable-logging=file --log-file=%cd%\electron.log --disable-features=CalculateNativeWinOcclusion )
- if "%RUN_TESTS%"=="true" ( echo Running remote test suite & node script/yarn test -- --trace-uncaught --runners=remote --runTestFilesSeperately --enable-logging=file --log-file=%cd%\electron.log --disable-features=CalculateNativeWinOcclusion )
- if "%RUN_TESTS%"=="true" ( echo Running native test suite & node script/yarn test -- --trace-uncaught --runners=native --enable-logging=file --log-file=%cd%\electron.log --disable-features=CalculateNativeWinOcclusion )
- 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"
@@ -217,17 +220,20 @@ test_script:
- echo "Done verifying mksnapshot"
- if "%RUN_TESTS%"=="true" ( echo Verifying chromedriver & python electron\script\verify-chromedriver.py --build-dir out\Default --source-root %cd% )
- echo "Done verifying chromedriver"
- if exist %cd%\electron.log ( appveyor-retry appveyor PushArtifact %cd%\electron.log )
deploy_script:
- cd electron
- ps: >-
if (Test-Path Env:\ELECTRON_RELEASE) {
if (Test-Path Env:\UPLOAD_TO_S3) {
Write-Output "Uploading Electron release distribution to s3"
& python script\release\uploaders\upload.py --verbose --upload_to_s3
if (Test-Path Env:\UPLOAD_TO_STORAGE) {
Write-Output "Uploading Electron release distribution to azure"
& python script\release\uploaders\upload.py --verbose --upload_to_storage
} else {
Write-Output "Uploading Electron release distribution to github releases"
& python script\release\uploaders\upload.py --verbose
}
} elseif (Test-Path Env:\TEST_WOA) {
node script/release/ci-release-build.js --job=electron-woa-testing --ci=VSTS --armTest --appveyorJobId=$env:APPVEYOR_JOB_ID $env:APPVEYOR_REPO_BRANCH
node script/release/ci-release-build.js --job=electron-woa-testing --ci=GHA --appveyorJobId=$env:APPVEYOR_JOB_ID $env:APPVEYOR_REPO_BRANCH
}
on_finish:
- if exist src\electron\electron.log ( appveyor-retry appveyor PushArtifact src\electron\electron.log )

View File

@@ -1,121 +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
xattr -cr Electron.app
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.arm64.bin --dest=$CROSS_ARCH_SNAPSHOTS
displayName: 'Download cross arch snapshot files'
env:
CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
- bash: |
cd src
export ELECTRON_OUT_DIR=Default
export npm_config_arch=arm64
(cd electron && node script/yarn test --enable-logging --runners main)
displayName: 'Run Electron main tests'
timeoutInMinutes: 20
env:
ELECTRON_DISABLE_SECURITY_WARNINGS: 1
IGNORE_YARN_INSTALL_ERROR: 1
ELECTRON_TEST_RESULTS_DIR: junit
- bash: |
cd src
export ELECTRON_OUT_DIR=Default
export npm_config_arch=arm64
(cd electron && node script/yarn test --enable-logging --runners remote)
displayName: 'Run Electron remote tests'
timeoutInMinutes: 20
condition: succeededOrFailed()
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()
env:
TARGET_ARCH: arm64
- 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()
- bash: killall Electron || echo "No Electron processes left running"
displayName: 'Kill processes left running from last test run'
condition: always()
- bash: |
rm -rf ~/Library/Application\ Support/Electron*
rm -rf ~/Library/Application\ Support/electron*
displayName: 'Delete user app data directories'
condition: always()
- task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
displayName: 'Clean Agent Directories'
condition: always()

View File

@@ -1,129 +0,0 @@
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: src\electron'
inputs:
TargetFolder: src\electron
- script: |
cd src\electron
node script/yarn.js install --frozen-lockfile
displayName: 'Yarn install'
- powershell: |
$localArtifactPath = "$pwd\dist.zip"
$serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/dist.zip"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -osrc\out\Default -y $localArtifactPath
displayName: 'Download and extract dist.zip for test'
env:
APPVEYOR_TOKEN: $(APPVEYOR_TOKEN)
- powershell: |
$localArtifactPath = "$pwd\src\out\Default\shell_browser_ui_unittests.exe"
$serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/shell_browser_ui_unittests.exe"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
displayName: 'Download and extract native test executables for test'
env:
APPVEYOR_TOKEN: $(APPVEYOR_TOKEN)
- powershell: |
$localArtifactPath = "$pwd\ffmpeg.zip"
$serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/ffmpeg.zip"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -osrc\out\ffmpeg $localArtifactPath
displayName: 'Download and extract ffmpeg.zip for test'
env:
APPVEYOR_TOKEN: $(APPVEYOR_TOKEN)
- powershell: |
$localArtifactPath = "$pwd\src\node_headers.zip"
$serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/node_headers.zip"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
cd src
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -y node_headers.zip
displayName: 'Download node headers for test'
env:
APPVEYOR_TOKEN: $(APPVEYOR_TOKEN)
- powershell: |
$localArtifactPath = "$pwd\src\out\Default\electron.lib"
$serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/electron.lib"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
displayName: 'Download electron.lib for test'
env:
APPVEYOR_TOKEN: $(APPVEYOR_TOKEN)
- powershell: |
try {
$localArtifactPath = "$pwd\src\pdb.zip"
$serverArtifactPath = "$env:APPVEYOR_URL/buildjobs/$env:APPVEYOR_JOB_ID/artifacts/pdb.zip"
Invoke-RestMethod -Method Get -Uri $serverArtifactPath -OutFile $localArtifactPath -Headers @{ "Authorization" = "Bearer $env:APPVEYOR_TOKEN" }
cd src
& "${env:ProgramFiles(x86)}\7-Zip\7z.exe" x -y pdb.zip
} catch {
Write-Host "There was an exception encountered while downloading pdb files:" $_.Exception.Message
} finally {
$global:LASTEXITCODE = 0
}
displayName: 'Download pdb files for detailed stacktraces'
env:
APPVEYOR_TOKEN: $(APPVEYOR_TOKEN)
- powershell: |
New-Item src\out\Default\gen\node_headers\Release -Type directory
Copy-Item -path src\out\Default\electron.lib -destination src\out\Default\gen\node_headers\Release\node.lib
displayName: 'Setup node headers'
- script: |
cd src
set npm_config_nodedir=%cd%\out\Default\gen\node_headers
set npm_config_arch=arm64
cd electron
node script/yarn test --runners=main --runTestFilesSeperately --enable-logging --disable-features=CalculateNativeWinOcclusion
displayName: 'Run Electron Main process tests'
env:
ELECTRON_ENABLE_STACK_DUMPING: true
ELECTRON_OUT_DIR: Default
IGNORE_YARN_INSTALL_ERROR: 1
ELECTRON_TEST_RESULTS_DIR: junit
MOCHA_MULTI_REPORTERS: 'mocha-junit-reporter, tap'
MOCHA_REPORTER: mocha-multi-reporters
- script: |
cd src
set npm_config_nodedir=%cd%\out\Default\gen\node_headers
set npm_config_arch=arm64
cd electron
node script/yarn test --runners=remote --enable-logging --disable-features=CalculateNativeWinOcclusion
displayName: 'Run Electron Remote based tests'
env:
ELECTRON_OUT_DIR: Default
IGNORE_YARN_INSTALL_ERROR: 1
ELECTRON_TEST_RESULTS_DIR: junit
MOCHA_MULTI_REPORTERS: 'mocha-junit-reporter, tap'
MOCHA_REPORTER: mocha-multi-reporters
condition: always()
- task: PublishTestResults@2
displayName: 'Publish Test Results'
inputs:
testResultsFiles: '*.xml'
searchFolder: '$(System.DefaultWorkingDirectory)/src/junit/'
condition: always()
- script: |
cd src
echo "Verifying non proprietary ffmpeg"
python electron\script\verify-ffmpeg.py --build-dir out\Default --source-root %cd% --ffmpeg-path out\ffmpeg
displayName: 'Verify ffmpeg'
- powershell: |
Get-Process | Where Name Like "electron*" | Stop-Process
Get-Process | Where Name Like "msedge*" | Stop-Process
displayName: 'Kill processes left running from last test run'
condition: always()
- powershell: |
Remove-Item -path $env:APPDATA/Electron* -Recurse -Force -ErrorAction Ignore
displayName: 'Delete user app data directories'
condition: always()

View File

@@ -2,20 +2,28 @@ 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 = 101
node_module_version = 103
v8_promise_internal_field_count = 1
v8_typed_array_max_size_in_heap = 0
v8_embedder_string = "-electron.0"
# TODO: this breaks mksnapshot
v8_enable_snapshot_native_code_counters = false
# TODO(codebytere): remove when Node.js handles https://chromium-review.googlesource.com/c/v8/v8/+/3211575
v8_scriptormodule_legacy_lifetime = true
# we use this api
v8_enable_javascript_promise_hooks = true
enable_cdm_host_verification = false
proprietary_codecs = true
ffmpeg_branding = "Chrome"
enable_basic_printing = true
# Removes DLLs from the build, which are only meant to be used for Chromium development.
# See https://github.com/electron/electron/pull/17985
angle_enable_vulkan_validation_layers = false
dawn_enable_vulkan_validation_layers = false

View File

@@ -24,7 +24,11 @@ template("extract_symbols") {
assert(defined(invoker.binary), "Need binary to dump")
assert(defined(invoker.symbol_dir), "Need directory for symbol output")
dump_syms_label = "//third_party/breakpad:dump_syms($host_toolchain)"
if (host_os == "win" && target_cpu == "x86") {
dump_syms_label = "//third_party/breakpad:dump_syms(//build/toolchain/win:win_clang_x64)"
} else {
dump_syms_label = "//third_party/breakpad:dump_syms($host_toolchain)"
}
dump_syms_binary = get_label_info(dump_syms_label, "root_out_dir") +
"/dump_syms$_host_executable_suffix"

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
import os
import subprocess

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
from __future__ import print_function
import os
import subprocess

View File

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

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
import os
import subprocess
import sys

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
from __future__ import print_function
import os
import subprocess

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
from __future__ import print_function
import os
import subprocess

View File

@@ -53,8 +53,8 @@ static_library("chrome") {
"//chrome/browser/predictors/resolve_host_client_impl.cc",
"//chrome/browser/predictors/resolve_host_client_impl.h",
"//chrome/browser/process_singleton.h",
"//chrome/browser/ui/browser_dialogs.cc",
"//chrome/browser/ui/browser_dialogs.h",
"//chrome/browser/process_singleton_internal.cc",
"//chrome/browser/process_singleton_internal.h",
"//chrome/browser/ui/exclusive_access/exclusive_access_bubble_type.cc",
"//chrome/browser/ui/exclusive_access/exclusive_access_bubble_type.h",
"//chrome/browser/ui/exclusive_access/exclusive_access_controller_base.cc",
@@ -69,8 +69,6 @@ static_library("chrome") {
"//chrome/browser/ui/exclusive_access/keyboard_lock_controller.h",
"//chrome/browser/ui/exclusive_access/mouse_lock_controller.cc",
"//chrome/browser/ui/exclusive_access/mouse_lock_controller.h",
"//chrome/browser/ui/views/autofill/autofill_popup_view_utils.cc",
"//chrome/browser/ui/views/autofill/autofill_popup_view_utils.h",
"//chrome/browser/ui/views/eye_dropper/eye_dropper.cc",
"//chrome/browser/ui/views/eye_dropper/eye_dropper.h",
"//chrome/browser/ui/views/eye_dropper/eye_dropper_view.cc",
@@ -142,10 +140,6 @@ static_library("chrome") {
"//components/optimization_guide/proto:optimization_guide_proto",
]
if (enable_basic_printing && is_win) {
deps += [ "//chrome/common:cloud_print_utility_mojom" ]
}
if (is_linux) {
sources += [ "//chrome/browser/icon_loader_auralinux.cc" ]
if (use_ozone) {
@@ -201,12 +195,16 @@ static_library("chrome") {
if (enable_basic_printing) {
sources += [
"//chrome/browser/bad_message.cc",
"//chrome/browser/bad_message.h",
"//chrome/browser/printing/print_job.cc",
"//chrome/browser/printing/print_job.h",
"//chrome/browser/printing/print_job_manager.cc",
"//chrome/browser/printing/print_job_manager.h",
"//chrome/browser/printing/print_job_worker.cc",
"//chrome/browser/printing/print_job_worker.h",
"//chrome/browser/printing/print_job_worker_oop.cc",
"//chrome/browser/printing/print_job_worker_oop.h",
"//chrome/browser/printing/print_view_manager_base.cc",
"//chrome/browser/printing/print_view_manager_base.h",
"//chrome/browser/printing/printer_query.cc",
@@ -241,8 +239,6 @@ static_library("chrome") {
sources += [
"//chrome/browser/printing/pdf_to_emf_converter.cc",
"//chrome/browser/printing/pdf_to_emf_converter.h",
"//chrome/utility/printing_handler.cc",
"//chrome/utility/printing_handler.h",
]
}
}
@@ -257,8 +253,12 @@ static_library("chrome") {
"//chrome/browser/ui/views/overlay/close_image_button.cc",
"//chrome/browser/ui/views/overlay/close_image_button.h",
"//chrome/browser/ui/views/overlay/constants.h",
"//chrome/browser/ui/views/overlay/document_overlay_window_views.cc",
"//chrome/browser/ui/views/overlay/document_overlay_window_views.h",
"//chrome/browser/ui/views/overlay/hang_up_button.cc",
"//chrome/browser/ui/views/overlay/hang_up_button.h",
"//chrome/browser/ui/views/overlay/overlay_window_image_button.cc",
"//chrome/browser/ui/views/overlay/overlay_window_image_button.h",
"//chrome/browser/ui/views/overlay/overlay_window_views.cc",
"//chrome/browser/ui/views/overlay/overlay_window_views.h",
"//chrome/browser/ui/views/overlay/playback_image_button.cc",
@@ -273,11 +273,14 @@ static_library("chrome") {
"//chrome/browser/ui/views/overlay/toggle_microphone_button.h",
"//chrome/browser/ui/views/overlay/track_image_button.cc",
"//chrome/browser/ui/views/overlay/track_image_button.h",
"//chrome/browser/ui/views/overlay/video_overlay_window_views.cc",
"//chrome/browser/ui/views/overlay/video_overlay_window_views.h",
]
deps += [
"//chrome/app/vector_icons",
"//components/vector_icons:vector_icons",
"//ui/views/controls/webview",
]
}
@@ -295,11 +298,21 @@ static_library("chrome") {
if (enable_pdf_viewer) {
sources += [
"//chrome/browser/pdf/chrome_pdf_stream_delegate.cc",
"//chrome/browser/pdf/chrome_pdf_stream_delegate.h",
"//chrome/browser/pdf/pdf_extension_util.cc",
"//chrome/browser/pdf/pdf_extension_util.h",
"//chrome/browser/pdf/pdf_frame_util.cc",
"//chrome/browser/pdf/pdf_frame_util.h",
"//chrome/browser/plugins/pdf_iframe_navigation_throttle.cc",
"//chrome/browser/plugins/pdf_iframe_navigation_throttle.h",
"//chrome/renderer/pepper/chrome_pdf_print_client.cc",
"//chrome/renderer/pepper/chrome_pdf_print_client.h",
]
deps += [
"//components/pdf/browser",
"//components/pdf/renderer",
]
}
}
@@ -327,15 +340,6 @@ source_set("plugins") {
"//chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc",
"//chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h",
]
deps += [
"//media:media_buildflags",
"//ppapi/buildflags",
"//ppapi/proxy:ipc",
"//services/device/public/mojom",
]
if (enable_pdf_viewer) {
deps += [ "//components/pdf/browser" ]
}
# renderer side
sources += [
@@ -346,17 +350,18 @@ source_set("plugins") {
"//chrome/renderer/pepper/pepper_shared_memory_message_filter.cc",
"//chrome/renderer/pepper/pepper_shared_memory_message_filter.h",
]
if (enable_pdf_viewer) {
deps += [ "//components/pdf/renderer" ]
}
deps += [
"//components/strings",
"//media:media_buildflags",
"//ppapi/buildflags",
"//ppapi/host",
"//ppapi/proxy",
"//ppapi/proxy:ipc",
"//ppapi/shared_impl",
"//services/device/public/mojom",
"//skia",
"//storage/browser",
]
}

View File

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

View File

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

View File

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

View File

@@ -70,9 +70,6 @@ an issue:
* [Windows Store](tutorial/windows-store-guide.md)
* [Snapcraft](tutorial/snapcraft.md)
* [Updates](tutorial/updates.md)
* [Deploying an Update Server](tutorial/updates.md#deploying-an-update-server)
* [Implementing Updates in Your App](tutorial/updates.md#implementing-updates-in-your-app)
* [Applying Updates](tutorial/updates.md#applying-updates)
* [Getting Support](tutorial/support.md)
## Detailed Tutorials
@@ -106,7 +103,6 @@ These individual tutorials expand on topics discussed in the guide above.
* [`File` Object](api/file-object.md)
* [`<webview>` Tag](api/webview-tag.md)
* [`window.open` Function](api/window-open.md)
* [`BrowserWindowProxy` Object](api/browser-window-proxy.md)
### Modules for the Main Process:

View File

@@ -837,6 +837,8 @@ Returns `Object`:
* `categories` [JumpListCategory[]](structures/jump-list-category.md) | `null` - Array of `JumpListCategory` objects.
Returns `string`
Sets or removes a custom Jump List for the application, and returns one of the
following strings:
@@ -930,9 +932,9 @@ app.setJumpList([
])
```
### `app.requestSingleInstanceLock()`
### `app.requestSingleInstanceLock([additionalData])`
* `additionalData` unknown (optional) - A JSON object containing additional data to send to the first instance.
* `additionalData` Record<any, any> (optional) - A JSON object containing additional data to send to the first instance.
Returns `boolean`

View File

@@ -15,14 +15,16 @@ Process: [Main](../glossary.md#main-process)
```javascript
// In the main process.
const { BrowserView, BrowserWindow } = require('electron')
const { app, BrowserView, BrowserWindow } = require('electron')
const win = new BrowserWindow({ width: 800, height: 600 })
app.whenReady().then(() => {
const win = new BrowserWindow({ width: 800, height: 600 })
const view = new BrowserView()
win.setBrowserView(view)
view.setBounds({ x: 0, y: 0, width: 300, height: 300 })
view.webContents.loadURL('https://electronjs.org')
const view = new BrowserView()
win.setBrowserView(view)
view.setBounds({ x: 0, y: 0, width: 300, height: 300 })
view.webContents.loadURL('https://electronjs.org')
})
```
### `new BrowserView([options])` _Experimental_
@@ -68,5 +70,31 @@ The `bounds` of this BrowserView instance as `Object`.
#### `view.setBackgroundColor(color)` _Experimental_
* `color` string - Color in `#aarrggbb` or `#argb` form. The alpha channel is
optional.
* `color` string - Color in Hex, RGB, ARGB, HSL, HSLA or named CSS color format. The alpha channel is
optional for the hex type.
Examples of valid `color` values:
* Hex
* #fff (RGB)
* #ffff (ARGB)
* #ffffff (RRGGBB)
* #ffffffff (AARRGGBB)
* RGB
* rgb\(([\d]+),\s*([\d]+),\s*([\d]+)\)
* e.g. rgb(255, 255, 255)
* RGBA
* rgba\(([\d]+),\s*([\d]+),\s*([\d]+),\s*([\d.]+)\)
* e.g. rgba(255, 255, 255, 1.0)
* HSL
* hsl\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%\)
* e.g. hsl(200, 20%, 50%)
* HSLA
* hsla\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)
* e.g. hsla(200, 20%, 50%, 0.5)
* Color name
* Options are listed in [SkParseColor.cpp](https://source.chromium.org/chromium/chromium/src/+/main:third_party/skia/src/utils/SkParseColor.cpp;l=11-152;drc=eea4bf52cb0d55e2a39c828b017c80a5ee054148)
* Similar to CSS Color Module Level 3 keywords, but case-sensitive.
* e.g. `blueviolet` or `red`
**Note:** Hex format with alpha takes `AARRGGBB` or `ARGB`, _not_ `RRGGBBA` or `RGA`.

View File

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

View File

@@ -66,6 +66,18 @@ win.loadURL('https://github.com')
Note that even for apps that use `ready-to-show` event, it is still recommended
to set `backgroundColor` to make app feel more native.
Some examples of valid `backgroundColor` values include:
```js
const win = new BrowserWindow()
win.setBackgroundColor('hsl(230, 100%, 50%)')
win.setBackgroundColor('rgb(255, 145, 145)')
win.setBackgroundColor('#ff00a3')
win.setBackgroundColor('blueviolet')
```
For more information about these color types see valid options in [win.setBackgroundColor](browser-window.md#winsetbackgroundcolorbackgroundcolor).
## Parent and child windows
By using `parent` option, you can create child windows:
@@ -199,9 +211,7 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
* `enableLargerThanScreen` boolean (optional) - Enable the window to be resized larger
than screen. Only relevant for macOS, as other OSes allow
larger-than-screen windows by default. Default is `false`.
* `backgroundColor` string (optional) - Window's background color as a hexadecimal value,
like `#66CD00` or `#FFF` or `#80FFFFFF` (alpha in #AARRGGBB format is supported if
`transparent` is set to `true`). Default is `#FFF` (white).
* `backgroundColor` string (optional) - The window's background color in Hex, RGB, RGBA, HSL, HSLA or named CSS color format. Alpha in #AARRGGBB format is supported if `transparent` is set to `true`. Default is `#FFF` (white). See [win.setBackgroundColor](browser-window.md#winsetbackgroundcolorbackgroundcolor) for more information.
* `hasShadow` boolean (optional) - Whether window should have a shadow. Default is `true`.
* `opacity` number (optional) - Set the initial opacity of the window, between 0.0 (fully
transparent) and 1.0 (fully opaque). This is only implemented on Windows and macOS.
@@ -341,9 +351,6 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
[Chrome Content Scripts][chrome-content-scripts]. You can access this
context in the dev tools by selecting the 'Electron Isolated Context'
entry in the combo box at the top of the Console tab.
* `nativeWindowOpen` boolean (optional) - Whether to use native
`window.open()`. Defaults to `true`. Child windows will always have node
integration disabled unless `nodeIntegrationInSubFrames` is true.
* `webviewTag` boolean (optional) - Whether to enable the [`<webview>` tag](webview-tag.md).
Defaults to `false`. **Note:** The
`preload` script configured for the `<webview>` will have node integration
@@ -391,9 +398,10 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
contain the layout of the document—without requiring scrolling. Enabling
this will cause the `preferred-size-changed` event to be emitted on the
`WebContents` when the preferred size changes. Default is `false`.
* `titleBarOverlay` Object | boolean (optional) - When using a frameless window in conjuction with `win.setWindowButtonVisibility(true)` on macOS or using a `titleBarStyle` so that the standard window controls ("traffic lights" on macOS) are visible, this property enables the Window Controls Overlay [JavaScript APIs][overlay-javascript-apis] and [CSS Environment Variables][overlay-css-env-vars]. Specifying `true` will result in an overlay with default system colors. Default is `false`.
* `color` string (optional) _Windows_ - The CSS color of the Window Controls Overlay when enabled. Default is the system color.
* `symbolColor` string (optional) _Windows_ - The CSS color of the symbols on the Window Controls Overlay when enabled. Default is the system color.
* `titleBarOverlay` Object | Boolean (optional) - When using a frameless window in conjunction with `win.setWindowButtonVisibility(true)` on macOS or using a `titleBarStyle` so that the standard window controls ("traffic lights" on macOS) are visible, this property enables the Window Controls Overlay [JavaScript APIs][overlay-javascript-apis] and [CSS Environment Variables][overlay-css-env-vars]. Specifying `true` will result in an overlay with default system colors. Default is `false`.
* `color` String (optional) _Windows_ - The CSS color of the Window Controls Overlay when enabled. Default is the system color.
* `symbolColor` String (optional) _Windows_ - The CSS color of the symbols on the Window Controls Overlay when enabled. Default is the system color.
* `height` Integer (optional) _macOS_ _Windows_ - The height of the title bar and Window Controls Overlay in pixels. Default is system height.
When setting minimum or maximum window size with `minWidth`/`maxWidth`/
`minHeight`/`maxHeight`, it only constrains the users. It won't prevent you from
@@ -456,7 +464,7 @@ window.onbeforeunload = (e) => {
// a non-void value will silently cancel the close.
// It is recommended to use the dialog API to let the user confirm closing the
// application.
e.returnValue = false // equivalent to `return false` but not recommended
e.returnValue = false
}
```
@@ -559,7 +567,7 @@ Returns:
Emitted before the window is moved. On Windows, calling `event.preventDefault()` will prevent the window from being moved.
Note that this is only emitted when the window is being resized manually. Resizing the window with `setBounds`/`setSize` will not emit this event.
Note that this is only emitted when the window is being moved manually. Moving the window with `setPosition`/`setBounds`/`center` will not emit this event.
#### Event: 'move'
@@ -994,12 +1002,33 @@ APIs like `win.setSize`.
#### `win.setBackgroundColor(backgroundColor)`
* `backgroundColor` string - Window's background color as a hexadecimal value,
like `#66CD00` or `#FFF` or `#80FFFFFF` (alpha is supported if `transparent`
is `true`). Default is `#FFF` (white).
* `backgroundColor` string - Color in Hex, RGB, RGBA, HSL, HSLA or named CSS color format. The alpha channel is optional for the hex type.
Sets the background color of the window. See [Setting
`backgroundColor`](#setting-backgroundcolor).
Examples of valid `backgroundColor` values:
* Hex
* #fff (shorthand RGB)
* #ffff (shorthand ARGB)
* #ffffff (RGB)
* #ffffffff (ARGB)
* RGB
* rgb\(([\d]+),\s*([\d]+),\s*([\d]+)\)
* e.g. rgb(255, 255, 255)
* RGBA
* rgba\(([\d]+),\s*([\d]+),\s*([\d]+),\s*([\d.]+)\)
* e.g. rgba(255, 255, 255, 1.0)
* HSL
* hsl\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%\)
* e.g. hsl(200, 20%, 50%)
* HSLA
* hsla\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)
* e.g. hsla(200, 20%, 50%, 0.5)
* Color name
* Options are listed in [SkParseColor.cpp](https://source.chromium.org/chromium/chromium/src/+/main:third_party/skia/src/utils/SkParseColor.cpp;l=11-152;drc=eea4bf52cb0d55e2a39c828b017c80a5ee054148)
* Similar to CSS Color Module Level 3 keywords, but case-sensitive.
* e.g. `blueviolet` or `red`
Sets the background color of the window. See [Setting `backgroundColor`](#setting-the-backgroundcolor-property).
#### `win.previewFile(path[, displayName])` _macOS_
@@ -1043,8 +1072,11 @@ Returns [`Rectangle`](structures/rectangle.md) - The `bounds` of the window as `
#### `win.getBackgroundColor()`
Returns `string` - Gets the background color of the window. See [Setting
`backgroundColor`](#setting-backgroundcolor).
Returns `string` - Gets the background color of the window in Hex (`#RRGGBB`) format.
See [Setting `backgroundColor`](#setting-the-backgroundcolor-property).
**Note:** The alpha value is _not_ returned alongside the red, green, and blue values.
#### `win.setContentBounds(bounds[, animate])`
@@ -1810,6 +1842,16 @@ with `addBrowserView` or `setBrowserView`.
**Note:** The BrowserView API is currently experimental and may change or be
removed in future Electron releases.
#### `win.setTitleBarOverlay(options)` _Windows_
* `options` Object
* `color` String (optional) _Windows_ - The CSS color of the Window Controls Overlay when enabled.
* `symbolColor` String (optional) _Windows_ - The CSS color of the symbols on the Window Controls Overlay when enabled.
* `height` Integer (optional) _Windows_ - The height of the title bar and Window Controls Overlay in pixels.
On a Window with Window Controls Overlay already enabled, this method updates
the style of the title bar overlay.
[runtime-enabled-features]: https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/runtime_enabled_features.json5?l=70
[page-visibility-api]: https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API
[quick-look]: https://en.wikipedia.org/wiki/Quick_Look

View File

@@ -76,7 +76,7 @@ Writes `markup` to the clipboard.
```js
const { clipboard } = require('electron')
clipboard.writeHTML('<b>Hi</b')
clipboard.writeHTML('<b>Hi</b>')
```
### `clipboard.readImage([type])`

View File

@@ -102,8 +102,8 @@ has been included below for completeness:
| `boolean` | Simple | ✅ | ✅ | N/A |
| `Object` | Complex | ✅ | ✅ | Keys must be supported using only "Simple" types in this table. Values must be supported in this table. Prototype modifications are dropped. Sending custom classes will copy values but not the prototype. |
| `Array` | Complex | ✅ | ✅ | Same limitations as the `Object` type |
| `Error` | Complex | ✅ | ✅ | Errors that are thrown are also copied, this can result in the message and stack trace of the error changing slightly due to being thrown in a different context |
| `Promise` | Complex | ✅ | ✅ | Promises are only proxied if they are the return value or exact parameter. Promises nested in arrays or objects will be dropped. |
| `Error` | Complex | ✅ | ✅ | Errors that are thrown are also copied, this can result in the message and stack trace of the error changing slightly due to being thrown in a different context, and any custom properties on the Error object [will be lost](https://github.com/electron/electron/issues/25596) |
| `Promise` | Complex | ✅ | ✅ | N/A
| `Function` | Complex | ✅ | ✅ | Prototype modifications are dropped. Sending classes or constructors will not work. |
| [Cloneable Types](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) | Simple | ✅ | ✅ | See the linked document on cloneable types |
| `Element` | Complex | ✅ | ✅ | Prototype modifications are dropped. Sending custom elements will not work. |

View File

@@ -27,6 +27,7 @@ Or use a 3rd party hosted solution:
* [Backtrace](https://backtrace.io/electron/)
* [Sentry](https://docs.sentry.io/clients/electron)
* [BugSplat](https://www.bugsplat.com/docs/platforms/electron)
* [Bugsnag](https://docs.bugsnag.com/platforms/electron/)
Crash reports are stored temporarily before being uploaded in a directory
underneath the app's user data directory, called 'Crashpad'. You can override

View File

@@ -285,7 +285,7 @@ If `browserWindow` is not shown dialog will not be attached to it. In such case
include a checkbox with the given label.
* `checkboxChecked` boolean (optional) - Initial checked state of the
checkbox. `false` by default.
* `icon` [NativeImage](native-image.md) (optional)
* `icon` ([NativeImage](native-image.md) | string) (optional)
* `textWidth` Integer (optional) _macOS_ - Custom width of the text in the message box.
* `cancelId` Integer (optional) - The index of the button to be used to cancel the dialog, via
the `Esc` key. By default this is assigned to the first button with "cancel" or "no" as the

View File

@@ -28,7 +28,7 @@ When `informational` is passed, the dock icon will bounce for one second.
However, the request remains active until either the application becomes active
or the request is canceled.
**Nota Bene:** This method can only be used while the app is not focused; when the app is focused it will return -1.
**Note:** This method can only be used while the app is not focused; when the app is focused it will return -1.
#### `dock.cancelBounce(id)` _macOS_

View File

@@ -122,7 +122,7 @@ Prints Chromium's internal logging to the console.
Setting this variable is the same as passing `--enable-logging`
on the command line. For more info, see `--enable-logging` in [command-line
switches](./command-line-switches.md#enable-loggingfile).
switches](./command-line-switches.md#--enable-loggingfile).
### `ELECTRON_LOG_FILE`
@@ -130,7 +130,7 @@ Sets the file destination for Chromium's internal logging.
Setting this variable is the same as passing `--log-file`
on the command line. For more info, see `--log-file` in [command-line
switches](./command-line-switches.md#log-filepath).
switches](./command-line-switches.md#--log-filepath).
### `ELECTRON_DEBUG_DRAG_REGIONS`

View File

@@ -99,6 +99,7 @@ Only `chrome.storage.local` is supported; `chrome.storage.sync` and
The following methods of `chrome.tabs` are supported:
- `chrome.tabs.sendMessage`
- `chrome.tabs.reload`
- `chrome.tabs.executeScript`
- `chrome.tabs.update` (partial support)
- supported properties: `url`, `muted`.

View File

@@ -80,3 +80,25 @@ An `Integer` indicating the HTTP protocol major version number.
An `Integer` indicating the HTTP protocol minor version number.
[event-emitter]: https://nodejs.org/api/events.html#events_class_eventemitter
#### `response.rawHeaders`
A `string[]` containing the raw HTTP response headers exactly as they were
received. The keys and values are in the same list. It is not a list of
tuples. So, the even-numbered offsets are key values, and the odd-numbered
offsets are the associated values. Header names are not lowercased, and
duplicates are not merged.
```javascript
// Prints something like:
//
// [ 'user-agent',
// 'this is invalid because there can be only one',
// 'User-Agent',
// 'curl/7.22.0',
// 'Host',
// '127.0.0.1:8000',
// 'ACCEPT',
// '*/*' ]
console.log(request.rawHeaders)
```

View File

@@ -14,7 +14,7 @@ See [`Menu`](menu.md) for examples.
* `menuItem` MenuItem
* `browserWindow` [BrowserWindow](browser-window.md) | undefined - This will not be defined if no window is open.
* `event` [KeyboardEvent](structures/keyboard-event.md)
* `role` string (optional) - Can be `undo`, `redo`, `cut`, `copy`, `paste`, `pasteAndMatchStyle`, `delete`, `selectAll`, `reload`, `forceReload`, `toggleDevTools`, `resetZoom`, `zoomIn`, `zoomOut`, `toggleSpellChecker`, `togglefullscreen`, `window`, `minimize`, `close`, `help`, `about`, `services`, `hide`, `hideOthers`, `unhide`, `quit`, `startSpeaking`, `stopSpeaking`, `zoom`, `front`, `appMenu`, `fileMenu`, `editMenu`, `viewMenu`, `shareMenu`, `recentDocuments`, `toggleTabBar`, `selectNextTab`, `selectPreviousTab`, `mergeAllWindows`, `clearRecentDocuments`, `moveTabToNewWindow` or `windowMenu` - Define the action of the menu item, when specified the
* `role` string (optional) - Can be `undo`, `redo`, `cut`, `copy`, `paste`, `pasteAndMatchStyle`, `delete`, `selectAll`, `reload`, `forceReload`, `toggleDevTools`, `resetZoom`, `zoomIn`, `zoomOut`, `toggleSpellChecker`, `togglefullscreen`, `window`, `minimize`, `close`, `help`, `about`, `services`, `hide`, `hideOthers`, `unhide`, `quit`, 'showSubstitutions', 'toggleSmartQuotes', 'toggleSmartDashes', 'toggleTextReplacement', `startSpeaking`, `stopSpeaking`, `zoom`, `front`, `appMenu`, `fileMenu`, `editMenu`, `viewMenu`, `shareMenu`, `recentDocuments`, `toggleTabBar`, `selectNextTab`, `selectPreviousTab`, `mergeAllWindows`, `clearRecentDocuments`, `moveTabToNewWindow` or `windowMenu` - Define the action of the menu item, when specified the
`click` property will be ignored. See [roles](#roles).
* `type` string (optional) - Can be `normal`, `separator`, `submenu`, `checkbox` or
`radio`.
@@ -100,6 +100,10 @@ The following additional roles are available on _macOS_:
* `hide` - Map to the `hide` action.
* `hideOthers` - Map to the `hideOtherApplications` action.
* `unhide` - Map to the `unhideAllApplications` action.
* `showSubstitutions` - Map to the `orderFrontSubstitutionsPanel` action.
* `toggleSmartQuotes` - Map to the `toggleAutomaticQuoteSubstitution` action.
* `toggleSmartDashes` - Map to the `toggleAutomaticDashSubstitution` action.
* `toggleTextReplacement` - Map to the `toggleAutomaticTextReplacement` action.
* `startSpeaking` - Map to the `startSpeaking` action.
* `stopSpeaking` - Map to the `stopSpeaking` action.
* `front` - Map to the `arrangeInFront` action.
@@ -120,7 +124,7 @@ When specifying a `role` on macOS, `label` and `accelerator` are the only
options that will affect the menu item. All other options will be ignored.
Lowercase `role`, e.g. `toggledevtools`, is still supported.
**Nota Bene:** The `enabled` and `visibility` properties are not available for top-level menu items in the tray on macOS.
**Note:** The `enabled` and `visibility` properties are not available for top-level menu items in the tray on macOS.
### Instance Properties

View File

@@ -67,3 +67,8 @@ or is being instructed to show a high-contrast UI.
A `boolean` for if the OS / Chromium currently has an inverted color scheme
or is being instructed to use an inverted color scheme.
### `nativeTheme.inForcedColorsMode` _Windows_ _Readonly_
A `boolean` indicating whether Chromium is in forced colors mode, controlled by system accessibility settings.
Currently, Windows high contrast is the only system setting that triggers forced colors mode.

View File

@@ -178,7 +178,6 @@ Returns an object with V8 heap statistics. Note that all statistics are reported
Returns `Object`:
* `allocated` Integer - Size of all allocated objects in Kilobytes.
* `marked` Integer - Size of all marked objects in Kilobytes.
* `total` Integer - Total allocated space in Kilobytes.
Returns an object with Blink memory information.

View File

@@ -18,9 +18,9 @@ The `safeStorage` module has the following methods:
Returns `boolean` - Whether encryption is available.
On Linux, returns true if the secret key is
available. On MacOS, returns true if Keychain is available.
On Windows, returns true with no other preconditions.
On Linux, returns true if the app has emitted the `ready` event and the secret key is available.
On MacOS, returns true if Keychain is available.
On Windows, returns true once the app has emitted the `ready` event.
### `safeStorage.encryptString(plainText)`

View File

@@ -39,7 +39,7 @@ Returns:
* `messageDetails` Object - Information about the console message
* `message` string - The actual console message
* `versionId` number - The version ID of the service worker that sent the log message
* `source` string - The type of source for this message. Can be `javascript`, `xml`, `network`, `console-api`, `storage`, `app-cache`, `rendering`, `security`, `deprecation`, `worker`, `violation`, `intervention`, `recommendation` or `other`.
* `source` string - The type of source for this message. Can be `javascript`, `xml`, `network`, `console-api`, `storage`, `rendering`, `security`, `deprecation`, `worker`, `violation`, `intervention`, `recommendation` or `other`.
* `level` number - The log level, from 0 to 3. In order it matches `verbose`, `info`, `warning` and `error`.
* `sourceUrl` string - The URL the message came from
* `lineNumber` number - The line number of the source that triggered this console message

View File

@@ -868,6 +868,20 @@ this session just before normal `preload` scripts run.
Returns `string[]` an array of paths to preload scripts that have been
registered.
#### `ses.setCodeCachePath(path)`
* `path` String - Absolute path to store the v8 generated JS code cache from the renderer.
Sets the directory to store the generated JS [code cache](https://v8.dev/blog/code-caching-for-devs) for this session. The directory is not required to be created by the user before this call, the runtime will create if it does not exist otherwise will use the existing directory. If directory cannot be created, then code cache will not be used and all operations related to code cache will fail silently inside the runtime. By default, the directory will be `Code Cache` under the
respective user data folder.
#### `ses.clearCodeCaches(options)`
* `options` Object
* `urls` String[] (optional) - An array of url corresponding to the resource whose generated code cache needs to be removed. If the list is empty then all entries in the cache directory will be removed.
Returns `Promise<void>` - resolves when the code cache clear operation is complete.
#### `ses.setSpellCheckerEnabled(enable)`
* `enable` boolean
@@ -903,8 +917,10 @@ setting with the current OS locale. This setting is persisted across restarts.
By default Electron will download hunspell dictionaries from the Chromium CDN. If you want to override this
behavior you can use this API to point the dictionary downloader at your own hosted version of the hunspell
dictionaries. We publish a `hunspell_dictionaries.zip` file with each release which contains the files you need
to host here, the file server must be **case insensitive** you must upload each file twice, once with the case it
has in the ZIP file and once with the filename as all lower case.
to host here.
The file server must be **case insensitive**. If you cannot do this, you must upload each file twice: once with
the case it has in the ZIP file and once with the filename as all lowercase.
If the files present in `hunspell_dictionaries.zip` are available at `https://example.com/dictionaries/language-code.bdic`
then you should call this api with `ses.setSpellCheckerDictionaryDownloadURL('https://example.com/dictionaries/')`. Please

View File

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

View File

@@ -7,17 +7,3 @@
the `enctype` attribute of the submitted HTML form.
* `boundary` string (optional) - The boundary used to separate multiple parts of
the message. Only valid when `contentType` is `multipart/form-data`.
Note that keys starting with `--` are not currently supported. For example, this will errantly submit as `multipart/form-data` when `nativeWindowOpen` is set to `false` in webPreferences:
```html
<form
target="_blank"
method="POST"
enctype="application/x-www-form-urlencoded"
action="https://postman-echo.com/post"
>
<input type="text" name="--theKey">
<input type="submit">
</form>
```

View File

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

View File

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

View File

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

View File

@@ -9,3 +9,5 @@
* `payment` Object
* `productIdentifier` string - The identifier of the purchased product.
* `quantity` Integer - The quantity purchased.
* `applicationUsername` string - An opaque identifier for the users account on your system.
* `paymentDiscount` [PaymentDiscount](payment-discount.md) (optional) - The details of the discount offer to apply to the payment.

View File

@@ -2,4 +2,3 @@
* `code` string
* `url` string (optional)
* `startLine` Integer (optional) - Default is 1.

View File

@@ -84,7 +84,7 @@ that contains the user information dictionary sent along with the notification.
### `systemPreferences.subscribeNotification(event, callback)` _macOS_
* `event` string
* `event` string | null
* `callback` Function
* `event` string
* `userInfo` Record<string, unknown>
@@ -109,9 +109,11 @@ example values of `event` are:
* `AppleColorPreferencesChangedNotification`
* `AppleShowScrollBarsSettingChanged`
If `event` is null, the `NSDistributedNotificationCenter` doesnt use it as criteria for delivery to the observer. See [docs](https://developer.apple.com/documentation/foundation/nsnotificationcenter/1411723-addobserverforname?language=objc) for more information.
### `systemPreferences.subscribeLocalNotification(event, callback)` _macOS_
* `event` string
* `event` string | null
* `callback` Function
* `event` string
* `userInfo` Record<string, unknown>
@@ -122,9 +124,11 @@ Returns `number` - The ID of this subscription
Same as `subscribeNotification`, but uses `NSNotificationCenter` for local defaults.
This is necessary for events such as `NSUserDefaultsDidChangeNotification`.
If `event` is null, the `NSNotificationCenter` doesnt use it as criteria for delivery to the observer. See [docs](https://developer.apple.com/documentation/foundation/nsnotificationcenter/1411723-addobserverforname?language=objc) for more information.
### `systemPreferences.subscribeWorkspaceNotification(event, callback)` _macOS_
* `event` string
* `event` string | null
* `callback` Function
* `event` string
* `userInfo` Record<string, unknown>
@@ -135,6 +139,8 @@ Returns `number` - The ID of this subscription
Same as `subscribeNotification`, but uses `NSWorkspace.sharedWorkspace.notificationCenter`.
This is necessary for events such as `NSWorkspaceDidActivateApplicationNotification`.
If `event` is null, the `NSWorkspaceNotificationCenter` doesnt use it as criteria for delivery to the observer. See [docs](https://developer.apple.com/documentation/foundation/nsnotificationcenter/1411723-addobserverforname?language=objc) for more information.
### `systemPreferences.unsubscribeNotification(id)` _macOS_
* `id` Integer

View File

@@ -290,7 +290,7 @@ Returns:
* `frameProcessId` Integer
* `frameRoutingId` Integer
Emitted as a server side redirect occurs during navigation. For example a 302
Emitted when a server side redirect occurs during navigation. For example a 302
redirect.
This event will be emitted after `did-start-navigation` and always before the
@@ -508,6 +508,23 @@ Returns:
Emitted when the user is requesting to change the zoom level using the mouse wheel.
#### Event: 'blur'
Emitted when the `WebContents` loses focus.
#### Event: 'focus'
Emitted when the `WebContents` gains focus.
Note that on macOS, having focus means the `WebContents` is the first responder
of window, so switching focus between windows would not trigger the `focus` and
`blur` events of `WebContents`, as the first responder of each window is not
changed.
The `focus` and `blur` events of `WebContents` should only be used to detect
focus change between different `WebContents` and `BrowserView` in the same
window.
#### Event: 'devtools-opened'
Emitted when DevTools is opened.
@@ -736,6 +753,8 @@ first available device will be selected. `callback` should be called with
`deviceId` to be selected, passing empty string to `callback` will
cancel the request.
If no event listener is added for this event, all bluetooth requests will be cancelled.
```javascript
const { app, BrowserWindow } = require('electron')
@@ -1082,7 +1101,7 @@ Returns `string` - The user agent for this web page.
* `css` string
* `options` Object (optional)
* `cssOrigin` string (optional) - Can be either 'user' or 'author'; Specifying 'user' enables you to prevent websites from overriding the CSS you insert. Default is 'author'.
* `cssOrigin` string (optional) - Can be either 'user' or 'author'. Sets the [cascade origin](https://www.w3.org/TR/css3-cascade/#cascade-origin) of the inserted stylesheet. Default is 'author'.
Returns `Promise<string>` - A promise that resolves with a key for the inserted CSS that can later be used to remove the CSS via `contents.removeInsertedCSS(key)`.
@@ -1609,7 +1628,7 @@ app.whenReady().then(() => {
* `options` Object (optional)
* `mode` string - Opens the devtools with specified dock state, can be
`right`, `bottom`, `undocked`, `detach`. Defaults to last used dock state.
`left`, `right`, `bottom`, `undocked`, `detach`. Defaults to last used dock state.
In `undocked` mode it's possible to dock back. In `detach` mode it's not.
* `activate` boolean (optional) - Whether to bring the opened devtools window
to the foreground. The default is `true`.
@@ -1619,6 +1638,8 @@ Opens the devtools.
When `contents` is a `<webview>` tag, the `mode` would be `detach` by default,
explicitly passing an empty `mode` can force using last used dock state.
On Windows, if Windows Control Overlay is enabled, Devtools will be opened with `mode: 'detach'`.
#### `contents.closeDevTools()`
Closes the devtools.
@@ -1837,7 +1858,7 @@ the cursor when dragging.
#### `contents.savePage(fullPath, saveType)`
* `fullPath` string - The full file path.
* `fullPath` string - The absolute file path.
* `saveType` string - Specify the save type.
* `HTMLOnly` - Save only the HTML of the page.
* `HTMLComplete` - Save complete-html page.

View File

@@ -16,7 +16,7 @@ win.loadURL('https://twitter.com')
win.webContents.on(
'did-frame-navigate',
(event, url, isMainFrame, frameProcessId, frameRoutingId) => {
(event, url, httpResponseCode, httpStatusText, isMainFrame, frameProcessId, frameRoutingId) => {
const frame = webFrameMain.fromId(frameProcessId, frameRoutingId)
if (frame) {
const code = 'document.body.innerHTML = document.body.innerHTML.replaceAll("heck", "h*ck")'

View File

@@ -5,8 +5,8 @@
Process: [Renderer](../glossary.md#renderer-process)
`webFrame` export of the Electron module is an instance of the `WebFrame`
class representing the top frame of the current `BrowserWindow`. Sub-frames can
be retrieved by certain properties and methods (e.g. `webFrame.firstChild`).
class representing the current frame. Sub-frames can be retrieved by
certain properties and methods (e.g. `webFrame.firstChild`).
An example of zooming current page to 200%.
@@ -110,9 +110,11 @@ webFrame.setSpellCheckProvider('en-US', {
})
```
### `webFrame.insertCSS(css)`
#### `webFrame.insertCSS(css[, options])`
* `css` string - CSS source code.
* `css` string
* `options` Object (optional)
* `cssOrigin` string (optional) - Can be either 'user' or 'author'. Sets the [cascade origin](https://www.w3.org/TR/css3-cascade/#cascade-origin) of the inserted stylesheet. Default is 'author'.
Returns `string` - A key for the inserted CSS that can later be used to remove
the CSS via `webFrame.removeInsertedCSS(key)`.

View File

@@ -98,6 +98,7 @@ Some examples of valid `urls`:
* `resourceType` string - Can be `mainFrame`, `subFrame`, `stylesheet`, `script`, `image`, `font`, `object`, `xhr`, `ping`, `cspReport`, `media`, `webSocket` or `other`.
* `referrer` string
* `timestamp` Double
* `uploadData` [UploadData[]](structures/upload-data.md) (optional)
* `requestHeaders` Record<string, string>
* `callback` Function
* `beforeSendResponse` Object

View File

@@ -12,10 +12,6 @@ useful for app sub-windows that act as preference panels, or similar, as the
parent can render to the sub-window directly, as if it were a `div` in the
parent. This is the same behavior as in the browser.
When `nativeWindowOpen` is set to false, `window.open` instead results in the
creation of a [`BrowserWindowProxy`](browser-window-proxy.md), a light wrapper
around `BrowserWindow`.
Electron pairs this native Chrome `Window` with a BrowserWindow under the hood.
You can take advantage of all the customization available when creating a
BrowserWindow in the main process by using `webContents.setWindowOpenHandler()`
@@ -34,7 +30,7 @@ because it is invoked in the main process.
* `frameName` string (optional)
* `features` string (optional)
Returns [`BrowserWindowProxy`](browser-window-proxy.md) | [`Window`](https://developer.mozilla.org/en-US/docs/Web/API/Window)
Returns [`Window`](https://developer.mozilla.org/en-US/docs/Web/API/Window) | null
`features` is a comma-separated key-value list, following the standard format of
the browser. Electron will parse `BrowserWindowConstructorOptions` out of this
@@ -64,6 +60,9 @@ window.open('https://github.com', '_blank', 'top=500,left=200,frame=false,nodeIn
`features` will be passed to any registered `webContents`'s
`did-create-window` event handler in the `options` argument.
* `frameName` follows the specification of `windowName` located in the [native documentation](https://developer.mozilla.org/en-US/docs/Web/API/Window/open#parameters).
* When opening `about:blank`, the child window's `WebPreferences` will be copied
from the parent window, and there is no way to override it because Chromium
skips browser side navigation in this case.
To customize or cancel the creation of the window, you can optionally set an
override handler with `webContents.setWindowOpenHandler()` from the main
@@ -105,33 +104,3 @@ mainWindow.webContents.setWindowOpenHandler(({ url }) => {
const childWindow = window.open('', 'modal')
childWindow.document.write('<h1>Hello</h1>')
```
### `BrowserWindowProxy` example
```javascript
// main.js
const mainWindow = new BrowserWindow({
webPreferences: { nativeWindowOpen: false }
})
mainWindow.webContents.setWindowOpenHandler(({ url }) => {
if (url.startsWith('https://github.com/')) {
return { action: 'allow' }
}
return { action: 'deny' }
})
mainWindow.webContents.on('did-create-window', (childWindow) => {
// For example...
childWindow.webContents.on('will-navigate', (e) => {
e.preventDefault()
})
})
```
```javascript
// renderer.js
const windowProxy = window.open('https://github.com/', null, 'minimizable=false')
windowProxy.postMessage('hi', '*')
```

View File

@@ -12,6 +12,44 @@ This document uses the following convention to categorize breaking changes:
* **Deprecated:** An API was marked as deprecated. The API will continue to function, but will emit a deprecation warning, and will be removed in a future release.
* **Removed:** An API or feature was removed, and is no longer supported by Electron.
## Planned Breaking API Changes (20.0)
### Default Changed: renderers without `nodeIntegration: true` are sandboxed by default
Previously, renderers that specified a preload script defaulted to being
unsandboxed. This meant that by default, preload scripts had access to Node.js.
In Electron 20, this default has changed. Beginning in Electron 20, renderers
will be sandboxed by default, unless `nodeIntegration: true` or `sandbox: false`
is specified.
If your preload scripts do not depend on Node, no action is needed. If your
preload scripts _do_ depend on Node, either refactor them to remove Node usage
from the renderer, or explicitly specify `sandbox: false` for the relevant
renderers.
### Removed: `skipTaskbar` on Linux
On X11, `skipTaskbar` sends a `_NET_WM_STATE_SKIP_TASKBAR` message to the X11
window manager. There is not a direct equivalent for Wayland, and the known
workarounds have unacceptable tradeoffs (e.g. Window.is_skip_taskbar in GNOME
requires unsafe mode), so Electron is unable to support this feature on Linux.
## Planned Breaking API Changes (19.0)
*None (yet)*
## Planned Breaking API Changes (18.0)
### Removed: `nativeWindowOpen`
Prior to Electron 15, `window.open` was by default shimmed to use
`BrowserWindowProxy`. This meant that `window.open('about:blank')` did not work
to open synchronously scriptable child windows, among other incompatibilities.
Since Electron 15, `nativeWindowOpen` has been enabled by default.
See the documentation for [window.open in Electron](api/window-open.md)
for more details.
## Planned Breaking API Changes (17.0)
### Removed: `desktopCapturer.getSources` in the renderer
@@ -45,6 +83,16 @@ However, you should consider further restricting the information returned to
the renderer; for instance, displaying a source selector to the user and only
returning the selected source.
### Deprecated: `nativeWindowOpen`
Prior to Electron 15, `window.open` was by default shimmed to use
`BrowserWindowProxy`. This meant that `window.open('about:blank')` did not work
to open synchronously scriptable child windows, among other incompatibilities.
Since Electron 15, `nativeWindowOpen` has been enabled by default.
See the documentation for [window.open in Electron](api/window-open.md)
for more details.
## Planned Breaking API Changes (16.0)
### Behavior Changed: `crashReporter` implementation switched to Crashpad on Linux

View File

@@ -98,45 +98,40 @@ $ gclient sync -f
## Building
**Set the environment variable for chromium build tools**
On Linux & MacOS
```sh
$ cd src
$ export CHROMIUM_BUILDTOOLS_PATH=`pwd`/buildtools
$ gn gen out/Testing --args="import(\"//electron/build/args/testing.gn\") $GN_EXTRA_ARGS"
```
Or on Windows (without the optional argument):
On Windows:
```sh
$ cd src
$ set CHROMIUM_BUILDTOOLS_PATH=%cd%\buildtools
```
**To generate Testing build config of Electron:**
```sh
$ gn gen out/Testing --args="import(\"//electron/build/args/testing.gn\")"
```
This will generate a build directory `out/Testing` under `src/` with
the testing build configuration. You can replace `Testing` with another name,
but it should be a subdirectory of `out`.
Also you shouldn't have to run `gn gen` again—if you want to change the
build arguments, you can run `gn args out/Testing` to bring up an editor.
To see the list of available build configuration options, run `gn args
out/Testing --list`.
**For generating Testing build config of
Electron:**
**To generate Release build config of Electron:**
```sh
$ gn gen out/Testing --args="import(\"//electron/build/args/testing.gn\") $GN_EXTRA_ARGS"
$ gn gen out/Release --args="import(\"//electron/build/args/release.gn\")"
```
**For generating Release (aka "non-component" or "static") build config of
Electron:**
**Note:** This will generate a `out/Testing` or `out/Release` build directory under `src/` with the testing or release build depending upon the configuration passed above. You can replace `Testing|Release` with another names, but it should be a subdirectory of `out`.
```sh
$ gn gen out/Release --args="import(\"//electron/build/args/release.gn\") $GN_EXTRA_ARGS"
```
Also you shouldn't have to run `gn gen` again—if you want to change the build arguments, you can run `gn args out/Testing` to bring up an editor. To see the list of available build configuration options, run `gn args out/Testing --list`.
**To build, run `ninja` with the `electron` target:**
Nota Bene: This will also take a while and probably heat up your lap.
Note: This will also take a while and probably heat up your lap.
For the testing configuration:
@@ -169,13 +164,13 @@ $ ./out/Testing/electron
On linux, first strip the debugging and symbol information:
```sh
electron/script/strip-binaries.py -d out/Release
$ electron/script/strip-binaries.py -d out/Release
```
To package the electron build as a distributable zip file:
```sh
ninja -C out/Release electron:electron_dist_zip
$ ninja -C out/Release electron:electron_dist_zip
```
### Cross-compiling

View File

@@ -7,21 +7,7 @@ Follow the guidelines below for building **Electron itself** on Linux, for the p
## Prerequisites
* At least 25GB disk space and 8GB RAM.
* Python 2.7.x. Some distributions like CentOS 6.x still use Python 2.6.x
so you may need to check your Python version with `python -V`.
Please also ensure that your system and Python version support at least TLS 1.2.
For a quick test, run the following script:
```sh
$ npx @electron/check-python-tls
```
If the script returns that your configuration is using an outdated security
protocol, use your system's package manager to update Python to the latest
version in the 2.7.x branch. Alternatively, visit https://www.python.org/downloads/
for detailed instructions.
* Python >= 3.7.
* Node.js. There are various ways to install Node. You can download
source code from [nodejs.org](https://nodejs.org) and compile it.
Doing so permits installing Node on your own home directory as a standard user.
@@ -29,7 +15,17 @@ Follow the guidelines below for building **Electron itself** on Linux, for the p
* [clang](https://clang.llvm.org/get_started.html) 3.4 or later.
* Development headers of GTK 3 and libnotify.
On Ubuntu, install the following libraries:
On Ubuntu >= 20.04, install the following libraries:
```sh
$ sudo apt-get install build-essential clang libdbus-1-dev libgtk-3-dev \
libnotify-dev libasound2-dev libcap-dev \
libcups2-dev libxtst-dev \
libxss1 libnss3-dev gcc-multilib g++-multilib curl \
gperf bison python3-dbusmock openjdk-8-jre
```
On Ubuntu < 20.04, install the following libraries:
```sh
$ sudo apt-get install build-essential clang libdbus-1-dev libgtk-3-dev \

View File

@@ -6,45 +6,12 @@ Follow the guidelines below for building **Electron itself** on macOS, for the p
## Prerequisites
* macOS >= 10.11.6
* [Xcode](https://developer.apple.com/technologies/tools/) >= 9.0.0
* macOS >= 11.6.0
* [Xcode](https://developer.apple.com/technologies/tools/). The exact version
needed depends on what branch you are building, but the latest version of
Xcode is generally a good bet for building `main`.
* [node.js](https://nodejs.org) (external)
* Python 2.7 with support for TLS 1.2
## Python
Please also ensure that your system and Python version support at least TLS 1.2.
This depends on both your version of macOS and Python. For a quick test, run:
```sh
$ npx @electron/check-python-tls
```
If the script returns that your configuration is using an outdated security
protocol, you can either update macOS to High Sierra or install a new version
of Python 2.7.x. To upgrade Python, use [Homebrew](https://brew.sh/):
```sh
$ brew install python@2 && brew link python@2 --force
```
If you are using Python as provided by Homebrew, you also need to install
the following Python modules:
* [pyobjc](https://pypi.org/project/pyobjc/#description)
You can use `pip` to install it:
```sh
$ pip install pyobjc
```
## macOS SDK
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 12.2](https://download.developer.apple.com/Developer_Tools/Xcode_12.2/Xcode_12.2.xip), and the macOS 11.0 SDK. Building with a newer SDK works too, but the releases currently use the 11.0 SDK.
* Python >= 3.7
## Building Electron

View File

@@ -28,7 +28,7 @@ For C++ and Python, we follow Chromium's [Coding
Style](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/styleguide/styleguide.md).
There is also a script `script/cpplint.py` to check whether all files conform.
The Python version we are using now is Python 2.7.
The Python version we are using now is Python 3.9.
The C++ code uses a lot of Chromium's abstractions and types, so it's
recommended to get acquainted with them. A good place to start is

View File

@@ -50,8 +50,8 @@ In your `api_name.h` file:
```cpp title='api_name.h'
#ifndef SHELL_BROWSER_API_ELECTRON_API_{API_NAME}_H_
#define SHELL_BROWSER_API_ELECTRON_API_{API_NAME}_H_
#ifndef ELECTRON_SHELL_BROWSER_API_ELECTRON_API_{API_NAME}_H_
#define ELECTRON_SHELL_BROWSER_API_ELECTRON_API_{API_NAME}_H_
#include "gin/handle.h"
#include "gin/wrappable.h"

View File

@@ -43,8 +43,9 @@ SRV*c:\code\symbols\*https://msdl.microsoft.com/download/symbols;SRV*c:\code\sym
## Using the symbol server in Visual Studio
![Tools -> Options](https://mdn.mozillademos.org/files/733/symbol-server-vc8express-menu.jpg)
![Symbols Settings](https://mdn.mozillademos.org/files/2497/2005_options.gif)
![Tools -> Options](../images/vs-tools-options.png)
![Symbols Settings](../images/vs-options-debugging-symbols.png)
## Troubleshooting: Symbols will not load

View File

@@ -35,6 +35,28 @@ base::debug::StackTrace().Print();
This will allow you to observe call chains and identify potential issue areas.
## Breakpoint Debugging
> Note that this will increase the size of the build significantly, taking up around 50G of disk space
Write the following file to `electron/.git/info/exclude/debug.gn`
```gn
import("//electron/build/args/testing.gn")
is_debug = true
symbol_level = 2
forbid_non_component_debug_builds = false
```
Then execute:
```sh
$ gn gen out/Debug --args="import(\"//electron/.git/info/exclude/debug.gn\") $GN_EXTRA_ARGS"
$ ninja -C out/Debug electron
```
Now you can use `LLDB` for breakpoint debugging.
## Platform-Specific Debugging
<!-- TODO(@codebytere): add debugging file for Linux-->

View File

@@ -180,7 +180,7 @@ $ git push origin my-branch
### Step 9: Opening the Pull Request
From within GitHub, opening a new pull request will present you with a template
that should be filled out. It can be found [here](../../.github/PULL_REQUEST_TEMPLATE.md).
that should be filled out. It can be found [here](https://github.com/electron/electron/blob/main/.github/PULL_REQUEST_TEMPLATE.md).
If you do not adequately complete this template, your PR may be delayed in being merged as maintainers
seek more information or clarify ambiguities.

View File

@@ -22,7 +22,7 @@ you error would be caught at commit time.
## Unit Tests
If you are not using [build-tools](https://github.com/electron/build-tools),
ensure that that name you have configured for your
ensure that the name you have configured for your
local build of Electron is one of `Testing`, `Release`, `Default`, or
you have set `process.env.ELECTRON_OUT_DIR`. Without these set, Electron will fail
to perform some pre-testing steps.

View File

@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
<title>Hello World!</title>
</head>
<body>
Title: <input id="title"/>
<button id="btn" type="button">Set</button>
<script src="./renderer.js"></script>
</body>
</html>

View File

@@ -0,0 +1,30 @@
const {app, BrowserWindow, ipcMain} = require('electron')
const path = require('path')
function createWindow () {
const mainWindow = new BrowserWindow({
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
ipcMain.on('set-title', (event, title) => {
const webContents = event.sender
const win = BrowserWindow.fromWebContents(webContents)
win.setTitle(title)
})
mainWindow.loadFile('index.html')
}
app.whenReady().then(() => {
createWindow()
app.on('activate', function () {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit()
})

View File

@@ -0,0 +1,5 @@
const { contextBridge, ipcRenderer } = require('electron')
contextBridge.exposeInMainWorld('electronAPI', {
setTitle: (title) => ipcRenderer.send('set-title', title)
})

View File

@@ -0,0 +1,6 @@
const setButton = document.getElementById('btn')
const titleInput = document.getElementById('title')
setButton.addEventListener('click', () => {
const title = titleInput.value
window.electronAPI.setTitle(title)
});

View File

@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
<title>Dialog</title>
</head>
<body>
<button type="button" id="btn">Open a File</button>
File path: <strong id="filePath"></strong>
<script src='./renderer.js'></script>
</body>
</html>

View File

@@ -0,0 +1,32 @@
const {app, BrowserWindow, ipcMain, dialog} = require('electron')
const path = require('path')
async function handleFileOpen() {
const { canceled, filePaths } = await dialog.showOpenDialog()
if (canceled) {
return
} else {
return filePaths[0]
}
}
function createWindow () {
const mainWindow = new BrowserWindow({
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
mainWindow.loadFile('index.html')
}
app.whenReady().then(() => {
ipcMain.handle('dialog:openFile', handleFileOpen)
createWindow()
app.on('activate', function () {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit()
})

View File

@@ -0,0 +1,5 @@
const { contextBridge, ipcRenderer } = require('electron')
contextBridge.exposeInMainWorld('electronAPI',{
openFile: () => ipcRenderer.invoke('dialog:openFile')
})

View File

@@ -0,0 +1,7 @@
const btn = document.getElementById('btn')
const filePathElement = document.getElementById('filePath')
btn.addEventListener('click', async () => {
const filePath = await window.electronAPI.openFile()
filePathElement.innerText = filePath
})

View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
<title>Menu Counter</title>
</head>
<body>
Current value: <strong id="counter">0</strong>
<script src="./renderer.js"></script>
</body>
</html>

View File

@@ -0,0 +1,48 @@
const {app, BrowserWindow, Menu, ipcMain} = require('electron')
const path = require('path')
function createWindow () {
const mainWindow = new BrowserWindow({
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
const menu = Menu.buildFromTemplate([
{
label: app.name,
submenu: [
{
click: () => mainWindow.webContents.send('update-counter', 1),
label: 'Increment',
},
{
click: () => mainWindow.webContents.send('update-counter', -1),
label: 'Decrement',
}
]
}
])
Menu.setApplicationMenu(menu)
mainWindow.loadFile('index.html')
// Open the DevTools.
mainWindow.webContents.openDevTools()
}
app.whenReady().then(() => {
ipcMain.on('counter-value', (_event, value) => {
console.log(value) // will print value to Node console
})
createWindow()
app.on('activate', function () {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit()
})

View File

@@ -0,0 +1,5 @@
const { contextBridge, ipcRenderer } = require('electron')
contextBridge.exposeInMainWorld('electronAPI', {
handleCounter: (callback) => ipcRenderer.on('update-counter', callback)
})

View File

@@ -0,0 +1,8 @@
const counter = document.getElementById('counter')
window.electronAPI.handleCounter((event, value) => {
const oldValue = Number(counter.innerText)
const newValue = oldValue + value
counter.innerText = newValue
event.sender.send('counter-value', newValue)
})

View File

@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self'"
/>
<meta
http-equiv="X-Content-Security-Policy"
content="default-src 'self'; script-src 'self'"
/>
<title>Hello from Electron renderer!</title>
</head>
<body>
<h1>Hello from Electron renderer!</h1>
<p>👋</p>
<p id="info"></p>
</body>
<script src="./renderer.js"></script>
</html>

View File

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

View File

@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self'"
/>
<meta
http-equiv="X-Content-Security-Policy"
content="default-src 'self'; script-src 'self'"
/>
<title>Hello from Electron renderer!</title>
</head>
<body>
<h1>Hello from Electron renderer!</h1>
<p>👋</p>
<p id="info"></p>
</body>
<script src="./renderer.js"></script>
</html>

View File

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

View File

@@ -0,0 +1,7 @@
const { contextBridge } = require('electron');
contextBridge.exposeInMainWorld('versions', {
node: () => process.versions.node,
chrome: () => process.versions.chrome,
electron: () => process.versions.electron,
});

View File

@@ -0,0 +1,2 @@
const information = document.getElementById('info');
information.innerText = `This app is using Chrome (v${versions.chrome()}), Node.js (v${versions.node()}), and Electron (v${versions.electron()})`;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

View File

@@ -1,26 +1,26 @@
# Application Distribution
---
title: 'Application Packaging'
description: 'To distribute your app with Electron, you need to package and rebrand it. To do this, you can either use specialized tooling or manual approaches.'
slug: application-distribution
hide_title: false
---
## Overview
To distribute your app with Electron, you need to package and rebrand it.
To do this, you can either use specialized tooling or manual approaches.
To distribute your app with Electron, you need to package and rebrand it. To do this, you
can either use specialized tooling or manual approaches.
## With tooling
You can use the following tools to distribute your application:
There are a couple tools out there that exist to package and distribute your Electron app.
We recommend using [Electron Forge](https://www.electronforge.io). You can check out
its documentation directly, or refer to the [Packaging and Distribution](./tutorial-5-packaging.md)
part of the Electron tutorial.
* [electron-forge](https://github.com/electron-userland/electron-forge)
* [electron-builder](https://github.com/electron-userland/electron-builder)
* [electron-packager](https://github.com/electron/electron-packager)
## Manual packaging
These tools will take care of all the steps you need to take to end up with a
distributable Electron application, such as bundling your application,
rebranding the executable, and setting the right icons.
If you prefer the manual approach, there are 2 ways to distribute your application:
You can check the example of how to package your app with `electron-forge` in
the [Quick Start guide](quick-start.md#package-and-distribute-your-application).
## Manual distribution
- With prebuilt binaries
- With an app source code archive
### With prebuilt binaries
@@ -29,21 +29,19 @@ binaries](https://github.com/electron/electron/releases). Next, the folder
containing your app should be named `app` and placed in Electron's resources
directory as shown in the following examples.
> *NOTE:* the location of Electron's prebuilt binaries is indicated
:::note
The location of Electron's prebuilt binaries is indicated
with `electron/` in the examples below.
:::
*On macOS:*
```plaintext
```plain title='macOS'
electron/Electron.app/Contents/Resources/app/
├── package.json
├── main.js
└── index.html
```
*On Windows and Linux:*
```plaintext
```plain title='Windows and Linux'
electron/resources/app
├── package.json
├── main.js
@@ -54,9 +52,9 @@ Then execute `Electron.app` on macOS, `electron` on Linux, or `electron.exe`
on Windows, and Electron will start as your app. The `electron` directory
will then be your distribution to deliver to users.
### With an app source code archive
### With an app source code archive (asar)
Instead of from shipping your app by copying all of its source files, you can
Instead of shipping your app by copying all of its source files, you can
package your app into an [asar] archive to improve the performance of reading
files on platforms like Windows, if you are not already using a bundler such
as Parcel or Webpack.
@@ -65,16 +63,12 @@ To use an `asar` archive to replace the `app` folder, you need to rename the
archive to `app.asar`, and put it under Electron's resources directory like
below, and Electron will then try to read the archive and start from it.
*On macOS:*
```plaintext
```plain title='macOS'
electron/Electron.app/Contents/Resources/
└── app.asar
```
*On Windows and Linux:*
```plaintext
```plain title='Windows'
electron/resources/
└── app.asar
```
@@ -87,47 +81,44 @@ You can find more details on how to use `asar` in the
After bundling your app into Electron, you will want to rebrand Electron
before distributing it to users.
#### macOS
- **Windows:** You can rename `electron.exe` to any name you like, and edit
its icon and other information with tools like [rcedit](https://github.com/electron/rcedit).
- **Linux:** You can rename the `electron` executable to any name you like.
- **macOS:** You can rename `Electron.app` to any name you want, and you also have to rename
the `CFBundleDisplayName`, `CFBundleIdentifier` and `CFBundleName` fields in the
following files:
You can rename `Electron.app` to any name you want, and you also have to rename
the `CFBundleDisplayName`, `CFBundleIdentifier` and `CFBundleName` fields in the
following files:
- `Electron.app/Contents/Info.plist`
- `Electron.app/Contents/Frameworks/Electron Helper.app/Contents/Info.plist`
* `Electron.app/Contents/Info.plist`
* `Electron.app/Contents/Frameworks/Electron Helper.app/Contents/Info.plist`
You can also rename the helper app to avoid showing `Electron Helper` in the
Activity Monitor, but make sure you have renamed the helper app's executable
file's name.
You can also rename the helper app to avoid showing `Electron Helper` in the
Activity Monitor, but make sure you have renamed the helper app's executable
file's name.
The structure of a renamed app would be like:
The structure of a renamed app would be like:
```plaintext
```plain
MyApp.app/Contents
├── Info.plist
├── MacOS/
│   └── MyApp
└── MyApp
└── Frameworks/
└── MyApp Helper.app
├── Info.plist
└── MacOS/
   └── MyApp Helper
└── MyApp Helper
```
#### Windows
:::note
You can rename `electron.exe` to any name you like, and edit its icon and other
information with tools like [rcedit](https://github.com/electron/rcedit).
#### Linux
You can rename the `electron` executable to any name you like.
### Rebranding by rebuilding Electron from source
It is also possible to rebrand Electron by changing the product name and
it is also possible to rebrand Electron by changing the product name and
building it from source. To do this you need to set the build argument
corresponding to the product name (`electron_product_name = "YourProductName"`)
in the `args.gn` file and rebuild.
Keep in mind this is not recommended as setting up the environment to compile
from source is not trivial and takes significant time.
:::
[asar]: https://github.com/electron/asar

View File

@@ -58,8 +58,6 @@ To run your tests:
$ npx wdio run wdio.conf.js
```
[chrome-driver]: https://sites.google.com/chromium.org/driver/
### With Selenium
[Selenium](https://www.selenium.dev/) is a web automation framework that
@@ -116,6 +114,142 @@ driver.wait(() => {
driver.quit()
```
## Using Playwright
[Microsoft Playwright](https://playwright.dev) is an end-to-end testing framework built
using browser-specific remote debugging protocols, similar to the [Puppeteer] headless
Node.js API but geared towards end-to-end testing. Playwright has experimental Electron
support via Electron's support for the [Chrome DevTools Protocol] (CDP).
### Install dependencies
You can install Playwright through your preferred Node.js package manager. The Playwright team
recommends using the `PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD` environment variable to avoid
unnecessary browser downloads when testing an Electron app.
```sh npm2yarn
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install --save-dev playwright
```
Playwright also comes with its own test runner, Playwright Test, which is built for end-to-end
testing. You can also install it as a dev dependency in your project:
```sh npm2yarn
npm install --save-dev @playwright/test
```
:::caution Dependencies
This tutorial was written `playwright@1.16.3` and `@playwright/test@1.16.3`. Check out
[Playwright's releases][playwright-releases] page to learn about
changes that might affect the code below.
:::
:::info Using third-party test runners
If you're interested in using an alternative test runner (e.g. Jest or Mocha), check out
Playwright's [Third-Party Test Runner][playwright-test-runners] guide.
:::
### Write your tests
Playwright launches your app in development mode through the `_electron.launch` API.
To point this API to your Electron app, you can pass the path to your main process
entry point (here, it is `main.js`).
```js {5}
const { _electron: electron } = require('playwright')
const { test } = require('@playwright/test')
test('launch app', async () => {
const electronApp = await electron.launch({ args: ['main.js'] })
// close app
await electronApp.close()
})
```
After that, you will access to an instance of Playwright's `ElectronApp` class. This
is a powerful class that has access to main process modules for example:
```js {6-11}
const { _electron: electron } = require('playwright')
const { test } = require('@playwright/test')
test('get isPackaged', async () => {
const electronApp = await electron.launch({ args: ['main.js'] })
const isPackaged = await electronApp.evaluate(async ({ app }) => {
// This runs in Electron's main process, parameter here is always
// the result of the require('electron') in the main app script.
return app.isPackaged
})
console.log(isPackaged) // false (because we're in development mode)
// close app
await electronApp.close()
})
```
It can also create individual [Page][playwright-page] objects from Electron BrowserWindow instances.
For example, to grab the first BrowserWindow and save a screenshot:
```js {6-7}
const { _electron: electron } = require('playwright')
const { test } = require('@playwright/test')
test('save screenshot', async () => {
const electronApp = await electron.launch({ args: ['main.js'] })
const window = await electronApp.firstWindow()
await window.screenshot({ path: 'intro.png' })
// close app
await electronApp.close()
})
```
Putting all this together using the PlayWright Test runner, let's create a `example.spec.js`
test file with a single test and assertion:
```js title='example.spec.js'
const { _electron: electron } = require('playwright')
const { test, expect } = require('@playwright/test')
test('example test', async () => {
const electronApp = await electron.launch({ args: ['.'] })
const isPackaged = await electronApp.evaluate(async ({ app }) => {
// This runs in Electron's main process, parameter here is always
// the result of the require('electron') in the main app script.
return app.isPackaged;
});
expect(isPackaged).toBe(false);
// Wait for the first BrowserWindow to open
// and return its Page object
const window = await electronApp.firstWindow()
await window.screenshot({ path: 'intro.png' })
// close app
await electronApp.close()
});
```
Then, run Playwright Test using `npx playwright test`. You should see the test pass in your
console, and have an `intro.png` screenshot on your filesystem.
```console
☁ $ npx playwright test
Running 1 test using 1 worker
✓ example.spec.js:4:1 example test (1s)
```
:::info
Playwright Test will automatically run any files matching the `.*(test|spec)\.(js|ts|mjs)` regex.
You can customize this match in the [Playwright Test configuration options][playwright-test-config].
:::
:::tip Further reading
Check out Playwright's documentation for the full [Electron][playwright-electron]
and [ElectronApplication][playwright-electronapplication] class APIs.
:::
## Using a custom test driver
It's also possible to write your own custom driver using Node.js' built-in IPC-over-STDIO.
@@ -263,3 +397,13 @@ test.after.always('cleanup', async t => {
await app.stop()
})
```
[chrome-driver]: https://sites.google.com/chromium.org/driver/
[Puppeteer]: https://github.com/puppeteer/puppeteer
[playwright-electron]: https://playwright.dev/docs/api/class-electron/
[playwright-electronapplication]: https://playwright.dev/docs/api/class-electronapplication
[playwright-page]: https://playwright.dev/docs/api/class-page
[playwright-releases]: https://github.com/microsoft/playwright/releases
[playwright-test-config]: https://playwright.dev/docs/api/class-testconfig#test-config-test-match
[playwright-test-runners]: https://playwright.dev/docs/test-runners/
[Chrome DevTools Protocol]: https://chromedevtools.github.io/devtools-protocol/

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