Compare commits

...

1867 Commits

Author SHA1 Message Date
Electron Bot
4f281e3d31 Bump v11.0.1 2020-11-17 02:20:52 -08:00
trop[bot]
eb2710e483 fix: Cannot read property 'setDockSide' of undefined (#26514)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-11-16 16:05:51 -05:00
trop[bot]
7a15dca09c fix: do not use crashpad APIs in the MAS build (#26513)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-11-16 11:39:56 -08:00
Electron Bot
387a15f582 Bump v11.0.0 2020-11-16 06:29:41 -08:00
Jeremy Rose
38fab63863 chore: cherry-pick 275865e8c237 from chromium (#26470)
* chore: cherry-pick 275865e8c237 from chromium

* resolve conflict

* update patches

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Electron Bot <electron@github.com>
2020-11-16 09:27:25 -05:00
Milan Burda
1b156c53fd fix: ensure that internal messages are sent from the main process (#26440) 2020-11-16 15:30:47 +09:00
Electron Bot
e4f3f9e1db chore: bump chromium to 87.0.4280.60 (11-x-y) (#26483) 2020-11-13 15:36:26 -08:00
Jeremy Rose
612acc04b0 fix: cherry-pick 8f5a08079948 from chromium (#26469) 2020-11-13 15:14:18 -08:00
Electron Bot
717271095e Bump v11.0.0-beta.23 2020-11-13 13:53:04 -08:00
trop[bot]
76e54ae0c8 feat: add app.runningUnderRosettaTranslation to detect running under rosetta (#26492)
* feat: add app.isRunningUnderRosettaTranslation to detect running under rosetta

* chore: fixup

* chore: make const

* chore: add missing import

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-11-13 13:51:05 -08:00
Electron Bot
0c21ce02c1 Bump v11.0.0-beta.22 2020-11-12 07:01:59 -08:00
trop[bot]
01fa45fc50 feat: add 'resized' event to BrowserWindow (#26454)
Also adds 'moved' event to BrowserWindow on Windows.

Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>
2020-11-12 09:47:01 -05:00
trop[bot]
832ce14bda build: fix usage of octokit/rest and make uploading better (#26389)
* build: fix usage of octokit/rest and make uploading better

* Pull in change from #26414

* Update with changes from #26425

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2020-11-11 14:30:58 -05:00
trop[bot]
07318e5146 fix: renderer crash on setImmediate (#26424)
* fix: renderer crash on setImmediate

* spec: add a crash case

* fix: ensure env exists

* Update spec-main/fixtures/crash-cases/setimmediate-renderer-crash/index.js

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

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-11-11 10:23:30 -05:00
trop[bot]
79dff5f782 chore(extensions): remove old renderer code (#26441)
Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>
2020-11-11 10:15:27 -05:00
Samuel Attard
9c9e40294e build: auto-push patch file changes (#26235) (#26431)
* build: auto-push patch file changes

* chore: change patch for testing purposes

* build: remove stray log

* build: push as electron bot

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

* chore: fix linting
2020-11-10 13:47:51 -08:00
trop[bot]
5b617a7f39 chore: synchronously destroy WebContents on event prevented (#26418)
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-11-10 11:27:32 -05:00
trop[bot]
ff717d4a93 chore: cleanup inline HTML in docs (#26392)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2020-11-10 10:49:47 -05:00
trop[bot]
51bced4ee3 fix: make draggable regions work when devtools is opened on macOS (#26395)
* fix: make draggable region work when devtools is open

* fix: update draggable regions when resizing

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-11-10 10:46:40 -05:00
Shelley Vohr
b0fd7cf430 fix: honor pageRanges when printing (#25600)
* fix: honor pageRanges when printing

* Update docs/api/web-contents.md

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

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2020-11-10 10:06:57 -05:00
Electron Bot
a56c1d3f2f Bump v11.0.0-beta.21 2020-11-09 07:02:10 -08:00
John Kleinschmidt
98b6403e3b feat: correctly identify permissions when using setPermissionRequestHandler (#26172) (#26353)
(cherry picked from commit 7f9b21daa0)
2020-11-09 09:58:35 -05:00
trop[bot]
e9c12688e6 refactor: store <webview> attributes as typed Map (#26330)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-11-05 15:29:06 -05:00
Electron Bot
8d88d1e2ed chore: bump chromium to 87.0.4280.47 (11-x-y) (#26351)
* chore: bump chromium in DEPS to 87.0.4280.47

* update patches

* Make sure angle has full git info

Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-11-05 15:11:11 -05:00
Electron Bot
2e730fe48b Bump v11.0.0-beta.20 2020-11-05 07:01:36 -08:00
Electron Bot
88de23b241 chore: bump chromium to 87.0.4280.40 (11-x-y) (#26280)
* chore: bump chromium in DEPS to 87.0.4280.40

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-11-04 15:35:28 -05:00
trop[bot]
3faa2c2a46 fix: window.open not accepting size values with "px" at the end (#26334)
* fix: use parseInt to parse sizes

* fix: pass radix to parseInt

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

Co-authored-by: Abhishek Shingane <abhisheks@iitbhilai.ac.in>
Co-authored-by: Cheng Zhao <github@zcbenz.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-11-04 10:59:49 -08:00
trop[bot]
cab14277b8 fix: draggable region edge calculation on resize (#26320)
* fix: draggable region edge calculation on resize

* Feedback from review

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-11-04 11:17:14 +09:00
Electron Bot
ce243f8172 Bump v11.0.0-beta.19 2020-11-02 07:01:23 -08:00
Shelley Vohr
da4790d944 build: only check patch diffs in testing builds (#26283)
* build: only check patch diffs in testing builds

* Fixup patch indices
2020-11-02 18:56:13 +09:00
Charles Kerr
4088566a4d fix: nativeTheme.themeSource = 'dark' on windows (#26238)
Manually backports #25373.
2020-11-02 16:20:57 +09:00
Shelley Vohr
ac425c0cf3 fix: draggable regions exclusively on BrowserViews (#26259) 2020-11-02 16:07:04 +09:00
trop[bot]
ccb471e5d5 chore: change some for loops to range-based (#26263)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2020-10-30 09:58:39 -07:00
Robo
f44880f065 fix: Initialize logging for crashpad (#26250)
* fix: Initialize logging for crashpad

* chore: update mini_chromium

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

https://chromium-review.googlesource.com/c/chromium/src/+/2490880
2020-10-29 16:23:51 -07:00
trop[bot]
7ec001486e fix: hover text only working when VO enabled (#26246)
* fix: hover text only working when VO enabled

* chore: simplify conditional

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-10-29 08:51:45 -07:00
David Sanders
dd3fbae447 chore: use auto to avoid repeating type (#26254) 2020-10-29 08:50:27 -07:00
Electron Bot
e9710f6a77 Bump v11.0.0-beta.18 2020-10-29 08:01:25 -07:00
trop[bot]
699a771288 fix: transparently package bundles as zip archives (#26217)
* refactor: move FileSelectHelper to own file

* fix: zip packages on macOS

* Thread safety, it's good actually

* misc cleanup

* Remove some unused includes

* Better ref management

* Use upstream file_select_helper_mac

* Small fixes

* Put back file_select_helper_mac

* observe RenderWidgetHost

* fix ref-counting and add some guards

* Address review

* Remove refcounting for FileSelectHelper

* Remove unnecessary GetWeakPtr

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-10-29 10:01:32 -04:00
trop[bot]
f679dd8ad7 fix: build with printing disabled (#26249)
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-10-29 02:18:26 -07:00
trop[bot]
9f1b913793 fix: set app locale after user's script is loaded (#26226)
* fix: set app locale after user's script is loaded

* fix: set LC_ALL env on Linux

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-10-28 15:20:10 -04:00
Charles Kerr
9328725e93 perf: improve heap snapshot performance (#26230)
Fixes #24509.

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

* Update electron_api_power_monitor_win.cc

* Update electron_api_power_monitor_win.cc

* syntax

* Update electron_api_power_monitor_win.cc

* Update electron_api_power_monitor_win.cc

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-10-28 12:39:49 -05:00
trop[bot]
d93cb942fc build: rename the v8 context snapshot on arm64 macOS builds (#26202)
* chore: rename the v8 context snapshot on arm64 macOS builds

* build: update zip manifests

* build: update to upstream patch

* chore: update patches

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-10-27 20:11:24 -04:00
trop[bot]
4d280ed483 docs: fix app 'ready' event arguments (#26174)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-10-26 20:38:42 -07:00
David Sanders
bb69770267 chore: bump @electron/docs-parser version (#26155) 2020-10-26 11:50:00 -07:00
David Sanders
d4112d38de chore: prefer empty() check for readability (#26157) 2020-10-26 11:48:12 -07:00
Electron Bot
b1eec448f0 Bump v11.0.0-beta.17 2020-10-26 08:01:55 -07:00
trop[bot]
becfe25528 fix: wasm code generation in the renderer (#25829)
* fix: wasm code generation in the renderer

* Fixup patches

* update patches

* update patches

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-10-26 18:19:09 +09:00
Shelley Vohr
a461001677 fix: crash in printing on Windows (#26062)
* fix: crash in printing on Windows

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-10-26 12:11:36 +09:00
Electron Bot
aa15eeed78 Bump v11.0.0-beta.16 2020-10-23 13:10:26 -07:00
Samuel Attard
6daac26f49 Revert "Bump v11.0.0-beta.16"
This reverts commit 2b1004919d.
2020-10-23 13:09:17 -07:00
trop[bot]
3551c81cc5 fix: setSimpleFullScreen shows traffic light in frameless window (#26127)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-10-23 11:06:24 -07:00
Electron Bot
2b1004919d Bump v11.0.0-beta.16 2020-10-23 10:20:48 -07:00
Samuel Attard
d200b9192a revert: "fix: reply notifs sometimes destroyed too early" (#25247) (#26131)
* Revert "fix: reply notifs sometimes destroyed too early (#25086)"

This reverts commit bea6c9e4e1.

* nothing
2020-10-23 10:18:42 -07:00
Samuel Attard
c2e8704683 fix: re-enable the spellchecker when new language list set (#26119) (#26129)
* fix: re-enable the spellchecker when new language list set

Chromium recently added prefs logic to disable the spellchecker if the list of languages is empty, but the logic to re-enable if the languages are provided again lives in another part of Chromium.  This change makes it so our API re-enables the spellchecker correctly when required.

* chore: fix lint
2020-10-23 10:18:30 -07:00
Electron Bot
0b2862b184 chore: bump chromium to 87.0.4280.27 (11-x-y) (#25993)
* chore: bump chromium in DEPS to 87.0.4280.20

* update patches

* test: disable flaky arm tests (#26046)

* tests: disable flaking test on all arm platforms

* tests: disable flaky did-change-theme-color tests on WOA

(cherry picked from commit 4ce7ca6cfb)

* 2478082: Make window cloaking and uncloaking trigger occlusion calculation

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

Fixes visibility issues.

* Revert "2478082: Make window cloaking and uncloaking trigger occlusion calculation"

This reverts commit 5ff8cc8c83.

* ci: disable CalculateNativeWinOcclusion for woa (#26001)

(cherry picked from commit 708cf44d19)

* Update appveyor.yml

disable CalculateNativeWinOcclusion due to visibility issues

* chore: bump chromium in DEPS to 87.0.4280.27

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: Robo <hop2deep@gmail.com>
2020-10-22 17:01:59 -04:00
trop[bot]
d959222bb8 fix: return early on promise rejection (#26111)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2020-10-22 13:32:06 -07:00
Jeremy Rose
e5550e5bad chore: backport fix for ARIA TreeGrid rows not being announced by VoiceOver (#26036)
* chore: cherry-pick 2f5b8357dca2 from chromium

* update patches
2020-10-22 12:57:31 -07:00
trop[bot]
8546f98a87 fix: release NSAlert properly (#26099)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-10-22 08:09:21 -07:00
Electron Bot
7a6965087c Bump v11.0.0-beta.15 2020-10-22 08:02:26 -07:00
trop[bot]
2558455be4 fix: crash when printing (#26047)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-10-20 09:08:14 -07:00
trop[bot]
65fdfc1e16 perf: remove GC timer that fired once per minute. (#26051)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-10-20 14:35:51 +09:00
trop[bot]
139e20367f fix: update squirrel.mac to handle bug in Big Sur (#25906)
Fixes #25626

This is not the greatest workaround but at least it works.

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-10-20 10:50:22 +09:00
trop[bot]
e84aa04bb5 fix: Save As PDF from PDF Preview (#26012)
* fix: Save As PDF from PDF Preview

* Address review feedback

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-10-20 10:45:34 +09:00
David Sanders
7a06ae575e chore: bump @electron/docs-parser to get fix (#25974) 2020-10-20 10:34:33 +09:00
trop[bot]
460594480f build: fix invocation of cpplint on Windows (#26041)
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2020-10-19 19:17:57 -05:00
trop[bot]
6e676c3695 chore: tweak branch detection in release notes. (#26037)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-10-19 15:36:12 -07:00
Michaela Laurencin
e6fa69bfd2 fix: correct null pointer checks in autoresizing browser views (#25956)
Co-authored-by: mlaurencin <mlaurencin@microsoft.com>
2020-10-19 09:26:13 -07:00
Electron Bot
df3fa7ddb7 Bump v11.0.0-beta.14 2020-10-19 08:01:43 -07:00
Robo
c090fbfd11 chore: fix visibility tests on windows (#25991)
* disable CalculateNativeWinOcclusion on win ci

* Update appveyor.yml

* disable CalculateNativeWinOcclusion for woa

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-10-16 11:13:31 -07:00
trop[bot]
6d99158379 fix: maximized frameless window bleeding to other monitors (#25978)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-10-15 20:05:03 -07:00
Electron Bot
bb11bdce36 Bump v11.0.0-beta.13 2020-10-15 08:02:38 -07:00
trop[bot]
ca163f9cf7 docs: move breaking-changes-ns.md contents to breaking-changes.md (#25947)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-10-15 10:51:21 +09:00
trop[bot]
5598025884 fix: pass module resolution paths to wrapped function (#25945)
Co-authored-by: Matt Kane <matt@gatsbyjs.com>
2020-10-15 10:49:07 +09:00
trop[bot]
df82bbab43 feat: add support for preventing the system context menu (#25835)
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2020-10-14 18:37:41 -07:00
Michaela Laurencin
ed5fd9c910 fix: notifications successfully never timeout with included flag (#25902)
* Backport changes for notification timeout neber to version 11

* fix: notifications successfully never timeout with included flag

* Add back SetXmlAudioSilent

Co-authored-by: mlaurencin <mlaurencin@microsoft.com>
2020-10-13 18:22:33 -07:00
Shelley Vohr
0ac14ce30c fix: uv loop polling when render process reuse enabled (#25922) 2020-10-14 10:18:42 +09:00
trop[bot]
3793cfc0ff fix: NativeImage.getScaleFactors returns correct scales (#25903) 2020-10-13 15:24:11 -07:00
Electron Bot
1c8377967d Bump v11.0.0-beta.12 2020-10-13 13:39:53 -07:00
John Kleinschmidt
485612ae68 build: fix 11-x-y compiler errors (#25927)
* Add whole src\third_party\angle\.git directory

This directory is needed in order to properly generate gen/angle/angle_commit.h

* fix: correct calling convention for Windows on Arm

https://chromium-review.googlesource.com/c/v8/v8/+/2440717
(cherry picked from commit 0041f5aaa6)

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-10-13 16:37:27 -04:00
John Kleinschmidt
4016def2d0 Revert "Bump v11.0.0-beta.12"
This reverts commit 7a669cbbb0.
2020-10-13 16:36:33 -04:00
John Kleinschmidt
c35a67f31e Revert "Bump v11.0.0-beta.13"
This reverts commit fd5896919b.
2020-10-13 16:36:22 -04:00
Electron Bot
fd5896919b Bump v11.0.0-beta.13 2020-10-12 08:02:17 -07:00
Electron Bot
7a669cbbb0 Bump v11.0.0-beta.12 2020-10-09 14:21:33 -07:00
Electron Bot
8acf548c62 Revert "Bump v11.0.0-beta.12"
This reverts commit dc9282d6ff.
2020-10-09 14:15:32 -07:00
Electron Bot
dc9282d6ff Bump v11.0.0-beta.12 2020-10-09 12:12:22 -07:00
Electron Bot
a4cb3e2af9 chore: bump chromium to 87.0.4280.11 (11-x-y) (#25802)
* chore: bump chromium in DEPS to 87.0.4280.6

* chore: bump chromium in DEPS to 87.0.4280.11

* chore: update patches

* Add deprecated_default_sources_assignment_filter variable

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

* 2426564: Remove global sources assignment filter value

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

* Remove set_sources_filter import

* chore: fixup printing patch

* Add DragOperation and AllowedDragOperations Mojo types

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

* Add DragOperation and AllowedDragOperations Mojo types

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

* Remove several references to BrowserPlugin from content

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

* Remove SurfaceEmbeddingTime and LocalSurfaceIdAllocation

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

* Remove several references to BrowserPlugin from content

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

* Service Manager embedders switches have been removed or moved

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

* Remove SurfaceEmbeddingTime and LocalSurfaceIdAllocation

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

* [XProto] Remove usage of Xlib Visuals

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

* Implement tabs.removeCSS in electrons TabsExecuteScriptFunction

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

* Remove lossy ConvertSizeToPixel() methods

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

* Remove all keyboard related usage of Xlib

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

* fix: use parent namespace for zygote switches

* ConvertRectToPixel methods have been removed

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

* impl SortingLSH service

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

* chore: update patches

* chore: fix servicemanager removed namespace

* chore: revert removed methods

* chore: update patches

* ExtensionURLLoaderFactory is now owned by its receivers

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

* chore: fix linting

* Skip Angle manifest file

https://chromium-review.googlesource.com/c/angle/angle/+/2425197

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-10-09 12:06:07 -07:00
trop[bot]
1eea063c3a fix: suppress worldSafe warning emitted from security checks (#25828)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-10-08 20:12:33 -07:00
trop[bot]
583e2b76d9 ci: fixup doc only check on Windows (#25838)
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-10-08 21:38:27 -04:00
trop[bot]
ca215070e9 test: improve app 'session-created' event spec (#25803)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-10-08 09:39:05 -07:00
trop[bot]
9852e1f190 fix: window.open doesn't work correctly in child window (#25816)
If speculative render view host is deleted during naviagation to
page we try to open with call to window.open window is destroyed
right after it is created. It may happen when naviagation triggers
redirect from http to https. To void that we should emit event
current-render-view-deleted only when render view host which was
destroyed is the current webcontent's rvh.

Co-authored-by: Cezary Kulakowski <cezary@openfin.co>
2020-10-08 09:38:42 -07:00
trop[bot]
9ce7d133d8 chore: use noop ShouldAbortOnUncaughtException cb (#25792)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-10-06 14:30:20 -07:00
Electron Bot
c157521bd0 chore: bump chromium to 87.0.4276.0 (11-x-y) (#25488)
* chore: bump chromium in DEPS to 87.0.4265.1

* chore: bump chromium in DEPS to 87.0.4266.2

* chore: bump chromium in DEPS to 87.0.4267.1

* update patches

* chore: bump chromium in DEPS to 87.0.4270.0

* Update patches

* Move content::WebPreferences struct to Blink

https://chromium-review.googlesource.com/c/chromium/src/+/2397670
(cherry picked from commit 5c98c5ebf4)

* viz: Rename RenderPass to CompositorRenderPass (and related types).

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

* 2320268: Migrate DragHostMsg_StartDragging to Mojo

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

* Make FileURLLoaderFactory always owned by its |receivers_|.

https://chromium-review.googlesource.com/c/chromium/src/+/2337411
(cherry picked from commit 284abad17d)

* fix: add a patch to remove deprecated factory

(cherry picked from commit 98c9616829)
Co-Authored-By: Robo <hop2deep@gmail.com>

* fixup patch

(cherry picked from commit 98c9616829)
Co-Authored-By: Robo <hop2deep@gmail.com>

* Add MIME sniffer overloads that take base::StringPieces

https://chromium-review.googlesource.com/c/chromium/src/+/2382896
(cherry picked from commit 211fd4f8f0)

* chore: implement GetSurveyAPIKey

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2362182
(cherry picked from commit 6c539bc6fc)

* 2415752: Reland "Reland "OOR-CORS: Remove BlinkCORS supporting code outside Blink""

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

* Make FileURLLoaderFactory always owned by its |receivers_|.

https://chromium-review.googlesource.com/c/chromium/src/+/2337411
(cherry picked from commit 507eb0965f)

* fixup! Make FileURLLoaderFactory always owned by its |receivers_|.

(cherry picked from commit e19400b4e2)

* 2418471: PDF Viewer update: Add missing aria-labels to various buttons.

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

* chore: bump chromium in DEPS to 87.0.4271.0

* Refactor WebContentSettingsClient to dedupe AllowXYZ methods

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

* 2402123: Use end date when deleting http auth cache

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

* [printing] Move PrintHostMsg_PreviewIds to print.mojom

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

* update patches

* 2401303: Move content/browser/frame_host/* over to content/browser/renderer_host/

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

* Introduce NonNetworkURLLoaderFactoryBase class.

https://chromium-review.googlesource.com/c/chromium/src/+/2357559
(cherry picked from commit 33e2e12114)

* fix: add a patch to remove deprecated factory

(cherry picked from commit 98c9616829)

* chore: non_network_url_loader_factory_base was moved

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

* chore: replace CreateWebUIURLLoader with CreateWebUIURLLoaderFactory

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2358309
(cherry picked from commit 40bfaa5ea4)

* 2346803: Study whether blocking of requests via webRequest is fingerprintable

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

* lint cleanup

* chore: bump chromium in DEPS to 87.0.4272.0

* update patches

* 2387901: Accessing C++ enums in Java for WebBluetooth

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

* chore: bump chromium in DEPS to 87.0.4273.0

* Update patches

(cherry picked from commit b389d4adca71e268c390c41370e87033b69c649c)

* chore: bump chromium in DEPS to 87.0.4274.0

* chore: bump chromium in DEPS to 87.0.4275.0

* chore: bump chromium in DEPS to 87.0.4276.0

* update patches

* 2418443: Explicit use of deprecated global sources assignment filter

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

* fixup 2418443: Explicit use of deprecated global sources assignment filter

* Use 87.0.4274.2 for now

* 2401847: Cache Storage Permissions on ContentSettingsClientImpl

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

* 2418568: Remove ConvertPointToPixel() methods.

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

* 2419388: Rename Button methods to be suitable for builders and properties.

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

* [XProto] Remove usage of all Xlib headers

https: //chromium-review.googlesource.com/c/chromium/src/+/2392140
Co-Authored-By: Robo <hop2deep@gmail.com>

* service_manager::kCrashDumpSignal -> kCrashDumpSignal

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

* gfx::ConvertPointToPixel -> gfx::ConvertPointToPixels

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

* Fixup [XProto] Remove usage of all Xlib headers

* Set appid on Pip windows.

https: //chromium-review.googlesource.com/c/chromium/src/+/2388274
Co-Authored-By: Robo <hop2deep@gmail.com>

* chore: update node patches for common.gypi

Co-Authored-By: Samuel Attard <MarshallOfSound@users.noreply.github.com>

* Try using lower number of processes for linux

* fixup call to diagnose_goma_log.py

* Use larger machines on linux to work around goma issue

* Don't fail on goma stats

* don't exit immediately

* turn off pipefail

* always return true

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Andy Locascio <andy@slack-corp.com>
Co-authored-by: Samuel Attard <MarshallOfSound@users.noreply.github.com>
2020-10-06 15:43:56 -04:00
trop[bot]
309df5a99d fix: nativeImage.crop().toBitmap() returning garbage (#25774)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-10-06 09:40:56 +09:00
trop[bot]
f298d4d54f feat: add webContents.forcefullyCrashRenderer() to forcefully terminate a renderer process (#25756)
* feat: add webContents.crashProcess() to forcefully terminate a renderer process

* chore: fix up docs and tests

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-10-05 13:00:36 -07:00
Electron Bot
ca227ede76 Bump v11.0.0-beta.11 2020-10-05 08:01:36 -07:00
trop[bot]
7120698f1f docs: rename launch-failure -> launch-failed to match C++ code (#25730)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-10-02 13:58:27 -07:00
trop[bot]
5eb225b5ae fix: crash when application launched from UNUserNotificationCenter notification (#25738)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-10-02 13:58:01 -07:00
trop[bot]
71c26dab90 build: move to ACR for docker image storage (#25731)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-10-02 13:28:35 -07:00
Shelley Vohr
f8ee8b2ee2 chore: fix nmv for Electron v11 (#25748) 2020-10-02 12:50:33 -07:00
Robert Borg
639fb15dc4 fix: gdi printing in silent printing mode (#25744)
for windows print_text_with_gdi is set to the value of is_modifiable
but this code path is not taken for silent printing
2020-10-02 08:30:59 -07:00
Electron Bot
c6fa081558 Bump v11.0.0-beta.10 2020-10-01 08:01:18 -07:00
trop[bot]
dcbca5448a fix: ensure ready-to-show event is fired (#25672) 2020-09-29 16:46:11 -07:00
trop[bot]
0667110350 fix: submenu should be autoreleased (#25688)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-29 12:57:40 -07:00
trop[bot]
e089cab8cd docs: command line flags for GPU controls (#25686)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-29 13:52:09 -04:00
Electron Bot
634b76e5a2 Bump v11.0.0-beta.9 2020-09-28 08:01:11 -07:00
trop[bot]
11c20477e4 refactor: add a wrapper for wrangling uv handles. (#25661) 2020-09-27 19:12:17 -07:00
trop[bot]
fca920de40 chore: improve renderer crash logging (#25619)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-09-24 12:55:57 -07:00
Electron Bot
ce5660db36 Bump v11.0.0-beta.8 2020-09-24 08:32:12 -07:00
Shelley Vohr
f8bdaa04d8 Revert "Bump v11.0.0-beta.8"
This reverts commit 69ded48ce4.
2020-09-24 08:28:59 -07:00
Shelley Vohr
08ebf7c03b Revert "Bump v11.0.0-beta.9"
This reverts commit 8bdff7acbc.
2020-09-24 08:28:52 -07:00
Shelley Vohr
9f164607b7 Revert "Bump v11.0.0-beta.10"
This reverts commit d88ce0be9c.
2020-09-24 08:28:45 -07:00
Electron Bot
d88ce0be9c Bump v11.0.0-beta.10 2020-09-24 08:03:12 -07:00
trop[bot]
e17b770690 docs: pepper flash plugin info appears at chrome://version now (#25608)
`chrome://flash` doesn't seem to exist anymore, but similar information
appears at `chrome://version`.

Co-authored-by: Joe Duncko <JoeDuncko@users.noreply.github.com>
2020-09-23 13:51:18 -07:00
trop[bot]
ff97c5255b fix: decompress devtools discovery html (#25602)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-09-23 12:38:36 -07:00
trop[bot]
2ab7143b69 fix: update node certdata to NSS 3.56 (#25362)
* fix: update node certdata to NSS 3.56

* Update .patches

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-09-23 12:25:26 -07:00
Jeremy Rose
96f258b866 fix: check for destroyed webcontents in converter (#25598) 2020-09-23 12:23:37 -07:00
trop[bot]
e6d5fc23a7 docs: remove unused StreamProtocolResponse / StringProtocolResponse (#25583)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-09-23 12:18:01 -07:00
trop[bot]
fe1b40ce9e fix: order menu items before filtering excess separators (#25599)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-09-23 12:12:15 -07:00
trop[bot]
fb7f783ee1 fix: unsubscribe from observers when window is closing (#25585)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-23 10:00:22 -04:00
trop[bot]
9ff208f898 fix: NOTREACHED in content::ChildProcessHost::GetChildPath when enable_plugins=false (#25552)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-09-23 10:46:00 +09:00
trop[bot]
a8dc3ae5c2 fix: check printer list when no default printers (#25562)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-09-22 11:53:49 -07:00
trop[bot]
07ec50b547 build: use newer xCode image (#25571)
* build: use newer xCode image

* build: log changed file paths

Co-authored-by: Samuel Attard <sattard@slack-corp.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-09-22 11:48:22 -05:00
Electron Bot
8bdff7acbc Bump v11.0.0-beta.9 2020-09-21 08:02:16 -07:00
trop[bot]
a66ba564fd test: retry the "v8 samples" test for a few times (#25514)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-21 09:36:18 +09:00
trop[bot]
0f4f5ac32c fix: prevent destroyed view references from causing crashes (#25509)
* fix: prevent destroyed view references from causing crashes

* Remove extraneous comments

* Relocate crash test to proper location

* Add WebContentsObserver

* Add nullptr check and inspectable observer

* Remote initial test file

* Add test cases to test file

* Rename and move testing file

* Fix linting errors

* Make functions exit early on check

* Fix setBackgroundColor function call in test file

* Fix styling of test file

* Fix mac name mismatch and make variable name more clear

Co-authored-by: Michaela Laurencin <mlaurencin@microsoft.com>
2020-09-21 09:33:39 +09:00
trop[bot]
4e080c4b15 fix: app.importCertificate crash on Linux (#25537)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-09-19 21:00:39 -06:00
trop[bot]
7e40dc2237 fix: close window when leave fs crash (#25524)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-09-19 15:23:49 -06:00
trop[bot]
e2b90ee28c build: fix build with enable_pdf_viewer=false (#25507)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-09-17 14:55:29 -06:00
Electron Bot
69ded48ce4 Bump v11.0.0-beta.8 2020-09-17 08:02:47 -07:00
trop[bot]
a22dfc813f fix: disable CORS when webSecurity is disabled (#25504)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-17 10:22:25 +09:00
trop[bot]
c1d04d8e49 chore: log hint on renderer crash (#25474)
* chore: log hint on renderer crash

* Address feedback from review

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-09-16 07:58:48 -06:00
trop[bot]
80efb6d9da fix: call node::Stop on exit (#25459)
* fix: call node::Stop on exit

* also call Stop in node_main

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

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-09-16 09:25:51 +09:00
trop[bot]
51a35f8b4d fix: ensure ready-to-show event is fired (#25471)
* fix: ensure ready-to-show event is fired

* test: acutally draw something when capturePage

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-16 09:15:34 +09:00
John Kleinschmidt
b88396cf00 chore: bump chromium to 87.0.4251.1 (11-x-y) (#25259) 2020-09-15 09:52:14 -07:00
Jeremy Rose
35d2727de0 feat: remove getMediaSourceIdForWebContents() (#25414) (#25455)
This reverts commit 204f001c5d.
2020-09-14 13:44:54 -07:00
trop[bot]
23c32766e5 fix: Ensure electron delay loads the same modules as chromium (#25436)
* Ensure electron delay loads the appropriate modules as chromium on windows

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

* fix: Ensure win modules are properly delayloaded

* chore: fix linting

Co-authored-by: Chris Davis <chrisdavis@outlook.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-09-14 10:20:31 -07:00
trop[bot]
db492c3178 fix: provide asynchronous cleanup hooks in n-api (#25281)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-09-14 10:24:40 -06:00
Electron Bot
86cc6a7b44 Bump v11.0.0-beta.7 2020-09-14 08:02:47 -07:00
trop[bot]
2ed7f0f4fc fix: crash on nativeImage on Windows on ARM (#25410)
* fix: nativeImage on WOA

* Remove old ldflag

* maybe this will work ¯\_(ツ)_/¯

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-09-14 10:25:11 +09:00
Electron Bot
9e9cc8f606 Bump v11.0.0-beta.6 2020-09-10 08:02:15 -07:00
trop[bot]
1e1d35fb87 fix(extensions): devtools now open for background pages (#25366)
refactor(extensions): remove unused InitWithBrowserContext method

fix(extensions): release background page WebContents to avoid crash

The background page WebContents instance is managed by the ExtensionHost.

fix(extensions): open background page devtools detached by default

test(extensions): add background page devtools test

chore: test fix for null web_contents()

fix: close background page devtools in test after opening

Co-authored-by: samuelmaddock <samuel.maddock@gmail.com>
2020-09-10 11:38:52 +09:00
trop[bot]
119cd24a7f fix: bind fake mojo service for badging (#25370)
* fix: bind fake mojo service for badging

* Add a test

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-09-10 09:14:53 +09:00
Eryk Rakowski
138fa6cdf3 feat(extensions): add support for some chrome.management APIs (#25098) (#25342)
* fix: initialize management policy

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

* test: add tests

* docs: add a note about chrome.management

* fix: lint errors

* fix: lint errors

* fix: remove favicon_service include

* fix: add missing management permission

* docs: more supported apis

* fix: extensions.md line endings
2020-09-08 20:11:50 +09:00
trop[bot]
7745e48498 chore: graceful handling of notes with sub-lists (#25312)
* chore: graceful handling of notes with sub-lists

Handle multine release notes that contain their own bullet points.

Also, if a release note begins with a bullet point, remove it because it
will confuse the markdown parser to have two bullet points.

* chore: make lint happy

* test: add tests for release note changes

* chore: only target current octokit

* chore: add commits to release-notes test cache

No behavior change; just includes files that ought to be cached to prevent
hitting octokit for them.

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-09-08 17:12:09 +09:00
trop[bot]
b62e00f0ae fix: handle electron script errors better (#25331)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-09-08 16:26:41 +09:00
Electron Bot
ad876ac1b1 Bump v11.0.0-beta.5 2020-09-07 08:01:02 -07:00
trop[bot]
c35ec6bc34 fix: only focus a webContents if the window was not initially hidden (#25323)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-09-04 14:47:08 -07:00
trop[bot]
a08b3682c3 fix: avoid creating client_id file for empty DIR_CRASH_DUMPS (#25310)
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-09-03 19:09:20 -07:00
trop[bot]
c3ad33c28b fix: multiple dock icons when calling dock.show/hide (#25300)
* fix: mulitple dock icons when calling dock.show/hide

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

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-03 13:57:06 -07:00
Electron Bot
59f9e417d4 Bump v11.0.0-beta.4 2020-09-03 08:01:35 -07:00
trop[bot]
7931c8abfd ci: cleanup up test app directories (#25257)
* ci: cleanup up test app directories

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

* Revert "ci: cleanup up test app directories"

This reverts commit a47daba812.

* fixup test due to app name change

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-09-02 10:05:09 +09:00
trop[bot]
622f5f84cf chore: wrap add/remove view in extra check (#25258)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-09-02 10:04:10 +09:00
trop[bot]
c8944df576 chore: force source code and markdown files to use LF line ending (#25176)
* chore: force source code and markdown files to use LF line ending

* chore: replace CRLF with LF

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-09-01 12:48:18 +09:00
Robo
3efbee2061 fix: client area inset calculation when maximized for framless windows (#25217)
* adopt per monitor scale factor

* fix: client area inset calculation when maximized

* address review feedback

* pass correct glass insets to GetDwmFrameInsetsInPixels

* remove unused code

* Windows 8 and 10 use the same DWM frame calculation

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

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-08-31 13:20:28 -07:00
trop[bot]
aafada554f docs: fix supported platforms of powerMonitor (#25211)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-08-31 10:16:26 -07:00
Electron Bot
56e81665fb Bump v11.0.0-beta.3 2020-08-31 08:01:05 -07:00
trop[bot]
e68f086d95 fix: do not reset process_id in URLLoaderFactoryParams (#25180)
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-08-31 10:08:52 +09:00
trop[bot]
74edd99570 fix: save dialog extensions should be deterministic (#25193)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-08-28 11:38:07 -07:00
trop[bot]
63720fd603 fix: resolve RegisterSuspendResumeNotification dynamically (#25168)
Co-authored-by: Milan Burda <milan.burda@gmail.com>
2020-08-28 10:15:40 +09:00
Markus Olsson
d6bea2a681 fix: make shell.moveItemToTrash return false on Windows when move unsuccessful (#25171) 2020-08-27 17:43:52 -07:00
Electron Bot
5b53a08132 Bump v11.0.0-beta.2 2020-08-27 08:01:11 -07:00
Electron Bot
09e33b3420 Bump v11.0.0-beta.1 2020-08-26 10:51:08 -07:00
Jeremy Rose
2c9e79c8d5 test: add tests for shell.moveItemToTrash (#25113) 2020-08-26 09:34:29 -07:00
Electron Bot
fdb36eb5b5 Bump v11.0.0-nightly.20200826 2020-08-26 07:32:46 -07:00
Shelley Vohr
be8db589eb fix: mitigate use of private macOS font API (#25117) 2020-08-25 21:13:42 -07:00
Shelley Vohr
c8a0b2b71d fix: prevent crash if BrowserView webContents was destroyed (#25112) 2020-08-25 20:04:13 -07:00
leonllrmc
c97f8109c2 chore: update import for use new ECMA features (#24987) 2020-08-25 09:23:44 -07:00
Electron Bot
d5ab63b1ea Bump v11.0.0-nightly.20200825 2020-08-25 07:31:28 -07:00
Keeley Hammond
7704954505 docs: add restricted header info to ClientRequest docs (#25075)
* docs: add restricted header info to docs

* docs: clarify header language

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

Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
2020-08-25 20:29:58 +09:00
Jeremy Rose
35237d3c30 fix: [linux] open directories with dbus FileManager (#25087) 2020-08-24 13:54:50 -07:00
Cheng Zhao
cd3fadc2fb fix: save normal window bounds when maximizing (#25051)
* fix: save normal window bounds when maximizing

* fix: prevent maximize being emitted twice
2020-08-24 13:32:08 -07:00
Cheng Zhao
5ed3460751 fix: register for connected standby changes (#25076) 2020-08-24 13:09:36 -07:00
Samuel Attard
8baa9deccd build: update to typescript 4 (#25091) 2020-08-24 11:23:25 -07:00
Shelley Vohr
0efcaec4d6 fix: global shortcut media keys working with accessibility (#24145)
* fix: global shortcut media keys

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-08-24 10:41:06 -07:00
John Kleinschmidt
d8fe7af703 ci: fix WOA failing tests (#25018)
* tests: fix failing WOA tests

tests: fix startDrag for WOA

tests: fix early-in-memory-session-create crash test on WOA

ci: cleanup user app data directories on WOA

* tests: disable nativeImage.createFromBuffer tests on WOA

* disable failing nativeImage.createFromPath on WOA

* disable another nativeImage test for WOA
2020-08-24 12:58:55 -04:00
George Xu
beaf60de0a feat: add nativeImage.createThumbnailFromPath API (#24802)
* initial commit, mac implementation

* add documentation

* convert createThumbnailFromPath to async function

* windows impl protoype

* add tests

* added test

* fix

* fix test

* clean up

* update docs

* cleaning up code

* fix test

* retrigger CI

* retrigger CI

* refactor from app to native_image

* windows build

* lint

* lint

* add smart pointers, fix test

* change tests and update docs

* fix test, remove nolint

* add renderer-main process routing to fix tests

* lint

* thanks sam

* thanks sam
2020-08-24 09:36:13 -07:00
Sofia Nguy
b403e64ef2 docs: update currently supported versions for 10.0.0 release (#25027) 2020-08-24 11:21:41 -05:00
Sofia Nguy
59670e8d8c docs: update 11.0 stable release date (#25073) 2020-08-24 11:21:17 -05:00
Shelley Vohr
024ea32313 feat: make window visual effect state customizable (#25083) 2020-08-24 11:44:48 -04:00
Electron Bot
c0440a35f2 Bump v11.0.0-nightly.20200824 2020-08-24 07:32:16 -07:00
Shelley Vohr
bea6c9e4e1 fix: reply notifs sometimes destroyed too early (#25086)
* fix: reply notifs sometimes destroyed too early

* Fix windows build
2020-08-23 21:27:46 -07:00
Alfred Xing
a23c66e4e1 feat: allow monospaced font styles to be specified for macOS tray titles (#25059)
* feat: add optional font type to macOS tray title

* test: add tests for tray font type

* docs: update API reference for Tray setTitle

* review: change API to use an options object

* review: fix string enum in docs

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

* review: return after throwing errors

* review: don't need thrower anymore now that we have args

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-08-23 14:39:29 -07:00
Electron Bot
13751c815e Bump v11.0.0-nightly.20200822 2020-08-22 16:45:58 -07:00
Samuel Attard
1646f938f3 Revert "refactor: use aws-sdk-js instead of boto (#24863)"
This reverts commit a3581aa992.
2020-08-22 16:42:45 -07:00
Samuel Attard
cd4c4e9f04 Revert "Bump v11.0.0-nightly.20200822"
This reverts commit bda5ec519b.
2020-08-22 16:42:41 -07:00
Electron Bot
bda5ec519b Bump v11.0.0-nightly.20200822 2020-08-22 11:29:05 -07:00
Samuel Attard
3f4c867599 build: remove mksnapshot token file 2020-08-22 02:23:14 -07:00
Samuel Attard
3e2d959817 build: fix electron_mksnapshot_zip_done check 2020-08-22 01:17:43 -07:00
Electron Bot
02f5ffbaac Bump v11.0.0-nightly.20200821 2020-08-21 20:34:09 -07:00
Samuel Attard
e2a5908665 Revert "Bump v11.0.0-nightly.20200821"
This reverts commit 1709fed85e
2020-08-21 20:32:22 -07:00
Samuel Attard
5df6c5ecce build: more space on arm64 builds, running out of ideas here (#25043)
* build: more space on arm64 builds, running out of ideas here

* build: well this is kinda nuts but off we go

* chore: rollback thingy

* chore: build snapshot for realz

* chore: do not delete hunspell

* build: use the new magic extra-disk-space circle image

* build: remove existing file, it is not a tree
2020-08-21 20:30:04 -07:00
Samuel Attard
b1e2185c5e refactor: wire will-navigate up to a navigation throttle instead of OpenURL (#25065)
* refactor: wire will-navigate up to a navigation throttle instead of OpenURL

* spec: add test for x-site _top navigation
2020-08-21 12:34:09 -07:00
shur
a17e97c3b2 feat: expose currencyCode on Product struct in IAP module (#25058)
Co-authored-by: Shur Singh <ssingh@evernote.com>
2020-08-21 10:41:40 -07:00
Jeremy Rose
5d3301769b feat: record v8 cpu samples in the main process (#24819) 2020-08-21 09:25:30 -07:00
Electron Bot
1709fed85e Bump v11.0.0-nightly.20200821 2020-08-21 07:31:43 -07:00
Samuel Attard
26f28b6ae4 fix: add handling for non-absolute extension paths (#25068) 2020-08-20 20:47:10 -07:00
Charlie Hess
42409d860b fix: Resolve bookmarks without mounting network drives (#24708) 2020-08-20 15:01:08 -07:00
Charles Kerr
d9a1c453ab fix: revert 6ecf729 to fix Linux titlebar dark mode (#25055)
Fixes #24741
2020-08-20 16:53:06 -04:00
Electron Bot
2d502b8ac6 Bump v11.0.0-nightly.20200820 2020-08-20 07:31:57 -07:00
Shelley Vohr
9631eafa1f fix: DCHECK on print job cancellation (#25031) 2020-08-20 15:28:24 +09:00
Shelley Vohr
53668445ba feat: reinvigorate visibleOnFullscreen option (#24956) 2020-08-19 13:31:25 -07:00
Cheng Zhao
52d7afa4ef fix: calculate frame when setting window placement (#25014) 2020-08-19 12:34:15 -07:00
Jeremy Rose
9021843850 fix: enable TLS renegotiation in node (#25022) 2020-08-19 11:18:16 -07:00
Electron Bot
3313e00578 Bump v11.0.0-nightly.20200819 2020-08-19 07:32:52 -07:00
Eryk Rakowski
9e53112ee1 fix(extensions): enable WebSQL in background pages (#24798)
* fix(extensions): enable WebSQL in background pages

* fix: apply suggestions

* fix: remove duplicate include

* fix: remove trailing spaces
2020-08-19 09:41:47 +09:00
Shelley Vohr
ff24caf798 test: use custom partition for sw tests (#24999) 2020-08-18 09:31:24 -07:00
Electron Bot
a1eceee48f Bump v11.0.0-nightly.20200818 2020-08-18 07:32:07 -07:00
GitHubPang
5c5e006e46 docs: fix typos (#24982)
* docs: sync table of content from pull-requests.md to CONTRIBUTING.md

This also fixes some incorrect / dead links.

* docs: fix a bunch of typos
2020-08-18 16:55:16 +09:00
Vlad Hashimoto
b55e8dc578 docs: update default value for enableRemoteModule in BrowserWindow (#24955) 2020-08-18 16:54:47 +09:00
Samuel Attard
29d9c02ab9 build: increase available space on mac arm64 vm (#25008) 2020-08-17 22:06:59 -07:00
Tierney Cyren
303fcc69be fix(docs): update outdated ref to NSP (#24925)
removes an outdated reference to Node Security Project, which was acquired by npm some time ago. The new workflow for the same process (now the npm advisories page) has been added.
2020-08-17 19:29:45 -07:00
Samuel Attard
ab6769d7f8 build: upload windows breakpad symbols (#25000) 2020-08-17 14:52:08 -07:00
Jeremy Rose
bac2f46ba9 fix: browser contexts live forever (#24964) 2020-08-17 13:21:53 -07:00
Shelley Vohr
befbbc27d8 fix: pdf download not working (#24946) 2020-08-17 08:25:20 -07:00
Electron Bot
db13dcb8d2 Bump v11.0.0-nightly.20200817 2020-08-17 07:31:30 -07:00
Electron Bot
53033a66b1 chore: bump chromium to 7d4ac110045b7647fa8a81f5f0709 (master) (#24970)
* chore: bump chromium in DEPS to 760c905ccca34d8ed83c54f6a42c42a375792a6b

* chore: update patches

- Introduce WebContentsObserverList to encapsulate common behaviour
  https://chromium-review.googlesource.com/c/chromium/src/+/2343269
- DumpAccTree mac testing: refactor tree formatter logic to make it
suitable for nested attribute calls
  https://chromium-review.googlesource.com/c/chromium/src/+/2274545
- Fix FontPlatformDataMacTest.VariableOpticalSizingThreshold for Big Sur
  https://chromium-review.googlesource.com/c/chromium/src/+/2351299

* chore: bump chromium in DEPS to b04584161e07d4ac110045b7647fa8a81f5f0709

* chore: update patches

* [printing] Move printing::MarginType to //printing/mojom/print.mojom

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

Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-08-14 18:51:28 -07:00
Electron Bot
4ef827c13c Bump v11.0.0-nightly.20200814 2020-08-14 07:31:18 -07:00
Jeremy Rose
a3581aa992 refactor: use aws-sdk-js instead of boto (#24863)
* refactor: use js instead of boto for s3put

* replace merge-electron-checksums.py with js, remove boto

* fix auth

* actually pass the env to execute()
2020-08-13 13:25:40 -04:00
Electron Bot
627467d08a Bump v11.0.0-nightly.20200813 2020-08-13 07:31:18 -07:00
Tierney Cyren
8f30333322 docs: add Notification section to SECURITY.md (#24926)
adds a new section pointing to a relevant doc in Governance that defines how we notify end-users of security issues.
2020-08-12 17:31:29 -07:00
Electron Bot
8798571a77 chore: bump chromium to 0e4ca9c0a63d7a39bd910997ad4c6 (master) (#24687)
* chore: bump chromium in DEPS to 1f1c4d91f6eaa4a033ec8f499d63a0717f79a42a

* viz: Do not apply white level scaling for RGBA fp16 HDR video

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

* Move WebPreferences to WebContents

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

* Fix missing WeakPtr check in PreconnectManager

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

* Fixup swiftshader roll revision

* Update patch indices

* Move WebDeviceEmulationParams into common.

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

* Move EnableDisableDeviceEmulation to blink mojom messages

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

* PDF Viewer: Remove flag for two-up view

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

* Add mojom definition for DeviceEmulationParams.

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

* Remove ServiceWorkerContextWatcher from PaymentAppInstaller

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

* Loader: Move transferrable_url_loader.mojom into blink's mojom directory

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

* chore: bump chromium in DEPS to 4974f436479739025a90ebc2cc2e36d67ee1ac46

* mac: Work around Xcode 12b3 SDK bug

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

* Reland Update core items for macOS Big Sur.

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

* Update Swiftshader revision

* mac/arm64: When cross-building the snapshot, use page size of the target ISA instead of the host.

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

* Update patch indices

* Rename {,Non}ClientView::CanClose() to OnWindowCloseRequested()

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

* chore: bump chromium in DEPS to e9465d70d1dea539400f0fddad43358ea3c31d71

* chore: bump chromium in DEPS to bd5b71c5f20288eb26068a39ae6e0579566a51c5

* chore: bump chromium in DEPS to 786ee543048bd07d07c5ac50b7dbbdd6bdd8dcce

* chore: bump chromium in DEPS to 34eb6ecbf2c5894b648900bf771a2a29de204798

* chore: bump chromium in DEPS to 567ff038d68e3adb8116a01eec863cdf34d775f5

* chore: bump chromium in DEPS to 340b45c8d4ceb2dd61969fc34e1928d3c46db48c

* chore: update patches

* chore: base::DeleteFile with two params is removed

Should use base::DeleteFile and base::DeletePathRecursively when
appropriate

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

* chore: add patch for NodePlatform::PostJob impl

* chore: update patches

* chore: extension file access is now instrumented

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

* chore: implement SetWindowFrameInScreen in OSR RWHV

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

* chore: NotifyUserActivation requires a type now

This is just for a histogram thing and therefore it does not matter what
we pass in

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

* chore: update patches

* chore: bump chromium in DEPS to cd570e6dd3dcb84463ac252b04e92ceb02d8400c

* chore: update patches

* chore: bump chromium in DEPS to 0187908a31866992b90c59719ac1d016328f6ee0

* chore: bump chromium in DEPS to 3c9df38c508f3dba26a75248beed4882ddfb98e9

* chore: bump chromium in DEPS to 1a47d3b9cee710bd3c958c4f2d8b205710df9d50

* chore: bump chromium in DEPS to baac93040d96abdab72d46dd034c60f86e108702

* chore: bump chromium in DEPS to 13836145f97299e636491de38064b78861c4fb2e

* update patches

* change OS_MACOSX -> OS_MAC

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

* patch: add header for ToExecutionContext in WebMessagePortConverter

* chore: bump chromium in DEPS to 91ab9b6ac5d04dc034a03ad847fbfa8261328c2b

* update patches

* NeedToFireBeforeUnloadOrUnload -> NeedToFireBeforeUnloadOrUnloadEvents

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

* chore: bump chromium in DEPS to 290deb11f0e30cb1382fd8f8793d340560283c23

* update patches

* add dragdrop header for autofill popup

* int -> x11::Time

* patch out accessibility private API use

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

* remove usage of XEvent

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

* trigger recalculation of WebPreferences before renderer initialization

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

* chore: bump chromium in DEPS to 6bdb484583b99c96ef3388d0c2184326581b2d5a

* chore: bump chromium in DEPS to 1eb2a79cde04fd5c8ae51b4d813e6521635269e5

* chore: bump chromium in DEPS to 3dc8e3c0f400e4ca9c0a63d7a39bd910997ad4c6

* chore: update patches

* fixup! trigger recalculation of WebPreferences before renderer initialization

* views: Make MenuButton and RadioButton default constructible

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

* chore: fix code style

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
Co-authored-by: Andy Locascio <andy@slack-corp.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-08-12 11:33:58 -07:00
Electron Bot
3d2afa45c3 Bump v11.0.0-nightly.20200812 2020-08-12 07:32:30 -07:00
Electron Bot
4080b04911 Bump v11.0.0-nightly.20200811 2020-08-11 07:37:50 -07:00
Electron Bot
b09c828dd3 Revert "Bump v11.0.0-nightly.20200811"
This reverts commit f3363bde26.
2020-08-11 07:36:50 -07:00
Electron Bot
f3363bde26 Bump v11.0.0-nightly.20200811 2020-08-11 07:36:24 -07:00
Electron Bot
f136bf406f Revert "Bump v11.0.0-nightly.20200811"
This reverts commit 77ee3da77c.
2020-08-11 07:35:30 -07:00
Electron Bot
77ee3da77c Bump v11.0.0-nightly.20200811 2020-08-11 07:34:51 -07:00
GitHubPang
47f88b65b7 docs: fix typo in api/ipc-renderer (#24901) 2020-08-11 07:31:38 -07:00
Olawanle Joel
d7909b507f docs: fixed minor typos (#24912)
I was going through the entire documentation and decided to fix this to the best of my knowledge.
2020-08-11 07:30:45 -07:00
Teo Koon Peng
14aba3f0de fix: export libuv symbols (#24659)
* fix: export libuv symbols

* add test for linux and windows

* mac linker flags

* assuming same foo.so path for macos

* use --whole-archive flag for mac as well

* use force_load for mac

* refactor: use napi c api directly

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-08-11 19:17:18 +09:00
Shelley Vohr
7ded768743 fix: pdf viewer template strings (#24913) 2020-08-10 22:46:58 -07:00
Samuel Attard
47d451ae52 fix: ts-node node is not a thing 2020-08-10 20:25:29 -07:00
Charles Kerr
7e84d3a2c1 build: in release notes script, do not assume electron dirname (#24927) 2020-08-10 16:56:54 -07:00
Samuel Attard
29a7b8f805 fix: add deps on the new devtools highlighter (#24921) 2020-08-10 16:54:05 -07:00
Shelley Vohr
16c32d2eb2 build: handle unhandled promise rejection in notes (#24923)
Handle any potential Git processes without throwing unhandled rejection errors.
2020-08-10 10:18:08 -07:00
Samuel Attard
047650b564 chore: update patches (#24919) 2020-08-10 08:23:21 -07:00
Shelley Vohr
8311078a96 fix: don't try to init mmap on missing asar (#24890) 2020-08-10 08:22:49 -07:00
Electron Bot
a9eaebb7f4 Bump v11.0.0-nightly.20200810 2020-08-10 07:32:34 -07:00
Samuel Attard
01c9113e2b build: fix path to git attributes for for patch export (#24896) 2020-08-10 07:10:15 -07:00
Jeremy Rose
481b19bee6 fix: send guid with linux crashes (#24881) 2020-08-07 15:30:49 -07:00
Samuel Attard
433956ce4f build: remove the tools folder (#24880) 2020-08-07 14:13:09 -07:00
Samuel Attard
b0ea1e14e1 build: type check the script folder during lint (#24892) 2020-08-07 13:49:07 -07:00
Samuel Attard
4d50f3f62c build: convert some scripts to TS (#24891) 2020-08-07 13:48:46 -07:00
Electron Bot
2028492356 Bump v11.0.0-nightly.20200807 2020-08-07 12:02:05 -07:00
Samuel Attard
3fa250d6da Revert "Bump v11.0.0-nightly.20200807"
This reverts commit cbdfeb1979.
2020-08-07 12:00:29 -07:00
Samuel Attard
854b74809a build: upload the file stream not a JSON blob for the read stream (#24889) 2020-08-07 12:00:12 -07:00
Electron Bot
cbdfeb1979 Bump v11.0.0-nightly.20200807 2020-08-07 07:32:05 -07:00
Cheng Zhao
2224d94c75 fix: add handle scope in SelectClientCertificate (#24868) 2020-08-06 20:50:41 -07:00
Electron Bot
b6f8cd39e5 Bump v11.0.0-nightly.20200806 2020-08-06 14:58:30 -07:00
Electron Bot
075a7adcc0 Revert "Bump v11.0.0-nightly.20200806"
This reverts commit 14256ee697.
2020-08-06 14:57:37 -07:00
Electron Bot
14256ee697 Bump v11.0.0-nightly.20200806 2020-08-06 13:20:37 -07:00
Samuel Attard
aaa971ff19 Revert "Bump v11.0.0-nightly.20200806"
This reverts commit 5bf423b646.
2020-08-06 13:15:48 -07:00
Electron Bot
5bf423b646 Bump v11.0.0-nightly.20200806 2020-08-06 10:40:35 -07:00
Samuel Attard
4f4c383ec5 build: only do the lower case symbol copy on case sensitive file systems (#24876) 2020-08-06 10:39:24 -07:00
Samuel Attard
5ed8afbdb6 Revert "Bump v11.0.0-nightly.20200806"
This reverts commit 4523c90dcd.
2020-08-06 10:36:41 -07:00
Cheng Zhao
5f447e4b4f fix: do not render inactive titlebar as active on Windows (#24847) 2020-08-06 09:05:23 -07:00
Electron Bot
4523c90dcd Bump v11.0.0-nightly.20200806 2020-08-06 07:31:55 -07:00
Shelley Vohr
6cb23e1d36 fix: use non-symbols in isURLInstance check (#24831) 2020-08-05 15:05:36 -07:00
Samuel Attard
a2c82f2342 build: ensure symbol files are named lowercase on disk so that boto can find them (#24856) 2020-08-05 14:03:50 -07:00
Shelley Vohr
9274117e12 build: quash octokit deprecation warning (#24790) 2020-08-05 11:59:52 -04:00
Electron Bot
99874fd71f Bump v11.0.0-nightly.20200805 2020-08-05 07:31:04 -07:00
Shelley Vohr
06c47c650a fix: duplicate suspend/resume events (#24818) 2020-08-04 20:08:45 -07:00
Jeremy Rose
30cd9cdf2a docs: remove reference to remote from faq (#24816) 2020-08-04 12:08:44 -07:00
Jeremy Rose
9c234f3f3f docs: remove references to 'remote' from app-arch tutorial (#24815) 2020-08-04 12:08:35 -07:00
Jeremy Rose
01a2e23194 refactor: mmap asar files (#24470) 2020-08-04 11:48:04 -07:00
Electron Bot
15ee34a1f2 Bump v11.0.0-nightly.20200804 2020-08-04 07:32:55 -07:00
Eryk Rakowski
f53aac97f5 fix(extensions): bypass cors in requests made from background pages (#24483) 2020-08-03 16:56:18 -07:00
Jeremy Rose
1350dc46ed refactor: ginify Archive (#24799) 2020-08-03 14:26:27 -07:00
Shelley Vohr
6fd302f745 chore: remove overwritten Node.js patch (#24775)
* chore: remove overwritten Node.js patch

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-08-03 08:49:31 -07:00
Electron Bot
e5c721eafc Bump v11.0.0-nightly.20200803 2020-08-03 07:32:11 -07:00
Electron Bot
a342ab7ce7 Bump v11.0.0-nightly.20200731 2020-07-31 07:31:51 -07:00
Samuel Attard
c3258d6c4e fix: provide AXTextChangeValueStartMarker for macOS a11y value change notifications (#24801) 2020-07-30 21:01:26 -07:00
Jeremy Rose
b5cd9ce0b3 refactor: ginify WebContents (#24651) 2020-07-30 09:17:57 -07:00
Electron Bot
e7fc19c98e Bump v11.0.0-nightly.20200730 2020-07-30 07:33:03 -07:00
Shelley Vohr
948cc08265 chore: add V8 crash information to crashReporter (#24771)
* feat: add V8 crash information to crashReporter

* Address review feedback
2020-07-29 19:04:24 -07:00
Jeremy Rose
d93bb34ac4 fix: increase max crash key value length (#24782)
* fix: increase max crash key value length

* chore: fix linting

* chore: fix linux

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

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

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2020-07-29 19:04:04 -07:00
Robo
01023435c0 fix: save crash reports locally when uploadToServer: false on linux (#24778)
* fix: generate dumps under crashDumps folder in linux

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

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

Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-07-29 17:45:02 -07:00
Samuel Attard
06cb550c75 build: upload sentry src bundles on windows as well (#24773) 2020-07-29 12:41:53 -07:00
George Xu
1b175a0609 feat: add capabilities to app.getLoginItemSettings() and app.setLoginItemSettings() (#24494)
* fixed

* semantic commit

* add comments to browser.h

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-07-29 10:08:37 -07:00
Electron Bot
75372e933f Bump v11.0.0-nightly.20200729 2020-07-29 07:31:20 -07:00
Samuel Attard
f859d4ce44 test: fail tests if the spec runner promise rejects (#24762) 2020-07-28 20:36:35 -07:00
Jeremy Rose
9c37e12e2d refactor: ginify app (#24679) 2020-07-28 16:43:43 -07:00
Jeremy Rose
834408a50f fix: wrap OnWindowMessage w/ handlescope (#24716) 2020-07-28 15:09:56 -07:00
Robo
b6321cc22d fix: crash when navigating from a page with webview that has inherited zoom level (#24757)
* fix: cleanup webview zoom level observers on navigation

* add spec

* webview should be on same partition

* wait for webview to finish loading
2020-07-28 13:00:44 -07:00
Jeremy Rose
38fafe4986 refactor: ginify autoUpdater (#24678) 2020-07-28 11:04:34 -07:00
Jeremy Rose
e6cf5906f6 refactor: ginify Screen (#24677) 2020-07-28 11:04:01 -07:00
Jeremy Rose
362da77c0a refactor: ginify SystemPreferences (#24675) 2020-07-28 11:03:30 -07:00
Electron Bot
3f45fc24bb Bump v11.0.0-nightly.20200728 2020-07-28 10:45:24 -07:00
Samuel Attard
75c3a426ea Revert "Bump v11.0.0-nightly.20200728"
This reverts commit c6c986648f.
2020-07-28 10:43:32 -07:00
Shelley Vohr
4e15273b9f build: fix failing arm64 builds on macOS (#24748) 2020-07-28 08:42:15 -07:00
Electron Bot
c6c986648f Bump v11.0.0-nightly.20200728 2020-07-28 07:31:27 -07:00
Samuel Attard
bac232689d build: only move folder if it exists when freeing space (#24740) 2020-07-27 23:09:29 -07:00
Robo
76e3ee6fe6 fix: loading dedicated/shared worker scripts over custom protocol (#20625)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-07-27 18:48:37 -07:00
Samuel Attard
4829b0f816 fix: disable rosetta as Electron does not run under rosetta (#24670) 2020-07-27 13:26:04 -07:00
Samuel Attard
a612fb00c8 chore: update symbol server URL (#24709) 2020-07-27 13:25:39 -07:00
Electron Bot
2f02a469f4 chore: bump node to v12.18.3 (master) (#24707)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-07-27 09:12:29 -07:00
Charles Kerr
b39a5b71fe chore: add trop annotations to release notes. (#24672)
Trop annotations are in the form of "(Also in 7.3, 8, 9)" with links to
the sibling branches.

Previously seen in b43e601b83 but is now
free of optional chaining and nullish coalescing, to run on Node < 14 :)
2020-07-27 10:01:41 -05:00
Electron Bot
91f5837344 Bump v11.0.0-nightly.20200727 2020-07-27 07:31:39 -07:00
Electron Bot
5fc354df73 Bump v11.0.0-nightly.20200724 2020-07-24 07:32:19 -07:00
Shelley Vohr
ee31611e84 fix: missing base::CommandLine include (#24718) 2020-07-24 00:08:04 -07:00
Jeremy Rose
071c5930b9 refactor: ginify InAppPurchase (#24674) 2020-07-23 14:55:41 -07:00
Samuel Attard
5cfe956fe1 fix: ensure that errors thrown in the context bridge are created in the correct context (#24534) 2020-07-23 14:32:38 -07:00
Samuel Attard
b500294c1d feat: add worldSafe flag for executeJS results (#24114)
* feat: add worldSafe flag for executeJS results

* chore: do not log warning for webContents.executeJS

* Apply suggestions from code review

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

* chore: apply PR feedback

* chore: split logic a bit

* chore: allow primitives through the world safe checl

* chore: clean up per PR feedback

* chore: flip boolean logic

* chore: update per PR feedback

* chore: fix typo

* chore: fix spec

Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-07-23 14:32:20 -07:00
szTheory
3b250b649b docs: fix role typos in startSpeaking/stopSpeaking (#24550) 2020-07-23 13:59:24 -07:00
Samuel Attard
2162eeb609 build: fix linting issue in docs (#24710) 2020-07-23 12:27:00 -07:00
Charles Kerr
00fc8066de docs: clarify use of pageRanges when printing. (#24694)
Fixes #24684 -- the docs are slightly unclear about how pageRanges
should be used, e.g. whether the page indices are zero-based or
one-based.
2020-07-23 12:03:52 -07:00
Electron Bot
6b1de271a7 Bump v11.0.0-nightly.20200723 2020-07-23 07:33:04 -07:00
Raghav Bhutra
ec838cfc11 docs: add Documentation for Open Recent Menu-item (#24374) 2020-07-22 19:22:01 -07:00
Gellert Hegyi
6fa3406912 fix: remove corner mask override to increase window resize performance (#24642)
* fix: remove corner mask override to increase window resize performance

* uses corner mask only for vibrant view
2020-07-23 09:54:32 +09:00
Felix Rieseberg
b57f5086ef fix: Allow VoiceOver to navigate "back into" web contents (#24655)
* fix: Use ElectronAdaptedContentView

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

* chore: Remove things instead of manually keeping them
2020-07-22 15:29:01 -07:00
Jeremy Rose
734753dd7a refactor: ginify NativeTheme (#24673) 2020-07-22 11:01:30 -07:00
Electron Bot
10bf50e1fd Bump v11.0.0-nightly.20200722 2020-07-22 07:32:34 -07:00
Samuel Attard
5795e59352 build: upload x-compiled arm mksnapshot only on linux (#24680)
* build: upload x-compiled arm mksnapshot only on linux

* Update upload.py
2020-07-22 01:45:18 -07:00
Electron Bot
2fb14f53fe chore: bump chromium to 1a093e6a0cb5e72ba78990fe39824 (master) (#24575) 2020-07-21 22:34:34 -07:00
Samuel Attard
d4a4269989 perf: do not convert object keys in ctx bridge as they are always primitives (#24671)
* perf: do not convert object keys in ctx bridge as they are always primitives

* Update shell/renderer/api/electron_api_context_bridge.cc

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

Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-07-21 15:26:16 -07:00
Charles Kerr
cd805544d1 docs: update the URL for catapult's trace viewer. (#24654)
The old URL points to an archived repo. The updated URL points to the
catapult's landing page for trace-viewer.
2020-07-21 15:00:31 -07:00
Electron Bot
95dd81bd68 Bump v11.0.0-nightly.20200721 2020-07-21 09:40:26 -07:00
Samuel Attard
a76e74ac3f Revert "chore: add Trop annotations to release notes. (#24644)"
This reverts commit b43e601b83.
2020-07-21 09:38:28 -07:00
szTheory
74e7f2773f doc: fix typos in role values (#24552) 2020-07-21 08:59:20 -07:00
Charles Kerr
b43e601b83 chore: add Trop annotations to release notes. (#24644)
* chore: add Trop annotations to release notes.

Trop annotations are in the form of "(Also in 7.3, 8, 9)"
with links to the sibling branches.
2020-07-21 10:32:36 -05:00
Samuel Attard
589968f9fc build: add arm64 macOS publish jobs (#24652)
* build: add arm64 macOS publish jobs

* update ci-release-build to run new arm64 macOS publish jobs

* fixup circleci config validate issues

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-07-21 07:55:00 -04:00
Cheng Zhao
a12602dbc3 docs: document missing permission types (#24660) 2020-07-21 07:49:37 -04:00
Erick Zhao
77eea08a54 docs: update webContents.send link in ipcMain docs (#24245) 2020-07-21 14:47:10 +09:00
Kriti Singh
86b441d599 docs: add descriptions for types of permissions (#23781) 2020-07-21 14:29:32 +09:00
Paul Frazee
509740c357 fix: Close protocol response streams when aborted (#24014) 2020-07-21 09:51:38 +09:00
Shelley Vohr
bcba4baa85 fix: use Node.js isolate setup logic in bindings (#24579)
* fix: use Node.js isolate setup logic in bindings

* Flags should be more process-specific

* Remove redundant isolate function setting

* Remove old SetFatalErrorHandler call
2020-07-20 12:41:52 -07:00
Jeremy Rose
f0953902db refactor: clean up Session with CleanedUpAtExit (#24603) 2020-07-20 12:13:33 -07:00
Jeremy Rose
e5cb22b7f9 refactor: use gin::Arguments in WebContents (#24604) 2020-07-20 11:07:02 -07:00
Samuel Attard
682f78b9a8 test: add more auto updater tests for squirrel.mac (#24611) 2020-07-20 09:51:33 -07:00
Electron Bot
8f5280a821 Bump v11.0.0-nightly.20200720 2020-07-20 08:32:04 -07:00
Milan Burda
fa1323d6cd feat: add child-process-gone event to app (#24367) 2020-07-20 10:34:16 -04:00
Samuel Attard
f146a164af build: add apple silicon support (#24545)
* chore: add patches to prevent installation of non-arm pip packages

* chore: add patches for apple-silicon

* build: add apple silicon build

* ci: add testing of new arm binary

* chore: remove / update for upstreamed patches

* Skip content tracing on macos on arm

* build: ensure that spec native modules are rebuilt for arm64 on apple-silicon

* chore: fix patches

* chore: fix broken patch

* chore: fix arm64 DCHECK

* build: add MAS arm64 build

* build: disable arm2 tests

* chore: update patches

* build: actually build MAS version of apple silicon app

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-07-17 09:08:44 -07:00
Electron Bot
6f53457a17 Bump v11.0.0-nightly.20200717 2020-07-17 08:33:03 -07:00
Jeremy Rose
45551f6bf2 refactor: WebContents::From returns pointer (#24605) 2020-07-16 16:16:05 -07:00
Samuel Attard
14bbc07f1e build: free up space on macOS VM in background (#24607) 2020-07-16 14:20:42 -07:00
Samuel Attard
3806f4cb64 build: stop the macOS checkout step early if the src cache already exists (#24606) 2020-07-16 14:16:02 -07:00
Jeremy Rose
eb7c04c7c4 refactor: stop using isolate() in WebContents (#24602) 2020-07-16 14:11:44 -07:00
Samuel Attard
f649e604be build: tsify asar and move to webpack js2c pipeline (#24495)
* build: tsify asar and move to webpack js2c pipeline

* build: use the webpack provider for fs-wrapper
2020-07-16 11:38:31 -07:00
Samuel Attard
4c3da359fc build: convert touch-bar to typescript (#24511) 2020-07-16 11:37:38 -07:00
Shelley Vohr
3f37ff87d2 fix: chrome://accessibility not loading (#24437) 2020-07-16 10:14:54 -07:00
Electron Bot
24fb498fd3 Bump v11.0.0-nightly.20200716 2020-07-16 08:32:31 -07:00
Samuel Attard
d8be385d4b fix: do not register the node ESM loader in renderer processes (#24301) 2020-07-16 08:09:07 -07:00
Jeremy Rose
e4180b3a3a refactor: rename InspectableWebContents{Impl =>} (#24543) 2020-07-15 11:27:42 -07:00
Yoshietru Nagata
eb550c57d3 docs: fix wrong description in breaking-changes.md (#24477) 2020-07-15 09:31:54 -07:00
Electron Bot
cdd5bb1eba Bump v11.0.0-nightly.20200715 2020-07-15 08:31:25 -07:00
Electron Bot
9c8cdd63fd chore: bump chromium to ab0f6deadb33bb3a0201cd2d21602 (master) (#24539)
* chore: bump chromium in DEPS to 0ee01724797ab0f6deadb33bb3a0201cd2d21602

* Update patches

* Separate pdf/pdf_ppapi.h into its own target.

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

* [ozone/x11] Removed DesktopWindowTreeHostX11 and its DnD client.

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

* Move front_end html_entrypoints to data_deps

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

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-07-14 20:07:42 -07:00
Samuel Attard
3f54f240bd perf: pass primitives directly through the context bridge, avoids copying (#24531) 2020-07-14 18:38:54 -07:00
Samuel Attard
36900df7d9 build: free up more space on the mac VM (#24549) 2020-07-14 18:34:38 -07:00
Shelley Vohr
ce87a7e69f fix: broken --trace-sync-io flag in Node.js (#24529) 2020-07-14 10:47:20 -07:00
Shelley Vohr
990a6f8b6c fix: Node.js cpu and heap profiling (#24528)
* fix: Node.js cpu and heap profiling

* chore: emable more now-working Node.js specs
2020-07-14 11:56:57 -04:00
Electron Bot
e002f7315d Bump v11.0.0-nightly.20200714 2020-07-14 08:31:14 -07:00
Electron Bot
8bbdc224ac chore: bump chromium to 6d130075d378a64187360ba4e7820 (master) (#24256)
* chore: bump chromium in DEPS to 7fb9778894d73378bff51087ce869ea5aa6e5d5d

* chore: bump chromium in DEPS to 83da426e53d423f0530fc23433b6d2c4d0548442

* update patches

* remove chromeos-only TtsControllerDelegate

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

* SharedUserScriptMaster -> SharedUserScriptManager

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

* avoid deprecated DISALLOW_COPY_AND_ASSIGN

https://groups.google.com/a/chromium.org/forum/#!msg/cxx/qwH2hxaEjac/TUKq6eqfCwAJ

* chore: bump chromium in DEPS to b2eaf9ff4e6b03267bf279583ea20ceb2b25e9d0

* update patches

* rename GetHighContrastColorScheme -> GetPlatformHighContrastColorScheme

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

* remove vulkan info collection

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

* add max_xcode_version build var

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

* add missing headers

* chore: bump chromium in DEPS to cded18ca1138f7e8efc904f077ddcca34f0135cf

* update patches

* add empty floc blocklist to BrowserProcessImpl

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

* chore: bump chromium in DEPS to f06602226cd80bf677b2ce013a94a2fb7f6ac58d

* chore: bump chromium in DEPS to 747aa4bfc74fc6cf7f08ee72624cd69ae41ae28d

* chore: bump chromium in DEPS to 31c0105e50fcc4e94de33e5c8602c755ace4a32b

* chore: update patches

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

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

* X11 and Ozone: make sure gfx::AcceleratedWidget to be uint32_t

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

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

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

* chore: update v8 patches

* [XProto] Remove usage of Shape extension

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

* fixup! add empty floc blocklist to BrowserProcessImpl

* Require macOS 10.15.1 sdk

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

* Use newer Xcode version 11.5.0

* update src cache

* chore: bump chromium in DEPS to 60a9883e35db3f6f91916f0878e88e1849c17b11

* chore: update patches

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

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

* update patches

* Convert raw NonClientFrameViews to unique_ptrs

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

* [printing] Move PrintHostMsg_DidPreviewDocument_Params to print.mojom

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

* chore: bump chromium in DEPS to 12c233c2a85bfa28fb279f390121ba681e52a71b

* chore: update patches

* Removing oppressive language for the directory chrome/browser/apps

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

* Inclusion: rename SpellcheckLanguageBlacklistPolicyHandler

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

* Clean up duplicate WebContents "is fullscreen" functions

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

* Adds icon loading service with sandbox for Windows.

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

* No more Vulkan info collection for UMA on Windows

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

* fix lint

* chore: update buildflag conditions

* chore: bump chromium in DEPS to a837d4c4230ace4f10b2768728f4044b7995dfa5

* update hunspell files

* chore: update patches

* Make content::FileSelectListener a RefCounted

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

* fix build failures on MAS

* update patches

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

* fix build on windows

* Check for GDI exhaustion if window creation fails

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

* chore: bump chromium in DEPS to 2c9b2a73be4ef9ec22d8b6da8e174cb80753f125

* chore: update patches

* Network Service: Move DeleteCookiePredicate into public folder

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

* chore: bump chromium in DEPS to fa2606299bcc02c362528d26b5dcf8c8a0db0735

* chore: bump chromium in DEPS to d9c235d1227204dbae3708daae851573a3566b94

* chore: bump chromium in DEPS to 2f82c284243c035f49a747fd1ead6c44b4b31093

* chore: update patches

* Move creating the LayerTreeSettings into blink.

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

* chore: bump chromium in DEPS to 914112f1d9af9e4974059dc403da62699a55550f

* update patches

* chore: bump chromium in DEPS to e0bc1ffae6393fc543a2da94c88167df75859b36

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

* update patches

* chore: bump chromium in DEPS to 0881423156abe084164b51ab58ce93a8bd380524

* update patches

* update patches

* give a type to pendingPromise

* chore: bump chromium in DEPS to 11a8c1534b16d130075d378a64187360ba4e7820

* update patches

* 2272609: Move //services/service_manager/sandbox to //sandbox/policy.

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

* update patches

* fixup! 2272609: Move //services/service_manager/sandbox to //sandbox/policy.

* fixup! 2272609: Move //services/service_manager/sandbox to //sandbox/policy.

* 2264511: Cookies: Update SetCanonicalCookie to return CookieAccessResult

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

* chore: fix setAlwaysOnTop test

The window must be visible for state to be updated properly.

* Revert "Migrate modules/desktop_capture and modules/video_capture to webrtc::Mutex."

https://webrtc-review.googlesource.com/c/src/+/179080

* update patches

Co-authored-by: Andy Locascio <andy@slack-corp.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Samuel Attard <marshallofsound@electronjs.org>
2020-07-13 21:13:34 -04:00
Jeremy Rose
36bd940bc3 refactor: ginify NativeImage (#24486) 2020-07-13 14:44:12 -07:00
Shelley Vohr
f0a0e10bd1 fix: use default NSVisualEffectState (#24471) 2020-07-13 12:40:37 -07:00
Samuel Attard
b02748e607 build: ensure that electron/lib/browser can only use browser or common imports (#24512)
* build: ensure that electron/lib/browser can only use browser or common imports

* chore: fix linting
2020-07-13 09:58:49 -07:00
Jeremy Rose
1719f073c1 chore: remove some unused code in the net module (#24488) 2020-07-13 09:36:20 -07:00
Shelley Vohr
91cdedfea9 fix: default to simplex for printing DuplexMode (#24489) 2020-07-13 11:31:39 -04:00
Samuel Attard
cbb47570bd build: run the JS linter on the build folder (#24513) 2020-07-10 14:48:50 -07:00
Sam Saccone
e18f508e66 docs: fix incorrect formatting in browser docs. (#24473)
Address incorrect typing for isEnabled. The root cause of this was due
to missing backticks which caused the docs parser to think that the
return type of the `isEnabled` function was null, where it was supposed
to be a boolean type.

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

Fixes #24409
2020-07-10 13:57:29 -07:00
Shelley Vohr
6c4017ff45 fix: always callback error with invalid print settings (#24476) 2020-07-10 09:42:22 -07:00
Samuel Attard
5737fda154 build: tsify worker/init (#24497) 2020-07-09 20:32:37 -07:00
Samuel Attard
8847517798 build: tsify isolated_renderer/init (#24496) 2020-07-09 20:32:26 -07:00
Samuel Attard
c9aa68e32c build: update octicons (#24492) 2020-07-09 18:12:18 -07:00
Samuel Attard
42f716bbc6 build: update in-range dependencies (#24480) 2020-07-09 16:32:21 -07:00
Samuel Attard
ef9addcb92 build: fix linting issue in spec-main 2020-07-09 11:25:43 -07:00
Samuel Attard
dcb56923cb build: update @types packages and fs-extra (#24475) 2020-07-09 10:57:50 -07:00
Samuel Attard
eb6616e4e9 build: update to standard 14 (#24479) 2020-07-09 10:18:49 -07:00
Jeremy Rose
9bd0fc5348 refactor: ginify BrowserView (#23578) 2020-07-09 08:48:39 -07:00
Electron Bot
66d65a6d35 Bump v11.0.0-nightly.20200709 2020-07-09 08:32:15 -07:00
Samuel Attard
4305707ca8 build: update typescript parser deps (#24474) 2020-07-09 01:12:23 -07:00
Samuel Attard
8d25847318 build: update webpack / TS build deps (#24460)
* build: update webpack / TS build deps

* chore: fix JS inferred types
2020-07-09 01:05:16 -07:00
Samuel Attard
ad16e6c647 build: update linting deps (#24461) 2020-07-08 21:19:49 -07:00
Jeremy Rose
80a6adb597 fix: coerce executeJavaScript arguments (#24396) 2020-07-08 16:13:50 -07:00
Robo
7dd365784d fix: clipboard.readBuffer returning empty value (#24454) 2020-07-08 15:02:42 -07:00
Samuel Attard
e59370f541 build: update ts defs generator (#24459) 2020-07-08 13:08:31 -07:00
Shelley Vohr
6cfbee9f34 fix: uv_walk crash on web worker close (#24436)
* fix: uv_walk crash on web worker close

* Use DCHECK_EQ
2020-07-08 11:00:43 -07:00
Electron Bot
2aeaca6f7b Bump v11.0.0-nightly.20200708 2020-07-08 08:32:47 -07:00
Shelley Vohr
cadc142d05 fix: use try/catch for base class converter error (#24246) 2020-07-07 14:18:43 -07:00
Shelley Vohr
446100cdfe chore: don't duplicate devtools constants (#24440) 2020-07-07 17:04:23 -04:00
Milan Burda
7fd96cd188 feat: add name to app.getAppMetrics() output (#24359) 2020-07-07 14:00:45 -04:00
Electron Bot
25a36a43c1 Bump v11.0.0-nightly.20200707 2020-07-07 08:31:26 -07:00
jieniu$
b0be3fbb7f docs: fix typos in doc/tutorial/electron-versioning.md (#24362) 2020-07-06 16:31:24 -04:00
Jeremy Rose
71a7e1b2e3 chore: tsify menu (#24358) 2020-07-06 13:24:54 -07:00
Samuel Attard
2a3437e5b5 build: use python3 for electron hooks (#24435) 2020-07-06 13:12:23 -07:00
Andy Dill
cf74ee3d83 fix: use RenderViewReady to call InstallTransparency (#24390)
this fixes a crash with transparent OSR when GPU acceleration is
disabled
2020-07-06 11:57:14 -07:00
Samuel Attard
99079c3bc7 build: fix build with context snapshot disabled (#24433) 2020-07-06 11:11:48 -07:00
Jeremy Rose
1f23807271 chore: tsify web-contents (#24325) 2020-07-06 10:50:03 -07:00
Milan Burda
82af855579 chore: add missing _Deprecated_ to 'renderer-process-crashed' on app (#24410) 2020-07-06 10:09:42 -07:00
Electron Bot
f6e21d59e7 Bump v11.0.0-nightly.20200706 2020-07-06 08:32:59 -07:00
Shelley Vohr
4398ecb6c8 chore: use node_bindings loop for clarity (#24391) 2020-07-03 09:19:27 -07:00
Shelley Vohr
9106d0c6d5 fix: intermittent 100% CPU usage on macOS (#24394) 2020-07-03 09:18:51 -07:00
Electron Bot
92d9de93a4 Bump v11.0.0-nightly.20200703 2020-07-03 08:32:36 -07:00
Shelley Vohr
fd0eaf4507 fix: remove same-tag notifications before showing new ones (#24302) 2020-07-02 23:04:32 -07:00
Samuel Attard
2a6d6d6ea7 build: build squirrel and its dependencies from source (#24318)
* build: build squirrel and its dependencies from source

* chore: do not use fork for squirrel.mac

* build: do not ship headers with dependency frameworks

* Update BUILD.gn

* chore: s/striped/stripped

* chore: update as per feedback

* chore: use ARC and fix build errors

* chore: fix ARC Squirrel self retainer
2020-07-02 19:42:40 -07:00
Robo
d330c6f9fe feat: expose sessionId in debugger module (#24170) 2020-07-02 13:04:20 -07:00
Electron Bot
82ae18dd1c Bump v11.0.0-nightly.20200702 2020-07-02 08:36:33 -07:00
Electron Bot
c157311373 chore: bump node to v12.18.2 (master) (#24381)
* chore: bump node in DEPS to v12.18.2

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-07-01 15:39:35 -04:00
Jeremy Rose
354ea00f17 chore: tsify auto-updater (#24328) 2020-07-01 12:27:12 -07:00
Milan Burda
4c449fbc75 test: convert more tests to async / await (#24373) 2020-07-01 15:14:38 -04:00
Shelley Vohr
3cb833821a docs: add hardened runtime entitlement info (#24369) 2020-07-01 12:11:09 -07:00
Shelley Vohr
a69a655386 chore: remove upstreamed BoringSSL patch (#24363) 2020-07-01 09:27:14 -07:00
Electron Bot
dc3905cef4 Bump v11.0.0-nightly.20200701 2020-07-01 08:31:42 -07:00
John Kleinschmidt
22e64dc328 ci: update timeout on breakpad generation to 30 minutes (#24382) 2020-07-01 11:06:45 -04:00
Jeremy Rose
6bd30bf09e chore: tsify dialog (#24324) 2020-06-30 15:51:44 -07:00
Milan Burda
c6db47182a test: make sure tests fail properly instead of timing out (#24316) 2020-07-01 00:10:36 +02:00
Jeremy Rose
451086d7f2 chore: tsify extensions shim (#24355) 2020-06-30 12:49:08 -07:00
George Xu
ee61eb9aa4 feat: add app.getApplicationInfoForProtocol API (#24112)
* pre merge

* windows changes

* added tests

* clean up

* more cleanup

* lint error

* windows 7 support

* added windows 7 implementation

* code review

* lint and code review

* code review

* app.md merge conflict

* merge conflict app.md

accidently deleted code block

* 'lint'

* mis-moved getapplicationinfoforprotocol() into anonymous namespace

* fix test

* lint

* code review
2020-06-30 12:22:30 -07:00
Electron Bot
2cbd091e89 Bump v11.0.0-nightly.20200630 2020-06-30 08:33:54 -07:00
Shelley Vohr
af4876296c fix: macOS modal focus (#24286) 2020-06-29 13:15:28 -07:00
Jeremy Rose
d9d07c65b2 chore: tsify net-log (#24322)
* chore: tsify net-log

* comment

* gn
2020-06-29 09:21:32 -07:00
Electron Bot
6e069a7df8 Bump v11.0.0-nightly.20200629 2020-06-29 08:31:45 -07:00
Cheng Zhao
ef3579eae3 refactor: rename TopLevelWindow to BaseWindow (#24305) 2020-06-29 16:06:20 +09:00
Jeremy Rose
80e5007c47 chore: tsify browser-window (#24326)
* chore: tsify browser-window

* fix focus

* also tsify top-level-window
2020-06-29 10:22:55 +09:00
Milan Burda
1c49e4e376 test: use delay() helper (#24321) 2020-06-26 22:59:54 +02:00
Electron Bot
8eb198bab4 Bump v11.0.0-nightly.20200626 2020-06-26 08:32:52 -07:00
Samuel Attard
16a3f41fd3 chore: add deprecation warning for the default of contextIsolation (#23507)
* chore: add deprecation warning for the default of contextIsolation

* chore: add to breaking changes

* Update docs/breaking-changes.md

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

* chore: fix specs on windows

Co-authored-by: Jeremy Apthorp <jeremya@chromium.org>
2020-06-25 10:55:17 -07:00
Jeremy Rose
605e50269e chore: convert rpc-server to ts (#24271) 2020-06-25 10:19:08 -07:00
Milan Burda
9b4572de44 feat: implement systemPreferences.getMediaAccessStatus() on Windows (#24275) 2020-06-25 09:47:50 -07:00
Electron Bot
5b80556da2 Bump v11.0.0-nightly.20200625 2020-06-25 08:31:34 -07:00
Shelley Vohr
4290555a0d feat: support suspend/resume on macOS (#24254) 2020-06-24 10:17:07 -07:00
Electron Bot
1429a8961c Bump v11.0.0-nightly.20200624 2020-06-24 08:32:42 -07:00
Shelley Vohr
46f58b28c3 fix: frameless vibrant modals shouldn't bezel (#24250) 2020-06-24 07:30:49 -07:00
Shelley Vohr
6369748a2a feat: support suspend/resume on Windows (#24251) 2020-06-24 07:28:29 -07:00
Samuel Attard
abf2e9c93d chore: expose electrons built in modules in the REPL along with nodes (#24249) 2020-06-24 00:53:46 -07:00
Samuel Attard
b2b5a6a3de chore: minify internal JS code (#24252) 2020-06-23 14:57:08 -07:00
Shelley Vohr
acb64a2d3c fix: only notify mouse-up on mouse-up (#24240) 2020-06-23 08:37:13 -07:00
Electron Bot
3853fd3e99 Bump v11.0.0-nightly.20200623 2020-06-23 08:32:44 -07:00
Shelley Vohr
659e79fc08 refactor: prevent consistent early exception (#24191)
* refactor: prevent consistent early exception

* Use _linkedBinding where possible

* Remove dead electronBinding
2020-06-22 20:32:45 -07:00
Shelley Vohr
4c77fe318d refactor: improve the REPL (#24204)
This PR improves the Electron REPL experience. It adds a welcome message to the REPL to let users know what versions of Node.js and Electron they're running, as well as overriding the completer function in the REPL to preload and add tab autocompletion for Electron's own modules.
2020-06-22 19:03:19 -07:00
Electron Bot
72a089262e chore: bump chromium to a84d34e372b8fb5e9a94b1b4b447e (master) (#23908)
* chore: bump chromium in DEPS to a7249f73ae05d456c04487ef1693325f719556dd

* chore: bump chromium in DEPS to 202466fa40b58f0bb9c9a76a037d1c50154c099e

* chore: bump chromium in DEPS to 2dd1b25c8d794b50fb0dd911e0c4e909ff39f145

* Update patches

* update patches

* Revert "[printing] Mojofy PrintHostMsg_CheckForCancel"

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

* chore: bump chromium in DEPS to 8c1542e7dd36854fdf4abd1a8021eeb65a6a2e2b

* chore: bump chromium in DEPS to 078bc6d796334fb403acd8975b99d1c8ecd028e8

* chore: bump chromium in DEPS to d96e9f16ae852ec9dbd15bf17df3d440402413bb

* update patches

* chore: update patches

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

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

* Remove WebImeTextSpan

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

* Remove PDFAnnotations flag altogether.

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

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

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

* fixup! Revert "[printing] Mojofy PrintHostMsg_CheckForCancel"

* chore: bump chromium in DEPS to a8a280835830c65145ed8573a9a09f36d3920418

* update sysroots

* update patches

* update patches

* Take RFH as a parameter for DidUpdateFavicon/ManifestURL

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

* chore: bump chromium in DEPS to b6149cb5a5e32caf8eab67b97ef3072b72521ca8

* Update patches

* Rename net::cookie_util::StripStatuses to StripAccessResults

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

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

* fix mas_no_private_api patch

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

* chore: bump chromium in DEPS to a27feee1643d952e48f77c92d8c03aedea14b720

* update patches

* fix: add new navigation state REUSE_SITE_INSTANCE

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

* chore: bump chromium in DEPS to ff4559a4c13d20888202474e4ab9917dbdad8a9a

* update patches

* Cleanup usages of old mojo types and remove unused code

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

* chore: bump chromium in DEPS to 05279845f76eb22900a8b0d1a11d4fd339a8e53b

* chore: bump chromium in DEPS to 821558279767cffec90e3b5b947865f90089fed3

* chore: bump chromium in DEPS to 1aef04e6486be337d3dd820b2d64d6320a1b9c13

* chore: bump chromium in DEPS to dc86386e8fdd796a0f7577e91e42a7f8b7e9bc78

* chore: bump chromium in DEPS to 64f2360794f14643764092ba3e58e2ed8f9fee12

* chore: update patches

* refactor: MessageLoop, you are terminated \o/

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

* refactor: plumb DownloadSchedule to DownloadItem

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

* chore: fix variable typo in IPC

* chore: s/BindPipeAndPassReceiver/BindNewPipeAndPassReceiver

* chore: update patches

* chore: XEvent becomes x11::Event

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

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

* fixup! chore: XEvent becomes x11::Event

* build: update v8 headers

* chore: fix windows build

* chore: disable SameSite-by-default changes

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

* update printing.patch

* chore: bump chromium DEPS to 9ae03ef8f7d4f6ac663f725bcfe70311987652f3

* Convert WidgetHostMsg_SelectionBoundsChanged/TextInputStateChanged

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

* chore: update v8 patches

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

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

* Update VideoFrameMetadata to use base::Optionals

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

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

* [v8] Allow for 4GB TypedArrays

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

* update lib_src_switch_buffer_kmaxlength_to_size_t.patch

* disable app.getGPUInfo spec on linux

* update patches

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-06-22 10:35:10 -07:00
Shelley Vohr
61a05caa78 refactor: remove uses of v8::Isolate::GetCurrent (#24179) 2020-06-22 09:35:24 -07:00
Electron Bot
563a8c83ea Bump v11.0.0-nightly.20200622 2020-06-22 08:33:12 -07:00
Shelley Vohr
046a05944a fix: emit click events with tray context menu (#24200) 2020-06-22 08:24:47 -07:00
Milan Burda
0629c6c2ea fix: isTrustedSender() in test-app (#24214) 2020-06-22 14:14:20 +02:00
Electron Bot
48d1a70b52 Bump v11.0.0-nightly.20200619 2020-06-19 08:31:56 -07:00
Electron Bot
5c6d8c2b7d chore: bump node to v12.18.1 (master) (#24199)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-18 17:37:23 -07:00
Electron Bot
0f44682be0 Bump v11.0.0-nightly.20200618 2020-06-18 08:32:15 -07:00
Cheng Zhao
2376c45443 fix: do not use CONTEXT_MENU flag for tray menu (reland) (#24097)
* fix: do not use CONTEXT_MENU flag for tray menu

* fix: menu window should not appear in taskbar
2020-06-17 21:21:43 -07:00
Electron Bot
b665eb6d43 chore: bump node to v12.18.0 (master) (#23789)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-06-17 15:57:12 -07:00
Elena Topaka
4e66f1b2c6 fix: use correct 'pasteandmatchstyle' shortcut on macOS (#24153) 2020-06-17 23:13:46 +02:00
Shelley Vohr
a54fcde3f4 docs: fix MenuItem click handler type (#24147) 2020-06-17 10:34:25 -07:00
Robo
7cc780d077 fix: let Node.js perform microtask checkpoint in the main process (#24131)
* fix: let Node.js perform microtask checkpoint in the main process

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

* fix: remove checkpoint from some call-sites

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

* fix: remove checkpoint from some call-sites

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

* fix incorrect specs

* default constructor arguments are considered for explicit mark

* add regression spec
2020-06-17 10:08:10 -07:00
Electron Bot
59f9d75324 Bump v11.0.0-nightly.20200617 2020-06-17 08:31:29 -07:00
Milan Burda
cb6476fd12 chore: cleanup unused WebContents::DereferenceRemoteJSObject() (#24167) 2020-06-17 16:50:21 +02:00
Jeremy Rose
e1e73fa5f5 refactor: use WeakRef on main process side of remote (#24115) 2020-06-16 14:34:08 -07:00
Samuel Attard
09c0ee8f87 build: remove dead symlink from MAS build (#24158)
* build: remove dead symlink from MAS build

* chore: new out cache

* build: fixup gn check

* Update node_main.cc

* chore: fix lint
2020-06-16 14:19:57 -07:00
Lukas Weber
cf284991d8 feat: Add did-become-active event on mac (#23872)
Co-authored-by: Lukas Weber <luweber@microsoft.com>
2020-06-16 10:03:41 -07:00
Electron Bot
f9fe8a67b9 Bump v11.0.0-nightly.20200616 2020-06-16 08:33:19 -07:00
Samuel Attard
7bf0af7d96 Revert "build: remove dead symlink from MAS build (#23831)" (#24146)
This reverts commit 7a216a8fab.
2020-06-15 23:42:18 -07:00
Samuel Attard
7a216a8fab build: remove dead symlink from MAS build (#23831)
* build: remove dead symlink from MAS build

* chore: new out cache

* fix gn check errors

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-06-16 14:25:21 +09:00
Milan Burda
673169a7ba chore: remove unused deprecate.fnToProperty() (#24069) 2020-06-15 18:59:04 -07:00
Shelley Vohr
9c7d73c6d6 fix: emit 'shutdown' outside -[NSApplication terminate:] (#24111) 2020-06-15 18:58:28 -07:00
Samuel Attard
0b830ba9e5 build: retry external binary downloads a few times (#24110) 2020-06-15 14:31:29 -07:00
Jeremy Rose
c0182bca15 chore: remove test usages of createIDWeakMap (#24116) 2020-06-15 13:56:51 -07:00
Electron Bot
8412aae231 Bump v11.0.0-nightly.20200615 2020-06-15 08:31:53 -07:00
Shelley Vohr
b9ac334efc fix: showing certificate dialog with no window (#24091) 2020-06-12 22:18:09 -07:00
Jeremy Rose
379bb174e9 refactor: use WeakRef on renderer side of remote (#24037) 2020-06-12 15:50:03 -07:00
Jeremy Rose
178e46cd23 test: add test for gc race in remote (#24087) 2020-06-12 14:19:20 -07:00
Shelley Vohr
66744ecb4d fix: fs.readdir should support withFileTypes (#24062) 2020-06-12 08:32:59 -07:00
Electron Bot
a7599a0838 Bump v11.0.0-nightly.20200612 2020-06-12 08:32:36 -07:00
Cheng Zhao
d5f642938d fix: handle non client pointer events from pen on Win10 (#24042) 2020-06-12 09:26:16 -05:00
Jeremy Rose
7274467f73 refactor: tsify remote (#24034) 2020-06-11 11:36:03 -07:00
Jeremy Rose
7c7ea141f0 test: extract defer helper (#24019) 2020-06-11 11:35:50 -07:00
Samuel Attard
c66282a460 Revert "fix: do not use CONTEXT_MENU flag for tray menu (#23843)" (#24076)
This reverts commit b809d104d0.
2020-06-11 11:27:57 -07:00
Jeremy Rose
78fe545d18 refactor: remove renderer-side refcount in remote (#24054) 2020-06-11 10:22:28 -07:00
Paul Frazee
81d09bea44 fix: correctly handle nexttick scheduling in stream reads (#24022) 2020-06-11 09:55:59 -07:00
Electron Bot
130b176796 Bump v11.0.0-nightly.20200611 2020-06-11 08:31:16 -07:00
Andrea Brancaleoni
2e2e9a3702 ci: use call instead of cmd /C (#23985)
Since we want to import the environment change from RefreshEnv.cmd
we also want to share the same execution context of the
caller.
2020-06-11 10:05:03 -04:00
Eryk Rakowski
04be1ac4a1 fix: assign session to remote webContents (#23989)
* fix: assign session to remote webContents

* fix: test name
2020-06-11 12:57:51 +09:00
Benjamin Sova
a33c10c3ed docs: fix explanation of darwin auto-quit prevention (#24003) 2020-06-11 11:08:27 +09:00
Gellert Hegyi
ce042184de fix: Add .paks for media-internals and webrtc-internals pages (#24010)
* fix: adds paks for media-internals and webrtc-internals pages

* adds tests
2020-06-11 11:07:49 +09:00
Electron Bot
b1574f9e59 Bump v11.0.0-nightly.20200610 2020-06-10 08:32:15 -07:00
Felix Rieseberg
9554d063a5 chore: backport advapi32 libuv fix (#24030)
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-06-09 14:26:33 -07:00
Felix Rieseberg
3eade2c228 fix: Allow windows behind macOS elements if frame = false (#23976) 2020-06-09 11:52:14 -07:00
Jeremy Rose
71e2b7151c test: extract RemoteControlApp to spec-helpers (#24020) 2020-06-09 11:42:53 -07:00
Jeremy Rose
d08cfce6cb chore: use more inclusive language in a few places (#24023)
* chore: use more inclusive language in lint script

* whitelist -> allowed_extension_ids in plugin_utils

* some other places
2020-06-09 11:29:29 -07:00
dependabot[bot]
b2ef299efc build(deps): bump minimist from 1.2.0 to 1.2.5 in /spec-main (#24026)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.5.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.5)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-06-09 11:29:15 -07:00
Electron Bot
fc8b49485a Bump v11.0.0-nightly.20200609 2020-06-09 08:32:03 -07:00
Evgeny
aa32fbf1d6 docs: update setAboutPanelOptions iconPath description (#23998)
* Updated doc setAboutPanelOptions iconPath #23833

* Simplify docs
2020-06-08 17:46:25 -07:00
Charles Kerr
980e592271 chore: ensure release notes always come from Clerk (#23777)
* chore: ensure release notes always come from Clerk

Now with tests!

* chore: move sinon devDependency into `spec-main`

* refactor: tweak note-spec variable for readability
2020-06-08 11:39:44 -07:00
Paul Frazee
c6c022dc46 feat: add {stream} opt to custom protocol registry to configure media player (#22955) 2020-06-08 09:49:36 -07:00
Islam ElHakmi
261f385b5e docs: mention build-tools in the build instructions (#23909) 2020-06-08 08:59:19 -07:00
Electron Bot
6e710a20a6 Bump v11.0.0-nightly.20200608 2020-06-08 08:31:59 -07:00
Alexey Kuzmin
46c9e15182 fix: volume key globalShortcut deregistration (#23984) 2020-06-08 14:46:00 +02:00
Jeremy Rose
5185501b85 test: reduce flakiness of post-context-release ipc test (#23992) 2020-06-05 16:51:42 -07:00
Shelley Vohr
27d629abb9 fix: add missing isComposing KeyboardEvent property (#23971) 2020-06-05 15:18:20 -07:00
Shelley Vohr
9d960e29eb build: check patches on update (#23103) 2020-06-04 17:43:28 -07:00
Jeremy Apthorp
a1c55a13e1 fix: throw instead of crash when using ipcRenderer after context released (#23917) 2020-06-04 16:25:25 -07:00
Robo
491caf59c1 chore: update tracking bug (#23959) 2020-06-04 10:56:54 -07:00
Shelley Vohr
2d47daa8c4 fix: missing HandleScopes in touch bar (#23936) 2020-06-04 10:11:28 -07:00
Electron Bot
25e4a9431c Bump v11.0.0-nightly.20200604 2020-06-04 08:32:18 -07:00
Milan Burda
3fa4299939 fix: use acceptLanguages argument in session.setUserAgent() (#23944) 2020-06-04 13:05:37 +02:00
Cheng Zhao
90caa5eac9 docs: remove confusing notes on Node (#23929)
* docs: remove confusing notes on Node

* Update docs/tutorial/first-app.md

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

Co-authored-by: Mark Lee <malept@users.noreply.github.com>
2020-06-03 20:00:52 -07:00
Samuel Attard
b1adbf7fd7 build: fix filenames autogen with new BUILDFLAG syntax (#23952) 2020-06-03 15:46:59 -07:00
Cheng Zhao
2fadb73032 fix: destroy GetSize callback at last (#23930) 2020-06-03 11:04:30 -07:00
Shelley Vohr
ac81a39e09 fix: compensate for lazy-loaded circular deps (#23890) 2020-06-03 10:29:08 -07:00
Electron Bot
83247c48c3 Bump v11.0.0-nightly.20200603 2020-06-03 08:31:46 -07:00
Cheng Zhao
5de6adfb84 test: load page with some content when testing extension (#23901)
* test: load page with some content when testing extension

* test: use dom-ready to wait for page loaded with extension
2020-06-03 16:56:28 +09:00
Samuel Attard
d8594f7a78 fix: restore original GTK/appindicator implementation of tray icons (#23674) 2020-06-02 17:00:20 -07:00
Samuel Attard
087567655a fix: correctly support the --inspect-brk-node flag (#23903) 2020-06-02 15:02:54 -07:00
Robo
512e1541c6 fix: default to NTLM v2 in the network service for POSIX platforms (#23846)
* fix: default to NTLM v2 in the network service

* chore: update patch details
2020-06-02 12:58:00 -07:00
Samuel Attard
c36981da8b docs: default of allowRendererProcessReuse is true (#23888) 2020-06-02 11:09:20 -07:00
Samuel Attard
d3fa5ed1e8 docs: move protocol-ns to protocol.md (#23883)
* docs: move protocol-ns to protocol.md

* chore: fix up tests and implement missing pieces required for tests
2020-06-02 09:46:18 -07:00
Electron Bot
edc5050a2e Bump v11.0.0-nightly.20200602 2020-06-02 08:32:11 -07:00
Jeremy Apthorp
a5efc387c7 chore: note quiet period in PR template. (#23889) 2020-06-02 09:36:09 -04:00
Samuel Attard
0062b126b4 chore: update patches (#23902) 2020-06-02 03:34:52 -07:00
Samuel Attard
969f46a48f chore: remove IPC hiddens (#23720) 2020-06-02 02:33:06 -07:00
Samuel Attard
c6f4573a13 perf: lazily load some modules in sandbox mode (#23856) 2020-06-02 02:32:32 -07:00
Biru Mohanathas
95037a7d2a fix: Make the --disable-color-correct-rendering switch work again (#23787)
This regressed once again in Electron 8 due to Chromium changes.

Test Plan:

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

Notes: Fix disabling color correct rendering with `--disable-color-correct-rendering`
2020-06-02 16:31:33 +09:00
Wojciech Krol
5218a6e6ab fix: notify URLLoaderClient about redirect inside intercepted protocol's handler (#23742)
* fix: notify URLLoaderClient about redirect inside intercepted protocol's handler

* fix: update new_request's site_for_coookies

* fix: Unound client, so it an be passed to sub-methods
2020-06-02 14:20:34 +09:00
Cheng Zhao
5918dd6e65 test: wait for beforeunload handler to be installed (#23874) 2020-06-02 11:32:39 +09:00
Samuel Attard
fbf397e15d fix: add patch to prevent crash during frame swap with ctx isolation enabled (#23684) 2020-06-01 18:02:30 -07:00
Samuel Attard
066b8c5ab3 fix: expose electron/common and electron/renderer modules in sandboxed preloads (#23857) 2020-06-01 17:37:02 -07:00
Samuel Attard
634ab45095 build: make electron renderer init scripts profilable (#23855)
The devtools profiler is not attached at the point we run out init scripts (or our apps preload scripts), we do not really want to change when we run these init scripts but for when a dev is doing performance work it makes sense to give them an option to make the devtools profiler actually work on both our init scripts and their preload script.  This PR adds that logic behind an environment variable ELECTRON_PROFILE_INIT_SCRIPTS.
2020-06-01 16:08:34 -07:00
Electron Bot
a4de915b74 chore: bump chromium to d66c2e32380bf5d1eb5e1fe37faef (master) (#23791)
* chore: bump chromium in DEPS to db7d7b3e7cb2bc925f2abfde526280cfdfc21a41

* Update patches

* chore: bump chromium in DEPS to 5613e1b99a44fcbe22f3910f803ca76903a77ec1

* Update patches

* Network service: Remove primary_network_context bool.

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

* WebContentsObserver now implements OnRendererResponsive

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

* update patches

* Fixup printing patch

* chore: bump chromium in DEPS to e387b972cdd7160c416fa6c64a724e2258aa0218

* update patches

* [printing] Move PrintHostMsg_DidPrintContent_Params to print.mojom

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

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

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

* revert Add IChromeAccessible

This was added in https://chromium-review.googlesource.com/c/chromium/src/+/2206224 but it breaks WOA builds because third_party/win_build_output/midl/ui/accessibility/platform/arm64 does not exist. The link above says that the new interface is behind a feature flag which is disabled by default so it is safe to remove for now.

* rebaseline ichromeaccessible for Windows arm64

This patch will not be needed once we get the next roll.

* Update to 1b9e01844e8bf1aaafc4a52c0c62af7f56d9637b to get arm64 fix

* update patches

* chore: bump chromium in DEPS to 096aefa04092ea00f7b68d8d19345883f20db3c3

* chore: bump chromium in DEPS to a524a45ffd1d6fd46a7a86138fe2b22df5b6651a

* chore: update patches

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

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

* chore: add spec for https://crbug.com/1085836

* chore: bump chromium in DEPS to ff6c4f4b826d66c2e32380bf5d1eb5e1fe37faef

* update patches

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-06-01 16:34:34 -04:00
Electron Bot
4a551bde16 Bump v11.0.0-nightly.20200601 2020-06-01 08:32:05 -07:00
Cheng Zhao
b809d104d0 fix: do not use CONTEXT_MENU flag for tray menu (#23843) 2020-06-01 09:57:25 -05:00
Alexey Kuzmin
4133c71105 build: fix for "enable_desktop_capturer = false" (#23864) 2020-06-01 10:13:47 -04:00
Robo
f67aff2704 feat: add V8CacheOptions webpreference (#23842)
* feat: add V8CacheOptions webpreference

* address review comments
2020-05-31 20:09:23 -07:00
Cheng Zhao
aa8d81511f fix: MakeAbsoluteFilePath is a blocking call (#23840) 2020-05-30 10:01:55 -07:00
Samuel Attard
236c1334e3 chore: tsify sandboxed init (#23719) 2020-05-30 02:56:54 -07:00
DeeDeeG
9f21d09dfd docs: remove upgrading-node.md (#23802) 2020-05-29 12:12:35 -07:00
Electron Bot
9dec16d81e Bump v11.0.0-nightly.20200529 2020-05-29 08:31:10 -07:00
John Kleinschmidt
b086197968 fix: use system installed objcopy to copy debug symbols (#23835) 2020-05-29 08:37:02 -04:00
Shelley Vohr
e8ea007104 fix: ensure nativeImage serialization main->renderer (#23759) 2020-05-28 09:43:15 -07:00
Electron Bot
e5da2caa34 Bump v11.0.0-nightly.20200528 2020-05-28 08:32:13 -07:00
Cheng Zhao
a1edf5cf94 Revert "fix: trigger activate event when app is activated via app switcher (#23727)" (#23818)
This reverts commit 2bc85b2579.
2020-05-28 09:53:33 -04:00
Shelley Vohr
6516110c70 fix: volume key globalShortcut registration (#23782) 2020-05-28 08:56:48 -04:00
Alexey Kuzmin
3a7775fa73 test: refactor how spec files are collected (#23774) 2020-05-28 00:21:02 +02:00
Shelley Vohr
5d88d0ee74 fix: only bezel frameless windows (#23779) 2020-05-27 14:07:24 -07:00
Shelley Vohr
7b0a84477a fix: weakly reference MenuModel from MenuController (#23778) 2020-05-27 13:54:52 -07:00
Shelley Vohr
f78504515b fix: handle asynchronous URL loading in bw proxy (#23776) 2020-05-27 13:50:54 -07:00
Cheng Zhao
ca6a415626 fix: pass correct buffer length (#23785) 2020-05-27 10:50:01 -07:00
Electron Bot
f445e0a797 Bump v11.0.0-nightly.20200527 2020-05-27 08:32:31 -07:00
Jeremy Judeaux
204f001c5d feat: add desktopCapturer.getMediaSourceIdForWebContents() to get stream source id from web contents (#22701)
* feat: add desktopCapturer.getMediaSourceIdForWebContents() to get stream source id from web contents

* Cleanup from #22701 PR comments
2020-05-26 16:34:24 -04:00
Electron Bot
dc72f74020 chore: bump chromium to 580fe983e138952553cd6af11ee8b (master) (#23379)
* chore: bump chromium in DEPS to 5ce64b91b4d6a78c97480059f15ff6469fc0918e

* chore: bump chromium in DEPS to e74c73d0000f81b3f40a513176c8d024bba57d28

* chore: bump chromium in DEPS to 501640e650d4657ba63db65fa257e4a899168de7

* chore: bump chromium in DEPS to 00db20e1bc3d77706723a87ada3c1c647a1c37b7

* chore: update patches

* refactor: AddNewContents now takes a target_url

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

* chore: SetHostCleanupFinalizationGroupCallback has been removed from V8

* refactor: use WebInputEvent::Namespace types directly

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

* refactor: FollowRedirect takes in cors exempt headers now

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

* refactor: printing::DuplexMode moved to mojo

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

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

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

* chore: update patches

* chore: bump chromium in DEPS to f1537676d613f3567cfb43adf577b3847fba4bc3

* chore: update patches

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

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

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

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

* chore: bump chromium in DEPS to 949888433ab935dd6125c107226a4c9d6da9bf48

* chore: update patches

* update patches

* chore: update sysroots

* chore: bump chromium in DEPS to eaac5b5035fe189b6706e1637122e37134206059

* chore: bump chromium in DEPS to 258b54b903d33dab963adf59016691e6537f8b70

* build: update patches

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

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

* chore: DesktopWindowTreeHostLinux becomes DesktopWindowTreeHostPlatform

Refs:

* refactor: LogErrorEventDescription moved from ui to x11

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

* chore: update patches

* chore: bump chromium in DEPS to bd06abcfe807d4461683479237cdd920dafa52ca

* chore: bump chromium in DEPS to 1afb0891e56f1e79d204db43ca053a46d0974511

* chore: bump chromium in DEPS to 5cb0f794bf7f155bf8c0a241b94e01c9d90c2744

* chore: bump chromium in DEPS to 37327ba3303234e1a3cd3310ca11a68e81b95123

* update patches

* remove ClientSideDetectionService from browser_process

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

* refactor: shuttle cursor changed event to WebContentsObserver

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

* chore: bump chromium in DEPS to 1d97904bb6936e106df13705208b73e47367c2b9

* avoid IPC crash introduced earlier in the roll

Refs: b67334e781 (diff-607f4e8f7c5686aa09af98c783925babR128)

* remove WebContentsView::SizeContents

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

* chore: bump chromium in DEPS to 87066d1db0546a9de33952ba964e1e42f76f1dae

* update patches

* adapt to //content creating NetworkContexts

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

* WIP temporarily ignore mojo-ified PrintHostMsg_PrintPreviewFailed

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

* add checkout_pgo_profiles to DEPS

* chore: bump chromium in DEPS to a095318bec1dedf580d676f408eaeefdbd9956b1

* add blink's execution_context to electron_lib deps

Refs:
b67334e781#, https://chromium-review.googlesource.com/c/chromium/src/+/1952124

* update patches

* update patches

* refactor: use newly mojo-ified PrintPreviewFailed

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2195343
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>

* chore: update patches

* chore: remove NOTIFICATION_EXTENSIONS_READY_DEPRECATED

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

* avoid a call to Profile::FromBrowserContext in printing

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

* chore: bump chromium in DEPS to 8f5c6a46861a991e12ffd80554b6bd41a11b0b65

* chore: bump chromium in DEPS to ab66134739ff3b6bdb8de53bbc58a97d1b7b5d8a

* chore: bump chromium in DEPS to dd08df9f6c8d6198f0a7b931ca9e845e27dae033

* chore: update patches

* [printing] Mojofy PrintHostMsg_PrintPreviewCancelled

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

* [printing] Mojofy PrintHostMsg_PrintPreviewInvalidPrinterSettings

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

* [printing] Mojofy PrintHostMsg_DidPrepareDocumentForPreview

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

* fix: inherit base network context params

* fix: use message handle api specific to embedders

* update patches

* chore: update v8 headers

* fixup! avoid a call to Profile::FromBrowserContext in printing

* chore: bump chromium in DEPS to f198bc3276828d992b6202d75a9da6a8363164ea

* chore: update patches

* Remove cors_exempt_headers.h

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

* Supply speech recognition sandbox from service_sandbox_type.h

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

* [content] Remove unused methods from WebContents

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

* [XProto] Replace XAtom with x11::Atom

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

* chore: bump chromium in DEPS to 5df37fabaaed09f3ea511f4ef49203d8ebee7b68

* [UI] Support secondary labels in dropdown menus

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

* chore: update patches

* refactor: GetSublabelAt => GetSecondaryLabelAt

* Revert "[printing] Mojofy PrintHostMsg_DidPrepareDocumentForPreview"

This reverts commit 44ed0892a0c81716229638f17253bbb2cf8f037d.

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

* Unnest CanonicalCookie::CookieInclusionStatus

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

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

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

* chore: bump chromium in DEPS to 5dfa8d5f706580fe983e138952553cd6af11ee8b

* fix crash in x server when setting window icon

* chore: update patches

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

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

* fix build on windows

* chore: bump chromium in DEPS to 9d15054f4cba060901e43deecf74002f11f47be3

* chore: update patches

* [printing] Mojofy PrintHostMsg_CheckForCancel

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

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: Andy Locascio <andy@slack-corp.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-05-26 13:06:26 -07:00
Electron Bot
2b39111e30 Bump v11.0.0-nightly.20200526 2020-05-26 08:31:30 -07:00
Lukas Weber
2bc85b2579 fix: trigger activate event when app is activated via app switcher (#23727)
When application is activated thru macOS app switcher (cmd+tab) the
App's activate event is note emitted. The reason is that
`applicationShouldHandleReopen:hasVisibleWindows:` is sent only when app
is activated via Dock. Using `applicationDidBecomeActive:` is handling
all cases properly.

Co-authored-by: Lukas Weber <luweber@microsoft.com>
2020-05-26 10:58:51 -04:00
Cheng Zhao
0a026cde0c test: return after inspector connection is closed (#23763) 2020-05-26 10:47:49 -04:00
John Kleinschmidt
db5cf816b4 ci: deflake WOA tests (#23707) 2020-05-26 10:25:57 -04:00
Cheng Zhao
08f288faf1 test: use WebContents event to test beforeunload (#23699) 2020-05-26 09:21:38 -04:00
Cheng Zhao
0dabd5e8c7 test: more logging in node inspector test (#23746) 2020-05-26 10:20:16 +09:00
Electron Bot
2029ff1903 Bump v11.0.0-nightly.20200525 2020-05-25 08:32:17 -07:00
Samuel Attard
9bc5e98238 chore: tsify more of lib (#23721)
* chore: tsify more of lib

* Update lib/browser/api/session.ts

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

Co-authored-by: Jeremy Apthorp <jeremya@chromium.org>
2020-05-22 12:46:22 -07:00
Shelley Vohr
762f7bcca2 refactor: use typeutils for nativeImage serialization (#23693) 2020-05-22 08:56:57 -07:00
Electron Bot
75847a0c5b Bump v11.0.0-nightly.20200522 2020-05-22 08:32:12 -07:00
Samuel Attard
e3c2ec9f7c chore: remove unused isolated-world-args (#23716) 2020-05-21 20:11:58 -07:00
Cheng Zhao
fdf40ce07a fix: read GTK dark theme setting on Linux (#23678) 2020-05-21 15:41:25 -07:00
Florian Keller
82924679fe docs: Explain console-message parameters (#23661) 2020-05-21 15:39:51 -07:00
Erick Zhao
f373cc770f docs: remove app feedback program doc (#23673) 2020-05-21 15:39:13 -07:00
Shelley Vohr
78d74bf8b4 fix: trigger about panel for about role on on win (#23687) 2020-05-21 15:38:26 -07:00
Samuel Attard
5ed2512881 fix: support 10-x-y in the release notes generator (#23709) 2020-05-21 13:55:27 -07:00
Cheng Zhao
ce77e3327c docs: errors in isolated world are not dispatched (#23653) 2020-05-21 11:56:22 -04:00
mtgto
7b55a70a36 feat: Add Secure Keyboard Entry APIs in macOS (#20678)
* feat: Add Secure Keyboard Entry APIs in macOS

Add methods:
- app.isSecureInputEnabled()
- app.setSecureInputEnabled(enabled)

These enable to prevent other process listens keyboard input events.

* fix: lint error in app.md for #20678

* fix: crash app.setSecureInputEnabled() in password textfield

* fix: export Secure keyboard Entry API to only macOS

* fix: lint error in browser_mac.mm for #20678

* test: add test for app.setSecureKeyboardEntryEnabled in macOS
2020-05-21 11:53:44 -04:00
Jeremy Apthorp
5bdf97e7ae test: hide child windows in webview spec (#23682) 2020-05-21 11:46:17 -04:00
Cheng Zhao
3137d5f011 test: multiple processes may crash in crashReporter test (#23695) 2020-05-21 11:43:47 -04:00
Electron Bot
4114281b62 Bump v10.0.0-nightly.20200521 2020-05-21 08:31:34 -07:00
Shelley Vohr
21a6062a31 docs: document optional scaleFactor param to nativeImage fns (#23671) 2020-05-20 18:52:48 -07:00
Milan Burda
df53816eea feat: expose the desktopCapturer module in the main process (#23548) 2020-05-20 20:25:49 -04:00
Shelley Vohr
4b23a85475 refactor: correctly serialize nativeImage/buffer with typeUtils (#23666)
* refactor: correctly serialize nativeImage/buffer with typeUtils

* test: add serialization specs

* fix: construct from dataURL

* test: test for dataURL specificity
2020-05-20 13:42:42 -07:00
Alexey Kuzmin
33d6a99d40 test: call "expect()" on a correct call stack (#23675) 2020-05-20 22:18:48 +02:00
LuoJinghua
9d851b8791 net: Don't ignore the referer header in net.request (#23386) 2020-05-20 13:28:38 -04:00
Jeremy Apthorp
0a481242f0 fix: wrap EmitWarning with HandleScope (#23667) 2020-05-20 09:44:27 -07:00
Electron Bot
84888bb1f1 Bump v10.0.0-nightly.20200520 2020-05-20 08:31:37 -07:00
Jeremy Apthorp
8de06f0c57 feat: deprecate uncompressed crash uploads (#23598) 2020-05-19 13:47:21 -07:00
Jeremy Apthorp
bca071f428 docs: note no planned breaking changes for v11 (#23638) 2020-05-19 15:39:51 -04:00
Jeremy Apthorp
de44d28c8e refactor: ginify Session (#23569) 2020-05-19 10:18:12 -07:00
Jeremy Apthorp
3f3a760a01 test: bind to 127.0.0.1 in contextBridge spec (#23639) 2020-05-19 10:17:40 -07:00
Jeremy Apthorp
27d7eb3880 docs: remove note about experimental nature of sandbox (#23651) 2020-05-19 10:17:31 -07:00
Jeremy Apthorp
393b637e9e test: attempt to track down "illegal access" error (#23645)
* test: attempt to track down "illegal access" error

* how does electron formed
2020-05-19 12:29:36 -04:00
Electron Bot
33bd218df9 Bump v10.0.0-nightly.20200519 2020-05-19 08:32:19 -07:00
Cheng Zhao
82da234650 test: disable parallel/test-worker-sharedarraybuffer-from-worker-thread (#23652) 2020-05-19 07:57:28 -07:00
Sofia Nguy
ce53c35e1d docs: update currently supported versions for 9.0.0 release (#23510)
* docs: update currently supported versions for 9.0.0 release

* update supported version numbers back to xy format
2020-05-19 09:22:38 -05:00
Sofia Nguy
82f89c8206 docs: update 10.0 stable release date (#23511)
* docs: update 10.0 stable release date

* add bullet for reference to chrome's schedule

* update node version
2020-05-19 09:22:22 -05:00
Cheng Zhao
38a04214e0 fix: make sure hunspell file is not destroyed in UI thread (#23631) 2020-05-19 09:55:23 -04:00
Jeremy Apthorp
01579cc8ed test: add retries to another beforeunload test (#23644) 2020-05-19 11:06:19 +09:00
Jeremy Apthorp
c00103d274 test: fix multiple connections in inspector test (#23648)
* test: fix multiple connections in inspector test

* debug log
2020-05-19 11:05:49 +09:00
John Kleinschmidt
89441caad4 build: save mksnapshot args on Windows (#23634) 2020-05-18 15:42:23 -04:00
Jeremy Apthorp
7e841ceb5c refactor: tsify net module (#23618) 2020-05-18 10:22:48 -07:00
John Kleinschmidt
8879a3db58 ci: use longer mocha timeout on WOA testing (#23633) 2020-05-18 12:33:54 -04:00
Shelley Vohr
ee0f67d541 fix: nativeImage remote serialization (#23543)
We weren't serializing nativeImages properly in the remote module, leading to gin conversion errors when trying to, for example, create a new context menu in the renderer with icons using nativeImage. This fixes that by adding a new special case to handle them.
2020-05-18 09:29:24 -07:00
Electron Bot
eb341b383d Bump v10.0.0-nightly.20200518 2020-05-18 08:31:53 -07:00
Jeremy Apthorp
87a670f74d feat: allow compressing crash uploads on linux (#23597)
* chore: align crash patch with upstream

* feat: allow compressing crash uploads on linux

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-05-18 11:09:50 -04:00
Jeremy Apthorp
8bbb68be79 test: retry beforeunload test (#23576) 2020-05-18 11:04:41 -04:00
Shelley Vohr
75fd9a3496 refactor: improve MoveItemToTrash error description (#23589) 2020-05-17 19:18:34 -07:00
Milan Burda
52b50e6b33 feat: add app render-process-gone event (#23560) 2020-05-17 17:05:05 +02:00
Samuel Attard
9d7ba98209 refactor: remove the RenderFrameFunctionStore and use privates to memory manage (#23592) 2020-05-15 11:57:40 -07:00
Electron Bot
3cf97d5717 Bump v10.0.0-nightly.20200515 2020-05-15 08:32:47 -07:00
Jeremy Apthorp
8b160d57a6 chore: align crash patch with upstream (#23595) 2020-05-14 20:09:02 -07:00
Charles Kerr
2342aaffbd feat: look harder for a commit's pull request. (#23593)
PR numbers are almost always listed parenthetically in the commit message;
but when something is committed manually, it could be missing. This change
uses octokit's listPullRequestsAssociatedWithCommit() as a second approach
to finding a commit's PR.

Last night's Releases WG meeting noted that "re-enable pdf viewer" was
missing from the notes. This PR fixes that omission.
2020-05-14 18:50:39 -05:00
Alexey Kuzmin
092eec8459 build: remove unused header from a patch (#23585) 2020-05-14 09:41:21 -07:00
Electron Bot
db94712227 Bump v10.0.0-nightly.20200514 2020-05-14 08:32:33 -07:00
Milan Burda
4afc756094 feat: add contents.getBackgroundThrottling() + backgroundThrottling property (#21036) 2020-05-14 15:11:45 +02:00
Milan Burda
7656480247 test: remove usage of the remote module from tests (#23571) 2020-05-14 00:33:37 +02:00
Jeremy Apthorp
6282487245 fix: exclude crashpad_handler binary on linux (#23538) 2020-05-13 15:28:12 -07:00
Jeremy Apthorp
e82bb06336 fix: generate symbols for the correct crashpad handler binary (#23537) 2020-05-13 13:54:40 -07:00
Milan Burda
fc468cce3b test: skip remote module related tests when enable_remote_module = false (#23557) 2020-05-13 20:05:44 +02:00
Milan Burda
85fae67966 perf: use type-utils for desktopCapturer.getSources() result serialization (#23549) 2020-05-13 19:05:53 +02:00
Electron Bot
508c7ac4f9 Bump v10.0.0-nightly.20200513 2020-05-13 08:31:51 -07:00
Milan Burda
54b6c06062 fix: expose v8util.createIDWeakMap() regardless of enable_remote_module (#23546) 2020-05-13 12:10:03 +02:00
Samuel Attard
54ff423dac fix: leave behind the unmodified XDG_CURRENT_DESKTOP variable (#23512) 2020-05-12 20:13:53 -07:00
Felix Rieseberg
dcbed18f44 feat: app.getPath('recent') (#23381)
* feat: getPath("recent")

* test: Add a spec and docs

* fix: Integrate feedback

* fix: Handle path change

* chore: Cut SetRecentPath
2020-05-13 11:27:56 +09:00
Samuel Attard
c7b2eb68cf docs: add documentation on how to use the built-in spellchecker (#23508) 2020-05-13 10:25:21 +09:00
Shelley Vohr
3daeec5e3e fix: run Node.js at-exit callbacks in renderer proc (#23419) 2020-05-12 13:09:56 -07:00
John Kleinschmidt
b11836e195 build: use correct v8_context_snapshot_generator in mksnapshot zip (#23536) 2020-05-12 14:52:56 -04:00
Cheng Zhao
16b41dc9ff fix: do not destroy thread in UI thread (#23495) 2020-05-12 10:37:51 -07:00
Milan Burda
ef176ce368 build: fix building with enable_remote_module = false (#23499) 2020-05-12 18:32:04 +02:00
Electron Bot
633f3c2413 Bump v10.0.0-nightly.20200512 2020-05-12 08:31:37 -07:00
Samuel Attard
7bba36a095 chore: add TRACE calls for heavy ctx bridge methods (#23501) 2020-05-11 14:24:43 -07:00
Samuel Attard
34da3bc500 feat: add new render-process-gone event (#23096) 2020-05-11 13:42:24 -07:00
Samuel Attard
7f9b7b2e95 chore: clean up context bridge scopes and add specs for internal bridge (#23334)
* chore: clean up context bridge context scopes

* spec: add specs for internalContextBridge
2020-05-11 13:41:42 -07:00
Samuel Attard
cf635c5fac docs: add document on contextIsolation (#23474)
* docs: add document on contextIsolation

* fix lint

* chore: link ctx isolation doc from security doc
2020-05-11 13:01:32 -07:00
Milan Burda
653c36b8c9 test: skip "handles Promise timeouts correctly" when ELECTRON_RUN_AS_NODE is disabled (#23415) 2020-05-11 14:19:39 -04:00
Samuel Attard
4af5c55c8d chore: add DCHECK to ensure extension_system() is not used for in-memory sessions (#23475) 2020-05-11 11:13:30 -07:00
Robin Dupret
ce4d95b16a docs: badgeCount needs notifications permission on macOS (#23488)
In order for `badgeCount` to properly update the dock icon on
macOS, the application needs to have the permissions to display
notifications.

Cross-refs #22715.
2020-05-11 11:13:17 -07:00
Electron Bot
5951b0ad4b Bump v10.0.0-nightly.20200511 2020-05-11 08:32:21 -07:00
Alexander Prinzhorn
ade8f285d0 Update mime-typed-buffer.md (#23384)
I think this should be aligned with `StringProtocolResponse`. At least the `charset` was missing from the docs.

https://www.electronjs.org/docs/api/protocol#protocolregisterbufferprotocolscheme-handler-completion

>  should be called with either a Buffer object or an object that has the data, mimeType, and charset properties.
2020-05-11 19:00:38 +09:00
Kevin Wang
3866c88aef Fix outdated Cerebral Debugger link (#23427) 2020-05-11 10:53:15 +09:00
Alexey Kuzmin
dc3de49a08 spec: fix conditions for some tests (#23489) 2020-05-11 10:46:45 +09:00
Shelley Vohr
6114518463 fix: NSImageName string conversion (#23467) 2020-05-11 10:24:45 +09:00
Milan Burda
392ea320cf build: allow use of BUILDFLAG directives from within JS code (#20328) 2020-05-11 01:06:07 +02:00
Milan Burda
f9c04449f4 refactor: SystemPreferences::SetUserDefault (#23412) 2020-05-10 00:38:15 +02:00
Pavel Feldman
3c132dc445 chore: handle Browser.close over CDP (#23436) 2020-05-08 16:13:32 -07:00
Samuel Attard
091f45b879 chore: fix linting (#23473) 2020-05-08 11:30:37 -07:00
Samuel Attard
21900fe4f4 fix: do not initialize any extension related logic in OffTheRecord contexts (#22772) 2020-05-08 11:17:28 -07:00
Electron Bot
a3ee61f963 Bump v10.0.0-nightly.20200508 2020-05-08 08:31:44 -07:00
Pavel Feldman
93f6129c80 chore: support --remote-debugging-pipe (#23433) 2020-05-07 21:27:55 -07:00
Jeremy Apthorp
06bf0d08dc fix: crashReporter incompatible with sandbox on Linux (#23265) 2020-05-07 13:31:26 -07:00
Shelley Vohr
fc434f136b fix: multiple extension filters on macOS (#23409) 2020-05-07 08:52:56 -07:00
Electron Bot
a4f701f9a5 Bump v10.0.0-nightly.20200507 2020-05-07 08:32:36 -07:00
Shelley Vohr
ba929b4195 chore: remove obsolete cjs assert patch (#23422) 2020-05-06 22:47:58 -07:00
Robo
a707a3eda3 feat: add enableWebSQL webpreference (#23311)
* feat: add enableWebSQL webpreference

* chore: update indexedDB test
2020-05-06 12:52:59 -07:00
Electron Bot
2a680e107b Bump v10.0.0-nightly.20200506 2020-05-06 08:32:27 -07:00
John Kleinschmidt
b7e4ed2052 build: update sccache for linux (#23418) 2020-05-05 14:38:14 -04:00
szTheory
1611c586ae docs: fix markdown list item formatting error (#23368) 2020-05-05 10:55:27 -07:00
Electron Bot
0d8e8a1113 Bump v10.0.0-nightly.20200505 2020-05-05 08:31:55 -07:00
Robo
bac9ac1163 fix: guard pdf behind correct buildflags (#23404) 2020-05-04 13:56:50 -07:00
Sorah Fukumori
f176d2494f fix: respect system language preferences on Win/macOS (#23247)
This commit fixes https://github.com/electron/electron/issues/18829

Previously the full preferences set to OS was not given to Chromium.

Also, this commit improves fallback font selection for CJK text.
Chromium uses browser languages to determine fallback fonts on Windows,
especially kanji/han characters in CJK.

For instance, when user sets 'en-US, ja-JP' to Accept-Language,
while Chromium chooses Japanese font for kanji text, but Electron
chooses Chinese font.  This is because only the first language was given
to Accept-Language on Electron.

This patch is based on https://github.com/electron/electron/pull/15532

Co-authored-by: Nitish Sakhawalkar <nitsakh@icloud.com>
Co-authored-by: Kasumi Hanazuki <kasumi@rollingapple.net>

Co-authored-by: Nitish Sakhawalkar <nitsakh@icloud.com>
Co-authored-by: Kasumi Hanazuki <kasumi@rollingapple.net>
2020-05-04 10:49:29 -07:00
Electron Bot
45d1ebe961 Bump v10.0.0-nightly.20200504 2020-05-04 08:31:35 -07:00
shelley vohr
0f0cc51b35 refactor: return null when passing empty menu templates (#23364) 2020-05-04 08:19:21 -07:00
Electron Bot
59c1c12e0b Bump v10.0.0-nightly.20200501 2020-05-01 08:33:12 -07:00
Paul Frazee
94eb4ce38e fix: hold browser_context instead of render_frame_host to fix lifetime issues (#23271) 2020-05-01 16:37:01 +09:00
Robo
c438b93f18 fix: ensure guest-embedder map is updated when webview is removed (#23342)
There are use cases of webview where the container holding the webview is not
actually destroyed first, instead just webview gets removed from DOM, in such
situations the browser process map is not updated accordingly and holds reference
to stale guest contents, and any window operations like scroll, resize or keyboard
events that has to chain through browser embedder will lead to UAF crash.

Ref: https://github.com/microsoft/vscode/issues/92420
2020-04-30 21:33:14 -07:00
Milan Burda
4bbb2fbf1f chore: remove unused ELECTRON_GET_CONTENT_SCRIPTS ipc handler (#23371) 2020-04-30 21:32:08 -07:00
Erick Zhao
2eb6781016 docs: fix autoupdater tutorial API (#23298) 2020-05-01 10:54:53 +09:00
Charles Kerr
8bc6b81edc Remove redundant release note items (#23335) 2020-04-30 17:00:59 -07:00
szTheory
43a8dd5b86 docs: fix Chrome Tracing tool link markdown (#23367) 2020-04-30 13:46:16 -07:00
Electron Bot
8edc7a1fb1 chore: bump chromium to 0f4170320ff37e971064916aed1dc (master) (#23285)
* chore: bump chromium in DEPS to 53836640273c3d45b05ad74bdff7323ef0ffc610

* chore: bump chromium in DEPS to 17da1064b910f4170320ff37e971064916aed1dc

* Rename attach_same_site_cookies param to force_ignore_site_for_cookies

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

* chore: update patch indices

* Remove single argument HttpResponseHeaders::AddHeader() method

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

* Rename attach_same_site_cookies param to force_ignore_site_for_cookies

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

* fixup! Remove single argument HttpResponseHeaders::AddHeader() method

* Exchange SandboxType::kInvalid for a CHECK.

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

* chore: fix string type on windows

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2020-04-30 13:20:44 -07:00
Samuel Attard
096c799e24 docs: rename duplicated interface (#23362) 2020-04-30 10:20:34 -07:00
Jeremy Apthorp
8d0a612265 refactor: remove code for non-native extensions shim (#23340) 2020-04-30 09:38:09 -07:00
Sean Lee
3e5486323a docs: event.newGuest for new-window in WebContents and webContents in BrowsweWindow's constructor (#21698)
* docs: `newGuest` in `WebContents` and `webContents` in `BrowsweWindow`

According to the example codes in the documentation of `new-window`
event in `WebContents`, `webContents` in `BrowsweWindow` constructor
options and `newGuest` in `event` argument of `new-window` handler are
both existing but documented. This patch is for adding the related
documentations. Also, it provides typescript-definitations for these
two properties.

* Remove the documnent of `webContents` in BrowserWindow constructor option.
2020-04-30 09:25:13 -07:00
Electron Bot
64297e17c4 Bump v10.0.0-nightly.20200430 2020-04-30 08:32:19 -07:00
shelley vohr
f50f725a9c fix: prevent Menu.buildFromTemplate with empty array (#23308)
Prevent issues with menu creation and subsequent pane focus from menu bar by preventing menus from being created from an empty array. I can't conceive a valid use case for this, since if one wants to remove a menu they should be be passing null to win.setMenu() or calling win.removeMenu(). This issue is also specific to top-level menus, and not submenus, so the new check and exception is scoped to top-level menus.
2020-04-30 08:29:02 -07:00
Electron Bot
448017b9ee chore: bump node to v12.16.3 (master) (#23327)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-04-30 08:20:46 -07:00
Robo
e75cb264e9 chore: remove obsolete webview patch (#23341)
https://chromium-review.googlesource.com/c/chromium/src/+/2135187
has been landed in upstream.
2020-04-29 21:31:37 -07:00
Samuel Attard
075472d6ef fix: do not leak IPC or context bridge promises (#23321) 2020-04-29 15:51:41 -07:00
John Kleinschmidt
088a8256f9 ci: make sure msedge isn't running at end of woa test (#23332) 2020-04-29 14:06:38 -04:00
Electron Bot
ad1f341d7a Bump v10.0.0-nightly.20200429 2020-04-29 08:33:06 -07:00
Robo
ec7942e8b5 fix: build when some buildflags are disabled (#23307) 2020-04-28 23:16:10 -07:00
Jeremy Apthorp
3584665a8f docs: remove sccache info from build instructions (#23297) 2020-04-28 09:17:50 -07:00
shelley vohr
6a564af580 refactor: use Node.js isolate setup in node mode (#23213) 2020-04-28 09:10:27 -07:00
Electron Bot
a9c17610b5 Bump v10.0.0-nightly.20200428 2020-04-28 08:32:04 -07:00
Samuel Attard
7377bb3736 fix: do not add 104 to the history length (#23301) 2020-04-27 15:53:47 -07:00
Samuel Attard
abe5cf398c refactor: port window.open and window.opener to use ctx bridge instead of hole punching (#23235)
* refactor: port window.open and window.opener to use ctx bridge instead of hole punching

* refactor: only run the isolated init bundle when webview is enabled
2020-04-27 12:46:04 -07:00
szTheory
c68589f212 docs: menu-item.md remove duplicate options (#23286) 2020-04-27 12:05:58 -07:00
shelley vohr
ac5c30a707 fix: missing handlescopes in event emission (#23140)
* fix: missing event emitter handlescopes

* refactor: add static getter to js env
2020-04-27 11:38:43 -07:00
Electron Bot
9bb8e43c9b Bump v10.0.0-nightly.20200427 2020-04-27 08:31:56 -07:00
Ben Jaffe
92a3fe175c docs: add section for how to handle update servers with auth (#23000)
In some situations, we can't use auto update to communicate with our update server directly, and proxies can be tricky to get working. I spent a loooong time exploring a lot of options before coming across the comment I linked, so It thought it could be beneficial to people like me of the future.
2020-04-27 19:03:18 +09:00
shelley vohr
979c291847 fix: isolate callbacks in node_bindings (#23261)
* fix: isolate callbacks in node_bindings

* clarify microtask policy comment
2020-04-27 17:03:40 +09:00
diegozhu
e5fe81ac15 docs: update description on second-instance event. (#23119)
* Update app.md

more descriptions on second-instance event.

* Update docs/api/app.md

Co-Authored-By: loc <andy@slack-corp.com>

Co-authored-by: Cheng Zhao <zcbenz@electronjs.org>
Co-authored-by: loc <andy@slack-corp.com>
2020-04-27 15:21:28 +09:00
Sorah Fukumori
6ab317cc83 style: use build/include_directory for NOLINT (#23266)
build/include linter was splitted to build/include_directory at
depot_tools upstream.

https://crrev.com/c/2159690
https://crbug.com/1073191
2020-04-24 12:57:41 -07:00
Electron Bot
37db307153 chore: bump chromium to 4563763ef26ad940d4e988d7245dd (master) (#23219)
* chore: bump chromium in DEPS to 461ecae368fd0832f18e0b13e61f3561d83f0031

* update patches

* update patches

* Remove both vs browser/child split in content gn files.

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

* chore: bump chromium in DEPS to 7ff3897f3104563763ef26ad940d4e988d7245dd

* update patches

* update patches

* Add ElectronKioskDelegate for extensions

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

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-04-23 21:55:17 -04:00
Jeremy Apthorp
176a120ec2 test: fix crashReporter test on woa (#23242)
* test: fix crashReporter test on woa

* disable some tests on woa
2020-04-23 16:08:50 -04:00
Cheng Zhao
cb6a1e2c5e fix: set default menu in will-finish-launching event (#23214) 2020-04-23 10:51:31 -07:00
Electron Bot
69ccf94d45 Bump v10.0.0-nightly.20200423 2020-04-23 08:31:53 -07:00
John Kleinschmidt
8b0dcfaa74 ci: robustify doc only change check (#23237) 2020-04-23 11:01:30 -04:00
Samuel Attard
8262f24fd8 fix: do not mutate ipc instances across contexts (#23236) 2020-04-22 16:36:15 -07:00
Jeremy Apthorp
6fa05dd123 test: refactor crashReporter tests (#23178) 2020-04-22 15:53:12 -07:00
Samuel Attard
375b793984 fix: do not allow child windows to specify their own preload script (#23226) 2020-04-22 12:43:21 -07:00
Samuel Attard
96bf9ce77f refactor: port parts of window-setup to use ctx bridge instead of being run in the main world (#23194)
* refactor: port parts of window-setup to use ctx bridge instead of being run in the main world

* chore: update ctx bridge specs for new base numbers
2020-04-22 12:42:51 -07:00
Samuel Attard
9d60cfa6fc fix: do not double-declare webPreferences (#23223) 2020-04-22 11:06:30 -07:00
Jeremy Apthorp
c798a6e5d1 fix: block custom window.open when nativeWindowOpen is true (#23188) 2020-04-22 10:48:54 -07:00
Electron Bot
3ac4fa85dd Bump v10.0.0-nightly.20200422 2020-04-22 08:32:17 -07:00
Samuel Attard
0cbcee6740 fix: ensure that functions are not retained beyond their context being released (#23207) 2020-04-21 18:05:01 -07:00
loc
aca2e4f968 refactor: improve feature string parsing (#23130)
* test: add pre-change snapshot of new-window event

* move to .ts file for easier diff

* refactor: improve feature string parsing logic

* test: update snapshots

* update type names per review

* update comma-separated parse test

* use for loop instead of reduce per review

* tighten up types

* avoid variable guest contents id returnValue in test snapshot
2020-04-21 16:23:00 -04:00
Iván Montes
b3909f5600 fix: moveAbove not working on Windows (#23161)
* fix moveAbove on Windows systems

The documentation for [setWindowPos](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowpos) second argument `hWndInsertAfter` is a bit confusing...

> A handle to the window to precede the positioned window in the Z order. This parameter must be a window handle or one of the following values.

Since Windows refers to the Z order from low to high it means that the window provided as reference will always _precede_ the electron window, which is the opposite of what we want in this function, since the electron window is displayed behind the referenced window.

The change is simply to ask `SetWindowPos` to position our window *behind* the window that's *above* the reference window, effectively making our window sit just above the reference one.

* lint
2020-04-21 15:58:38 -04:00
loc
a041882192 test: add test for datalist autofills (#23110)
* test: add test for datalist autofills

* address style nits

* move fixture to spec-main
2020-04-21 12:28:31 -07:00
loc
cd0dda0125 fix: allow blocking IO for setAppLogsPath to avoid DCHECK (#23111)
* fix: let setAppLogsPath write to disk on UI thread

Otherwise, the DCHECK in thread_restrictions will fire.

* scope the io allowance more tightly

* oops, scope it tightly in the mac version too
2020-04-21 12:28:01 -07:00
Charles Kerr
07654c47ec fix: use Node's microtasks policy in node_main.cc (#23153)
Fixes #21515.
2020-04-21 12:18:22 -07:00
Samuel Attard
3ada079fe3 docs: update versioning doc for new major-x-y format (#23176) 2020-04-21 12:17:37 -07:00
Electron Bot
6e8446d06d chore: bump chromium to a70ba0e79c1551239beb37961f643 (master) (#23199)
* chore: bump chromium in DEPS to 4b8b82c4e48a70ba0e79c1551239beb37961f643

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-04-21 14:10:23 -04:00
Shelley Vohr
f3dc3997b1 feat: support fullScreen BrowserWindow property (#23145) 2020-04-20 20:25:18 -07:00
Robo
928e23a263 fix: cherry-pick 04dab5a91b61 from chromium (#23179)
* [LayoutNG] Make HitTestResult::LocalPoint() for inline element as same as legacy layout

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

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-04-20 18:33:40 -07:00
Electron Bot
1bbb407dc9 chore: bump chromium to 2600291d041c530698616a4716cdf (master) (#23122)
* chore: bump chromium in DEPS to 99e60beb593ecf98f8a441e3f03a13b68cfcb311

* update patches

* chore: bump chromium in DEPS to b1abadda21f417ba5e8276c4dd779d31445d16cd

* update patches

* 2146532: gtkui: Fix standalone Ozone/Wayland configuration

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

* 2145152: Pass source URL when setting a cookie

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

* lint

* chore: bump chromium in DEPS to 8897189f1da5a3670bbe32d343767fd71f80d779

* chore: bump chromium in DEPS to 8ac51eeee93a02ed5b81f47e28627079edeecde0

* chore: bump chromium in DEPS to e897b8003f3a5f3c8d654eee9b03c513046ae7ea

* chore: bump chromium in DEPS to 7b80f9c82122600291d041c530698616a4716cdf

* Update patches

* Move definition of WebInputEvent enums into mojo

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

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-04-20 20:25:38 -04:00
Shelley Vohr
ba3928103f spec: fix type errors in devToolsWebContents (#23187) 2020-04-20 16:51:27 -07:00
Jeremy Apthorp
b17cb62287 build: fix crashpad+asan (#23180) 2020-04-20 14:50:10 -07:00
Jeremy Apthorp
e65cac6ae8 refactor: remove extra args from crashreporter init (#23144) 2020-04-20 14:44:09 -07:00
loc
554830b6ff fix: explicitly mark unlimited requests as max priority (#23118)
It's done for us implicitly here, but doing it ourselves avoids the DCHECK.
```
if ((load_flags_ & LOAD_IGNORE_LIMITS) != 0)
  SetPriority(MAXIMUM_PRIORITY);
```
Refs: https://source.chromium.org/chromium/chromium/src/+/master:net/url_request/url_request.cc;l=433;drc=0e1e59c69a449885aa58c403e05feb8274a67c3b;bpv=1;bpt=1
2020-04-20 12:16:34 -07:00
John Kleinschmidt
5f2746c48b docs: update code of conduct (#23137)
Update code of conduct to Contributor Covenant v2.0 in accordance with Electron joining the OpenJS foundation
2020-04-20 14:52:58 -04:00
Erick Zhao
a3ff5a810e docs: remove GitHub references (#23136) 2020-04-20 08:33:00 -07:00
Electron Bot
27aa76f058 Bump v10.0.0-nightly.20200420 2020-04-20 08:31:48 -07:00
Jeremy Apthorp
f6e8edfb3d chore: rename renderer_ipc.cc to ipc_renderer.cc (#23125) 2020-04-20 08:18:15 -07:00
Shelley Vohr
656d371b1b docs: fix devToolsWebContents union type (#23143) 2020-04-20 08:08:51 -07:00
Electron Bot
41b514f088 Bump v10.0.0-nightly.20200417 2020-04-17 08:31:42 -07:00
Shelley Vohr
8b2e863a30 fix: wasm codegen in script.runInNewContext (#23129) 2020-04-16 18:46:09 -07:00
Jeremy Apthorp
2541d62486 chore: remove disable_user_gesture... patch (#23066) 2020-04-16 15:22:39 -07:00
Samuel Attard
e4c82fdf2d Merge pull request from GHSA-h9jc-284h-533g 2020-04-16 14:10:18 -07:00
Shelley Vohr
d0f19d8369 fix: diagnostic reporting capabilities in Node.js (#23126) 2020-04-16 14:07:00 -07:00
Shelley Vohr
826e749e2b chore: shrink boringssl patch (#23101) 2020-04-16 10:54:15 -07:00
Felix Rieseberg
7d9e4a74c4 docs: Improve the codesigning docs (#22838)
* docs: Improve the codesigning docs

* docs: Clarify builder notarization

* Update docs/tutorial/code-signing.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/code-signing.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/code-signing.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/code-signing.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/code-signing.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/code-signing.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/code-signing.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/code-signing.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/code-signing.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/code-signing.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

Co-authored-by: Mark Lee <malept@users.noreply.github.com>
2020-04-16 10:30:33 -07:00
Shelley Vohr
37e92b7650 docs: explain the swipe event on macOS (#23117) 2020-04-16 09:16:11 -07:00
Electron Bot
5947ead591 Bump v10.0.0-nightly.20200416 2020-04-16 08:32:54 -07:00
Jeremy Apthorp
5f43c829a0 fix: deinit platform before resetting node env (#23116) 2020-04-15 15:30:13 -07:00
Jeremy Apthorp
111f9155e0 fix: add missing handle scope in file_dialog_gtk (#23109) 2020-04-15 10:45:32 -07:00
Electron Bot
4ee3c871f3 Bump v10.0.0-nightly.20200415 2020-04-15 08:31:47 -07:00
Electron Bot
e145fcb3f0 chore: bump chromium to 8f405dc5d5e416ffaf640aa3d088a (master) (#23107)
Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
2020-04-14 17:14:38 -07:00
Shelley Vohr
f395775eb1 ci: fix v8 cppgc file in wrong location (#23112) 2020-04-14 14:27:11 -07:00
Jeremy Apthorp
aeaccd00a2 feat: crashReporter: expose rateLimit and compress options (#23062) 2020-04-14 10:36:31 -07:00
Electron Bot
fdf7e288bb chore: bump node to v12.16.2 (master) (#23057)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-04-14 09:59:03 -07:00
Electron Bot
701c5c90fa Bump v10.0.0-nightly.20200414 2020-04-14 08:32:13 -07:00
Shelley Vohr
e95075f2fe build: fix nightly release copy (#23097) 2020-04-14 11:14:21 -04:00
Electron Bot
3e8d77d564 chore: bump chromium to 98ebf6c3f0b7bd96bdb1a4b42208f (master) (#22999)
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
2020-04-13 16:39:26 -07:00
Samuel Attard
b8c1709a88 build: rename atom.ico to electron.ico (#23099) 2020-04-13 16:07:27 -07:00
Samuel Attard
b03bd8c45c chore: rename atom things to electron things in our docs / scripts (#23100) 2020-04-13 14:32:29 -07:00
Samuel Attard
0e86163a3e build: rename atom.rc to electron.rc (#23098) 2020-04-13 14:28:59 -07:00
Shelley Vohr
714d6c536f chore: remove discouraged base::Passed (#22871)
Closes #12640.

Remove discouraged base::Passed from Bind calls.
2020-04-13 13:52:07 -07:00
Jeremy Apthorp
658f8d0abb chore: remove patch: fix_breakpad_symbol_generation_on_linux_arm (#23076) 2020-04-13 15:41:25 -04:00
Jeremy Apthorp
905504852e build: improve patch filename remembering (#23070) 2020-04-13 12:46:15 -04:00
loc
5154e8ff75 fix: enable workaround for nativeWindowOpen hang (#22825) 2020-04-13 11:37:41 -04:00
Electron Bot
21c839578f Bump v10.0.0-nightly.20200413 2020-04-13 08:33:06 -07:00
CezaryKulakowski
c65f41dfbd fix: don't assign NSAlert to window which is not visible (#22672)
* fix: don't assign NSAlert to window which is not visible

Without this change it's possible to create message box which can't
be dismissed on mac.

* fixup! fix: don't assign NSAlert to window which is not visible

* fixup! fix: don't assign NSAlert to window which is not visible
2020-04-13 17:25:55 +09:00
Anders Kaseorg
1746ae8c35 fix: do not ignore electron exit signals in cli.js wrapper (#22878)
When the electron child process exits with a signal, the close event
handler receives code null and the cli wrapper would silently exit
successfully.  Fix it to log a message and exit with a nonzero code in
this case.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2020-04-13 15:49:01 +09:00
Jeremy Apthorp
27d6266b2d chore: remove export_fetchapi... patch (#23067) 2020-04-10 10:23:55 -07:00
Electron Bot
95e3e82d10 Bump v10.0.0-nightly.20200410 2020-04-10 08:31:19 -07:00
Jeremy Apthorp
9e8ee3c899 fix: reset node env earlier during shutdown (#23039) 2020-04-09 16:40:58 -07:00
Robo
abbe7417f2 chore: fix type check in systemPreferences module specs (#23064) 2020-04-09 15:55:47 -07:00
Samuel Attard
9fb06b923b docs: fix type definition for setUserDefault (#23002) 2020-04-09 12:10:18 -07:00
John Kleinschmidt
2f33a040f8 build: update patches (#23061) 2020-04-09 12:05:48 -07:00
Andrea Brancaleoni
ff21444429 build: implement zip64 stripping (#22998)
When zip contains files larger than 4GB 4bytes length headers are
not sufficient anymore. Zip64 defines an extra header 0x0001 which
may contain 8byte lengthed (16 exabytes) lengths [uncompressed and compressed].

Read this value when performing extra data cleaning and override the
bogus value if the header is available.

Read https://blog.yaakov.online/zip64-go-big-or-go-home/ for more
information on Zip64 extra header.

This is the first known implementation of zip64 stripping.
2020-04-09 10:39:46 -07:00
Jeremy Apthorp
f4cf23f6ac ci: ignore exit code of update-index (#23036) 2020-04-09 09:40:46 -07:00
Electron Bot
80b780f277 Bump v10.0.0-nightly.20200409 2020-04-09 08:32:52 -07:00
John Kleinschmidt
23ae0e6bd8 chore: remove no longer needed debugging patch (#23030) 2020-04-09 10:30:02 -04:00
Cheng Zhao
ca947307db chore: make WebContentsView take webPreferences as parameter (#22997)
* chore: add WebContentsView.webContents helper

* chore: no need to handle webContents option

* chore: Create WebContentsView in C++

* chore: make WebContentsView accept web_preferences

* fix: nativeWindowOpen still passes WebContents to BrowserWindow

* chore: no more need of WebContentsViewRelay

* test: WebContentsView now takes options

* fix: avoid creating 2 constructors
2020-04-09 16:01:16 +09:00
Shelley Vohr
de893360f7 fix: missing HandleScope in OnDownloadPathGenerated (#23005) 2020-04-08 12:47:43 -07:00
Jeremy Apthorp
29f773e008 ci: auto-3way patches and detect changes (#22976) 2020-04-08 08:59:14 -07:00
Electron Bot
fd3488f0bf Bump v10.0.0-nightly.20200408 2020-04-08 08:32:12 -07:00
Andrea Brancaleoni
5b8abe953f build: strip local/dbg symbols, from Linux binaries (#22968)
Non full stripping seems to be the cause of limited
non-determinism. Employ similar default as macOS when
stripping away symbols.

--disacard-all     Remove all local symbols (saving only global symbols).
--strip-debug      Remove the debugging symbol table entries (those created by the -g option to cc(1) and other compilers).
2020-04-08 11:29:14 -04:00
Shelley Vohr
54f8c4e6a3 fix: nullptr check when closing windows (#22948) 2020-04-07 20:41:14 -07:00
Shelley Vohr
a7469f82ac fix: persist maximizable state when toggling fullscreen (#22988) 2020-04-07 20:40:32 -07:00
Felix Rieseberg
b4447be037 docs: Update the "Electron vs NW.js" document (#22836)
* docs: Update the "Electron vs NW.js" document

* Update docs/development/electron-vs-nwjs.md

Co-Authored-By: Charles Kerr <ckerr@github.com>

* Update docs/development/electron-vs-nwjs.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/development/electron-vs-nwjs.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

Co-authored-by: Charles Kerr <ckerr@github.com>
Co-authored-by: Mark Lee <malept@users.noreply.github.com>
2020-04-07 18:31:40 -07:00
Jeremy Apthorp
6bf83e9244 docs: note that shell can't be used in sandboxed renderers (#22974) 2020-04-07 09:55:01 -07:00
Electron Bot
468994bf6a Bump v10.0.0-nightly.20200407 2020-04-07 08:31:39 -07:00
Samuel Attard
0d2e967960 feat: expose electron/{process} typed modules (#22937)
* feat: expose electron/{process} typed modules

* chore: update imports for common modules

* chore: update typescript generator

* chore: remap electron/* to the internal packages
2020-04-06 17:04:09 -07:00
Jeremy Apthorp
5b53f1a39c build: set merge=union for .patches (#22985) 2020-04-06 15:15:35 -07:00
Electron Bot
ccf70326c0 chore: bump chromium to 1ba9678489174a6123358a7683f37 (master) (#22719)
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Andy Locascio <andy@slack-corp.com>
2020-04-06 13:09:52 -07:00
Electron Bot
c85d71903f Bump v10.0.0-nightly.20200406 2020-04-06 08:31:36 -07:00
Electron Bot
570f4d7272 Bump v10.0.0-nightly.20200403 2020-04-03 08:33:29 -07:00
Shelley Vohr
5c2299cbe6 fix: webframe crashes for removed render frame (#22925)
* fix: webframe crashes for removed render frame

* Make errors more descriptive
2020-04-02 19:59:19 -07:00
Jeremy Apthorp
0a78ab4b98 refactor: ginify DownloadItem (#22924) 2020-04-02 17:22:46 -07:00
Jeremy Apthorp
6159066c26 refactor: ginify Menu (#22916) 2020-04-02 16:07:56 -07:00
Samuel Attard
1d158399a6 feat: expose the sameSite value for cookies (#22789)
* feat: expose the sameSite value for cookies

* Apply suggestions from code review

Co-Authored-By: Charles Kerr <ckerr@github.com>

* Apply suggestions from code review

Align with cookie samesite values for the extensions API

https://developer.chrome.com/extensions/cookies#type-SameSiteStatus

* chore: add tests for sameSite cookies get/set

* chore: update docs parser

* chore: update docs for MessageChannel and MessagePort to have correct process information

* chore: remove LOG warning

* chore: throw error if the string->samesite conversion fails

Co-authored-by: Charles Kerr <ckerr@github.com>
2020-04-02 11:28:43 -07:00
Shelley Vohr
2ce8dff175 fix: undo and redo broken in webviews (#22911)
When propagating the undo and redo events from the menu, Chromium was not
properly sending the events to the focused WebContents. This fixes that by ensuring that the events are sent to the proper WebContents.
2020-04-02 10:05:05 -07:00
Samuel Attard
22fb4f85e5 docs: document what experimental means explicitly (#22893)
* docs: document what experimental means explicitly

* Apply suggestions from code review

Co-Authored-By: Jeremy Apthorp <jeremya@chromium.org>

* Update experimental.md

Co-authored-by: Jeremy Apthorp <jeremya@chromium.org>
2020-04-02 09:32:18 -07:00
Electron Bot
429a2f4fe8 Bump v10.0.0-nightly.20200402 2020-04-02 08:32:20 -07:00
Electron Bot
8c632dc747 Bump v10.0.0-nightly.20200401 2020-04-01 08:31:28 -07:00
Shelley Vohr
da67cbf551 feat: add property support for remainder of BrowserWindow (#22771)
Adds property-based support for the remainder of primitive gette/setter pairs on `BrowserWindow`.

Namely:
- `win.simpleFullScreen`
- `win.title`
- `win.visibleOnAllWorkspaces`
- `win.documentEdited`
- `win.representedFilename`
- `win.shadow`
- `win.kiosk`
- `win.menuBarVisible`
2020-04-01 08:22:32 -07:00
Jeremy Apthorp
5715e94db0 docs: clarify app.enableSandbox documentation (#22894) 2020-04-01 11:20:37 -04:00
Andrea Brancaleoni
884b46fce7 fix: strip extra data from release zips (#22891) 2020-04-01 10:14:41 -04:00
Cheng Zhao
14051ff945 test: do not trigger unhandled promise rejections (#22922) 2020-04-01 09:45:39 -04:00
Cheng Zhao
e6f2605ad0 fix: webRequest module should work with file:// protocol (#22903)
* fix: override file:// instead of intercepting

* test: webRequest module should work with file://

* fix: service work with file:// url

* fix: original_response_headers can be null

* fix: only register file:// when necessary
2020-04-01 16:38:40 +09:00
Robo
bac1c7f532 fix: ensure standard schemes are registered in nw service process (#22867)
* fix: ensure standard schemes are registered in nw service process

Refs https://github.com/electron/electron/pull/20546

* chore: add test

* chore: apply suggestions from code review

Co-Authored-By: Jeremy Apthorp <jeremya@chromium.org>

Co-authored-by: Jeremy Apthorp <jeremya@chromium.org>
2020-03-31 19:33:16 -07:00
Cheng Zhao
d74ad631e7 chore: there is no need to define _init (#22882) 2020-03-31 14:50:03 -07:00
Samuel Attard
4ba91c938e fix: screen module should still be creatable if the first create is before the ready event (#22895) 2020-03-31 14:49:15 -07:00
Jeremy Apthorp
765c08c600 refactor: ginify Notification (#22821) 2020-03-31 11:42:32 -07:00
John Kleinschmidt
629465aac7 ci: cleanup extraneous release tests (#22892)
* ci: cleanup extraneous release tests

* Temporarily setup nightly ci to run on demand

* Revert "Temporarily setup nightly ci to run on demand"

This reverts commit 21e50d4f57.
2020-03-31 14:18:43 -04:00
Electron Bot
51c2af4df5 Bump v10.0.0-nightly.20200331 2020-03-31 08:32:43 -07:00
Charles Kerr
33ef0d23a6 docs: minor grammar & spelling fixes (#22851)
* docs: fix minor grammar error 'punctuations'

* docs: fix minor grammar error pluralizing Chromium

* docs: fix typo 'updateCurrentActiviy'

* docs: use consistent spelling of 'behavior'

* docs: use 'macOS' instead of 'Mac OS' or 'OS X'.

* docs: use 'GTK' instead of 'GTK+'

https://mail.gnome.org/archives/gtk-devel-list/2019-February/msg00000.html

* docs: minor capitalization: use 'TCP' not 'tcp'

* Update docs/development/build-instructions-linux.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

Co-authored-by: Mark Lee <malept@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-03-31 13:06:25 +09:00
Samuel Attard
fea3366bc7 fix: propagate preferred color scheme to the renderer (#22896)
* fix: do not crash if the window is closed syncronously with a nativeTheme change

* fix: propogate preferred color scheme to the renderer and keep it up to date
2020-03-30 15:39:50 -07:00
Shelley Vohr
212b47a77b docs: enumerate deprecation policy (#22859)
* docs: enumerate deprecation policy

* Address @MarshallOfSound feedback
2020-03-30 15:57:14 -04:00
Sofia Nguy
e94a573f29 docs: update Electron 9 release date (#22863) 2020-03-30 15:56:20 -04:00
John Kleinschmidt
be5511393b ci: use smaller vms for testing since we are using goma (#22887) 2020-03-30 15:46:42 -04:00
Jeremy Apthorp
98e5836eb6 chore: update PR template to suggest 'none' instead of no-notes (#22864) 2020-03-30 10:13:26 -07:00
Shelley Vohr
b14608c2c1 fix: dialog fails to show after modal close (#22858) 2020-03-30 09:48:20 -07:00
Electron Bot
c085d3bf12 Bump v10.0.0-nightly.20200330 2020-03-30 08:32:20 -07:00
Samuel Attard
6ecf729487 feat: default gtk darkTheme option to nativeTheme.shouldUseDarkColors for better platform support (#20138)
* feat: default gtk darkTheme option to nativeTheme.shouldUseDarkColors for better platform support

* chore: update syntax for PR feedback

* refactor: only define SetGTKDarkThemeEnabled when needed

Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
2020-03-30 15:02:16 +09:00
Jeremy Apthorp
a3e28788ce refactor: ginify Tray (#22822)
* refactor: ginify Tray

* lint

* improve argument parsing logic

* remove redundant imports from tray.js

* new Tray produces an instanceof Tray

* make Constructible generic

* lint

* clean up on exit
2020-03-30 10:32:02 +09:00
Cheng Zhao
76ae3b7ecb chore: remove unused classes of views API (#22861)
* chore: remove unused views API classes

* chore: remove LayoutManager code

* chore: no more need to make View inherit from TrackabeObject

* chore: make enable_view_api default to true

* chore: enable_view_api => enable_views_api
2020-03-28 15:44:57 +09:00
Electron Bot
d5cae424d8 Bump v10.0.0-nightly.20200327 2020-03-27 08:33:03 -07:00
Shelley Vohr
bd5789a12c fix: missing HandleScope in WebDialogHelper (#22843) 2020-03-26 20:37:28 -07:00
Jeremy Apthorp
ac501e8194 fix: heap-use-after-free in tray.popUpContextMenu (#22842) 2020-03-26 18:30:21 -07:00
Mark Lee
8ff7a1160a build: upgrade asar to a version that requires Node 10 (#22351)
* build(deps-dev): upgrade asar to ^2.1.0

* build(deps-dev): upgrade asar to ^3.0.1
2020-03-27 09:52:53 +09:00
Felix Rieseberg
fb1d2ce733 docs: Burn the about document (#22839)
* docs: Burn the about document

* docs: Delete reference, too
2020-03-26 18:43:51 -05:00
CezaryKulakowski
f9acfc2252 fix: don't try to hide host which has set flag disable_hidden_ (#22832)
Lack of this change will lead to freeze after call to hide/show
on window which has set flag disable_hidden_. To reproduce the
problem it's necessary to create some number of windows (how many
it depends on number of windows being cached by Chromium's
FrameEvictionManager).
2020-03-26 14:54:11 -05:00
Heilig Benedek
74372d65ae feat: enhance native window.open to match the custom implementation's behavior (#19703)
Co-authored-by: Andy Locascio <andy@slack-corp.com>
2020-03-26 11:05:45 -07:00
Jeremy Apthorp
b1f4ac00f0 docs: categorize breaking changes (#22834)
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-03-26 10:57:55 -07:00
Jeremy Apthorp
e73d5e3db5 refactor: ginify protocol (#22812) 2020-03-26 10:34:32 -07:00
Electron Bot
b3d3ac4e0f Bump v10.0.0-nightly.20200326 2020-03-26 08:32:37 -07:00
Jeremy Apthorp
222022556f refactor: ginify Cookies (#22823) 2020-03-25 15:34:53 -07:00
Jeremy Apthorp
b327478cf0 fix: prevent remote from messing with constructor names (#22820) 2020-03-25 13:13:10 -07:00
Electron Bot
746266bd93 Bump v10.0.0-nightly.20200325 2020-03-25 08:32:52 -07:00
CezaryKulakowski
bdef77bad8 fix: don't allow window to go behind menu bar on mac (#22770) 2020-03-25 11:13:43 +09:00
Jeremy Apthorp
07cd70a37e refactor: ginify powerMonitor (#22751) 2020-03-24 09:03:29 -07:00
Electron Bot
aeae0d47bd Bump v10.0.0-nightly.20200324 2020-03-24 08:31:18 -07:00
Samuel Attard
e678794dd0 build: fix beta version bumper logic for betas beyond 10 (#22810) 2020-03-24 09:04:12 -04:00
Jeremy Apthorp
4b0d445f74 build: fix missing pdf dep in chromium_src (#22811) 2020-03-23 22:29:06 -07:00
Samuel Attard
6b41d86032 Revert "fix: better window hierarchy checks"
This reverts commit 8e368a046d.
2020-03-23 19:34:52 -07:00
Samuel Attard
8e368a046d fix: better window hierarchy checks 2020-03-23 14:13:12 -07:00
Jeremy Apthorp
decbca734f refactor: ginify net.request (#22779) 2020-03-23 13:09:45 -07:00
Electron Bot
d3d7b3eb54 Bump v10.0.0-nightly.20200323 2020-03-23 08:32:19 -07:00
Cheng Zhao
341f643b81 feat: add ImageView (#22738) 2020-03-22 19:11:43 +09:00
Samuel Attard
af46c1ed8d fix: allow net requests to use Same-Site cookies (#22788) 2020-03-20 16:39:03 -07:00
Samuel Attard
60bd52880f feat: add support for net requests to use the session cookie store (#22704) 2020-03-20 15:56:02 -07:00
Jeremy Apthorp
07a049ef1b chore: stop leaking v8 environment (#22761) 2020-03-20 14:15:55 -07:00
Jeremy Apthorp
22c17bcc5b refactor: ginify ServiceWorkerContext (#22756) 2020-03-20 14:15:14 -07:00
Samuel Attard
5d657dece4 build: enable JS semicolons (#22783) 2020-03-20 13:28:31 -07:00
Shelley Vohr
24e21467b9 fix: print from PDF viewer not working (#22760) 2020-03-20 09:46:13 -07:00
Electron Bot
9d4714f111 Bump v10.0.0-nightly.20200320 2020-03-20 08:31:45 -07:00
Samuel Attard
b87b501161 build: update eslint + eslint plugins (#22777)
* build: run eslint --fix

* chore: manually fix all hasOwnProperty errors

* chore: manually fix all void 0 vs undefined errors

* chore: manually fix all async-in-promise errors

* chore: manually fix lexical declaration in case block
2020-03-20 11:12:18 -04:00
Cheng Zhao
42f138282f refactor: move set_owned_by_client calls to base View (#22739)
* refactor: move set_owned_by_client() to WebContentsView

* refactor: do set_owned_by_client() in View
2020-03-20 15:41:41 +09:00
Samuel Attard
aa15a2cc03 build: update typescript and webpack (#22776) 2020-03-19 16:55:49 -07:00
Jeremy Apthorp
f1a0d5e811 refactor: ginify globalShortcut (#22755) 2020-03-19 14:33:45 -07:00
Jeremy Apthorp
a824e12275 refactor: ginify desktopCapturer (#22746) 2020-03-19 11:35:11 -07:00
Shelley Vohr
9aa27e1709 fix: add missing pdfTwoUpViewEnabled status (#22735) 2020-03-19 09:27:18 -07:00
loc
087b8a5bd9 chore: add @loc to manual backport config (#22748) 2020-03-19 10:44:42 -04:00
Cheng Zhao
47e27aee5b test: no need to loadURL in menu test (#22737) 2020-03-19 10:49:40 +09:00
Samuel Attard
b2dc0a4f11 build: auto-generate the codesigning cert used for macOS CI testing runs (#17668)
* build: auto-generate the codesigning cert used for macOS CI testing runs

* build: give the cert ALL the trust values

* chore: also import public key

* idek
2020-03-19 10:00:42 +09:00
Jeremy Apthorp
c4a7eade28 refactor: ginify session.netLog (#22732) 2020-03-18 16:46:05 -07:00
Samuel Attard
e58a35e5aa chore: fix net specs when rerunning locally (#22745) 2020-03-18 16:35:23 -07:00
Samuel Attard
f3fd40c221 fix: prevent crash in ListValue v8 converter when conversion fails (#22753) 2020-03-18 13:59:34 -07:00
Jeremy Apthorp
232ca8af39 refactor: EventEmitters without gin_helper (#22726) 2020-03-18 12:57:08 -07:00
Shelley Vohr
fc661ec56b chore: update app module property support (#22713) 2020-03-18 10:06:41 -07:00
Samuel Attard
1ea21e42bb chore: refactor all the net specs to be async with better error handling (#22731) 2020-03-18 08:59:44 -07:00
Electron Bot
366744d5a0 Bump v10.0.0-nightly.20200318 2020-03-18 08:32:17 -07:00
Thomas Levy
2fa499b682 docs: update type and description of IncomingMessage.headers (#22522)
* docs: update type and description of IncomingMessage.headers

Fixes #22521

Updates the docs for IncomingMessage.headers to match the changes made in #17517

* Update docs/api/incoming-message.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

Co-authored-by: Cheng Zhao <zcbenz@electronjs.org>
Co-authored-by: Mark Lee <malept@users.noreply.github.com>
2020-03-18 11:32:26 +09:00
Michael
66c15721d8 docs: Added a note about chromium logs on the debugging page (#22476)
* docs: Added a note about chromium logs on the debugging page

* docs: Point at existing documentation for environment variables

* chore: remove trailing whitespace

Co-authored-by: Cheng Zhao <zcbenz@electronjs.org>
2020-03-18 11:32:01 +09:00
Shelley Vohr
674e4a9fdd chore: more modules to dual prop/fn support (#22688) 2020-03-17 18:06:52 -07:00
Charles Kerr
01d5154f4f refactor: omit duplicates from app's x11 icon list (#22702)
* refactor: omit duplicates from app's x11 icon list

* empty commit for ci
2020-03-18 09:31:31 +09:00
Charles Kerr
83d5833b4f refactor: precache the IsWindowStateEvent() XAtom (#22706)
* refactor: precache the IsWindowStateEvent() atom

XAtoms never change after creation so we can perload the atoms we need.
This is useful in WindowStateWatcher's XEvent handler, which is called
on every XEvent, e.g. mouse movement...

* empty commit for ci
2020-03-17 19:30:58 -05:00
Samuel Attard
5e4e50c5eb fix: remove bad usages of for-in and guard against it (#22616)
* fix: remove bad usages of for-in and guard against it

* Apply suggestions from code review

Co-Authored-By: Samuel Maddock <samuel.maddock@gmail.com>

* Apply suggestions from code review

Co-Authored-By: Jeremy Apthorp <jeremya@chromium.org>

* Update remote.js

Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com>
Co-authored-by: Jeremy Apthorp <jeremya@chromium.org>
2020-03-17 13:17:55 -07:00
Shelley Vohr
f4868c9a28 fix: persist maximizable state through theme change (#22677) 2020-03-17 10:58:57 -07:00
Samuel Attard
9583f7dabb build: update release scripts to handle a remote master (#22707) 2020-03-17 09:35:58 -07:00
Electron Bot
a63e4ef378 Bump v10.0.0-nightly.20200317 2020-03-17 08:31:11 -07:00
Electron Bot
49ddc48dd1 chore: bump chromium to bd902e8eecfd48fd85d01d0eea0f2 (master) (#22694)
* chore: bump chromium in DEPS to 8465a21309d7285c317bdecb744cd148390af9b1

* chore: bump chromium in DEPS to f3d154dbc31bd902e8eecfd48fd85d01d0eea0f2
2020-03-16 21:26:15 -04:00
Shelley Vohr
97d8caa1e0 chore: support props/fns for BrowserWindow (#22686) 2020-03-16 14:03:35 -07:00
Electron Bot
20480c8ea8 Bump v10.0.0-nightly.20200316 2020-03-16 08:32:12 -07:00
Samuel Attard
cd5e3901de chore: fix default_app dimensions (#22675) 2020-03-16 15:28:34 +09:00
Cheng Zhao
7814c67830 fix: enter handle scope when creating custom event (#22657) 2020-03-16 14:20:32 +09:00
Milan Burda
18c74a11f4 fix: when building with enable_pepper_flash = false (#22684) 2020-03-14 14:00:31 -07:00
Electron Bot
d8737734bf chore: bump chromium to bc8f70ed4cfe2262ea833750eaddb (master) (#22649)
* chore: bump chromium in DEPS to 9321f32fb1b3af8fdfce55c7bbfacf3f75118dca

* Update patches

* Update electron_swiftshader_binaries deps

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

* Use Promise with RequestPointerLock calls

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

* Replace content::CursorInfo with ui::Cursor

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

* Convert MaterialDesignController to a true singleton.

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

* Drop WebContentsView::RenderViewCreated hook

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

* chore: bump chromium in DEPS to 6478123cfa0102ed754c70eb9bbdd391d676a4dd

* Splitting context_menu_params.h into separate browser VS common parts.

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

* Fix DCHECK on OnThemeChanged()

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

* chore: bump chromium in DEPS to b0269bb003f699bc8ea7dcba8b0795ef963696d7

* Remove no longer needed patch

* Check PointerLock requests for new options and update accordingly

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

* Address issues from review

* Fixup compile error

* Add additional library files

* chore: bump chromium in DEPS to a41285fb8aebc8f70ed4cfe2262ea833750eaddb

* Update patches

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-03-14 16:54:14 -04:00
Shelley Vohr
a4c4c86b9d fix: crash on invalid zoomFactor (#22673) 2020-03-13 16:13:05 -07:00
Jeremy Apthorp
9c5874306d fix: crash when destroying WebContentsView during GC (#22674) 2020-03-13 10:33:37 -07:00
Shelley Vohr
1b353d1ed3 chore: revert deprecated WebContents properties (#22640)
* chore: revert deprecated WebContents properties

* Fix failing zoomFactor test
2020-03-13 10:16:08 -07:00
Jeremy Apthorp
0c02d794c9 feat: add onclose method to MessagePort (#22532)
* feat: add onclose method to MessagePort

* more scope, more good

* de-flake GC test
2020-03-13 10:00:50 -07:00
Electron Bot
829d4815a9 Bump v10.0.0-nightly.20200313 2020-03-13 08:31:41 -07:00
Cheng Zhao
c2327b15ae fix: add handle scope in dialog's promise callback (#22658) 2020-03-12 11:17:47 -07:00
Electron Bot
4b9f2bc725 Bump v10.0.0-nightly.20200312 2020-03-12 08:31:44 -07:00
Jeremy Apthorp
b4d07f76d3 feat: MessagePorts in the main process (#22404) 2020-03-11 18:07:54 -07:00
Mark Lee
c4c0888972 docs: remove reference to electron-updater (#22641)
As per the [2020-03-05 Ecosystem WG
meeting](https://github.com/electron/governance/blob/master/wg-ecosystem/meeting-notes/2020-03-05.md).
2020-03-11 16:30:05 -07:00
Shelley Vohr
b724fbc0ed feat: add force option to app.focus() (#22612) 2020-03-11 09:07:01 -07:00
Electron Bot
75cef84877 Bump v10.0.0-nightly.20200311 2020-03-11 08:33:12 -07:00
Electron Bot
62da00e5c5 chore: bump chromium to 31b4a223e6e2bd9d5ce6c37cbdec6 (master) (#22514)
* chore: bump chromium in DEPS to 7f366dc6e2f06228b12b021cc1486a1de81a257d

* chore: bump chromium in DEPS to d785c1a601f5f33627d23e40b1ed9dd94c63d818

* update patches

* Rename an old referrer policy value

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

* chore: bump chromium in DEPS to 735e0d2910b2e55c15e0b9cb9fca9431307ac661

* update v8 patches

* Update DEPS

* update patches

* chore: bump chromium in DEPS to b3d09c15c4460680b85218b7b0eb0849c5a6e840

* Replace blink::WebCursorInfo with ui::Cursor

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

* chore: bump chromium in DEPS to bf433ad6dcfcaac460512bb45a53d5a2ea5356f9

* chore: bump chromium in DEPS to 38fad190ac908b6977ab271acc82c2fe74f6e85e

* chore: bump chromium in DEPS to aa597178119cb37ab54caeda27b2ef30a2f9a003

* update patches

* DownloadURLParameters: Remove NetworkIsolationKey parameter.

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

* fix pdf viewer tests by binding more mojo things

* chore: bump chromium in DEPS to 08835601be331b4a223e6e2bd9d5ce6c37cbdec6

Co-authored-by: Jeremy Apthorp <jeremya@chromium.org>
Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
2020-03-11 07:15:07 -04:00
Eryk Rakowski
7150fa783e fix(extensions): add more properties to port.sender.tab (#22592)
* fix: add more properties to port.sender.tab

* fix: apply the suggestion

Co-Authored-By: Jeremy Apthorp <nornagon@nornagon.net>

Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
2020-03-11 16:04:31 +09:00
Erick Zhao
34e004015d feat: add API to check if session is persistent (#22622) 2020-03-11 16:02:22 +09:00
Jeremy Apthorp
19314d3caf fix: remove catch-all HandleScope (#22531) 2020-03-10 18:16:58 -07:00
Shelley Vohr
4bca5205bb chore: ShowItemInFolder should use COMSTA (#22614) 2020-03-10 14:12:22 -07:00
Shelley Vohr
97fe4c7718 build: fix broken Views build (#22621) 2020-03-10 13:03:41 -07:00
Shelley Vohr
b607cfa220 test: test setPath for errors thrown (#22626) 2020-03-10 09:03:52 -07:00
Electron Bot
b21c84204b Bump v10.0.0-nightly.20200310 2020-03-10 08:32:26 -07:00
Milan Burda
b081fc3ac3 fix: when building with enable_pdf_viewer = false (#22604) 2020-03-10 19:53:29 +09:00
Alexey Kuzmin
bf75e5a91f build: fix build without built-in spellchecker (#22594) 2020-03-10 18:39:40 +09:00
Erick Zhao
3ff98e15d0 fix: prevent in-memory sessions from writing to custom spellchecker dictionary (#22157)
* fix: prevent in-memory sessions from writing to custom dictionary

* docs

* spec
2020-03-10 16:45:43 +09:00
Shelley Vohr
c0374b5796 chore: don't delete nightly tag after draft (#22588) 2020-03-09 20:13:10 -07:00
Cheng Zhao
8075a55815 test: disable spellchecker context menu test for arm (#22590) 2020-03-10 11:13:41 +09:00
John Kleinschmidt
28cb24fe97 ci: fix windows source cache (#22609) 2020-03-10 10:00:23 +09:00
Samuel Attard
85d4040833 build: upload sentry src bundles to symbol S3 bucket (#22572) 2020-03-09 15:26:45 -07:00
Samuel Attard
a8ffb81be6 docs: clarify that we support the latest minor for the stable lines we support (#22613)
* docs: clarify that we support the latest minor for the stable lines we support

* Update docs/tutorial/support.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

Co-authored-by: Mark Lee <malept@users.noreply.github.com>
2020-03-09 13:49:58 -07:00
Shelley Vohr
dcab07c8b1 fix: quick follow-up to threadpool PR (#22611) 2020-03-09 11:26:27 -07:00
Shelley Vohr
3b08736ae2 refactor: migrate base::ThreadPool() as trait to base::ThreadPool:: API (#22555) 2020-03-09 09:13:59 -07:00
Electron Bot
2159b4af4f Bump v10.0.0-nightly.20200309 2020-03-09 08:32:05 -07:00
Cheng Zhao
5bffd78631 chore: proxy_config_monitor_ is no longer used in BrowserContext (#22576)
* chore: proxy_config_monitor_ is no longer used in BrowserContext

* chore: blow src cache to fix Windows CI
2020-03-07 11:41:56 +09:00
Electron Bot
8e34f00822 Bump v10.0.0-nightly.20200306 2020-03-06 07:34:25 -08:00
Samuel Attard
3e3f012c0c chore: shrink key gen patch (#22543) 2020-03-05 17:10:12 -08:00
Samuel Attard
3e2cec83d9 feat: programmatically modify traffic light positioning (#22533)
* setter

* getter

* specs and docs

* fixup

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2020-03-05 14:22:12 -08:00
Samuel Attard
1811751c6c docs: clean up dark mode related docs (#22489)
* docs: clean up systemPreferences.effectiveAppearance text

* Grammar fixes
* Add links for Electron Packager & Electron Forge
* Update Packager API links, given https://github.com/electron/electron-packager/pull/1131

* docs: clean up Dark Mode guide

* Grammar fixes
* Add links for Electron Packager & Electron Forge

* docs: adjust based on Electron 8 using 10.14 SDK
2020-03-05 13:19:43 -08:00
Samuel Attard
3c19aee73c fix: reposition traffic lights on theme change (#22534) 2020-03-05 12:19:05 -08:00
Samuel Attard
b3e1134a1a feat: add events for spellcheck dictionary downloads (#22449) 2020-03-05 11:58:19 -08:00
Electron Bot
e9132afa98 Bump v10.0.0-nightly.20200305 2020-03-05 07:32:12 -08:00
John Kleinschmidt
0201b3e571 feat(extensions): add chrome.tabs.connect API (#22457)
* feat(extensions): add chrome.tabs.connect API

* test(extensions): verify that chrome.tabs.connect port communication works
2020-03-05 09:59:32 -05:00
John Kleinschmidt
d6701ff435 feat(extensions): add chrome.i18n API (#22455)
* feat(extensions): implement chrome.i18n API

* refactor(extensions): use forward declaration for ScriptExecutor

* fix(extensions): add message filter to handle i18n GetMessageBundle

* test(extensions): add chrome.i18n tests

* fix(extensions): message filter lint error

* fix: remove exclusive test

* fix(extensions): format api feature arrays

Co-Authored-By: Jeremy Apthorp <nornagon@nornagon.net>

* fix(extensions): uncomment chrome.i18n usage in old extensions test

Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
2020-03-05 09:56:21 -05:00
Cheng Zhao
1e9fa204ee ci: add third_party/angle/.git/HEAD to src archive (#22538)
* ci: add third_party/angle/.git/HEAD to src archive

* ci: blow old cache
2020-03-05 15:24:18 +09:00
Cheng Zhao
1d1d04f4a4 fix: destroy node platform after destroying wrappers (#22527) 2020-03-05 09:59:59 +09:00
Jeremy Apthorp
bff8d65200 chore: lint docs on precommit (#22515) 2020-03-04 09:43:57 -08:00
Electron Bot
27a91cbad4 Bump v10.0.0-nightly.20200304 2020-03-04 07:32:07 -08:00
Mark Lee
b4658efae5 docs: add custom dir placeholder explainer to installation guide (#22491)
* docs: add custom dir placeholder explainer to installation docs

* docs: provide a more concrete example of using ELECTRON_CUSTOM_DIR
2020-03-04 08:44:04 -05:00
Samuel Attard
2563681583 fix: disable contextBridge object identity caching (#21803)
* fix: disable contextBridge object identity caching

* cleanup

* chore: make non-const references raw pointers

* fix: zero-param constructors are not explicit

* refactor: use base::LinkedList

Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
2020-03-03 23:18:22 -08:00
Samuel Attard
a53a2aaa45 build: we moved goma to build-tools (#22488)
* build: we moved goma to build-tools

* Apply suggestions from code review

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* build: do not use goma.gn

Co-authored-by: Mark Lee <malept@users.noreply.github.com>
2020-03-03 23:17:39 -08:00
Samuel Attard
986ccfa816 docs: document the openItem -> openPath breaking change (#22507)
* docs: document the openItem -> openPath breaking change

* Apply suggestions from code review

Co-Authored-By: Erick Zhao <erick@hotmail.ca>

Co-authored-by: Erick Zhao <erick@hotmail.ca>
2020-03-03 23:17:27 -08:00
Cheng Zhao
479354e721 fix: add patch to fix linux arm build (#22523) 2020-03-03 22:41:31 -08:00
Shelley Vohr
e8c628ecdf fix: bail early if no printers on the network (#22418) 2020-03-04 02:20:31 +00:00
Shelley Vohr
efc11563e8 fix: properly forward properties to webview (#22485) 2020-03-03 22:25:14 +00:00
Samuel Attard
8352c39c65 fix: do not reposition traffic lights when fullscreened (#22492) 2020-03-03 14:22:32 -08:00
Electron Bot
39baf68790 chore: bump chromium to 5b340c815ce15ab2efcf277ed19e9 (master) (#22064)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: loc <andy@slack-corp.com>
Co-authored-by: Robo <hop2deep@gmail.com>
Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
2020-03-03 13:35:05 -08:00
Electron Bot
3a331ffca6 Bump v10.0.0-nightly.20200303 2020-03-03 07:32:06 -08:00
Cheng Zhao
0e0c8e7c6f test: give arm machines more time to load spellchecker (#22494) 2020-03-03 15:03:54 +09:00
Erick Zhao
01c597a646 test: add specs for custom dictionary API (#22158)
* tests

* test: add specs for custom dictionary API

* await
2020-03-02 16:57:46 -08:00
bughit
84126a4f23 feat: optional typically sync callback for WebFrame#executeJavaScript* (#21423) 2020-03-02 16:11:40 -08:00
Samuel Attard
748a917ffd docs: add documentation on case insensitive dictionary hosting (#22483) 2020-03-02 14:15:55 -08:00
Сковорода Никита Андреевич
d731a676f5 feat: add disableDialogs option to WebPreferences (#22395)
Allows to disable dialogs completely in a similar way of how safeDialogs option can be used. Overrides safeDialogs option.
2020-03-02 20:50:44 +00:00
Electron Bot
282a44e747 Bump v10.0.0-nightly.20200302 2020-03-02 07:32:10 -08:00
CezaryKulakowski
0bc906853e fix: call focus on native window on call to webContents.focus on mac (#22323)
* fix: call focus on native window on call to webContents.focus on mac

On mac call to web_contents()->Focus() is not enough so it's
necessary to call it on native window.

* fixup! fix: call focus on native window on call to webContents.focus on mac

* fixup! fix: call focus on native window on call to webContents.focus on mac

* test: close all windows after test

* fix: also match the behavior on Linux

Co-authored-by: Cheng Zhao <zcbenz@github.com>
2020-03-02 16:51:02 +09:00
Felix Rieseberg
cad7054e4f fix: Add ContentsView to AXChildren (#22399) 2020-03-02 11:25:40 +09:00
Cheng Zhao
4c6150ea3d fix: make webRequest work for CORS preflight requests (#22407)
* fix: support CORS preflight

* test: webRequest should work for CORS requests
2020-03-02 10:23:43 +09:00
Samuel Attard
ced487467c fix: dictionaries download path should be in userdata (#22444) 2020-02-28 15:37:53 -08:00
Shelley Vohr
2c974915a3 fix: do not call close on sheets themselves (#22410) 2020-02-28 23:10:21 +00:00
Shelley Vohr
ed33a72c23 chore: ensure correct scopes are in place (#22397) 2020-02-28 23:08:27 +00:00
Shelley Vohr
02cf5baa32 test: throw if no valid outDir (#22412) 2020-02-27 19:32:09 +00:00
Andy Dill
36f982aee2 fix: revive offscreen rendering support (#22160) 2020-02-27 11:00:07 -08:00
Electron Bot
e28f7aadc7 Revert "Bump v10.0.0-nightly.20200227"
This reverts commit a7603a43c3.
2020-02-27 10:01:40 -08:00
Electron Bot
a7603a43c3 Bump v10.0.0-nightly.20200227 2020-02-27 09:13:29 -08:00
Samuel Attard
4323b6d618 chore: add tests for the spellchecker (#22099)
* chore: add tests for the spellchecker

* chore: do not run spellchecker tests on windows
2020-02-26 17:29:19 -08:00
Samuel Attard
0ea1985ec4 docs: improve documentation on spellchecker download URL (#22383)
* docs: improve documentation on spellchecker download URL

* Update session.md
2020-02-26 16:04:27 -08:00
Samuel Attard
ee04c7f7ee fix: allow persistent media salts (#22386)
* fix: allow persistent media salts

* chore: add regression test for persistent media device ids across reloads
2020-02-26 16:03:55 -08:00
loc
fc54db11f3 fix: port CL that fixes ARIA tree impl for macOS (#22367) 2020-02-26 14:34:16 -08:00
Erick Zhao
85ef762269 fix: guard against duplicate TouchBarItem IDs (#22272)
* feat: Add OtherItemsProxy touchbar item

* review!

* fix: guard against duplicate TouchBarItem IDs

* add spec
2020-02-26 22:12:56 +00:00
Samuel Attard
12c1d4411d chore: add deprecation warning on setting app.allowRendererProcessReuse to false (#22337)
* chore: add deprecation warning on setting app.allowRendererProcessReuse to false

* fix: no deprecation warnings in process reuse spec

* chore: add test for new deprecate removeProperty behavior
2020-02-26 14:03:52 -08:00
Electron Bot
6a01898c76 Bump v10.0.0-nightly.20200226 2020-02-26 07:33:18 -08:00
Samuel Attard
7cae73fe7a fix: add patch to set the base download URL rather than override it completely (#22382) 2020-02-25 14:57:28 -08:00
Cheng Zhao
3bc6809759 test: disable clipboard tests for WOA (#22374) 2020-02-25 09:15:50 -08:00
Shelley Vohr
c4f272e28f fix: pass safeDialogs preference properly (#22353) 2020-02-25 16:47:59 +00:00
Shelley Vohr
79270e30a6 fix: don't run environment bootstrapper (#22342) 2020-02-25 16:46:08 +00:00
Electron Bot
2aa734385e Bump v10.0.0-nightly.20200225 2020-02-25 07:32:12 -08:00
Samuel Attard
7b7def7d1e feat: set app.enableRendererProcessReuse to true by default (#22336)
* feat: set app.enableRendererProcessReuse to true by default

* chore: add context aware info to breaking changes doc

* spec: fix nodeIntegration in child windows test for rendererprocessreuse

* spec: fix remote listeners in destroyed renderers spec as the error is now async

* Update api-browser-window-spec.ts

* chore: deprecate affinity

* chore: fix docs

* spec: handle tests crashing without an exist code

* spec: update tests for new rendererprocessreuse default

* spec: with renderer process re-use we get to destroy less views
2020-02-24 18:11:06 -08:00
Andy Dill
7a91078cc7 fix: explicitly specify typeRoots in devtools-frontend (#22195)
This is a follow-up to #22078, fixing another instance of the same issue
2020-02-24 14:09:11 -08:00
Electron Bot
f965b13d74 chore: bump node to v12.16.1 (master) (#22168)
* chore: bump node in DEPS to v12.16.0

* Fixup asar support setup patch

https://github.com/nodejs/node/pull/30862

* Fixup InternalCallbackScope patch

https://github.com/nodejs/node/pull/30236

* Fixup GN buildfiles patch

https://github.com/nodejs/node/pull/30755

* Fixup low-level hooks patch

https://github.com/nodejs/node/pull/30466

* Fixup globals require patch

https://github.com/nodejs/node/pull/31643

* Fixup process stream patch

https://github.com/nodejs/node/pull/30862

* Fixup js2c modification patch

https://github.com/nodejs/node/pull/30755

* Fixup internal fs override patch

https://github.com/nodejs/node/pull/30610

* Fixup context-aware warn patch

https://github.com/nodejs/node/pull/30336

* Fixup Node.js with ltcg config

https://github.com/nodejs/node/pull/29388

* Fixup oaepLabel patch

https://github.com/nodejs/node/pull/30917

* Remove redundant ESM test patch

https://github.com/nodejs/node/pull/30997

* Remove redundant cli flag patch

https://github.com/nodejs/node/pull/30466

* Update filenames.json

* Remove macro generation in GN build files

https://github.com/nodejs/node/pull/30755

* Fix some compilation errors upstream

* Add uvwasi to deps

https://github.com/nodejs/node/pull/30258

* Fix BoringSSL incompatibilities

* Fixup linked module patch

https://github.com/nodejs/node/pull/30274

* Add missing sources to GN uv build

https://github.com/libuv/libuv/pull/2347

* Patch some uvwasi incompatibilities

* chore: bump Node.js to v12.6.1

* Remove mark_arraybuffer_as_untransferable.patch

https://github.com/nodejs/node/pull/30549

* Fix uvwasi build failure on win

* Fixup --perf-prof cli option error

* Fixup early cjs module loading

* fix: initialize diagnostics properly

https://github.com/nodejs/node/pull/30025

* Disable new esm syntax specs

https://github.com/nodejs/node/pull/30219

* Fixup v8 weakref hook spec

https://github.com/nodejs/node/pull/29874

* Fix async context timer issue

* Disable monkey-patch-main spec

It relies on https://github.com/nodejs/node/pull/29777, and we don't
override prepareStackTrace.

* Disable new tls specs

https://github.com/nodejs/node/pull/23188

We don't support much of TLS owing to schisms between BoringSSL and
OpenSSL.

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-02-24 21:02:04 +00:00
Samuel Attard
360c1cad1b chore: do not override history methods when rendererprocessreuse is enabled (#22335) 2020-02-24 12:14:11 -08:00
Samuel Attard
fd46bc653f chore: wrap process restart flag in renderer process reuse check (#22334) 2020-02-24 11:43:55 -08:00
Erick Zhao
1848e3f658 feat: Add OtherItemsProxy TouchBar item (#22270)
* feat: Add OtherItemsProxy touchbar item

* review!
2020-02-24 17:55:06 +09:00
Samuel Maddock
8cc0435d9c fix(extensions): set lowest isolated world id (#22212)
* fix(extensions): set lowest isolated world id

* refactor: move world IDs into separate header file

Several files are including electron_render_frame_observer.h just for the world IDs.
2020-02-24 13:33:58 +09:00
Samuel Maddock
68c6d53156 feat(extensions): add more properties to extension object (#22244) 2020-02-24 12:30:32 +09:00
Cheng Zhao
41931aa5fa fix: disable remote layer APIs in MAS build (#20965)
* fix: add patch to disable remote layer APIs

* fix: use --disable-gpu-memory-buffer-compositor-resources for MAS build
2020-02-24 12:08:57 +09:00
Electron Bot
1502ecf9f7 Bump v10.0.0-nightly.20200223 2020-02-23 07:31:25 -08:00
Electron Bot
f1fb513040 Bump v10.0.0-nightly.20200222 2020-02-22 07:31:54 -08:00
Shelley Vohr
50009f6608 chore: allow custom node-spec-runner options (#22315) 2020-02-21 20:19:25 +00:00
Jeremy Apthorp
a25d7fa440 fix: emit will-navigate for sandboxed contents (#22188) 2020-02-21 11:08:26 -08:00
Jeremy Apthorp
8045152e59 fix: revert {Atom => Electron}Application rename (#22206) 2020-02-21 11:05:03 -08:00
John Kleinschmidt
e0c0875d6f docs: update session.clearAuthCache (#22292)
* docs: update session.clearAuthCache

* Update specs to match doc change.
2020-02-21 13:40:45 -05:00
Syed Umair
e965703e62 fix: typo in crash reporter constructor (#22274) 2020-02-21 16:32:45 +00:00
Electron Bot
686f53c9da Bump v10.0.0-nightly.20200221 2020-02-21 07:31:47 -08:00
Samuel Attard
e7b0a9ca8f feat: add API for receiving logs from service workers (#20624)
* feat: add API for receiving logs from service workers

* feat: add new serviceWorkerContext APIs

* chore: add missing #include's

* refactor: rename serviceWorkerContext to serviceWorkers

* chore: clean up based on review

* chore: remove native_mate

* chore: add tests for the service worker module

* Update spec-main/api-service-workers-spec.ts

Co-Authored-By: Jeremy Apthorp <jeremya@chromium.org>

* chore: fix linting

* chore: handle renames

Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
2020-02-20 15:19:06 -08:00
Mark Lee
2e6fff885d docs: clean up protocol docs (#22262)
* docs: clean up protocol docs

* Fix capitalization
2020-02-20 11:27:17 -06:00
Electron Bot
57943f4de3 Bump v10.0.0-nightly.20200220 2020-02-20 07:32:35 -08:00
Shelley Vohr
a87e0f495d chore: remove libcc from release not generator (#22271) 2020-02-20 05:39:25 +00:00
Sofia Nguy
cdc13919b2 docs: Correct Electron 9 stable date (#22258) 2020-02-19 18:10:19 -05:00
Shelley Vohr
53b4fffff6 doc: remove accidental deprecation (#22256) 2020-02-18 21:36:57 +00:00
Electron Bot
3d53a4766f Bump v10.0.0-nightly.20200218 2020-02-18 07:32:52 -08:00
Electron Bot
bb95f6e7a8 Bump v10.0.0-nightly.20200217 2020-02-17 07:33:49 -08:00
Jeremy Apthorp
360326ecad docs: update dev docs atom -> shell (#22199) 2020-02-17 09:47:22 +09:00
Jeremy Apthorp
f8c4be7caa docs: replace electron.atom.io with electronjs.org in docs/fiddles (#22196) 2020-02-17 09:46:41 +09:00
John Kleinschmidt
7a7754a3dd fix: don't include breakpad_symbols dir in dsym.zip (#22191) 2020-02-17 09:45:41 +09:00
Electron Bot
e6a8906052 Bump v10.0.0-nightly.20200216 2020-02-16 07:32:02 -08:00
Electron Bot
647f086286 Bump v10.0.0-nightly.20200215 2020-02-15 07:32:01 -08:00
Samuel Attard
ed58168488 fix: add patch to route mouse event navigations through the WebContentsDelegate (#22202) 2020-02-14 16:13:46 -08:00
Electron Bot
3d45f0a51a Revert "Bump v10.0.0-nightly.20200214"
This reverts commit b7bb1cc4c3.
2020-02-14 09:33:40 -08:00
Electron Bot
b7bb1cc4c3 Bump v10.0.0-nightly.20200214 2020-02-14 07:31:36 -08:00
Jeremy Apthorp
602913cb4c chore: rename node bindings atom => electron (#22176) 2020-02-14 06:25:39 -05:00
Samuel Attard
b5e7df1cbf chore: update NMV for Electron 10 (#22190) 2020-02-13 13:18:16 -08:00
Shelley Vohr
6ed396df17 fix: crash on custom printing margins (#22164) 2020-02-13 11:15:25 -06:00
Electron Bot
f97ce86d08 Bump v10.0.0-nightly.20200213 2020-02-13 07:52:52 -08:00
John Kleinschmidt
2510607658 Revert "Bump v10.0.0-nightly.20200213"
This reverts commit d40a2a8982.
2020-02-13 10:49:37 -05:00
Electron Bot
d40a2a8982 Bump v10.0.0-nightly.20200213 2020-02-13 07:32:44 -08:00
Jeremy Apthorp
d590f2efe3 feat: enable pdf viewer (#21794) 2020-02-12 16:39:12 -08:00
Electron Bot
85f9c779a8 Bump v10.0.0-nightly.20200212 2020-02-12 09:56:46 -08:00
Electron Bot
493dcf279b Revert "Bump v10.0.0-nightly.20200212"
This reverts commit 22d7b4049c.
2020-02-12 09:53:05 -08:00
Electron Bot
22d7b4049c Bump v10.0.0-nightly.20200212 2020-02-12 09:51:17 -08:00
Electron Bot
592848ed3d Revert "Bump v10.0.0-nightly.20200212"
This reverts commit 2edbff6e6c.
2020-02-12 09:48:33 -08:00
Shelley Vohr
5e7c594691 fix: no-arg console.log is undefined (#22165) 2020-02-12 09:25:11 -08:00
John Kleinschmidt
d1fd237e61 build: fix release script to work with sudowoodo (#22170) 2020-02-12 11:53:14 -05:00
Electron Bot
2edbff6e6c Bump v10.0.0-nightly.20200212 2020-02-12 07:32:14 -08:00
Andrea Brancaleoni
730b77189a ci: fix script to initialize Windows VM (#22140)
* ci: fix script to initialize Windows VM

* remove python3 rename statements, python3 is not required nor
installed

* fix a chicken-egg condition where refreshenv is not installed, after
chocolatey install.

* ci: update script to initialize Windows VM

* Add needed component to vc_buildTools install

  - Microsoft.VisualStudio.Workload.VCTools
  - Microsoft.VisualStudio.Component.VC.140

* Do not install vcredist140 from chocolotey
2020-02-12 09:45:41 -05:00
Tony
fe5318d753 fix RTL bug when used with traffic light repositioning (#22132) 2020-02-12 07:34:55 +00:00
John Kleinschmidt
023a3ca722 ci: Speed up release (#22126)
* build: speed up release builds by using workflows

* Don't get depot-tools twice

* Do not use source from cache

* Checkout boto and requests for release builds

* Make sure vendor dirs are persisted.

* Use git cache for releases.

* show sccache stats right after build

* Make messages easier for sudowoodo to consume.
2020-02-11 15:42:37 -05:00
Alexey Kuzmin
8b89c3cade build: fix spellchecker deps (#22142) 2020-02-11 12:35:50 -05:00
Shelley Vohr
43ca62cad0 refactor: use NSVisualEffectMaterial* constants directly (#22121) 2020-02-11 16:23:10 +00:00
Electron Bot
b66db2f268 Bump v10.0.0-nightly.20200211 2020-02-11 07:31:19 -08:00
Cheng Zhao
c608d6d7fb fix: make webRequest work with WebSocket (#22040)
* fix: web request support proxying websocket

* fix: make tests work

* chore: do not use api:: code outside api/ folder

* chore: do not create proxy when no listener

* test: use separate session to avoid conflicts

* chore: address review
2020-02-11 14:56:09 +09:00
Shelley Vohr
80dd16aa78 spec: unskip webview.printToPDF (#22122) 2020-02-11 03:35:05 +00:00
Electron Bot
2bfe66bcfd chore: bump node to v12.15.0 (master) (#22063)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-02-11 01:48:29 +00:00
Cheng Zhao
9ad6f06831 fix: remove cyclic references of BrowserWindow (#22006)
* fix: remove cyclic references in BrowserWindow

* fix: prevent TopLevelWindow from garbage collection

* test: garbage collection of BrowserWindow

* chore: createIDWeakMap is used in tests
2020-02-11 09:37:46 +09:00
Erick Zhao
9942149f3c feat: add session.listWordsFromSpellCheckerDictionary API (#22101)
* doesn't work yet but compiles.

* works

* fixup
2020-02-10 14:08:53 -08:00
Erick Zhao
6fe7d65c9d chore: Revert "notes: Adding Github CI to testing documentation (#21996)" (#22123)
This reverts commit 385388dd6b.
2020-02-10 14:07:58 -08:00
Erick Zhao
17abeca8b7 feat: add session.removeWordFromSpellCheckerDictionary API (#22039)
* feat: add session.removeWordFromSpellCheckerDictionary API

* rebase fixup
2020-02-10 14:07:25 -08:00
Andy Dill
8ca4e761fd fix: explicitly specify typeRoots to avoid crawling parent directories (#22078) 2020-02-10 20:17:04 +00:00
Jeremy Apthorp
b77f701aeb feat: disable the remote module by default (#22091) 2020-02-10 10:49:09 -08:00
Jeremy Apthorp
af631f8204 fix: disallow loading extensions in temp sessions (#22090)
* fix: disallow loading extensions in temp sessions

* docs
2020-02-10 10:28:03 -06:00
Electron Bot
c2cd588e70 Bump v10.0.0-nightly.20200210 2020-02-10 07:31:57 -08:00
CoderPoet
97cf24ac98 docs: modify the showMessageBox method to showMessageBoxSync (#22080)
In handling the will-prevent-unload event, preventDefault should be executed synchronously, and here should also be showMessageBoxSync
2020-02-10 17:12:30 +09:00
Shelley Vohr
d5e7904610 refactor: remove use of Node's DebugOptions (#22083) 2020-02-09 18:42:02 +00:00
Electron Bot
099246f0e4 Bump v10.0.0-nightly.20200209 2020-02-09 07:32:49 -08:00
Samuel Attard
dafbf04b9a fix: use a WeakPtr so we do not UAF the store in FunctionLifetimeMonitor (#22056) 2020-02-08 20:49:38 -08:00
t57ser
43592f8b71 fix: flash plugin (#22072)
* fix: flash plugin

Fixes https://github.com/electron/electron/issues/20744

* cleanup

* fix linting issue
2020-02-08 17:50:07 -08:00
John Kleinschmidt
058222a9f1 build: try using newer version of xcode/macOS sdk (#22104) 2020-02-08 16:38:14 -05:00
Electron Bot
f989faab5c Bump v10.0.0-nightly.20200208 2020-02-08 07:31:55 -08:00
John Kleinschmidt
5e49aafe55 build: preserve timestamps when stripping files (#22094)
* build: preserve timestamps when stripping files

Resolves an issue where the binaries in mksnapshot.zip were not getting stripped.

* Add missing comma

* Update script/strip-binaries.py

Co-Authored-By: Jeremy Apthorp <jeremya@chromium.org>

* Don't try to run strip on macOS

Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
2020-02-07 17:05:04 -05:00
Jeremy Apthorp
ea89120c9e chore: remove debugging log (#22093) 2020-02-07 12:31:08 -08:00
John Kleinschmidt
c6cec97287 build: copy chromedriver to correct location (#22074)
* build: copy chromedriver to correct location

* build: try to free up disk space for macos releases

* get verbose mode working on strip-binaries

* Only use separate chromedriver build arm/arm64
2020-02-07 13:52:36 -05:00
John Kleinschmidt
45591e31ce ci: fix build failure on doc only changes (#22075)
* ci: fix build failure on doc only changes

* ci: fix doc-only check when CI fires on branch before PR is created
2020-02-07 12:58:47 -05:00
Jeremy Apthorp
e2a5de9248 refactor: saner blink_initialization_order.patch (#22054) 2020-02-07 09:45:13 -08:00
Electron Bot
6a7d722c06 Bump v10.0.0-nightly.20200207 2020-02-07 07:32:49 -08:00
John Kleinschmidt
f1f185ee93 test: get native unit tests running (#21914) 2020-02-07 07:56:54 -05:00
Shelley Vohr
83124889e5 feat: enable passing Node.js cli flags (#21110)
* feat: enable passing Node.js cli flags

* Allow cli flags in ELECTRON_RUN_AS_NODE mode
2020-02-07 02:59:38 +00:00
Jeremy Apthorp
9107157073 feat: [extensions] support extension.getBackgroundPage (#21951)
* feat: [extensions] support extension.getBackgroundPage

* cleanup

* how does c++

* tests

* test for runtime.getBackgroundPage too
2020-02-06 16:42:34 -05:00
Jeremy Apthorp
eca1dd7f8b docs: document supported extensions apis (#22021)
* docs: document supported extensions apis

* Update extensions.md

* Update README.md

* Apply suggestions from code review

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

Co-authored-by: Mark Lee <malept@users.noreply.github.com>
2020-02-06 16:36:02 -05:00
Sesh Sadasivam
c8273e375c fix: add Chromium patch to fix RTL window buttons (#22016)
Classes that inherit from `NSThemeFrame` seem to show window buttons in the
incorrect position when the primary MacOS language is set to an RTL
(right-to-left) language like Arabic or Hebrew. The fix in this commit mirrors
that of `tabbed_browser_window.mm`
(https://chromium-review.googlesource.com/c/chromium/src/+/562603/10/chrome/browser/ui/cocoa/tabbed_browser_window.mm#88).

This change should be upstreamed, and then this patch can be removed.
2020-02-06 16:14:18 -05:00
John Kleinschmidt
f4fd939409 build: copy chromedriver to proper directory for release (#22070) 2020-02-06 14:20:14 -05:00
John Kleinschmidt
e7982623ec ci: enable goma for all testing builds (#21992)
* ci: enable goma for all testing builds

* Use powershell script to start goma on Windows

* Only run ensure_start from PS script.

* add missing percent

* Run stats via command instead of powershell

* use command env var

* Use out cache for faster mac builds

* Disable unneeded logging

* .git directories need to be delete before gn gen

Even though gn gen shows and error about a missing .git directory, the .git delete needs to happen before gn gen.
2020-02-06 12:56:18 -05:00
Erick Zhao
3f880fb7c7 chore: remove teams without write access from CODEOWNERS (#22043)
* chore: update CODEOWNERS for Ecosystem WG

* chore: remove teams w/o write access from CODEOWNERS
2020-02-06 11:31:25 -06:00
Erick Zhao
070e312e8b docs: clarify requirements for GOOGLE_API_KEY (#22034)
* docs: clarify requirements for GOOGLE_API_KEY

* Update docs/api/environment-variables.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/api/environment-variables.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/api/environment-variables.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* update

Co-authored-by: Mark Lee <malept@users.noreply.github.com>
2020-02-06 11:28:06 -06:00
Cheng Zhao
629c2121ba chore: print more logging for failed tests (#22060) 2020-02-06 11:15:55 -05:00
Electron Bot
b664c824d2 Bump v10.0.0-nightly.20200206 2020-02-06 07:34:52 -08:00
Electron Bot
42a9d72ce1 chore: bump chromium to 28254008f9e7a2aea5d4426906bfd (master) (#22025)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-02-06 07:05:30 +00:00
Samuel Attard
c8fe25e109 build: actually save the brew cache on macOS (#22052) 2020-02-05 14:15:51 -08:00
Shelley Vohr
303ca10846 feat: allow macOS apps to set activation policies (#21983) 2020-02-05 19:12:25 +00:00
Cheng Zhao
3341a2c3b4 fix: delay deletion of Wrappable objects (#22044) 2020-02-05 10:50:26 -05:00
Cheng Zhao
dee324f79a fix: check WebContents in OnGetDefaultPrinter (#22041) 2020-02-05 10:48:51 -05:00
Electron Bot
76d05ce21f Bump v9.0.0-nightly.20200205 2020-02-05 07:32:08 -08:00
John Kleinschmidt
3a9b55c24f build: don't use component_ffmpeg for chromedriver (#22033)
* build: don't use component_ffmpeg for chromedriver

* Fixup mac chromedriver build

* Update location of chromedriver.zip

* Fixup macos chromedriver build

* compile to right directory
2020-02-05 16:02:02 +09:00
Shelley Vohr
928175bdfe feat: allow specifying pageSize for print (#22014) 2020-02-05 04:25:02 +00:00
Gabriel Basilio Brito
385388dd6b notes: Adding Github CI to testing documentation (#21996)
notes: Adding Github CI to testing documentation
2020-02-05 11:05:07 +09:00
Jeremy Apthorp
ba5d712a15 fix: crash on boot with --log-net-log (#22035) 2020-02-04 18:04:35 -08:00
Jeremy Apthorp
d9321f4df7 chore: rename atom -> electron (#21986) 2020-02-04 12:19:40 -08:00
Shelley Vohr
f14fc4b041 chore: wrap cb with default invocation (#22013) 2020-02-04 19:06:03 +00:00
John Kleinschmidt
6f1f4d3f2f ci: make sure mksnapshot is invoked with proper args. (#21991)
* build: robustify verify-mksnapshot w.r.t. command-line parameters

Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
2020-02-04 13:10:11 -05:00
Sofia Nguy
6273bc9957 docs: update currently supported versions for 8.0.0 release (#21909) 2020-02-04 12:21:13 -05:00
Sofia Nguy
9c035c4570 docs: update 9.0 release dates (#21910) 2020-02-04 11:51:43 -05:00
Electron Bot
7be1b44cda Bump v9.0.0-nightly.20200204 2020-02-04 07:31:43 -08:00
Jeremy Apthorp
1dcc9bf46b ci: fix ELECTRON_OUT_DIR (#21994) 2020-02-03 15:43:46 -08:00
Charles Kerr
c83f836faf refactor: prefer using app.whenReady() (#21972)
* docs: add references to app.whenReady() in isReady

* refactor: prefer app.whenReady()

In the docs, specs, and lib, replace instances of `app.once('ready')`
(seen occasionally) and `app.on('ready')` (extremely common) with
`app.whenReady()`.

It's better to encourage users to use whenReady():
1. it handles the edge case of registering for 'ready' after it's fired
2. it avoids the minor wart of leaving an active listener alive for
an event that wll never fire again
2020-02-03 22:43:22 +00:00
Electron Bot
7a3862a1c6 chore: bump chromium to 469ca5ff317a168e6ad99ca0f23f1 (master) (#22001)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-02-03 22:39:41 +00:00
Jeremy Apthorp
a061c87e56 feat: enable native extensions support (#21814) 2020-02-03 14:01:10 -08:00
Erick Zhao
bdf65a75d0 ci: verify chromedriver (#21993)
* initial pass

* better

* even better

* ci

* add chromedriver to build step

* add chromedriver to other build step

* persist chromedriver for tests

* appveyor test

* correct sys.platform names

* chromedriver-path -> build-dir
2020-02-03 10:31:14 -08:00
Samuel Attard
1fb2b8e00e fix: bind spellchecker receivers correctly in the renderer (#21997) 2020-02-03 09:49:37 -08:00
Electron Bot
6f32214655 Bump v9.0.0-nightly.20200203 2020-02-03 07:31:22 -08:00
Electron Bot
6d48d529ed Bump v9.0.0-nightly.20200202 2020-02-02 07:31:51 -08:00
Electron Bot
3a5e58a06e Bump v9.0.0-nightly.20200201 2020-02-01 07:32:10 -08:00
Jeremy Apthorp
720cf6eb27 test: add test for app.on('certificate-error') event (#21978) 2020-01-31 15:25:01 -08:00
Shelley Vohr
08b1f0e25d fix: default printer if none is provided (#21956) 2020-01-31 19:20:11 +00:00
Jeremy Apthorp
1c6d8f5af6 fix: return path from netLog.stopLogging (#21985) 2020-01-31 10:43:02 -08:00
Electron Bot
a58bc42ed0 chore: bump chromium to 8a35438d19da7538142380551a2ce (master) (#21971)
* chore: bump chromium in DEPS to 68d7ef9b31f3f164a967109212e84a8d756cc80f

* Update patches

* Update location of file_info.h

* Update sysroots

* chore: bump chromium in DEPS to 47114394b1c8a35438d19da7538142380551a2ce

* Update patches

* ci: update docker image to pickup new ia32 dep

* Skip .info files in dist.zip

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-01-31 13:36:00 -05:00
Samuel Attard
cabe514431 chore: add safety checks to RepositionTrafficLights (#21981) 2020-01-31 10:27:25 -08:00
Jeremy Apthorp
45f30ead61 fix: don't crash on invalid certs (#21976) 2020-01-31 09:25:46 -08:00
Electron Bot
c29ec2d4cc Bump v9.0.0-nightly.20200131 2020-01-31 07:32:07 -08:00
Ian Goodacre
e8517065d1 docs: add links to the issue tracker, to developer/issues (#21945)
* docs: add links to the issue tracker

Adding links to the issue tracker for existing issues and submission of
new issues makes it easier to do what is otherwise well described in the
issues doc.

There are direct links to the issue tracker in other introductory docs,
so I see no reason not to have them here, to facilitate access.

* docs: update issues TOC

* Changes recommended by malept
2020-01-31 14:50:05 +09:00
Kilian Valkhof
95cfa1b0aa docs: fix missing import, explicitly use nativeTheme api (#21937)
* docs: fix missing import, explicitly use nativeTheme api

* Update docs/tutorial/mojave-dark-mode-guide.md

Co-Authored-By: Charles Kerr <ckerr@github.com>

* switch to nativeTheme event

Co-authored-by: Charles Kerr <ckerr@github.com>
2020-01-31 14:49:48 +09:00
bitdisaster
89eb309d0b feat: allow GUID parameter to avoid systray demotion on Windows (#21891)
* fix: systray icon demotion

Adding support for GUID parameter in Tray API.
In combination with signed binaries this allows to maintain
the position in the systray on Windows.

* unit tests

* make mac and linux compile
2020-01-31 14:37:03 +09:00
Shelley Vohr
2955c67c4e fix: prevent print crash on bad deviceName (#21946)
* fix: prevent print crash on bad deviceName

* address review feedback
2020-01-31 11:49:13 +09:00
Jeremy Apthorp
662b94f46e docs: windows don't need to be retained (#21957) 2020-01-30 14:15:35 -08:00
Shelley Vohr
23382e6e08 test: check actual output generated from printToPDF (#21949) 2020-01-30 20:12:35 +00:00
Electron Bot
1f61b3a3eb Bump v9.0.0-nightly.20200130 2020-01-30 07:32:53 -08:00
Samuel Attard
6428bf36d2 fix: use the new MediaPlayPause key listener for internal chrome logic (#21959) 2020-01-29 18:18:59 -08:00
Shelley Vohr
7c070c58af docs: fix missing docs for <webview>.print() (#21962) 2020-01-29 17:12:45 -08:00
Samuel Attard
e528029345 fix: ensure web_contents is not nullptr in UpdateDraggableRegions (#21955)
* fix: ensure web_contents is not nullptr in UpdateDraggableRegions

This is a speculative fix for a crash in `UpdateDraggableRegions` that we've noticed

* Update atom_api_browser_window_mac.mm

* Update atom_api_browser_window_mac.mm
2020-01-29 16:55:27 -08:00
Erick Zhao
2a47300d61 fix: add executable to ChromeDriver's rpath for electron 8+ (#21961)
* fix: no error messages?

* Revert "fix: no error messages?"

This reverts commit 14a1078493.

* fix: add executable to chromedriver's rpath for electron 8+
2020-01-29 16:40:09 -08:00
Electron Bot
0979bfc9c1 chore: bump chromium to 669e1d2c51901c686b055da965f2d (master) (#21954)
* chore: bump chromium in DEPS to edc531fae69669e1d2c51901c686b055da965f2d

* Update patches

* Update to use content::DevToolsAgentHostClientChannel.

9d14e4b8a3

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-01-29 16:45:08 -05:00
Robo
ca515aea55 fix: compilation of native modules on windows with older msvc versions (#21950) 2020-01-29 11:59:48 -08:00
Alexey Kuzmin
bc0f5acc73 chore: fix linter errors in .mm files (#21931)
* chore: fix the "npm run lint:obj" invocation

* chore: fix linter errors in .mm files
2020-01-29 17:03:53 +00:00
Electron Bot
20660285e2 Bump v9.0.0-nightly.20200129 2020-01-29 07:31:10 -08:00
Andrea Brancaleoni
0fe0a08800 build: strip zip determinism on artifact upload (#21756)
Since electron zip are including build dates the checksum of each of
these zip files is time dependant. In order to fix this issue strip all
the dates contained in each of the zip entries.
2020-01-29 07:22:04 -05:00
Jeremy Apthorp
0fa3c7e223 fix: show module name in deprecation warning for context-aware modules (#21952) 2020-01-29 07:03:48 -05:00
Electron Bot
2b53788c35 chore: bump chromium to 4b6692e4cc2839729bb7ac009586a (master) (#21864)
* chore: bump chromium in DEPS to a1ea0d7aedd6b5fe58fbabfa3b05aa8ee41304ff

* update patches

* update extensions code

* Remove WebPoint

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

* fix build

* chore: bump chromium in DEPS to 9351e26c2a3714f8bbb10789c71bb51b0b494c75

* update patches

* Remove error description from the DidFailLoadWithError message

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

* Make SimpleNetworkHintsHandlerImpl use the right NetworkIsolationKey

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

* Rename libgtkui to gtk

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

* [metrics] Remove histogram Startup.WarmStartTimeFromRemoteProcessStart*.

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

* fix requestSingleInstanceLock test

* chore: bump chromium in DEPS to a813567a4f17ea08292c2b26fa10d0ffd47010d9

* chore: bump chromium in DEPS to f0aca2de536ceecd6eb66e928051d11e6d11991f

* chore: bump chromium in DEPS to 865556af6d0c9d990f5b1816cb792f7c3859667b

* chore: bump chromium in DEPS to 98538fdd28c4b6692e4cc2839729bb7ac009586a

* update patches

* fix broken tests

* Update node tests for v8 changes

* Update node patches for test failures

* Update for number of tests

Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
2020-01-29 07:01:37 -05:00
Hye Sung Jung
0bd8a97f38 update (#21915) 2020-01-29 18:42:25 +09:00
Mark Lee
28fb2b7ed5 docs: move breaking changes out of API folder (#21870)
This should allow planned breaking changes to be shown in the website
prior to a stable release with the changes included.
2020-01-28 22:19:18 +00:00
Erick Zhao
ae0064d787 docs: remove references to inaccessible team pages (#21923) 2020-01-28 22:16:42 +00:00
Erick Zhao
ca81e72975 docs: fix links to SECURITY and CONTRIBUTING files (#21921) 2020-01-28 22:16:22 +00:00
Mehedi Hassan
1d58db82f2 Fix node.lib download link (#21930)
The documentation is currently pointing to a download link that leads to a 404 for the ARM64 version of `node.lib`. This change updates the link to the correct download for ARM64 `node.lib`.
2020-01-28 22:15:09 +00:00
Shelley Vohr
548b290ea7 feat: add more options to printToPDF (#21906) 2020-01-28 20:47:24 +00:00
Charles Kerr
1b4eb0b679 fix: use powerMonitor.on() only after app is ready (#21927)
* fix: use powerMonitor.on() only after app is ready

powerMonitor can't be used until the app is ready; however, on Linux,
powerMonitor.on() was called as soon as lib/browser/api/power-monitor.ts
was loaded.

This patch takes @vladimiry's suggestion of wrapping that in an
app.on('ready') handler to prevent powerMonitor.on() from being called
prematurely.

Fixes #21716
2020-01-28 12:19:44 -06:00
Electron Bot
64f484c894 Bump v9.0.0-nightly.20200128 2020-01-28 07:33:06 -08:00
Charles Kerr
5f307381d2 fix: ensure tray icon is the proper size on linux (#21904)
* fix: ensure tray icon is the proper size on linux

Fixes #21445.

* chore: use correct include order

* chore: use correct include order

* chore: remove use of deprecated casting style

* chore: be more explicit about the 22 pixel height

* chore: remove now-unneeded #include statements

* chore: fix typo and bugs.chromium.org link

* refactor: put GetIconFromImage() in anon namespace
2020-01-28 10:17:45 -05:00
Shelley Vohr
55ccca922d fix: About Panel credits should be dark mode aware (#21880) 2020-01-28 04:23:02 +00:00
John Kleinschmidt
5d1a9c0cbb ci: Use Windows VM initialized via script (#21882)
* ci: use VM initialized via setup script

* update depot_tools location

* Handle bad src archive files

* Use proper version of windbg
2020-01-27 21:45:04 -05:00
Mark Lee
1aac233711 docs: clean up context bridge API docs (#21888) 2020-01-27 17:14:54 -06:00
Shelley Vohr
c588658a01 fix: window.print() only working once (#21893) 2020-01-27 18:54:56 +00:00
Samuel Attard
37feeb8e5f feat: expose the chromium validated certificate in the certificate verify proc (#21890) 2020-01-27 10:48:29 -08:00
loc
f34cbe66a0 docs: add .lldbinit to macOS debugging docs (#21879)
* docs: add .lldbinit to macOS debugging docs

* fix lint by adding language to fenced code block

* remove trailing whitespace 😑
2020-01-27 08:10:25 -08:00
Electron Bot
eaa907d1dc Bump v9.0.0-nightly.20200127 2020-01-27 07:31:14 -08:00
Matthew Harris
129df5ffca docs(offscreen-rendering): missing word "is" (#21898) 2020-01-27 15:48:56 +09:00
Cheng Zhao
0209302d84 test: use exit event to wait for process exit (#21865) 2020-01-27 10:29:50 +09:00
Cheng Zhao
2743d60f52 fix: menu not updating with Tray.setContextMenu (#21883) 2020-01-26 13:02:33 -08:00
Samuel Attard
edafbc43e1 Update browser-window.md (#21892) 2020-01-26 12:17:18 -08:00
Shelley Vohr
425d6ae47b fix: recursive printing crash (#21889) 2020-01-26 11:52:50 -08:00
Electron Bot
ee1d9ec6f9 Bump v9.0.0-nightly.20200126 2020-01-26 07:32:18 -08:00
Electron Bot
501f9d21f6 Bump v9.0.0-nightly.20200125 2020-01-25 07:31:27 -08:00
LuoJinghua
852b8693bd feat: Exposing methods required by capturing a hidden webContents (#21679) 2020-01-25 09:43:42 +09:00
Electron Bot
8103ded33e Bump v9.0.0-nightly.20200124 2020-01-24 07:33:00 -08:00
bitdisaster
467d7457be docs: details to run unit tests on Windows (#21840)
* document how to get unit tests running

* chore: fix styles

* chore: add lang fence

Co-authored-by: Cheng Zhao <zcbenz@github.com>
2020-01-24 10:51:09 +09:00
Cheng Zhao
74acd17771 test: make window.history.pushState test more robust (#21875) 2020-01-23 10:51:41 -08:00
Tony
5781850706 feat: custom positioning for traffic light buttons (#21781)
* feat: custom positioning for traffic light buttons

* remove NSLog and unnecessary call-site in IsVisible()

* no longer need to check if entering fullscreen

* change API to take a point object

Co-authored-by: tonyfwoo <55114329+tonyfwoo@users.noreply.github.com>
2020-01-23 10:13:08 -08:00
Samuel Attard
dd95a6f034 build: move external binaries to S3 (#21829) 2020-01-23 10:00:35 -08:00
John Kleinschmidt
c92edc8fc4 test: specify target arch on mksnapshot (#21871) 2020-01-23 09:54:27 -08:00
John Kleinschmidt
dc2fcff01c ci: use goma for windows and linux builds (#21868)
* ci: use goma for windows and linux builds
2020-01-23 09:47:38 -08:00
Electron Bot
7c0a9f29ca Bump v9.0.0-nightly.20200123 2020-01-23 07:32:49 -08:00
Ross Rosen
1d58072f65 docs: added info on bookmark return values for securityScopedBookmarks (#17584) 2020-01-23 10:17:39 +09:00
Shelley Vohr
b90537a629 feat: add tray.closeContextMenu() (#21807) 2020-01-22 15:25:17 -08:00
Electron Bot
87af95be3e Revert "Bump v9.0.0-nightly.20200122"
This reverts commit 21b9b30b99.
2020-01-22 08:13:55 -08:00
Electron Bot
21b9b30b99 Bump v9.0.0-nightly.20200122 2020-01-22 07:31:45 -08:00
Shelley Vohr
a5d5e76b10 fix: some websites using WebComponents V0 not loading (#21858) 2020-01-22 22:03:17 +09:00
Shelley Vohr
11804dfe2f fix: Windows checkboxChecked edge case (#21852) 2020-01-22 16:38:39 +09:00
Cheng Zhao
fbc2f8344f fix: crash when doing redirect navigation with webRequest listener (#21838)
* fix: pass navigation_ui_data to proxying factory

* fix: clone response instead of move in redirect
2020-01-22 10:31:10 +09:00
Cheng Zhao
36fac7bfec fix: call SetCanActivate in setFocusable (#21846) 2020-01-22 10:13:48 +09:00
Jeremy Apthorp
100a85f93a fix: [extensions] load extensions on the IO thread (#21811) 2020-01-21 09:43:18 -08:00
Jeremy Apthorp
acb5b75057 chore: [extensions] support old APIs when enable_electron_extensions = true (#21812) 2020-01-21 09:42:55 -08:00
Electron Bot
dc97fe0640 chore: bump chromium to b243c83a66a7fded00f3408107778 (master) (#21827)
Co-authored-by: Robo <hop2deep@gmail.com>
2020-01-21 09:39:37 -08:00
Electron Bot
34baa02c28 Bump v9.0.0-nightly.20200121 2020-01-21 07:31:48 -08:00
Jeremy Apthorp
d802fe0fdd fix: [extensions] some chrome.extension APIs (#21804) 2020-01-21 09:44:09 +09:00
Samuel Attard
ebe8bddc31 fix: ignore (un)lock events for sessions that aren't the current session (#21805) 2020-01-20 15:48:12 +09:00
Shelley Vohr
38947f43de docs: menu item labels are not dynamic (#21823) 2020-01-20 15:44:22 +09:00
Electron Bot
64a2490efe Bump v9.0.0-nightly.20200119 2020-01-19 07:31:09 -08:00
Electron Bot
48b9c7df84 Bump v9.0.0-nightly.20200118 2020-01-18 07:31:19 -08:00
Martin
9636acb907 docs: update setAspectRatio documentation (#19945) 2020-01-17 20:35:27 +00:00
Cheng Zhao
42d8933d66 fix: crash when restoring minimized hidden window (#21813) 2020-01-17 11:29:01 -08:00
Electron Bot
bf6e4b1247 chore: bump chromium to 279aeeec3c9fe2237bc31f776f269 (master) (#21521)
* chore: bump chromium in DEPS to 46d2d82e84d73806da623c5333dae4dd218172df

* chore: bump chromium in DEPS to cbafe74731a5d1e59844ca59e0fc28f4a5f80a33

* chore: bump chromium in DEPS to d5dcd6b5cc76f4e1732083d775cdd7b533f0abe9

* Update patches

* update for lint

* Fix compilation errors

* chore: bump chromium in DEPS to 1c19360fdaaf65d4ed006736c7f9804104095990

* Replace removed constant

* chore: bump chromium in DEPS to 3b6639f5da26c1772c5d4f3ba634aca65df75fec

* chore: bump chromium in DEPS to cc6b1b930d4b5eca06701820dac54fa0f41e8999

* chore: bump chromium in DEPS to 7d1445641ad1032c67f731ba6ff7798f29349ade

* chore: bump chromium in DEPS to 6f7e5e79cefe982ad84a88927565a88db2e592be

* chore: bump chromium in DEPS to bfb25dafff19cb41bf9781331d19ef0be819d1e4

* chore: bump chromium in DEPS to 1a8196b39f0e0cdc4935fd122fff5625d5fab06e

* chore: bump chromium in DEPS to 9a03d8d2bb38ad8c0cbb9550ca81b2f94ff60c15

* chore: bump chromium in DEPS to 4c67f3505dab2d5457adb418cd3270a4f3236fd0

* chore: bump chromium in DEPS to 652394e7626fc1ae895a53fb34c64070494e648e

* chore: bump chromium in DEPS to 07653652c58cc019af7f833bd63eb0c2eceaab5e

* chore: bump chromium in DEPS to 451a1c5fec1fb073a5bae12a033bb342c72c905f

* chore: bump chromium in DEPS to 86cdba00e233899a232868b412b333d08db63478

* chore: bump chromium in DEPS to 7c322faad1aee8abef2330d74aabf09ecf8c11af

* Update patches

* chore: bump chromium in DEPS to d0044fae7efc29eb201cfdd5fdbed77d48aba212

* Replace IsProcessingUserGesture with HasTransientUserActivation

4baa9a6e85

* Fix 10.15 sdk build

0eaa6db358

* Remove CancelPrerender

5eb3329719

* Remove no longer used WebFloatPoint

43ab96ce6b

* Use base::span<const uint8_t> for devtools messages in content/public

21e19401af

* Update renamed header files

* TODO: update with upstream changes

This code needs to be updated to handle the changes made in:
19be6547a9

* chore: bump chromium in DEPS to 82e5a2c6bd33c2e53634a09fbcbc9fcac1e7ff93

* chore: bump chromium in DEPS to 91f877cadd2995201c276e952b3bf2c60b226c64

* chore: bump chromium in DEPS to 43fcd2ab2677a06d38246b42761dc5b40cf87177

* chore: bump chromium in DEPS to e30957dcb710c0977a7ff95b8d3cf65843df12ca

* chore: bump chromium in DEPS to 6a8335a56db12aae2fd06296f82579d804d92217

* chore: bump chromium in DEPS to a4a436cbc28ace88d71752f8f479e59559e54e46

* chore: bump chromium in DEPS to 982bbd0e4b2e1d57d515f384f6483ffc0d7073ad

* chore: bump chromium in DEPS to 92bb7a99f84ffcdf41d4edca57e90b1f0c7c6c8b

* update patches

* add checkout_google_benchmark gclient var

* FIXME: workaround grit bug

* chore: bump chromium in DEPS to d3623fc53615739e6b59340a5d349e4b397cb7c5

* update patches

* Remove color arg from DidChangeThemeColor().

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

* update CreateFileURLLoader with new suffix

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

* add node patch for removal of task API in v8

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

* add disable_secure_dns param for WillCreateURLLoaderFactory

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

* switch to mojo-ified PrintMsg_PrintPreview

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

* chore: bump chromium in DEPS to e7a6d173632660b6aeb9806e9132c34a315331c2

* update missing chrome/browser/ssl:proto dependency after chrome removal

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

* chore: add libvulkan.so to the linux manifest

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

* revert DidChangeThemeColor ternary change due to templates

* match Chrome's mojo-ified implementation in geolocation_permission_context.cc

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

* add vulkan-1.dll to zips

2d6f74c6d4

* add bug link to fixme_grit_conflicts.patch

* Introduce device.mojom.DeviceService

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

* PDF Compositor rename to Print Compositor

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

* chore: bump chromium_version 00362ea584735b4acf4c5a0e1912d7987f8645ab

* chore: update patches

* Use a virtual base class to provide GetWidget().

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

* [base] Remove usage of base::CurrentThread

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

* chore: gn format

* Revert "ci: Use Visual Studio Build Tools instead of VS Studio (#21771)"

This reverts commit 9c1310dadc.

* fix: trigger resize when iframe requests fullscreen

* fix: Locking scheme registry is not necessary

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

* chore: bump chromium f707f1d6d428f84cf14b64bc2ca74372e25c6ce7

* chore: update patches

* ui/base/clipboard: Remove redundant ANSI format functions

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

* [base] Prepare //chrome for Value::GetList() switch

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

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: loc <andy@slack-corp.com>
Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
Co-authored-by: Robo <hop2deep@gmail.com>
2020-01-17 10:41:52 -08:00
Shelley Vohr
5c6f9a6947 feat: add mouse-down & mouse-up to Tray (#21795) 2020-01-17 16:28:34 +00:00
Electron Bot
5feafaceee Bump v9.0.0-nightly.20200117 2020-01-17 07:31:47 -08:00
Max
ae49b8be42 fix: npm download failed when define 'npm_config_platform=mas' (#21801) 2020-01-17 14:44:21 +09:00
Electron Bot
09ad1807af Bump v9.0.0-nightly.20200116 2020-01-16 07:31:36 -08:00
Shelley Vohr
1e99907acc fix: printToPDF failing to generate PDF (#21783) 2020-01-15 21:05:36 -08:00
Jeremy Apthorp
b9eb68c0b4 feat: [extensions] implement a couple of tabs APIs (#21779) 2020-01-15 15:11:51 -08:00
Electron Bot
8278a64e00 Bump v9.0.0-nightly.20200115 2020-01-15 07:32:48 -08:00
Samuel Attard
b31c02ef31 test: fix some failing and disabled node specs (#19518)
* test: fix some failing and disabled node specs

These tests were failing due to mismatched stacktraces as a result of
our Module._load hook.  This fixes those by adding a flag to optionally
not hook those calls and instead do the asar override eagily.

* ELECTRON_EAGER_ASAR_HOOK => ELECTRON_EAGER_ASAR_HOOK_FOR_TESTING

* test: parallel/test-zlib-unused-weak consistently fails

Co-authored-by: Cheng Zhao <zcbenz@github.com>
2020-01-15 16:07:03 +09:00
Cheng Zhao
49262b604d test: disable some flaky node tests (#21752) 2020-01-15 16:06:33 +09:00
Shelley Vohr
3019a2650d docs: ignore_locks not break_repo_locks (#21775) 2020-01-14 20:50:37 -08:00
Jeremy Apthorp
55368e4d97 feat: just enough //extensions to load a simple devtools extension (#19515) 2020-01-14 16:20:30 -08:00
John Kleinschmidt
9c1310dadc ci: Use Visual Studio Build Tools instead of VS Studio (#21771) 2020-01-14 17:10:50 -05:00
John Kleinschmidt
408d3d2a14 build: fix release asset names (#21772) 2020-01-14 17:10:08 -05:00
Cheng Zhao
ceacadb4f4 fix: pass full response headers in net module (#21552) 2020-01-14 09:36:08 -08:00
Felix Rieseberg
2d0bf81bd4 docs: Little fix in Goma docs (#21762)
* docs: Little fix in Goma docs

* docs: Remove space
2020-01-14 11:04:08 -05:00
Electron Bot
2d8839980c Bump v9.0.0-nightly.20200114 2020-01-14 07:32:51 -08:00
Shelley Vohr
83c19faf61 fix: pass startPage url correctly to extensions (#21711)
* fix: pass startPage url correctly to extensions

* check for devtools_page first
2020-01-14 15:47:56 +09:00
Samuel Attard
80a037db86 chore: update goma documentation (#21761) 2020-01-13 15:49:29 -08:00
Jeremy Apthorp
fa42b5980e feat: flesh out the api for //extensions (#21587) 2020-01-13 14:56:28 -08:00
Jeremy Apthorp
8bc0c92137 feat: [extensions] background pages (#21591) 2020-01-13 14:55:58 -08:00
Andrea Brancaleoni
cf497ea478 build: upload windows toolchain profile (#21327)
This commit uploads the output of the windows toolchain profiler.
The windows toolchain profiler is aimed at allowing the compilation
of electron release artifacts using the same windows toolchain on user
builder. This combined with the ability of electron of outputting
deterministic build should allow in future to check electron build
artifacts against CI artifacts.

See: 97959b5e5c include windows toolchain profiler (contd #20949)
2020-01-13 15:40:13 -05:00
Cheng Zhao
32af863e34 fix: double-autorelease of NSImage (#21757) 2020-01-13 11:37:11 -08:00
Jeremy Apthorp
d68f17b32c fix: stream protocols not completing (#21733) 2020-01-13 10:28:21 -08:00
Electron Bot
7723c2c16d Bump v9.0.0-nightly.20200113 2020-01-13 07:31:46 -08:00
Cheng Zhao
758863b84d fix: disable private macOS APIs in MAS build except for CAContext/CALayerHost (#21573)
* fix: add patch to disable remote accessibility APIs

* fix: add patch to disable private window frame APIs
2020-01-13 09:04:38 -05:00
Nate Wienert
425d2a2e1b add border radius to frameless window (#20360) 2020-01-13 15:43:00 +09:00
Konstantinos Ntoutsos-Oikonomou
20c910f98e docs: New fiddle example 'Create a new window' (#20480)
* add: New fiddle for Manage Windows section example

* Delete package.json

Not needed

* Address issue with .gitignore file, load new window, removing unwanted css class

* Delete package.json

* Pushing change regarding the use of shell.OpenExternal API with an event listener for the href tag on the link
2020-01-13 15:35:56 +09:00
Yaser
b31084493e docs: Added Window Management Fiddle example (#20535) 2020-01-13 15:34:13 +09:00
Jeremy Apthorp
2e1531ad90 feat: warn when remote is used without enableRemoteModule: true (#21546)
* feat: warn when remote is used without enableRemoteModule: true

* fix security warning
2020-01-13 15:23:03 +09:00
daveilers
2f394d46c7 docs: Update online-offline-events.md to reflect nodeIntegration required (#21707)
* Update online-offline-events.md

NodeIntegration is required for online/offline and the default changed, so the example should reflect the need for that config

* chore: fix lint warning

Co-authored-by: Cheng Zhao <zcbenz@github.com>
2020-01-13 14:56:39 +09:00
Shelley Vohr
2e7f9bffeb docs: update source code dir structure (#21659) 2020-01-12 21:08:00 -08:00
Jorn
aef9ab1bb7 Es6ify api docs (#21686)
* docs: es6ify docs -> var -> const / let

* docs: apply arrow functions throughout all of the docs
2020-01-13 10:29:46 +09:00
Daniel Playfair Cal
29b7d80eb5 fix(scripts): account for sys.platform being "linux" as well "linux2" (#21741) 2020-01-13 09:58:25 +09:00
loc
a0a932826c fix: prefer occluded rather than unloading layout info (#21585) 2020-01-13 09:56:49 +09:00
Shelley Vohr
19ef7a0fc9 fix: don't fallback to OpenFolderViaShell (#21668) 2020-01-13 09:49:51 +09:00
Milan Burda
c0bde4baa4 docs: responseHeaders should be Record<string, string[]> (#21730) 2020-01-12 09:20:13 -08:00
Electron Bot
702d18b2e3 Bump v9.0.0-nightly.20200111 2020-01-11 07:31:07 -08:00
loc
301bd8aec0 fix: avoid contextBridge double free on garbage collection (#21592)
* fix: reset next/prev pointers for life-monitored nodes

* fix: don't double-delete nodes in a linked list
2020-01-10 15:59:50 -08:00
Shelley Vohr
2858471151 feat: remove visibleOnFullscreen option (#21706) 2020-01-10 09:11:38 -08:00
Electron Bot
48ae7552f6 Bump v9.0.0-nightly.20200110 2020-01-10 07:32:59 -08:00
CezaryKulakowski
f461dc7002 fix: don't unnecessarily copy draggable regions (#21704) 2020-01-09 12:13:28 -08:00
Jeremy Apthorp
768a6ace1b test: move some fixtures from spec/ to spec-main/ (#21403) 2020-01-09 11:50:56 -08:00
Cheng Zhao
8a92b65fd3 test: retry for a few flaky tests (#21658) 2020-01-09 11:50:30 -08:00
Electron Bot
cfae97a64c chore: bump node to v12.14.1 (master) (#21703)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2020-01-09 10:42:53 -08:00
Shelley Vohr
f5e202a898 fix: Notification crash in before-quit (#21709) 2020-01-09 09:42:20 -08:00
Kilian Valkhof
bd923838c1 docs: initial document for comparing web embeds (#20478)
Co-authored-by: Felix Rieseberg <felix@felixrieseberg.com>
Co-authored-by: Mark Lee <malept@users.noreply.github.com>
2020-01-09 09:29:22 -08:00
Shelley Vohr
bb054716c9 feat: allow http-parser NODE_OPTION in packaged apps (#21694) 2020-01-09 08:09:14 -08:00
Electron Bot
75e39be916 Bump v9.0.0-nightly.20200109 2020-01-09 07:31:24 -08:00
Electron Bot
349da6af7f Bump v9.0.0-nightly.20200108 2020-01-08 07:31:48 -08:00
Samuel Attard
e18acb4380 build: document electron goma usage and add the external binaries (#21622) 2020-01-07 10:35:52 -08:00
Shogun Sea
0a850fbc5d docs: Update react devtool version in document (#21601)
* docs: update react devtool version in document

* bump react devtool version ref to 4.3.0
2020-01-07 09:14:49 -05:00
Milan Burda
31c93fec67 fix: load window-setup in sandboxed renderer (#21416) 2020-01-06 22:23:03 +01:00
Shelley Vohr
d56f67b7af refactor: throw error for getLastCrashReport if crashReporter not started (#21643) 2020-01-06 11:00:27 -05:00
Electron Bot
7d2c97b671 Bump v9.0.0-nightly.20200106 2020-01-06 07:33:51 -08:00
Electron Bot
fb1131d531 Bump v9.0.0-nightly.20200105 2020-01-05 07:31:32 -08:00
Electron Bot
1abd24aa28 Bump v9.0.0-nightly.20200104 2020-01-04 07:33:32 -08:00
Kilian Valkhof
8dc4a20069 docs: fix typos in security.md (#21665) 2020-01-03 11:11:01 -05:00
Angel_Kitty
70029aa069 chore: update license year (#21657) 2020-01-03 11:10:23 -05:00
Electron Bot
b2071d2966 Bump v9.0.0-nightly.20200103 2020-01-03 07:31:59 -08:00
Electron Bot
35a7f76205 Bump v9.0.0-nightly.20200102 2020-01-02 07:31:08 -08:00
Electron Bot
55d8c4d937 Bump v9.0.0-nightly.20200101 2020-01-01 07:31:32 -08:00
Electron Bot
7b4a5a9f3a Bump v9.0.0-nightly.20191231 2019-12-31 07:32:05 -08:00
Shelley Vohr
fbb10beb40 fix: highlight defaulted button correctly (#21642) 2019-12-31 05:48:43 -08:00
Lutz Roeder
ed6a3877a4 fix: SimpleURLLoaderWrapper redirects (#21630) 2019-12-31 10:47:08 +11:00
Shelley Vohr
181eecd03e docs: fix shell.openPath documentation (#21641) 2019-12-30 11:40:30 -08:00
David Sanders
85382d8f1d fix: improve error handling in npm install (#21589)
* fix: improve error handling in npm install

* chore: simplify logic
2019-12-30 09:48:54 -08:00
Electron Bot
b41fb2e554 Bump v9.0.0-nightly.20191230 2019-12-30 07:32:58 -08:00
Electron Bot
659c4548eb Bump v9.0.0-nightly.20191229 2019-12-29 07:31:35 -08:00
Electron Bot
2497afcf94 Bump v9.0.0-nightly.20191228 2019-12-28 07:31:28 -08:00
Electron Bot
bf266b4479 Bump v9.0.0-nightly.20191226 2019-12-26 07:32:16 -08:00
Electron Bot
4324e4ce1d Bump v9.0.0-nightly.20191225 2019-12-25 07:31:32 -08:00
Electron Bot
a158c80377 Bump v9.0.0-nightly.20191224 2019-12-24 07:31:28 -08:00
Electron Bot
69f37356c1 Bump v9.0.0-nightly.20191223 2019-12-23 07:31:10 -08:00
Electron Bot
023c9a67fd Bump v9.0.0-nightly.20191222 2019-12-22 07:32:10 -08:00
Electron Bot
020cbf3595 Bump v9.0.0-nightly.20191221 2019-12-21 07:31:35 -08:00
Electron Bot
7161b2f57c Bump v9.0.0-nightly.20191220 2019-12-20 07:34:03 -08:00
Electron Bot
e02879d809 chore: bump node in DEPS to v12.14.0 (#21579) 2019-12-19 19:25:57 -08:00
Shelley Vohr
087cb1d592 refactor: update node main instance management (#21562) 2019-12-19 13:29:09 -08:00
Electron Bot
58b816431d Bump v9.0.0-nightly.20191219 2019-12-19 07:31:49 -08:00
Jeremy Apthorp
682b5d7d01 fix: set enable_negotiate_port to false in allowNTLMCredentialsForDomains (#21571)
* fix: set enable_negotiate_port to false in allowNTLMCredentialsForDomains

* read commandline switch
2019-12-19 05:53:49 -08:00
Shelley Vohr
5e244aa505 chore: make release branch pattern more robust (#21568) 2019-12-18 14:57:46 -08:00
John Kleinschmidt
b6214fdddf build: free up macos disk space on Mac publish (#21569) 2019-12-18 14:54:52 -08:00
Electron Bot
8ffc58bdba chore: bump node to v12.13.1 (master) (#21198)
* chore: bump node in DEPS to v12.13.1

* chore: remove redundant patches

* disable node tests

disable prepareStackTrack test since Node.js won't handle our case, and disable new es-module tests since it's still flagged and requires flags to run properly

* fix missing files

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>

* fix: don't error if can't find advapi32.dll

* fixup! chore: bump node in DEPS to v12.13.1

* Disable native tests for now
2019-12-18 09:49:09 -08:00
Electron Bot
96a88f02fb Bump v9.0.0-nightly.20191218 2019-12-18 07:32:07 -08:00
Jeremy Apthorp
7152173d26 ci: retry uploading pdb files on appveyor (#21561) 2019-12-18 06:30:18 -08:00
Jeremy Apthorp
3effa8bc46 feat: remove deprecated base::Value-based serialization (#21560)
* feat: remove deprecated base::Value-based serialization

* add note to breaking-changes
2019-12-18 15:25:15 +09:00
Jeremy Apthorp
1cac62f0a2 feat: remove deprecated base::Value-based serialization (#21560)
* feat: remove deprecated base::Value-based serialization

* add note to breaking-changes
2019-12-18 15:24:50 +09:00
liulun
cc8bf12351 docs: replace systemPreferences.isDarkMode() with nativeTheme.shouldUseDarkColors (#21480) 2019-12-17 15:13:35 -08:00
Shelley Vohr
f0d52eaf0c build: allow getOutDir cli argument (#21545) 2019-12-17 14:00:42 -08:00
Jeremy Apthorp
54b4756a29 refactor: try just using regular [Sync] for MessageSync (#20797) 2019-12-17 11:35:28 -08:00
Electron Bot
6cc9f0c34e Bump v9.0.0-nightly.20191217 2019-12-17 07:31:56 -08:00
Shelley Vohr
dba8a0caa8 feat: enable explicit IAP restoration (#21461) 2019-12-17 07:07:11 -08:00
Jeremy Apthorp
53957d47d6 test: clean up some stale code in renderer spec runner (#21384)
* test: clean up some stale code in renderer spec runner

* remove jquery from spec

* remove extraneous close tag

* Revert "remove jquery from spec"

This reverts commit 7b885c8ca8.

* re-clean-up html

* don't highlight tags

* update session docs; clear cache on boot

* clear user-data-dir before running tests
2019-12-17 11:15:12 +09:00
Javan Makhmali
b57d218466 docs: update webContents.printToPDF() example for promisified API (#21541) 2019-12-16 16:14:13 -08:00
Mark Lee
9c442e0a7e docs: update installation docs to reflect latest @electron/get changes (#21491)
* doc: update Chinese Electron mirror URL

* doc: replace remaining references of electron-download with @electron/get

* doc: update cache dir example based on recent @electron/get cache changes
2019-12-16 08:16:55 -08:00
Electron Bot
5f2b6f71b5 Bump v9.0.0-nightly.20191216 2019-12-16 07:32:21 -08:00
Joël Charles
0bcfae752e feat: allow pages to override window.history.length (#17742)
* fix: allow pages to override window.history.length

* Update lib/renderer/window-setup.ts

Co-Authored-By: magne4000 <joel.charles91@gmail.com>

* fix: lint error
2019-12-16 11:14:27 +09:00
Milan Burda
6a03d3cc66 refactor: export internalWindowOpen from guest-window-manager (#21498) 2019-12-16 10:30:25 +09:00
Electron Bot
a7f5aafaca Bump v9.0.0-nightly.20191215 2019-12-15 07:31:37 -08:00
John Kleinschmidt
48688f9124 ci: use cmd to call gclient (#21523) 2019-12-14 14:25:33 -05:00
Electron Bot
fb20bd74e6 Revert "Bump v9.0.0-nightly.20191214"
This reverts commit f09bef3ba2.
2019-12-14 08:09:49 -08:00
Electron Bot
f09bef3ba2 Bump v9.0.0-nightly.20191214 2019-12-14 07:31:54 -08:00
Electron Bot
0f2f9a580a chore: bump chromium to 94cc24d3bb17a7406ba6c6cc6dc29 (master) (#21485) 2019-12-13 12:13:12 -08:00
loc
19cd8f3a02 fix: avoid contextBridge crash when RenderFrame address is reused (#21501)
* fix: avoid contextBridge crash when RenderFrame address is reused

Co-Authored-By: Jeremy Apthorp <nornagon@nornagon.net>

* make routing_id_ const
2019-12-13 13:13:04 -05:00
Jeremy Apthorp
c535e00187 feat: enable pointer compression and 31bit smis (#21468) 2019-12-13 10:12:24 -08:00
Milan Burda
341df4a8c2 fix: enforce parent-child relationship in custom postMessage() handler (#21496) 2019-12-13 10:10:56 -08:00
Jeremy Apthorp
a90b5f8421 chore: fix patch linter (#21495) 2019-12-13 09:18:45 -08:00
Felix Rieseberg
7932e28aa2 docs: Explain notarization, improve code-signing docs (#21373)
* docs: Explain notarization

* Update docs/tutorial/code-signing.md

Co-Authored-By: Zeke Sikelianos <zeke@github.com>
2019-12-13 11:16:20 -05:00
Victor Bennich
cf833a7650 feat: add win.getBackgroundColor() for macOS (#21448)
thanks @vbennich - great work on this 🌟
2019-12-13 11:08:30 -05:00
Electron Bot
c1210f8ad3 Revert "Bump v9.0.0-nightly.20191213"
This reverts commit e6c23e1a5e.
2019-12-13 08:01:32 -08:00
Electron Bot
e6c23e1a5e Bump v9.0.0-nightly.20191213 2019-12-13 07:34:50 -08:00
Cheng Zhao
f9a1dc10fe fix: quit after Chromium is fully started (#21488)
* fix: quit when chromium is fully started

* test: remove hacks on app.quit

* chore: RunUntilIdle is unnecessary
2019-12-13 18:57:02 +09:00
Electron Bot
b9a250a623 Bump v9.0.0-nightly.20191212 2019-12-12 07:32:26 -08:00
Robo
63e600f655 fix: sourcemaps not loading with network service (#21473)
Backports https://chromium-review.googlesource.com/c/chromium/src/+/1525270
Backports https://chromium-review.googlesource.com/c/chromium/src/+/1852212
2019-12-11 23:58:17 -08:00
Robo
aa4b36a03d fix: avoid Electron.dsym files in the main app bundle (#21447)
* ci: CHECK_DIST_MANIFEST in release builds

* fix: skip Electron.dSYM on macOS app zip
2019-12-11 12:42:57 -05:00
Electron Bot
287592b5f6 Bump v9.0.0-nightly.20191211 2019-12-11 07:31:56 -08:00
Cheng Zhao
d5192853f9 fix: name and expirationDate should be optional when setting cookie (#21454)
* fix: correctly set cookie date

* fix: name is not required for setting cookie

* test: clear cookie after each cookie test

* test: should test session property

* chore: style fixes
2019-12-11 16:44:49 +09:00
Shelley Vohr
cbe1e3a1d0 fix: MediaKey globalShortcuts not working on macOS (#21442) 2019-12-11 15:48:55 +09:00
loc
5cecc230fb fix: restore POST forms that open a new window with target=_blank (#21469)
* fix: restore parts of original ResourceRequestBody V8 conversion

Restore some of the original conversion logic in order to fix target=_blank post form submissions.

* test: add test for POST form submission
2019-12-11 15:46:25 +09:00
Electron Bot
49b47ee4ed chore: bump chromium to f755b70e34659441e72c1a928a406 (master) (#21000) 2019-12-10 16:22:35 -08:00
J. Ryan Stinnett
a5c9bd53e0 fix: restore accessibility window title on macOS (#21462)
Electron's `AtomNSWindow` implements `accessibilityAttributeValue` to
provide various accessibility info to the OS, including window titles.

Chromium 75 changed to Apple's newer accessibility API for window titles
in the super class that `AtomNSWindow` inherits from. macOS still
supports both the old and new style APIs, but it will prefer the new
style if it is implemented.  This means the Electron window title is
being ignored because the newer API at the Chromium level has taken
precedence.

By implementing the newer accessibility API in `AtomNSWindow`, this
restores correct accessibility window titles in macOS Electron apps.

This is a regression has been present since Electron 6.0.0 (the first
release including the Chromium change above).
2019-12-10 15:03:00 -08:00
Electron Bot
9e866f8315 Bump v9.0.0-nightly.20191210 2019-12-10 07:32:16 -08:00
Cheng Zhao
a6d142a112 fix: window menu should handle keys correctly (#21434)
* fix: overriding AccessiblePaneView's methods

* chore: add CL link
2019-12-10 16:15:48 +09:00
Samuel Attard
ec0edb757a chore: workflows and pipeline state were split in the circle API (#21441) 2019-12-09 11:26:43 -08:00
Cheng Zhao
3cb0ed306b fix: hiding window menu should work on startup (#21436)
* fix: menu visibility should not be overwritten on startup

* fix: removing menu for window without global menubar

* test: setMenu tests are not for mac
2019-12-09 11:17:36 -08:00
Jeremy Apthorp
7f6b308bf1 test: move remote specs to main process (#21387) 2019-12-09 10:27:30 -08:00
Electron Bot
409ef49d3a Bump v9.0.0-nightly.20191209 2019-12-09 07:32:27 -08:00
Electron Bot
a5e84d0a2a Bump v9.0.0-nightly.20191208 2019-12-08 07:32:26 -08:00
Electron Bot
e3f36d3e0b Bump v9.0.0-nightly.20191207 2019-12-07 07:31:36 -08:00
Jeremy Apthorp
1f3561227d feat: add tracing info to WebContents IPC methods (#21404) 2019-12-06 13:15:23 -08:00
Jeremy Apthorp
092e00f7f0 fix: fix ClientRequest.getUploadProgress (#21388) 2019-12-06 13:14:44 -08:00
Jeremy Apthorp
dc9beda182 feat: remove deprecated setLayoutZoomLevelLimits (#21383) 2019-12-06 13:14:25 -08:00
Shelley Vohr
4ac575416f docs: fix return type of getPrinters (#21411) 2019-12-06 12:36:35 -08:00
Samuel Attard
5bc8809d64 fix: do not use messages after move (#21419) 2019-12-06 12:35:57 -08:00
loc
8a06ef11cf fix: ensure persistence store still exists when GC runs (#21402)
Fix a bad access crash that happens when a render frame is deleted (window closed) and garbage collection runs afterward.
2019-12-06 11:15:08 -08:00
Electron Bot
4037b12511 Bump v9.0.0-nightly.20191206 2019-12-06 07:31:51 -08:00
Tierney Cyren
6df7bd63e4 docs: improve Windows build variable documentation (#20548)
* docs: improve Windows build variable documentation

Documents an additional and possibly unclear variable, `DRIVE:`, in the example global variables for building with Windows

* docs: update formatting in build-instructions-windows.md to align with styleguide
2019-12-06 08:53:50 +09:00
John Kleinschmidt
63058b8a2d ci: fix crash on arm testing (#21407) 2019-12-05 14:44:02 -08:00
Shelley Vohr
9e189eac71 fix: pass noLink correctly on Windows (#21386) 2019-12-05 13:38:57 -08:00
Charles Kerr
93802a7e6f fix: remove minor "trailing whitespace" warnings (#21398) 2019-12-05 11:04:34 -08:00
Birunthan Mohanathas
5223d1d774 fix: Fix compositor recycling when creating new BrowserView (#21372)
In #20829, we fixed compositor recycling when switching between
BrowserViews, but it turns out that there is one additional case that we
need to handle. When we create a completely new BrowserView instance, it
starts of as visible (even when it hasn't been added to the window),
which means that it will need its own compositor instead of using the
recycled compositor.

To fix this, lets make BrowserViews hidden by default until they're
added to the window. See also #19988. This is a potentially breaking
change given that the initial value of `document.visibilityState` will
now be `hidden`, but given the experimental status of BrowserViews, I
think this is a fine change to make. The old behavior can be restored
with `webPreferences: { show: true }`.

Notes: Fix compositor recycling when creating new BrowserView
2019-12-05 09:37:42 -08:00
Electron Bot
fff484d4ea Bump v9.0.0-nightly.20191205 2019-12-05 07:33:07 -08:00
Cheng Zhao
0a741670a9 chore: remove native_mate (Part 14) (#21365)
* chore: remove uses of mate::Dictionary and mate::Handle

* chore: move CreateConstructor to gin_helper

* chore: remove native_mate

* chore: remove unneeded gin patch
2019-12-05 18:46:34 +09:00
Electron Bot
113b47d871 Bump v9.0.0-nightly.20191204 2019-12-04 07:32:41 -08:00
Yaser
143407ea1b docs: Adds Native-UI tray Fiddle example (#20526) 2019-12-04 15:38:53 +09:00
Yaser
1b61fe780e docs: adds Native-UI Open external links and the file manager Fiddle example (#20524) 2019-12-04 15:38:19 +09:00
Amor
5733507040 docs: update installation.md (#21331) 2019-12-04 15:11:09 +09:00
Milan Burda
01ab72d8c0 chore: remove unused shell/common/crash_reporter/win/crash_service.cc (#21349) 2019-12-04 15:09:58 +09:00
Electron Bot
c1845121e0 Bump v9.0.0-nightly.20191203 2019-12-03 07:32:38 -08:00
Jeremy Apthorp
9526c5584e fix: deprecate setLayoutZoomLevelLimits (#21296) 2019-12-02 13:27:03 -08:00
Shelley Vohr
c7cbc2e6b1 fix: backgroundThrottling rwh assignment (#21037)
* fix: backgroundThrottling rwh assignment

* fix: disable DOM timer throttling

* chore: fix typo
2019-12-02 10:29:03 -08:00
Alex Kondratyuk
f2f52c23b5 docs: rename ELECTRON_CACHE env variable to electron_config_cache (#21313) 2019-12-02 10:12:51 -08:00
Samuel Attard
ee58d60612 fix: ensure no node globals passively leak when nodeIntegration is disabled (#21342) 2019-12-02 10:09:47 -08:00
Electron Bot
66035a2448 Bump v9.0.0-nightly.20191202 2019-12-02 07:33:23 -08:00
liulun
3d2fa09db3 Two 'close' in this line (#21345) 2019-12-02 18:30:56 +09:00
Samuel Attard
0a60f455a9 build: add hashes to the external binary downloader (#21328) 2019-12-01 15:23:54 -08:00
Samuel Attard
b26a6793ba chore: delete the security issue template (#21344)
GitHub now automatically adds our security policy to the issue page in a Much Better ™️  way, this removes a duplicate
2019-12-01 15:23:31 -08:00
Electron Bot
469fc0ea36 Bump v9.0.0-nightly.20191201 2019-12-01 07:33:09 -08:00
Milan Burda
03824ef53f build: fix building with enable_builtin_spellchecker = false (#21334) 2019-11-30 14:17:46 -08:00
Electron Bot
74f698d7bc Bump v9.0.0-nightly.20191130 2019-11-30 07:31:23 -08:00
Electron Bot
ba77489cb6 Bump v9.0.0-nightly.20191129 2019-11-29 07:32:09 -08:00
Electron Bot
2129751966 Bump v9.0.0-nightly.20191128 2019-11-28 07:32:48 -08:00
Max
0618505722 build: disable strip_absolute_paths_from_debug_symbols on debug.gn (#20884) 2019-11-28 10:37:57 +09:00
Samuel Attard
01f5e9c5c4 build: make CI faster, magic contained within (#21086)
* build: cache the out directory for exact deps hash matches

* chore: generate a target based depshash discriminator

* fix: hash on gn args

* build: share logic on the mac builds

* build: ensure that the mksnapshot binary is built before stripping before zipping

* build: attach the workspace on macOS

* build: optimize the macOS checkout path for testing

* build: fix mksnapshot zip generation

* build: make the mac src cache restore work

* build: v2 out cache

* build: macOS cache restore is just stupidly slow

* build: strip more binaries

* build: attach the out cache to the workspace for macOS builds

* build: allow linux boxes to restore darwin out caches

* build: cat the deps hash target file

* build: ensure that the deps target hash matches on the linux box

* build: do not use host arch in target key

* build: force undefined in the target hash file

* build: only restore out cache when it isn't in the workspace

* build: fix the macOS cache workspace trick

* build: do not double restore

* build: remove the big stuff from the out dir

* build: workaround layer issue

* build: try it back on macOS again but with smaller thingy

* build: macOS needs the out cache now

* build: clean up for omptimal macOS path

* build: use old docker image

* build: idek at this point

* build: we need a deps hash

* build: yeah we need a checkout too

* chore: use testing env on save cache job

* chore: well that should fix the cache key thing

* chore: handle cross-OS path mismatch for src cache restore

* build: use a /portal directory to transfer the src cache appropriately

* build: use the correct docker image

* build: super perms for /portal

* build: increment out cache number

* build: ensure target hash is correct for args + disable pre-compiled headers on macOS

* build: wipe the cross-arch libffmpeg before building Electron
2019-11-27 16:29:53 -08:00
Jeremy Apthorp
f09cb114e4 test: retry beforeunload tests up to 3 times (#21293) 2019-11-27 09:42:54 -08:00
Electron Bot
06e349d074 Bump v9.0.0-nightly.20191127 2019-11-27 07:32:14 -08:00
Julio
96c4c48268 docs: app.dock could be undefined (#20609) 2019-11-27 22:23:13 +09:00
Shelley Vohr
5f365858c9 fix: correctly plumb checkboxChecked on win (#21248)
* fix: correctly plumb checkboxChecked on win

* address final style comment
2019-11-27 16:39:07 +09:00
Jeremy Apthorp
d25256dcf5 refactor: rewrite the net module to simplify state tracking (#21244) 2019-11-26 17:01:13 -08:00
Jeremy Apthorp
4149d76890 fix: restore --ignore-connections-limit functionality (#21286) 2019-11-26 13:27:33 -08:00
Samuel Attard
149aaeba94 feat: add session.addWordToSpellCheckerDictionary to allow custom words in the dictionary (#21266)
* feat: add session.addWordToSpellCheckerDictionary to allow custom words in the dictionary

* Update session.md
2019-11-26 13:16:43 -08:00
Electron Bot
8a9c7c484b Bump v9.0.0-nightly.20191126 2019-11-26 07:33:26 -08:00
OJ Kwon
ca61d2fae7 fix: allow reading body from non-2xx responses in net.request (#21055)
* fix(urlrequest): allow non-2xx repsponse results

- closes #21046

* test(net): add test cases to verify non-2xx body

* test(session): update spec to match clientrequest behavior

* test(net): update test cases to match clientrequest behavior

* spec: clean up async net spec
2019-11-25 14:34:25 -08:00
Jeremy Apthorp
2e25999c52 test: refactor net tests (#21265) 2019-11-25 12:56:18 -08:00
Samuel Attard
d84ba30541 fix: reloadIgnoringCache() should ignore the cache (#21263) 2019-11-25 11:12:58 -08:00
loc
f26b7931eb fix: add missing early return (#21264) 2019-11-25 11:03:54 -08:00
Electron Bot
27c764c66c Bump v9.0.0-nightly.20191125 2019-11-25 07:31:36 -08:00
Electron Bot
ab695fb2f7 Bump v9.0.0-nightly.20191124 2019-11-24 07:31:32 -08:00
Electron Bot
78ae5d410e Bump v9.0.0-nightly.20191123 2019-11-23 07:31:26 -08:00
Shelley Vohr
d20273f95b chore: improve nativeImage path converter error (#21243) 2019-11-22 19:16:43 -08:00
Samuel Attard
34452ee69e feat: expose executeJavaScriptInIsolatedWorld on webContents (#21190)
* feat: expose executeJavaScriptInIsolatedWorld on webContents

* Apply suggestions from code review

Co-Authored-By: loc <andy@slack-corp.com>
2019-11-22 15:33:55 -08:00
Jacob
a7c2f79a94 fix: prevent silent failure when DOM storage quota exceeded (#20899)
* test: update DOM storage quota limits test

* fix: update dom_storage_limits.patch (fixes #13465)

The previous version of this patch did not include
changes required to circumvent the quota enforcement
performed by StorageAreaImpl. Consequently when
the quota was exceeded, things still "appeared to
work" at first but then would later fail silently.
That is, the cache would be updated but the backing
store would not.

This could be fixed by disabling the code below
(from `content/browser/dom_storage/storage_area_impl.cc`)
```
  // Only check quota if the size is increasing, this allows
  // shrinking changes to pre-existing maps that are over budget.
  if (new_item_size > old_item_size && new_storage_used > max_size_) {
    if (map_state_ == MapState::LOADED_KEYS_ONLY) {
      receivers_.ReportBadMessage(
          "The quota in browser cannot exceed when there is only one "
          "renderer.");
    } else {
      std::move(callback).Run(false);
    }
    return;
  }
```

However, since this seems to have some unintended side-effects
(see updated notes in dom_storage_limits.patch) it seems
more prudent to simply increase the quota to a larger
yet still reasonable size rather than attempt to circumvent
the storage quota altogether.
2019-11-22 11:35:54 -08:00
Electron Bot
745363959a Bump v9.0.0-nightly.20191122 2019-11-22 07:31:58 -08:00
Jeremy Apthorp
033d309874 fix: record cpu_profiler data for main process (#21187)
* fix: record cpu_profiler data for main process

* kick ci
2019-11-21 18:05:41 -08:00
Shelley Vohr
135a64955c ci: handle network drive not being available (#21247)
Fixes 'The system cannot find the path specified' error when trying to save source to shared network drive.
2019-11-21 14:52:29 -08:00
Samuel Attard
0cadf2846b docs: remove string literal type from window events (#21235) 2019-11-21 11:12:03 -08:00
Bruce Auyeung
07b94ff578 docs: clarify uniqueness of WebContents.id, BrowserWindow.id (#21101) 2019-11-21 11:11:44 -08:00
Electron Bot
1da9959f57 Bump v9.0.0-nightly.20191121 2019-11-21 07:31:25 -08:00
Milan Burda
3f2cb91a35 refactor: declare KeyWeakMap<K, V> returned by createIDWeakMap() / createDoubleIDWeakMap() (#21171) 2019-11-21 13:32:31 +01:00
Julien Isorce
92ff39c168 ci: generate debug symbols on Linux (#18676) 2019-11-20 17:21:44 -08:00
Samuel Attard
41f1569c46 build: update release build endpoint from /jobs to /job (#21232) 2019-11-20 11:14:48 -08:00
Robo
0111f6216c fix: focus with OOPIF embedded inside <webview> (#21219)
Backports https://chromium-review.googlesource.com/c/chromium/src/+/1922650
2019-11-20 09:06:09 -08:00
John Kleinschmidt
4bc85f777f build: delete unneeded files when running a release (#21216)
* build: delete unneeded files when running a release

Needed to free up disk space on MacOS.

* Delete all the .git directories

* Update comment

* Run gn gen after deleting .git dirs
2019-11-20 10:42:38 -05:00
Electron Bot
af3bee742f Revert "Bump v9.0.0-nightly.20191120"
This reverts commit 99cafae1ec.
2019-11-20 07:37:12 -08:00
Electron Bot
99cafae1ec Bump v9.0.0-nightly.20191120 2019-11-20 07:31:46 -08:00
Cheng Zhao
50f2d2b5ab fix: menu should not be garbage-collected when popuping (#21169)
* fix: retain menu when popuping

* test: menu should not be garbage-collected when popuping
2019-11-20 20:17:39 +09:00
Samuel Attard
ea23f18e94 docs: document the channel param for event.reply (#21185) 2019-11-19 13:17:59 -08:00
Milan Burda
145dd33da1 spec: skip flaky <webview>.capturePage() test on Windows (#21175) 2019-11-19 12:57:35 -05:00
Electron Bot
6ca7eb79bc Bump v9.0.0-nightly.20191119 2019-11-19 07:32:04 -08:00
John Kleinschmidt
58abc757fd build: use symbol_level 1 for 32bit linux releases (#21193)
* build: use symbol_level 1 for 32bit linux releases

* Add comment
2019-11-19 06:36:16 -08:00
Samuel Attard
d34ba76eb6 build: use python3 to download external binaries (#21184)
* build: use python3 to download external binaries

* Update config.py
2019-11-19 06:08:20 -08:00
Robo
73467f00e3 fix: allow chromium to handle WM_NCCALCSIZE for frameless windows (#21164) 2019-11-19 06:07:10 -08:00
Samuel Attard
c8ed22def3 docs: fix isMactemplateImage type definition (#21166) 2019-11-18 10:57:22 -08:00
Jeremy Apthorp
4045852e6f fix: stream protocols sometimes flake out (#21113) 2019-11-18 10:47:29 -08:00
Electron Bot
f4371b3f03 Bump v9.0.0-nightly.20191118 2019-11-18 10:14:35 -08:00
Samuel Attard
e0dc8154b3 Revert "Bump v9.0.0-nightly.20191118"
This reverts commit ae07582d0a.
2019-11-18 10:13:02 -08:00
Electron Bot
ae07582d0a Bump v9.0.0-nightly.20191118 2019-11-18 07:32:05 -08:00
Cyril POIDEVIN
a6a028594d docs: Use Promise for dialog.showMessageBox (#21143)
* Update updates.md

Use of the return promise for the use of `dialog.showMessageBox`.

* Update updates.md
2019-11-18 00:49:50 -08:00
Electron Bot
b3d44dbe6f Bump v9.0.0-nightly.20191117 2019-11-17 07:31:18 -08:00
Electron Bot
24d6743d57 Bump v9.0.0-nightly.20191116 2019-11-16 07:32:27 -08:00
Robo
fbc3bb872b fix: incorrect size of windows on differently scaled monitors (#21100)
* Revert "fix: handle WM_GETMINMAXINFO instead of letting chromium do it (#19928)"

This reverts commit 27ce6a9cd3.

* fix: don't reset the width and height when correcting window placement
2019-11-15 09:28:11 -08:00
Electron Bot
46c12308cd Bump v9.0.0-nightly.20191115 2019-11-15 07:32:27 -08:00
Jeremy Apthorp
26ecf63ab4 test: remove a bunch of usage of the remote module (#21119) 2019-11-14 14:09:03 -08:00
Jeremy Apthorp
4f1536479e fix: implement 'login' event for net.ClientRequest (#21096) 2019-11-14 10:01:18 -08:00
Electron Bot
878ab916d2 Bump v9.0.0-nightly.20191114 2019-11-14 07:34:02 -08:00
Cheng Zhao
b02a20e4dc fix: webRequest should be able to modify CORS headers (#21099)
* fix: always use extraHeaders mode

* fix: clear pending callbacks

* fix: do not use "extraHeaders" for net module

* test: webRequest should be able to modify CROS headers

* chore: CROS => CORS

Co-Authored-By: Milan Burda <milan.burda@gmail.com>

* chore: CROS => CORS

Co-Authored-By: Milan Burda <milan.burda@gmail.com>
2019-11-14 14:51:24 +09:00
Shelley Vohr
af1e8a347e chore: remove unused promisify code (#21114) 2019-11-14 14:50:50 +09:00
Shelley Vohr
457b7bf24f chore: remove outdated v8 compat patch (#21115)
This was only intended to last the duration of Node.js v11, and we are not on v12 so this should no longer be necessary
2019-11-14 14:50:25 +09:00
Milan Burda
97e2569f02 feat: add 'screen' to systemPreferences.getMediaAccessStatus() (#20764)
* feat: add 'screen' to systemPreferences.getMediaAccessStatus()

* Update docs/api/system-preferences.md
2019-11-13 16:47:51 -05:00
Erick Zhao
ba85d4c3bb docs: document webkitdirectory breaking change (#20934)
* chore: empty folder structure

* chore: PR template

* docs: add `webkitdirectory` change in Electron 7

* linguist?

* link

* Delete hacktoberfest.md
2019-11-13 14:11:25 -05:00
Shelley Vohr
98844c20a7 build: missing include in windows release builds (#21045) 2019-11-13 14:10:12 -05:00
Electron Bot
ca62264c50 Bump v9.0.0-nightly.20191113 2019-11-13 07:33:04 -08:00
Kristof Kalocsai
821bcdef75 docs: added windows -> create frameless window example (#20591)
* docs: added windows -> create frameless window example from electron-api-docs

* fixed style in accord with StandardJS

* removed class tag from button
2019-11-13 14:49:13 +09:00
Alan Ionita
a15e0e0657 FEAT [#20442] : adds the fiddle for launching an app from URL in another app, including all 3 files main.js, index.html, renderer.js (#20718) 2019-11-13 14:46:54 +09:00
Alan Ionita
09533e77da feat: #20442 adds fiddle for opening external links and the pro version of opening all outbound links (#20763) 2019-11-13 14:46:35 +09:00
Andrea Brancaleoni
97959b5e5c build: include windows toolchain profiler (#20949)
This commit allows any electron user to compile electron
artifacts by themselves in production mode. When the source code
is reproducibly buildable with a given toolchain this change
allows them to verify the hash of their build, with the same
windows toolchain agains the CI version.

This change was tested on top of version fb9837799b
which was buildable and reproducible for chromium and electron as well.

Further tests may be introduced to allows checking for local reproducibility.
EG: building twice an artifact on the same machine, with different time
and output directory should yield similar hashes.
2019-11-13 14:42:45 +09:00
Shelley Vohr
b8ee8c4eee feat: enhance PrinterInfo object values (#21081) 2019-11-13 14:31:28 +09:00
Samuel Attard
8320160fe2 build: use autogenerated docker images for CI runs (#21056)
* build: use autogenerated docker images for CI runs

* build: depend on exact tag instead of rolling :latest

* chore: use newer docker image
2019-11-13 14:29:15 +09:00
Shelley Vohr
3c75adb236 test: re-enable some node specs (#21084) 2019-11-12 23:31:48 +00:00
Milan Burda
1d596f616d fix: NativeImage serialization of <webview>.capturePage() result (#20825) 2019-11-12 21:56:17 +01:00
Samuel Attard
c0657a4ca7 build: fix nightly version bumping (#21079)
* build: fix nightly version bumping

* spec: add a test for bumping nightlies beyond the 8-x-y branch switch

* Update version-bump-spec.ts
2019-11-12 08:36:03 -08:00
Electron Bot
d9d89eeabc Bump v8.0.0-nightly.20191112 2019-11-12 07:32:57 -08:00
Milan Burda
739b20bd13 refactor: simplify Converter<content::PermissionType>::ToV8 (#21053) 2019-11-12 18:18:48 +03:00
Vlad Hashimoto
601cc6e887 docs: change invalid bash session language tag (#20827) 2019-11-12 12:47:56 +00:00
Jeremy Apthorp
034f4d5734 fix: implement 'login' event for WebContents (#20954) 2019-11-11 09:47:01 -08:00
Electron Bot
049bd09150 Bump v8.0.0-nightly.20191111 2019-11-11 07:32:17 -08:00
Electron Bot
bf1b1fac49 Bump v8.0.0-nightly.20191110 2019-11-10 07:33:20 -08:00
Electron Bot
01c4bd73dc Bump v8.0.0-nightly.20191109 2019-11-09 07:31:45 -08:00
Milan Burda
093f2dd4a6 chore: remove deprecated <webview>.getWebContents() (#20986) 2019-11-08 15:46:35 -05:00
fengmk2
145ecb85c2 docs: use new China's mirror address (#21030) 2019-11-08 15:39:47 -05:00
Átila Camurça Alves
c4cc6bd1bf docs: correct the syntax to caniuse.com link (#21048) 2019-11-08 15:39:31 -05:00
Shelley Vohr
caa6e65e38 chore: remove unnecessary patches (#21044) 2019-11-08 13:02:43 -05:00
Shelley Vohr
6c2af8b421 fix: refactor printing for mojom (#21026) 2019-11-08 13:01:50 -05:00
Electron Bot
fe2ca6e6e7 Bump v8.0.0-nightly.20191108 2019-11-08 07:32:00 -08:00
Shelley Vohr
d3622f9c37 feat: convert shell.openItem to async shell.openPath (#20682) 2019-11-07 23:08:43 -08:00
Jeremy Apthorp
fd70ac1173 refactor: always initialize api::Protocol (#21009) 2019-11-07 15:35:12 -08:00
Samuel Attard
b06a479240 build: remove debug builds (#21016)
* build: remove debug builds

* Update docs/development/debugging-instructions-macos.md

Co-Authored-By: Robo <hop2deep@gmail.com>
2019-11-07 11:51:44 -08:00
Milan Burda
f1e7393e30 feat: deprecate <webview>.getWebContents() (#20726) 2019-11-07 09:43:19 -08:00
Robo
c716ecb916 fix: check for validity of guest webcontents (#21019) 2019-11-07 07:39:48 -08:00
Electron Bot
7625202891 Bump v8.0.0-nightly.20191107 2019-11-07 07:32:31 -08:00
Andrew MacDonald
9b01bb00d2 feat: add app.getApplicationNameForProtocol API (#20399)
* Add GetApplicationNameForProtocol.

* Fix Windows implementation.

* Fix up test.

* Add documentation.

* Implement for real on Linux using xdg-mime.

Also ensure we allow blocking calls here to avoid errant DCHECKing.

* Improve docs for Linux.

* Clean up tests.

* Add a note about not relying on the precise format.

* Update docs/api/app.md

Co-Authored-By: Shelley Vohr <codebytere@github.com>

* Remove needless `done()`s from tests.

* Use vector list initialization.

* Add a simple test for isDefaultProtocolClient.

* Remove unneeded include and skip a test on Linux CI.

* We no longer differentiate between CI and non-CI test runs.
2019-11-06 17:50:33 -08:00
Samuel Attard
24939e8fa4 build: speedy tests on circle by splitting the test files into multiple jobs (#21015)
* build: let circleci divide our test suites in two

* well our tests rely on side affects, thats cool I guess
2019-11-06 16:15:55 -08:00
Samuel Attard
bbfb32b136 build: store the ninja log for our builds (#21011) 2019-11-06 16:13:39 -08:00
Yaser
e5ba6c5406 docs: Adds Desktop notifications Fiddle example (#20525)
* docs: Adds Desktop notifications Fiddle example

* Update index.html

Removed the classes
2019-11-06 09:24:41 -08:00
Electron Bot
b563cd1235 Bump v8.0.0-nightly.20191106 2019-11-06 07:33:12 -08:00
Samuel Attard
d91cc257f9 chore: emit the document-start and document-end events in a sandboxed renderer (#20987) 2019-11-05 17:53:03 -08:00
Samuel Attard
5b7382765c feat: allow TouchBarButton instances to be disabled (#20945)
* feat: allow TouchBarButton instances to be disabled

* Update touch-bar-button.md
2019-11-05 15:56:36 -08:00
Electron Bot
9a198e8ef4 chore: bump chromium to f30828899e4cd7161f6dc6507023f (master) (#20824)
* chore: bump chromium in DEPS to 0476932294da8809a19189b9f54cee11d50cc512

* update chromium patches (#20838)

* chore: bump chromium in DEPS to 838863f5ec9e8a12132a10bb47be8382ad9756a7

* IsRendererTransferNeededForNavigation went away

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

* [arraybuffer] Move the ArrayBuffer implementation from wtf to core

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

* URLLoaderRequest new mojo types

* context menu enums moved around

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

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

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

* chore: bump chromium in DEPS to dc9525d251bf30828899e4cd7161f6dc6507023f

* update chromium patches

* [WIP] Convert network hints IPC to Mojo

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

* jumbo build is no longer supported

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

* fix disable-color-correct-rendering

* [FIXME] fix printing patch

compiles but prob doesn't work

* explicitly include ax_enums

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

* fixup! [WIP] Convert network hints IPC to Mojo

* fix base::span

* fix AsarURLLoader to not double-std::move

* fix debug build

* fix msstl patch

* lint

* more fix msstl

* mooooore fix msstl

* fix compile

* update backport_fix_msstl_compat_in_ui_events.patch

* update msstl compat patch

* don't try to build chrome's prefetch predictor

* build: fix compilation on windows

* Fixup patches for MAS build

* Free up disk space for mac debug builds

* fix: apply custom site instance only for main frame

* Fixup from rebase

* Try not generating symbols for mac debug builds

* Remove double entry of patch

* FIx compile errors

* Trigger CI

* Set symbol_level to 1 for mac debug builds
2019-11-05 18:41:20 -05:00
John Kleinschmidt
f18fca0729 build: speed up windows source retrieval (#20955)
* ci: speed up src retrieval

* Don't save zip on ia32

* Update external binaries if src zip already exists

* Apply suggestions from code review

Co-Authored-By: Jeremy Apthorp <jeremya@chromium.org>

* Update appveyor.yml
2019-11-05 17:18:08 -05:00
Birunthan Mohanathas
ac69b89e82 fix: Fix broken globalShortcuts.registerAll() on non-macOS platforms (#20963)
This was a regression in #16125, which unintentionally put
`GlobalShortcutListener::RegisterAccelerator` into a
`#if defined(OS_MACOSX)` block.

Notes: Fix broken `globalShortcut.registerAll()` on Windows and Linux
2019-11-05 13:47:23 -08:00
Shelley Vohr
05de7277ab docs: fix win.setIcon ts type (#20950)
* docs: fix win.setIcon ts type

* test: update smoke tests
2019-11-05 13:47:08 -08:00
Mark Lee
d871598d20 docs: update installation instructions for proxies (#20780) 2019-11-05 13:40:43 -08:00
CezaryKulakowski
00a1cd9395 fix: changed crlf to lf in some docs files (#20832) 2019-11-05 13:39:39 -08:00
loc
15dffb3dde fix: allow iframe-initiated HTML fullscreen to exit while in macOS fullscreen (#20962)
* fix: explicitly resize the contents when exiting html fullscreen while in OS fullscreen

* test: ensure HTML fullscreen toggles while in OS fullscreen
2019-11-05 13:34:45 -08:00
Samuel Attard
fcee7212ce chore: upgrade ts generator for better type safety (#20975)
* chore: upgrade ts generator for better type safety

* spec: fix tests
2019-11-05 13:34:04 -08:00
Jeremy Apthorp
6e5ac301ce test: don't require 'q' until the test that needs it (#20958)
this stops a failure to require from blocking all tests from running
2019-11-05 11:36:25 -05:00
Electron Bot
56d6c1657a Bump v8.0.0-nightly.20191105 2019-11-05 07:31:41 -08:00
Jeremy Apthorp
afaa1e73ab chore: fix build with enable_electron_extensions (#20959) 2019-11-04 15:59:31 -08:00
Milan Burda
a034f5db0d refactor: add Error to isSerializableObject() (#20886) 2019-11-04 14:35:57 -08:00
Shelley Vohr
584a494b83 fix: proper i18n of recentDocuments item (#20948) 2019-11-04 14:20:31 -08:00
Milan Burda
01e18c2fc3 fix: cannot access nativeTheme via electron.remote (#20938) 2019-11-04 14:17:03 -08:00
Milan Burda
ee7ce3954a fix: don't export __esModule = true by electron.ts (#20939) 2019-11-04 14:16:42 -08:00
Samuel Attard
267821831c fix: capture the promise global to avoid userland mutation (#20925) 2019-11-04 11:16:51 -08:00
Jeremy Apthorp
4de04da27a chore: lint patch descriptions (#20919) 2019-11-04 11:04:18 -08:00
John Kleinschmidt
04da8a10eb docs: document JS constant naming (#20892) 2019-11-04 13:25:43 -05:00
Jeremy Apthorp
85647dfced refactor: remove references to non-existent webui (#20867) 2019-11-04 09:50:31 -08:00
Electron Bot
f645ca015f Bump v8.0.0-nightly.20191104 2019-11-04 07:32:27 -08:00
Milan Burda
f808f50fa6 chore: remove no longer needed macOS SDK forward declarations (#19918)
* chore: remove no longer needed macOS SDK forward declarations
* fix: linter errors in spec-main/node-spec.ts
2019-11-03 21:46:12 +03:00
Electron Bot
5f27c1fa25 Bump v8.0.0-nightly.20191103 2019-11-03 07:31:11 -08:00
Shelley Vohr
ba47c9b925 fix: don't copy tray image when it's set (#20904) 2019-11-02 15:14:44 -07:00
Shelley Vohr
b194d5d0e2 chore: fix IsolateData handling (#20918) 2019-11-02 15:14:11 -07:00
Electron Bot
776cab96b1 Bump v8.0.0-nightly.20191102 2019-11-02 08:31:56 -07:00
Shelley Vohr
38711233c5 feat: allow some NODE_OPTIONS in packaged apps (#20857)
* feat: allow some NODE_OPTIONS in packaged apps

* fix: correctly detect packaged app
2019-11-01 18:06:15 -07:00
Jeremy Apthorp
ecd9e1f26e chore: lint spec-main (#20835) 2019-11-01 13:37:02 -07:00
Shelley Vohr
1fed1ed577 chore: add patch info for setAspectRatio (#20920) 2019-11-01 13:26:57 -07:00
Amarnath Karthi
0fe718b1d9 docs: add Synchronous Messages Fiddle example (#20451)
* docs: add Synchronous Messages Fiddle example

* Code review changes

* Add OS support info
2019-11-01 14:02:42 -04:00
Erick Zhao
dcf6f046d9 feat: implement win.setAspectRatio() on Linux (#19516) 2019-11-01 09:22:07 -07:00
John Kleinschmidt
4240017cb6 build: allow CircleCI timeout and retry to be set via env variables (#20896)
* build: allow circleci timeout and retry to be set via env variables

* check for more statuses and run indefinitely
2019-11-01 11:47:45 -04:00
Electron Bot
d8aaaeb378 Bump v8.0.0-nightly.20191101 2019-11-01 08:30:48 -07:00
Amarnath Karthi
06285f0bf1 docs: add app information example (#20487)
* docs: add app information example

* Code review changes

* Remove demo-control css class, link href change
2019-11-01 08:04:47 -07:00
Cheng Zhao
eaf2c61bef refactor: migrates util::Promise to gin (#20871)
* refactor: use gin in Promise

* refactor: separate Promise impl that returns nothing

* refactor: use Promise<void> for promise that returns nothing

* fix: methods should be able to run on both browser and renderer process

* fix: should not pass base::StringPiece across threads

* refactor: no more need to use different ResolvePromise for empty Promise

* refactor: move Promise to gin_helper
2019-11-01 15:10:32 +09:00
Milan Burda
bff113760a fix: use Unicode version of ShellExecute() in OpenExternalOnWorkerThread() (#20879) 2019-11-01 14:38:56 +09:00
Samuel Attard
7ae8538847 build: enable sccache on windows (#20790)
* build: enable sccache on windows

* chore: temporarily disable the docs only check

* build: fix escaping in sccache path on windows

* Update appveyor.yml

* Update appveyor.yml

* Use sccache settings from CI

* Use Azure enabled sccache for Windows
2019-10-31 17:08:27 -04:00
Robo
d9b058c694 ci: fix release build on windows (#20859) 2019-10-31 13:24:24 -07:00
Samuel Attard
6bcf67e051 feat: enable builtin spellchecker (#20692)
* chore: add code required to use chromes spellchecker

* chore: fix linting

* chore: manifests needs buildflags now

* chore: add dictionarySuggestions to the context menu event when the spellchecker is active

* chore: enable by default for windows builds

* chore: add patch to remove incognito usage in the spellchecker

* chore: add dependencies on spellcheck common and flags

* chore: conditionally include spell check panel impl

* chore: fix deps for spellcheck feature flags

* chore: add patch for electron resources

* chore: add dependency on //components/language/core/browser

* chore: patches to make hunspell work on windows

* build: collect hunspell dictionaries into a zip file and publish

* chore: clean up patches

* chore: add docs and set spell checker url method

* chore: fix error handling

* chore: fix hash logic

* build: update hunspell filename generator

* fix: default spellchecker list to the current system locale if we can

* docs: document the language getter

* chore: patch IDS_ resources for linux builds

* feat: add spellcheck webpref flag to disable the builtin spellchecker

* chore: fix docs typo

* chore: clean up spellchecker impl as per feedback

* remove unneeded deps
2019-10-31 13:11:51 -07:00
John Kleinschmidt
23ca7e3733 build: lengthen wait times and retries for CircleCI releases (#20889)
* build: lengthen wait times and retries for CircleCI releases

* Review suggestions
2019-10-31 14:25:11 -04:00
Yaser
b060cbf4ec docs: Adds Dialogs Fiddle example (#20473) 2019-10-31 11:04:24 -07:00
Mark Lee
2bbf32a18b docs: clean up performance checklist formatting (#20830)
* docs: fix list formatting in performance checklist

* docs: remove unused link ref
2019-10-31 08:41:18 -07:00
Electron Bot
206e94d20c Bump v8.0.0-nightly.20191031 2019-10-31 08:32:15 -07:00
Shelley Vohr
f0b0614dd7 fix: swapped labels on open/save gtkdialog (#20861) 2019-10-31 07:55:39 -07:00
John Kleinschmidt
dfdf1b54c6 build: do not try to run non existent VSTS release builds (#20866) 2019-10-31 09:58:56 -04:00
Cheng Zhao
3ae3233e65 chore: remove native_mate (Part 12) (#20869)
* refactor: move mate::Event to gin

* refactor: move mate::Locker to gin

* refactor: convert contextBridge to gin

* refactor: convert contentTracing to gin

* refactor: remove callback converter of native_mate

* refactor: remove file_dialog_converter and native_window_converter from native_mate

* refactor: convert webFrame to gin

* refactor: move blink_converter to gin

* refactor: remove net_converter from native_mate

* refactor: remove event_emitter_caller_deprecated

* refactor: remove gurl_converter from native_mate

* refactor: remove file_path and string16_converter from native_mate

* refactor: remove image_converter from native_mate

* refactor: move value_converter to gin
2019-10-31 16:56:00 +09:00
Jeremy Apthorp
6781d5e3c8 test: there is only --ci (#20794) 2019-10-30 16:38:21 -07:00
Birunthan Mohanathas
b275273044 fix: Disable compositor recycling only for attached views (#20829)
In #19873, we completely disabled compositor recycling. This has adverse
effects in our tabbed app where switching tabs (i.e. `BrowserView`s) now
results in a flicker because we now also switch compositors.

To fix this without regressing the original fix, we now recycle the
compositor when the view is removed from a window. This situation can
only happen with `BrowserView`s and the common case with `BrowserWindow`
is unaffected.
2019-10-30 13:47:12 -07:00
Jeremy Apthorp
8dfc896cfa refactor: send the 'close' message asynchronously (#20796) 2019-10-30 13:13:01 -07:00
Electron Bot
70fa9ff4c0 Bump v8.0.0-nightly.20191030 2019-10-30 08:31:54 -07:00
Milan Burda
3d56e13b38 fix: devtools extensions not loading (#20791) 2019-10-30 14:46:52 +09:00
Cheng Zhao
0ab9cc30d2 refactor: pass base::Value by value in JS API implementations (#20809)
* refactor: move the arg instead of const reference it

* refactor: avoid unnecessary copies of base::Value in arg

* refactor: pass-by-value in dict_util

* refactor: avoid unnecessary reference
2019-10-30 14:30:59 +09:00
Samuel Attard
c03ed6d3a1 build: change to download sysroots from the new sysroot bucket (#20803)
* build: change to download sysroots from the new sysroot bucket

* build: add json config files to deps hash to can influence the src dir

* build: update to latest sysroot hash
2019-10-29 17:50:24 -07:00
Shelley Vohr
5d00494f8d fix: do not DCHECK non-const methods (#20833) 2019-10-29 13:35:38 -07:00
Electron Bot
79d3901859 Bump v8.0.0-nightly.20191029 2019-10-29 08:31:39 -07:00
Milan Burda
0f7ebff81e fix: pass frameId to v8Util.setRemoteCallbackFreer() (#20732) 2019-10-29 15:40:09 +09:00
Samuel Attard
375e612ac5 docs: the ipc main listener being removed can have args (#20712) 2019-10-29 13:18:39 +09:00
Jeremy Apthorp
baaf058380 test: remove last usages of spec/window-helpers (#20792)
* test: remove last usages of spec/window-helpers

* move fixture
2019-10-29 13:16:42 +09:00
Milan Burda
0c870775c4 fix: deprecation warnings in Electron code (#20793) 2019-10-29 13:16:10 +09:00
Milan Burda
bd5a5b3ae6 fix: properly generate requestID in webContents.printToPDF() (#20769) 2019-10-29 11:36:29 +09:00
Electron Bot
b6246dcf12 chore: bump chromium to f5b345dd470f14eef6e44732ccf23 (master) (#20649) 2019-10-28 15:12:35 -07:00
Shelley Vohr
fb8b1fd1c9 fix: prevent menu gc during popup (#20745) 2019-10-28 14:26:48 -04:00
Electron Bot
d0cdd12521 Bump v8.0.0-nightly.20191028 2019-10-28 08:31:41 -07:00
Alexey Kuzmin
0eff02dab9 chore: fix formatting of a few Python files (#20743) 2019-10-28 10:02:16 -04:00
John Kleinschmidt
73da4b7215 build: fix doc only change when there isn't a PR (#20749)
* build: fix doc only change when there isn't a PR

Fixes issue where CI was mistakenly marking a PR as a doc only change because the CI was kicked off before the PR was created.
2019-10-28 09:40:21 -04:00
Shelley Vohr
cdff1bde22 docs: fix process.getSystemVersion() type (#20736) 2019-10-27 09:40:41 -07:00
Electron Bot
e8d85b6ded Bump v8.0.0-nightly.20191027 2019-10-27 08:31:07 -07:00
Electron Bot
8f1ad8a4e5 Bump v8.0.0-nightly.20191026 2019-10-26 08:32:27 -07:00
Mark Lee
57883eed0f docs: add the performance doc to the table of contents (#20727) 2019-10-25 15:58:20 -04:00
Electron Bot
4ec6d10969 Bump v8.0.0-nightly.20191025 2019-10-25 08:31:50 -07:00
Cheng Zhao
0fe6767d6b chore: remove native_mate (Part 11) (#20719)
* refactor: convert Menu and globalShortcut to gin

* refactor: convert api::Cookies to gin

* refactor: convert View and WebContentsView to gin

* refactor: convert WebContents related classes to gin

* refactor: convert powerMonitor to gin

* refactor: prepare for header change

* refactor: remove last uses of mate::EventEmitter

* refactor: remove mate::EventEmitter

* refactor: move trackable_object to gin_helper

* fix: custom converter should not use Handle

* fix: no more need to check if icon is empty

It was a bug that the Handle<NativeImage> can be non-empty when the
image file does not exist. The bug was caused by the converter code
writing out the image even when the convertion fails.

The bug was work-arounded by adding an additional check, but since the
original bug had been fixed, the additional check is no longer needed.

* fix: should always set frameId even when callback is null

* fix: do not mix gin/mate handles for NativeImage
2019-10-25 22:03:28 +09:00
Shelley Vohr
0e0d4fe990 chore: shrink RSA-PSS BoringSSL patch (#20713) 2019-10-24 13:32:43 -07:00
Electron Bot
e196a397ad Bump v8.0.0-nightly.20191024 2019-10-24 08:32:48 -07:00
CezaryKulakowski
510a916f82 fix: return proper values for WM_GETMINMAXINFO (#20519)
* fix: set proper constraints for windows with defined maxWidth

When BrowserWindow has set constraints for width (max or min) it
won't behave correctly during first attempt of resizing it. When
maxWidth is defined and maxWidth equals its width it will shrink
rapidly when user tries to expand its width. On the other hand
when minWidth is defined and minWidth equals its width it's
possible to decrease its width with a few pixels.

Notes: Fixed improper behaviour of window with width constraint set during resize.

* fix: prevent crash when WM_GETMINMAXINFO is called on initing window
2019-10-24 15:06:04 +09:00
Cheng Zhao
be955a9721 chore: remove native_mate (Part 10) (#20696)
* refactor: remove direct uses of event_emitter_deprecated.h

* refactor: remove event_emitter_deprecated.h in api::App

* refactor: use std::move to save a copy

* fix: windows and linux builds
2019-10-24 14:47:58 +09:00
Jeremy Apthorp
77414813b4 chore: remove _ns suffixes (#20691)
* chore: remove _ns suffixes

* lint
2019-10-24 09:51:06 +09:00
John Kleinschmidt
cc278cea00 ci: skip build on doc only changes (#20542)
* ci: skip build on doc only changes

* Try using exit codes on doc-only-change

* Fixup

* Fixup circleci doc-only check

* Update appveyor.yml

Co-Authored-By: Samuel Attard <sattard@slack-corp.com>

* Properly detect doc only change on Windows

* Flip exit code per review
2019-10-23 19:36:26 -04:00
Samuel Attard
fadd7e056d build: handle -x-y format for getCurrentBranch (#20706) 2019-10-23 12:51:44 -07:00
Robo
6dc101ffec chore: update build_bring_back_node_with_ltcg_configuration.patch (#20672)
* chore: update build_bring_back_node_with_ltcg_configuration.patch

set default value for node_with_ltcg=true

* fix: move ltcg definition to Release configuration
2019-10-23 12:48:12 -07:00
John Kleinschmidt
467409458e build: add support for automated minor releases (#20620)
* build: add support for automated minor releases

* Add test for minor bump
2019-10-23 11:07:09 -07:00
Sofia Nguy
f5e5bcd943 [WIP] docs: update electron 8.0 dates (#20621) 2019-10-23 12:39:47 -04:00
Shelley Vohr
db4d01c517 refactor: move CompileAndCall to a helper (#20675) 2019-10-23 09:26:32 -07:00
Shelley Vohr
5abce7ec08 fix: call InitializeContextRuntime in InitializeContext (#20684) 2019-10-23 09:25:14 -07:00
Electron Bot
18907389da Bump v8.0.0-nightly.20191023 2019-10-23 08:32:02 -07:00
Milan Burda
ba8f80267c fix: send ELECTRON_BROWSER_CONTEXT_RELEASE asynchronously (#20632)
* fix: send ELECTRON_BROWSER_CONTEXT_RELEASE asynchronously

* test: remote references should be able to be cleared for all cases
2019-10-23 13:44:21 +09:00
Jeremy Apthorp
2abea22b4b fix: explicitly cancel redirects when mode is 'error' (#20686) 2019-10-23 09:10:37 +09:00
Jeremy Apthorp
cde2aae6b5 fix: properly free remote objects (#20671) 2019-10-22 16:54:38 -07:00
Sofia Nguy
97fa8c824c docs: update currently supported versions for 7.0.0 release (#20622)
* [WIP] docs: update currently supported versions for 7.0.0 release

* oops
2019-10-22 15:26:07 -07:00
Electron Bot
2658cae3ea Bump v8.0.0-nightly.20191022 2019-10-22 08:31:48 -07:00
Shelley Vohr
e3b30a825c chore: remove unnecessary crypto patch (#20669) 2019-10-22 09:14:21 +09:00
Shelley Vohr
aa26e8b946 fix: macOS getColor inconsistencies (#20611) 2019-10-21 14:31:03 -07:00
Shelley Vohr
9a5cd4c8d2 fix: use xib file to construct macOS Menu (#20615) 2019-10-21 14:11:09 -07:00
Electron Bot
138af75ff8 chore: bump node in DEPS to v12.13.0 (#20657)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2019-10-21 13:45:14 -07:00
Felix Rieseberg
13cb21a684 docs: Performance checklist (#20230)
* docs: First draft of perf checklist

* docs: More words

* docs: Use standard in code example

* docs: fix broken link

* Update docs/tutorial/performance.md

Co-Authored-By: Charles Kerr <ckerr@github.com>

* Update docs/tutorial/performance.md

Co-Authored-By: Charles Kerr <ckerr@github.com>

* Update docs/tutorial/performance.md

Co-Authored-By: loc <andy@slack-corp.com>

* Update docs/tutorial/performance.md

Co-Authored-By: loc <andy@slack-corp.com>

* docs: Implement suggestions

* docs: Include VSCode talk

* chore: Pass linter

* Update docs/tutorial/performance.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/performance.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/performance.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/performance.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/performance.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/performance.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Apply suggestions from code review

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update performance.md

* fix: The process link
2019-10-21 13:39:54 -07:00
Arjit Chauhan
620ac9c2b4 docs: update README.md (#20644) 2019-10-21 12:14:42 -07:00
Electron Bot
417f9e27e1 Bump v8.0.0-nightly.20191021 2019-10-21 08:32:10 -07:00
Shelley Vohr
0abbb35c4e chore: reduce crypto patch surface (#20646)
* reduce oaeplabel_option patch

* remove now-compatible patch

* note upstream
2019-10-21 08:02:23 -07:00
Kristof Kalocsai
7b28cd33cb docs: Added Native User Interface -> Open path in file manager Fiddle example (#20589)
* docs: Added Native User Interface -> Open path in file manager Fiddle example from electron-api-demos

* removed classname from button
2019-10-21 16:16:11 +09:00
Yaser
4e88633d89 docs: Added Drag and drop files Fiddle example (#20472) 2019-10-21 16:14:35 +09:00
Cheng Zhao
eb0e55c514 chore: remove native_mate (Part 9) (#20645)
* refactor: remove a few uses of native_mate/gfx_converter.h

* refactor: deprecate mate::EventEmitter

* refactor: add gin_helper::EventEmitter

* refactor: convert a few classes to use gin_helper::EventEmitter

* refactor: get rid of native_mate_converters/gfx_converter.h

* fix: follow native_mate on reporting errors

* fix: gin is weak at guessing parameter types

* fix: incorrect full class name

* fix: gin::Handle does not accept null
2019-10-21 16:05:40 +09:00
Jeremy Apthorp
b155ebeeb3 fix: don't overwrite global constructor names in remote (#20637)
* fix: don't overwrite global constructor names in remote

* fake constructor names better, and improve error serialization
2019-10-21 15:48:03 +09:00
Electron Bot
820dab295f Bump v8.0.0-nightly.20191020 2019-10-20 08:31:06 -07:00
Electron Bot
956127ee5e Bump v8.0.0-nightly.20191019 2019-10-19 08:31:24 -07:00
Electron Bot
43fa9166c9 chore: bump node to v12.12.0 (master) (#20584)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2019-10-18 16:52:15 -07:00
Jeremy Apthorp
9f23bb581e test: fix BrowserWindow spec to await its result (#20612) 2019-10-18 16:23:33 -07:00
Samuel Attard
2b890827ef docs: mark contextBridge as experimental (#20638)
* docs: mark contextBridge as experimental

This commit didn't make it to the original PR, quick addition here

* Update context-bridge.md
2019-10-18 13:46:03 -07:00
Electron Bot
3ac3fbdbfb chore: bump chromium to e049d599a8332b9b2785b0178be74 (master) (#20314) 2019-10-18 12:57:34 -07:00
Samuel Attard
0090616f7b feat: add a new contextBridge module (#20307)
* feat: add a new contextBridge module

* chore: fix docs linting

* feat: add support for function arguments being proxied

* chore: ensure that contextBridge can only be used when contextIsolation is enabled

* docs: getReverseBinding can be null

* docs: fix broken links in md file

* feat: add support for promises in function parameters

* fix: linting failure for explicit constructor

* Update atom_api_context_bridge.cc

* chore: update docs and API design as per feedback

* refactor: remove reverse bindings and handle GC'able functions across the bridge

* chore: only expose debugGC in testing builds

* fix: do not proxy promises as objects

* spec: add complete spec coverage for contextBridge

* spec: add tests for null/undefined and the anti-overwrite logic

* chore: fix linting

* spec: add complex nested back-and-forth function calling

* fix: expose contextBridge in sandboxed renderers

* refactor: improve security of default_app using the new contextBridge module

* s/bindAPIInMainWorld/exposeInMainWorld

* chore: sorry for this commit, its a big one, I fixed like everything and refactored a lot

* chore: remove PassedValueCache as it is unused now

Values transferred from context A to context B are now cachde in the RenderFramePersistenceStore

* chore: move to anonymous namespace

* refactor: remove PassValueToOtherContextWithCache

* chore: remove commented unused code blocks

* chore: remove .only

* chore: remote commented code

* refactor: extract RenderFramePersistenceStore

* spec: ensure it works with numbered keys

* fix: handle number keys correctly

* fix: sort out the linter

* spec: update default_app asar spec for removed file

* refactor: change signatures to return v8 objects directly rather than the mate dictionary handle

* refactor: use the v8 serializer to support cloneable buffers and other object types

* chore: fix linting

* fix: handle hash collisions with a linked list in the map

* fix: enforce a recursion limit on the context bridge

* chore: fix linting

* chore: remove TODO

* chore: adapt for PR feedback

* chore: remove .only

* chore: clean up docs and clean up the proxy map when objects are released

* chore: ensure we cache object values that are cloned through the V8 serializer
2019-10-18 12:57:09 -07:00
Shelley Vohr
8099e6137d chore: remove some trop permissions (#20636) 2019-10-18 11:24:52 -07:00
Electron Bot
e74b21bff5 Bump v8.0.0-nightly.20191018 2019-10-18 08:31:50 -07:00
Alecyrus
825e67140e feat: support fitToPageEnabled and scaleFactor (#20436)
* fix: support fitToPageEnabled and scaleFactor

Support fitToPageEnabled and scaleFactor in  `WebContents.printToPDF()`

* fix: change default value of scaleFactor
2019-10-18 09:40:19 +09:00
Cheng Zhao
19223952a8 chore: remove native_mate (Part 8) (#20598)
* refactor: convert methods of AutoUpdater to gin

* refactor: converter in map_converter.h is no more needed

* refactor: use gin in crash_reporter

* refactor: remove native_mate_converters/map_converter.h

* refactor: implement gfx_converter with gin

* refactor: convert methods of NativeImage to gin

* refactor: add gin_helper::Arguments

* fix: use gin_helper::Arguments to parse multi-type parameters
2019-10-18 09:31:29 +09:00
Robo
58115c1cae fix: add patch to node for native module size issue on windows (#20614) 2019-10-17 17:10:42 -04:00
Electron Bot
86258c6cff Bump v8.0.0-nightly.20191017 2019-10-17 08:33:48 -07:00
Milan Burda
b29f0b9348 refactor: use Map for windowProxies in window-setup.ts (#20600) 2019-10-17 15:07:27 +02:00
Electron Bot
e06b0aa73b Bump v8.0.0-nightly.20191016 2019-10-16 08:31:19 -07:00
Harendra Singh
db91673f23 docs: add example for taking screenshot (#20531) 2019-10-16 08:17:50 -07:00
Vlad Hashimoto
c73e34fb9e docs: remove class names from fiddle examples (#20596)
* docs: remove original class names in customize menus example

* docs: remove original class names in shortcuts example

* lint: run standard
2019-10-16 08:17:09 -07:00
Jeremy Apthorp
221ce70699 test: remove remote usage from chromium spec (#20568)
* test: move & expand webview -> window.open() opener tests

* remove remaining usage of 'protocol' from chromium-spec.js

* remove final usages of remote from chromium-spec

* remove import of window-helpers
2019-10-16 11:12:31 -04:00
Jeremy Apthorp
9055b5cf6d test: simplify node setInterval test (#20594) 2019-10-15 17:10:28 -07:00
Harendra Singh
93788e76e0 docs: add notification examples (#20528)
Refs #20442

Adds the basic notification and notification with custom image examples from electron-api-demos into runnable Fiddle examples.

Gist links to Fiddles (same as code submitted in this PR):
Basic Notification: https://gist.github.com/102945f83f559e7944797175d8fd8af4
Notification with image: https://gist.github.com/2688bf4bfc27ce02f5d74224828eb928

Co-Authored-By: Erick Zhao <erick@hotmail.ca>
2019-10-15 14:06:58 -07:00
Rik Theunis
16d4ace800 docs: add system get version info Fiddle example (#20536) 2019-10-15 11:17:04 -07:00
Milan Burda
5273930f76 refactor: use Map for callbacks in CallbacksRegistry (#20565) 2019-10-15 09:14:41 -07:00
Electron Bot
dceabf231b Bump v8.0.0-nightly.20191015 2019-10-15 08:31:28 -07:00
Cheng Zhao
1ecfcc8c70 chore: remove native_mate (Part 7) (#20561)
* refactor: use gin converters in api::Protocol

* refactor: convert JS constructor impl to gin

* refactor: use InitWithArgs helper

* fix: gin_helper::Dictionary should behave the same with mate

* fix cpplint warnings

* refactor: no more need to patch gin/dictionary.h
2019-10-15 10:15:23 +09:00
Electron Bot
6c6bff81ac chore: bump node to v12.10.0 (master) (#20129)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2019-10-14 15:46:10 -07:00
Jeremy Apthorp
8dad0c7aaa test: move crashReporter specs to the main process (#20417) 2019-10-14 14:38:54 -07:00
Milan Burda
eb100cdf9e test: skip desktopCapturer / remote module tests when the features are disabled (#20566) 2019-10-14 13:49:21 -07:00
Alexey Kuzmin
b085dac15b spec: allow "Yu Gothic" as a Japanese sans-serif font on Windows (#20564) 2019-10-14 14:30:18 -04:00
Erick Zhao
a7e26fdc61 docs: Update Issue Closure in CONTRIBUTING.md (#20545) 2019-10-14 09:40:01 -07:00
Jeremy Apthorp
d67f25ce43 test: expand window.opener test and move to main process (#20549) 2019-10-14 09:00:34 -07:00
Electron Bot
dfac05805d Bump v8.0.0-nightly.20191014 2019-10-14 08:30:58 -07:00
Jeremy Apthorp
6025ae7b12 fix: generate breakpad symbols before stripping (#20530)
* fix: generate breakpad symbols before stripping

* store symbols as circleci artifacts
2019-10-14 10:58:05 -04:00
Kerollos Magdy
8efa45d12d docs: fix minor grammar mistakes (#20521) 2019-10-14 14:35:52 +09:00
Jeremy Apthorp
1f44f47de1 test: move debugger spec to main process (#20514) 2019-10-14 14:32:11 +09:00
Robo
5c2c30142c fix: append network switches to network service process (#20546) 2019-10-13 18:21:41 -07:00
Electron Bot
5bd7b6ad50 Bump v8.0.0-nightly.20191013 2019-10-13 08:31:09 -07:00
Electron Bot
2cf64d0200 Bump v8.0.0-nightly.20191012 2019-10-12 08:32:39 -07:00
Jeremy Apthorp
2aa7ab821c test: remove some remote usage from chromium specs (#20121)
* test: remove remote usage from chromium specs

* disable tts test

* port navigator.mediaDevices tests

* fake camera and microphone

* Update spec-main/chromium-spec.ts

Co-Authored-By: John Kleinschmidt <jkleinsc@github.com>
2019-10-11 13:55:50 -07:00
Cheng Zhao
1b2c6a33b3 fix: do not manually parse content-type (#20538) 2019-10-11 14:54:50 -04:00
Jeremy Apthorp
67642312f4 test: remove remote usage from webFrame test (#20512) 2019-10-11 10:20:08 -07:00
Jeremy Apthorp
032353b14f test: remove remote usage from asar spec (#20513) 2019-10-11 09:56:51 -07:00
Electron Bot
d21519ed2e Bump v8.0.0-nightly.20191011 2019-10-11 08:31:51 -07:00
Jeremy Apthorp
50178d4836 test: remove more unused files (#20529) 2019-10-10 15:20:04 -07:00
Jeremy Apthorp
5d696c5c69 fix: return type of webview.printToPDF is now Uint8Array (#20505) 2019-10-10 11:25:11 -07:00
Jeremy Apthorp
01448e1235 chore: delete some unreferenced test files (#20511) 2019-10-10 11:24:06 -07:00
Shelley Vohr
812de5d3bf fix: properly register custom url evt handling (#20518) 2019-10-10 08:54:03 -07:00
Electron Bot
ec2c1db0e4 Bump v8.0.0-nightly.20191010 2019-10-10 08:31:27 -07:00
Milan Burda
b92163d226 refactor: take advantage of structured clone algorithm in the remote module (#20427) 2019-10-10 09:59:08 -04:00
Erick Zhao
c2e77e4429 docs: add Asynchronous Messages Fiddle example (#20441)
* docs: add Asynchronous Messages Fiddle example

* Update docs/fiddles/communication/two-processes/asynchronous-messages/main.js

Co-Authored-By: John Kleinschmidt <jkleinsc@github.com>

* Update docs/fiddles/communication/two-processes/asynchronous-messages/index.html

Co-Authored-By: John Kleinschmidt <jkleinsc@github.com>
2019-10-10 09:49:07 -04:00
Rik Theunis
ec87917f58 docs: add clipboard Fiddle examples (#20445)
* docs: add clipboard paste Fiddle example

* docs: add clipboard copy Fiddle example

* docs: add appropriate title to Fiddles

Co-Authored-By: John Kleinschmidt <jkleinsc@github.com>
2019-10-10 09:48:33 -04:00
Yaser
d1c5c760d0 docs: add Menu Shortcuts Fiddle example (#20466) 2019-10-10 09:47:50 -04:00
Yaser
9b4ba7993c docs: Adds Customize Menu section Fiddle example (#20468) 2019-10-10 09:47:34 -04:00
Jeremy Apthorp
1dc1ef6091 test: ensure cleanup of net requests in tests (#20510)
ref #19389
2019-10-10 14:14:41 +02:00
Jeremy Apthorp
8de925c4c2 test: move module tests to main process (#20419) 2019-10-09 16:33:15 -07:00
Jeremy Apthorp
df1d3156a0 docs: remove outdated document about updating chromium (#20490) 2019-10-09 16:07:15 -07:00
Jeremy Apthorp
c75c3ef616 docs: add a dev doc describing the patch system (#20489) 2019-10-09 14:48:09 -07:00
Milan Burda
bb2ab01f99 fix: when building with enable_plugins=false (#20354)
* fix: when building with enable_plugins=false

* build: exclude printing service to avoid patch

* build: update plugins patch from upstream
2019-10-09 19:59:37 +02:00
Jeremy Apthorp
2fad53e66b refactor: use v8 serialization for ipc (#20214)
* refactor: use v8 serialization for ipc

* cloning process.env doesn't work

* serialize host objects by enumerating key/values

* new serialization can handle NaN, Infinity, and undefined correctly

* can't allocate v8 objects during GC

* backport microtasks fix

* fix compile

* fix node_stream_loader reentrancy

* update subframe spec to expect undefined instead of null

* write undefined instead of crashing when serializing host objects

* fix webview spec

* fix download spec

* buffers are transformed into uint8arrays

* can't serialize promises

* fix chrome.i18n.getMessage

* fix devtools tests

* fix zoom test

* fix debug build

* fix lint

* update ipcRenderer tests

* fix printToPDF test

* update patch

* remove accidentally re-added remote-side spec

* wip

* don't attempt to serialize host objects

* jump through different hoops to set options.webContents sometimes

* whoops

* fix lint

* clean up error-handling logic

* fix memory leak

* fix lint

* convert host objects using old base::Value serialization

* fix lint more

* fall back to base::Value-based serialization

* remove commented-out code

* add docs to breaking-changes.md

* Update breaking-changes.md

* update ipcRenderer and WebContents docs

* lint

* use named values for format tag

* save a memcpy for ~30% speedup

* get rid of calls to ShallowClone

* extra debugging for paranoia

* d'oh, use the correct named tags

* apparently msstl doesn't like this DCHECK

* funny story about that DCHECK

* disable remote-related functions when enable_remote_module = false

* nits

* use EnableIf to disable remote methods in mojom

* fix include

* review comments
2019-10-09 13:59:08 -04:00
Electron Bot
c250cd6e7c Bump v8.0.0-nightly.20191009 2019-10-09 08:33:39 -07:00
Shelley Vohr
f80a17c5be feat: allow Linux/Windows users to set notification timeout (#20153)
* feat: allow Linux users to set notification timeout

* implement on windows
2019-10-09 11:22:21 -04:00
Cheng Zhao
5e11be6898 fix: cookies.get should be able to filter domain (#20471)
* fix: use GetAllCookies when url is empty

* test: get cookie without url
2019-10-09 15:57:40 +09:00
Jeremy Apthorp
ebd55c1147 fix: fix crash in crashReporter.getUploadedReports (#20428) 2019-10-08 16:35:28 -07:00
Richard Townsend
2ce90f8806 docs: add WoA cross-compilation instructions (#20244)
* docs: add WoA cross-compilation instructions

* docs: fixing lint issues

* docs: minor corrections

* style: Ssubstitute -> Substitute
2019-10-08 14:54:03 -07:00
Felix Rieseberg
b3e7657159 docs: Update the sccache name (#20462) 2019-10-08 17:46:01 -04:00
John Kleinschmidt
23066f8cce ci: verify CircleCI job number before returning job url (#20483) 2019-10-08 17:45:07 -04:00
Jaime Bernardo
de3c1fae7f build: fix build with Visual Studio 2019 (#20465) 2019-10-08 12:49:38 -07:00
Electron Bot
94ec4ecabe Bump v8.0.0-nightly.20191008 2019-10-08 08:32:37 -07:00
Shelley Vohr
c16a186de0 feat: improve TouchBarButton accessibility (#20454) 2019-10-08 11:13:57 -04:00
dependabot[bot]
8da9a3c416 build(deps): bump eslint-utils from 1.3.1 to 1.4.2 (#20481)
Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.3.1 to 1.4.2.
- [Release notes](https://github.com/mysticatea/eslint-utils/releases)
- [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.3.1...v1.4.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-10-08 11:06:52 -04:00
Shelley Vohr
8d9ba87e05 fix: properly free IsolateData in node_main (#20446) 2019-10-08 09:03:04 +02:00
Robo
c85648a8a1 fix: fs.watch() behavior change in node >= 10.16.0 (#20408)
This reverts the patch from https://github.com/electron/node/pull/100
which never got merged due to reasons outlined in https://github.com/libuv/libuv/pull/2313

* Adds new patches that backports https://github.com/libuv/libuv/pull/2459
  and https://github.com/libuv/libuv/pull/2460

Based on https://github.com/nodejs/node/issues/29460
2019-10-07 13:04:15 -07:00
ryanomor
0c87471c12 Fix typo (#20450) 2019-10-07 12:26:38 -04:00
Electron Bot
f3cf2566c1 Bump v8.0.0-nightly.20191007 2019-10-07 08:32:42 -07:00
Shelley Vohr
9b534e9aab fix: enable worker threads (#20416) 2019-10-07 11:30:10 +02:00
John Kleinschmidt
3f72f07a7f test: remove unneeded console.log (#20424)
(cherry picked from commit 4945a9fce9)
2019-10-06 22:00:38 +02:00
Electron Bot
e26fa9090d Bump v8.0.0-nightly.20191006 2019-10-06 08:33:20 -07:00
Stian Jørgensrud
39d19d23d1 Add unsafe-inline (#20414)
Versions didn't show and I was getting errors in the Developer Tools: `Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self'"`. The cause is probably that Chrome has implemented extra security since this tutorial was created. Added 'unsafe-inline' and it works.
2019-10-06 12:24:24 +02:00
Erick Zhao
0a09f27735 chore: empty folder structure (#20439) 2019-10-05 12:46:01 -05:00
Electron Bot
8dae38639a Bump v8.0.0-nightly.20191005 2019-10-05 08:31:32 -07:00
Jeremy Apthorp
87bd0501c4 test: remove 'remote' usage from process tests (#20418) 2019-10-04 13:58:44 -07:00
Milan Burda
ccff140046 feat: add --enable-api-filtering-logging commandline switch (#20335) 2019-10-04 10:49:09 -07:00
Electron Bot
e1eb9519f5 Bump v8.0.0-nightly.20191004 2019-10-04 08:31:45 -07:00
John Kleinschmidt
ad34d7fc32 Revert "test: remove unneeded console.log"
This reverts commit 4945a9fce9.
2019-10-04 11:17:58 -04:00
John Kleinschmidt
4945a9fce9 test: remove unneeded console.log 2019-10-04 11:05:49 -04:00
Andrew MacDonald
7f320eef0e docs: Minor fixes to build instructions (#20338)
* Minor fixes to build instructions

* Direct folks to the unit testing page.
2019-10-04 10:11:51 -04:00
Shelley Vohr
513c8536c0 refactor: implement sublabel fns in MenuModel (#20150) 2019-10-04 08:58:54 +02:00
Shelley Vohr
82ff142f9c chore: remove unused l10n_util includes (#20412) 2019-10-04 09:31:38 +09:00
Cheng Zhao
509587eb81 test: close window before destroying browserView (#20411) 2019-10-04 09:30:44 +09:00
Shelley Vohr
80af35e0cd chore: enable native unittesting (#20293) 2019-10-03 22:21:30 +02:00
Shelley Vohr
f054d5862c chore: remove upstreamed node_crypto CHECK patch (#20406) 2019-10-03 21:11:04 +02:00
Electron Bot
8a2ba597bb Bump v8.0.0-nightly.20191003 2019-10-03 08:32:50 -07:00
Shelley Vohr
e543fe702c fix: recentDocuments menu role on macOS (#20398) 2019-10-03 14:25:14 +09:00
Jeremy Apthorp
2470ef2e91 ci: enable crashReporter tests on mac (#19582) 2019-10-02 17:53:51 -07:00
Jeremy Apthorp
fe956f87ec ci: save pdb files for testing builds (#20407) 2019-10-02 14:52:55 -07:00
Electron Bot
1c0a21a8bc Bump v8.0.0-nightly.20191002 2019-10-02 08:32:04 -07:00
Milan Burda
2f03d393c3 feat: allow inspection of specific shared workers (#20389) 2019-10-02 14:38:27 +02:00
CezaryKulakowski
712d77dc8b fix: remove unnecessary patch (#20390)
Patch which this pr removes adds new version of
BrowserCompositorMac::GetCompositor. There is this function in
BrowserCompositorMac with specifier const. Chromium's function
returns parent's compositor if parent is set. Electron's version
doesn't and - as a result - constrained dialogs won't be displayed
correctly if they don't have its own compositor.
2019-10-02 13:59:42 +02:00
Milan Burda
bf978e09e4 fix: allow paths to asar archives to contain the .asar extension in directories (#20342) 2019-10-02 13:33:07 +09:00
Cheng Zhao
4ac4b34ae9 chore: remove native_mate (Part 6) (#20391) 2019-10-02 09:30:55 +09:00
bughit
01ed55ff02 docs: WebContents console-message event is emitted for offscreen windows (#20386)
since c3d11a51cc
2019-10-01 14:32:59 -04:00
Cheng Zhao
ef690c035d fix: correctly crash when there is no crashReporter (#20388)
* fix: correctly crash when there is no crashReporter

* test: correctly crash when there is crashReporter
2019-10-01 13:20:21 -04:00
Electron Bot
969b4d1dd3 Bump v8.0.0-nightly.20191001 2019-10-01 08:31:25 -07:00
Jeremy Apthorp
a9e695d05f test: move more web contents specs (#20099) 2019-09-30 15:00:47 -07:00
Jeremy Apthorp
b7b0992768 refactor: convert some more remote stuff to typescript (#20324) 2019-09-30 15:00:22 -07:00
Birunthan Mohanathas
d3922f95e6 fix: Make the --disable-color-correct-rendering switch work again (#20356)
This broke in Electron 6 due to some Chromium changes.

Test Plan:

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

Notes: Fix disabling color correct rendering with `--disable-color-correct-rendering`
2019-09-30 10:46:03 -07:00
Chris Hawkes
9457c796b1 Update application-architecture.md (#20370)
Updated the period to a comma.   Appears to be a number typo.
2019-09-30 13:41:58 -04:00
Electron Bot
37e34395de Bump v8.0.0-nightly.20190930 2019-09-30 08:32:02 -07:00
Electron Bot
4f815d8469 Bump v8.0.0-nightly.20190929 2019-09-29 08:31:20 -07:00
Electron Bot
e099edc2c2 Bump v8.0.0-nightly.20190928 2019-09-28 08:31:51 -07:00
Electron Bot
5e942cea8d Bump v8.0.0-nightly.20190927 2019-09-27 08:33:09 -07:00
Milan Burda
ead8f2bbcd fix: BrowserWindow.fromWebContents() can return null (#19983) 2019-09-27 13:07:55 +02:00
Electron Bot
efe6e7b04d Bump v8.0.0-nightly.20190926 2019-09-26 08:33:14 -07:00
Jeremy Apthorp
cc0312567e chore: update strip-binaries for moved swiftshader.so (#20341) 2019-09-26 10:48:53 -04:00
Jeremy Apthorp
593f1774e9 fix: backport Node nested microtask fix (#20303) 2019-09-25 17:38:50 -04:00
Electron Bot
0653e31767 Revert "Bump v8.0.0-nightly.20190925"
This reverts commit b18fb96ecf.
2019-09-25 08:37:31 -07:00
Electron Bot
b18fb96ecf Bump v8.0.0-nightly.20190925 2019-09-25 08:32:11 -07:00
Daniel Zwelling
26d9ef9403 docs: update selenium docs (#20336) 2019-09-24 13:36:09 -07:00
Samuel Attard
c32bea5ae0 build: run publish jobs in the secure context and enable sccache (#20326) 2019-09-24 13:52:06 -04:00
Mike Pelley
7f0ec3091e Replace workspaceRoot with workspaceFolder. (#20306)
workspaceRoot has been deprecated as per https://code.visualstudio.com/docs/editor/variables-reference#_why-isnt-workspaceroot-documented
2019-09-24 13:49:04 -04:00
Electron Bot
597a8b5ec7 Bump v8.0.0-nightly.20190924 2019-09-24 08:31:12 -07:00
Electron Bot
c25f0a1779 Bump v8.0.0-nightly.20190923 2019-09-23 08:31:45 -07:00
Electron Bot
bac15ef86f Bump v8.0.0-nightly.20190922 2019-09-22 08:32:05 -07:00
Electron Bot
297b81fa1d Bump v8.0.0-nightly.20190921 2019-09-21 08:31:38 -07:00
Electron Bot
913ec1e0d0 chore: bump chromium to 0239d631f03d0111f77b0b98c7765 (master) (#20285) 2019-09-21 10:51:28 -04:00
Milan Burda
d090b0cd2d perf: only access remote module when <webview>.getWebContents() is called (#20272) 2019-09-20 08:54:16 -07:00
Electron Bot
1e0b87732f Bump v8.0.0-nightly.20190920 2019-09-20 08:32:01 -07:00
Jeremy Apthorp
9abdfc11a9 test: remove usage of remote module from node tests (#20103)
* test: remove usage of remote module from node tests

* isTTY is undefined in the renderer process on all platforms

* Update spec/node-spec.js

* Update node-spec.js
2019-09-20 10:41:40 -04:00
Shelley Vohr
ae6f08d56e fix: correct 'Entire screen' to ' Entire Screen' (#20276) 2019-09-20 10:16:47 -04:00
Felix Rieseberg
26014d19e1 docs: Add Notification API to docs (#20290) 2019-09-19 23:30:01 -07:00
Jeremy Apthorp
e83c299454 test: move ipcRenderer spec to main runner (#20093) 2019-09-19 16:35:05 -04:00
Milan Burda
b136819371 refactor: move GetCursorBlinkInterval() to a helper function (#20060) 2019-09-19 11:43:21 -07:00
John Kleinschmidt
c46a386970 ci: Fix build failures on linux nightly release tests (#20287) 2019-09-19 12:37:54 -04:00
John Kleinschmidt
6f2fe7560a ci: actually kill leftover processes on WOA testing (#20286) 2019-09-19 11:35:31 -04:00
Electron Bot
e459114149 Bump v8.0.0-nightly.20190919 2019-09-19 08:31:13 -07:00
Cheng Zhao
624ba4f642 chore: remove native_mate (Part 5) (#20264)
* deprecate native_mate/native_mate/object_template_builder.h

* add gin_helper/object_template_builder.h

* add patch to avoid ambiguous error

* remove usage of object_template_builder_deprecated.h in a few files

* add note we should remove gin_helper/object_template_builder.h in future
2019-09-19 08:09:15 -07:00
Charles Kerr
63f08fcdb0 fix: use coordinate offsets in ShowAutofillPopup (#20232)
* fix: use coordinate offsets in ShowAutofillPopup

* fix: silence coord int->float narrowing conversion

Minor fix to silence clang-tidy warning about implicit range narrowing.
Not a huge deal but the revision is also easier to read.

clang-tidy: bugprone-narrowing-conversions
2019-09-19 08:05:57 -07:00
Gellert Hegyi
3f5833ce5d fixes widget host fetching from render view host (#20239) 2019-09-19 05:47:12 -04:00
Shelley Vohr
ffe2182883 feat: set urgency on linux notifications (#20152) 2019-09-18 22:35:20 -07:00
Shelley Vohr
e510af77b2 docs: improve and add examples for clipboard (#20224)
* docs: improve and add examples for clipboard

* address feedback from jkleinsc review
2019-09-18 16:00:43 -07:00
John Kleinschmidt
afc59aefb7 ci: only kill WOA processes if they are running (#20274) 2019-09-18 16:44:48 -04:00
Shelley Vohr
b0fe3e20e6 fix: reset capturers at the very end (#20270) 2019-09-18 16:20:41 -04:00
Electron Bot
eb2d2264d0 chore: bump chromium to 63be48daea281d4f8c834c2e707a7 (master) (#19923) 2019-09-18 15:58:00 -04:00
John Kleinschmidt
104088b86b ci: Fix triggering CircleCI release builds (#20275)
* ci: fix circleCI handling of booleans

* Explicitly specify 2.1
2019-09-18 15:53:54 -04:00
Milan Burda
11cd0db86b build: add enable_remote_module build flag (#19821) 2019-09-18 09:52:06 -07:00
Electron Bot
8bf74164e2 Bump v8.0.0-nightly.20190918 2019-09-18 08:31:27 -07:00
John Kleinschmidt
eaa18041e1 ci: use CircleCI 2.1 config and v2 APIs (#20245)
* ci: use circleci 2.1

* Check for pipeline status and add comments
2019-09-17 14:48:02 -04:00
loc
d2a94e6b13 fix: free screen and window capturers immediately after we're finished with them (#20156)
fix #17937, #19908
2019-09-17 09:48:31 -07:00
John Kleinschmidt
42999f42f2 build: add WOA node headers to checksum file (#20255) 2019-09-17 12:38:36 -04:00
Electron Bot
dfd2135647 Bump v8.0.0-nightly.20190917 2019-09-17 08:32:25 -07:00
Tony Stark
7c45c2fdef fix: strip chrome-sandbox typo (#20227) 2019-09-17 10:51:25 -04:00
Erick Zhao
2cac40444b docs: clarify VS installation instructions for Windows builds (#20236)
* docs: note required step for VS in Windows build

* docs: add instructions for custom VS location

* lint?

* link chromium docs
2019-09-17 10:23:56 -04:00
Samuel Attard
f566e562a3 build: remove .only 2019-09-16 16:08:41 -07:00
Samuel Attard
0e61709fa7 fix: emit updated on NativeTheme on the UI thread to avoid DCHECK (#20137)
* fix: emit updated on NativeTheme on the UI thread to avoid DCHECK

* Update atom_api_native_theme.cc

* spec: wait a few ticks for async events to emit so that test events do not leak into each other
2019-09-16 16:08:01 -07:00
Charles Kerr
2b316f3843 refactor: run clang-tidy (#20231)
* refactor: clang-tidy modernize-use-nullptr

* refactor: clang-tidy modernize-use-equals-default

* refactor: clang-tidy modernize-make-unique

* refactor: omit nullptr arg from unique_ptr.reset()

As per comment by @miniak
2019-09-16 18:12:00 -04:00
Samuel Attard
660e566201 fix: don't expose nativeTheme in the renderer process (#20139)
Exposing these in the renderer didn't make sense as they weren't backed
by the same instance / value store.  This API should be browser only
especially now that we have nativeTheme.themeSource.  Exposing in
//common was a mistake from the beginning.
2019-09-16 14:23:13 -07:00
Samuel Attard
999f7df158 build: speed up linux CI even more (#20241)
* build: yolo a theoretical speed improvement

* chore: persist src/electron and friends for testing purposes

* build: do not generate dist.zip on debug builds

* chore: ensure licenses and version file exist for zip-symbols script
2019-09-16 09:31:08 -07:00
Electron Bot
816bc5c8a7 Bump v8.0.0-nightly.20190915 2019-09-15 08:31:55 -07:00
Electron Bot
99f1b96c4f Bump v8.0.0-nightly.20190914 2019-09-14 08:31:07 -07:00
Felix Rieseberg
334ea36f38 docs: Add recent Electron version to security checklist (#20206)
* docs: Add recent Electron version to security checklist

* Update docs/tutorial/security.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>

* Update docs/tutorial/security.md

Co-Authored-By: Pedro Pontes <pepontes@microsoft.com>

* Update docs/tutorial/security.md

Co-Authored-By: Mark Lee <malept@users.noreply.github.com>
2019-09-13 21:12:14 -04:00
Electron Bot
c485c1e4b0 Bump v8.0.0-nightly.20190913 2019-09-13 08:31:01 -07:00
Charles Kerr
b2652beceb refactor: apply some 'clang-tidy -fix' changes (#20172)
* refactor: fix clang-tidy vector operation warnings

Fix vector population performance-inefficient-vector-operation warnings
generated by clang-tidy

* refactor: fix clang-tidy emplace_back warnings

In cases where a temporary is created to be passed
to push_back(), replace it with emplace_back().

Warning: modernize-use-emplace

* refactor: fix clang-tidy loop iteration warnings

When practical, use range-based for loops instead of C-style for loops.

clang-tiny check: modernize-loop-convert

* refactor: fix clang-tidy string initialize warning

Remove redundant empty string initialization.

clang-tidy check: readability-redundant-string-init
2019-09-13 10:26:59 -04:00
Shelley Vohr
3ec17a88ba fix: crash when exiting simple fullscreen on macOS (#20144) 2019-09-12 13:38:16 -04:00
Electron Bot
5dee8a5717 Bump v8.0.0-nightly.20190912 2019-09-12 08:32:04 -07:00
Electron Bot
ace0284eef Bump v8.0.0-nightly.20190911 2019-09-11 08:31:12 -07:00
John Kleinschmidt
5ccc043d86 build: handle arm64 node headers (#20192)
* build: handle arm64 node headers

(cherry picked from commit ff1f224d96)

* node.lib for arm64 needs to go to specific dir
2019-09-10 14:14:58 -07:00
John Kleinschmidt
fd31a99ef0 Revert "build: handle arm64 node headers"
This reverts commit ff1f224d96.
2019-09-10 15:18:55 -04:00
John Kleinschmidt
ff1f224d96 build: handle arm64 node headers 2019-09-10 15:15:20 -04:00
Electron Bot
0b26d7a0e2 Bump v8.0.0-nightly.20190910 2019-09-10 08:31:47 -07:00
Electron Bot
5f59c6ddfe Bump v8.0.0-nightly.20190909 2019-09-09 08:32:20 -07:00
Shelley Vohr
a9f2a52ce0 build: specific line with trailing whitespace (#20155) 2019-09-09 06:15:24 -07:00
Electron Bot
d84e2e3972 Bump v8.0.0-nightly.20190908 2019-09-08 08:31:31 -07:00
Cheng Zhao
49bd74ff0e chore: remove native_mate (Part 4) (#20146)
* avoid patching gin::Dictionary by using our wrapper

* remove SetHidden from mate::Dictionary
2019-09-09 00:10:18 +09:00
Samuel Attard
d395799917 build: get all the release assets when looking for one to delete (#20157)
* build: get all the release assets when looking for one to delete

yeah we totally have more than 30....

* Update upload-to-github.js
2019-09-07 14:48:35 -07:00
Electron Bot
6e9a23a884 Bump v8.0.0-nightly.20190907 2019-09-07 08:33:10 -07:00
Electron Bot
0979fb7eee Bump v8.0.0-nightly.20190906 2019-09-06 13:07:01 -07:00
Samuel Attard
9ab06af786 Revert "Bump v8.0.0-nightly.20190906"
This reverts commit 432ae81823.
2019-09-06 13:05:43 -07:00
Shelley Vohr
6087f89aac refactor: use base::StringPiece over std::string (#20119) 2019-09-06 09:05:12 -07:00
Electron Bot
432ae81823 Bump v8.0.0-nightly.20190906 2019-09-06 08:31:28 -07:00
Cheng Zhao
2c23e44ed9 chore: remove native_mate (Part 3) (#20131)
* use gin converter in atom_api_menu

* please only put necessary includes in header

Having include in header means they have dependency relationship,
putting arbitrary includes really really really really really makes
refacoring much harder.

* remove some simple uses of callback_converter_deprecated.h

* use gin callback converter in file_dialog code

* use gin in ErrorThrower

* use gin in atom_bundle_mover

* fix mistake in node stream

* deprecate native_mate version of event_emitter_caller

* use gin in node_bindings

* remove usages of native_mate event_emitter_caller.h except for EventEmitter

* fix compilation on Windows

* gin::Arguments behaves differently on GetNext

* just use StringToV8
2019-09-06 14:52:54 +09:00
John Kleinschmidt
7be1905023 fix: resolve crash loading file based serviceworkers (#20132) 2019-09-06 10:01:22 +09:00
Shelley Vohr
20e3c519dd fix: ensure popup and closepopup are posted in order (#20114) 2019-09-05 16:37:09 -04:00
Charles Kerr
8a0a41b9ef docs: fix BrowserWindow options.hasShadow platform (#20038)
The docs claimed this is only available on macOS; however, Linux and Win
got this feature in 239bfe970c
2019-09-05 16:04:07 -04:00
Steven Barbaro
93da8e2b3d fix: Debug builds on Windows. (#20117) 2019-09-05 12:38:56 -07:00
John Kleinschmidt
196fceabdb build: don't wait until job requests return in case some jobs fail to return (#20133) 2019-09-05 13:57:47 -04:00
Samuel Attard
0d16be9560 feat: add nativeTheme.themeSource to allow apps to override Chromiums theme choice (#19960)
* feat: add nativeTheme.shouldUseDarkColorsOverride to allow apps to override Chromiums theme choice

* spec: add tests for shouldUseDarkColorsOverride

* chore: add missing forward declarations

* refactor: rename overrideShouldUseDarkColors to themeSource

* chore: only run appLevelAppearance specs on Mojave and up

* chore: update patch with more info and no define

* Update spec-main/api-native-theme-spec.ts

Co-Authored-By: Jeremy Apthorp <jeremya@chromium.org>

* Update api-native-theme-spec.ts

* Update api-native-theme-spec.ts

* Update api-native-theme-spec.ts
2019-09-05 10:57:04 -07:00
Samuel Attard
137622931b fix: ensure document.visibilityState aligns with the visibility of the TopLevelWindow (#19988)
* fix: ensure document.visibilityState aligns with the visibility of the
TopLevelWindow

* chore: disable the specs on linux on CI
2019-09-05 10:56:06 -07:00
Electron Bot
cd096289e9 Bump v8.0.0-nightly.20190905 2019-09-05 08:37:04 -07:00
Jeremy Apthorp
88e32ef231 test: move robotjs-based devtools paste test to main runner (#20095) 2019-09-04 14:44:13 -07:00
Cem Schemel
bff16e027a docs: Improve wording of setBrowserView and getBrowserView (#20065)
* Improve wording of setBrowserView and getBrowserView

* Update wording based on feedback
2019-09-04 14:19:49 -07:00
Jeremy Apthorp
a453f2ae6c test: fix test for desktopCapturer preventDefault (#20100) 2019-09-04 13:54:40 -07:00
Samuel Attard
8b523cf88a fix: ensure modeL_ exists before calling delegate methods (#20111)
This is a speculative fix for a crash we are seeing in `menuDidClose`.  We
can't repro the crash but the traces have it happening in this method
and just by reading through the impl the only part that jumps out as
Might Crash is this `model_` call.  Other methods in the menu controller
check `model_` before using it so it probably makes sense to do that here
as well.
2019-09-04 13:42:23 -07:00
John Kleinschmidt
65ebb6e547 build: add WOA release to list of releases (#20094)
* build: add WOA release to list of releases

* Add job count info for sudowoodo

* Add verification of all assets

* Fix linting and add logic to wait before printing out results
2019-09-04 14:24:46 -04:00
Jeremy Apthorp
c29e4b096d test: tsify deprecate spec (#20089) 2019-09-04 11:13:37 -07:00
Jeremy Apthorp
8cdfd30ba5 test: remove usage of remote in shell.openExternal test (#20101) 2019-09-04 11:12:31 -07:00
Cheng Zhao
81ae154714 chore: remove native_mate (Part 2) (#20106)
* add notice to files being removed

* add gin version of function_template.h

* rename callback.h to avoid confliction

* add gin version of callback_converter

* add gin converter for OnceCallback

* remove callback_converter_gin_adapter.h

* remove gin_util.h and gin_utils.h

* fix lint warning

* add helper for setting methods
2019-09-04 08:45:25 -07:00
Electron Bot
504cdb13f0 Bump v8.0.0-nightly.20190904 2019-09-04 08:32:24 -07:00
Cheng Zhao
b601f3a031 chore: remove native_mate (Part 1) (#20085)
* move Destroyable utilities out of native_mate

* do not set "destroy" in ObjectTemplateBuilder

* remove ObjectTemplateBuilder::MakeDestroyable

* do not pollute gin namespace

* add more comments

* remove hack of Arguments
2019-09-04 11:14:16 +09:00
Cheng Zhao
96b42bddb8 fix: implement ses.getBlobData() for NetworkService (#20041)
* pass data pipe to JS

* implement reading buffer

* re-enable ses.getBlobData test

* remove AtomBlobReader
2019-09-04 07:54:14 +09:00
Samuel Attard
cc9436f288 chore: add SetGTKDarkThemeEnabled(enabled) internal helper to allow dynamic theme selection on linux (#19964)
This is just a after-creation setter for the `darkTheme` constructor option.  This is delibrately
a method and not a property as there is no getter.
2019-09-03 12:59:48 -07:00
John Kleinschmidt
bedc5f7da9 ci: run tests on WOA hardware (#20031)
* ci: run tests on WOA hardware

* Temporarily disable test until #20008 is resolved

* deterministically run tests in sorted order
2019-09-03 13:13:06 -04:00
Jeremy Apthorp
96c3fec855 test: remove usage of 'remote' module from webview spec (#20048) 2019-09-03 10:10:58 -07:00
Jeremy Apthorp
cad73732c0 test: move chrome extensions spec to main runner (#20030) 2019-09-03 10:10:33 -07:00
Electron Bot
39475f9404 Bump v8.0.0-nightly.20190903 2019-09-03 08:32:24 -07:00
Jeremy Apthorp
8589ab27a4 fix: strip chrome_sandbox executable (#20049) 2019-09-03 16:17:18 +09:00
Jeremy Apthorp
f537366387 test: move security warnings spec to main runner (#20055) 2019-09-03 16:02:22 +09:00
Jeremy Apthorp
d7161742d2 test: move content-script tests to main runner (#20056) 2019-09-03 16:01:42 +09:00
Jeremy Apthorp
6e88b6b445 test: move desktopCapturer spec to main runner (#20057) 2019-09-03 15:59:54 +09:00
Electron Bot
614079654c Bump v8.0.0-nightly.20190902 2019-09-02 08:34:32 -07:00
Electron Bot
51015c5b48 Bump v8.0.0-nightly.20190901 2019-09-01 08:31:00 -07:00
Samuel Attard
c621a36320 fix: ensure that the "top" coordinate of the inner frame is correct (#20051)
On multi-monitor setups where the monitors are not all origined at 0 on
the Y coordinate (E.g. vertical stacked monitors) the maximize
calculation was incorrect as it assumed top was "0".  This instead
adjusts the math to calculate the correct top value.
2019-08-30 15:45:59 -07:00
ipoint-pgerhard
e37ad09330 docs: Update boilerplates-and-clis.md (#19975)
Updated boilerplates-and-clis.md in order to more accuratly represent the current availability of templates in electron forge
2019-08-30 15:40:37 -05:00
Shelley Vohr
bfe256891c build: add gn-check to precommit linting (#19850) 2019-08-30 10:37:02 -07:00
Dave Jeffery
0f5ff1f5bb docs: clarify app.setName() effects (#19893)
* Document that `app.setName()` has no effect in Mac environments

* docs: add note to clarify `app.setName()` functionality

* Update app.md
2019-08-30 10:30:38 -07:00
Electron Bot
e96a042223 Bump v8.0.0-nightly.20190830 2019-08-30 08:32:04 -07:00
Shelley Vohr
5cbbd489d5 fix: honor cursor blink rate (#20020)
* fix: honor cursor blink rate on macOS

* fix: honor cursor blink rate on Linux

* fix: honor cursor blink rate on Windows

* refactor: clean up os_win cursor blink logic

* remove unneeded include
2019-08-30 09:39:46 -05:00
Jeremy Apthorp
805a55099b test: tsify more web contents specs (#19969)
* test: tsify more WebContents specs

* getFocusedWebContents

* setDevToolsWebContents, isFocused, isCurrentlyAudible

* getWebPreferences, openDevTools

* before-input-event

* zoom-changed

* sendInputEvent

* insertCSS

* startDrag

* focus, getOSProcessId

* zoom api

* more closeAllWindows

* fix detached dev tools test

* fix zoom-changed test

* compare the correct kind of id 🤦‍♂️

* 'fix' openDevTools test to wait for multiple focus events

* fix tests? 🤞

* use request instead of blur to detect openExternal success

* try not timing out the keychain for testing

* use blur event on mac, sigh

* oh, right, still gotta open an actual url
2019-08-29 19:45:41 -05:00
Samuel Attard
654338693f fix: Revert "fix: make sure that menu bar gets focus even when you click an item to focus it first (#19710)" (#20019)
This reverts commit 27b2747b61.
2019-08-29 15:06:39 -07:00
Shelley Vohr
a9e3dabc8a build: accidentally inverted a bool (#20029) 2019-08-29 11:11:10 -07:00
Jeremy Apthorp
609403fba6 test: tsify affinity spec (#19961) 2019-08-29 09:59:27 -07:00
Electron Bot
6b55584923 Bump v8.0.0-nightly.20190829 2019-08-29 08:31:27 -07:00
Shelley Vohr
81e6f317c9 chore: improve smoke test for tray (#19991) 2019-08-29 08:07:02 -07:00
Shelley Vohr
7d4e0ad7b0 build: simplify unicode console output (#20017) 2019-08-29 10:46:54 -04:00
Tomáš Hübelbauer
35ebbb5f6e docs: add a CSP meta tag to make the tutorial compliant with the security checklist (#19819)
I've asked #19775 because I was frustrated with how hard it was to find a way to fix (instead of hide) the CSP warning in Electron and I complained that even the official quick start guide wasn't compliant with the security checklist at https://electronjs.org/docs/tutorial/security. Someone helped me out with a CSP meta tag which I have later noticed is indeed mentioned in the checklist, too: https://electronjs.org/docs/tutorial/security#csp-meta-tag. I have not used the checklist one verbatim because it prevents a `script` tag from working when serving `index.html` through the `file:` protocol as the quick start does. I instead used the one the person in my issue recommended which seems to work well to me. I am not that well versed in CSP so there might be a better policy to include with the quick start, but this is what I've got for now.
2019-08-29 17:06:51 +09:00
Jeremy Apthorp
c819fbe852 test: move WebContentsView spec (#19990) 2019-08-29 16:17:44 +09:00
Alexey Kuzmin
c03288f458 chore: add missing includes (#20003) 2019-08-29 15:57:11 +09:00
Jeremy Apthorp
90d62e5b98 fix: nws13n: make ses.setUserAgent work (#20014)
* refactor tests to better control window creation

* fix: nws13n: make ses.setUserAgent work
2019-08-29 15:50:14 +09:00
Cheng Zhao
b3947d6a83 chore: cache URLLoaderFactory per-session (#19998)
* cache the URLLoaderFactory in AtomBrowserContext

* use cached loader factory in AtomURLLoaderFactory
2019-08-29 15:07:46 +09:00
Milan Burda
eed72c35d7 feat: add session.downloadURL() (#19889) 2019-08-28 20:27:20 -07:00
Jeremy Apthorp
79e936aea8 test: fix clearAuthCache test (#20015) 2019-08-28 17:43:12 -07:00
Milan Burda
01fdb80f7c refactor: implement isRemoteModuleEnabled via getLastWebPreferences() (#19220) 2019-08-28 15:57:03 -07:00
Shelley Vohr
04debd5890 build: add test runner parameter checks (#19994) 2019-08-28 15:19:52 -07:00
Jeremy Apthorp
af138dab55 test: move webRequest spec to main runner (#19992) 2019-08-28 13:56:15 -07:00
Jeremy Apthorp
f212ed85dd test: tsify sub-frames spec (#19965) 2019-08-28 13:55:01 -07:00
Jeremy Apthorp
99de0975c3 test: tsify powerMonitor spec (#19963) 2019-08-28 13:54:50 -07:00
Jeremy Apthorp
41d8247ffc test: tsify internal-spec (#19962) 2019-08-28 13:54:42 -07:00
Charles Kerr
217ed9aabc fix: gtk_init() called 2x in AtomBrowserMainParts (#19986)
Fixes #19984.
2019-08-28 12:36:03 -05:00
Shelley Vohr
538c4763cf chore: remove unused config files (#19997) 2019-08-28 09:18:49 -07:00
Electron Bot
3bc5302d78 Bump v8.0.0-nightly.20190828 2019-08-28 08:31:11 -07:00
Charles Kerr
987300c97a refactor: omit redundant map searches (#19929)
* refactor: don't walk maps twice to remove elements

* refactor: don't walk maps twice to read elements

* refactor: don't walk maps twice to insert elements

* refactor: don't walk map 3x on UvTaskRunner timeout

* refactor: more don't-walk-maps-twice cleanup

* fixup! refactor: don't walk maps twice to insert elements

* refactor: don't walk containers twice when erasing

* refactor: omit excess lookups in RemoteObjectFreer
2019-08-28 09:39:21 -05:00
Heilig Benedek
27ce6a9cd3 fix: handle WM_GETMINMAXINFO instead of letting chromium do it (#19928)
* fix: remove WM_GETMINMAXINFO workaround since it's no longer needed

* fix: handle WM_GETMINMAXINFO ourselves

* fix: remove part of the chromium WM_GETMINMAXINFO handler
2019-08-28 09:34:34 +09:00
Jeremy Apthorp
832c926712 fix: allow unsandboxed renderers to request new privileges (#19953)
* fix: allow unsandboxed renderers to request new privileges

* add test
2019-08-27 18:35:46 -04:00
Marat Abdullin
ae9424d93a feat: add "accessibleTitle" property to a BrowserWindow instance (#19698)
Sometimes it's necessary to convey more information about the window to screen reader users only (simply putting everything to the window title might be unnecessarily noisy).

For example, Chromium uses that technique to tell screen reader users that the window is in incognito mode (the incognito window looks differently and doesn't have «incognito» in the title, but for blind users the screen reader will announce that it's incognito).
2019-08-28 00:35:34 +02:00
Jeremy Apthorp
1dcda7b809 chore: DCHECK for correct thread in EventEmitter::EmitWithSender (#19959) 2019-08-27 15:15:52 -07:00
Jeremy Apthorp
bdc84d0bfb test: tsify session spec (#19604) 2019-08-27 14:55:19 -07:00
Jeremy Apthorp
4b8e1588b4 fix: remove unused header from extensions-only file (#19947) 2019-08-27 10:59:22 -07:00
Cheng Zhao
4eee71ffbf feat: migrate webRequest module to NetworkService (Part 9) (#19976)
* no need to get WebContents for URLLoaderFactory

* consult embedder for network_factory created in net module

* set disable_web_security to false

* re-enable webRequest tests in net module
2019-08-27 09:12:33 -07:00
Electron Bot
bdb20d53cb Bump v8.0.0-nightly.20190827 2019-08-27 08:31:13 -07:00
Charles Kerr
7e61cd0dfb fix: i18n of gtk msgbox buttons (#19904)
* fix: i18n of gtk msgbox buttons

similar to #19756 (12df0e8) but for messageboxes

* refactor: DRY the gtk+ button mnemonics

* fix: don't compile gtk_util on non-Linux platforms

rename from `gtk_util.[cc,h]` to `util_gtk.[cc,h]` so that it gets
picked up by the `extra_source_filters` rule in `BUILD.gn`.

* fix: make linter happy

It really shows that I cannot build locally atm... :P
2019-08-27 09:57:12 -05:00
Electron Bot
2542c51c48 chore: bump node in DEPS to v12.9.1 (#19980) 2019-08-27 07:51:28 -07:00
Jeremy Apthorp
92c3a4e4c2 test: tsify spec for experimental views api (#19966) 2019-08-27 16:37:30 +09:00
Samuel Attard
4e809f0048 fix: ensure that reloads retain modified window background colors (#19967) 2019-08-26 23:14:23 -07:00
Heilig Benedek
d04072d1eb fix: don't call SetBounds on restore (#19886) 2019-08-26 14:04:20 -07:00
Kuts Alexey
cddbddc543 feat: HTTP preconnect feature minimal for electronjs (#18671) 2019-08-26 09:47:32 -07:00
Electron Bot
c57db7f163 Bump v8.0.0-nightly.20190826 2019-08-26 08:32:02 -07:00
Milan Burda
94c6b256de refactor: simplify ShowSaveDialog, make consistent with ShowOpenDialog (#19924) 2019-08-26 13:12:09 +02:00
Heilig Benedek
f6c523db13 fix: adjust window size in NCCALCSIZE instead of adding insets (#19883) 2019-08-26 10:03:57 +09:00
Charles Kerr
080fdb3817 fix: command-line scheme switch values' spillover (#19912)
* fix: command-line scheme switch values' spillover

The value of one of the scheme command-line switches
shouldn't spill over into other switches.

Fixes #19911

* chore: make linter happy
2019-08-26 09:40:44 +09:00
Milan Burda
181f663cf1 refactor: use C++11 member initializers in native_mate (#19925) 2019-08-26 09:16:28 +09:00
Electron Bot
1eda92859f Bump v8.0.0-nightly.20190825 2019-08-25 08:31:03 -07:00
Electron Bot
f54bc1cb2e Bump v8.0.0-nightly.20190824 2019-08-24 08:31:28 -07:00
Electron Bot
b7d25ccb77 chore: bump chromium to 62327c655093c821aa0fcfc6db53f5fd943e08c7 (master) (#19792)
* chore: bump chromium in DEPS to f3bf493731e868e1f5f48e7e1adc02ea5eccfbbd

* chore: bump chromium in DEPS to 4db0c87d4aa6f27ffa0b5fc77d20e10047962484

* chore: bump chromium in DEPS to d933a504c264dc8fe85267f47aef3588531875b5

* chore: bump chromium in DEPS to 34afdb68980f581ae911b85b727bc17e126cf5f9

* update disable-redraw-lock.patch

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

* update desktop_media_list.patch

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

* update notification_provenance.patch

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

* update printing.patch

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

* update verbose_generate_bpad_syms.patch

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

* update patch metadata

* remove printing_compositor manifests

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

* update for URLLoaderFactoryType enum

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

* remove gin string16 converter

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

* ClearCompositorFrame() has been removed

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

* message_loop -> message_loop_current

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

* include resource_response header

* pdf compositor no longer uses service manager

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

* chore: bump chromium in DEPS to 00d5933101d8d8dc9546eadbe7ee1b41077e6db1

* pane focus fns aren't pure virtual anymore

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

* fix: make std::hash value-non-const

broken by https://chromium-review.googlesource.com/c/chromium/src/+/1711202

* update swiftshader in zip_manifests

https://swiftshader-review.googlesource.com/c/SwiftShader/+/34911

* address feedback from @deepak1556

* don't enable kLegacyWindowsDWriteFontFallback

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

* chore: bump chromium in DEPS to 84497314005e1968da06804f8fde539d9872310e

* update printing.patch

remove bottom diff owing to https://chromium-review.googlesource.com/c/chromium/src/+/1678182 and update for https://chromium-review.googlesource.com/c/chromium/src/+/1678182

* convert CookieChangeListener to new Mojo types

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

* rename ui::ClipboardType -> ui::ClipboardBuffer

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

* logging::LoggingSettings log_file -> log_file_path

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

* roll DEPS to latest lkgr

* fix: override GetFontLookupTableCacheDir()

When Chromium goes to use its fallback font table creation code paths,
it creates the cache directory it uses by calling
GetFontLookupTableCacheDir() with a path that doesn't exist in Electron.
To ensure that a legitimate file path is created, we need to override it
with Electron's DIR_USER_DATA so it doesn't use chrome::DIR_USER_DATA.

* chore: bump chromium in DEPS to 6758a0879931bc4df630a80a36c82d7855ae3155

* update pthread_fchdir patch

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

* update printing patch

* update cookie usage and fn signatures

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

* chore: bump chromium in DEPS to bdaca97e1cc27fb977e56f30f74cdb906da9527e

* remove fix_make_std_hash_value-non-const.patch

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

* Convert enum to enum class for FocusManager::FocusChangeReason

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

* roll DEPS to latest lkgr

* update dom_storage_limits.patch

https://chromium-review.googlesource.com/c/chromium/src/+/1767556
2019-08-23 18:14:23 -07:00
Shelley Vohr
c89debd19a refactor: use Error util when only throwing errors (#19837) 2019-08-23 15:49:54 -07:00
Charles Kerr
ef6d4a46c2 chore: make apply_all_patches.py work in both python2 and python3 (#19872) 2019-08-23 15:48:27 -07:00
Milan Burda
81e9dab52f refactor: replace ipcRendererUtils.invoke() with ipcRendererInternal.invoke() (#19574) 2019-08-23 15:45:50 -07:00
Shelley Vohr
698120daf0 fix: crash on input file handler dialog (#19897)
* fix: crash on input file handler dialog

* invert cancellation logic
2019-08-23 14:18:30 -07:00
Samuel Attard
c61020e9d3 build: use a lower process count for publish builds with no sccache (#19913) 2019-08-23 14:01:12 -07:00
Electron Bot
6144408f3a Bump v8.0.0-nightly.20190823 2019-08-23 08:31:55 -07:00
Milan Burda
7825d043f2 refactor: unify module-list format and exports/electron (#19697) 2019-08-23 11:18:58 +02:00
Shelley Vohr
c6a8b7f959 docs: clarify dock.bounce usage (#19894) 2019-08-23 01:16:18 -07:00
Samuel Attard
6a3922d330 refactor: make util::Promise type safe when chaining in native (#19809)
* refactor: make util::Promise type safe when chaining in native

* fixup! refactor: make util::Promise type safe when chaining in native

* chore: remove spare brackets
2019-08-22 17:03:28 -07:00
loc
f7e3e1f97a fix: mitigate white screen flash after occlusion by disabling compositor recycling (#19873)
* fix: remove white screen flicker by disabling compositor recycling

* chore: disable spec whose flakiness was made obvious by this patch
2019-08-22 15:16:06 -07:00
Cheng Zhao
ab0bf6d238 fix: notify views of content view size change (#19878) 2019-08-22 14:16:56 -07:00
Electron Bot
6667969887 chore: bump node to v12.9.0 (master) (#19863)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2019-08-22 14:12:11 -07:00
Jaime Bernardo
12b00ca942 fix: extern Parse impl for Windows debug builds (#19876)
* fix: extern Parse impl for Windows debug builds

Applies a patch to node.
Externs node::options_parser::Parse implementation for
node::DebugOptions to fix the Windows Debug build.

* fixup: merge extern parse impl patch
2019-08-22 13:16:38 -07:00
Robert Nagy
1f43af5cea feat: add openbsd support in the node module (#19860) 2019-08-22 12:09:15 -07:00
Electron Bot
268094e0ef Bump v8.0.0-nightly.20190822 2019-08-22 08:31:04 -07:00
Heilig Benedek
9ccd6aa0dd feat: enable picture-in-picture mode for video tags (#17686)
* feat: enable picture in picture mode for video tags

* test: add test to verify picture in picture support

* lint: fix indent

* fix: clean up after rebase

* test: update test with 16:9 test video

* fix: .paches after rebase
2019-08-22 19:17:50 +09:00
John Kleinschmidt
46b6bcd99b chore: Update comment for desktop_capturer (#19848)
* chore: Update comment for desktop_capturer

* Guard TopLevelWindow::MoveAbove with ENABLE_DESKTOP_CAPTURER

* Fix lint errors
2019-08-21 15:16:43 -07:00
John Kleinschmidt
4bc7b3b1a4 build: start building Windows on Arm builds (#19780)
* build: add zip manifest for Windows on Arm

* ci: add Windows On Arm testing

(cherry picked from commit 4064e1f4874ff7a37c52c2ad974f92418c7e71c4)

* Fix path to invoke CI on WOA hardware

* Explicitly call 7z.exe to unzip files

* Make sure GCLIENT_EXTRA_ARGS set for WOA builds get prepended on release build

* set proper arch for npm

* Try using Compress-Archive/Expand-Archive

* Revert "Try using Compress-Archive/Expand-Archive"

* disable woa hardware test for now
2019-08-21 17:37:30 -04:00
Shelley Vohr
5e525b3e0f fix: add default media usage strings to info.plist (#19871) 2019-08-21 13:14:25 -07:00
Samuel Attard
612e3f7ff7 build: optimize the CI path where we update the patch files (#19851)
Currently the happy checkout takes 7 minutes and the sad checkout takes
30 minutes.  This updates our CI to run checkout twice for every job to
make the sad checkout take nearer 10 minutes instead.
2019-08-21 14:52:17 -04:00
Shelley Vohr
991a56135d build: dynamically calculate out dir (#19857) 2019-08-21 10:41:35 -07:00
Electron Bot
3bd829aee0 Bump v8.0.0-nightly.20190821 2019-08-21 08:31:24 -07:00
Samuel Attard
674779899e build: ninja count should be 2*cores + 2 (#19852) 2019-08-21 10:25:23 -04:00
Heilig Benedek
3f49f984e6 fix: race condition in NodeStreamLoader (#19811)
* fix: race condition in NodeStreamLoader

* nit: add comments
2019-08-21 12:23:46 +09:00
Cheng Zhao
b7defaaf6a feat: migrate webRequest module to NetworkService (Part 8) (#19841)
* fix: fill uploadData property

* fix: requestHeaders in onBeforeSendHeaders

* fix: responseHeaders in onHeadersReceived

* fix: header keys should not be lowercased

* fix: gin::Dictionary::Get succeeds even though key does not exist...

* fix: throw for invalid filters

* test: re-enable api-web-request-spec

* chore: do not use deprecated base::Value API
2019-08-21 11:14:21 +09:00
Samuel Attard
f10f44acf5 fix: trim branch name before comparing to master (#19853) 2019-08-20 18:10:44 -07:00
John Kleinschmidt
d258797d05 ci: add macOS debug builds (#19831)
* ci: add macOS debug builds

* Fix mac debug builds
2019-08-20 16:11:29 -04:00
Carlos
fb214a599e docs: update documentation under tutorials (#19804) 2019-08-20 09:45:25 -07:00
Electron Bot
a4c0f26f06 Bump v8.0.0-nightly.20190820 2019-08-20 08:32:09 -07:00
Erick Zhao
145b4fae94 feat: implement will-move event on macOS (#19641) 2019-08-20 07:53:43 -07:00
Cheng Zhao
cd1b15a155 feat: migrate webRequest module to NetworkService (Part 7) (#19820)
* fix: gin treats Function as Dictionary when doing convertions

* fix: check if listener exists

* fix: listener callback should be executed in next tick

* feat: make InProgressRequest work

* test: re-enable protocol test that relies on webRequest

* chore: merge conditions
2019-08-20 20:46:20 +09:00
Shelley Vohr
1dc02e6dbc fix: fall back to default logs path in getPath('logs') (#19653) 2019-08-19 15:16:00 -07:00
pi1024e
0851697cb7 docs: fix punctuation errors in native-image.m (#19620)
* Added correct punctuation to sentences in documentation as well as changed lets to consts to pass the docs linter

* Fixed inconsistent indentation
2019-08-19 15:15:13 -07:00
Electron Bot
bd11be98aa chore: bump node to v12.8.1 (master) (#19790)
* chore: bump node in DEPS to v12.8.1

* test: disable parallel/test-http2-reset-flood

Disabled new Worker test owing to a threading issue where the Worker
segfaults on worker.on('message', () => {}). We've disabled failing
worker tests previously as we don't offer first-class support for them
in Electron.
2019-08-19 14:15:04 -07:00
Shelley Vohr
a54d438e18 chore: upgrades-wg owns DEPS (#19830) 2019-08-19 13:56:20 -07:00
Heilig Benedek
b33558d822 refactor: mojofy autofill renderer->browser (#18760)
* re-implement renderer->browser calls with mojo

* lint

* fix: clean up after rebase

* lint

* fix: lazy load autofill drivers
2019-08-19 13:13:24 -07:00
Shelley Vohr
43e6d7fe88 chore: add error throwing utility (#19803)
* chore: add error throwing utility

* feedback from review

* DRY out repeated isolate calls
2019-08-19 09:10:18 -07:00
Electron Bot
8f1c51eaea Bump v8.0.0-nightly.20190819 2019-08-19 08:32:31 -07:00
Electron Bot
090786b037 Bump v8.0.0-nightly.20190818 2019-08-18 08:31:14 -07:00
Electron Bot
dba3927b4e Bump v8.0.0-nightly.20190817 2019-08-17 08:31:36 -07:00
Micha Hanselmann
56d10aeef7 docs: add mising return desc (#19778) 2019-08-16 09:24:17 -07:00
Shelley Vohr
6a76540cb6 fix: return type in open/save dialogs (#19781) 2019-08-16 08:55:01 -07:00
Electron Bot
2c002a3342 Bump v8.0.0-nightly.20190816 2019-08-16 08:32:35 -07:00
Jean-Philippe Morin
42ac64284f docs: MessageBoxOptions.icon should allow type string (#19782)
In the `dialog` documentation (and the generated typings in `electron.d.ts`), it is mentionned that the `icon` property only supports `NativeImage`, but the `nativeImage` documentation says that:

```
In Electron, for the APIs that take images, you can pass either file paths or NativeImage
```
2019-08-16 17:06:02 +02:00
Cheng Zhao
2595cb5698 fix: compilation failure after chromium upgrade (#19787) 2019-08-16 07:55:34 -07:00
Cheng Zhao
c3bb73a711 feat: migrate webRequest module to NetworkService (Part 6) (#19752)
* Implement OnBeforeSendHeaders

* Pass the request

* Handle simple listeners

* Handle response listeners

* Read responses from listener
2019-08-16 10:19:05 +09:00
Micha Hanselmann
e59095423e docs: add exemplary fiddle for launch in fiddle feat (#19759)
* add fit-screen

* new url format

* nit
2019-08-15 15:37:37 -07:00
Electron Bot
db21391156 chore: bump chromium to cbeb16cf544f79c1990f1eae4d4fe (master) (#19610)
Co-authored-by: Erick Zhao <erickzhao@github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by Micha Hanselmann <DeerMichel@github.com>
2019-08-15 13:50:58 -07:00
Shelley Vohr
12df0e8994 fix: use GTK3 stock i18n strings (#19756) 2019-08-15 10:31:07 -07:00
Electron Bot
ca0cf5415e Bump v8.0.0-nightly.20190815 2019-08-15 08:31:20 -07:00
Shelley Vohr
33f2ec6355 fix: ensure child_process.fork() doesn't modify main (#19742) 2019-08-15 08:01:58 -07:00
Julien Isorce
680399f476 feat: Implement BrowserWindow.getMediaSourceId() and BrowserWindow.moveAbove(mediaSourceId) (#18926)
* feat: Implement BrowserWindow.moveAbove(mediaSourceId)

BrowserWindow.{focus,blur,moveTop}() are not enough in some
situations. For example when implementing an overlay that
follows another window that can lose focus. In that case
it is useful to move the overlay above the tracked window.

sourceId is a string in the format of DesktopCapturerSource.id,
for example "window:1869:0".

Notes: Added BrowserWindow.moveAbove(mediaSourceId)

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

* feat: Implement BrowserWindow.getMediaSourceId

Return the Window id in the format of DesktopCapturerSource's id.
For example "window:1234:0".

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

Notes: Added BrowserWindow.getMediaSourceId
2019-08-15 15:51:15 +09:00
Micha Hanselmann
d0c7a91a50 move image converter to gin (#19655) 2019-08-15 11:18:34 +09:00
Heilig Benedek
27b2747b61 fix: make sure that menu bar gets focus even when you click an item to focus it first (#19710) 2019-08-14 18:11:41 -07:00
Micha Hanselmann
9b1f698770 docs: mention QuickEdit in Windows troubleshooting (#19701)
* shot a trouble

* change title
2019-08-14 14:23:12 -07:00
Samuel Attard
efa1818cb4 feat: add new nativeTheme API (#19656)
* feat: add new nativeTheme API

* chore: deprecate and clean up old systemPreferences theme APIs in favor of new nativeTheme module

* chore: clean up and deprecate things per feedback

* chore: add tests for deprecate and clean up invert impl

* build: when is a boolean not a boolean???
2019-08-14 13:42:55 -07:00
Electron Bot
246187a20f Bump v8.0.0-nightly.20190814 2019-08-14 08:31:05 -07:00
Micha Hanselmann
4c54cfc692 move net converter to gin (#19734) 2019-08-14 14:15:34 +09:00
Erick Zhao
5d892a557f fix: proper l10n on Linux dialog buttons (#19725)
* fix: proper l10n on linux dialog

* switch string
2019-08-13 20:22:25 -07:00
Cheng Zhao
49fe2604b3 Revert "fix: activate the uv_loop on incoming IPC messages (#19449)" (#19727)
This reverts commit 8028c57b42.
2019-08-13 14:03:25 -07:00
Shelley Vohr
28466a39d8 feat: add property customization to save dialogs (#19672) 2019-08-13 13:40:07 -07:00
Shelley Vohr
e1824c00a9 feat: macOS removal fallback when moveItemToTrash fails (#19700)
* feat: macOS removal fallback when moveItemToTrash fails

* platform_util shouldn't know about mate::Arguments

* pull full_path from args as well
2019-08-13 12:31:53 -07:00
Shelley Vohr
b5798326e8 feat: add dontAddToRecent to windows showOpenDialog (#19669) 2019-08-13 08:48:22 -07:00
Electron Bot
fee84de782 Bump v8.0.0-nightly.20190813 2019-08-13 08:33:27 -07:00
Shelley Vohr
e8fa248571 fix: crash in window.print() (#19690)
* fix: crash in window.print()

* add preliminary tests
2019-08-12 23:44:14 -07:00
Micha Hanselmann
ba5ee79af8 move file dialog converter to gin (#19709) 2019-08-13 14:49:48 +09:00
Cheng Zhao
69eac0d9d2 feat: migrate webRequest module to NetworkService (Part 5) (#19714)
* Pass WebRequest to ProxyingURLLoaderFactory

* Call WebRequestAPI in InProgressRequest

* Store the listeners

* Pass the request and response

* Add stub to handle the events

* Use extensions::WebRequestInfo

* Make sure webRequest is managed by Session

* chore: make creation of WebRequestNS more clear

* fix: check WebContents for service workers
2019-08-13 14:47:35 +09:00
Electron Bot
9713fa09e7 chore: bump node to v12.8.0 (master) (#19521)
* chore: bump node in DEPS to v12.7.0

* chore: update node patches v12.6 to v12.7

Removed patches that are no longer necessary because we've upstreamed few changes already, and 3 way merge others

* fix: update build gn patch

* chore: bump node in DEPS to v12.8.0

* chore: update node patches v12.7 to v12.8

Removed patches that are no longer necessary because we've upstreamed few changes already, and 3 way merge others

* fix: Add patch to revert crypto createhash changes

The original node commit contains changes/calls to functions that are not supported in boringssl.

* disable node tests

* Remove outdated patch, already merged upstream
2019-08-12 17:29:34 -07:00
Erick Zhao
f654da9f56 feat: add about panel customization on Windows (#19420) 2019-08-12 16:32:51 -07:00
Сковорода Никита Андреевич
ef03c4b7bb docs: fix app.on('session-created' example (#19713)
It does not have the 'event' argument.

Refs: https://github.com/electron/electron/pull/12123
Refs: https://github.com/electron/electron/pull/15236
Refs: https://github.com/electron/electron/issues/15203
2019-08-12 14:46:42 -07:00
Samuel Attard
13df748f02 build: fix nightly install command in release notes (#19711) 2019-08-12 13:01:52 -07:00
Cheng Zhao
04dbd5c53f fix: don't handle browser messages before document element is created (#19718)
* fix: don't handle browser messages before document element is created

* fix: bind ElectronApiServiceImpl later

DidCreateDocumentElement is called before the ElectronApiServiceImpl
gets bound.

* chore: add comment
2019-08-12 10:38:41 -07:00
Electron Bot
398c5d553d Bump v8.0.0-nightly.20190812 2019-08-12 08:32:19 -07:00
Electron Bot
39f0bd3e82 Bump v8.0.0-nightly.20190811 2019-08-11 08:31:23 -07:00
Cheng Zhao
2dffc9f6eb feat: migrate webRequest module to NetworkService (Part 4) (#19679)
* chore: use gin in WebRequest

* Add stubs for APIs
2019-08-11 13:24:51 +09:00
Electron Bot
bc0a2d1b28 Bump v8.0.0-nightly.20190810 2019-08-10 08:31:20 -07:00
Erick Zhao
1749af9707 fix: avoid losing focus on inputs when opening menu (Windows/Linux) (#19657)
* remove cause of issue

* remove comment
2019-08-09 14:10:11 -07:00
Micha Hanselmann
57507ca37c refactor: move native window gin converter (#19577)
* move native window gin converter

* extract to new file
2019-08-09 13:43:18 -07:00
Shelley Vohr
7861e9f728 feat: allow customization of print page header and footer (#19688)
* feat: allow customization of more print settings

* address feedback from @jkleinsc

* header and footer are optional
2019-08-09 13:16:25 -07:00
Electron Bot
84cbc1d6c0 Bump v8.0.0-nightly.20190809 2019-08-09 08:32:09 -07:00
Milan Burda
03debb4ef9 feat: add tray.focus() (#19548) 2019-08-09 07:43:48 -07:00
Shelley Vohr
ed3b69ffb1 docs: update hasShadow for win and linux (#19675) 2019-08-08 15:49:43 -07:00
Milan Burda
0fb3c8cb7c feat: add new options to tray.displayBalloon() (#19544) 2019-08-08 14:43:33 -07:00
Richard Townsend
58840f39bb docs: document device scaling issue (#19387) 2019-08-08 13:59:44 -07:00
Pedro Pontes
da29ce355f fix: always use new site instance for a new navigation. (#18860) 2019-08-08 11:48:33 -07:00
Electron Bot
7a9e6659f0 Bump v8.0.0-nightly.20190808 2019-08-08 08:32:04 -07:00
Micha Hanselmann
9eb89b4ac7 fix: return correct bounds on will-resize (#19639) 2019-08-07 19:58:56 -07:00
Shelley Vohr
fec54c9c5d test: remove ffi specs (#19661) 2019-08-07 11:41:56 -07:00
Electron Bot
67169a5d0c Bump v8.0.0-nightly.20190807 2019-08-07 08:31:14 -07:00
Robo
eebea63bed chore: remove pre network service classes from shell/browser/net (#19644)
* refactor: rm IOThread class

* chore: rm expose-net-observer-api.patch

* chore: rm unused shell/browser/net/ classes

* chore: mv CertVerifierClient to separate header

* chore: rm url_request_context_getter references
2019-08-07 11:04:09 -04:00
Shelley Vohr
9c7a216814 fix: crash on print cancellation and silent print settings (#19598)
* fix: crash on print cancellation

* fix: update printing patch for new options

* refactor: use DictionaryValue for printBackground
2019-08-07 10:47:24 -04:00
Micha Hanselmann
a8861e6a66 move gurl converter to gin (#19578) 2019-08-07 16:18:26 +09:00
Erick Zhao
8a9a5d69b6 fix: normalize behavior of win.setOpacity() for invalid number values across operating systems (#19535)
* fix: define behavior for out-of-bounds setOpacity

* fix linux issue

* fix getOpacity behaviour

* wrong variable

* normalize more stuff

* docs

* test: use ifdescribe helper

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

Co-Authored-By: Charles Kerr <ckerr@github.com>

* fixes

* more tests!!!

* Update shell/browser/native_window_views.cc

Co-Authored-By: Charles Kerr <ckerr@github.com>

* Update shell/browser/native_window_mac.mm

Co-Authored-By: Charles Kerr <ckerr@github.com>
2019-08-07 16:17:32 +09:00
Cheng Zhao
761a4deab3 feat: associate InProgressRequest with requests (#19648) 2019-08-07 09:21:53 +09:00
CezaryKulakowski
50cc54e50b fix: keep references to active menus created by api Menu (#19427)
Without this such menus would be destroyed by js garbage collector even
when they are still displayed.
2019-08-06 14:55:00 -07:00
Shelley Vohr
da2401ff39 spec: fix dirtyChai spec failures (#19652) 2019-08-06 10:27:33 -07:00
Electron Bot
c3d0fed9ed Bump v8.0.0-nightly.20190806 2019-08-06 08:31:49 -07:00
András Polgár
c0982d7316 docs: update link to webContents.send (#19608) 2019-08-05 20:58:06 -07:00
Shelley Vohr
f0396c19be fix: clearRecentDocuments role on Windows (#19599)
* fix: clear recent documents on windows

* chore: don't check for version < win 7
2019-08-05 15:11:43 -07:00
Samuel Attard
33a9d898a6 fix: make child windows not crash when ipc messages are received (#19553) 2019-08-05 12:50:51 -07:00
Samuel Attard
cfd230d7f1 docs: remove implicit 'any' and 'Object' types from the docs (#19585)
* docs: remove implicit 'any' and 'Object' types from the docs

* docs: more docs improvements, remove all remaining empty interfaces

* chore: update tests for better types
2019-08-05 10:45:58 -07:00
Milan Burda
ee674acca4 feat: add tray.removeBalloon() (#19547) 2019-08-05 08:52:47 -07:00
Electron Bot
8f043bbdaa Bump v8.0.0-nightly.20190805 2019-08-05 08:32:11 -07:00
Erick Zhao
750005f02b fix: handle edge behavior for about panel on Linux (#19586)
* fix: graceful About dialog fail/exit (Linux)

* Allow current to travel along path with no electrical impedance
2019-08-05 07:53:40 -07:00
Shelley Vohr
0bb227f8a4 fix: crash on window.print() (#19601) 2019-08-05 09:19:01 -04:00
Zach Bloomquist
40d9f828d4 docs: Fix process.enablePromiseAPI typo in promisification.md (#19576)
* Fix `process.enablePromiseAPI` typo in promisification.md

* Update promisification.md
2019-08-05 10:19:48 +09:00
Jeremy Apthorp
49f2071e22 test: tsify netlog spec (#19605) 2019-08-05 09:47:42 +09:00
Jeremy Apthorp
f08be2162a test: tsify callbacks-registry spec (#19606) 2019-08-05 09:46:58 +09:00
Electron Bot
45e452557b Bump v8.0.0-nightly.20190804 2019-08-04 08:32:25 -07:00
Electron Bot
df94cc1b13 Bump v8.0.0-nightly.20190803 2019-08-03 08:31:26 -07:00
Jeremy Apthorp
bd28b876a0 fix: disable 'reopen windows?' dialog after crash (#19584) 2019-08-02 17:04:41 -07:00
Electron Bot
e959137a4b chore: bump chromium to 32e0bab929213da1019992bf31d29 (master) (#19488) 2019-08-02 16:56:46 -07:00
Jeremy Apthorp
d0800aa200 test: report hexadecimal status codes on windows (#19597) 2019-08-02 14:23:11 -07:00
Milan Burda
3011a0f14f refactor: convert ipc-renderer.ts to TypeScript (#19556)
* refactor: convert ipc-renderer.ts to TypeScript

* Update typings/internal-ambient.d.ts

Co-Authored-By: Samuel Attard <sattard@slack-corp.com>
2019-08-02 14:35:04 -05:00
Micha Hanselmann
ee64c6ab86 refactor: move file path gin converter to new file (#19575)
* move file path gin converter to new file

* move string16 gin conv to new file
2019-08-02 14:34:30 -05:00
Electron Bot
79277cc383 Bump v8.0.0-nightly.20190802 2019-08-02 08:31:00 -07:00
Andy Dill
e78b902a7d fix: expose setMenuBarVisibility again (#19557) 2019-08-01 14:01:05 -07:00
Milan Burda
e8c4e6f0b3 fix: use correct constants for tray icon messages (#19549) 2019-08-01 14:00:37 -07:00
Electron Bot
2e785899dd Bump v8.0.0-nightly.20190801 2019-08-01 08:31:16 -07:00
Milan Burda
115b57649e docs: fix TouchBar related documentation (#19444) 2019-08-01 10:59:26 -04:00
Micha Hanselmann
b80429ab7f refactor: migrate dialog API to //gin (#19482)
* get ShowMessageBoxSync working with gin

* move more dialog methods

* all methods moved

* cleanup

* add util func for template creation
2019-08-01 10:57:41 -04:00
Samuel Attard
c190e64012 build: update the ABI version for electron 8 nightlies (#19551) 2019-08-01 10:54:26 -04:00
John Kleinschmidt
3a6cafaf0a fix: use WeakPtr to detect deletion (#19257) 2019-07-31 19:48:40 -04:00
Milan Burda
c76b0b70c1 refactor: remove content::WebContentsObserver from Event (#19251) 2019-07-31 15:20:28 -07:00
Jeremy Apthorp
c71cdce0b7 chore: disable JS impl when //extensions support is on (#19512) 2019-07-31 14:25:41 -07:00
Shelley Vohr
a5f87cee6b doc: add missing MenuItem roles (#19329) 2019-07-31 14:13:56 -07:00
Samuel Attard
bf66fe51f6 build: fix first beta version choosing logic 2019-07-31 11:04:19 -07:00
2101 changed files with 112574 additions and 75710 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -6,9 +6,11 @@
"browser": true
},
"rules": {
"semi": ["error", "always"],
"no-var": "error",
"no-unused-vars": 0,
"no-global-assign": 0,
"guard-for-in": 2,
"@typescript-eslint/no-unused-vars": ["error", {
"vars": "all",
"args": "after-used",
@@ -17,18 +19,35 @@
"prefer-const": ["error", {
"destructuring": "all"
}],
"standard/no-callback-literal": "off",
"node/no-deprecated-api": 0
},
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"
},
"globals": {
"standardScheme": "readonly",
"globalThis": "readonly",
"BUILDFLAG": "readonly",
"ENABLE_DESKTOP_CAPTURER": "readonly",
"ENABLE_REMOTE_MODULE": "readonly",
"ENABLE_VIEWS_API": "readonly",
"BigInt": "readonly"
},
"overrides": [
{
"files": "*.js",
"rules": {
"@typescript-eslint/no-unused-vars": "off"
}
},
{
"files": "*.d.ts",
"rules": {
"no-useless-constructor": "off",
"@typescript-eslint/no-unused-vars": "off"
}
}
]
}

11
.gitattributes vendored
View File

@@ -1,3 +1,14 @@
# `git apply` and friends don't understand CRLF, even on windows. Force those
# files to be checked out with LF endings even if core.autocrlf is true.
*.patch text eol=lf
patches/**/.patches merge=union
# Source code and markdown files should always use LF as line ending.
*.cc text eol=lf
*.mm text eol=lf
*.h text eol=lf
*.js text eol=lf
*.ts text eol=lf
*.py text eol=lf
*.ps1 text eol=lf
*.md text eol=lf

13
.github/CODEOWNERS vendored
View File

@@ -3,19 +3,10 @@
# https://help.github.com/articles/about-codeowners
# https://git-scm.com/docs/gitignore
# Most stuff in here is owned by the Community & Safety WG...
/.github/* @electron/wg-community
# ...except the Admin WG maintains this file.
/.github/CODEOWNERS @electron/wg-admin
# Upgrades WG
/patches/ @electron/wg-upgrades
# Docs & Tooling WG
/default_app/ @electron/wg-docs-tools
/docs/ @electron/wg-docs-tools
DEPS @electron/wg-upgrades
# Releases WG
/npm/ @electron/wg-releases
/script/release @electron/wg-releases
/script/release @electron/wg-releases

View File

@@ -1,10 +0,0 @@
---
name: Security report
about: Do not create an issue for security reports, send an email to security@electronjs.org
---
### Notice
**DO NOT** create an issue for security reports.
Send an email to: **security@electronjs.org**.

View File

@@ -15,7 +15,8 @@ Contributors guide: https://github.com/electron/electron/blob/master/CONTRIBUTIN
- [ ] relevant documentation is changed or added
- [ ] PR title follows semantic [commit guidelines](https://github.com/electron/electron/blob/master/docs/development/pull-requests.md#commit-message-guidelines)
- [ ] [PR release notes](https://github.com/electron/clerk/blob/master/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/master/README.md#examples).
- [ ] This is **NOT A BREAKING CHANGE**. Breaking changes may not be merged to master until 11-x-y is branched.
#### Release Notes
Notes: <!-- Please add a one-line description for app developers to read in the release notes, or `no-notes` if no notes relevant to app developers. Examples and help on special cases: https://github.com/electron/clerk/blob/master/README.md#examples -->
Notes: <!-- Please add a one-line description for app developers to read in the release notes, or 'none' if no notes relevant to app developers. Examples and help on special cases: https://github.com/electron/clerk/blob/master/README.md#examples -->

3
.github/config.yml vendored
View File

@@ -29,13 +29,12 @@ firstPRMergeComment: >
# Users authorized to run manual trop backports
authorizedUsers:
- alexeykuzmin
- BinaryMuse
- ckerr
- codebytere
- deepak1556
- jkleinsc
- loc
- MarshallOfSound
- miniak
- nitsakh
- nornagon
- zcbenz

10
.github/main.workflow vendored
View File

@@ -1,10 +0,0 @@
workflow "Clerk" {
#TODO(codebytere): make this work properly on pull_request
on = "repository_dispatch"
resolves = "Check release notes"
}
action "Check release notes" {
uses = "electron/clerk@master"
secrets = [ "GITHUB_TOKEN" ]
}

25
.github/stale.yml vendored
View File

@@ -1,25 +0,0 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 45
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- fixme/bug
- fixme/crash
- fixme/regression
- fixme/security
- blocked
- blocking-stable
- needs-review
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity and is not currently prioritized. It will be closed
in a week if no further activity occurs :)
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
If you still think this issue is relevant, please ping a maintainer or
leave a comment!

3
.gitignore vendored
View File

@@ -58,10 +58,11 @@ spec/.hash
.eslintcache
# Generated native addon files
/spec/fixtures/native-addon/echo/build/
/spec-main/fixtures/native-addon/echo/build/
# If someone runs tsc this is where stuff will end up
ts-gen
# Used to accelerate CI builds
.depshash
.depshash-target

831
BUILD.gn

File diff suppressed because it is too large Load Diff

View File

@@ -1,46 +1,135 @@
# Contributor Covenant Code of Conduct:
# Code of Conduct
## Our Pledge
As a member project of the OpenJS Foundation, Electron uses [Contributor Covenant v2.0](https://contributor-covenant.org/version/2/0/code_of_conduct) as their code of conduct. The full text is included [below](#contributor-covenant-code-of-conduct) in English, and translations are available from the Contributor Covenant organisation:
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
- [contributor-covenant.org/translations](https://www.contributor-covenant.org/translations)
- [github.com/ContributorCovenant](https://github.com/ContributorCovenant/contributor_covenant/tree/release/content/version/2/0)
## Our Standards
## Contributor Covenant Code of Conduct
Examples of behavior that contributes to creating a positive environment include:
### Our Pledge
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
Examples of unacceptable behavior by participants include:
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
### Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
### Enforcement Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
### Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
### Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [coc@electronjs.org](mailto:coc@electronjs.org). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
[coc@electronjs.org](mailto:coc@electronjs.org).
All complaints will be reviewed and investigated promptly and fairly.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Attribution
### Enforcement Guidelines
This Code of Conduct is adapted from the [Contributor-Covenant][homepage], version 1.4, available at [https://contributor-covenant.org/version/1/4][version]
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
[homepage]: https://contributor-covenant.org
[version]: https://contributor-covenant.org/version/1/4/
#### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
#### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
#### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
#### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
### Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

View File

@@ -20,13 +20,11 @@ Issues are created [here](https://github.com/electron/electron/issues/new).
* [Triaging a Bug Report](https://electronjs.org/docs/development/issues#triaging-a-bug-report)
* [Resolving a Bug Report](https://electronjs.org/docs/development/issues#resolving-a-bug-report)
### Issue Maintenance and Closure
* If an issue is inactive for 45 days (no activity of any kind), it will be
marked for closure with `stale`.
* If after this label is applied, no further activity occurs in the next 7 days,
the issue will be closed.
* If an issue has been closed and you still feel it's relevant, feel free to
ping a maintainer or add a comment!
### Issue Closure
Bug reports will be closed if the issue has been inactive and the latest affected version no longer receives support. At the moment, Electron maintains its three latest major versions, with a new major version being released every 12 weeks. (For more information on Electron's release cadence, see [this blog post](https://electronjs.org/blog/12-week-cadence).)
_If an issue has been closed and you still feel it's relevant, feel free to ping a maintainer or add a comment!_
### Languages
@@ -49,17 +47,17 @@ dependencies, and tools contained in the `electron/electron` repository.
* [Step 1: Fork](https://electronjs.org/docs/development/pull-requests#step-1-fork)
* [Step 2: Build](https://electronjs.org/docs/development/pull-requests#step-2-build)
* [Step 3: Branch](https://electronjs.org/docs/development/pull-requests#step-3-branch)
* [The Process of Making Changes](https://electronjs.org/docs/development/pull-requests#the-process-of-making-changes)
* [Making Changes](https://electronjs.org/docs/development/pull-requests#making-changes)
* [Step 4: Code](https://electronjs.org/docs/development/pull-requests#step-4-code)
* [Step 5: Commit](https://electronjs.org/docs/development/pull-requests#step-5-commit)
* [Commit message guidelines](https://electronjs.org/docs/development/pull-requests#commit-message-guidelines)
* [Step 6: Rebase](https://electronjs.org/docs/development/pull-requests#step-6-rebase)
* [Step 7: Test](https://electronjs.org/docs/development/pull-requests#step-7-test)
* [Step 8: Push](https://electronjs.org/docs/development/pull-requests#step-8-push)
* [Step 8: Opening the Pull Request](https://electronjs.org/docs/development/pull-requests#step-8-opening-the-pull-request)
* [Step 9: Discuss and Update](#step-9-discuss-and-update)
* [Step 9: Opening the Pull Request](https://electronjs.org/docs/development/pull-requests#step-9-opening-the-pull-request)
* [Step 10: Discuss and Update](https://electronjs.org/docs/development/pull-requests#step-10-discuss-and-update)
* [Approval and Request Changes Workflow](https://electronjs.org/docs/development/pull-requests#approval-and-request-changes-workflow)
* [Step 10: Landing](https://electronjs.org/docs/development/pull-requests#step-10-landing)
* [Step 11: Landing](https://electronjs.org/docs/development/pull-requests#step-11-landing)
* [Continuous Integration Testing](https://electronjs.org/docs/development/pull-requests#continuous-integration-testing)
## Style Guides

45
DEPS
View File

@@ -5,16 +5,22 @@ gclient_gn_args = [
'checkout_android_native_support',
'checkout_libaom',
'checkout_nacl',
'checkout_oculus_sdk'
'checkout_pgo_profiles',
'checkout_oculus_sdk',
'checkout_openxr',
'checkout_google_benchmark',
'mac_xcode_version',
]
vars = {
'chromium_version':
'9eecb7a9f652bbf84f6437b49c70922b65b38bf3',
'87.0.4280.60',
'node_version':
'v12.6.0',
'v12.18.3',
'nan_version':
'2ee313aaca52e2b478965ac50eb5082520380d1b',
'2c4ee8a32a299eada3cd6e468bbd0a473bfea96d',
'squirrel.mac_version':
'a3a5b3f03b824441c014893b18f99a103b2603e9',
'boto_version': 'f7574aa6cc2c819430c1f05e9a1a1a666ef8169b',
'pyyaml_version': '3.12',
@@ -26,6 +32,7 @@ vars = {
'nodejs_git': 'https://github.com/nodejs',
'requests_git': 'https://github.com/kennethreitz',
'yaml_git': 'https://github.com/yaml',
'squirrel_git': 'https://github.com/Squirrel',
# KEEP IN SYNC WITH utils.js FILE
'yarn_version': '1.15.2',
@@ -40,6 +47,7 @@ vars = {
'checkout_chromium': True,
'checkout_node': True,
'checkout_nan': True,
'checkout_pgo_profiles': True,
# It's only needed to parse the native tests configurations.
'checkout_pyyaml': False,
@@ -47,6 +55,8 @@ vars = {
# Python "requests" module is used for releases only.
'checkout_requests': False,
'mac_xcode_version': 'default',
# To allow running hooks without parsing the DEPS tree
'process_deps': True,
@@ -60,12 +70,16 @@ vars = {
True,
'checkout_oculus_sdk':
False,
'checkout_openxr':
False,
'build_with_chromium':
True,
'checkout_android':
False,
'checkout_android_native_support':
False,
'checkout_google_benchmark':
False,
}
deps = {
@@ -93,6 +107,18 @@ deps = {
'url': Var('requests_git') + '/requests.git' + '@' + Var('requests_version'),
'condition': 'checkout_requests and process_deps',
},
'src/third_party/squirrel.mac': {
'url': Var("squirrel_git") + '/Squirrel.Mac.git@' + Var("squirrel.mac_version"),
'condition': 'process_deps',
},
'src/third_party/squirrel.mac/vendor/ReactiveObjC': {
'url': 'https://github.com/ReactiveCocoa/ReactiveObjC.git@74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76',
'condition': 'process_deps'
},
'src/third_party/squirrel.mac/vendor/Mantle': {
'url': 'https://github.com/Mantle/Mantle.git@78d3966b3c331292ea29ec38661b25df0a245948',
'condition': 'process_deps',
}
}
hooks = [
@@ -101,7 +127,7 @@ hooks = [
'condition': '(checkout_chromium and apply_patches) and process_deps',
'pattern': 'src/electron',
'action': [
'python',
'python3',
'src/electron/script/apply_all_patches.py',
'src/electron/patches/config.json',
],
@@ -111,7 +137,7 @@ hooks = [
'pattern': 'src/electron/script/update-external-binaries.py',
'condition': 'download_external_binaries',
'action': [
'python',
'python3',
'src/electron/script/update-external-binaries.py',
],
},
@@ -119,7 +145,7 @@ hooks = [
'name': 'electron_npm_deps',
'pattern': 'src/electron/package.json',
'action': [
'python',
'python3',
'-c',
'import os, subprocess; os.chdir(os.path.join("src", "electron")); subprocess.check_call(["python", "script/lib/npx.py", "yarn@' + (Var("yarn_version")) + '", "install", "--frozen-lockfile"]);',
],
@@ -129,7 +155,7 @@ hooks = [
'pattern': 'src/electron',
'condition': 'checkout_boto and process_deps',
'action': [
'python',
'python3',
'-c',
'import os, subprocess; os.chdir(os.path.join("src", "electron", "vendor", "boto")); subprocess.check_call(["python", "setup.py", "build"]);',
],
@@ -139,7 +165,7 @@ hooks = [
'pattern': 'src/electron',
'condition': 'checkout_requests and process_deps',
'action': [
'python',
'python3',
'-c',
'import os, subprocess; os.chdir(os.path.join("src", "electron", "vendor", "requests")); subprocess.check_call(["python", "setup.py", "build"]);',
],
@@ -148,4 +174,5 @@ hooks = [
recursedeps = [
'src',
'src/third_party/squirrel.mac',
]

View File

@@ -1,50 +0,0 @@
FROM ubuntu:18.04
RUN groupadd --gid 1000 builduser \
&& useradd --uid 1000 --gid builduser --shell /bin/bash --create-home builduser
# Set up TEMP directory
ENV TEMP=/tmp
RUN chmod a+rwx /tmp
# Install Linux packages
ADD build/install-build-deps.sh /setup/install-build-deps.sh
RUN echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections
RUN dpkg --add-architecture i386
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
curl \
libnotify-bin \
locales \
lsb-release \
nano \
python-dbus \
python-pip \
python-setuptools \
sudo \
vim-nox \
wget \
g++-multilib \
libgl1:i386 \
&& /setup/install-build-deps.sh --syms --no-prompt --no-chromeos-fonts --lib32 --arm \
&& rm -rf /var/lib/apt/lists/*
# Install Node.js
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs \
&& rm -rf /var/lib/apt/lists/*
# crcmod is required by gsutil, which is used for filling the gclient git cache
RUN pip install -U crcmod
# dbusmock is needed for Electron tests
RUN pip install python-dbusmock
RUN mkdir /tmp/workspace
RUN chown builduser:builduser /tmp/workspace
# Add xvfb init script
ADD tools/xvfb-init.sh /etc/init.d/xvfb
RUN chmod a+x /etc/init.d/xvfb
USER builduser
WORKDIR /home/builduser

View File

@@ -1,59 +0,0 @@
FROM arm32v7/ubuntu:18.04
RUN groupadd --gid 1000 builduser \
&& useradd --uid 1000 --gid builduser --shell /bin/bash --create-home builduser
# Set up TEMP directory
ENV TEMP=/tmp
RUN chmod a+rwx /tmp
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
bison \
build-essential \
clang \
curl \
gperf \
git \
libasound2 \
libasound2-dev \
libcap-dev \
libcups2-dev \
libdbus-1-dev \
libgnome-keyring-dev \
libgtk2.0-0 \
libgtk2.0-dev \
libgtk-3-0 \
libgtk-3-dev \
libnotify-bin \
libnss3 \
libnss3-dev \
libxss1 \
libxtst-dev \
libxtst6 \
lsb-release \
locales \
nano \
python-setuptools \
python-pip \
python-dbusmock \
sudo \
unzip \
wget \
xvfb \
&& rm -rf /var/lib/apt/lists/*
# Install Node.js
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs \
&& rm -rf /var/lib/apt/lists/*
# crcmod is required by gsutil, which is used for filling the gclient git cache
RUN pip install -U crcmod
ADD tools/xvfb-init.sh /etc/init.d/xvfb
RUN chmod a+x /etc/init.d/xvfb
RUN usermod -aG sudo builduser
RUN echo 'builduser ALL=(ALL:ALL) NOPASSWD:ALL' >> /etc/sudoers
WORKDIR /home/builduser

View File

@@ -1,65 +0,0 @@
FROM arm64v8/ubuntu:18.04
RUN groupadd --gid 1000 builduser \
&& useradd --uid 1000 --gid builduser --shell /bin/bash --create-home builduser
# Set up TEMP directory
ENV TEMP=/tmp
RUN chmod a+rwx /tmp
RUN dpkg --add-architecture armhf
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
bison \
build-essential \
clang \
curl \
gperf \
git \
libasound2 \
libasound2-dev \
libc6:armhf \
libcap-dev \
libcups2-dev \
libdbus-1-dev \
libgnome-keyring-dev \
libgtk2.0-0 \
libgtk2.0-dev \
libgtk-3-0 \
libgtk-3-dev \
libnotify-bin \
libnss3 \
libnss3-dev \
libstdc++6:armhf \
libxss1 \
libxtst-dev \
libxtst6 \
lsb-release \
locales \
nano \
python-setuptools \
python-pip \
sudo \
unzip \
wget \
xvfb \
&& rm -rf /var/lib/apt/lists/*
# Install Node.js
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs \
&& rm -rf /var/lib/apt/lists/*
# crcmod is required by gsutil, which is used for filling the gclient git cache
RUN pip install -U crcmod
# dbusmock is needed for Electron tests
RUN pip install python-dbusmock
ADD tools/xvfb-init.sh /etc/init.d/xvfb
RUN chmod a+x /etc/init.d/xvfb
RUN usermod -aG sudo builduser
RUN echo 'builduser ALL=(ALL:ALL) NOPASSWD:ALL' >> /etc/sudoers
WORKDIR /home/builduser

View File

@@ -1 +1 @@
7.0.0-nightly.20190731
11.0.1

View File

@@ -1,4 +1,4 @@
Copyright (c) 2013-2019 GitHub Inc.
Copyright (c) 2013-2020 GitHub Inc.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the

View File

@@ -58,13 +58,13 @@ npm start
## Resources for learning Electron
- [electronjs.org/docs](https://electronjs.org/docs) - all of Electron's documentation
- [electronjs.org/docs](https://electronjs.org/docs) - All of Electron's documentation
- [electron/fiddle](https://github.com/electron/fiddle) - A tool to build, run, and package small Electron experiments
- [electron/electron-quick-start](https://github.com/electron/electron-quick-start) - a very basic starter Electron app
- [electronjs.org/community#boilerplates](https://electronjs.org/community#boilerplates) - sample starter apps created by the community
- [electron/simple-samples](https://github.com/electron/simple-samples) - small applications with ideas for taking them further
- [electron/electron-api-demos](https://github.com/electron/electron-api-demos) - an Electron app that teaches you how to use Electron
- [hokein/electron-sample-apps](https://github.com/hokein/electron-sample-apps) - small demo apps for the various Electron APIs
- [electron/electron-quick-start](https://github.com/electron/electron-quick-start) - A very basic starter Electron app
- [electronjs.org/community#boilerplates](https://electronjs.org/community#boilerplates) - Sample starter apps created by the community
- [electron/simple-samples](https://github.com/electron/simple-samples) - Small applications with ideas for taking them further
- [electron/electron-api-demos](https://github.com/electron/electron-api-demos) - An Electron app that teaches you how to use Electron
- [hokein/electron-sample-apps](https://github.com/hokein/electron-sample-apps) - Small demo apps for the various Electron APIs
## Programmatic usage

View File

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

View File

@@ -1,5 +1,5 @@
# The config expects the following environment variables to be set:
# - "GN_CONFIG" Build type. One of {'debug', 'testing', 'release'}.
# - "GN_CONFIG" Build type. One of {'testing', 'release'}.
# - "GN_EXTRA_ARGS" Additional gn arguments for a build config,
# e.g. 'target_cpu="x86"' to build for a 32bit platform.
# https://gn.googlesource.com/gn/+/master/docs/reference.md#target_cpu
@@ -28,8 +28,8 @@
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
version: 1.0.{build}
build_cloud: libcc-20
image: vs2017-15.9-10.0.18362
build_cloud: electron-16-core
image: vs2019bt-16.6.2
environment:
GIT_CACHE_PATH: C:\Users\electron\libcc_cache
ELECTRON_OUT_DIR: Default
@@ -50,17 +50,26 @@ build_script:
- ps: >-
if(($env:APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME -split "/")[0] -eq ($env:APPVEYOR_REPO_NAME -split "/")[0]) {
Write-warning "Skipping PR build for branch"; Exit-AppveyorBuild
} else {
node script/yarn.js install --frozen-lockfile
$result = node script/doc-only-change.js --prNumber=$env:APPVEYOR_PULL_REQUEST_NUMBER --prBranch=$env:APPVEYOR_REPO_BRANCH
Write-Output $result
if ($result.ExitCode -eq 0) {
Write-warning "Skipping build for doc only change"; Exit-AppveyorBuild
}
}
- echo "Building $env:GN_CONFIG build"
- git config --global core.longpaths true
- cd ..
- mkdir src
- update_depot_tools.bat
- ps: Move-Item $env:APPVEYOR_BUILD_FOLDER -Destination src\electron
- ps: $env:CHROMIUM_BUILDTOOLS_PATH="$pwd\src\buildtools"
- ps: $env:SCCACHE_PATH="$pwd\src\electron\external_binaries\sccache.exe"
- ps: >-
if ($env:GN_CONFIG -eq 'release') {
$env:GCLIENT_EXTRA_ARGS="--custom-var=checkout_boto=True --custom-var=checkout_requests=True"
$env:GCLIENT_EXTRA_ARGS="$env:GCLIENT_EXTRA_ARGS --custom-var=checkout_boto=True --custom-var=checkout_requests=True"
} else {
$env:NINJA_STATUS="[%r processes, %f/%t @ %o/s : %es] "
}
@@ -70,25 +79,109 @@ build_script:
--unmanaged
%GCLIENT_EXTRA_ARGS%
"https://github.com/electron/electron"
- gclient sync --with_branch_heads --with_tags --reset
- ps: >-
if ($env:GN_CONFIG -eq 'release') {
$env:RUN_GCLIENT_SYNC="true"
} else {
cd src\electron
node script\generate-deps-hash.js
$depshash = Get-Content .\.depshash -Raw
$zipfile = "Z:\$depshash.7z"
cd ..\..
if (Test-Path -Path $zipfile) {
# file exists, unzip and then gclient sync
7z x -y $zipfile -mmt=30 -aoa
if (-not (Test-Path -Path "src\buildtools")) {
# the zip file must be corrupt - resync
$env:RUN_GCLIENT_SYNC="true"
if ($env:TARGET_ARCH -ne 'ia32') {
# only save on x64/woa to avoid contention saving
$env:SAVE_GCLIENT_SRC="true"
}
} else {
# update external binaries
python src/electron/script/update-external-binaries.py
# update angle
cd src\third_party\angle
git remote set-url origin https://chromium.googlesource.com/angle/angle.git
git fetch
cd ..\..\..
}
} else {
# file does not exist, gclient sync, then zip
$env:RUN_GCLIENT_SYNC="true"
if ($env:TARGET_ARCH -ne 'ia32') {
# only save on x64/woa to avoid contention saving
$env:SAVE_GCLIENT_SRC="true"
}
}
}
- if "%RUN_GCLIENT_SYNC%"=="true" ( gclient sync --with_branch_heads --with_tags --ignore_locks)
- ps: >-
if ($env:SAVE_GCLIENT_SRC -eq 'true') {
# archive current source for future use
# only run on x64/woa to avoid contention saving
$(7z a $zipfile src -xr!android_webview -xr!electron -xr'!*\.git' -xr!third_party\WebKit\LayoutTests! -xr!third_party\blink\web_tests -xr!third_party\blink\perf_tests -slp -t7z -mmt=30)
if ($LASTEXITCODE -ne 0) {
Write-warning "Could not save source to shared drive; continuing anyway"
}
# build time generation of file gen/angle/angle_commit.h depends on
# third_party/angle/.git
# https://chromium-review.googlesource.com/c/angle/angle/+/2074924
$(7z a $zipfile src\third_party\angle\.git)
if ($LASTEXITCODE -ne 0) {
Write-warning "Failed to add third_party\angle\.git; continuing anyway"
}
}
- ps: >-
if ($env:GN_CONFIG -ne 'release') {
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
node -e "require('./src/utils/goma.js').downloadAndPrepare()"
$env:GN_GOMA_FILE = node -e "console.log(require('./src/utils/goma.js').gnFilePath)"
$env:LOCAL_GOMA_DIR = node -e "console.log(require('./src/utils/goma.js').dir)"
cd ..
.\src\electron\script\start-goma.ps1 -gomaDir $env:LOCAL_GOMA_DIR
}
- cd src
- ps: $env:BUILD_CONFIG_PATH="//electron/build/args/%GN_CONFIG%.gn"
- gn gen out/Default "--args=import(\"%BUILD_CONFIG_PATH%\") %GN_EXTRA_ARGS%"
- set BUILD_CONFIG_PATH=//electron/build/args/%GN_CONFIG%.gn
- if DEFINED GN_GOMA_FILE (gn gen out/Default "--args=import(\"%BUILD_CONFIG_PATH%\") import(\"%GN_GOMA_FILE%\") %GN_EXTRA_ARGS% ") else (gn gen out/Default "--args=import(\"%BUILD_CONFIG_PATH%\") %GN_EXTRA_ARGS% cc_wrapper=\"%SCCACHE_PATH%\"")
- gn check out/Default //electron:electron_lib
- gn check out/Default //electron:electron_app
- gn check out/Default //electron:manifests
- gn check out/Default //electron/shell/common/api:mojo
- ninja -C out/Default electron:electron_app
- if "%GN_CONFIG%"=="testing" ( python C:\Users\electron\depot_tools\post_build_ninja_summary.py -C out\Default )
- if DEFINED GN_GOMA_FILE (ninja -j 300 -C out/Default electron:electron_app) else (ninja -C out/Default electron:electron_app)
- if "%GN_CONFIG%"=="testing" ( python C:\depot_tools\post_build_ninja_summary.py -C out\Default )
- gn gen out/ffmpeg "--args=import(\"//electron/build/args/ffmpeg.gn\") %GN_EXTRA_ARGS%"
- ninja -C out/ffmpeg electron:electron_ffmpeg_zip
- ninja -C out/Default electron:electron_dist_zip
- ninja -C out/Default shell_browser_ui_unittests
- gn desc out/Default v8:run_mksnapshot_default args > out/Default/mksnapshot_args
- ninja -C out/Default electron:electron_mksnapshot_zip
- cd out\Default
- 7z a mksnapshot.zip mksnapshot_args gen\v8\embedded.S
- cd ..\..
- ninja -C out/Default electron:hunspell_dictionaries_zip
- ninja -C out/Default electron:electron_chromedriver_zip
- ninja -C out/Default third_party/electron_node:headers
- if "%GN_CONFIG%"=="testing" ( python %LOCAL_GOMA_DIR%\goma_ctl.py stat )
- python electron/build/profile_toolchain.py --output-json=out/Default/windows_toolchain_profile.json
- appveyor PushArtifact out/Default/windows_toolchain_profile.json
- appveyor PushArtifact out/Default/dist.zip
- appveyor PushArtifact out/Default/shell_browser_ui_unittests.exe
- appveyor PushArtifact out/Default/chromedriver.zip
- appveyor PushArtifact out/ffmpeg/ffmpeg.zip
- 7z a node_headers.zip out\Default\gen\node_headers
- appveyor PushArtifact node_headers.zip
- appveyor PushArtifact out/Default/mksnapshot.zip
- appveyor PushArtifact out/Default/hunspell_dictionaries.zip
- appveyor PushArtifact out/Default/electron.lib
- ps: >-
if ($env:GN_CONFIG -eq 'release') {
# Needed for msdia140.dll on 64-bit windows
@@ -98,14 +191,19 @@ build_script:
- ps: >-
if ($env:GN_CONFIG -eq 'release') {
python electron\script\zip-symbols.py
appveyor PushArtifact out/Default/symbols.zip
appveyor-retry appveyor PushArtifact out/Default/symbols.zip
} else {
# It's useful to have pdb files when debugging testing builds that are
# built on CI.
7z a pdb.zip out\Default\*.pdb
appveyor-retry appveyor PushArtifact pdb.zip
}
- python electron/script/zip_manifests/check-zip-manifest.py out/Default/dist.zip electron/script/zip_manifests/dist_zip.win.%TARGET_ARCH%.manifest
test_script:
# Workaround for https://github.com/appveyor/ci/issues/2420
- set "PATH=%PATH%;C:\Program Files\Git\mingw64\libexec\git-core"
- ps: >-
if ((-Not (Test-Path Env:\ELECTRON_RELEASE)) -And ($env:GN_CONFIG -in "testing", "release")) {
if ((-Not (Test-Path Env:\TEST_WOA)) -And (-Not (Test-Path Env:\ELECTRON_RELEASE)) -And ($env:GN_CONFIG -in "testing", "release")) {
$env:RUN_TESTS="true"
}
- ps: >-
@@ -116,21 +214,26 @@ test_script:
echo "Skipping tests for $env:GN_CONFIG build"
}
- cd electron
- if "%RUN_TESTS%"=="true" ( echo Running test suite & node script/yarn test -- --ci --enable-logging)
# 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 )
- 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"
- if "%RUN_TESTS%"=="true" ( echo Verifying mksnapshot & python electron\script\verify-mksnapshot.py --build-dir out\Default --source-root %cd% )
- 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"
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 --upload_to_s3
& python script\release\uploaders\upload.py --verbose --upload_to_s3
} else {
Write-Output "Uploading Electron release distribution to github releases"
& python script\release\uploaders\upload.py
& 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
}

104
azure-pipelines-arm.yml Normal file
View File

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

98
azure-pipelines-woa.yml Normal file
View File

@@ -0,0 +1,98 @@
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: |
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
# CalculateNativeWinOcclusion is disabled due to https://bugs.chromium.org/p/chromium/issues/detail?id=1139022
node script/yarn test -- --enable-logging --verbose --disable-features=CalculateNativeWinOcclusion
displayName: 'Run Electron 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
- 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
displayName: 'Delete user app data directories'
condition: always()

View File

@@ -1,9 +1,8 @@
is_electron_build = true
use_jumbo_build = true
root_extra_deps = [ "//electron" ]
# Registry of NMVs --> https://github.com/nodejs/node/blob/master/doc/abi_version_registry.json
node_module_version = 75
node_module_version = 85
v8_promise_internal_field_count = 1
v8_typed_array_max_size_in_heap = 0
@@ -18,9 +17,6 @@ ffmpeg_branding = "Chrome"
enable_basic_printing = true
angle_enable_vulkan_validation_layers = false
dawn_enable_vulkan_validation_layers = false
is_cfi = false
# TODO: Remove this and update CI to contain 10.14 SDK once
# crbug.com/986701 is fixed.
mac_sdk_min = "10.13"

View File

@@ -1,10 +0,0 @@
import("all.gn")
is_debug = true
is_component_build = true
# This may be guarded behind is_chrome_branded alongside
# proprietary_codecs https://webrtc-review.googlesource.com/c/src/+/36321,
# explicitly override here to build OpenH264 encoder/FFmpeg decoder.
# The initialization of the decoder depends on whether ffmpeg has
# been built with H.264 support.
rtc_use_h264 = proprietary_codecs

View File

@@ -5,4 +5,3 @@ is_debug = false
is_component_build = false
is_component_ffmpeg = false
symbol_level = 1
use_jumbo_build = true

View File

@@ -34,9 +34,7 @@ template("extract_symbols") {
dump_syms_binary,
]
stamp_file = "${target_gen_dir}/${target_name}.stamp"
outputs = [
stamp_file,
]
outputs = [ stamp_file ]
args = [
"./" + rebase_path(dump_syms_binary, root_build_dir),
rebase_path(invoker.binary, root_build_dir),

View File

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

View File

@@ -10,9 +10,7 @@ template("npm_action") {
]
script = "//electron/build/npm-run.py"
outputs = [
"$target_gen_dir/npm_pre_stamps/" + target_name + ".stamp",
]
outputs = [ "$target_gen_dir/npm_pre_stamps/" + target_name + ".stamp" ]
args = [
"--silent",

98
build/profile_toolchain.py Executable file
View File

@@ -0,0 +1,98 @@
from __future__ import with_statement
import contextlib
import sys
import os
import optparse
import json
sys.path.append("%s/../../build" % os.path.dirname(os.path.realpath(__file__)))
import find_depot_tools
from vs_toolchain import \
SetEnvironmentAndGetRuntimeDllDirs, \
SetEnvironmentAndGetSDKDir, \
GetVisualStudioVersion, \
NormalizePath
sys.path.append("%s/win_toolchain" % find_depot_tools.add_depot_tools_to_path())
from get_toolchain_if_necessary import CalculateHash
@contextlib.contextmanager
def cwd(dir):
curdir = os.getcwd()
try:
os.chdir(dir)
yield
finally:
os.chdir(curdir)
def calculate_hash(root):
with cwd(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 = []
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)
return items
def windows_profile():
runtime_dll_dirs = SetEnvironmentAndGetRuntimeDllDirs()
win_sdk_dir = SetEnvironmentAndGetSDKDir()
path = NormalizePath(os.environ['GYP_MSVS_OVERRIDE_PATH'])
return {
'pwd': os.getcwd(), # since current windows executable are symbols path dependant, profile the current directory too
'installed_software': windows_installed_software(),
'sdks': [
{'name': 'vs', 'path': path, 'hash': calculate_hash(path)},
{'name': 'wsdk', 'path': win_sdk_dir, 'hash': calculate_hash(win_sdk_dir)}
],
'runtime_lib_dirs': runtime_dll_dirs,
}
def main(options):
if sys.platform == 'win32':
with open(options.output_json, 'wb') as f:
json.dump(windows_profile(), f)
else:
raise OSError("Unsupported OS")
if __name__ == '__main__':
parser = optparse.OptionParser()
parser.add_option('--output-json', metavar='FILE', default='profile.json',
help='write information about toolchain to FILE')
options, args = parser.parse_args()
sys.exit(main(options))

94
build/rules.gni Normal file
View File

@@ -0,0 +1,94 @@
import("//build/config/mac/mac_sdk.gni")
# Template to compile .xib and .storyboard files.
# (copied from src/build/config/ios/rules.gni)
#
# Arguments
#
# sources:
# list of string, sources to compile
#
# ibtool_flags:
# (optional) list of string, additional flags to pass to the ibtool
template("compile_ib_files") {
action_foreach(target_name) {
forward_variables_from(invoker,
[
"testonly",
"visibility",
])
assert(defined(invoker.sources),
"sources must be specified for $target_name")
assert(defined(invoker.output_extension),
"output_extension must be specified for $target_name")
ibtool_flags = []
if (defined(invoker.ibtool_flags)) {
ibtool_flags = invoker.ibtool_flags
}
_output_extension = invoker.output_extension
script = "//build/config/ios/compile_ib_files.py"
sources = invoker.sources
outputs = [
"$target_gen_dir/$target_name/{{source_name_part}}.$_output_extension",
]
args = [
"--input",
"{{source}}",
"--output",
rebase_path(
"$target_gen_dir/$target_name/{{source_name_part}}.$_output_extension",
root_build_dir),
]
args += ibtool_flags
}
}
# Template is copied here from Chromium but was removed in
# https://chromium-review.googlesource.com/c/chromium/src/+/1637981
# Template to compile and package Mac XIB files as bundle data.
# Arguments
# sources:
# list of string, sources to comiple
# output_path:
# (optional) string, the path to use for the outputs list in the
# bundle_data step. If unspecified, defaults to bundle_resources_dir.
template("mac_xib_bundle_data") {
_target_name = target_name
_compile_target_name = _target_name + "_compile_ibtool"
compile_ib_files(_compile_target_name) {
forward_variables_from(invoker, [ "testonly" ])
visibility = [ ":$_target_name" ]
sources = invoker.sources
output_extension = "nib"
ibtool_flags = [
"--minimum-deployment-target",
mac_deployment_target,
# TODO(rsesek): Enable this once all the bots are on Xcode 7+.
# "--target-device",
# "mac",
]
}
bundle_data(_target_name) {
forward_variables_from(invoker,
[
"testonly",
"visibility",
])
public_deps = [ ":$_compile_target_name" ]
sources = get_target_outputs(":$_compile_target_name")
_output_path = "{{bundle_resources_dir}}"
if (defined(invoker.output_path)) {
_output_path = invoker.output_path
}
outputs = [ "$_output_path/{{source_file_part}}" ]
}
}

16
build/strip_framework.py Executable file
View File

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

View File

@@ -15,12 +15,8 @@ template("templated_file") {
"inputs",
"outputs",
])
inputs = [
invoker.template,
]
outputs = [
invoker.output,
]
inputs = [ invoker.template ]
outputs = [ invoker.output ]
script = "//electron/build/generate-template.py"
args = [
rebase_path(invoker.template),

View File

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

View File

@@ -1,22 +1,45 @@
const path = require('path')
const webpack = require('webpack')
const fs = require('fs');
const path = require('path');
const webpack = require('webpack');
const configPath = process.argv[2]
const outPath = path.resolve(process.argv[3])
const config = require(configPath)
const configPath = process.argv[2];
const outPath = path.resolve(process.argv[3]);
const config = require(configPath);
config.output = {
path: path.dirname(outPath),
filename: path.basename(outPath)
}
};
webpack(config, (err, stats) => {
const { wrapInitWithProfilingTimeout, wrapInitWithTryCatch, ...webpackConfig } = config;
webpack(webpackConfig, (err, stats) => {
if (err) {
console.error(err)
process.exit(1)
console.error(err);
process.exit(1);
} else if (stats.hasErrors()) {
console.error(stats.toString('normal'))
process.exit(1)
console.error(stats.toString('normal'));
process.exit(1);
} else {
process.exit(0)
let contents = fs.readFileSync(outPath, 'utf8');
if (wrapInitWithTryCatch) {
contents = `try {
${contents}
} catch (err) {
console.error('Electron ${webpackConfig.output.filename} script failed to run');
console.error(err);
}`;
}
if (wrapInitWithProfilingTimeout) {
contents = `function ___electron_webpack_init__() {
${contents}
};
if ((globalThis.process || binding.process).argv.includes("--profile-electron-init")) {
setTimeout(___electron_webpack_init__, 0);
} else {
___electron_webpack_init__();
}`;
}
fs.writeFileSync(outPath, contents);
process.exit(0);
}
})
});

View File

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

View File

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

View File

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

View File

@@ -1,4 +0,0 @@
module.exports = require('./webpack.config.base')({
target: 'content_script',
alwaysHasNode: false
})

View File

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

View File

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

View File

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

View File

@@ -2,5 +2,6 @@ module.exports = require('./webpack.config.base')({
target: 'worker',
loadElectronFromAlternateTarget: 'renderer',
alwaysHasNode: true,
targetDeletesNodeGlobals: true
})
targetDeletesNodeGlobals: true,
wrapInitWithTryCatch: true
});

View File

@@ -16,6 +16,7 @@ template("webpack_build") {
inputs = [
invoker.config_file,
"//electron/build/webpack/webpack.config.base.js",
"//electron/build/webpack/run-compiler.js",
"//electron/tsconfig.json",
"//electron/yarn.lock",
"//electron/typings/internal-ambient.d.ts",
@@ -25,10 +26,10 @@ template("webpack_build") {
args = [
rebase_path(invoker.config_file),
rebase_path(invoker.out_file),
"--buildflags=" + rebase_path("$target_gen_dir/buildflags/buildflags.h"),
]
deps += [ "buildflags" ]
outputs = [
invoker.out_file,
]
outputs = [ invoker.out_file ]
}
}

View File

@@ -9,17 +9,34 @@ EXTENSIONS_TO_SKIP = [
'.pdb',
'.mojom.js',
'.mojom-lite.js',
'.info'
]
PATHS_TO_SKIP = [
'angledata', #Skipping because it is an output of //ui/gl that we don't need
'./libVkICD_mock_', #Skipping because these are outputs that we don't need
'./VkICD_mock_', #Skipping because these are outputs that we don't need
# Skip because it is an output of //ui/gl that we don't need.
'angledata',
# Skip because these are outputs that we don't need.
'./libVkICD_mock_',
# Skip because these are outputs that we don't need.
'./VkICD_mock_',
# Skip because its an output of create_bundle from //build/config/mac/rules.gni
# that we don't need
'Electron.dSYM',
# Refs https://chromium-review.googlesource.com/c/angle/angle/+/2425197.
# Remove this when Angle themselves remove the file: https://issuetracker.google.com/issues/168736059
'gen/angle/angle_commit.h',
# //chrome/browser:resources depends on this via
# //chrome/browser/resources/ssl/ssl_error_assistant, but we don't need to
# ship it.
'pyproto',
# On Windows, this binary doesn't exist (the crashpad handler is built-in).
# On MacOS, the binary is called 'chrome_crashpad_handler' and is inside the
# app bundle.
# On Linux, we don't use crashpad, but this binary is still built for some
# reason. Exclude it from the zip.
'./crashpad_handler',
# Skip because these are outputs that we don't need.
'resources/inspector',
]
def skip_path(dep, dist_zip, target_cpu):
@@ -46,19 +63,19 @@ def execute(argv):
raise e
def main(argv):
dist_zip, runtime_deps, target_cpu, target_os = argv
dist_zip, runtime_deps, target_cpu, target_os, flatten_val = argv
should_flatten = flatten_val == "true"
dist_files = set()
with open(runtime_deps) as f:
for dep in f.readlines():
dep = dep.strip()
dist_files.add(dep)
if sys.platform == 'darwin':
if not skip_path(dep, dist_zip, target_cpu):
dist_files.add(dep)
if sys.platform == 'darwin' and not should_flatten:
execute(['zip', '-r', '-y', dist_zip] + list(dist_files))
else:
with zipfile.ZipFile(dist_zip, 'w', zipfile.ZIP_DEFLATED, allowZip64=True) as z:
for dep in dist_files:
if skip_path(dep, dist_zip, target_cpu):
continue
if os.path.isdir(dep):
for root, dirs, files in os.walk(dep):
for file in files:
@@ -67,7 +84,7 @@ def main(argv):
basename = os.path.basename(dep)
dirname = os.path.dirname(dep)
arcname = os.path.join(dirname, 'chrome-sandbox') if basename == 'chrome_sandbox' else dep
z.write(dep, arcname)
z.write(dep, os.path.basename(arcname) if should_flatten else arcname)
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))

View File

@@ -12,12 +12,16 @@ buildflag_header("buildflags") {
"ENABLE_DESKTOP_CAPTURER=$enable_desktop_capturer",
"ENABLE_RUN_AS_NODE=$enable_run_as_node",
"ENABLE_OSR=$enable_osr",
"ENABLE_VIEW_API=$enable_view_api",
"ENABLE_REMOTE_MODULE=$enable_remote_module",
"ENABLE_VIEWS_API=$enable_views_api",
"ENABLE_PEPPER_FLASH=$enable_pepper_flash",
"ENABLE_PDF_VIEWER=$enable_pdf_viewer",
"ENABLE_TTS=$enable_tts",
"ENABLE_COLOR_CHOOSER=$enable_color_chooser",
"ENABLE_ELECTRON_EXTENSIONS=$enable_electron_extensions",
"ENABLE_BUILTIN_SPELLCHECKER=$enable_builtin_spellchecker",
"ENABLE_PICTURE_IN_PICTURE=$enable_picture_in_picture",
"ENABLE_WIN_DARK_MODE_WINDOW_UI=$enable_win_dark_mode_window_ui",
"OVERRIDE_LOCATION_PROVIDER=$enable_fake_location_provider",
]
}

View File

@@ -10,14 +10,18 @@ declare_args() {
enable_osr = true
enable_view_api = false
enable_remote_module = true
enable_pdf_viewer = false
enable_views_api = true
enable_pdf_viewer = true
enable_tts = true
enable_color_chooser = true
enable_picture_in_picture = true
# Provide a fake location provider for mocking
# the geolocation responses. Disable it if you
# need to test with chromium's location provider.
@@ -28,5 +32,11 @@ declare_args() {
enable_pepper_flash = true
# Enable Chrome extensions support.
enable_electron_extensions = false
enable_electron_extensions = true
# Enable Spellchecker support
enable_builtin_spellchecker = true
# Undocumented Windows dark mode API
enable_win_dark_mode_window_ui = false
}

View File

@@ -3,6 +3,7 @@
# found in the LICENSE file.
import("//build/config/ui.gni")
import("//components/spellcheck/spellcheck_build_features.gni")
import("//electron/buildflags/buildflags.gni")
import("//printing/buildflags/buildflags.gni")
import("//third_party/widevine/cdm/widevine.gni")
@@ -11,8 +12,12 @@ import("//third_party/widevine/cdm/widevine.gni")
static_library("chrome") {
visibility = [ "//electron:electron_lib" ]
sources = [
"//chrome/browser/accessibility/accessibility_ui.cc",
"//chrome/browser/accessibility/accessibility_ui.h",
"//chrome/browser/browser_process.cc",
"//chrome/browser/browser_process.h",
"//chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc",
"//chrome/browser/crash_upload_list/crash_upload_list_crashpad.h",
"//chrome/browser/devtools/devtools_contents_resizing_strategy.cc",
"//chrome/browser/devtools/devtools_contents_resizing_strategy.h",
"//chrome/browser/devtools/devtools_embedder_message_dispatcher.cc",
@@ -21,14 +26,8 @@ static_library("chrome") {
"//chrome/browser/devtools/devtools_file_system_indexer.h",
"//chrome/browser/extensions/global_shortcut_listener.cc",
"//chrome/browser/extensions/global_shortcut_listener.h",
"//chrome/browser/extensions/global_shortcut_listener_mac.h",
"//chrome/browser/extensions/global_shortcut_listener_mac.mm",
"//chrome/browser/extensions/global_shortcut_listener_win.cc",
"//chrome/browser/extensions/global_shortcut_listener_win.h",
"//chrome/browser/icon_loader.cc",
"//chrome/browser/icon_loader.h",
"//chrome/browser/icon_loader_mac.mm",
"//chrome/browser/icon_loader_win.cc",
"//chrome/browser/icon_manager.cc",
"//chrome/browser/icon_manager.h",
"//chrome/browser/net/chrome_mojo_proxy_resolver_factory.cc",
@@ -37,25 +36,59 @@ static_library("chrome") {
"//chrome/browser/net/proxy_config_monitor.h",
"//chrome/browser/net/proxy_service_factory.cc",
"//chrome/browser/net/proxy_service_factory.h",
"//chrome/browser/predictors/preconnect_manager.cc",
"//chrome/browser/predictors/preconnect_manager.h",
"//chrome/browser/predictors/predictors_features.cc",
"//chrome/browser/predictors/predictors_features.h",
"//chrome/browser/predictors/proxy_lookup_client_impl.cc",
"//chrome/browser/predictors/proxy_lookup_client_impl.h",
"//chrome/browser/predictors/resolve_host_client_impl.cc",
"//chrome/browser/predictors/resolve_host_client_impl.h",
"//chrome/browser/ssl/security_state_tab_helper.cc",
"//chrome/browser/ssl/security_state_tab_helper.h",
"//chrome/browser/ui/autofill/popup_view_common.cc",
"//chrome/browser/ui/autofill/popup_view_common.h",
"//chrome/browser/win/chrome_process_finder.cc",
"//chrome/browser/win/chrome_process_finder.h",
"//chrome/browser/ssl/tls_deprecation_config.cc",
"//chrome/browser/ui/views/autofill/autofill_popup_view_utils.cc",
"//chrome/browser/ui/views/autofill/autofill_popup_view_utils.h",
"//extensions/browser/app_window/size_constraints.cc",
"//extensions/browser/app_window/size_constraints.h",
]
if (is_mac) {
sources += [
"//chrome/browser/extensions/global_shortcut_listener_mac.h",
"//chrome/browser/extensions/global_shortcut_listener_mac.mm",
"//chrome/browser/icon_loader_mac.mm",
"//chrome/browser/media/webrtc/system_media_capture_permissions_mac.h",
"//chrome/browser/media/webrtc/system_media_capture_permissions_mac.mm",
]
}
if (is_win) {
sources += [
"//chrome/browser/extensions/global_shortcut_listener_win.cc",
"//chrome/browser/extensions/global_shortcut_listener_win.h",
"//chrome/browser/icon_loader_win.cc",
"//chrome/browser/win/chrome_process_finder.cc",
"//chrome/browser/win/chrome_process_finder.h",
"//chrome/child/v8_crashpad_support_win.cc",
"//chrome/child/v8_crashpad_support_win.h",
]
}
public_deps = [
"//chrome/common",
"//chrome/common:version_header",
"//components/keyed_service/content",
"//components/paint_preview/buildflags",
"//components/proxy_config",
"//components/security_state/content",
"//content/public/browser",
]
deps = [
"//components/feature_engagement:buildflags",
"//chrome/browser:resource_prefetch_predictor_proto",
"//chrome/services/speech:buildflags",
"//components/optimization_guide/proto:optimization_guide_proto",
]
if (is_linux) {
@@ -63,7 +96,23 @@ static_library("chrome") {
sources += [
"//chrome/browser/extensions/global_shortcut_listener_x11.cc",
"//chrome/browser/extensions/global_shortcut_listener_x11.h",
"//chrome/browser/ui/views/status_icons/concat_menu_model.cc",
"//chrome/browser/ui/views/status_icons/concat_menu_model.h",
"//chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc",
"//chrome/browser/ui/views/status_icons/status_icon_linux_dbus.h",
]
public_deps += [
"//components/dbus/menu",
"//components/dbus/thread_linux",
]
}
if (is_win) {
sources += [
"//chrome/browser/win/icon_reader_service.cc",
"//chrome/browser/win/icon_reader_service.h",
]
public_deps += [ "//chrome/services/util_win:lib" ]
}
if (enable_desktop_capturer) {
@@ -88,11 +137,15 @@ static_library("chrome") {
]
if (use_aura) {
sources += [
"//chrome/browser/platform_util_aura.cc",
"//chrome/browser/ui/views/color_chooser_aura.cc",
"//chrome/browser/ui/views/color_chooser_aura.h",
]
sources += [ "//chrome/browser/platform_util_aura.cc" ]
if (!is_win) {
sources += [
"//chrome/browser/ui/views/color_chooser_aura.cc",
"//chrome/browser/ui/views/color_chooser_aura.h",
]
}
deps += [ "//components/feature_engagement" ]
}
@@ -122,17 +175,6 @@ static_library("chrome") {
}
}
if (enable_tts) {
sources += [
"//chrome/browser/speech/tts_controller_delegate_impl.cc",
"//chrome/browser/speech/tts_controller_delegate_impl.h",
"//chrome/browser/speech/tts_message_filter.cc",
"//chrome/browser/speech/tts_message_filter.h",
"//chrome/renderer/tts_dispatcher.cc",
"//chrome/renderer/tts_dispatcher.h",
]
}
if (enable_widevine) {
sources += [
"//chrome/renderer/media/chrome_key_systems.cc",
@@ -159,17 +201,21 @@ static_library("chrome") {
"//chrome/browser/printing/printer_query.h",
"//chrome/browser/printing/printing_message_filter.cc",
"//chrome/browser/printing/printing_message_filter.h",
"//chrome/browser/printing/printing_service.cc",
"//chrome/browser/printing/printing_service.h",
]
public_deps += [
"//chrome/services/printing:lib",
"//components/printing/browser",
"//components/printing/renderer",
"//components/services/pdf_compositor/public/cpp:factory",
"//components/services/pdf_compositor/public/mojom",
"//components/services/print_compositor",
"//components/services/print_compositor/public/cpp",
"//components/services/print_compositor/public/mojom",
]
deps += [
"//components/printing/common",
"//components/services/pdf_compositor",
"//printing",
]
@@ -182,4 +228,202 @@ static_library("chrome") {
]
}
}
if (enable_picture_in_picture) {
sources += [
"//chrome/browser/picture_in_picture/picture_in_picture_window_manager.cc",
"//chrome/browser/picture_in_picture/picture_in_picture_window_manager.h",
"//chrome/browser/ui/views/overlay/back_to_tab_image_button.cc",
"//chrome/browser/ui/views/overlay/back_to_tab_image_button.h",
"//chrome/browser/ui/views/overlay/close_image_button.cc",
"//chrome/browser/ui/views/overlay/close_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",
"//chrome/browser/ui/views/overlay/playback_image_button.h",
"//chrome/browser/ui/views/overlay/resize_handle_button.cc",
"//chrome/browser/ui/views/overlay/resize_handle_button.h",
"//chrome/browser/ui/views/overlay/skip_ad_label_button.cc",
"//chrome/browser/ui/views/overlay/skip_ad_label_button.h",
"//chrome/browser/ui/views/overlay/track_image_button.cc",
"//chrome/browser/ui/views/overlay/track_image_button.h",
]
deps += [
"//chrome/app/vector_icons",
"//components/vector_icons:vector_icons",
]
}
if (enable_electron_extensions) {
sources += [
"//chrome/browser/extensions/chrome_url_request_util.cc",
"//chrome/browser/extensions/chrome_url_request_util.h",
"//chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc",
"//chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.h",
"//chrome/renderer/extensions/extension_hooks_delegate.cc",
"//chrome/renderer/extensions/extension_hooks_delegate.h",
"//chrome/renderer/extensions/tabs_hooks_delegate.cc",
"//chrome/renderer/extensions/tabs_hooks_delegate.h",
]
if (enable_pdf_viewer) {
sources += [
"//chrome/browser/pdf/pdf_extension_util.cc",
"//chrome/browser/pdf/pdf_extension_util.h",
"//chrome/renderer/pepper/chrome_pdf_print_client.cc",
"//chrome/renderer/pepper/chrome_pdf_print_client.h",
]
}
}
if (!is_mas_build) {
sources += [ "//chrome/browser/hang_monitor/hang_crash_dump.h" ]
if (is_mac) {
sources += [ "//chrome/browser/hang_monitor/hang_crash_dump_mac.cc" ]
} else if (is_win) {
sources += [ "//chrome/browser/hang_monitor/hang_crash_dump_win.cc" ]
} else {
sources += [ "//chrome/browser/hang_monitor/hang_crash_dump.cc" ]
}
}
}
source_set("plugins") {
sources = []
deps = []
frameworks = []
# browser side
sources += [
"//chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.cc",
"//chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.h",
"//chrome/browser/renderer_host/pepper/pepper_broker_message_filter.cc",
"//chrome/browser/renderer_host/pepper/pepper_broker_message_filter.h",
"//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" ]
}
if (enable_pepper_flash) {
sources += [
"//chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc",
"//chrome/browser/renderer_host/pepper/pepper_flash_browser_host.h",
"//chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc",
"//chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.h",
"//chrome/browser/renderer_host/pepper/pepper_flash_drm_host.cc",
"//chrome/browser/renderer_host/pepper/pepper_flash_drm_host.h",
]
if (is_mac) {
sources += [
"//chrome/browser/renderer_host/pepper/monitor_finder_mac.h",
"//chrome/browser/renderer_host/pepper/monitor_finder_mac.mm",
]
frameworks += [ "CoreGraphics.framework" ]
}
if (is_linux) {
deps += [ "//components/services/font/public/cpp" ]
}
}
# renderer side
sources += [
"//chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc",
"//chrome/renderer/pepper/chrome_renderer_pepper_host_factory.h",
"//chrome/renderer/pepper/pepper_shared_memory_message_filter.cc",
"//chrome/renderer/pepper/pepper_shared_memory_message_filter.h",
]
if (enable_pepper_flash) {
sources += [
"//chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc",
"//chrome/renderer/pepper/pepper_flash_drm_renderer_host.h",
"//chrome/renderer/pepper/pepper_flash_fullscreen_host.cc",
"//chrome/renderer/pepper/pepper_flash_fullscreen_host.h",
"//chrome/renderer/pepper/pepper_flash_menu_host.cc",
"//chrome/renderer/pepper/pepper_flash_menu_host.h",
"//chrome/renderer/pepper/pepper_flash_renderer_host.cc",
"//chrome/renderer/pepper/pepper_flash_renderer_host.h",
]
}
if (enable_pepper_flash || enable_pdf_viewer) {
sources += [
"//chrome/renderer/pepper/pepper_flash_font_file_host.cc",
"//chrome/renderer/pepper/pepper_flash_font_file_host.h",
]
if (enable_pdf_viewer) {
deps += [ "//components/pdf/renderer" ]
}
}
deps += [
"//components/strings",
"//media:media_buildflags",
"//ppapi/host",
"//ppapi/proxy",
"//ppapi/proxy:ipc",
"//ppapi/shared_impl",
"//skia",
]
}
# This source set is just so we don't have to depend on all of //chrome/browser
# You may have to add new files here during the upgrade if //chrome/browser/spellchecker
# gets more files
source_set("chrome_spellchecker") {
sources = []
deps = []
libs = []
if (enable_builtin_spellchecker) {
sources += [
"//chrome/browser/spellchecker/spell_check_host_chrome_impl.cc",
"//chrome/browser/spellchecker/spell_check_host_chrome_impl.h",
"//chrome/browser/spellchecker/spellcheck_custom_dictionary.cc",
"//chrome/browser/spellchecker/spellcheck_custom_dictionary.h",
"//chrome/browser/spellchecker/spellcheck_factory.cc",
"//chrome/browser/spellchecker/spellcheck_factory.h",
"//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc",
"//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h",
"//chrome/browser/spellchecker/spellcheck_language_blocklist_policy_handler.cc",
"//chrome/browser/spellchecker/spellcheck_language_blocklist_policy_handler.h",
"//chrome/browser/spellchecker/spellcheck_language_policy_handler.cc",
"//chrome/browser/spellchecker/spellcheck_language_policy_handler.h",
"//chrome/browser/spellchecker/spellcheck_service.cc",
"//chrome/browser/spellchecker/spellcheck_service.h",
"//chrome/common/pref_names.h",
]
if (has_spellcheck_panel) {
sources += [
"//chrome/browser/spellchecker/spell_check_panel_host_impl.cc",
"//chrome/browser/spellchecker/spell_check_panel_host_impl.h",
]
}
if (use_browser_spellchecker) {
sources += [
"//chrome/browser/spellchecker/spelling_request.cc",
"//chrome/browser/spellchecker/spelling_request.h",
]
}
deps += [
"//base:base_static",
"//components/language/core/browser",
"//components/spellcheck:buildflags",
"//components/sync",
]
}
public_deps = [
"//components/spellcheck/browser",
"//components/spellcheck/common",
"//components/spellcheck/renderer",
]
}

View File

@@ -36,11 +36,10 @@ net::NSSCertDatabase* GetNSSCertDatabaseForResourceContext(
// Linux has only a single persistent slot compared to ChromeOS's separate
// public and private slot.
// Redirect any slot usage to this persistent slot on Linux.
crypto::EnsureNSSInit();
g_nss_cert_database = new net::NSSCertDatabase(
crypto::ScopedPK11Slot(
crypto::GetPersistentNSSKeySlot()) /* public slot */,
crypto::ScopedPK11Slot(
crypto::GetPersistentNSSKeySlot()) /* private slot */);
crypto::ScopedPK11Slot(PK11_GetInternalKeySlot()) /* public slot */,
crypto::ScopedPK11Slot(PK11_GetInternalKeySlot()) /* private slot */);
}
return g_nss_cert_database;
}
@@ -71,12 +70,12 @@ net::NSSCertDatabase* GetNSSCertDatabaseForResourceContext(
// static
void CertificateManagerModel::Create(content::BrowserContext* browser_context,
const CreationCallback& callback) {
CreationCallback callback) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
base::PostTaskWithTraits(
FROM_HERE, {BrowserThread::IO},
base::BindOnce(&CertificateManagerModel::GetCertDBOnIOThread,
browser_context->GetResourceContext(), callback));
base::PostTask(FROM_HERE, {BrowserThread::IO},
base::BindOnce(&CertificateManagerModel::GetCertDBOnIOThread,
browser_context->GetResourceContext(),
std::move(callback)));
}
CertificateManagerModel::CertificateManagerModel(
@@ -86,7 +85,7 @@ CertificateManagerModel::CertificateManagerModel(
DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
CertificateManagerModel::~CertificateManagerModel() {}
CertificateManagerModel::~CertificateManagerModel() = default;
int CertificateManagerModel::ImportFromPKCS12(
PK11SlotInfo* slot_info,
@@ -131,35 +130,42 @@ bool CertificateManagerModel::Delete(CERTCertificate* cert) {
void CertificateManagerModel::DidGetCertDBOnUIThread(
net::NSSCertDatabase* cert_db,
bool is_user_db_available,
const CreationCallback& callback) {
CreationCallback callback) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
std::unique_ptr<CertificateManagerModel> model(
new CertificateManagerModel(cert_db, is_user_db_available));
callback.Run(std::move(model));
std::move(callback).Run(std::move(model));
}
// static
void CertificateManagerModel::DidGetCertDBOnIOThread(
const CreationCallback& callback,
CreationCallback callback,
net::NSSCertDatabase* cert_db) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
bool is_user_db_available = !!cert_db->GetPublicSlot();
base::PostTaskWithTraits(
base::PostTask(
FROM_HERE, {BrowserThread::UI},
base::BindOnce(&CertificateManagerModel::DidGetCertDBOnUIThread, cert_db,
is_user_db_available, callback));
is_user_db_available, std::move(callback)));
}
// static
void CertificateManagerModel::GetCertDBOnIOThread(
content::ResourceContext* context,
const CreationCallback& callback) {
CreationCallback callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
net::NSSCertDatabase* cert_db = GetNSSCertDatabaseForResourceContext(
context, base::BindOnce(&CertificateManagerModel::DidGetCertDBOnIOThread,
callback));
auto did_get_cert_db_callback = base::AdaptCallbackForRepeating(
base::BindOnce(&CertificateManagerModel::DidGetCertDBOnIOThread,
std::move(callback)));
net::NSSCertDatabase* cert_db =
GetNSSCertDatabaseForResourceContext(context, did_get_cert_db_callback);
// If the NSS database was already available, |cert_db| is non-null and
// |did_get_cert_db_callback| has not been called. Call it explicitly.
if (cert_db)
DidGetCertDBOnIOThread(callback, cert_db);
did_get_cert_db_callback.Run(cert_db);
}

View File

@@ -24,14 +24,14 @@ class ResourceContext;
// manager dialog, and processes changes from the view.
class CertificateManagerModel {
public:
typedef base::Callback<void(std::unique_ptr<CertificateManagerModel>)>
CreationCallback;
using CreationCallback =
base::OnceCallback<void(std::unique_ptr<CertificateManagerModel>)>;
// Creates a CertificateManagerModel. The model will be passed to the callback
// when it is ready. The caller must ensure the model does not outlive the
// |browser_context|.
static void Create(content::BrowserContext* browser_context,
const CreationCallback& callback);
CreationCallback callback);
~CertificateManagerModel();
@@ -100,11 +100,11 @@ class CertificateManagerModel {
// file for details.
static void DidGetCertDBOnUIThread(net::NSSCertDatabase* cert_db,
bool is_user_db_available,
const CreationCallback& callback);
static void DidGetCertDBOnIOThread(const CreationCallback& callback,
CreationCallback callback);
static void DidGetCertDBOnIOThread(CreationCallback callback,
net::NSSCertDatabase* cert_db);
static void GetCertDBOnIOThread(content::ResourceContext* context,
const CreationCallback& callback);
CreationCallback callback);
net::NSSCertDatabase* cert_db_;
// Whether the certificate database has a public slot associated with the

View File

@@ -56,7 +56,7 @@
#include <stddef.h>
#include "shell/browser/browser.h"
#include "shell/common/atom_command_line.h"
#include "shell/common/electron_command_line.h"
#include "base/base_paths.h"
#include "base/bind.h"
@@ -68,7 +68,6 @@
#include "base/logging.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/message_loop/message_loop.h"
#include "base/metrics/histogram_macros.h"
#include "base/path_service.h"
#include "base/posix/eintr_wrapper.h"
@@ -93,7 +92,6 @@
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "net/base/network_interfaces.h"
#include "ui/base/l10n/l10n_util.h"
#if defined(TOOLKIT_VIEWS) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
#include "ui/views/linux_ui/linux_ui.h"
@@ -185,7 +183,7 @@ int WaitSocketForRead(int fd, const base::TimeDelta& timeout) {
FD_ZERO(&read_fds);
FD_SET(fd, &read_fds);
return HANDLE_EINTR(select(fd + 1, &read_fds, NULL, NULL, &tv));
return HANDLE_EINTR(select(fd + 1, &read_fds, nullptr, nullptr, &tv));
}
// Read a message from a socket fd, with an optional timeout.
@@ -362,7 +360,7 @@ bool CheckCookie(const base::FilePath& path, const base::FilePath& cookie) {
}
bool IsAppSandboxed() {
#if defined(OS_MACOSX)
#if defined(OS_MAC)
// NB: There is no sane API for this, we have to just guess by
// reading tea leaves
base::FilePath home_dir;
@@ -373,7 +371,7 @@ bool IsAppSandboxed() {
return home_dir.value().find("Library/Containers") != std::string::npos;
#else
return false;
#endif // defined(OS_MACOSX)
#endif // defined(OS_MAC)
}
bool ConnectSocket(ScopedSocket* socket,
@@ -423,7 +421,7 @@ bool ConnectSocket(ScopedSocket* socket,
}
}
#if defined(OS_MACOSX)
#if defined(OS_MAC)
bool ReplaceOldSingletonLock(const base::FilePath& symlink_content,
const base::FilePath& lock_path) {
// Try taking an flock(2) on the file. Failure means the lock is taken so we
@@ -449,14 +447,14 @@ bool ReplaceOldSingletonLock(const base::FilePath& symlink_content,
// lock. We never flock() the lock file from now on. I.e. we assume that an
// old version of Chrome will not run with the same user data dir after this
// version has run.
if (!base::DeleteFile(lock_path, false)) {
if (!base::DeleteFile(lock_path)) {
PLOG(ERROR) << "Could not delete old singleton lock.";
return false;
}
return SymlinkPath(symlink_content, lock_path);
}
#endif // defined(OS_MACOSX)
#endif // defined(OS_MAC)
} // namespace
@@ -705,7 +703,7 @@ void ProcessSingleton::LinuxWatcher::SocketReader::FinishWithACK(
if (shutdown(fd_, SHUT_WR) < 0)
PLOG(ERROR) << "shutdown() failed";
base::PostTaskWithTraits(
base::PostTask(
FROM_HERE, {BrowserThread::IO},
base::BindOnce(&ProcessSingleton::LinuxWatcher::RemoveSocketReader,
parent_, this));
@@ -827,11 +825,10 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout(
return PROCESS_NONE;
to_send.append(current_dir.value());
const std::vector<std::string>& argv = electron::AtomCommandLine::argv();
for (std::vector<std::string>::const_iterator it = argv.begin();
it != argv.end(); ++it) {
const std::vector<std::string>& argv = electron::ElectronCommandLine::argv();
for (const auto& arg : argv) {
to_send.push_back(kTokenDelimiter);
to_send.append(*it);
to_send.append(arg);
}
// Send the message
@@ -885,10 +882,9 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessOrCreate() {
void ProcessSingleton::StartListeningOnSocket() {
watcher_ = new LinuxWatcher(this);
base::PostTaskWithTraits(
FROM_HERE, {BrowserThread::IO},
base::BindOnce(&ProcessSingleton::LinuxWatcher::StartListening, watcher_,
sock_));
base::PostTask(FROM_HERE, {BrowserThread::IO},
base::BindOnce(&ProcessSingleton::LinuxWatcher::StartListening,
watcher_, sock_));
}
void ProcessSingleton::OnBrowserReady() {
@@ -973,7 +969,7 @@ bool ProcessSingleton::Create() {
if (!SymlinkPath(symlink_content, lock_path_)) {
// TODO(jackhou): Remove this case once this code is stable on Mac.
// http://crbug.com/367612
#if defined(OS_MACOSX)
#if defined(OS_MAC)
// On Mac, an existing non-symlink lock file means the lock could be held by
// the old process singleton code. If we can successfully replace the lock,
// continue as normal.

View File

@@ -23,7 +23,6 @@
#include "chrome/browser/win/chrome_process_finder.h"
#include "content/public/common/result_codes.h"
#include "net/base/escape.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/win/hwnd_util.h"
namespace {
@@ -198,7 +197,7 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcess() {
return PROCESS_NONE;
}
switch (chrome::AttemptToNotifyRunningChrome(remote_window_, false)) {
switch (chrome::AttemptToNotifyRunningChrome(remote_window_)) {
case chrome::NOTIFY_SUCCESS:
return PROCESS_NOTIFIED;
case chrome::NOTIFY_FAILED:

View File

@@ -24,18 +24,18 @@ GlobalMenuBarRegistrarX11* GlobalMenuBarRegistrarX11::GetInstance() {
return base::Singleton<GlobalMenuBarRegistrarX11>::get();
}
void GlobalMenuBarRegistrarX11::OnWindowMapped(unsigned long xid) {
live_xids_.insert(xid);
void GlobalMenuBarRegistrarX11::OnWindowMapped(x11::Window window) {
live_windows_.insert(window);
if (registrar_proxy_)
RegisterXID(xid);
RegisterXWindow(window);
}
void GlobalMenuBarRegistrarX11::OnWindowUnmapped(unsigned long xid) {
void GlobalMenuBarRegistrarX11::OnWindowUnmapped(x11::Window window) {
if (registrar_proxy_)
UnregisterXID(xid);
UnregisterXWindow(window);
live_xids_.erase(xid);
live_windows_.erase(window);
}
GlobalMenuBarRegistrarX11::GlobalMenuBarRegistrarX11()
@@ -63,9 +63,9 @@ GlobalMenuBarRegistrarX11::~GlobalMenuBarRegistrarX11() {
}
}
void GlobalMenuBarRegistrarX11::RegisterXID(unsigned long xid) {
void GlobalMenuBarRegistrarX11::RegisterXWindow(x11::Window window) {
DCHECK(registrar_proxy_);
std::string path = electron::GlobalMenuBarX11::GetPathForWindow(xid);
std::string path = electron::GlobalMenuBarX11::GetPathForWindow(window);
ANNOTATE_SCOPED_MEMORY_LEAK; // http://crbug.com/314087
// TODO(erg): The mozilla implementation goes to a lot of callback trouble
@@ -76,13 +76,13 @@ void GlobalMenuBarRegistrarX11::RegisterXID(unsigned long xid) {
// I don't see any reason why we should care if "RegisterWindow" completes or
// not.
g_dbus_proxy_call(registrar_proxy_, "RegisterWindow",
g_variant_new("(uo)", xid, path.c_str()),
g_variant_new("(uo)", window, path.c_str()),
G_DBUS_CALL_FLAGS_NONE, -1, nullptr, nullptr, nullptr);
}
void GlobalMenuBarRegistrarX11::UnregisterXID(unsigned long xid) {
void GlobalMenuBarRegistrarX11::UnregisterXWindow(x11::Window window) {
DCHECK(registrar_proxy_);
std::string path = electron::GlobalMenuBarX11::GetPathForWindow(xid);
std::string path = electron::GlobalMenuBarX11::GetPathForWindow(window);
ANNOTATE_SCOPED_MEMORY_LEAK; // http://crbug.com/314087
// TODO(erg): The mozilla implementation goes to a lot of callback trouble
@@ -93,7 +93,7 @@ void GlobalMenuBarRegistrarX11::UnregisterXID(unsigned long xid) {
// I don't see any reason why we should care if "UnregisterWindow" completes
// or not.
g_dbus_proxy_call(registrar_proxy_, "UnregisterWindow",
g_variant_new("(u)", xid), G_DBUS_CALL_FLAGS_NONE, -1,
g_variant_new("(u)", window), G_DBUS_CALL_FLAGS_NONE, -1,
nullptr, nullptr, nullptr);
}
@@ -120,10 +120,9 @@ void GlobalMenuBarRegistrarX11::OnProxyCreated(GObject* source,
void GlobalMenuBarRegistrarX11::OnNameOwnerChanged(GObject* /* ignored */,
GParamSpec* /* ignored */) {
// If the name owner changed, we need to reregister all the live xids with
// the system.
for (std::set<unsigned long>::const_iterator it = live_xids_.begin();
it != live_xids_.end(); ++it) {
RegisterXID(*it);
// If the name owner changed, we need to reregister all the live x11::Window
// with the system.
for (const auto& window : live_windows_) {
RegisterXWindow(window);
}
}

View File

@@ -12,19 +12,20 @@
#include "base/memory/ref_counted.h"
#include "base/memory/singleton.h"
#include "ui/base/glib/glib_signal.h"
#include "ui/gfx/x/xproto.h"
// Advertises our menu bars to Unity.
//
// GlobalMenuBarX11 is responsible for managing the DbusmenuServer for each
// XID. We need a separate object to own the dbus channel to
// x11::Window. We need a separate object to own the dbus channel to
// com.canonical.AppMenu.Registrar and to register/unregister the mapping
// between a XID and the DbusmenuServer instance we are offering.
// between a x11::Window and the DbusmenuServer instance we are offering.
class GlobalMenuBarRegistrarX11 {
public:
static GlobalMenuBarRegistrarX11* GetInstance();
void OnWindowMapped(unsigned long xid);
void OnWindowUnmapped(unsigned long xid);
void OnWindowMapped(x11::Window window);
void OnWindowUnmapped(x11::Window window);
private:
friend struct base::DefaultSingletonTraits<GlobalMenuBarRegistrarX11>;
@@ -33,8 +34,8 @@ class GlobalMenuBarRegistrarX11 {
~GlobalMenuBarRegistrarX11();
// Sends the actual message.
void RegisterXID(unsigned long xid);
void UnregisterXID(unsigned long xid);
void RegisterXWindow(x11::Window window);
void UnregisterXWindow(x11::Window window);
CHROMEG_CALLBACK_1(GlobalMenuBarRegistrarX11,
void,
@@ -49,9 +50,9 @@ class GlobalMenuBarRegistrarX11 {
GDBusProxy* registrar_proxy_;
// Window XIDs which want to be registered, but haven't yet been because
// x11::Window which want to be registered, but haven't yet been because
// we're waiting for the proxy to become available.
std::set<unsigned long> live_xids_;
std::set<x11::Window> live_windows_;
DISALLOW_COPY_AND_ASSIGN(GlobalMenuBarRegistrarX11);
};

View File

@@ -1,61 +0,0 @@
# Copyright (c) 2018 GitHub, Inc.
# Use of this source code is governed by the MIT license that can be
# found in the LICENSE file.
component("pepper_flash") {
visibility = [ "//electron:electron_lib" ]
defines = [ "IS_PEPPER_FLASH_IMPL" ]
sources = [
"//chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.cc",
"//chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.h",
"//chrome/browser/renderer_host/pepper/pepper_broker_message_filter.cc",
"//chrome/browser/renderer_host/pepper/pepper_broker_message_filter.h",
"//chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc",
"//chrome/browser/renderer_host/pepper/pepper_flash_browser_host.h",
"//chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc",
"//chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.h",
"//chrome/browser/renderer_host/pepper/pepper_flash_drm_host.cc",
"//chrome/browser/renderer_host/pepper/pepper_flash_drm_host.h",
"//chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc",
"//chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h",
"//chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc",
"//chrome/renderer/pepper/chrome_renderer_pepper_host_factory.h",
"//chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc",
"//chrome/renderer/pepper/pepper_flash_drm_renderer_host.h",
"//chrome/renderer/pepper/pepper_flash_font_file_host.cc",
"//chrome/renderer/pepper/pepper_flash_font_file_host.h",
"//chrome/renderer/pepper/pepper_flash_fullscreen_host.cc",
"//chrome/renderer/pepper/pepper_flash_fullscreen_host.h",
"//chrome/renderer/pepper/pepper_flash_menu_host.cc",
"//chrome/renderer/pepper/pepper_flash_menu_host.h",
"//chrome/renderer/pepper/pepper_flash_renderer_host.cc",
"//chrome/renderer/pepper/pepper_flash_renderer_host.h",
"//chrome/renderer/pepper/pepper_helper.cc",
"//chrome/renderer/pepper/pepper_helper.h",
"//chrome/renderer/pepper/pepper_shared_memory_message_filter.cc",
"//chrome/renderer/pepper/pepper_shared_memory_message_filter.h",
]
deps = [
"//content/public/browser",
"//content/public/renderer",
"//media:media_buildflags",
"//ppapi/host",
"//ppapi/proxy",
"//ppapi/proxy:ipc",
"//ppapi/shared_impl",
"//services/device/public/mojom",
"//skia",
"//third_party/adobe/flash:flapper_version_h",
"//ui/base",
"//ui/base/clipboard",
]
if (is_mac) {
sources += [
"//chrome/browser/renderer_host/pepper/monitor_finder_mac.h",
"//chrome/browser/renderer_host/pepper/monitor_finder_mac.mm",
]
}
if (is_linux) {
deps += [ "//components/services/font/public/cpp" ]
}
}

View File

@@ -1,54 +1,54 @@
import { app, dialog, BrowserWindow, shell, ipcMain } from 'electron'
import * as path from 'path'
import { app, dialog, BrowserWindow, shell, ipcMain } from 'electron';
import * as path from 'path';
import * as url from 'url';
let mainWindow: BrowserWindow | null = null
let mainWindow: BrowserWindow | null = null;
// Quit when all windows are closed.
app.on('window-all-closed', () => {
app.quit()
})
app.quit();
});
function decorateURL (url: string) {
// safely add `?utm_source=default_app
const parsedUrl = new URL(url)
parsedUrl.searchParams.append('utm_source', 'default_app')
return parsedUrl.toString()
const parsedUrl = new URL(url);
parsedUrl.searchParams.append('utm_source', 'default_app');
return parsedUrl.toString();
}
// Find the shortest path to the electron binary
const absoluteElectronPath = process.execPath
const relativeElectronPath = path.relative(process.cwd(), absoluteElectronPath)
const absoluteElectronPath = process.execPath;
const relativeElectronPath = path.relative(process.cwd(), absoluteElectronPath);
const electronPath = absoluteElectronPath.length < relativeElectronPath.length
? absoluteElectronPath
: relativeElectronPath
: relativeElectronPath;
const indexPath = path.resolve(app.getAppPath(), 'index.html')
const indexPath = path.resolve(app.getAppPath(), 'index.html');
function isTrustedSender (webContents: Electron.WebContents) {
if (webContents !== (mainWindow && mainWindow.webContents)) {
return false
return false;
}
const parsedUrl = new URL(webContents.getURL())
const urlPath = process.platform === 'win32'
// Strip the prefixed "/" that occurs on windows
? path.resolve(parsedUrl.pathname.substr(1))
: parsedUrl.pathname
return parsedUrl.protocol === 'file:' && urlPath === indexPath
try {
return url.fileURLToPath(webContents.getURL()) === indexPath;
} catch {
return false;
}
}
ipcMain.handle('bootstrap', (event) => {
return isTrustedSender(event.sender) ? electronPath : null
})
return isTrustedSender(event.sender) ? electronPath : null;
});
async function createWindow () {
await app.whenReady()
await app.whenReady();
const options: Electron.BrowserWindowConstructorOptions = {
width: 900,
height: 600,
width: 960,
height: 620,
autoHideMenuBar: true,
backgroundColor: '#FFFFFF',
backgroundColor: '#2f3241',
webPreferences: {
preload: path.resolve(__dirname, 'preload.js'),
contextIsolation: true,
@@ -57,46 +57,46 @@ async function createWindow () {
},
useContentSize: true,
show: false
}
};
if (process.platform === 'linux') {
options.icon = path.join(__dirname, 'icon.png')
options.icon = path.join(__dirname, 'icon.png');
}
mainWindow = new BrowserWindow(options)
mainWindow.on('ready-to-show', () => mainWindow!.show())
mainWindow = new BrowserWindow(options);
mainWindow.on('ready-to-show', () => mainWindow!.show());
mainWindow.webContents.on('new-window', (event, url) => {
event.preventDefault()
shell.openExternal(decorateURL(url))
})
event.preventDefault();
shell.openExternal(decorateURL(url));
});
mainWindow.webContents.session.setPermissionRequestHandler((webContents, permission, done) => {
const parsedUrl = new URL(webContents.getURL())
const parsedUrl = new URL(webContents.getURL());
const options: Electron.MessageBoxOptions = {
title: 'Permission Request',
message: `Allow '${parsedUrl.origin}' to access '${permission}'?`,
buttons: ['OK', 'Cancel'],
cancelId: 1
}
};
dialog.showMessageBox(mainWindow!, options).then(({ response }) => {
done(response === 0)
})
})
done(response === 0);
});
});
return mainWindow
return mainWindow;
}
export const loadURL = async (appUrl: string) => {
mainWindow = await createWindow()
mainWindow.loadURL(appUrl)
mainWindow.focus()
}
mainWindow = await createWindow();
mainWindow.loadURL(appUrl);
mainWindow.focus();
};
export const loadFile = async (appPath: string) => {
mainWindow = await createWindow()
mainWindow.loadFile(appPath)
mainWindow.focus()
}
mainWindow = await createWindow();
mainWindow.loadFile(appPath);
mainWindow.focus();
};

View File

@@ -2,10 +2,9 @@
<head>
<title>Electron</title>
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self'; style-src 'self'; img-src 'self'; connect-src 'self'" />
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'sha256-6PH54BfkNq/EMMhUY7nhHf3c+AxloOwfy7hWyT01CM8='; style-src 'self'; img-src 'self'; connect-src 'self'" />
<link href="./styles.css" type="text/css" rel="stylesheet" />
<link href="./octicon/build.css" type="text/css" rel="stylesheet" />
<script defer src="./index.js"></script>
</head>
<body>
@@ -54,36 +53,39 @@
<nav>
<div class="linkcol">
<a class="hero-link" target="_blank" href="https://electronjs.org/blog">
<span class="octicon hero-octicon octicon-gist" aria-hidden="true"></span>
<span class="octicon hero-octicon octicon-code-square-24" aria-hidden="true"></span>
<h4>Blog</h4>
</a>
</div>
<div class="linkcol">
<a class="hero-link" target="_blank" href="https://github.com/electron/electron">
<span class="octicon hero-octicon octicon-mark-github" aria-hidden="true"></span>
<span class="octicon hero-octicon octicon-mark-github-16" aria-hidden="true"></span>
<h4>Repository</h4>
</a>
</div>
<div class="linkcol">
<a class="hero-link" target="_blank" href="https://electronjs.org/docs">
<span class="octicon hero-octicon octicon-gear" aria-hidden="true"></span>
<span class="octicon hero-octicon octicon-book-24" aria-hidden="true"></span>
<h4>Docs</h4>
</a>
</div>
<div class="linkcol">
<a class="hero-link" target="_blank" href="https://github.com/electron/electron-api-demos">
<span class="octicon hero-octicon octicon-star" aria-hidden="true"></span>
<span class="octicon hero-octicon octicon-star-fill-24" aria-hidden="true"></span>
<h4>API Demos</h4>
</a>
</div>
<div class="linkcol">
<a class="hero-link" target="_blank" href="https://electronforge.io">
<span class="octicon hero-octicon octicon-gift" aria-hidden="true"></span>
<span class="octicon hero-octicon octicon-gift-24" aria-hidden="true"></span>
<h4>Forge</h4>
</a>
</div>
</div>
</nav>
<script>
window.electronDefaultApp.initialize()
</script>
</body>
</html>

View File

@@ -1,30 +0,0 @@
async function getOcticonSvg (name: string) {
try {
const response = await fetch(`octicon/${name}.svg`)
const div = document.createElement('div')
div.innerHTML = await response.text()
return div
} catch {
return null
}
}
async function loadSVG (element: HTMLSpanElement) {
for (const cssClass of element.classList) {
if (cssClass.startsWith('octicon-')) {
const icon = await getOcticonSvg(cssClass.substr(8))
if (icon) {
for (const elemClass of element.classList) {
icon.classList.add(elemClass)
}
element.before(icon)
element.remove()
break
}
}
}
}
for (const element of document.querySelectorAll<HTMLSpanElement>('.octicon')) {
loadSVG(element)
}

View File

@@ -1,8 +1,9 @@
import { app, dialog } from 'electron'
import * as electron from 'electron';
import * as fs from 'fs'
import * as path from 'path'
import * as url from 'url'
import * as fs from 'fs';
import * as path from 'path';
import * as url from 'url';
const { app, dialog } = electron;
type DefaultAppOptions = {
file: null | string;
@@ -14,10 +15,10 @@ type DefaultAppOptions = {
modules: string[];
}
const Module = require('module')
const Module = require('module');
// Parse command line options.
const argv = process.argv.slice(1)
const argv = process.argv.slice(1);
const option: DefaultAppOptions = {
file: null,
@@ -27,50 +28,50 @@ const option: DefaultAppOptions = {
interactive: false,
abi: false,
modules: []
}
};
let nextArgIsRequire = false
let nextArgIsRequire = false;
for (const arg of argv) {
if (nextArgIsRequire) {
option.modules.push(arg)
nextArgIsRequire = false
continue
option.modules.push(arg);
nextArgIsRequire = false;
continue;
} else if (arg === '--version' || arg === '-v') {
option.version = true
break
option.version = true;
break;
} else if (arg.match(/^--app=/)) {
option.file = arg.split('=')[1]
break
option.file = arg.split('=')[1];
break;
} else if (arg === '--interactive' || arg === '-i' || arg === '-repl') {
option.interactive = true
option.interactive = true;
} else if (arg === '--test-type=webdriver') {
option.webdriver = true
option.webdriver = true;
} else if (arg === '--require' || arg === '-r') {
nextArgIsRequire = true
continue
nextArgIsRequire = true;
continue;
} else if (arg === '--abi' || arg === '-a') {
option.abi = true
continue
option.abi = true;
continue;
} else if (arg === '--no-help') {
option.noHelp = true
continue
option.noHelp = true;
continue;
} else if (arg[0] === '-') {
continue
continue;
} else {
option.file = arg
break
option.file = arg;
break;
}
}
if (nextArgIsRequire) {
console.error('Invalid Usage: --require [file]\n\n"file" is required')
process.exit(1)
console.error('Invalid Usage: --require [file]\n\n"file" is required');
process.exit(1);
}
// Set up preload modules
if (option.modules.length > 0) {
Module._preloadModules(option.modules)
Module._preloadModules(option.modules);
}
function loadApplicationPackage (packagePath: string) {
@@ -79,102 +80,179 @@ function loadApplicationPackage (packagePath: string) {
configurable: false,
enumerable: true,
value: true
})
});
try {
// Override app name and version.
packagePath = path.resolve(packagePath)
const packageJsonPath = path.join(packagePath, 'package.json')
let appPath
packagePath = path.resolve(packagePath);
const packageJsonPath = path.join(packagePath, 'package.json');
let appPath;
if (fs.existsSync(packageJsonPath)) {
let packageJson
let packageJson;
try {
packageJson = require(packageJsonPath)
packageJson = require(packageJsonPath);
} catch (e) {
showErrorMessage(`Unable to parse ${packageJsonPath}\n\n${e.message}`)
return
showErrorMessage(`Unable to parse ${packageJsonPath}\n\n${e.message}`);
return;
}
if (packageJson.version) {
app.setVersion(packageJson.version)
app.setVersion(packageJson.version);
}
if (packageJson.productName) {
app.name = packageJson.productName
app.name = packageJson.productName;
} else if (packageJson.name) {
app.name = packageJson.name
app.name = packageJson.name;
}
appPath = packagePath
appPath = packagePath;
}
try {
const filePath = Module._resolveFilename(packagePath, module, true)
app._setDefaultAppPaths(appPath || path.dirname(filePath))
const filePath = Module._resolveFilename(packagePath, module, true);
app._setDefaultAppPaths(appPath || path.dirname(filePath));
} catch (e) {
showErrorMessage(`Unable to find Electron app at ${packagePath}\n\n${e.message}`)
return
showErrorMessage(`Unable to find Electron app at ${packagePath}\n\n${e.message}`);
return;
}
// Run the app.
Module._load(packagePath, module, true)
Module._load(packagePath, module, true);
} catch (e) {
console.error('App threw an error during load')
console.error(e.stack || e)
throw e
console.error('App threw an error during load');
console.error(e.stack || e);
throw e;
}
}
function showErrorMessage (message: string) {
app.focus()
dialog.showErrorBox('Error launching app', message)
process.exit(1)
app.focus();
dialog.showErrorBox('Error launching app', message);
process.exit(1);
}
async function loadApplicationByURL (appUrl: string) {
const { loadURL } = await import('./default_app')
loadURL(appUrl)
const { loadURL } = await import('./default_app');
loadURL(appUrl);
}
async function loadApplicationByFile (appPath: string) {
const { loadFile } = await import('./default_app')
loadFile(appPath)
const { loadFile } = await import('./default_app');
loadFile(appPath);
}
function startRepl () {
if (process.platform === 'win32') {
console.error('Electron REPL not currently supported on Windows')
process.exit(1)
console.error('Electron REPL not currently supported on Windows');
process.exit(1);
}
// prevent quitting
app.on('window-all-closed', () => {})
// Prevent quitting.
app.on('window-all-closed', () => {});
const repl = require('repl')
repl.start('> ').on('exit', () => {
process.exit(0)
})
const GREEN = '32';
const colorize = (color: string, s: string) => `\x1b[${color}m${s}\x1b[0m`;
const electronVersion = colorize(GREEN, `v${process.versions.electron}`);
const nodeVersion = colorize(GREEN, `v${process.versions.node}`);
console.info(`
Welcome to the Electron.js REPL \\[._.]/
You can access all Electron.js modules here as well as Node.js modules.
Using: Node.js ${nodeVersion} and Electron.js ${electronVersion}
`);
const { REPLServer } = require('repl');
const repl = new REPLServer({
prompt: '> '
}).on('exit', () => {
process.exit(0);
});
function defineBuiltin (context: any, name: string, getter: Function) {
const setReal = (val: any) => {
// Deleting the property before re-assigning it disables the
// getter/setter mechanism.
delete context[name];
context[name] = val;
};
Object.defineProperty(context, name, {
get: () => {
const lib = getter();
delete context[name];
Object.defineProperty(context, name, {
get: () => lib,
set: setReal,
configurable: true,
enumerable: false
});
return lib;
},
set: setReal,
configurable: true,
enumerable: false
});
}
defineBuiltin(repl.context, 'electron', () => electron);
for (const api of Object.keys(electron) as (keyof typeof electron)[]) {
defineBuiltin(repl.context, api, () => electron[api]);
}
// Copied from node/lib/repl.js. For better DX, we don't want to
// show e.g 'contentTracing' at a higher priority than 'const', so
// we only trigger custom tab-completion when no common words are
// potentially matches.
const commonWords = [
'async', 'await', 'break', 'case', 'catch', 'const', 'continue',
'debugger', 'default', 'delete', 'do', 'else', 'export', 'false',
'finally', 'for', 'function', 'if', 'import', 'in', 'instanceof', 'let',
'new', 'null', 'return', 'switch', 'this', 'throw', 'true', 'try',
'typeof', 'var', 'void', 'while', 'with', 'yield'
];
const electronBuiltins = [...Object.keys(electron), 'original-fs', 'electron'];
const defaultComplete = repl.completer;
repl.completer = (line: string, callback: Function) => {
const lastSpace = line.lastIndexOf(' ');
const currentSymbol = line.substring(lastSpace + 1, repl.cursor);
const filterFn = (c: string) => c.startsWith(currentSymbol);
const ignores = commonWords.filter(filterFn);
const hits = electronBuiltins.filter(filterFn);
if (!ignores.length && hits.length) {
callback(null, [hits, currentSymbol]);
} else {
defaultComplete.apply(repl, [line, callback]);
}
};
}
// Start the specified app if there is one specified in command line, otherwise
// start the default app.
if (option.file && !option.webdriver) {
const file = option.file
const protocol = url.parse(file).protocol
const extension = path.extname(file)
const file = option.file;
const protocol = url.parse(file).protocol;
const extension = path.extname(file);
if (protocol === 'http:' || protocol === 'https:' || protocol === 'file:' || protocol === 'chrome:') {
loadApplicationByURL(file)
loadApplicationByURL(file);
} else if (extension === '.html' || extension === '.htm') {
loadApplicationByFile(path.resolve(file))
loadApplicationByFile(path.resolve(file));
} else {
loadApplicationPackage(file)
loadApplicationPackage(file);
}
} else if (option.version) {
console.log('v' + process.versions.electron)
process.exit(0)
console.log('v' + process.versions.electron);
process.exit(0);
} else if (option.abi) {
console.log(process.versions.modules)
process.exit(0)
console.log(process.versions.modules);
process.exit(0);
} else if (option.interactive) {
startRepl()
startRepl();
} else {
if (!option.noHelp) {
const welcomeMessage = `
@@ -192,10 +270,10 @@ Options:
-i, --interactive Open a REPL to the main process.
-r, --require Module to preload (option can be repeated).
-v, --version Print the version.
-a, --abi Print the Node ABI version.`
-a, --abi Print the Node ABI version.`;
console.log(welcomeMessage)
console.log(welcomeMessage);
}
loadApplicationByFile('index.html')
loadApplicationByFile('index.html');
}

View File

@@ -1,20 +1,53 @@
import { ipcRenderer } from 'electron'
import { ipcRenderer, contextBridge } from 'electron';
async function getOcticonSvg (name: string) {
try {
const response = await fetch(`octicon/${name}.svg`);
const div = document.createElement('div');
div.innerHTML = await response.text();
return div;
} catch {
return null;
}
}
async function loadSVG (element: HTMLSpanElement) {
for (const cssClass of element.classList) {
if (cssClass.startsWith('octicon-')) {
const icon = await getOcticonSvg(cssClass.substr(8));
if (icon) {
for (const elemClass of element.classList) {
icon.classList.add(elemClass);
}
element.before(icon);
element.remove();
break;
}
}
}
}
async function initialize () {
const electronPath = await ipcRenderer.invoke('bootstrap')
const electronPath = await ipcRenderer.invoke('bootstrap');
function replaceText (selector: string, text: string) {
const element = document.querySelector<HTMLElement>(selector)
const element = document.querySelector<HTMLElement>(selector);
if (element) {
element.innerText = text
element.innerText = text;
}
}
replaceText('.electron-version', `Electron v${process.versions.electron}`)
replaceText('.chrome-version', `Chromium v${process.versions.chrome}`)
replaceText('.node-version', `Node v${process.versions.node}`)
replaceText('.v8-version', `v8 v${process.versions.v8}`)
replaceText('.command-example', `${electronPath} path-to-app`)
replaceText('.electron-version', `Electron v${process.versions.electron}`);
replaceText('.chrome-version', `Chromium v${process.versions.chrome}`);
replaceText('.node-version', `Node v${process.versions.node}`);
replaceText('.v8-version', `v8 v${process.versions.v8}`);
replaceText('.command-example', `${electronPath} path-to-app`);
for (const element of document.querySelectorAll<HTMLSpanElement>('.octicon')) {
loadSVG(element);
}
}
document.addEventListener('DOMContentLoaded', initialize)
contextBridge.exposeInMainWorld('electronDefaultApp', {
initialize
});

View File

@@ -8,7 +8,7 @@ body {
}
.container {
margin: 15px 30px 30px 30px;
margin: 15px 30px;
background-color: #2f3241;
flex: 1;
display: flex;

View File

@@ -1,33 +0,0 @@
## Docs Translations
This directory once contained unstructured translations of Electron's
documentation, but has been deprecated in favor of a new translation process
using [Crowdin], a GitHub-friendly platform for collaborative translation.
For more details, visit the [electron/i18n] repo.
## Contributing
If you're interested in helping translate Electron's docs, visit
[Crowdin] and log in with your GitHub account. And thanks!
## Offline Docs
If you miss having access to Electron's raw markdown files in your preferred
language, don't fret! You can still get raw docs, they're just in a
different place now. See [electron/i18n/tree/master/content]
To more easily view and browse offline docs in your language, clone the repo and use [vmd],
an Electron-based GitHub-styled markdown viewer:
```sh
npm i -g vmd
git clone https://github.com/electron/i18n
vmd electron-i18n/content/zh-CN
```
[crowdin.com/project/electron]: https://crowdin.com/project/electron
[Crowdin]: https://crowdin.com/project/electron
[electron/i18n]: https://github.com/electron/i18n#readme
[electron/i18n/tree/master/content]: https://github.com/electron/i18n/tree/master/content
[vmd]: http://ghub.io/vmd

View File

@@ -18,7 +18,6 @@ an issue:
## Guides and Tutorials
* [About Electron](tutorial/about.md)
* [Setting up the Development Environment](tutorial/development-environment.md)
* [Setting up macOS](tutorial/development-environment.md#setting-up-macos)
* [Setting up Windows](tutorial/development-environment.md#setting-up-windows)
@@ -39,6 +38,7 @@ an issue:
* [Using Electron's APIs](tutorial/application-architecture.md#using-electron-apis)
* [Using Node.js APIs](tutorial/application-architecture.md#using-nodejs-apis)
* [Using Native Node.js Modules](tutorial/using-native-node-modules.md)
* [Performance Strategies](tutorial/performance.md)
* Adding Features to Your App
* [Notifications](tutorial/notifications.md)
* [Recent Documents](tutorial/recent-documents.md)
@@ -52,6 +52,7 @@ an issue:
* [Native File Drag & Drop](tutorial/native-file-drag-drop.md)
* [Offscreen Rendering](tutorial/offscreen-rendering.md)
* [Supporting macOS Dark Mode](tutorial/mojave-dark-mode-guide.md)
* [Web embeds in Electron](tutorial/web-embeds.md)
* [Accessibility](tutorial/accessibility.md)
* [Spectron](tutorial/accessibility.md#spectron)
* [Devtron](tutorial/accessibility.md#devtron)
@@ -91,7 +92,6 @@ These individual tutorials expand on topics discussed in the guide above.
* Electron Releases & Developer Feedback
* [Versioning Policy](tutorial/electron-versioning.md)
* [Release Timelines](tutorial/electron-timelines.md)
* [App Feedback Program](tutorial/app-feedback-program.md)
* [Packaging App Source Code with asar](tutorial/application-packaging.md)
* [Generating asar Archives](tutorial/application-packaging.md#generating-asar-archives)
* [Using asar Archives](tutorial/application-packaging.md#using-asar-archives)
@@ -108,9 +108,10 @@ These individual tutorials expand on topics discussed in the guide above.
* [Synopsis](api/synopsis.md)
* [Process Object](api/process.md)
* [Supported Chrome Command Line Switches](api/chrome-command-line-switches.md)
* [Supported Command Line Switches](api/command-line-switches.md)
* [Environment Variables](api/environment-variables.md)
* [Breaking API Changes](api/breaking-changes.md)
* [Chrome Extensions Support](api/extensions.md)
* [Breaking API Changes](breaking-changes.md)
### Custom DOM Elements:
@@ -134,6 +135,7 @@ These individual tutorials expand on topics discussed in the guide above.
* [MenuItem](api/menu-item.md)
* [net](api/net.md)
* [netLog](api/net-log.md)
* [Notification](api/notification.md)
* [powerMonitor](api/power-monitor.md)
* [powerSaveBlocker](api/power-save-blocker.md)
* [protocol](api/protocol.md)

View File

@@ -18,7 +18,7 @@ method, i.e.
```javascript
const { app, globalShortcut } = require('electron')
app.on('ready', () => {
app.whenReady().then(() => {
// Register a 'CommandOrControl+Y' shortcut listener.
globalShortcut.register('CommandOrControl+Y', () => {
// Do stuff when Y and either Command/Control is pressed.
@@ -54,7 +54,7 @@ The `Super` key is mapped to the `Windows` key on Windows and Linux and
* `0` to `9`
* `A` to `Z`
* `F1` to `F24`
* Punctuations like `~`, `!`, `@`, `#`, `$`, etc.
* Punctuation like `~`, `!`, `@`, `#`, `$`, etc.
* `Plus`
* `Space`
* `Tab`

View File

@@ -32,12 +32,14 @@ In most cases, you should do everything in the `ready` event handler.
Returns:
* `launchInfo` Object _macOS_
* `event` Event
* `launchInfo` Record<string, any> _macOS_
Emitted when Electron has finished initializing. On macOS, `launchInfo` holds
the `userInfo` of the `NSUserNotification` that was used to open the application,
if it was launched from Notification Center. You can call `app.isReady()` to
check if this event has already fired.
Emitted once, when Electron has finished initializing. On macOS, `launchInfo`
holds the `userInfo` of the `NSUserNotification` that was used to open the
application, if it was launched from Notification Center. You can also call
`app.isReady()` to check if this event has already fired and `app.whenReady()`
to get a Promise that is fulfilled when Electron is initialized.
### Event: 'window-all-closed'
@@ -74,7 +76,7 @@ Returns:
* `event` Event
Emitted when all windows have been closed and the application will quit.
Calling `event.preventDefault()` will prevent the default behaviour, which is
Calling `event.preventDefault()` will prevent the default behavior, which is
terminating the application.
See the description of the `window-all-closed` event for the differences between
@@ -139,6 +141,16 @@ this event, such as launching the application for the first time, attempting
to re-launch the application when it's already running, or clicking on the
application's dock or taskbar icon.
### Event: 'did-become-active' _macOS_
Returns:
* `event` Event
Emitted when mac application become active. Difference from `activate` event is
that `did-become-active` is emitted every time the app becomes active, not only
when Dock icon is clicked or application is re-launched.
### Event: 'continue-activity' _macOS_
Returns:
@@ -146,7 +158,7 @@ Returns:
* `event` Event
* `type` String - A string identifying the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
* `userInfo` Object - Contains app-specific state stored by the activity on
* `userInfo` unknown - Contains app-specific state stored by the activity on
another device.
Emitted during [Handoff][handoff] when an activity from a different device wants
@@ -189,7 +201,7 @@ Returns:
* `event` Event
* `type` String - A string identifying the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
* `userInfo` Object - Contains app-specific state stored by the activity.
* `userInfo` unknown - Contains app-specific state stored by the activity.
Emitted during [Handoff][handoff] after an activity from this device was successfully
resumed on another one.
@@ -201,9 +213,9 @@ Returns:
* `event` Event
* `type` String - A string identifying the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
* `userInfo` Object - Contains app-specific state stored by the activity.
* `userInfo` unknown - Contains app-specific state stored by the activity.
Emitted when [Handoff][handoff] is about to be resumed on another device. If you need to update the state to be transferred, you should call `event.preventDefault()` immediately, construct a new `userInfo` dictionary and call `app.updateCurrentActiviy()` in a timely manner. Otherwise, the operation will fail and `continue-activity-error` will be called.
Emitted when [Handoff][handoff] is about to be resumed on another device. If you need to update the state to be transferred, you should call `event.preventDefault()` immediately, construct a new `userInfo` dictionary and call `app.updateCurrentActivity()` in a timely manner. Otherwise, the operation will fail and `continue-activity-error` will be called.
### Event: 'new-window-for-tab' _macOS_
@@ -314,10 +326,8 @@ Returns:
* `event` Event
* `webContents` [WebContents](web-contents.md)
* `request` Object
* `method` String
* `authenticationResponseDetails` Object
* `url` URL
* `referrer` URL
* `authInfo` Object
* `isProxy` Boolean
* `scheme` String
@@ -325,8 +335,8 @@ Returns:
* `port` Integer
* `realm` String
* `callback` Function
* `username` String
* `password` String
* `username` String (optional)
* `password` String (optional)
Emitted when `webContents` wants to do basic auth.
@@ -337,17 +347,21 @@ should prevent the default behavior with `event.preventDefault()` and call
```javascript
const { app } = require('electron')
app.on('login', (event, webContents, request, authInfo, callback) => {
app.on('login', (event, webContents, details, authInfo, callback) => {
event.preventDefault()
callback('username', 'secret')
})
```
If `callback` is called without a username or password, the authentication
request will be cancelled and the authentication error will be returned to the
page.
### Event: 'gpu-info-update'
Emitted whenever there is a GPU info update.
### Event: 'gpu-process-crashed'
### Event: 'gpu-process-crashed' _Deprecated_
Returns:
@@ -356,7 +370,12 @@ Returns:
Emitted when the GPU process crashes or is killed.
### Event: 'renderer-process-crashed'
**Deprecated:** This event is superceded by the `child-process-gone` event
which contains more information about why the child process disappeared. It
isn't always because it crashed. The `killed` boolean can be replaced by
checking `reason === 'killed'` when you switch to that event.
### Event: 'renderer-process-crashed' _Deprecated_
Returns:
@@ -366,6 +385,60 @@ Returns:
Emitted when the renderer process of `webContents` crashes or is killed.
**Deprecated:** This event is superceded by the `render-process-gone` event
which contains more information about why the render process disappeared. It
isn't always because it crashed. The `killed` boolean can be replaced by
checking `reason === 'killed'` when you switch to that event.
#### Event: 'render-process-gone'
Returns:
* `event` Event
* `webContents` [WebContents](web-contents.md)
* `details` Object
* `reason` String - The reason the render process is gone. Possible values:
* `clean-exit` - Process exited with an exit code of zero
* `abnormal-exit` - Process exited with a non-zero exit code
* `killed` - Process was sent a SIGTERM or otherwise killed externally
* `crashed` - Process crashed
* `oom` - Process ran out of memory
* `launch-failed` - Process never successfully launched
* `integrity-failure` - Windows code integrity checks failed
Emitted when the renderer process unexpectedly disappears. This is normally
because it was crashed or killed.
#### Event: 'child-process-gone'
Returns:
* `event` Event
* `details` Object
* `type` String - Process type. One of the following values:
* `Utility`
* `Zygote`
* `Sandbox helper`
* `GPU`
* `Pepper Plugin`
* `Pepper Plugin Broker`
* `Unknown`
* `reason` String - The reason the child process is gone. Possible values:
* `clean-exit` - Process exited with an exit code of zero
* `abnormal-exit` - Process exited with a non-zero exit code
* `killed` - Process was sent a SIGTERM or otherwise killed externally
* `crashed` - Process crashed
* `oom` - Process ran out of memory
* `launch-failed` - Process never successfully launched
* `integrity-failure` - Windows code integrity checks failed
* `exitCode` Number - The exit code for the process
(e.g. status from waitpid if on posix, from GetExitCodeProcess on Windows).
* `name` String (optional) - The name of the process. i.e. for plugins it might be Flash.
Examples for utility: `Audio Service`, `Content Decryption Module Service`, `Network Service`, `Video Capture`, etc.
Emitted when the child process unexpectedly disappears. This is normally
because it was crashed or killed. It does not include renderer processes.
### Event: 'accessibility-support-changed' _macOS_ _Windows_
Returns:
@@ -390,7 +463,7 @@ Emitted when Electron has created a new `session`.
```javascript
const { app } = require('electron')
app.on('session-created', (event, session) => {
app.on('session-created', (session) => {
console.log(session)
})
```
@@ -411,6 +484,8 @@ and `workingDirectory` is its current working directory. Usually
applications respond to this by making their primary window focused and
non-minimized.
**Note:** If the second instance is started by a different user than the first, the `argv` array will not include the arguments.
This event is guaranteed to be emitted after the `ready` event of `app`
gets emitted.
@@ -485,18 +560,6 @@ Emitted when `remote.getCurrentWebContents()` is called in the renderer process
Calling `event.preventDefault()` will prevent the object from being returned.
Custom value can be returned by setting `event.returnValue`.
### Event: 'remote-get-guest-web-contents'
Returns:
* `event` Event
* `webContents` [WebContents](web-contents.md)
* `guestWebContents` [WebContents](web-contents.md)
Emitted when `<webview>.getWebContents()` is called in the renderer process of `webContents`.
Calling `event.preventDefault()` will prevent the object from being returned.
Custom value can be returned by setting `event.returnValue`.
## Methods
The `app` object has the following methods:
@@ -555,6 +618,7 @@ app.exit(0)
### `app.isReady()`
Returns `Boolean` - `true` if Electron has finished initializing, `false` otherwise.
See also `app.whenReady()`.
### `app.whenReady()`
@@ -562,11 +626,17 @@ Returns `Promise<void>` - fulfilled when Electron is initialized.
May be used as a convenient alternative to checking `app.isReady()`
and subscribing to the `ready` event if the app is not ready yet.
### `app.focus()`
### `app.focus([options])`
* `options` Object (optional)
* `steal` Boolean _macOS_ - Make the receiver the active app even if another app is
currently active.
On Linux, focuses on the first visible window. On macOS, makes the application
the active app. On Windows, focuses on the application's first window.
You should seek to use the `steal` option as sparingly as possible.
### `app.hide()` _macOS_
Hides all application windows without minimizing them.
@@ -582,7 +652,7 @@ them.
Sets or creates a directory your app's logs which can then be manipulated with `app.getPath()` or `app.setPath(pathName, newPath)`.
Calling `app.setAppLogsPath()` without a `path` parameter will result in this directory being set to `/Library/Logs/YourAppName` on _macOS_, and inside the `userData` directory on _Linux_ and _Windows_.
Calling `app.setAppLogsPath()` without a `path` parameter will result in this directory being set to `~/Library/Logs/YourAppName` on _macOS_, and inside the `userData` directory on _Linux_ and _Windows_.
### `app.getAppPath()`
@@ -608,12 +678,16 @@ Returns `String` - The current application directory.
* `music` Directory for a user's music.
* `pictures` Directory for a user's pictures.
* `videos` Directory for a user's videos.
* `recent` Directory for the user's recent files (Windows only).
* `logs` Directory for your app's log folder.
* `pepperFlashSystemPlugin` Full path to the system version of the Pepper Flash plugin.
* `crashDumps` Directory where crash dumps are stored.
Returns `String` - A path to a special directory or file associated with `name`. On
failure, an `Error` is thrown.
If `app.getPath('logs')` is called without called `app.setAppLogsPath()` being called first, a default log directory will be created equivalent to calling `app.setAppLogsPath()` without a `path` parameter.
### `app.getFileIcon(path[, options])`
* `path` String
@@ -665,21 +739,19 @@ to the npm modules spec. You should usually also specify a `productName`
field, which is your application's full capitalized name, and which will be
preferred over `name` by Electron.
**[Deprecated](modernization/property-updates.md)**
### `app.setName(name)`
* `name` String
Overrides the current application's name.
**[Deprecated](modernization/property-updates.md)**
**Note:** This function overrides the name used internally by Electron; it does not affect the name that the OS uses.
### `app.getLocale()`
Returns `String` - The current application locale. Possible return values are documented [here](locales.md).
To set the locale, you'll want to use a command line switch at app startup, which may be found [here](https://github.com/electron/electron/blob/master/docs/api/chrome-command-line-switches.md).
To set the locale, you'll want to use a command line switch at app startup, which may be found [here](https://github.com/electron/electron/blob/master/docs/api/command-line-switches.md).
**Note:** When distributing your packaged app, you have to also ship the
`locales` folder.
@@ -707,34 +779,34 @@ Clears the recent documents list.
### `app.setAsDefaultProtocolClient(protocol[, path, args])`
* `protocol` String - The name of your protocol, without `://`. If you want your
app to handle `electron://` links, call this method with `electron` as the
parameter.
* `path` String (optional) _Windows_ - Defaults to `process.execPath`
* `args` String[] (optional) _Windows_ - Defaults to an empty array
* `protocol` String - The name of your protocol, without `://`. For example,
if you want your app to handle `electron://` links, call this method with
`electron` as the parameter.
* `path` String (optional) _Windows_ - The path to the Electron executable.
Defaults to `process.execPath`
* `args` String[] (optional) _Windows_ - Arguments passed to the executable.
Defaults to an empty array
Returns `Boolean` - Whether the call succeeded.
This method sets the current executable as the default handler for a protocol
(aka URI scheme). It allows you to integrate your app deeper into the operating
system. Once registered, all links with `your-protocol://` will be opened with
the current executable. The whole link, including protocol, will be passed to
your application as a parameter.
On Windows, you can provide optional parameters path, the path to your executable,
and args, an array of arguments to be passed to your executable when it launches.
Sets the current executable as the default handler for a protocol (aka URI
scheme). It allows you to integrate your app deeper into the operating system.
Once registered, all links with `your-protocol://` will be opened with the
current executable. The whole link, including protocol, will be passed to your
application as a parameter.
**Note:** On macOS, you can only register protocols that have been added to
your app's `info.plist`, which can not be modified at runtime. You can however
change the file with a simple text editor or script during build time.
Please refer to [Apple's documentation][CFBundleURLTypes] for details.
your app's `info.plist`, which cannot be modified at runtime. However, you can
change the file during build time via [Electron Forge][electron-forge],
[Electron Packager][electron-packager], or by editing `info.plist` with a text
editor. Please refer to [Apple's documentation][CFBundleURLTypes] for details.
**Note:** In a Windows Store environment (when packaged as an `appx`) this API
will return `true` for all calls but the registry key it sets won't be accessible
by other applications. In order to register your Windows Store application
as a default protocol handler you must [declare the protocol in your manifest](https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap-protocol).
The API uses the Windows Registry and LSSetDefaultHandlerForURLScheme internally.
The API uses the Windows Registry and `LSSetDefaultHandlerForURLScheme` internally.
### `app.removeAsDefaultProtocolClient(protocol[, path, args])` _macOS_ _Windows_
@@ -753,10 +825,8 @@ protocol (aka URI scheme). If so, it will remove the app as the default handler.
* `path` String (optional) _Windows_ - Defaults to `process.execPath`
* `args` String[] (optional) _Windows_ - Defaults to an empty array
Returns `Boolean`
This method checks if the current executable is the default handler for a protocol
(aka URI scheme). If so, it will return true. Otherwise, it will return false.
Returns `Boolean` - Whether the current executable is the default handler for a
protocol (aka URI scheme).
**Note:** On macOS, you can use this method to check if the app has been
registered as the default protocol handler for a protocol. You can also verify
@@ -764,7 +834,36 @@ this by checking `~/Library/Preferences/com.apple.LaunchServices.plist` on the
macOS machine. Please refer to
[Apple's documentation][LSCopyDefaultHandlerForURLScheme] for details.
The API uses the Windows Registry and LSCopyDefaultHandlerForURLScheme internally.
The API uses the Windows Registry and `LSCopyDefaultHandlerForURLScheme` internally.
### `app.getApplicationNameForProtocol(url)`
* `url` String - a URL with the protocol name to check. Unlike the other
methods in this family, this accepts an entire URL, including `://` at a
minimum (e.g. `https://`).
Returns `String` - Name of the application handling the protocol, or an empty
string if there is no handler. For instance, if Electron is the default
handler of the URL, this could be `Electron` on Windows and Mac. However,
don't rely on the precise format which is not guaranteed to remain unchanged.
Expect a different format on Linux, possibly with a `.desktop` suffix.
This method returns the application name of the default handler for the protocol
(aka URI scheme) of a URL.
### `app.getApplicationInfoForProtocol(url)` _macOS_ _Windows_
* `url` String - a URL with the protocol name to check. Unlike the other
methods in this family, this accepts an entire URL, including `://` at a
minimum (e.g. `https://`).
Returns `Promise<Object>` - Resolve with an object containing the following:
* `icon` NativeImage - the display icon of the app handling the protocol.
* `path` String - installation path of the app handling the protocol.
* `name` String - display name of the app handling the protocol.
This method returns a promise that contains the application name, icon and path of the default handler for the protocol
(aka URI scheme) of a URL.
### `app.setUserTasks(tasks)` _Windows_
@@ -926,7 +1025,8 @@ if (!gotTheLock) {
})
// Create myWindow, load the rest of the app, etc...
app.on('ready', () => {
app.whenReady().then(() => {
myWindow = createWindow()
})
}
```
@@ -949,7 +1049,7 @@ allow multiple instances of the application to once again run side by side.
* `type` String - Uniquely identifies the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
* `userInfo` Object - App-specific state to store for use by another device.
* `userInfo` any - App-specific state to store for use by another device.
* `webpageURL` String (optional) - The webpage to load in a browser if no suitable app is
installed on the resuming device. The scheme must be `http` or `https`.
@@ -972,7 +1072,7 @@ Marks the current [Handoff][handoff] user activity as inactive without invalidat
* `type` String - Uniquely identifies the activity. Maps to
[`NSUserActivity.activityType`][activity-type].
* `userInfo` Object - App-specific state to store for use by another device.
* `userInfo` any - App-specific state to store for use by another device.
Updates the current activity if its type matches `type`, merging the entries from
`userInfo` into its current `userInfo` dictionary.
@@ -983,6 +1083,17 @@ Updates the current activity if its type matches `type`, merging the entries fro
Changes the [Application User Model ID][app-user-model-id] to `id`.
### `app.setActivationPolicy(policy)` _macOS_
* `policy` String - Can be 'regular', 'accessory', or 'prohibited'.
Sets the activation policy for a given app.
Activation policy types:
* 'regular' - The application is an ordinary app that appears in the Dock and may have a user interface.
* 'accessory' - The application doesnt appear in the Dock and doesnt have a menu bar, but it may be activated programmatically or by clicking on one of its windows.
* 'prohibited' - The application doesnt appear in the Dock and may not create windows or be activated.
### `app.importCertificate(options, callback)` _Linux_
* `options` Object
@@ -1005,7 +1116,7 @@ This method can only be called before app is ready.
By default, Chromium disables 3D APIs (e.g. WebGL) until restart on a per
domain basis if the GPU processes crashes too frequently. This function
disables that behaviour.
disables that behavior.
This method can only be called before app is ready.
@@ -1031,8 +1142,10 @@ For `infoType` equal to `complete`:
For `infoType` equal to `basic`:
Promise is fulfilled with `Object` containing fewer attributes than when requested with `complete`. Here's an example of basic response:
```js
{ auxAttributes:
{ amdSwitchable: true,
{
auxAttributes:
{
amdSwitchable: true,
canSupportThreadedTextureMailbox: false,
directComposition: false,
directRendering: true,
@@ -1045,12 +1158,14 @@ For `infoType` equal to `basic`:
sandboxed: false,
softwareRendering: false,
supportsOverlays: false,
videoDecodeAcceleratorFlags: 0 },
gpuDevice:
[ { active: true, deviceId: 26657, vendorId: 4098 },
{ active: false, deviceId: 3366, vendorId: 32902 } ],
machineModelName: 'MacBookPro',
machineModelVersion: '11.5' }
videoDecodeAcceleratorFlags: 0
},
gpuDevice:
[{ active: true, deviceId: 26657, vendorId: 4098 },
{ active: false, deviceId: 3366, vendorId: 32902 }],
machineModelName: 'MacBookPro',
machineModelVersion: '11.5'
}
```
Using `basic` should be preferred if only basic information like `vendorId` or `driverId` is needed.
@@ -1069,14 +1184,10 @@ On macOS, it shows on the dock icon. On Linux, it only works for Unity launcher.
**Note:** Unity launcher requires the existence of a `.desktop` file to work,
for more information please read [Desktop Environment Integration][unity-requirement].
**[Deprecated](modernization/property-updates.md)**
### `app.getBadgeCount()` _Linux_ _macOS_
Returns `Integer` - The current value displayed in the counter badge.
**[Deprecated](modernization/property-updates.md)**
### `app.isUnityRunning()` _Linux_
Returns `Boolean` - Whether the current desktop environment is Unity launcher.
@@ -1106,6 +1217,13 @@ Returns `Object`:
should restore the state from the previous session. This indicates that the
app should restore the windows that were open the last time the app was
closed. This setting is not available on [MAS builds][mas-builds].
* `executableWillLaunchAtLogin` Boolean _Windows_ - `true` if app is set to open at login and its run key is not deactivated. This differs from `openAtLogin` as it ignores the `args` option, this property will be true if the given executable would be launched at login with **any** arguments.
* `launchItems` Object[] _Windows_
* `name` String _Windows_ - name value of a registry entry.
* `path` String _Windows_ - The executable to an app that corresponds to a registry entry.
* `args` String[] _Windows_ - the command-line arguments to pass to the executable.
* `scope` String _Windows_ - one of `user` or `machine`. Indicates whether the registry entry is under `HKEY_CURRENT USER` or `HKEY_LOCAL_MACHINE`.
* `enabled` Boolean _Windows_ - `true` if the app registry key is startup approved and therefore shows as `enabled` in Task Manager and Windows settings.
### `app.setLoginItemSettings(settings)` _macOS_ _Windows_
@@ -1121,7 +1239,9 @@ Returns `Object`:
* `args` String[] (optional) _Windows_ - The command-line arguments to pass to
the executable. Defaults to an empty array. Take care to wrap paths in
quotes.
* `enabled` Boolean (optional) _Windows_ - `true` will change the startup approved registry key and `enable / disable` the App in Task Manager and Windows Settings.
Defaults to `true`.
* `name` String (optional) _Windows_ - value name to write into registry. Defaults to the app's AppUserModelId().
Set the app's login item settings.
To work with Electron's `autoUpdater` on Windows, which uses [Squirrel][Squirrel-Windows],
@@ -1151,8 +1271,6 @@ technologies, such as screen readers, has been detected. See
https://www.chromium.org/developers/design-documents/accessibility for more
details.
**[Deprecated](modernization/property-updates.md)**
### `app.setAccessibilitySupportEnabled(enabled)` _macOS_ _Windows_
* `enabled` Boolean - Enable or disable [accessibility tree](https://developers.google.com/web/fundamentals/accessibility/semantics-builtin/the-accessibility-tree) rendering
@@ -1164,26 +1282,25 @@ This API must be called after the `ready` event is emitted.
**Note:** Rendering accessibility tree can significantly affect the performance of your app. It should not be enabled by default.
**[Deprecated](modernization/property-updates.md)**
### `app.showAboutPanel()` _macOS_ _Linux_
### `app.showAboutPanel()`
Show the app's about panel options. These options can be overridden with `app.setAboutPanelOptions(options)`.
### `app.setAboutPanelOptions(options)` _macOS_ _Linux_
### `app.setAboutPanelOptions(options)`
* `options` Object
* `applicationName` String (optional) - The app's name.
* `applicationVersion` String (optional) - The app's version.
* `copyright` String (optional) - Copyright information.
* `version` String (optional) _macOS_ - The app's build version number.
* `credits` String (optional) _macOS_ - Credit information.
* `credits` String (optional) _macOS_ _Windows_ - Credit information.
* `authors` String[] (optional) _Linux_ - List of app authors.
* `website` String (optional) _Linux_ - The app's website.
* `iconPath` String (optional) _Linux_ - Path to the app's icon. Will be shown as 64x64 pixels while retaining aspect ratio.
* `iconPath` String (optional) _Linux_ _Windows_ - Path to the app's icon in a JPEG or PNG file format. On Linux, will be shown as 64x64 pixels while retaining aspect ratio.
Set the about panel options. This will override the values defined in the app's
`.plist` file on MacOS. See the [Apple docs][about-panel-options] for more details. On Linux, values must be set in order to be shown; there are no defaults.
Set the about panel options. This will override the values defined in the app's `.plist` file on macOS. See the [Apple docs][about-panel-options] for more details. On Linux, values must be set in order to be shown; there are no defaults.
If you do not set `credits` but still wish to surface them in your app, AppKit will look for a file named "Credits.html", "Credits.rtf", and "Credits.rtfd", in that order, in the bundle returned by the NSBundle class method main. The first file found is used, and if none is found, the info area is left blank. See Apple [documentation](https://developer.apple.com/documentation/appkit/nsaboutpaneloptioncredits?language=objc) for more information.
### `app.isEmojiPanelSupported()`
@@ -1210,9 +1327,9 @@ stopAccessingSecurityScopedResource()
Start accessing a security scoped resource. With this method Electron applications that are packaged for the Mac App Store may reach outside their sandbox to access files chosen by the user. See [Apple's documentation](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) for a description of how this system works.
### `app.enableSandbox()` _Experimental_
### `app.enableSandbox()`
Enables full sandbox mode on the app.
Enables full sandbox mode on the app. This means that all renderers will be launched sandboxed, regardless of the value of the `sandbox` flag in WebPreferences.
This method can only be called before app is ready.
@@ -1224,7 +1341,7 @@ systems Application folder. Use in combination with `app.moveToApplicationsFolde
### `app.moveToApplicationsFolder([options])` _macOS_
* `options` Object (optional)
* `conflictHandler` Function<Boolean> (optional) - A handler for potential conflict in move failure.
* `conflictHandler` Function\<Boolean> (optional) - A handler for potential conflict in move failure.
* `conflictType` String - The type of move conflict encountered by the handler; can be `exists` or `existsAndRunning`, where `exists` means that an app of the same name is present in the Applications directory and `existsAndRunning` means both that it exists and that it's presently running.
Returns `Boolean` - Whether the move was successful. Please note that if
@@ -1240,7 +1357,7 @@ method returns false. If we fail to perform the copy, then this method will
throw an error. The message in the error should be informative and tell
you exactly what went wrong.
By default, if an app of the same name as the one being moved exists in the Applications directory and is _not_ running, the existing app will be trashed and the active app moved into its place. If it _is_ running, the pre-existing running app will assume focus and the the previously active app will quit itself. This behavior can be changed by providing the optional conflict handler, where the boolean returned by the handler determines whether or not the move conflict is resolved with default behavior. i.e. returning `false` will ensure no further action is taken, returning `true` will result in the default behavior and the method continuing.
By default, if an app of the same name as the one being moved exists in the Applications directory and is _not_ running, the existing app will be trashed and the active app moved into its place. If it _is_ running, the pre-existing running app will assume focus and the previously active app will quit itself. This behavior can be changed by providing the optional conflict handler, where the boolean returned by the handler determines whether or not the move conflict is resolved with default behavior. i.e. returning `false` will ensure no further action is taken, returning `true` will result in the default behavior and the method continuing.
For example:
@@ -1261,6 +1378,25 @@ app.moveToApplicationsFolder({
Would mean that if an app already exists in the user directory, if the user chooses to 'Continue Move' then the function would continue with its default behavior and the existing app will be trashed and the active app moved into its place.
### `app.isSecureKeyboardEntryEnabled()` _macOS_
Returns `Boolean` - whether `Secure Keyboard Entry` is enabled.
By default this API will return `false`.
### `app.setSecureKeyboardEntryEnabled(enabled)` _macOS_
* `enabled` Boolean - Enable or disable `Secure Keyboard Entry`
Set the `Secure Keyboard Entry` is enabled in your application.
By using this API, important information such as password and other sensitive information can be prevented from being intercepted by other processes.
See [Apple's documentation](https://developer.apple.com/library/archive/technotes/tn2150/_index.html) for more
details.
**Note:** Enable `Secure Keyboard Entry` only when it is needed and disable it when it is no longer needed.
## Properties
### `app.accessibilitySupportEnabled` _macOS_ _Windows_
@@ -1287,6 +1423,9 @@ On macOS, setting this with any nonzero integer shows on the dock icon. On Linux
**Note:** Unity launcher requires the existence of a `.desktop` file to work,
for more information please read [Desktop Environment Integration][unity-requirement].
**Note:** On macOS, you need to ensure that your application has the permission
to display notifications for this property to take effect.
### `app.commandLine` _Readonly_
A [`CommandLine`](./command-line.md) object that allows you to read and manipulate the
@@ -1294,7 +1433,7 @@ command line arguments that Chromium uses.
### `app.dock` _macOS_ _Readonly_
A [`Dock`](./dock.md) object that allows you to perform actions on your app icon in the user's
A [`Dock`](./dock.md) `| undefined` object that allows you to perform actions on your app icon in the user's
dock on macOS.
### `app.isPackaged` _Readonly_
@@ -1304,6 +1443,8 @@ A `Boolean` property that returns `true` if the app is packaged, `false` otherw
[dock-menu]:https://developer.apple.com/macos/human-interface-guidelines/menus/dock-menus/
[tasks]:https://msdn.microsoft.com/en-us/library/windows/desktop/dd378460(v=vs.85).aspx#tasks
[app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx
[electron-forge]: https://www.electronforge.io/
[electron-packager]: https://github.com/electron/electron-packager
[CFBundleURLTypes]: https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/TP40009249-102207-TPXREF115
[LSCopyDefaultHandlerForURLScheme]: https://developer.apple.com/library/mac/documentation/Carbon/Reference/LaunchServicesReference/#//apple_ref/c/func/LSCopyDefaultHandlerForURLScheme
[handoff]: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/Handoff/HandoffFundamentals/HandoffFundamentals.html
@@ -1336,7 +1477,7 @@ in your app's initialization to ensure that your overridden value is used.
A `Boolean` which when `true` disables the overrides that Electron has in place
to ensure renderer processes are restarted on every navigation. The current
default value for this property is `false`.
default value for this property is `true`.
The intention is for these overrides to become disabled by default and then at
some point in the future this property will be removed. This property impacts
@@ -1344,3 +1485,12 @@ which native modules you can use in the renderer process. For more information
on the direction Electron is going with renderer process restarts and usage of
native modules in the renderer process please check out this
[Tracking Issue](https://github.com/electron/electron/issues/18397).
### `app.runningUnderRosettaTranslation` _macOS_ _Readonly_
A `Boolean` which when `true` indicates that the app is currently running
under the [Rosetta Translator Environment](https://en.wikipedia.org/wiki/Rosetta_(software)).
You can use this property to prompt users to download the arm64 version of
your application when they are running the x64 version under Rosetta
incorrectly.

View File

@@ -103,8 +103,8 @@ The `autoUpdater` object has the following methods:
* `options` Object
* `url` String
* `headers` Object (optional) _macOS_ - HTTP request headers.
* `serverType` String (optional) _macOS_ - Either `json` or `default`, see the [Squirrel.Mac][squirrel-mac]
* `headers` Record<String, String> (optional) _macOS_ - HTTP request headers.
* `serverType` String (optional) _macOS_ - Can be `json` or `default`, see the [Squirrel.Mac][squirrel-mac]
README for more information.
Sets the `url` and initialize the auto updater.

View File

@@ -1,61 +0,0 @@
# Breaking changes (NetworkService) (Draft)
This document describes changes to Electron APIs after migrating network code
to NetworkService API.
We don't currently have an estimate of when we will enable `NetworkService` by
default in Electron, but as Chromium is already removing non-`NetworkService`
code, we might switch before Electron 10.
The content of this document should be moved to `breaking-changes.md` once we have
determined when to enable `NetworkService` in Electron.
## Planned Breaking API Changes
### `protocol.unregisterProtocol`
### `protocol.uninterceptProtocol`
The APIs are now synchronous and the optional callback is no longer needed.
```javascript
// Deprecated
protocol.unregisterProtocol(scheme, () => { /* ... */ })
// Replace with
protocol.unregisterProtocol(scheme)
```
### `protocol.registerFileProtocol`
### `protocol.registerBufferProtocol`
### `protocol.registerStringProtocol`
### `protocol.registerHttpProtocol`
### `protocol.registerStreamProtocol`
### `protocol.interceptFileProtocol`
### `protocol.interceptStringProtocol`
### `protocol.interceptBufferProtocol`
### `protocol.interceptHttpProtocol`
### `protocol.interceptStreamProtocol`
The APIs are now synchronous and the optional callback is no longer needed.
```javascript
// Deprecated
protocol.registerFileProtocol(scheme, handler, () => { /* ... */ })
// Replace with
protocol.registerFileProtocol(scheme, handler)
```
The registered or intercepted protocol does not have effect on current page
until navigation happens.
### `protocol.isProtocolHandled`
This API is deprecated and users should use `protocol.isProtocolRegistered`
and `protocol.isProtocolIntercepted` instead.
```javascript
// Deprecated
protocol.isProtocolHandled(scheme).then(() => { /* ... */ })
// Replace with
const isRegistered = protocol.isProtocolRegistered(scheme)
const isIntercepted = protocol.isProtocolIntercepted(scheme)
```

View File

@@ -1,548 +0,0 @@
# Breaking Changes
Breaking changes will be documented here, and deprecation warnings added to JS code where possible, at least [one major version](../tutorial/electron-versioning.md#semver) before the change is made.
## `FIXME` comments
The `FIXME` string is used in code comments to denote things that should be fixed for future releases. See https://github.com/electron/electron/search?q=fixme
## Planned Breaking API Changes (7.0)
### Node Headers URL
This is the URL specified as `disturl` in a `.npmrc` file or as the `--dist-url`
command line flag when building native Node modules. Both will be supported for
the foreseeable future but it is recommended that you switch.
Deprecated: https://atom.io/download/electron
Replace with: https://electronjs.org/headers
### `session.clearAuthCache(options)`
The `session.clearAuthCache` API no longer accepts options for what to clear, and instead unconditionally clears the whole cache.
```js
// Deprecated
session.clearAuthCache({ type: 'password' })
// Replace with
session.clearAuthCache()
```
### `powerMonitor.querySystemIdleState`
```js
// Removed in Electron 7.0
powerMonitor.querySystemIdleState(threshold, callback)
// Replace with synchronous API
const idleState = getSystemIdleState(threshold)
```
### `powerMonitor.querySystemIdleTime`
```js
// Removed in Electron 7.0
powerMonitor.querySystemIdleTime(callback)
// Replace with synchronous API
const idleTime = getSystemIdleTime()
```
### webFrame Isolated World APIs
```js
// Removed in Elecron 7.0
webFrame.setIsolatedWorldContentSecurityPolicy(worldId, csp)
webFrame.setIsolatedWorldHumanReadableName(worldId, name)
webFrame.setIsolatedWorldSecurityOrigin(worldId, securityOrigin)
// Replace with
webFrame.setIsolatedWorldInfo(
worldId,
{
securityOrigin: 'some_origin',
name: 'human_readable_name',
csp: 'content_security_policy'
})
```
### Removal of deprecated `marked` property on getBlinkMemoryInfo
This property was removed in Chromium 77, and as such is no longer available.
## Planned Breaking API Changes (6.0)
### `win.setMenu(null)`
```js
// Deprecated
win.setMenu(null)
// Replace with
win.removeMenu()
```
### `contentTracing.getTraceBufferUsage()`
```js
// Deprecated
contentTracing.getTraceBufferUsage((percentage, value) => {
// do something
})
// Replace with
contentTracing.getTraceBufferUsage().then(infoObject => {
// infoObject has percentage and value fields
})
```
### `electron.screen` in renderer process
```js
// Deprecated
require('electron').screen
// Replace with
require('electron').remote.screen
```
### `require` in sandboxed renderers
```js
// Deprecated
require('child_process')
// Replace with
require('electron').remote.require('child_process')
// Deprecated
require('fs')
// Replace with
require('electron').remote.require('fs')
// Deprecated
require('os')
// Replace with
require('electron').remote.require('os')
// Deprecated
require('path')
// Replace with
require('electron').remote.require('path')
```
### `powerMonitor.querySystemIdleState`
```js
// Deprecated
powerMonitor.querySystemIdleState(threshold, callback)
// Replace with synchronous API
const idleState = getSystemIdleState(threshold)
```
### `powerMonitor.querySystemIdleTime`
```js
// Deprecated
powerMonitor.querySystemIdleTime(callback)
// Replace with synchronous API
const idleTime = getSystemIdleTime()
```
### `app.enableMixedSandbox`
```js
// Deprecated
app.enableMixedSandbox()
```
Mixed-sandbox mode is now enabled by default.
### `Tray`
Under macOS Catalina our former Tray implementation breaks.
Apple's native substitute doesn't support changing the highlighting behavior.
```js
// Deprecated
tray.setHighlightMode(mode)
// API will be removed in v7.0 without replacement.
```
## Planned Breaking API Changes (5.0)
### `new BrowserWindow({ webPreferences })`
The following `webPreferences` option default values are deprecated in favor of the new defaults listed below.
| Property | Deprecated Default | New Default |
|----------|--------------------|-------------|
| `contextIsolation` | `false` | `true` |
| `nodeIntegration` | `true` | `false` |
| `webviewTag` | `nodeIntegration` if set else `true` | `false` |
E.g. Re-enabling the webviewTag
```js
const w = new BrowserWindow({
webPreferences: {
webviewTag: true
}
})
```
### `nativeWindowOpen`
Child windows opened with the `nativeWindowOpen` option will always have Node.js integration disabled, unless `nodeIntegrationInSubFrames` is `true.
### Privileged Schemes Registration
Renderer process APIs `webFrame.setRegisterURLSchemeAsPrivileged` and `webFrame.registerURLSchemeAsBypassingCSP` as well as browser process API `protocol.registerStandardSchemes` have been removed.
A new API, `protocol.registerSchemesAsPrivileged` has been added and should be used for registering custom schemes with the required privileges. Custom schemes are required to be registered before app ready.
### webFrame Isolated World APIs
```js
// Deprecated
webFrame.setIsolatedWorldContentSecurityPolicy(worldId, csp)
webFrame.setIsolatedWorldHumanReadableName(worldId, name)
webFrame.setIsolatedWorldSecurityOrigin(worldId, securityOrigin)
// Replace with
webFrame.setIsolatedWorldInfo(
worldId,
{
securityOrigin: 'some_origin',
name: 'human_readable_name',
csp: 'content_security_policy'
})
```
## `webFrame.setSpellCheckProvider`
The `spellCheck` callback is now asynchronous, and `autoCorrectWord` parameter has been removed.
```js
// Deprecated
webFrame.setSpellCheckProvider('en-US', true, {
spellCheck: (text) => {
return !spellchecker.isMisspelled(text)
}
})
// Replace with
webFrame.setSpellCheckProvider('en-US', {
spellCheck: (words, callback) => {
callback(words.filter(text => spellchecker.isMisspelled(text)))
}
})
```
## Planned Breaking API Changes (4.0)
The following list includes the breaking API changes made in Electron 4.0.
### `app.makeSingleInstance`
```js
// Deprecated
app.makeSingleInstance((argv, cwd) => {
/* ... */
})
// Replace with
app.requestSingleInstanceLock()
app.on('second-instance', (event, argv, cwd) => {
/* ... */
})
```
### `app.releaseSingleInstance`
```js
// Deprecated
app.releaseSingleInstance()
// Replace with
app.releaseSingleInstanceLock()
```
### `app.getGPUInfo`
```js
app.getGPUInfo('complete')
// Now behaves the same with `basic` on macOS
app.getGPUInfo('basic')
```
### `win_delay_load_hook`
When building native modules for windows, the `win_delay_load_hook` variable in
the module's `binding.gyp` must be true (which is the default). If this hook is
not present, then the native module will fail to load on Windows, with an error
message like `Cannot find module`. See the [native module
guide](/docs/tutorial/using-native-node-modules.md) for more.
## Breaking API Changes (3.0)
The following list includes the breaking API changes in Electron 3.0.
### `app`
```js
// Deprecated
app.getAppMemoryInfo()
// Replace with
app.getAppMetrics()
// Deprecated
const metrics = app.getAppMetrics()
const { memory } = metrics[0] // Deprecated property
```
### `BrowserWindow`
```js
// Deprecated
let optionsA = { webPreferences: { blinkFeatures: '' } }
let windowA = new BrowserWindow(optionsA)
// Replace with
let optionsB = { webPreferences: { enableBlinkFeatures: '' } }
let windowB = new BrowserWindow(optionsB)
// Deprecated
window.on('app-command', (e, cmd) => {
if (cmd === 'media-play_pause') {
// do something
}
})
// Replace with
window.on('app-command', (e, cmd) => {
if (cmd === 'media-play-pause') {
// do something
}
})
```
### `clipboard`
```js
// Deprecated
clipboard.readRtf()
// Replace with
clipboard.readRTF()
// Deprecated
clipboard.writeRtf()
// Replace with
clipboard.writeRTF()
// Deprecated
clipboard.readHtml()
// Replace with
clipboard.readHTML()
// Deprecated
clipboard.writeHtml()
// Replace with
clipboard.writeHTML()
```
### `crashReporter`
```js
// Deprecated
crashReporter.start({
companyName: 'Crashly',
submitURL: 'https://crash.server.com',
autoSubmit: true
})
// Replace with
crashReporter.start({
companyName: 'Crashly',
submitURL: 'https://crash.server.com',
uploadToServer: true
})
```
### `nativeImage`
```js
// Deprecated
nativeImage.createFromBuffer(buffer, 1.0)
// Replace with
nativeImage.createFromBuffer(buffer, {
scaleFactor: 1.0
})
```
### `process`
```js
// Deprecated
const info = process.getProcessMemoryInfo()
```
### `screen`
```js
// Deprecated
screen.getMenuBarHeight()
// Replace with
screen.getPrimaryDisplay().workArea
```
### `session`
```js
// Deprecated
ses.setCertificateVerifyProc((hostname, certificate, callback) => {
callback(true)
})
// Replace with
ses.setCertificateVerifyProc((request, callback) => {
callback(0)
})
```
### `Tray`
```js
// Deprecated
tray.setHighlightMode(true)
// Replace with
tray.setHighlightMode('on')
// Deprecated
tray.setHighlightMode(false)
// Replace with
tray.setHighlightMode('off')
```
### `webContents`
```js
// Deprecated
webContents.openDevTools({ detach: true })
// Replace with
webContents.openDevTools({ mode: 'detach' })
// Removed
webContents.setSize(options)
// There is no replacement for this API
```
### `webFrame`
```js
// Deprecated
webFrame.registerURLSchemeAsSecure('app')
// Replace with
protocol.registerStandardSchemes(['app'], { secure: true })
// Deprecated
webFrame.registerURLSchemeAsPrivileged('app', { secure: true })
// Replace with
protocol.registerStandardSchemes(['app'], { secure: true })
```
### `<webview>`
```js
// Removed
webview.setAttribute('disableguestresize', '')
// There is no replacement for this API
// Removed
webview.setAttribute('guestinstance', instanceId)
// There is no replacement for this API
// Keyboard listeners no longer work on webview tag
webview.onkeydown = () => { /* handler */ }
webview.onkeyup = () => { /* handler */ }
```
### Node Headers URL
This is the URL specified as `disturl` in a `.npmrc` file or as the `--dist-url`
command line flag when building native Node modules.
Deprecated: https://atom.io/download/atom-shell
Replace with: https://atom.io/download/electron
## Breaking API Changes (2.0)
The following list includes the breaking API changes made in Electron 2.0.
### `BrowserWindow`
```js
// Deprecated
let optionsA = { titleBarStyle: 'hidden-inset' }
let windowA = new BrowserWindow(optionsA)
// Replace with
let optionsB = { titleBarStyle: 'hiddenInset' }
let windowB = new BrowserWindow(optionsB)
```
### `menu`
```js
// Removed
menu.popup(browserWindow, 100, 200, 2)
// Replaced with
menu.popup(browserWindow, { x: 100, y: 200, positioningItem: 2 })
```
### `nativeImage`
```js
// Removed
nativeImage.toPng()
// Replaced with
nativeImage.toPNG()
// Removed
nativeImage.toJpeg()
// Replaced with
nativeImage.toJPEG()
```
### `process`
* `process.versions.electron` and `process.version.chrome` will be made
read-only properties for consistency with the other `process.versions`
properties set by Node.
### `webContents`
```js
// Removed
webContents.setZoomLevelLimits(1, 2)
// Replaced with
webContents.setVisualZoomLevelLimits(1, 2)
```
### `webFrame`
```js
// Removed
webFrame.setZoomLevelLimits(1, 2)
// Replaced with
webFrame.setVisualZoomLevelLimits(1, 2)
```
### `<webview>`
```js
// Removed
webview.setZoomLevelLimits(1, 2)
// Replaced with
webview.setVisualZoomLevelLimits(1, 2)
```
### Duplicate ARM Assets
Each Electron release includes two identical ARM builds with slightly different
filenames, like `electron-v1.7.3-linux-arm.zip` and
`electron-v1.7.3-linux-armv7l.zip`. The asset with the `v7l` prefix was added
to clarify to users which ARM version it supports, and to disambiguate it from
future armv6l and arm64 assets that may be produced.
The file _without the prefix_ is still being published to avoid breaking any
setups that may be consuming it. Starting at 2.0, the unprefixed file will
no longer be published.
For details, see
[6986](https://github.com/electron/electron/pull/6986)
and
[7189](https://github.com/electron/electron/pull/7189).

View File

@@ -15,12 +15,9 @@ relative to its owning window. It is meant to be an alternative to the
// In the main process.
const { BrowserView, BrowserWindow } = require('electron')
let win = new BrowserWindow({ width: 800, height: 600 })
win.on('closed', () => {
win = null
})
const win = new BrowserWindow({ width: 800, height: 600 })
let view = new BrowserView()
const view = new BrowserView()
win.setBrowserView(view)
view.setBounds({ x: 0, y: 0, width: 300, height: 300 })
view.webContents.loadURL('https://electronjs.org')
@@ -31,25 +28,6 @@ view.webContents.loadURL('https://electronjs.org')
* `options` Object (optional)
* `webPreferences` Object (optional) - See [BrowserWindow](browser-window.md).
### Static Methods
#### `BrowserView.getAllViews()`
Returns `BrowserView[]` - An array of all opened BrowserViews.
#### `BrowserView.fromWebContents(webContents)`
* `webContents` [WebContents](web-contents.md)
Returns `BrowserView | null` - The BrowserView that owns the given `webContents`
or `null` if the contents are not owned by a BrowserView.
#### `BrowserView.fromId(id)`
* `id` Integer
Returns `BrowserView` - The view with the given `id`.
### Instance Properties
Objects created with `new BrowserView` have the following properties:
@@ -58,24 +36,10 @@ Objects created with `new BrowserView` have the following properties:
A [`WebContents`](web-contents.md) object owned by this view.
#### `view.id` _Experimental_
A `Integer` representing the unique ID of the view.
### Instance Methods
Objects created with `new BrowserView` have the following instance methods:
#### `view.destroy()`
Force closing the view, the `unload` and `beforeunload` events won't be emitted
for the web page. After you're done with a view, call this function in order to
free memory and other resources as soon as possible.
#### `view.isDestroyed()`
Returns `Boolean` - Whether the view is destroyed.
#### `view.setAutoResize(options)` _Experimental_
* `options` Object

View File

@@ -11,10 +11,7 @@ const { BrowserWindow } = require('electron')
// Or use `remote` from the renderer process.
// const { BrowserWindow } = require('electron').remote
let win = new BrowserWindow({ width: 800, height: 600 })
win.on('closed', () => {
win = null
})
const win = new BrowserWindow({ width: 800, height: 600 })
// Load a remote URL
win.loadURL('https://github.com')
@@ -41,7 +38,7 @@ the window after this event will have no visual flash:
```javascript
const { BrowserWindow } = require('electron')
let win = new BrowserWindow({ show: false })
const win = new BrowserWindow({ show: false })
win.once('ready-to-show', () => {
win.show()
})
@@ -51,6 +48,9 @@ This event is usually emitted after the `did-finish-load` event, but for
pages with many remote resources, it may be emitted before the `did-finish-load`
event.
Please note that using this event implies that the renderer will be considered "visible" and
paint even though `show` is false. This event will never fire if you use `paintWhenInitiallyHidden: false`
## Setting `backgroundColor`
For a complex app, the `ready-to-show` event could be emitted too late, making
@@ -60,7 +60,7 @@ immediately, and use a `backgroundColor` close to your app's background:
```javascript
const { BrowserWindow } = require('electron')
let win = new BrowserWindow({ backgroundColor: '#2e2c29' })
const win = new BrowserWindow({ backgroundColor: '#2e2c29' })
win.loadURL('https://github.com')
```
@@ -74,8 +74,8 @@ By using `parent` option, you can create child windows:
```javascript
const { BrowserWindow } = require('electron')
let top = new BrowserWindow()
let child = new BrowserWindow({ parent: top })
const top = new BrowserWindow()
const child = new BrowserWindow({ parent: top })
child.show()
top.show()
```
@@ -90,7 +90,7 @@ window, you have to set both `parent` and `modal` options:
```javascript
const { BrowserWindow } = require('electron')
let child = new BrowserWindow({ parent: top, modal: true, show: false })
const child = new BrowserWindow({ parent: top, modal: true, show: false })
child.loadURL('https://github.com')
child.once('ready-to-show', () => {
child.show()
@@ -177,13 +177,14 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
* `simpleFullscreen` Boolean (optional) - Use pre-Lion fullscreen on macOS. Default is `false`.
* `skipTaskbar` Boolean (optional) - Whether to show the window in taskbar. Default is
`false`.
* `kiosk` Boolean (optional) - The kiosk mode. Default is `false`.
* `kiosk` Boolean (optional) - Whether the window is in kiosk mode. Default is `false`.
* `title` String (optional) - Default window title. Default is `"Electron"`. If the HTML tag `<title>` is defined in the HTML file loaded by `loadURL()`, this property will be ignored.
* `icon` ([NativeImage](native-image.md) | String) (optional) - The window icon. On Windows it is
recommended to use `ICO` icons to get best visual effects, you can also
leave it undefined so the executable's icon will be used.
* `show` Boolean (optional) - Whether window should be shown when created. Default is
`true`.
* `paintWhenInitiallyHidden` Boolean (optional) - Whether the renderer should be active when `show` is `false` and it has just been created. In order for `document.visibilityState` to work correctly on first load with `show: false` you should set this to `false`. Setting this to `false` will cause the `ready-to-show` event to not fire. Default is `true`.
* `frame` Boolean (optional) - Specify `false` to create a
[Frameless Window](frameless-window.md). Default is `true`.
* `parent` BrowserWindow (optional) - Specify parent window. Default is `null`.
@@ -202,8 +203,7 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
* `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).
* `hasShadow` Boolean (optional) - Whether window should have a shadow. This is only
implemented on macOS. Default is `true`.
* `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.
* `darkTheme` Boolean (optional) - Forces using dark theme for the window, only works on
@@ -212,6 +212,10 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
Default is `false`. On Windows, does not work unless the window is frameless.
* `type` String (optional) - The type of window, default is normal window. See more about
this below.
* `visualEffectState` String (optional) - Specify how the material appearance should reflect window activity state on macOS. Must be used with the `vibrancy` property. Possible values are:
* `followWindow` - The backdrop should automatically appear active when the window is active, and inactive when it is not. This is the default.
* `active` - The backdrop should always appear active.
* `inactive` - The backdrop should always appear inactive.
* `titleBarStyle` String (optional) - The style of window title bar.
Default is `default`. Possible values are:
* `default` - Results in the standard gray opaque Mac title
@@ -226,6 +230,7 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
unless hovered over in the top left of the window. These custom buttons prevent
issues with mouse events that occur with the standard window toolbar buttons.
**Note:** This option is currently experimental.
* `trafficLightPosition` [Point](structures/point.md) (optional) - Set a custom position for the traffic light buttons. Can only be used with `titleBarStyle` set to `hidden`
* `fullscreenWindowTitle` Boolean (optional) - Shows the title in the
title bar in full screen mode on macOS for all `titleBarStyle` options.
Default is `false`.
@@ -269,10 +274,8 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
OS-level sandbox and disabling the Node.js engine. This is not the same as
the `nodeIntegration` option and the APIs available to the preload script
are more limited. Read more about the option [here](sandbox-option.md).
**Note:** This option is currently experimental and may change or be
removed in future Electron releases.
* `enableRemoteModule` Boolean (optional) - Whether to enable the [`remote`](remote.md) module.
Default is `true`.
Default is `false`.
* `session` [Session](session.md#class-session) (optional) - Sets the session used by the
page. Instead of passing the Session object directly, you can also choose to
use the `partition` option instead, which accepts a partition string. When
@@ -290,7 +293,7 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
between the web pages even when you specified different values for them,
including but not limited to `preload`, `sandbox` and `nodeIntegration`.
So it is suggested to use exact same `webPreferences` for web pages with
the same `affinity`. _This property is experimental_
the same `affinity`. _Deprecated_
* `zoomFactor` Number (optional) - The default zoom factor of the page, `3.0` represents
`300%`. Default is `1.0`.
* `javascript` Boolean (optional) - Enables JavaScript support. Default is `true`.
@@ -349,6 +352,9 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
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.
* `worldSafeExecuteJavaScript` Boolean (optional) - If true, values returned from `webFrame.executeJavaScript` will be sanitized to ensure JS values
can't unsafely cross between worlds when using `contextIsolation`. The default
is `false`. In Electron 12, the default will be changed to `true`. _Deprecated_
* `nativeWindowOpen` Boolean (optional) - Whether to use native
`window.open()`. Defaults to `false`. Child windows will always have node
integration disabled unless `nodeIntegrationInSubFrames` is true. **Note:** This option is currently
@@ -370,6 +376,8 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
consecutive dialog protection is triggered. If not defined the default
message would be used, note that currently the default message is in
English and not localized.
* `disableDialogs` Boolean (optional) - Whether to disable dialogs
completely. Overrides `safeDialogs`. Default is `false`.
* `navigateOnDragDrop` Boolean (optional) - Whether dragging and dropping a
file or link onto the page causes a navigation. Default is `false`.
* `autoplayPolicy` String (optional) - Autoplay policy to apply to
@@ -379,6 +387,20 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
* `disableHtmlFullscreenWindowResize` Boolean (optional) - Whether to
prevent the window from resizing when entering HTML Fullscreen. Default
is `false`.
* `accessibleTitle` String (optional) - An alternative title string provided only
to accessibility tools such as screen readers. This string is not directly
visible to users.
* `spellcheck` Boolean (optional) - Whether to enable the builtin spellchecker.
Default is `true`.
* `enableWebSQL` Boolean (optional) - Whether to enable the [WebSQL api](https://www.w3.org/TR/webdatabase/).
Default is `true`.
* `v8CacheOptions` String (optional) - Enforces the v8 code caching policy
used by blink. Accepted values are
* `none` - Disables code caching
* `code` - Heuristic based code caching
* `bypassHeatCheck` - Bypass code caching heuristics but with lazy compilation
* `bypassHeatCheckAndEagerCompile` - Same as above except compilation is eager.
Default policy is `code`.
When setting minimum or maximum window size with `minWidth`/`maxWidth`/
`minHeight`/`maxHeight`, it only constrains the users. It won't prevent you from
@@ -485,6 +507,9 @@ Emitted when the window is hidden.
Emitted when the web page has been rendered (while not being shown) and window can be displayed without
a visual flash.
Please note that using this event implies that the renderer will be considered "visible" and
paint even though `show` is false. This event will never fire if you use `paintWhenInitiallyHidden: false`
#### Event: 'maximize'
Emitted when window is maximized.
@@ -506,7 +531,7 @@ Emitted when the window is restored from a minimized state.
Returns:
* `event` Event
* `newBounds` [`Rectangle`](structures/rectangle.md) - Size the window is being resized to.
* `newBounds` [Rectangle](structures/rectangle.md) - Size the window is being resized to.
Emitted before the window is resized. Calling `event.preventDefault()` will prevent the window from being resized.
@@ -516,14 +541,20 @@ Note that this is only emitted when the window is being resized manually. Resizi
Emitted after the window has been resized.
#### Event: 'will-move' _Windows_
#### Event: 'resized' _macOS_ _Windows_
Emitted once when the window has finished being resized.
This is usually emitted when the window has been resized manually. On macOS, resizing the window with `setBounds`/`setSize` and setting the `animate` parameter to `true` will also emit this event once resizing has finished.
#### Event: 'will-move' _macOS_ _Windows_
Returns:
* `event` Event
* `newBounds` [`Rectangle`](structures/rectangle.md) - Location the window is being moved to.
* `newBounds` [Rectangle](structures/rectangle.md) - Location the window is being moved to.
Emitted before the window is moved. Calling `event.preventDefault()` will prevent the window from being moved.
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.
@@ -531,12 +562,12 @@ Note that this is only emitted when the window is being resized manually. Resizi
Emitted when the window is being moved to a new position.
__Note__: On macOS this event is an alias of `moved`.
#### Event: 'moved' _macOS_
#### Event: 'moved' _macOS_ _Windows_
Emitted once when the window is moved to a new position.
__Note__: On macOS this event is an alias of `move`.
#### Event: 'enter-full-screen'
Emitted when the window enters a full-screen state.
@@ -579,7 +610,7 @@ e.g. `APPCOMMAND_BROWSER_BACKWARD` is emitted as `browser-backward`.
```javascript
const { BrowserWindow } = require('electron')
let win = new BrowserWindow()
const win = new BrowserWindow()
win.on('app-command', (e, cmd) => {
// Navigate the window back when the user hits their mouse back button
if (cmd === 'browser-backward' && win.webContents.canGoBack()) {
@@ -614,6 +645,12 @@ Returns:
Emitted on 3-finger swipe. Possible directions are `up`, `right`, `down`, `left`.
The method underlying this event is built to handle older macOS-style trackpad swiping,
where the content on the screen doesn't move with the swipe. Most macOS trackpads are not
configured to allow this kind of swiping anymore, so in order for it to emit properly the
'Swipe between pages' preference in `System Preferences > Trackpad > More Gestures` must be
set to 'Swipe with two or three fingers'.
#### Event: 'rotate-gesture' _macOS_
Returns:
@@ -639,6 +676,20 @@ Emitted when the window has closed a sheet.
Emitted when the native new tab button is clicked.
#### Event: 'system-context-menu' _Windows_
Returns:
* `event` Event
* `point` [Point](structures/point.md) - The screen coordinates the context menu was triggered at
Emitted when the system context menu is triggered on the window, this is
normally only triggered when the user right clicks on the non-client area
of your window. This is the window titlebar or any area you have declared
as `-webkit-app-region: drag` in a frameless window.
Calling `event.preventDefault()` will prevent the menu from being displayed.
### Static Methods
The `BrowserWindow` class has the following static methods:
@@ -655,7 +706,8 @@ Returns `BrowserWindow | null` - The window that is focused in this application,
* `webContents` [WebContents](web-contents.md)
Returns `BrowserWindow` - The window that owns the given `webContents`.
Returns `BrowserWindow | null` - The window that owns the given `webContents`
or `null` if the contents are not owned by a window.
#### `BrowserWindow.fromBrowserView(browserView)`
@@ -667,9 +719,9 @@ Returns `BrowserWindow | null` - The window that owns the given `browserView`. I
* `id` Integer
Returns `BrowserWindow` - The window with the given `id`.
Returns `BrowserWindow | null` - The window with the given `id`.
#### `BrowserWindow.addExtension(path)`
#### `BrowserWindow.addExtension(path)` _Deprecated_
* `path` String
@@ -680,7 +732,10 @@ The method will also not return if the extension's manifest is missing or incomp
**Note:** This API cannot be called before the `ready` event of the `app` module
is emitted.
#### `BrowserWindow.removeExtension(name)`
**Note:** This method is deprecated. Instead, use
[`ses.loadExtension(path)`](session.md#sesloadextensionpath).
#### `BrowserWindow.removeExtension(name)` _Deprecated_
* `name` String
@@ -689,15 +744,21 @@ Remove a Chrome extension by name.
**Note:** This API cannot be called before the `ready` event of the `app` module
is emitted.
#### `BrowserWindow.getExtensions()`
**Note:** This method is deprecated. Instead, use
[`ses.removeExtension(extension_id)`](session.md#sesremoveextensionextensionid).
Returns `Object` - The keys are the extension names and each value is
#### `BrowserWindow.getExtensions()` _Deprecated_
Returns `Record<String, ExtensionInfo>` - The keys are the extension names and each value is
an Object containing `name` and `version` properties.
**Note:** This API cannot be called before the `ready` event of the `app` module
is emitted.
#### `BrowserWindow.addDevToolsExtension(path)`
**Note:** This method is deprecated. Instead, use
[`ses.getAllExtensions()`](session.md#sesgetallextensions).
#### `BrowserWindow.addDevToolsExtension(path)` _Deprecated_
* `path` String
@@ -713,7 +774,10 @@ The method will also not return if the extension's manifest is missing or incomp
**Note:** This API cannot be called before the `ready` event of the `app` module
is emitted.
#### `BrowserWindow.removeDevToolsExtension(name)`
**Note:** This method is deprecated. Instead, use
[`ses.loadExtension(path)`](session.md#sesloadextensionpath).
#### `BrowserWindow.removeDevToolsExtension(name)` _Deprecated_
* `name` String
@@ -722,9 +786,12 @@ Remove a DevTools extension by name.
**Note:** This API cannot be called before the `ready` event of the `app` module
is emitted.
#### `BrowserWindow.getDevToolsExtensions()`
**Note:** This method is deprecated. Instead, use
[`ses.removeExtension(extension_id)`](session.md#sesremoveextensionextensionid).
Returns `Object` - The keys are the extension names and each value is
#### `BrowserWindow.getDevToolsExtensions()` _Deprecated_
Returns `Record<string, ExtensionInfo>` - The keys are the extension names and each value is
an Object containing `name` and `version` properties.
To check if a DevTools extension is installed you can run the following:
@@ -732,13 +799,16 @@ To check if a DevTools extension is installed you can run the following:
```javascript
const { BrowserWindow } = require('electron')
let installed = BrowserWindow.getDevToolsExtensions().hasOwnProperty('devtron')
const installed = 'devtron' in BrowserWindow.getDevToolsExtensions()
console.log(installed)
```
**Note:** This API cannot be called before the `ready` event of the `app` module
is emitted.
**Note:** This method is deprecated. Instead, use
[`ses.getAllExtensions()`](session.md#sesgetallextensions).
### Instance Properties
Objects created with `new BrowserWindow` have the following properties:
@@ -746,7 +816,7 @@ Objects created with `new BrowserWindow` have the following properties:
```javascript
const { BrowserWindow } = require('electron')
// In this example `win` is our instance
let win = new BrowserWindow({ width: 800, height: 600 })
const win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('https://github.com')
```
@@ -760,7 +830,7 @@ events.
#### `win.id` _Readonly_
A `Integer` property representing the unique ID of the window.
A `Integer` property representing the unique ID of the window. Each ID is unique among all `BrowserWindow` instances of the entire Electron application.
#### `win.autoHideMenuBar`
@@ -769,6 +839,51 @@ A `Boolean` property that determines whether the window menu bar should hide its
If the menu bar is already visible, setting this property to `true` won't
hide it immediately.
#### `win.simpleFullScreen`
A `Boolean` property that determines whether the window is in simple (pre-Lion) fullscreen mode.
#### `win.fullScreen`
A `Boolean` property that determines whether the window is in fullscreen mode.
#### `win.visibleOnAllWorkspaces`
A `Boolean` property that determines whether the window is visible on all workspaces.
**Note:** Always returns false on Windows.
#### `win.shadow`
A `Boolean` property that determines whether the window has a shadow.
#### `win.menuBarVisible` _Windows_ _Linux_
A `Boolean` property that determines whether the menu bar should be visible.
**Note:** If the menu bar is auto-hide, users can still bring up the menu bar by pressing the single `Alt` key.
#### `win.kiosk`
A `Boolean` property that determines whether the window is in kiosk mode.
#### `win.documentEdited` _macOS_
A `Boolean` property that specifies whether the windows document has been edited.
The icon in title bar will become gray when set to `true`.
#### `win.representedFilename` _macOS_
A `String` property that determines the pathname of the file the window represents,
and the icon of the file will show in window's title bar.
#### `win.title`
A `String` property that determines the title of the native window.
**Note:** The title of the web page can be different from the title of the native window.
#### `win.minimizable`
A `Boolean` property that determines whether the window can be manually minimized by user.
@@ -821,6 +936,12 @@ const menu = Menu.buildFromTemplate(template)
Menu.setApplicationMenu(menu)
```
#### `win.accessibleTitle`
A `String` property that defines an alternative title provided only to
accessibility tools such as screen readers. This string is not directly
visible to users.
### Instance Methods
Objects created with `new BrowserWindow` have the following instance methods:
@@ -918,7 +1039,7 @@ Returns `Boolean` - Whether the window is in fullscreen mode.
Enters or leaves simple fullscreen mode.
Simple fullscreen mode emulates the native fullscreen behavior found in versions of Mac OS X prior to Lion (10.7).
Simple fullscreen mode emulates the native fullscreen behavior found in versions of macOS prior to Lion (10.7).
#### `win.isSimpleFullScreen()` _macOS_
@@ -928,11 +1049,11 @@ Returns `Boolean` - Whether the window is in simple (pre-Lion) fullscreen mode.
Returns `Boolean` - Whether the window is in normal state (not maximized, not minimized, not in fullscreen mode).
#### `win.setAspectRatio(aspectRatio[, extraSize])` _macOS_
#### `win.setAspectRatio(aspectRatio[, extraSize])` _macOS_ _Linux_
* `aspectRatio` Float - The aspect ratio to maintain for some portion of the
content view.
* `extraSize` [Size](structures/size.md) (optional) - The extra size not to be included while
* `extraSize` [Size](structures/size.md) (optional) _macOS_ - The extra size not to be included while
maintaining the aspect ratio.
This will make a window maintain an aspect ratio. The extra size allows a
@@ -945,13 +1066,10 @@ Perhaps there are 15 pixels of controls on the left edge, 25 pixels of controls
on the right edge and 50 pixels of controls below the player. In order to
maintain a 16:9 aspect ratio (standard aspect ratio for HD @1920x1080) within
the player itself we would call this function with arguments of 16/9 and
[ 40, 50 ]. The second argument doesn't care where the extra width and height
{ width: 40, height: 50 }. The second argument doesn't care where the extra width and height
are within the content view--only that they exist. Sum any extra width and
height areas you have within the overall content view.
Calling this function with a value of `0` will remove any previously set aspect
ratios.
#### `win.setBackgroundColor(backgroundColor)`
* `backgroundColor` String - Window's background color as a hexadecimal value,
@@ -1001,6 +1119,11 @@ console.log(win.getBounds())
Returns [`Rectangle`](structures/rectangle.md) - The `bounds` of the window as `Object`.
#### `win.getBackgroundColor()`
Returns `String` - Gets the background color of the window. See [Setting
`backgroundColor`](#setting-backgroundcolor).
#### `win.setContentBounds(bounds[, animate])`
* `bounds` [Rectangle](structures/rectangle.md)
@@ -1027,7 +1150,7 @@ Disable or enable the window.
#### `win.isEnabled()`
Returns Boolean - whether the window is enabled.
Returns `Boolean` - whether the window is enabled.
#### `win.setSize(width, height[, animate])`
@@ -1079,15 +1202,11 @@ Returns `Integer[]` - Contains the window's maximum width and height.
* `resizable` Boolean
Sets whether the window can be manually resized by user.
**[Deprecated](modernization/property-updates.md)**
Sets whether the window can be manually resized by the user.
#### `win.isResizable()`
Returns `Boolean` - Whether the window can be manually resized by user.
**[Deprecated](modernization/property-updates.md)**
Returns `Boolean` - Whether the window can be manually resized by the user.
#### `win.setMovable(movable)` _macOS_ _Windows_
@@ -1095,41 +1214,29 @@ Returns `Boolean` - Whether the window can be manually resized by user.
Sets whether the window can be moved by user. On Linux does nothing.
**[Deprecated](modernization/property-updates.md)**
#### `win.isMovable()` _macOS_ _Windows_
Returns `Boolean` - Whether the window can be moved by user.
On Linux always returns `true`.
**[Deprecated](modernization/property-updates.md)**
#### `win.setMinimizable(minimizable)` _macOS_ _Windows_
* `minimizable` Boolean
Sets whether the window can be manually minimized by user. On Linux does
nothing.
**[Deprecated](modernization/property-updates.md)**
Sets whether the window can be manually minimized by user. On Linux does nothing.
#### `win.isMinimizable()` _macOS_ _Windows_
Returns `Boolean` - Whether the window can be manually minimized by user
Returns `Boolean` - Whether the window can be manually minimized by the user.
On Linux always returns `true`.
**[Deprecated](modernization/property-updates.md)**
#### `win.setMaximizable(maximizable)` _macOS_ _Windows_
* `maximizable` Boolean
Sets whether the window can be manually maximized by user. On Linux does
nothing.
**[Deprecated](modernization/property-updates.md)**
Sets whether the window can be manually maximized by user. On Linux does nothing.
#### `win.isMaximizable()` _macOS_ _Windows_
@@ -1137,23 +1244,15 @@ Returns `Boolean` - Whether the window can be manually maximized by user.
On Linux always returns `true`.
**[Deprecated](modernization/property-updates.md)**
#### `win.setFullScreenable(fullscreenable)`
* `fullscreenable` Boolean
Sets whether the maximize/zoom window button toggles fullscreen mode or
maximizes the window.
**[Deprecated](modernization/property-updates.md)**
Sets whether the maximize/zoom window button toggles fullscreen mode or maximizes the window.
#### `win.isFullScreenable()`
Returns `Boolean` - Whether the maximize/zoom window button toggles fullscreen mode or
maximizes the window.
**[Deprecated](modernization/property-updates.md)**
Returns `Boolean` - Whether the maximize/zoom window button toggles fullscreen mode or maximizes the window.
#### `win.setClosable(closable)` _macOS_ _Windows_
@@ -1161,16 +1260,12 @@ maximizes the window.
Sets whether the window can be manually closed by user. On Linux does nothing.
**[Deprecated](modernization/property-updates.md)**
#### `win.isClosable()` _macOS_ _Windows_
Returns `Boolean` - Whether the window can be manually closed by user.
On Linux always returns `true`.
**[Deprecated](modernization/property-updates.md)**
#### `win.setAlwaysOnTop(flag[, level][, relativeLevel])`
* `flag` Boolean
@@ -1194,6 +1289,14 @@ can not be focused on.
Returns `Boolean` - Whether the window is always on top of other windows.
#### `win.moveAbove(mediaSourceId)`
* `mediaSourceId` String - Window id in the format of DesktopCapturerSource's id. For example "window:1869:0".
Moves window above the source window in the sense of z-order. If the
`mediaSourceId` is not of type window or if the window does not exist then
this method throws an error.
#### `win.moveTop()`
Moves window to top(z-order) regardless of focus
@@ -1238,9 +1341,9 @@ a HTML-rendered toolbar. For example:
```javascript
const { BrowserWindow } = require('electron')
let win = new BrowserWindow()
const win = new BrowserWindow()
let toolbarRect = document.getElementById('toolbar').getBoundingClientRect()
const toolbarRect = document.getElementById('toolbar').getBoundingClientRect()
win.setSheetOffset(toolbarRect.height)
```
@@ -1260,12 +1363,21 @@ Makes the window not show in the taskbar.
* `flag` Boolean
Enters or leaves the kiosk mode.
Enters or leaves kiosk mode.
#### `win.isKiosk()`
Returns `Boolean` - Whether the window is in kiosk mode.
#### `win.getMediaSourceId()`
Returns `String` - Window id in the format of DesktopCapturerSource's id. For example "window:1234:0".
More precisely the format is `window:id:other_id` where `id` is `HWND` on
Windows, `CGWindowID` (`uint64_t`) on macOS and `Window` (`unsigned long`) on
Linux. `other_id` is used to identify web contents (tabs) so within the same
top level window.
#### `win.getNativeWindowHandle()`
Returns `Buffer` - The platform-specific handle of the window.
@@ -1355,7 +1467,7 @@ Node's [`url.format`](https://nodejs.org/api/url.html#url_url_format_urlobject)
method:
```javascript
let url = require('url').format({
const url = require('url').format({
protocol: 'file',
slashes: true,
pathname: require('path').join(__dirname, 'index.html')
@@ -1381,7 +1493,7 @@ win.loadURL('http://localhost:8000/post', {
* `filePath` String
* `options` Object (optional)
* `query` Object (optional) - Passed to `url.format()`.
* `query` Record<String, String> (optional) - Passed to `url.format()`.
* `search` String (optional) - Passed to `url.format()`.
* `hash` String (optional) - Passed to `url.format()`.
@@ -1437,29 +1549,27 @@ screen readers
Sets a 16 x 16 pixel overlay onto the current taskbar icon, usually used to
convey some sort of application status or to passively notify the user.
#### `win.setHasShadow(hasShadow)` _macOS_
#### `win.setHasShadow(hasShadow)`
* `hasShadow` Boolean
Sets whether the window should have a shadow. On Windows and Linux does
nothing.
Sets whether the window should have a shadow.
#### `win.hasShadow()` _macOS_
#### `win.hasShadow()`
Returns `Boolean` - Whether the window has a shadow.
On Windows and Linux always returns
`true`.
#### `win.setOpacity(opacity)` _Windows_ _macOS_
* `opacity` Number - between 0.0 (fully transparent) and 1.0 (fully opaque)
Sets the opacity of the window. On Linux does nothing.
Sets the opacity of the window. On Linux, does nothing. Out of bound number
values are clamped to the [0, 1] range.
#### `win.getOpacity()` _Windows_ _macOS_
#### `win.getOpacity()`
Returns `Number` - between 0.0 (fully transparent) and 1.0 (fully opaque)
Returns `Number` - between 0.0 (fully transparent) and 1.0 (fully opaque). On
Linux, always returns 1.
#### `win.setShape(rects)` _Windows_ _Linux_ _Experimental_
@@ -1548,7 +1658,7 @@ Same as `webContents.showDefinitionForSelection()`.
#### `win.setIcon(icon)` _Windows_ _Linux_
* `icon` [NativeImage](native-image.md)
* `icon` [NativeImage](native-image.md) | String
Changes window icon.
@@ -1567,23 +1677,17 @@ This cannot be called when `titleBarStyle` is set to `customButtonsOnHover`.
Sets whether the window menu bar should hide itself automatically. Once set the
menu bar will only show when users press the single `Alt` key.
If the menu bar is already visible, calling `setAutoHideMenuBar(true)` won't
hide it immediately.
**[Deprecated](modernization/property-updates.md)**
If the menu bar is already visible, calling `setAutoHideMenuBar(true)` won't hide it immediately.
#### `win.isMenuBarAutoHide()`
Returns `Boolean` - Whether menu bar automatically hides itself.
**[Deprecated](modernization/property-updates.md)**
#### `win.setMenuBarVisibility(visible)` _Windows_ _Linux_
* `visible` Boolean
Sets whether the menu bar should be visible. If the menu bar is auto-hide, users
can still bring up the menu bar by pressing the single `Alt` key.
Sets whether the menu bar should be visible. If the menu bar is auto-hide, users can still bring up the menu bar by pressing the single `Alt` key.
#### `win.isMenuBarVisible()`
@@ -1702,7 +1806,18 @@ will remove the vibrancy effect on the window.
Note that `appearance-based`, `light`, `dark`, `medium-light`, and `ultra-dark` have been
deprecated and will be removed in an upcoming version of macOS.
#### `win.setTouchBar(touchBar)` _macOS_ _Experimental_
#### `win.setTrafficLightPosition(position)` _macOS_
* `position` [Point](structures/point.md)
Set a custom position for the traffic light buttons. Can only be used with `titleBarStyle` set to `hidden`.
#### `win.getTrafficLightPosition()` _macOS_
Returns `Point` - The current position for the traffic light buttons. Can only be used with `titleBarStyle`
set to `hidden`.
#### `win.setTouchBar(touchBar)` _macOS_
* `touchBar` TouchBar | null
@@ -1715,14 +1830,14 @@ removed in future Electron releases.
#### `win.setBrowserView(browserView)` _Experimental_
* `browserView` [BrowserView](browser-view.md) | null - Attach browserView to win.
If there is some other browserViews was attached they will be removed from
* `browserView` [BrowserView](browser-view.md) | null - Attach `browserView` to `win`.
If there are other `BrowserView`s attached, they will be removed from
this window.
#### `win.getBrowserView()` _Experimental_
Returns `BrowserView | null` - an BrowserView what is attached. Returns `null`
if none is attached. Throw error if multiple BrowserViews is attached.
Returns `BrowserView | null` - The `BrowserView` attached to `win`. Returns `null`
if one is not attached. Throws an error if multiple `BrowserView`s are attached.
#### `win.addBrowserView(browserView)` _Experimental_

View File

@@ -16,12 +16,15 @@ following properties:
method.
* `url` String (optional) - The request URL. Must be provided in the absolute
form with the protocol scheme specified as http or https.
* `session` Object (optional) - The [`Session`](session.md) instance with
* `session` Session (optional) - The [`Session`](session.md) instance with
which the request is associated.
* `partition` String (optional) - The name of the [`partition`](session.md)
with which the request is associated. Defaults to the empty string. The
`session` option prevails on `partition`. Thus if a `session` is explicitly
specified, `partition` is ignored.
* `useSessionCookies` Boolean (optional) - Whether to send cookies with this
request from the provided session. This will make the `net` request's
cookie behavior match a `fetch` request. Default is `false`.
* `protocol` String (optional) - The protocol scheme in the form 'scheme:'.
Currently supported values are 'http:' or 'https:'. Defaults to 'http:'.
* `host` String (optional) - The server host provided as a concatenation of
@@ -32,8 +35,8 @@ the hostname and the port number 'hostname:port'.
* `redirect` String (optional) - The redirect mode for this request. Should be
one of `follow`, `error` or `manual`. Defaults to `follow`. When mode is `error`,
any redirection will be aborted. When mode is `manual` the redirection will be
deferred until [`request.followRedirect`](#requestfollowredirect) is invoked. Listen for the [`redirect`](#event-redirect) event in
this mode to get more details about the redirect request.
cancelled unless [`request.followRedirect`](#requestfollowredirect) is invoked
synchronously during the [`redirect`](#event-redirect) event.
`options` properties such as `protocol`, `host`, `hostname`, `port` and `path`
strictly follow the Node.js model as described in the
@@ -70,8 +73,8 @@ Returns:
* `port` Integer
* `realm` String
* `callback` Function
* `username` String
* `password` String
* `username` String (optional)
* `password` String (optional)
Emitted when an authenticating proxy is asking for user credentials.
@@ -134,10 +137,13 @@ Returns:
* `statusCode` Integer
* `method` String
* `redirectUrl` String
* `responseHeaders` Object
* `responseHeaders` Record<String, String[]>
Emitted when there is redirection and the mode is `manual`. Calling
[`request.followRedirect`](#requestfollowredirect) will continue with the redirection.
Emitted when the server returns a redirect response (e.g. 301 Moved
Permanently). Calling [`request.followRedirect`](#requestfollowredirect) will
continue with the redirection. If this event is handled,
[`request.followRedirect`](#requestfollowredirect) must be called
**synchronously**, otherwise the request will be cancelled.
### Instance Properties
@@ -158,18 +164,32 @@ internally buffered inside Electron process memory.
#### `request.setHeader(name, value)`
* `name` String - An extra HTTP header name.
* `value` Object - An extra HTTP header value.
* `value` String - An extra HTTP header value.
Adds an extra HTTP header. The header name will be issued as-is without
lowercasing. It can be called only before first write. Calling this method after
the first write will throw an error. If the passed value is not a `String`, its
`toString()` method will be called to obtain the final value.
Certain headers are restricted from being set by apps. These headers are
listed below. More information on restricted headers can be found in
[Chromium's header utils](https://source.chromium.org/chromium/chromium/src/+/master:services/network/public/cpp/header_util.cc;drc=1562cab3f1eda927938f8f4a5a91991fefde66d3;bpv=1;bpt=1;l=22).
* `Content-Length`
* `Host`
* `Trailer` or `Te`
* `Upgrade`
* `Cookie2`
* `Keep-Alive`
* `Transfer-Encoding`
Additionally, setting the `Connection` header to the value `upgrade` is also disallowed.
#### `request.getHeader(name)`
* `name` String - Specify an extra header name.
Returns `Object` - The value of a previously set extra header name.
Returns `String` - The value of a previously set extra header name.
#### `request.removeHeader(name)`
@@ -214,7 +234,8 @@ response object,it will emit the `aborted` event.
#### `request.followRedirect()`
Continues any deferred redirection request when the redirection mode is `manual`.
Continues any pending redirection. Can only be called during a `'redirect'`
event.
#### `request.getUploadProgress()`

View File

@@ -4,18 +4,12 @@
Process: [Main](../glossary.md#main-process), [Renderer](../glossary.md#renderer-process)
The following example shows how to write a string to the clipboard:
```javascript
const { clipboard } = require('electron')
clipboard.writeText('Example String')
```
On Linux, there is also a `selection` clipboard. To manipulate it
you need to pass `selection` to each method:
```javascript
const { clipboard } = require('electron')
clipboard.writeText('Example String', 'selection')
console.log(clipboard.readText('selection'))
```
@@ -28,56 +22,106 @@ The `clipboard` module has the following methods:
### `clipboard.readText([type])`
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Returns `String` - The content in the clipboard as plain text.
```js
const { clipboard } = require('electron')
clipboard.writeText('hello i am a bit of text!')
const text = clipboard.readText()
console.log(text)
// hello i am a bit of text!'
```
### `clipboard.writeText(text[, type])`
* `text` String
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes the `text` into the clipboard as plain text.
```js
const { clipboard } = require('electron')
const text = 'hello i am a bit of text!'
clipboard.writeText(text)
```
### `clipboard.readHTML([type])`
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Returns `String` - The content in the clipboard as markup.
```js
const { clipboard } = require('electron')
clipboard.writeHTML('<b>Hi</b>')
const html = clipboard.readHTML()
console.log(html)
// <meta charset='utf-8'><b>Hi</b>
```
### `clipboard.writeHTML(markup[, type])`
* `markup` String
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes `markup` to the clipboard.
```js
const { clipboard } = require('electron')
clipboard.writeHTML('<b>Hi</b')
```
### `clipboard.readImage([type])`
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Returns [`NativeImage`](native-image.md) - The image content in the clipboard.
### `clipboard.writeImage(image[, type])`
* `image` [NativeImage](native-image.md)
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes `image` to the clipboard.
### `clipboard.readRTF([type])`
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Returns `String` - The content in the clipboard as RTF.
```js
const { clipboard } = require('electron')
clipboard.writeRTF('{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\f0\\pard\nThis is some {\\b bold} text.\\par\n}')
const rtf = clipboard.readRTF()
console.log(rtf)
// {\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\f0\\pard\nThis is some {\\b bold} text.\\par\n}
```
### `clipboard.writeRTF(text[, type])`
* `text` String
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes the `text` into the clipboard in RTF.
```js
const { clipboard } = require('electron')
const rtf = '{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\f0\\pard\nThis is some {\\b bold} text.\\par\n}'
clipboard.writeRTF(rtf)
```
### `clipboard.readBookmark()` _macOS_ _Windows_
Returns `Object`:
@@ -93,7 +137,7 @@ bookmark is unavailable.
* `title` String
* `url` String
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes the `title` and `url` into the clipboard as a bookmark.
@@ -102,7 +146,9 @@ you can use `clipboard.write` to write both a bookmark and fallback text to the
clipboard.
```js
clipboard.write({
const { clipboard } = require('electron')
clipboard.writeBookmark({
text: 'https://electronjs.org',
bookmark: 'Electron Homepage'
})
@@ -110,39 +156,50 @@ clipboard.write({
### `clipboard.readFindText()` _macOS_
Returns `String` - The text on the find pasteboard. This method uses synchronous
IPC when called from the renderer process. The cached value is reread from the
find pasteboard whenever the application is activated.
Returns `String` - The text on the find pasteboard, which is the pasteboard that holds information about the current state of the active applications find panel.
This method uses synchronous IPC when called from the renderer process.
The cached value is reread from the find pasteboard whenever the application is activated.
### `clipboard.writeFindText(text)` _macOS_
* `text` String
Writes the `text` into the find pasteboard as plain text. This method uses
synchronous IPC when called from the renderer process.
Writes the `text` into the find pasteboard (the pasteboard that holds information about the current state of the active applications find panel) as plain text. This method uses synchronous IPC when called from the renderer process.
### `clipboard.clear([type])`
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Clears the clipboard content.
### `clipboard.availableFormats([type])`
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Returns `String[]` - An array of supported formats for the clipboard `type`.
```js
const { clipboard } = require('electron')
const formats = clipboard.availableFormats()
console.log(formats)
// [ 'text/plain', 'text/html' ]
```
### `clipboard.has(format[, type])` _Experimental_
* `format` String
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Returns `Boolean` - Whether the clipboard supports the specified `format`.
```javascript
```js
const { clipboard } = require('electron')
console.log(clipboard.has('<p>selection</p>'))
const hasFormat = clipboard.has('<p>selection</p>')
console.log(hasFormat)
// 'true' or 'false
```
### `clipboard.read(format)` _Experimental_
@@ -157,14 +214,33 @@ Returns `String` - Reads `format` type from the clipboard.
Returns `Buffer` - Reads `format` type from the clipboard.
```js
const { clipboard } = require('electron')
const buffer = Buffer.from('this is binary', 'utf8')
clipboard.writeBuffer('public.utf8-plain-text', buffer)
const ret = clipboard.readBuffer('public.utf8-plain-text')
console.log(buffer.equals(out))
// true
```
### `clipboard.writeBuffer(format, buffer[, type])` _Experimental_
* `format` String
* `buffer` Buffer
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
Writes the `buffer` into the clipboard as `format`.
```js
const { clipboard } = require('electron')
const buffer = Buffer.from('writeBuffer', 'utf8')
clipboard.writeBuffer('public.utf8-plain-text', buffer)
```
### `clipboard.write(data[, type])`
* `data` Object
@@ -173,10 +249,29 @@ Writes the `buffer` into the clipboard as `format`.
* `image` [NativeImage](native-image.md) (optional)
* `rtf` String (optional)
* `bookmark` String (optional) - The title of the URL at `text`.
* `type` String (optional) - Can be `selection` or `clipboard`. `selection` is only available on Linux.
* `type` String (optional) - Can be `selection` or `clipboard`; default is 'clipboard'. `selection` is only available on Linux.
```javascript
const { clipboard } = require('electron')
clipboard.write({ text: 'test', html: '<b>test</b>' })
```
Writes `data` to the clipboard.
```js
const { clipboard } = require('electron')
clipboard.write({
text: 'test',
html: '<b>Hi</b>',
rtf: '{\\rtf1\\utf8 text}',
bookmark: 'a title'
})
console.log(clipboard.readText())
// 'test'
console.log(clipboard.readHTML())
// <meta charset='utf-8'><b>Hi</b>
console.log(clipboard.readRTF())
// '{\\rtf1\\utf8 text}'
console.log(clipboard.readBookmark())
// { title: 'a title', url: 'test' }
```

View File

@@ -1,4 +1,4 @@
# Supported Chrome Command Line Switches
# Supported Command Line Switches
> Command line switches supported by Electron.
@@ -11,85 +11,75 @@ const { app } = require('electron')
app.commandLine.appendSwitch('remote-debugging-port', '8315')
app.commandLine.appendSwitch('host-rules', 'MAP * 127.0.0.1')
app.on('ready', () => {
app.whenReady().then(() => {
// Your code here
})
```
## --ignore-connections-limit=`domains`
## Electron CLI Flags
Ignore the connections limit for `domains` list separated by `,`.
### --auth-server-whitelist=`url`
## --disable-http-cache
Disables the disk cache for HTTP requests.
## --disable-http2
Disable HTTP/2 and SPDY/3.1 protocols.
## --lang
Set a custom locale.
## --inspect=`port` and --inspect-brk=`port`
Debug-related flags, see the [Debugging the Main Process][debugging-main-process] guide for details.
## --remote-debugging-port=`port`
Enables remote debugging over HTTP on the specified `port`.
## --disk-cache-size=`size`
Forces the maximum disk space to be used by the disk cache, in bytes.
## --js-flags=`flags`
Specifies the flags passed to the Node.js engine. It has to be passed when starting
Electron if you want to enable the `flags` in the main process.
```sh
$ electron --js-flags="--harmony_proxies --harmony_collections" your-app
```
See the [Node.js documentation][node-cli] or run `node --help` in your terminal for a list of available flags. Additionally, run `node --v8-options` to see a list of flags that specifically refer to Node.js's V8 JavaScript engine.
## --proxy-server=`address:port`
Use a specified proxy server, which overrides the system setting. This switch
only affects requests with HTTP protocol, including HTTPS and WebSocket
requests. It is also noteworthy that not all proxy servers support HTTPS and
WebSocket requests. The proxy URL does not support username and password
authentication [per Chromium issue](https://bugs.chromium.org/p/chromium/issues/detail?id=615947).
## --proxy-bypass-list=`hosts`
Instructs Electron to bypass the proxy server for the given semi-colon-separated
list of hosts. This flag has an effect only if used in tandem with
`--proxy-server`.
A comma-separated list of servers for which integrated authentication is enabled.
For example:
```javascript
const { app } = require('electron')
app.commandLine.appendSwitch('proxy-bypass-list', '<local>;*.google.com;*foo.com;1.2.3.4:5678')
```sh
--auth-server-whitelist='*example.com, *foobar.com, *baz'
```
Will use the proxy server for all hosts except for local addresses (`localhost`,
`127.0.0.1` etc.), `google.com` subdomains, hosts that contain the suffix
`foo.com` and anything at `1.2.3.4:5678`.
then any `url` ending with `example.com`, `foobar.com`, `baz` will be considered
for integrated authentication. Without `*` prefix the URL has to match exactly.
## --proxy-pac-url=`url`
### --auth-negotiate-delegate-whitelist=`url`
Uses the PAC script at the specified `url`.
A comma-separated list of servers for which delegation of user credentials is required.
Without `*` prefix the URL has to match exactly.
## --no-proxy-server
### --disable-ntlm-v2
Don't use a proxy server and always make direct connections. Overrides any other
proxy server flags that are passed.
Disables NTLM v2 for posix platforms, no effect elsewhere.
## --host-rules=`rules`
### --disable-http-cache
Disables the disk cache for HTTP requests.
### --disable-http2
Disable HTTP/2 and SPDY/3.1 protocols.
### --disable-renderer-backgrounding
Prevents Chromium from lowering the priority of invisible pages' renderer
processes.
This flag is global to all renderer processes, if you only want to disable
throttling in one window, you can take the hack of
[playing silent audio][play-silent-audio].
### --disk-cache-size=`size`
Forces the maximum disk space to be used by the disk cache, in bytes.
### --enable-api-filtering-logging
Enables caller stack logging for the following APIs (filtering events):
- `desktopCapturer.getSources()` / `desktop-capturer-get-sources`
- `remote.require()` / `remote-require`
- `remote.getGlobal()` / `remote-get-builtin`
- `remote.getBuiltin()` / `remote-get-global`
- `remote.getCurrentWindow()` / `remote-get-current-window`
- `remote.getCurrentWebContents()` / `remote-get-current-web-contents`
### --enable-logging
Prints Chromium's logging into console.
This switch can not be used in `app.commandLine.appendSwitch` since it is parsed
earlier than user's app is loaded, but you can set the `ELECTRON_ENABLE_LOGGING`
environment variable to achieve the same effect.
### --host-rules=`rules`
A comma-separated list of `rules` that control how hostnames are mapped.
@@ -107,69 +97,96 @@ These mappings apply to the endpoint host in a net request (the TCP connect
and host resolver in a direct connection, and the `CONNECT` in an HTTP proxy
connection, and the endpoint host in a `SOCKS` proxy connection).
## --host-resolver-rules=`rules`
### --host-resolver-rules=`rules`
Like `--host-rules` but these `rules` only apply to the host resolver.
## --auth-server-whitelist=`url`
A comma-separated list of servers for which integrated authentication is enabled.
For example:
```sh
--auth-server-whitelist='*example.com, *foobar.com, *baz'
```
then any `url` ending with `example.com`, `foobar.com`, `baz` will be considered
for integrated authentication. Without `*` prefix the URL has to match exactly.
## --auth-negotiate-delegate-whitelist=`url`
A comma-separated list of servers for which delegation of user credentials is required.
Without `*` prefix the URL has to match exactly.
## --ignore-certificate-errors
### --ignore-certificate-errors
Ignores certificate related errors.
## --ppapi-flash-path=`path`
### --ignore-connections-limit=`domains`
Sets the `path` of the pepper flash plugin.
Ignore the connections limit for `domains` list separated by `,`.
## --ppapi-flash-version=`version`
### --js-flags=`flags`
Sets the `version` of the pepper flash plugin.
Specifies the flags passed to the Node.js engine. It has to be passed when starting
Electron if you want to enable the `flags` in the main process.
## --log-net-log=`path`
```sh
$ electron --js-flags="--harmony_proxies --harmony_collections" your-app
```
See the [Node.js documentation][node-cli] or run `node --help` in your terminal for a list of available flags. Additionally, run `node --v8-options` to see a list of flags that specifically refer to Node.js's V8 JavaScript engine.
### --lang
Set a custom locale.
### --log-net-log=`path`
Enables net log events to be saved and writes them to `path`.
## --disable-renderer-backgrounding
### --no-proxy-server
Prevents Chromium from lowering the priority of invisible pages' renderer
processes.
Don't use a proxy server and always make direct connections. Overrides any other
proxy server flags that are passed.
This flag is global to all renderer processes, if you only want to disable
throttling in one window, you can take the hack of
[playing silent audio][play-silent-audio].
### --no-sandbox
## --enable-logging
Disables Chromium sandbox, which is now enabled by default.
Should only be used for testing.
Prints Chromium's logging into console.
### --proxy-bypass-list=`hosts`
This switch can not be used in `app.commandLine.appendSwitch` since it is parsed
earlier than user's app is loaded, but you can set the `ELECTRON_ENABLE_LOGGING`
environment variable to achieve the same effect.
Instructs Electron to bypass the proxy server for the given semi-colon-separated
list of hosts. This flag has an effect only if used in tandem with
`--proxy-server`.
## --v=`log_level`
For example:
```javascript
const { app } = require('electron')
app.commandLine.appendSwitch('proxy-bypass-list', '<local>;*.google.com;*foo.com;1.2.3.4:5678')
```
Will use the proxy server for all hosts except for local addresses (`localhost`,
`127.0.0.1` etc.), `google.com` subdomains, hosts that contain the suffix
`foo.com` and anything at `1.2.3.4:5678`.
### --proxy-pac-url=`url`
Uses the PAC script at the specified `url`.
### --proxy-server=`address:port`
Use a specified proxy server, which overrides the system setting. This switch
only affects requests with HTTP protocol, including HTTPS and WebSocket
requests. It is also noteworthy that not all proxy servers support HTTPS and
WebSocket requests. The proxy URL does not support username and password
authentication [per Chromium issue](https://bugs.chromium.org/p/chromium/issues/detail?id=615947).
### --remote-debugging-port=`port`
Enables remote debugging over HTTP on the specified `port`.
### --ppapi-flash-path=`path`
Sets the `path` of the pepper flash plugin.
### --ppapi-flash-version=`version`
Sets the `version` of the pepper flash plugin.
### --v=`log_level`
Gives the default maximal active V-logging level; 0 is the default. Normally
positive values are used for V-logging levels.
This switch only works when `--enable-logging` is also passed.
## --vmodule=`pattern`
### --vmodule=`pattern`
Gives the per-module maximal V-logging levels to override the value given by
`--v`. E.g. `my_module=2,foo*=3` would change the logging level for all code in
@@ -181,10 +198,46 @@ logging level for all code in the source files under a `foo/bar` directory.
This switch only works when `--enable-logging` is also passed.
## --no-sandbox
### --force_high_performance_gpu
Disables Chromium sandbox, which is now enabled by default.
Should only be used for testing.
Force using discrete GPU when there are multiple GPUs available.
### --force_low_power_gpu
Force using integrated GPU when there are multiple GPUs available.
## Node.js Flags
Electron supports some of the [CLI flags][node-cli] supported by Node.js.
**Note:** Passing unsupported command line switches to Electron when it is not running in `ELECTRON_RUN_AS_NODE` will have no effect.
### --inspect-brk[=[host:]port]
Activate inspector on host:port and break at start of user script. Default host:port is 127.0.0.1:9229.
Aliased to `--debug-brk=[host:]port`.
### --inspect-port=[host:]port
Set the `host:port` to be used when the inspector is activated. Useful when activating the inspector by sending the SIGUSR1 signal. Default host is `127.0.0.1`.
Aliased to `--debug-port=[host:]port`.
### --inspect[=[host:]port]
Activate inspector on `host:port`. Default is `127.0.0.1:9229`.
V8 inspector integration allows tools such as Chrome DevTools and IDEs to debug and profile Electron instances. The tools attach to Electron instances via a TCP port and communicate using the [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/).
See the [Debugging the Main Process][debugging-main-process] guide for more details.
Aliased to `--debug[=[host:]port`.
### --inspect-publish-uid=stderr,http
Specify ways of the inspector web socket url exposure.
By default inspector websocket url is available in stderr and under /json/list endpoint on http://host:port/json/list.
[app]: app.md
[append-switch]: app.md#appcommandlineappendswitchswitch-value

View File

@@ -12,7 +12,7 @@ app.commandLine.hasSwitch('disable-gpu')
```
For more information on what kinds of flags and switches you can use, check
out the [Chrome Command Line Switches](./chrome-command-line-switches.md)
out the [Command Line Switches](./command-line-switches.md)
document.
### Instance Methods

View File

@@ -13,7 +13,7 @@ module is emitted.
```javascript
const { app, contentTracing } = require('electron')
app.on('ready', () => {
app.whenReady().then(() => {
(async () => {
await contentTracing.startRecording({
include_categories: ['*']
@@ -38,6 +38,9 @@ Get a set of category groups. The category groups can change as new code paths
are reached. See also the [list of built-in tracing
categories](https://chromium.googlesource.com/chromium/src/+/master/base/trace_event/builtin_categories.h).
> **NOTE:** Electron adds a non-default tracing category called `"electron"`.
> This category can be used to capture Electron-specific tracing events.
### `contentTracing.startRecording(options)`
* `options` ([TraceConfig](structures/trace-config.md) | [TraceCategoriesAndOptions](structures/trace-categories-and-options.md))
@@ -74,7 +77,10 @@ will be returned in the promise.
Returns `Promise<Object>` - Resolves with an object containing the `value` and `percentage` of trace buffer maximum usage
* `value` Number
* `percentage` Number
Get the maximum usage across processes of trace buffer as a percentage of the
full state.
[trace viewer]: https://github.com/catapult-project/catapult/blob/master/tracing
[trace viewer]: https://chromium.googlesource.com/catapult/+/HEAD/tracing/README.md

112
docs/api/context-bridge.md Normal file
View File

@@ -0,0 +1,112 @@
# contextBridge
> Create a safe, bi-directional, synchronous bridge across isolated contexts
Process: [Renderer](../glossary.md#renderer-process)
An example of exposing an API to a renderer from an isolated preload script is given below:
```javascript
// Preload (Isolated World)
const { contextBridge, ipcRenderer } = require('electron')
contextBridge.exposeInMainWorld(
'electron',
{
doThing: () => ipcRenderer.send('do-a-thing')
}
)
```
```javascript
// Renderer (Main World)
window.electron.doThing()
```
## Glossary
### Main World
The "Main World" is the JavaScript context that your main renderer code runs in. By default, the
page you load in your renderer executes code in this world.
### Isolated World
When `contextIsolation` is enabled in your `webPreferences`, your `preload` scripts run in an
"Isolated World". You can read more about context isolation and what it affects in the
[security](../tutorial/security.md#3-enable-context-isolation-for-remote-content) docs.
## Methods
The `contextBridge` module has the following methods:
### `contextBridge.exposeInMainWorld(apiKey, api)` _Experimental_
* `apiKey` String - The key to inject the API onto `window` with. The API will be accessible on `window[apiKey]`.
* `api` Record<String, any> - Your API object, more information on what this API can be and how it works is available below.
## Usage
### API Objects
The `api` object provided to [`exposeInMainWorld`](#contextbridgeexposeinmainworldapikey-api-experimental) must be an object
whose keys are strings and values are a `Function`, `String`, `Number`, `Array`, `Boolean`, or another nested object that meets the same conditions.
`Function` values are proxied to the other context and all other values are **copied** and **frozen**. Any data / primitives sent in
the API object become immutable and updates on either side of the bridge do not result in an update on the other side.
An example of a complex API object is shown below:
```javascript
const { contextBridge } = require('electron')
contextBridge.exposeInMainWorld(
'electron',
{
doThing: () => ipcRenderer.send('do-a-thing'),
myPromises: [Promise.resolve(), Promise.reject(new Error('whoops'))],
anAsyncFunction: async () => 123,
data: {
myFlags: ['a', 'b', 'c'],
bootTime: 1234
},
nestedAPI: {
evenDeeper: {
youCanDoThisAsMuchAsYouWant: {
fn: () => ({
returnData: 123
})
}
}
}
}
)
```
### API Functions
`Function` values that you bind through the `contextBridge` are proxied through Electron to ensure that contexts remain isolated. This
results in some key limitations that we've outlined below.
#### Parameter / Error / Return Type support
Because parameters, errors and return values are **copied** when they are sent over the bridge, there are only certain types that can be used.
At a high level, if the type you want to use can be serialized and deserialized into the same object it will work. A table of type support
has been included below for completeness:
| Type | Complexity | Parameter Support | Return Value Support | Limitations |
| ---- | ---------- | ----------------- | -------------------- | ----------- |
| `String` | Simple | ✅ | ✅ | N/A |
| `Number` | Simple | ✅ | ✅ | N/A |
| `Boolean` | Simple | ✅ | ✅ | N/A |
| `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. |
| `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 |
| `Symbol` | N/A | ❌ | ❌ | Symbols cannot be copied across contexts so they are dropped |
If the type you care about is not in the above table, it is probably not supported.

View File

@@ -96,6 +96,7 @@ the response.
* `expirationDate` Double (optional) - The expiration date of the cookie as the number of
seconds since the UNIX epoch. If omitted then the cookie becomes a session
cookie and will not be retained between sessions.
* `sameSite` String (optional) - The [Same Site](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#SameSite_cookies) policy to apply to this cookie. Can be `unspecified`, `no_restriction`, `lax` or `strict`. Default is `no_restriction`.
Returns `Promise<void>` - A promise which resolves when the cookie has been set

View File

@@ -4,18 +4,13 @@
Process: [Main](../glossary.md#main-process), [Renderer](../glossary.md#renderer-process)
The following is an example of automatically submitting a crash report to a
remote server:
The following is an example of setting up Electron to automatically submit
crash reports to a remote server:
```javascript
const { crashReporter } = require('electron')
crashReporter.start({
productName: 'YourName',
companyName: 'YourCompany',
submitURL: 'https://your-domain.com/url-to-submit',
uploadToServer: true
})
crashReporter.start({ submitURL: 'https://your-domain.com/url-to-submit' })
```
For setting up a server to accept and process crash reports, you can use
@@ -30,11 +25,19 @@ Or use a 3rd party hosted solution:
* [Sentry](https://docs.sentry.io/clients/electron)
* [BugSplat](https://www.bugsplat.com/docs/platforms/electron)
Crash reports are saved locally in an application-specific temp directory folder.
For a `productName` of `YourName`, crash reports will be stored in a folder
named `YourName Crashes` inside the temp directory. You can customize this temp
directory location for your app by calling the `app.setPath('temp', '/my/custom/temp')`
API before starting the crash reporter.
Crash reports are stored temporarily before being uploaded in a directory
underneath the app's user data directory (called 'Crashpad' on Windows and Mac,
or 'Crash Reports' on Linux). You can override this directory by calling
`app.setPath('crashDumps', '/path/to/crashes')` before starting the crash
reporter.
On Windows and macOS, Electron uses
[crashpad](https://chromium.googlesource.com/crashpad/crashpad/+/master/README.md)
to monitor and report crashes. On Linux, Electron uses
[breakpad](https://chromium.googlesource.com/breakpad/breakpad/+/master/). This
is an implementation detail driven by Chromium, and it may change in future. In
particular, crashpad is newer and will likely eventually replace breakpad on
all platforms.
## Methods
@@ -43,40 +46,67 @@ The `crashReporter` module has the following methods:
### `crashReporter.start(options)`
* `options` Object
* `companyName` String
* `submitURL` String - URL that crash reports will be sent to as POST.
* `productName` String (optional) - Defaults to `app.name`.
* `uploadToServer` Boolean (optional) - Whether crash reports should be sent to the server. Default is `true`.
* `ignoreSystemCrashHandler` Boolean (optional) - Default is `false`.
* `extra` Object (optional) - An object you can define that will be sent along with the
report. Only string properties are sent correctly. Nested objects are not
supported. When using Windows, the property names and values must be fewer than 64 characters.
* `crashesDirectory` String (optional) - Directory to store the crash reports temporarily (only used when the crash reporter is started via `process.crashReporter.start`).
* `companyName` String (optional) _Deprecated_ - Deprecated alias for
`{ globalExtra: { _companyName: ... } }`.
* `uploadToServer` Boolean (optional) - Whether crash reports should be sent
to the server. If false, crash reports will be collected and stored in the
crashes directory, but not uploaded. Default is `true`.
* `ignoreSystemCrashHandler` Boolean (optional) - If true, crashes generated
in the main process will not be forwarded to the system crash handler.
Default is `false`.
* `rateLimit` Boolean (optional) _macOS_ _Windows_ - If true, limit the
number of crashes uploaded to 1/hour. Default is `false`.
* `compress` Boolean (optional) - If true, crash reports will be compressed
and uploaded with `Content-Encoding: gzip`. Default is `false`.
* `extra` Record<String, String> (optional) - Extra string key/value
annotations that will be sent along with crash reports that are generated
in the main process. Only string values are supported. Crashes generated in
child processes will not contain these extra
parameters to crash reports generated from child processes, call
[`addExtraParameter`](#crashreporteraddextraparameterkey-value) from the
child process.
* `globalExtra` Record<String, String> (optional) - Extra string key/value
annotations that will be sent along with any crash reports generated in any
process. These annotations cannot be changed once the crash reporter has
been started. If a key is present in both the global extra parameters and
the process-specific extra parameters, then the global one will take
precedence. By default, `productName` and the app version are included, as
well as the Electron version.
You are required to call this method before using any other `crashReporter` APIs
and in each process (main/renderer) from which you want to collect crash reports.
You can pass different options to `crashReporter.start` when calling from different processes.
This method must be called before using any other `crashReporter` APIs. Once
initialized this way, the crashpad handler collects crashes from all
subsequently created processes. The crash reporter cannot be disabled once
started.
**Note** Child processes created via the `child_process` module will not have access to the Electron modules.
Therefore, to collect crash reports from them, use `process.crashReporter.start` instead. Pass the same options as above
along with an additional one called `crashesDirectory` that should point to a directory to store the crash
reports temporarily. You can test this out by calling `process.crash()` to crash the child process.
This method should be called as early as possible in app startup, preferably
before `app.on('ready')`. If the crash reporter is not initialized at the time
a renderer process is created, then that renderer process will not be monitored
by the crash reporter.
**Note:** If you need send additional/updated `extra` parameters after your
first call `start` you can call `addExtraParameter` on macOS or call `start`
again with the new/updated `extra` parameters on Linux and Windows.
**Note:** You can test out the crash reporter by generating a crash using
`process.crash()`.
**Note:** On macOS and windows, Electron uses a new `crashpad` client for crash collection and reporting.
If you want to enable crash reporting, initializing `crashpad` from the main process using `crashReporter.start` is required
regardless of which process you want to collect crashes from. Once initialized this way, the crashpad handler collects
crashes from all processes. You still have to call `crashReporter.start` from the renderer or child process, otherwise crashes from
them will get reported without `companyName`, `productName` or any of the `extra` information.
**Note:** If you need to send additional/updated `extra` parameters after your
first call `start` you can call `addExtraParameter`.
**Note:** Parameters passed in `extra`, `globalExtra` or set with
`addExtraParameter` have limits on the length of the keys and values. Key names
must be at most 39 bytes long, and values must be no longer than 127 bytes.
Keys with names longer than the maximum will be silently ignored. Key values
longer than the maximum length will be truncated.
**Note:** Calling this method from the renderer process is deprecated.
### `crashReporter.getLastCrashReport()`
Returns [`CrashReport`](structures/crash-report.md):
Returns [`CrashReport`](structures/crash-report.md) - The date and ID of the
last crash report. Only crash reports that have been uploaded will be returned;
even if a crash report is present on disk it will not be returned until it is
uploaded. In the case that there are no uploaded reports, `null` is returned.
Returns the date and ID of the last crash report. Only crash reports that have been uploaded will be returned; even if a crash report is present on disk it will not be returned until it is uploaded. In the case that there are no uploaded reports, `null` is returned.
**Note:** Calling this method from the renderer process is deprecated.
### `crashReporter.getUploadedReports()`
@@ -85,39 +115,67 @@ Returns [`CrashReport[]`](structures/crash-report.md):
Returns all uploaded crash reports. Each report contains the date and uploaded
ID.
**Note:** Calling this method from the renderer process is deprecated.
### `crashReporter.getUploadToServer()`
Returns `Boolean` - Whether reports should be submitted to the server. Set through
the `start` method or `setUploadToServer`.
**Note:** This API can only be called from the main process.
**Note:** Calling this method from the renderer process is deprecated.
### `crashReporter.setUploadToServer(uploadToServer)`
* `uploadToServer` Boolean _macOS_ - Whether reports should be submitted to the server.
* `uploadToServer` Boolean - Whether reports should be submitted to the server.
This would normally be controlled by user preferences. This has no effect if
called before `start` is called.
**Note:** This API can only be called from the main process.
**Note:** Calling this method from the renderer process is deprecated.
### `crashReporter.addExtraParameter(key, value)` _macOS_ _Windows_
### `crashReporter.getCrashesDirectory()` _Deprecated_
* `key` String - Parameter key, must be less than 64 characters long.
* `value` String - Parameter value, must be less than 64 characters long.
Returns `String` - The directory where crashes are temporarily stored before being uploaded.
Set an extra parameter to be sent with the crash report. The values
specified here will be sent in addition to any values set via the `extra` option when `start` was called. This API is only available on macOS and windows, if you need to add/update extra parameters on Linux after your first call to `start` you can call `start` again with the updated `extra` options.
**Note:** This method is deprecated, use `app.getPath('crashDumps')` instead.
### `crashReporter.removeExtraParameter(key)` _macOS_ _Windows_
### `crashReporter.addExtraParameter(key, value)`
* `key` String - Parameter key, must be less than 64 characters long.
* `key` String - Parameter key, must be no longer than 39 bytes.
* `value` String - Parameter value, must be no longer than 127 bytes.
Remove a extra parameter from the current set of parameters so that it will not be sent with the crash report.
Set an extra parameter to be sent with the crash report. The values specified
here will be sent in addition to any values set via the `extra` option when
`start` was called.
Parameters added in this fashion (or via the `extra` parameter to
`crashReporter.start`) are specific to the calling process. Adding extra
parameters in the main process will not cause those parameters to be sent along
with crashes from renderer or other child processes. Similarly, adding extra
parameters in a renderer process will not result in those parameters being sent
with crashes that occur in other renderer processes or in the main process.
**Note:** Parameters have limits on the length of the keys and values. Key
names must be no longer than 39 bytes, and values must be no longer than 20320
bytes. Keys with names longer than the maximum will be silently ignored. Key
values longer than the maximum length will be truncated.
**Note:** On linux values that are longer than 127 bytes will be chunked into
multiple keys, each 127 bytes in length. E.g. `addExtraParameter('foo', 'a'.repeat(130))`
will result in two chunked keys `foo__1` and `foo__2`, the first will contain
the first 127 bytes and the second will contain the remaining 3 bytes. On
your crash reporting backend you should stitch together keys in this format.
### `crashReporter.removeExtraParameter(key)`
* `key` String - Parameter key, must be no longer than 39 bytes.
Remove an extra parameter from the current set of parameters. Future crashes
will not include this parameter.
### `crashReporter.getParameters()`
See all of the current parameters being passed to the crash reporter.
Returns `Record<String, String>` - The current 'extra' parameters of the crash reporter.
## Crash Report Payload

View File

@@ -9,7 +9,7 @@ runtime that allows interacting with pages and instrumenting them.
```javascript
const { BrowserWindow } = require('electron')
let win = new BrowserWindow()
const win = new BrowserWindow()
try {
win.webContents.debugger.attach('1.1')
@@ -50,8 +50,10 @@ Returns:
* `event` Event
* `method` String - Method name.
* `params` Object - Event parameters defined by the 'parameters'
* `params` any - Event parameters defined by the 'parameters'
attribute in the remote debugging protocol.
* `sessionId` String - Unique identifier of attached debugging session,
will match the value sent from `debugger.sendCommand`.
Emitted whenever the debugging target issues an instrumentation event.
@@ -74,11 +76,16 @@ Returns `Boolean` - Whether a debugger is attached to the `webContents`.
Detaches the debugger from the `webContents`.
#### `debugger.sendCommand(method[, commandParams])`
#### `debugger.sendCommand(method[, commandParams, sessionId])`
* `method` String - Method name, should be one of the methods defined by the
[remote debugging protocol][rdp].
* `commandParams` Object (optional) - JSON object with request parameters.
* `commandParams` any (optional) - JSON object with request parameters.
* `sessionId` String (optional) - send command to the target with associated
debugging session id. The initial value can be obtained by sending
[Target.attachToTarget][attachToTarget] message.
[attachToTarget]: https://chromedevtools.github.io/devtools-protocol/tot/Target/#method-attachToTarget
Returns `Promise<any>` - A promise that resolves with the response defined by
the 'returns' attribute of the command description in the remote debugging protocol

View File

@@ -3,7 +3,7 @@
> Access information about media sources that can be used to capture audio and
> video from the desktop using the [`navigator.mediaDevices.getUserMedia`] API.
Process: [Renderer](../glossary.md#renderer-process)
Process: [Main](../glossary.md#main-process), [Renderer](../glossary.md#renderer-process)
The following example shows how to capture video from a desktop window whose
title is `Electron`:
@@ -91,7 +91,11 @@ The `desktopCapturer` module has the following methods:
Returns `Promise<DesktopCapturerSource[]>` - Resolves with an array of [`DesktopCapturerSource`](structures/desktop-capturer-source.md) objects, each `DesktopCapturerSource` represents a screen or an individual window that can be captured.
**Note** Capturing the screen contents requires user consent on macOS 10.15 Catalina or higher,
which can detected by [`systemPreferences.getMediaAccessStatus`].
[`navigator.mediaDevices.getUserMedia`]: https://developer.mozilla.org/en/docs/Web/API/MediaDevices/getUserMedia
[`systemPreferences.getMediaAccessStatus`]: system-preferences.md#systempreferencesgetmediaaccessstatusmediatype-macos
## Caveats

View File

@@ -48,10 +48,13 @@ The `dialog` module has the following methods:
their target path.
* `treatPackageAsDirectory` _macOS_ - Treat packages, such as `.app` folders,
as a directory instead of a file.
* `dontAddToRecent` _Windows_ - Do not add the item being opened to the recent documents list.
* `message` String (optional) _macOS_ - Message to display above input
boxes.
* `securityScopedBookmarks` Boolean (optional) _macOS_ _mas_ - Create [security scoped bookmarks](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) when packaged for the Mac App Store.
Returns `String[] | undefined`, the file paths chosen by the user; if the dialog is cancelled it returns `undefined`.
The `browserWindow` argument allows the dialog to attach itself to a parent window, making it modal.
The `filters` specifies an array of file types that can be displayed or
@@ -108,6 +111,7 @@ dialog.showOpenDialogSync(mainWindow, {
their target path.
* `treatPackageAsDirectory` _macOS_ - Treat packages, such as `.app` folders,
as a directory instead of a file.
* `dontAddToRecent` _Windows_ - Do not add the item being opened to the recent documents list.
* `message` String (optional) _macOS_ - Message to display above input
boxes.
* `securityScopedBookmarks` Boolean (optional) _macOS_ _mas_ - Create [security scoped bookmarks](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) when packaged for the Mac App Store.
@@ -116,7 +120,7 @@ Returns `Promise<Object>` - Resolve with an object containing the following:
* `canceled` Boolean - whether or not the dialog was canceled.
* `filePaths` String[] - An array of file paths chosen by the user. If the dialog is cancelled this will be an empty array.
* `bookmarks` String[] (optional) _macOS_ _mas_ - An array matching the `filePaths` array of base64 encoded strings which contains security scoped bookmark data. `securityScopedBookmarks` must be enabled for this to be populated.
* `bookmarks` String[] (optional) _macOS_ _mas_ - An array matching the `filePaths` array of base64 encoded strings which contains security scoped bookmark data. `securityScopedBookmarks` must be enabled for this to be populated. (For return values, see [table here](#bookmarks-array).)
The `browserWindow` argument allows the dialog to attach itself to a parent window, making it modal.
@@ -169,6 +173,13 @@ dialog.showOpenDialog(mainWindow, {
displayed in front of the filename text field.
* `showsTagField` Boolean (optional) _macOS_ - Show the tags input box,
defaults to `true`.
* `properties` String[] (optional)
* `showHiddenFiles` - Show hidden files in dialog.
* `createDirectory` _macOS_ - Allow creating new directories from dialog.
* `treatPackageAsDirectory` _macOS_ - Treat packages, such as `.app` folders,
as a directory instead of a file.
* `showOverwriteConfirmation` _Linux_ - Sets whether the user will be presented a confirmation dialog if the user types a file name that already exists.
* `dontAddToRecent` _Windows_ - Do not add the item being saved to the recent documents list.
* `securityScopedBookmarks` Boolean (optional) _macOS_ _mas_ - Create a [security scoped bookmark](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) when packaged for the Mac App Store. If this option is enabled and the file doesn't already exist a blank file will be created at the chosen path.
Returns `String | undefined`, the path of the file chosen by the user; if the dialog is cancelled it returns `undefined`.
@@ -191,14 +202,20 @@ The `filters` specifies an array of file types that can be displayed, see
* `message` String (optional) _macOS_ - Message to display above text fields.
* `nameFieldLabel` String (optional) _macOS_ - Custom label for the text
displayed in front of the filename text field.
* `showsTagField` Boolean (optional) _macOS_ - Show the tags input box,
defaults to `true`.
* `showsTagField` Boolean (optional) _macOS_ - Show the tags input box, defaults to `true`.
* `properties` String[] (optional)
* `showHiddenFiles` - Show hidden files in dialog.
* `createDirectory` _macOS_ - Allow creating new directories from dialog.
* `treatPackageAsDirectory` _macOS_ - Treat packages, such as `.app` folders,
as a directory instead of a file.
* `showOverwriteConfirmation` _Linux_ - Sets whether the user will be presented a confirmation dialog if the user types a file name that already exists.
* `dontAddToRecent` _Windows_ - Do not add the item being saved to the recent documents list.
* `securityScopedBookmarks` Boolean (optional) _macOS_ _mas_ - Create a [security scoped bookmark](https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16) when packaged for the Mac App Store. If this option is enabled and the file doesn't already exist a blank file will be created at the chosen path.
Returns `Promise<Object>` - Resolve with an object containing the following:
* `canceled` Boolean - whether or not the dialog was canceled.
* `filePath` String (optional) - If the dialog is canceled, this will be `undefined`.
* `bookmark` String (optional) _macOS_ _mas_ - Base64 encoded string which contains the security scoped bookmark data for the saved file. `securityScopedBookmarks` must be enabled for this to be present.
* `bookmark` String (optional) _macOS_ _mas_ - Base64 encoded string which contains the security scoped bookmark data for the saved file. `securityScopedBookmarks` must be enabled for this to be present. (For return values, see [table here](#bookmarks-array).)
The `browserWindow` argument allows the dialog to attach itself to a parent window, making it modal.
@@ -227,7 +244,7 @@ expanding and collapsing the dialog.
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)
* `cancelId` Integer (optional) - The index of the button to be used to cancel the dialog, via
the `Esc` key. By default this is assigned to the first button with "cancel" or "no" as the
label. If no such labeled buttons exist and this option is not set, `0` will be used as the
@@ -252,6 +269,7 @@ Shows a message box, it will block the process until the message box is closed.
It returns the index of the clicked button.
The `browserWindow` argument allows the dialog to attach itself to a parent window, making it modal.
If `browserWindow` is not shown dialog will not be attached to it. In such case it will be displayed as an independent window.
### `dialog.showMessageBox([browserWindow, ]options)`
@@ -333,6 +351,17 @@ On Windows the options are more limited, due to the Win32 APIs used:
* The `browserWindow` argument is ignored since it is not possible to make
this confirmation dialog modal.
## Bookmarks array
`showOpenDialog`, `showOpenDialogSync`, `showSaveDialog`, and `showSaveDialogSync` will return a `bookmarks` array.
| Build Type | securityScopedBookmarks boolean | Return Type | Return Value |
|------------|---------------------------------|:-----------:|--------------------------------|
| macOS mas | True | Success | `['LONGBOOKMARKSTRING']` |
| macOS mas | True | Error | `['']` (array of empty string) |
| macOS mas | False | NA | `[]` (empty array) |
| non mas | any | NA | `[]` (empty array) |
## Sheets
On macOS, dialogs are presented as sheets attached to a window if you provide

View File

@@ -18,6 +18,8 @@ app.dock.bounce()
* `type` String (optional) - Can be `critical` or `informational`. The default is
`informational`
Returns `Integer` - an ID representing the request.
When `critical` is passed, the dock icon will bounce until either the
application becomes active or the request is canceled.
@@ -25,7 +27,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.
Returns `Integer` an ID representing the request.
**Nota Bene:** This method can only be used while the app is not focused; when the app is focused it will return -1.
#### `dock.cancelBounce(id)` _macOS_

View File

@@ -11,7 +11,7 @@ control the download item.
```javascript
// In the main process.
const { BrowserWindow } = require('electron')
let win = new BrowserWindow()
const win = new BrowserWindow()
win.webContents.session.on('will-download', (event, item, webContents) => {
// Set the save path, making Electron not to prompt a save dialog.
item.setSavePath('/tmp/save.pdf')
@@ -82,16 +82,12 @@ The API is only available in session's `will-download` callback function.
If user doesn't set the save path via the API, Electron will use the original
routine to determine the save path; this usually prompts a save dialog.
**[Deprecated](modernization/property-updates.md): use the `savePath` property instead.**
#### `downloadItem.getSavePath()`
Returns `String` - The save path of the download item. This will be either the path
set via `downloadItem.setSavePath(path)` or the path selected from the shown
save dialog.
**[Deprecated](modernization/property-updates.md): use the `savePath` property instead.**
#### `downloadItem.setSaveDialogOptions(options)`
* `options` SaveDialogOptions - Set the save file dialog options. This object has the same

View File

@@ -44,20 +44,32 @@ Unsupported options are:
--use-openssl-ca
```
`NODE_OPTIONS` are explicitly disallowed in packaged apps.
`NODE_OPTIONS` are explicitly disallowed in packaged apps, except for the following:
```sh
--max-http-header-size
--http-parser
```
### `GOOGLE_API_KEY`
You can provide an API key for making requests to Google's geocoding webservice. To do this, place the following code in your main process
file, before opening any browser windows that will make geocoding requests:
Geolocation support in Electron requires the use of Google Cloud Platform's
geolocation webservice. To enable this feature, acquire a
[Google API key](https://developers.google.com/maps/documentation/geolocation/get-api-key)
and place the following code in your main process file, before opening any
browser windows that will make geolocation requests:
```javascript
process.env.GOOGLE_API_KEY = 'YOUR_KEY_HERE'
```
For instructions on how to acquire a Google API key, visit [this page](https://developers.google.com/maps/documentation/javascript/get-api-key).
By default, a newly generated Google API key may not be allowed to make
geocoding requests. To enable geocoding requests, visit [this page](https://developers.google.com/maps/documentation/geocoding/get-api-key).
By default, a newly generated Google API key may not be allowed to make geolocation requests.
To enable the geolocation webservice for your project, enable it through the
[API library](https://console.cloud.google.com/apis/library).
N.B. You will need to add a
[Billing Account](https://cloud.google.com/billing/docs/how-to/payment-methods#add_a_payment_method)
to the project associated to the API key for the geolocation webservice to work.
### `ELECTRON_NO_ASAR`
@@ -68,6 +80,18 @@ and spawned child processes that set `ELECTRON_RUN_AS_NODE`.
Starts the process as a normal Node.js process.
In this mode, you will be able to pass [cli options](https://nodejs.org/api/cli.html) to Node.js as
you would when running the normal Node.js executable, with the exception of the following flags:
* "--openssl-config"
* "--use-bundled-ca"
* "--use-openssl-ca",
* "--force-fips"
* "--enable-fips"
These flags are disabled owing to the fact that Electron uses BoringSSL instead of OpenSSL when building Node.js'
`crypto` module, and so will not work as designed.
### `ELECTRON_NO_ATTACH_CONSOLE` _Windows_
Don't attach to the current console session.
@@ -121,5 +145,16 @@ the `electron` command to use the specified build of Electron instead of
the one downloaded by `npm install`. Usage:
```sh
export ELECTRON_OVERRIDE_DIST_PATH=/Users/username/projects/electron/out/Debug
export ELECTRON_OVERRIDE_DIST_PATH=/Users/username/projects/electron/out/Testing
```
## Set By Electron
Electron sets some variables in your environment at runtime.
### `ORIGINAL_XDG_CURRENT_DESKTOP`
This variable is set to the value of `XDG_CURRENT_DESKTOP` that your application
originally launched with. Electron sometimes modifies the value of `XDG_CURRENT_DESKTOP`
to affect other logic within Chromium so if you want access to the _original_ value
you should look up this environment variable instead.

116
docs/api/extensions.md Normal file
View File

@@ -0,0 +1,116 @@
# Chrome Extension Support
Electron supports a subset of the [Chrome Extensions
API][chrome-extensions-api-index], primarily to support DevTools extensions and
Chromium-internal extensions, but it also happens to support some other
extension capabilities.
[chrome-extensions-api-index]: https://developer.chrome.com/extensions/api_index
> **Note:** Electron does not support arbitrary Chrome extensions from the
> store, and it is a **non-goal** of the Electron project to be perfectly
> compatible with Chrome's implementation of Extensions.
## Loading extensions
Electron only supports loading unpacked extensions (i.e., `.crx` files do not
work). Extensions are installed per-`session`. To load an extension, call
[`ses.loadExtension`](session.md#sesloadextensionpath):
```js
const { session } = require('electron')
session.loadExtension('path/to/unpacked/extension').then(({ id }) => {
// ...
})
```
Loaded extensions will not be automatically remembered across exits; if you do
not call `loadExtension` when the app runs, the extension will not be loaded.
Note that loading extensions is only supported in persistent sessions.
Attempting to load an extension into an in-memory session will throw an error.
See the [`session`](session.md) documentation for more information about
loading, unloading, and querying active extensions.
## Supported Extensions APIs
We support the following extensions APIs, with some caveats. Other APIs may
additionally be supported, but support for any APIs not listed here is
provisional and may be removed.
### `chrome.devtools.inspectedWindow`
All features of this API are supported.
### `chrome.devtools.network`
All features of this API are supported.
### `chrome.devtools.panels`
All features of this API are supported.
### `chrome.extension`
The following properties of `chrome.extension` are supported:
- `chrome.extension.lastError`
The following methods of `chrome.extension` are supported:
- `chrome.extension.getURL`
- `chrome.extension.getBackgroundPage`
### `chrome.runtime`
The following properties of `chrome.runtime` are supported:
- `chrome.runtime.lastError`
- `chrome.runtime.id`
The following methods of `chrome.runtime` are supported:
- `chrome.runtime.getBackgroundPage`
- `chrome.runtime.getManifest`
- `chrome.runtime.getURL`
- `chrome.runtime.connect`
- `chrome.runtime.sendMessage`
The following events of `chrome.runtime` are supported:
- `chrome.runtime.onStartup`
- `chrome.runtime.onInstalled`
- `chrome.runtime.onSuspend`
- `chrome.runtime.onSuspendCanceled`
- `chrome.runtime.onConnect`
- `chrome.runtime.onMessage`
### `chrome.storage`
Only `chrome.storage.local` is supported; `chrome.storage.sync` and
`chrome.storage.managed` are not.
### `chrome.tabs`
The following methods of `chrome.tabs` are supported:
- `chrome.tabs.sendMessage`
- `chrome.tabs.executeScript`
> **Note:** In Chrome, passing `-1` as a tab ID signifies the "currently active
> tab". Since Electron has no such concept, passing `-1` as a tab ID is not
> supported and will raise an error.
### `chrome.management`
The following methods of `chrome.management` are supported:
- `chrome.management.getAll`
- `chrome.management.get`
- `chrome.management.getSelf`
- `chrome.management.getPermissionWarningsById`
- `chrome.management.getPermissionWarningsByManifest`
- `chrome.management.onEnabled`
- `chrome.management.onDisabled`

View File

@@ -15,7 +15,7 @@ To create a frameless window, you need to set `frame` to `false` in
```javascript
const { BrowserWindow } = require('electron')
let win = new BrowserWindow({ width: 800, height: 600, frame: false })
const win = new BrowserWindow({ width: 800, height: 600, frame: false })
win.show()
```
@@ -33,7 +33,7 @@ Results in a hidden title bar and a full size content window, yet the title bar
```javascript
const { BrowserWindow } = require('electron')
let win = new BrowserWindow({ titleBarStyle: 'hidden' })
const win = new BrowserWindow({ titleBarStyle: 'hidden' })
win.show()
```
@@ -43,7 +43,7 @@ Results in a hidden title bar with an alternative look where the traffic light b
```javascript
const { BrowserWindow } = require('electron')
let win = new BrowserWindow({ titleBarStyle: 'hiddenInset' })
const win = new BrowserWindow({ titleBarStyle: 'hiddenInset' })
win.show()
```
@@ -52,13 +52,13 @@ win.show()
Uses custom drawn close, and miniaturize buttons that display
when hovering in the top left of the window. The fullscreen button
is not available due to restrictions of frameless windows as they
interface with Apple's MacOS window masks. These custom buttons prevent
interface with Apple's macOS window masks. These custom buttons prevent
issues with mouse events that occur with the standard window toolbar buttons.
This option is only applicable for frameless windows.
```javascript
const { BrowserWindow } = require('electron')
let win = new BrowserWindow({ titleBarStyle: 'customButtonsOnHover', frame: false })
const win = new BrowserWindow({ titleBarStyle: 'customButtonsOnHover', frame: false })
win.show()
```
@@ -69,7 +69,7 @@ window transparent:
```javascript
const { BrowserWindow } = require('electron')
let win = new BrowserWindow({ transparent: true, frame: false })
const win = new BrowserWindow({ transparent: true, frame: false })
win.show()
```
@@ -100,7 +100,7 @@ API:
```javascript
const { BrowserWindow } = require('electron')
let win = new BrowserWindow()
const win = new BrowserWindow()
win.setIgnoreMouseEvents(true)
```
@@ -112,8 +112,8 @@ optional parameter can be used to forward mouse move messages to the web page,
allowing events such as `mouseleave` to be emitted:
```javascript
let win = require('electron').remote.getCurrentWindow()
let el = document.getElementById('clickThroughElement')
const win = require('electron').remote.getCurrentWindow()
const el = document.getElementById('clickThroughElement')
el.addEventListener('mouseenter', () => {
win.setIgnoreMouseEvents(true, { forward: true })
})
@@ -158,7 +158,7 @@ buttons in titlebar non-draggable.
## Text selection
In a frameless window the dragging behaviour may conflict with selecting text.
In a frameless window the dragging behavior may conflict with selecting text.
For example, when you drag the titlebar you may accidentally select the text on
the titlebar. To prevent this, you need to disable text selection within a
draggable area like this:

View File

@@ -15,7 +15,7 @@ event of the app module is emitted.
```javascript
const { app, globalShortcut } = require('electron')
app.on('ready', () => {
app.whenReady().then(() => {
// Register a 'CommandOrControl+X' shortcut listener.
const ret = globalShortcut.register('CommandOrControl+X', () => {
console.log('CommandOrControl+X is pressed')

View File

@@ -40,11 +40,17 @@ Retrieves the product descriptions.
### `inAppPurchase.canMakePayments()`
Returns `Boolean`, whether a user can make a payment.
Returns `Boolean` - whether a user can make a payment.
### `inAppPurchase.restoreCompletedTransactions()`
Restores finished transactions. This method can be called either to install purchases on additional devices, or to restore purchases for an application that the user deleted and reinstalled.
[The payment queue](https://developer.apple.com/documentation/storekit/skpaymentqueue?language=objc) delivers a new transaction for each previously completed transaction that can be restored. Each transaction includes a copy of the original transaction.
### `inAppPurchase.getReceiptURL()`
Returns `String`, the path to the receipt.
Returns `String` - the path to the receipt.
### `inAppPurchase.finishAllTransactions()`

View File

@@ -51,12 +51,17 @@ A `String` representing the HTTP status message.
#### `response.headers`
An `Object` representing the response HTTP headers. The `headers` object is
A `Record<string, string | string[]>` representing the HTTP response headers. The `headers` object is
formatted as follows:
* All header names are lowercased.
* Each header name produces an array-valued property on the headers object.
* Each header value is pushed into the array associated with its header name.
* Duplicates of `age`, `authorization`, `content-length`, `content-type`,
`etag`, `expires`, `from`, `host`, `if-modified-since`, `if-unmodified-since`,
`last-modified`, `location`, `max-forwards`, `proxy-authorization`, `referer`,
`retry-after`, `server`, or `user-agent` are discarded.
* `set-cookie` is always an array. Duplicates are added to the array.
* For duplicate `cookie` headers, the values are joined together with '; '.
* For all other headers, the values are joined together with ', '.
#### `response.httpVersion`

View File

@@ -77,6 +77,7 @@ only the next time a message is sent to `channel`, after which it is removed.
* `channel` String
* `listener` Function
* `...args` any[]
Removes the specified `listener` from the listener array for the specified
`channel`.
@@ -90,7 +91,7 @@ Removes listeners of the specified `channel`.
### `ipcMain.handle(channel, listener)`
* `channel` String
* `listener` Function<Promise> | Function<any>
* `listener` Function<Promise\<void> | any>
* `event` IpcMainInvokeEvent
* `...args` any[]
@@ -122,7 +123,7 @@ WebContents is the source of the invoke request.
### `ipcMain.handleOnce(channel, listener)`
* `channel` String
* `listener` Function<Promise> | Function<any>
* `listener` Function<Promise\<void> | any>
* `event` IpcMainInvokeEvent
* `...args` any[]

View File

@@ -55,13 +55,23 @@ Removes all listeners, or those of the specified `channel`.
* `channel` String
* `...args` any[]
Send a message to the main process asynchronously via `channel`, you can also
send arbitrary arguments. Arguments will be serialized as JSON internally and
hence no functions or prototype chain will be included.
Send an asynchronous message to the main process via `channel`, along with
arguments. Arguments will be serialized with the [Structured Clone
Algorithm][SCA], just like [`window.postMessage`][], so prototype chains will not be
included. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will
throw an exception.
> **NOTE**: Sending non-standard JavaScript types such as DOM objects or
> special Electron objects is deprecated, and will begin throwing an exception
> starting with Electron 9.
The main process handles it by listening for `channel` with the
[`ipcMain`](ipc-main.md) module.
If you need to transfer a [`MessagePort`][] to the main process, use [`ipcRenderer.postMessage`](#ipcrendererpostmessagechannel-message-transfer).
If you want to receive a single response from the main process, like the result of a method call, consider using [`ipcRenderer.invoke`](#ipcrendererinvokechannel-args).
### `ipcRenderer.invoke(channel, ...args)`
* `channel` String
@@ -69,9 +79,15 @@ The main process handles it by listening for `channel` with the
Returns `Promise<any>` - Resolves with the response from the main process.
Send a message to the main process asynchronously via `channel` and expect an
asynchronous result. Arguments will be serialized as JSON internally and
hence no functions or prototype chain will be included.
Send a message to the main process via `channel` and expect a result
asynchronously. Arguments will be serialized with the [Structured Clone
Algorithm][SCA], just like [`window.postMessage`][], so prototype chains will not be
included. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will
throw an exception.
> **NOTE**: Sending non-standard JavaScript types such as DOM objects or
> special Electron objects is deprecated, and will begin throwing an exception
> starting with Electron 9.
The main process should listen for `channel` with
[`ipcMain.handle()`](ipc-main.md#ipcmainhandlechannel-listener).
@@ -90,6 +106,10 @@ ipcMain.handle('some-name', async (event, someArgument) => {
})
```
If you need to transfer a [`MessagePort`][] to the main process, use [`ipcRenderer.postMessage`](#ipcrendererpostmessagechannel-message-transfer).
If you do not need a response to the message, consider using [`ipcRenderer.send`](#ipcrenderersendchannel-args).
### `ipcRenderer.sendSync(channel, ...args)`
* `channel` String
@@ -97,15 +117,52 @@ ipcMain.handle('some-name', async (event, someArgument) => {
Returns `any` - The value sent back by the [`ipcMain`](ipc-main.md) handler.
Send a message to the main process synchronously via `channel`, you can also
send arbitrary arguments. Arguments will be serialized in JSON internally and
hence no functions or prototype chain will be included.
Send a message to the main process via `channel` and expect a result
synchronously. Arguments will be serialized with the [Structured Clone
Algorithm][SCA], just like [`window.postMessage`][], so prototype chains will not be
included. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will
throw an exception.
> **NOTE**: Sending non-standard JavaScript types such as DOM objects or
> special Electron objects is deprecated, and will begin throwing an exception
> starting with Electron 9.
The main process handles it by listening for `channel` with [`ipcMain`](ipc-main.md) module,
and replies by setting `event.returnValue`.
**Note:** Sending a synchronous message will block the whole renderer process,
unless you know what you are doing you should never use it.
> :warning: **WARNING**: Sending a synchronous message will block the whole
> renderer process until the reply is received, so use this method only as a
> last resort. It's much better to use the asynchronous version,
> [`invoke()`](ipc-renderer.md#ipcrendererinvokechannel-args).
### `ipcRenderer.postMessage(channel, message, [transfer])`
* `channel` String
* `message` any
* `transfer` MessagePort[] (optional)
Send a message to the main process, optionally transferring ownership of zero
or more [`MessagePort`][] objects.
The transferred `MessagePort` objects will be available in the main process as
[`MessagePortMain`](message-port-main.md) objects by accessing the `ports`
property of the emitted event.
For example:
```js
// Renderer process
const { port1, port2 } = new MessageChannel()
ipcRenderer.postMessage('port', { message: 'hello' }, [port1])
// Main process
ipcMain.on('port', (e, msg) => {
const [port] = e.ports
// ...
})
```
For more information on using `MessagePort` and `MessageChannel`, see the [MDN
documentation](https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel).
### `ipcRenderer.sendTo(webContentsId, channel, ...args)`
@@ -129,3 +186,6 @@ The documentation for the `event` object passed to the `callback` can be found
in the [`ipc-renderer-event`](structures/ipc-renderer-event.md) structure docs.
[event-emitter]: https://nodejs.org/api/events.html#events_class_eventemitter
[SCA]: https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm
[`window.postMessage`]: https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
[`MessagePort`]: https://developer.mozilla.org/en-US/docs/Web/API/MessagePort

View File

@@ -12,9 +12,9 @@ See [`Menu`](menu.md) for examples.
* `click` Function (optional) - Will be called with
`click(menuItem, browserWindow, event)` when the menu item is clicked.
* `menuItem` MenuItem
* `browserWindow` [BrowserWindow](browser-window.md)
* `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`, `togglefullscreen`, `window`, `minimize`, `close`, `help`, `about`, `services`, `hide`, `hideothers`, `unhide`, `quit`, `startspeaking`, `stopspeaking`, `close`, `minimize`, `zoom`, `front`, `appMenu`, `fileMenu`, `editMenu`, `viewMenu` 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`, `togglefullscreen`, `window`, `minimize`, `close`, `help`, `about`, `services`, `hide`, `hideOthers`, `unhide`, `quit`, `startSpeaking`, `stopSpeaking`, `zoom`, `front`, `appMenu`, `fileMenu`, `editMenu`, `viewMenu`, `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`.
@@ -69,6 +69,7 @@ a `type`.
The `role` property can have following values:
* `undo`
* `about` - Trigger a native about panel (custom message box on Window, which does not provide its own).
* `redo`
* `cut`
* `copy`
@@ -82,7 +83,7 @@ The `role` property can have following values:
* `reload` - Reload the current window.
* `forceReload` - Reload the current window ignoring the cache.
* `toggleDevTools` - Toggle developer tools in the current window.
* `toggleFullScreen` - Toggle full screen mode on the current window.
* `togglefullscreen` - Toggle full screen mode on the current window.
* `resetZoom` - Reset the focused page's zoom level to the original size.
* `zoomIn` - Zoom in the focused page by 10%.
* `zoomOut` - Zoom out the focused page by 10%.
@@ -94,7 +95,6 @@ The `role` property can have following values:
The following additional roles are available on _macOS_:
* `appMenu` - Whole default "App" menu (About, Services, etc.)
* `about` - Map to the `orderFrontStandardAboutPanel` action.
* `hide` - Map to the `hide` action.
* `hideOthers` - Map to the `hideOtherApplications` action.
* `unhide` - Map to the `unhideAllApplications` action.
@@ -117,7 +117,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.
**Nota Bene:** The `enabled` and `visibility` properties are not available for top-level menu items in the tray on macOS.
### Instance Properties
@@ -130,8 +130,7 @@ dynamically changed.
#### `menuItem.label`
A `String` indicating the item's visible label, this property can be
dynamically changed.
A `String` indicating the item's visible label.
#### `menuItem.click`
@@ -152,7 +151,7 @@ A `String` indicating the type of the item. Can be `normal`, `separator`, `subme
#### `menuItem.role`
A `String` (optional) indicating the item's role, if set. Can be `undo`, `redo`, `cut`, `copy`, `paste`, `pasteandmatchstyle`, `delete`, `selectall`, `reload`, `forcereload`, `toggledevtools`, `resetzoom`, `zoomin`, `zoomout`, `togglefullscreen`, `window`, `minimize`, `close`, `help`, `about`, `services`, `hide`, `hideothers`, `unhide`, `quit`, `startspeaking`, `stopspeaking`, `close`, `minimize`, `zoom`, `front`, `appMenu`, `fileMenu`, `editMenu`, `viewMenu` or `windowMenu`
A `String` (optional) indicating the item's role, if set. Can be `undo`, `redo`, `cut`, `copy`, `paste`, `pasteAndMatchStyle`, `delete`, `selectAll`, `reload`, `forceReload`, `toggleDevTools`, `resetZoom`, `zoomIn`, `zoomOut`, `togglefullscreen`, `window`, `minimize`, `close`, `help`, `about`, `services`, `hide`, `hideOthers`, `unhide`, `quit`, `startSpeaking`, `stopSpeaking`, `zoom`, `front`, `appMenu`, `fileMenu`, `editMenu`, `viewMenu`, `recentDocuments`, `toggleTabBar`, `selectNextTab`, `selectPreviousTab`, `mergeAllWindows`, `clearRecentDocuments`, `moveTabToNewWindow` or `windowMenu`
#### `menuItem.accelerator`
@@ -165,7 +164,7 @@ item's icon, if set.
#### `menuItem.sublabel`
A `String` indicating the item's sublabel, this property can be dynamically changed.
A `String` indicating the item's sublabel.
#### `menuItem.toolTip` _macOS_
@@ -197,7 +196,9 @@ You can add a `click` function for additional behavior.
#### `menuItem.registerAccelerator`
A `Boolean` indicating if the accelerator should be registered with the
system or just displayed, this property can be dynamically changed.
system or just displayed.
This property can be dynamically changed.
#### `menuItem.commandId`

View File

@@ -96,7 +96,7 @@ Appends the `menuItem` to the menu.
* `id` String
Returns `MenuItem` the item with the specified `id`
Returns `MenuItem | null` the item with the specified `id`
#### `menu.insert(pos, menuItem)`
@@ -195,8 +195,8 @@ const template = [
{
label: 'Speech',
submenu: [
{ role: 'startspeaking' },
{ role: 'stopspeaking' }
{ role: 'startSpeaking' },
{ role: 'stopSpeaking' }
]
}
] : [
@@ -211,12 +211,12 @@ const template = [
label: 'View',
submenu: [
{ role: 'reload' },
{ role: 'forcereload' },
{ role: 'toggledevtools' },
{ role: 'forceReload' },
{ role: 'toggleDevTools' },
{ type: 'separator' },
{ role: 'resetzoom' },
{ role: 'zoomin' },
{ role: 'zoomout' },
{ role: 'resetZoom' },
{ role: 'zoomIn' },
{ role: 'zoomOut' },
{ type: 'separator' },
{ role: 'togglefullscreen' }
]

View File

@@ -0,0 +1,32 @@
# MessageChannelMain
`MessageChannelMain` is the main-process-side equivalent of the DOM
[`MessageChannel`][] object. Its singular function is to create a pair of
connected [`MessagePortMain`](message-port-main.md) objects.
See the [Channel Messaging API][] documentation for more information on using
channel messaging.
## Class: MessageChannelMain
Process: [Main](../glossary.md#main-process)
Example:
```js
const { port1, port2 } = new MessageChannelMain()
w.webContents.postMessage('port', null, [port2])
port1.postMessage({ some: 'message' })
```
### Instance Properties
#### `channel.port1`
A [`MessagePortMain`](message-port-main.md) property.
#### `channel.port2`
A [`MessagePortMain`](message-port-main.md) property.
[`MessageChannel`]: https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel
[Channel Messaging API]: https://developer.mozilla.org/en-US/docs/Web/API/Channel_Messaging_API

View File

@@ -0,0 +1,55 @@
# MessagePortMain
`MessagePortMain` is the main-process-side equivalent of the DOM
[`MessagePort`][] object. It behaves similarly to the DOM version, with the
exception that it uses the Node.js `EventEmitter` event system, instead of the
DOM `EventTarget` system. This means you should use `port.on('message', ...)`
to listen for events, instead of `port.onmessage = ...` or
`port.addEventListener('message', ...)`
See the [Channel Messaging API][] documentation for more information on using
channel messaging.
`MessagePortMain` is an [EventEmitter][event-emitter].
## Class: MessagePortMain
Process: [Main](../glossary.md#main-process)
### Instance Methods
#### `port.postMessage(message, [transfer])`
* `message` any
* `transfer` MessagePortMain[] (optional)
Sends a message from the port, and optionally, transfers ownership of objects
to other browsing contexts.
#### `port.start()`
Starts the sending of messages queued on the port. Messages will be queued
until this method is called.
#### `port.close()`
Disconnects the port, so it is no longer active.
### Instance Events
#### Event: 'message'
Returns:
* `messageEvent` Object
* `data` any
* `ports` MessagePortMain[]
Emitted when a MessagePortMain object receives a message.
#### Event: 'close'
Emitted when the remote end of a MessagePortMain object becomes disconnected.
[`MessagePort`]: https://developer.mozilla.org/en-US/docs/Web/API/MessagePort
[Channel Messaging API]: https://developer.mozilla.org/en-US/docs/Web/API/Channel_Messaging_API

View File

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

View File

@@ -1,17 +1,6 @@
## Promisification
The Electron team is currently undergoing an initiative to convert callback-based functions in Electron to return Promises. During this transition period, both the callback and Promise-based versions of these functions will work correctly, and will both be documented.
To enable deprecation warnings for these updated functions, use the `process.enablePromiseAPI` runtime flag.
When a majority of affected functions are migrated, this flag will be enabled by default and all developers will be able to see these deprecation warnings. At that time, the callback-based versions will also be removed from documentation. This document will be continuously updated as more functions are converted.
### Candidate Functions
- [app.importCertificate(options, callback)](https://github.com/electron/electron/blob/master/docs/api/app.md#importCertificate)
- [contents.print([options], [callback])](https://github.com/electron/electron/blob/master/docs/api/web-contents.md#print)
### Converted Functions
The Electron team recently underwent an initiative to convert callback-based APIs to Promise-based ones. See converted functions below:
- [app.getFileIcon(path[, options], callback)](https://github.com/electron/electron/blob/master/docs/api/app.md#getFileIcon)
- [contents.capturePage([rect, ]callback)](https://github.com/electron/electron/blob/master/docs/api/web-contents.md#capturePage)

View File

@@ -5,14 +5,7 @@ The Electron team is currently undergoing an initiative to convert separate gett
## Candidates
* `BrowserWindow`
* `fullscreen`
* `simpleFullscreen`
* `alwaysOnTop`
* `title`
* `documentEdited`
* `hasShadow`
* `menubarVisible`
* `visibleOnAllWorkspaces`
* `crashReporter` module
* `uploadToServer`
* `webFrame` modules
@@ -41,13 +34,8 @@ The Electron team is currently undergoing an initiative to convert separate gett
* `fullscreenable`
* `movable`
* `closable`
* `backgroundThrottling`
* `NativeImage`
* `isMacTemplateImage`
* `SystemPreferences` module
* `appLevelAppearance`
* `webContents` module
* `audioMuted`
* `frameRate`
* `userAgent`
* `zoomFactor`
* `zoomLevel`

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