Compare commits

..

128 Commits

Author SHA1 Message Date
Keeley Hammond
9c045e97a7 test: remove redundent feedURL test 2026-02-12 15:21:02 -08:00
Keeley Hammond
6a87d47e83 fix: code-sign binaries for notification tests 2026-02-10 17:25:01 -08:00
Keeley Hammond
c05faa7bad build: update config to handle --translate-gender for pak files 2026-02-10 15:55:13 -08:00
Keeley Hammond
5b6403eb11 build: fix lint 2026-02-10 15:55:13 -08:00
Developer-Ecosystem-Engineering
1c6bb418bd Use NotificationImageRetainer pattern from //chrome 2026-02-10 15:55:13 -08:00
Developer-Ecosystem-Engineering
ed27a77558 refactor: replace deprecated NSUserNotifications with User Notifications
Removes deprecated NSUserNotification API, now using User Notifications

It replaces API calls for generating, scheduling, and receiving native
macOS notifications with equivalent API calls from the new framework,
or functionally equivalent implementations.

To preserve the existing Notification module API, special handling was
required in certain cases:

  - Dynamically declared notification actions
    Typically, notification actions should be declared at app launch time
    when using the User Notifications framework. However, this isn’t
    compatible with Electron’s architecture. Instead, we dynamically
    declare new notifications actions when necessary and carefully manage
    the existing actions registered at runtime.

  - Localizations for ‘Reply’ and ‘Show’ labels
    New translation files are added and processed through GRIT to add
    localizations for “Reply” and “Show” button labels which were
    initially supplied by the NSUserNotification framework.
2026-02-10 15:55:13 -08:00
Shelley Vohr
57a6e43025 fix: revoke Read access after removing file via FileSystemAccess API (#49620)
Refs https://chromium-review.googlesource.com/6677249
2026-02-10 15:48:05 +01:00
dependabot[bot]
ef5b232e9f build(deps): bump github/codeql-action from 4.32.1 to 4.32.2 (#49735)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.32.1 to 4.32.2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](6bc82e05fd...45cbd0c69e)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.32.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 15:06:42 +01:00
Bug-Reaper
99fce5b6ca fix: address upstream Chromium shift to enable CoreAudio Tap API for audio capture used in electron's desktopCapturer (🍏 macOS). (#49717)
* fix: Enable CoreAudio Tap API for Audio Capture (🍏 macOS)

* fix: addressed markdown issue which caused pre-commit hook failure

🧑‍🔧 : Ref : https://github.com/electron/electron/pull/49717#issuecomment-3874660013

* fix: updated docs to cover `desktopCapturer` nuances with macOS

📝 : PR https://github.com/electron/electron/pull/49717
2026-02-10 15:06:21 +01:00
Rushikesh Bobade
7c66112e88 docs: link unlinked type references in API documentation (#49651)
docs: add missing type links in menu.md and shared-texture.md
2026-02-09 23:08:52 -08:00
John Kleinschmidt
fd0108907a build: fixup build attestation (#49730) 2026-02-09 11:50:17 -05:00
reito
3fa3e91f90 docs: fix framerate limit when osr with shared texture (#49705) 2026-02-09 15:18:06 +01:00
David Sanders
a3563422c4 ci: fix patches changes detected in apply patches workflow (#49701) 2026-02-06 13:48:30 -08:00
Keeley Hammond
9db2290bcd fix: restore macos 12 support in Node 24 (#49697) 2026-02-06 07:48:37 -08:00
Samuel Attard
60d35bbaf4 feat: add support for disclaiming utility processes (#49128)
* feat: add support for disclaiming utility processes

* chore: update patches

---------

Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
2026-02-05 14:37:24 -08:00
Michaela Laurencin
15dc7170ef ci: fix ai-pr label commenting (#49685) 2026-02-05 14:27:46 -05:00
Keeley Hammond
59e434a27f refactor: use ComPtr pattern for MSIX to avoid exception handling (#49645)
* Revert "fix: fix Windows MSIX release build errors (#49613)"

This reverts commit 4b5d5f9dd5.

* refactor: use WRL ComPtr pattern for MSIX to avoid exception handling

The MSIX auto-updater code was using C++/WinRT (winrt::* namespace), which requires exception handling (/EHsc). Mixing exception and non-exception handling code in the same binary is problematic at runtime. This commit refactors electron_api_msix_updater.cc to use an upstream Chromium pattern and eliminates the need for special exception handling build flags

* build: import correct packages

* build: consolidate IPackage declarations

* refactor: use IPackageManager/IPackageManager5/IPackageManager9 and
IPackage/IPackage2/IPackage4/IPackage6 interfaces as needed for
different API methods.

Also consolidates duplicate completion handler logic, fixes a bug in
RegisterRestartOnUpdate where the command line string could go out of
scope, and removes unused includes.
2026-02-05 10:42:28 -08:00
Samuel Attard
dec7f937ae build: generate artifact attestions for released assets (#48239)
* build: generate artifact attestions for released assets

* chore: address review feedback

---------

Co-authored-by: John Kleinschmidt <kleinschmidtorama@gmail.com>
2026-02-05 09:37:17 -05:00
Noah Gregory
50381a6d57 refactor: don't log error just for unsigned code (#49654) 2026-02-05 15:26:17 +09:00
David Sanders
41c7e9bb21 ci: use squash merge for apply patches workflow (#49667) 2026-02-04 15:51:49 -08:00
Shelley Vohr
9740c989da fix: default accelerator for role-based menu items (#49558)
fix: apply default accelerator for role-based menu items

Co-authored-by: Kimgun3383 <tygob5247@gmail.com>
2026-02-04 16:45:29 -05:00
John Kleinschmidt
4ea2d816b8 revert(ci): use new case syntax in workflows (#49665)
Revert "ci: use new case syntax in workflows (#49590)"

This reverts commit def7854848.
2026-02-04 14:55:20 -05:00
Noah Gregory
6a47bb4731 fix: use temp directory for singleton test and clean up at end (#49604)
* fix: create directory for singleton test in `temp` instead of `home`

* fix: remove directory for singleton test at test end

* refactor: avoid extraneous declarations in singleton test

* refactor: reintroduce `userDataFolder` declaration in singleton test

* refactor: move cleanup before app exit in singleton test

* style: add missing semicolon

* refactor: set the user data path after pre-test cleanup in singleton test

* fix: release lock before cleanup in singleton test
2026-02-04 14:43:36 -05:00
David Sanders
ef11669b67 ci: handle PRs with no checks in rerun apply patches (#49630) 2026-02-04 16:13:27 +01:00
Shelley Vohr
d7378d96a5 docs: add Wayland note to win.getPosition() and win.getBounds() (#49632)
docs: add Wayland note to win.getPosition()
2026-02-04 16:13:11 +01:00
Keeley Hammond
431f77ca1c fix: remove menu observer before destroying menu_controller_ (#49648)
* fix: remove menu observer before destroying menu_controller_

* fix: resolves private inheritance conflict
2026-02-04 16:11:00 +01:00
Shelley Vohr
51a9101c3d build: remove Core Graphics private macOS APIs on MAS (#49633) 2026-02-03 12:02:06 -05:00
Shelley Vohr
def7854848 ci: use new case syntax in workflows (#49590)
ci: use new case synta in workflows
2026-02-03 11:57:14 -05:00
Niklas Wenzel
28858ecb85 chore: add "I have built and tested this PR" box to PR template (#49434) 2026-02-03 11:39:07 -05:00
Shelley Vohr
8fdb7549bb fix: alt-space should route through 'system-context-menu' (#49619)
fix: alt-space should route through system-context-menu
2026-02-03 11:34:58 -05:00
dependabot[bot]
c3428fa413 build(deps): bump lodash from 4.17.21 to 4.17.23 in the npm_and_yarn group across 1 directory (#49577)
build(deps): bump lodash in the npm_and_yarn group across 1 directory

Bumps the npm_and_yarn group with 1 update in the / directory: [lodash](https://github.com/lodash/lodash).

Updates `lodash` from 4.17.21 to 4.17.23
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 11:05:40 -05:00
loc
233caf8469 fix(squirrel.mac): clean up old staged updates before downloading new update (#49365)
fix: clean up old staged updates before downloading new update

When checkForUpdates() is called while an update is already staged,
Squirrel creates a new temporary directory for the download without
cleaning up the old one. This can lead to disk usage growth when
new versions are released while the app hasn't restarted.

This adds a force parameter to pruneUpdateDirectories that bypasses
the AwaitingRelaunch state check. This is called before creating a
new temp directory, ensuring old staged updates are cleaned up.
2026-02-03 11:04:06 -05:00
Shelley Vohr
86209f60eb fix: possible crash in FileSystem API (#49578)
Refs https://chromium-review.googlesource.com/6880247

Fixes a crash that can arise in the File System Access API in the
following scenario:

1. Create fileHandle1 at path1.
2. Call fileHandle1.remove() or user manually delete the file.
3. Create fileHandle2 at path2.
4. fileHandle2.move(path1).
2026-02-03 15:15:54 +01:00
dependabot[bot]
bdf2b67462 build(deps): bump github/codeql-action from 4.32.0 to 4.32.1 (#49629)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.32.0 to 4.32.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b20883b0cd...6bc82e05fd)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.32.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 15:03:22 +01:00
Mr.Chaofan
4413a0f642 fix: wrong cause and removed flag in cookie change listener (#49103) 2026-02-03 10:19:35 +01:00
Shelley Vohr
3776731f4a fix: menu state in macOS dock menus (#49574) 2026-02-02 17:01:34 -05:00
Robo
db5606b4b3 fix: handle out of order recording errors in skia graphite (#49608) 2026-02-02 14:20:19 +01:00
Calvin
1159de52e7 docs: app.getGPUInfo() may reject (#49580) 2026-02-02 10:00:05 +01:00
Keeley Hammond
4b5d5f9dd5 fix: fix Windows MSIX release build errors (#49613)
* fix: fix MSIX release build

* fix: add C++/WinRT headers

* build: modify include paths

* fix: compile msix as seperate source set

* build: add additional needed deps for msix
2026-02-01 22:27:42 -08:00
Prachi Maskar
0cbf3c2918 docs: add jsign instructions for Azure Trusted Signing on Linux/macOS (#49345)
* docs: add jsign instructions for Azure Trusted Signing on Linux/macOS

* docs: add clickable jsign link for Azure Trusted Signing
2026-01-30 15:24:08 -05:00
axolotl
f272723a33 feat: Allow View.setBounds to animate (#48812)
* feat: allow View::SetBounds to animate

* fix: support width/height animations

* fix: jumping on subsequent animations

* fix: segfault race condition

* fix: remove layer background

* fix: layer clips not being reset

* refactor: use gfx tween gin converter

* fix: layer cleanups causing flickering views

* chore: merge artifact

* fix: missing private method in header

* fix: return type

* fix: do not set layer opacity

* refactor: update animate parameter format

* refactor: move animate into options object

* chore: typo

* docs: update

* spec: add view animation test
2026-01-30 15:18:56 -05:00
Shelley Vohr
331d1e16f5 refactor: address PathProvider TODO (#49563) 2026-01-30 14:16:39 -05:00
Shelley Vohr
6825a522e9 fix: duplicate fullscreen macOS menu item (#49074) 2026-01-30 13:23:43 -05:00
Shelley Vohr
e033c10075 fix: issues with xdg activation on Linux (#49499) 2026-01-30 10:53:04 -05:00
Shelley Vohr
64872a6cb8 fix: macOS menu item accelerators when item disabled (#49553)
fix: macOS menu item acceerators when item disabled
2026-01-30 10:07:16 +01:00
Jan Hannemann
d74fcfcecb feat: msix auto-updater (#49230)
* feat: native auto updater for MSIX on Windows

* doc: added MSIX debug documentation

* fix: allow downgrade with json release file and emit update-available

* test: msix auot-update tests

* doc: API documentation

* test: add package version validation

* fix: docs typo

* fix: don't allow auto-updating when using appinstaller manifest

* fix: getPackageInfo interface implementation

* fix: review feedback, add comment

* fix: missed filename commit

* fix: install test cert on demand

* fix: time stamp mismatch in tests

* fix: feedback - rename to MSIXPackageInfo

* fix: update and reference windowsStore property

* fix: remove getPackagInfo from public API

* fix: type error bcause of removed API
2026-01-29 16:38:26 -05:00
Michaela Laurencin
92a3f7d6c1 ci: add workflow for commenting with new 'ai-pr' label (#49564)
* add workflow for commenting with new 'ai-pr' label

* Update .github/workflows/pull-request-labeled.yml

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

* add pr autoclose

* replace with specific secret

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

* specify repo

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

* update wording of comment

* chore: use GH app token

* chore: fix indentation

---------

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2026-01-29 13:12:42 -05:00
David Sanders
0e161c18eb ci: rework reapply patches (#49552) 2026-01-29 11:19:07 -05:00
David Sanders
3d76d3a469 build(dev-deps): bump @electron/lint-roller to 3.2.0 (#49565) 2026-01-29 16:06:47 +01:00
Kanishk Ranjan
82d350524e test: fix flaky BrowserView test (#49316)
* test: fix flaky BrowserWindow test

* fix: improved as per review
2026-01-28 11:54:35 -08:00
Shelley Vohr
e6be04a7a0 fix: chrome://accessibility drift (#49547)
https://chromium-review.googlesource.com/c/chromium/src/+/6870052
2026-01-28 12:07:14 +01:00
David Sanders
a7de47084b test: remove split dependency (#49551) 2026-01-28 10:47:43 +01:00
Kanishk Ranjan
3820d3ae6c test: fix flaky BrowserWindow test (#49364)
test: fix flaky BrowserWindow test
2026-01-27 21:47:02 -08:00
Charles Kerr
8364b62f68 fix: potential dangling pointer in api::Screen (#49536)
fixes a regression from #49506
2026-01-27 16:27:38 -05:00
dependabot[bot]
441729c3a0 build(deps): bump actions/checkout from 6.0.1 to 6.0.2 (#49541)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](8e8c483db8...de0fac2e45)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-27 11:37:15 +01:00
Shelley Vohr
c521c2b868 test: update/fix Node.js disabled specs (#49467) 2026-01-27 11:03:09 +01:00
Shelley Vohr
b2c5093542 docs: correct type for process.noDeprecation (#49524)
* docs: correct type for process.noDeprecation

* docs: mark `noDeprecation` as optional instead

Co-authored-by: René <contact.9a5d6388@renegade334.me.uk>

---------

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
Co-authored-by: René <contact.9a5d6388@renegade334.me.uk>
2026-01-27 11:02:51 +01:00
dependabot[bot]
ec5eb64788 build(deps): bump github/codeql-action from 4.31.10 to 4.32.0 (#49540)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.31.10 to 4.32.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](cdefb33c0f...b20883b0cd)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-27 11:00:13 +01:00
David Sanders
0cc15a6386 ci: reapply patches if PR base branch updates them (#49516) 2026-01-26 15:13:34 -05:00
David Sanders
4aa89b9c3c ci: add pipeline segment to run clang-tidy (#49072)
* ci: add pipeline segment to run clang-tidy

* chore: set -header-filter='' for clang-tidy

Breaking change in `clang-tidy` 22.0.0:

> clang-tidy now displays warnings from all non-system headers by default.
> Previously, users had to explicitly opt-in to header warnings using
> -header-filter=’.*’. To disable warnings from non-system, set
> -header-filter to an empty string.
2026-01-26 14:37:01 -05:00
Felix Rieseberg
ae43f17b79 build: Run gh workflows only on e/e (#49521) 2026-01-26 14:35:11 -05:00
electron-roller[bot]
b847299f19 chore: bump chromium to 146.0.7650.0 (main) (#49496)
* chore: bump chromium in DEPS to 146.0.7650.0

* 7496671: WaaP: Control hung delay for Initial WebUI

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

* 7494302: [//media] Rename renderable_gpu_memory_buffer_video_frame_pool*

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

* chore: update patches

* 7502996: [DevTools] Add ability to toggle Chromium feature flags from DevTools

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

* 7456200: Vectorize StringImpl::CopyChars and EqualIgnoringASCIICase using Highway.

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

* 7236627: spellcheck: supply full spelling marker info, incld. marker type

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

* chore: rm dependency on wtf::string from blink public headers

Refs https://chromium-review.googlesource.com/c/chromium/src/+/7456200
added a public dependency on //third_party/highway for
//third_party/blink/renderer/platform/wtf:wtf which will not be
inherited by //content/renderer since wtf is internal dependency of
blink leading to the following compilation error

```
In file included from ../../content/public/renderer/window_features_converter.cc:5:
In file included from ../../content/public/renderer/window_features_converter.h:10:
In file included from ../../third_party/blink/public/web/web_window_features.h:38:
In file included from ../../third_party/blink/renderer/platform/wtf/text/wtf_string.h:40:
../../third_party/blink/renderer/platform/wtf/text/string_impl.h:27:10: fatal error: 'hwy/highway.h' file not found
   27 | #include <hwy/highway.h>
      |          ^~~~~~~~~~~~~~~
1 error generated.
```

Use `gn desc out/Testing content/renderer:renderer_sources --blame`
to verify the inherited config and dependency list.

* 7493995: Restore directive part of wasm-eval error message

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

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2026-01-26 11:18:09 -08:00
Charles Kerr
6766343173 refactor: simplify NativeWindow-to-BaseWindow lookup (#49520)
refactor: simplify native window to base window lookup
2026-01-26 12:28:57 +01:00
Sourav Bera
75be2fe8d6 docs: add type reference links in Menu and MenuItem API documentation (#49437)
* docs: add type reference links in Menu and MenuItem API documentation

* docs: revert type links in Menu return types to fix parser
2026-01-26 12:22:28 +01:00
Charles Kerr
30f365d9d8 refactor: use gin::Wrappable for electron::api::PowerMonitor (#49509)
* refactor: use `gin::Wrappable` for `electron::api::PowerMonitor`

* chore: update patches
2026-01-25 22:51:31 -06:00
Charles Kerr
e8250f9955 refactor: use gin::Wrappable for electron::api::Screen (#49506) 2026-01-25 13:46:25 -06:00
Kyle Cutler
d5de8883a2 feat: add focusOnNavigation flag to WebPreferences (#49425)
* feat: add focusOnNavigation webPreference

* WebContentsView tests

* fix

* fix
2026-01-23 14:29:34 -05:00
David Franco
8a11d5afb1 fix: avoid startup crash when V8 sandbox is disabled (#49210)
* fix: avoid startup crash when V8 sandbox is disabled

* chore: update patch

---------

Co-authored-by: David Franco <davidfrsan@gmail.com>
2026-01-23 11:49:15 -05:00
Shelley Vohr
89963618d9 fix: second argument to shell.writeShortcutLink is optional (#49476)
fix: second argument to shell.writeShortcutLink is optional
2026-01-23 11:24:47 -05:00
Charles Kerr
8c5c6a6088 refactor: use gin::Wrappable for electron::api::DataPipeHolder (#49495)
* refactor: make `DataPipeHolder` inherit from `gin::Wrappable`

* test: add a test to ensure GC clears the data pipe holder

* chore: e patches all

* chore: e patches all (trivial only)

* refactor: make AllDataPipeHolders a base::flat_map of WeakPersistent
2026-01-23 20:29:01 +09:00
Szymon Kurek
24526ccd39 docs: correct yarn part of tutorial-5-packaging (#49401)
docs: fix yarn part of `tutorial-5-packaging` - adding electron forge
2026-01-23 11:14:19 +01:00
Keeley Hammond
1134d95c6d chore: update main patches (#49498)
chore: update patches
2026-01-22 20:30:32 -08:00
Charles Kerr
d76608b945 refactor: use gin::Wrappable in electron::api::PowerSaveBlocker (#49381)
* refactor: PowerSaveBlocker subclasses gin::Wrappable

* chore: update chore_add_electron_objects_to_wrappablepointertag.patch

* chore: e patches all
2026-01-22 17:31:38 -06:00
electron-roller[bot]
d689f76ff9 chore: bump chromium to 146.0.7645.0 (main) (#49453)
* chore: bump chromium in DEPS to 146.0.7643.0

* chore: bump chromium in DEPS to 146.0.7645.0

* chore: update patches

* 7402162: Refactor app shims to call ContentMain

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

* 7454282: Add master key management for HTTP Cache Encryption

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

* 7490440: Reland "Delete unused base::Contains()"

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

* chore: update patches

* 7414864: Pass CSSParserLocalContext down to CSSMathExpressionNodeParser

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

* 7460969: Move child_process_id.h to common

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

* 7474608: [api] Remove deprecated v8::PropertyCallbackInfo<T>::This()

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

* 7461067: [Viz] Rename kPreferGpuMemoryBuffer

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

* 7487174: Remove GLHelper

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

* 7457538: Set timeout from multi source page context fetcher

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

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2026-01-22 17:01:09 -05:00
reito
e3142865b2 fix: offscreen rendering with correct screen info. (#48730)
fix: osr use correct screen info.
2026-01-22 14:58:54 -05:00
David Sanders
1f8e4079cd test: fix version color output when running prebuilt Electron (#49491) 2026-01-22 16:17:56 +01:00
Shelley Vohr
bad88c6ed4 fix: potential devtools crash on empty (#49468) 2026-01-21 17:05:26 -08:00
Noah Gregory
534cb33465 fix: return early from platform_util::Beep() on Linux if there is no default GDK display (#49442)
fix: return early from beep on linux if there is no default gdk display
2026-01-21 15:55:24 -05:00
Soobin Rho
51e7753ae9 docs: clearer wording performance common pitfalls (#45308)
docs: clearer wording (performance common pitfalls)

Signed-off-by: Soobin Rho <soobinrho@gmail.com>
2026-01-21 14:46:02 -05:00
sam marshall
d141934885 docs: document that shell.trashItem requires backslashes (#49038)
docs: Update shell.md: Document that shell.trashItem requires backslashes

In Windows many functions relating to files (e.g. shell.openItem, the Node fs functions, as well as native Win32 APIs) will accept either type of slash / or \ as a folder separator.

shell.trashItem does not work with / as folder separator in Windows. This documentation change explains that.

See also:
https://github.com/electron/electron/issues/28831
2026-01-21 13:21:01 -05:00
Erick Zhao
22e8cf9416 docs: add a few API history fragments (#49340)
* docs: add a few API history fragments

* manual fixes
2026-01-21 12:57:02 -05:00
David Sanders
5856b2e01c ci: trigger website docs update on release published (#49429) 2026-01-21 10:44:18 -05:00
Shelley Vohr
49d91dd02b revert: use deprecated setAllowedFileTypes in macOS dialogs (#49444)
* revert: use deprectated setAllowedFileTypes in macOS dialogs

Closes https://github.com/electron/electron/issues/48191

* chore: remove stray import
2026-01-21 13:08:04 +01:00
David Franco
2f20d287d1 feat: import shared texture supports p010le (#49272)
feat: import shared texture supports p010le.
2026-01-20 11:50:30 +01:00
Shelley Vohr
73377af79e build: try removing zero-fill sandbox patch component (#49452) 2026-01-20 09:40:33 +01:00
dependabot[bot]
47766801e4 build(deps): bump actions/setup-node from 6.1.0 to 6.2.0 (#49456)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](395ad32622...6044e13b5d)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-20 09:40:02 +01:00
dependabot[bot]
bf0510dc22 build(deps): bump electron/github-app-auth-action from 1.1.1 to 2.0.0 (#49457)
Bumps [electron/github-app-auth-action](https://github.com/electron/github-app-auth-action) from 1.1.1 to 2.0.0.
- [Release notes](https://github.com/electron/github-app-auth-action/releases)
- [Commits](384fd19694...e14e47722e)

---
updated-dependencies:
- dependency-name: electron/github-app-auth-action
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-20 09:39:47 +01:00
electron-roller[bot]
486a9a61d2 chore: bump chromium to 146.0.7635.0 (main) (#49408)
* chore: bump chromium in DEPS to 146.0.7635.0

* chore: update patch hunk headers

* 7078551: [wasm] Refactor caching API

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

* 7141498: [api] Remove unused context parameter from FixedArray::Get

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

* 7454865: Add timeouts to content API for CopyFromSurface

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

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-01-19 15:37:02 +01:00
Niklas Wenzel
7851a34c2d docs: fix webContents.hostWebContents types (#49424) 2026-01-19 10:45:23 +01:00
Shelley Vohr
faa21a748f fix: MAS rejection for private APIs (#49391) 2026-01-18 10:34:16 +01:00
Shelley Vohr
5bd2938f6a fix: try clearing InspectableWebContents delegate earlier (#49406)
fix: try clearing InspectableWebContents delegate earlier
2026-01-16 21:36:34 +01:00
electron-roller[bot]
f149efe32e chore: bump node to v24.13.0 (main) (#49189)
* chore: bump node in DEPS to v24.12.0

* src: use CP_UTF8 for wide file names on win32

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

* test,crypto: handle a few more BoringSSL tests

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

* chore: fixup patch indices

* chore: re-add accidentally removed sslv23 test

* chore: fixup crypto patch rebase

* test: make buffer sizes 32bit-aware in test-internal-util-construct-sab

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

* src: add internal binding for constructing SharedArrayBuffers

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

* chore: bump node in DEPS to v24.13.0

* chore: fixup patch indices

* chore: fixup sandboxed pointers patch

* tls: route callback exceptions through error handlers

https://github.com/nodejs-private/node-private/pull/782

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-01-16 11:08:38 -05:00
Daniel Gräfe
5dd509d2f4 fix: restore AXDocument accessibility attribute for representedFilename on macOS (#49346)
Starting from Chromium 134.0.6989.0 (Electron 35.0.0-beta.5), the
NativeWidgetMacNSWindow class overrides accessibilityDocument to return
the web content URL from the accessibility tree, but doesn't fall back
to NSWindow's default behavior when that URL is empty.

This broke Electron's setRepresentedFilename() API - the file path was
still set on the NSWindow, but no longer exposed via the AXDocument
accessibility attribute that screen readers use.

This fix adds an accessibilityDocument override in ElectronNSWindow that
checks representedFilename first, falling back to Chromium's behavior
for web content URLs.

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

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 10:27:29 +01:00
Alex Schwartz
bdd7730a24 fix: make toplevel icon Wayland protocol work (#49290) 2026-01-16 09:55:52 +01:00
dependabot[bot]
060e76f1b6 build(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 (#49220)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](330a01c490...b7c566a772)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-16 09:55:38 +01:00
David Sanders
2fbf1f5c72 ci: detect patch needs update error with problem matcher (#49405) 2026-01-15 19:18:50 -08:00
Charles Kerr
c769361af2 fix: warning: default arguments on virtual or override methods (#49398)
fix: warning: default arguments on virtual or override methods are prohibited [google-default-arguments]

we never override these, so just make them nonvirtual
2026-01-15 16:09:43 -08:00
electron-roller[bot]
6ea7d6d5a4 chore: bump chromium to 146.0.7633.0 (main) (#49390)
* chore: bump chromium in DEPS to 146.0.7633.0

* chore: fixup patch indices

* chore: fix unsafe buffer usage in browser_linux.cc

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-01-15 10:52:42 -05:00
Charles Kerr
27b3a32307 chore: update patches (#49399) 2026-01-14 22:33:23 -08:00
Charles Kerr
ddeb970f18 refactor: make ReplyChannel inherit from gin::Wrappable (#49339)
* refactor: make ReplyChannel inherit from gin::Wrappable

* chore: add kElectronReplyChannel to chore_add_electron_objects_to_wrappablepointertag.patch

* fix: use gin::PerIsolateData::DisposeObserver

* fix: lifetime issues

* chore: rm perisolatedata hook in favor of prefinalizer

---------

Co-authored-by: deepak1556 <hop2deep@gmail.com>
2026-01-14 18:35:01 -06:00
electron-roller[bot]
5d80264944 chore: bump chromium to 145.0.7628.0 (main) (#49331)
* chore: bump chromium in DEPS to 145.0.7620.0

* chore: bump chromium in DEPS to 145.0.7622.0

* chore: bump chromium in DEPS to 145.0.7624.0

* chore: bump chromium in DEPS to 145.0.7626.0

* chore: bump chromium in DEPS to 145.0.7628.0

* 7362759: Migrate various base::Contains() to contains() in ui | https://chromium-review.googlesource.com/c/chromium/src/+/7362759

* chore: update patches

* 7411324: url: Mark deprecated functions as UNSAFE_BUFFER_USAGE

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

* 7366867: Store property info in CSSParserLocalContext for random()

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

* 7277406: Exclude PiP from getDisplayMedia picker thumbnails

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

* 7253489: activity_reporter: Create stub module owned by browser_process

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

* 7404514: Create device parental controls delegate

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

* 7269504: Update histograms to use the updated MediaStreamRequestResult enum

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

* fixup! 7253489: activity_reporter: Create stub module owned by browser_process

* 7368549: Reland "Use native rollup"

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

* 4803165: Enable suppressing input event dispatch while paint-holding.

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

* chore: make device_parental_controls lazy

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2026-01-14 15:34:24 +01:00
Erick Zhao
dae76c2885 docs: remove stale example and standardize DevTools capitalization (#49321)
* docs: remove stale example and standardize `DevTools` capitalization

* Update docs/api/web-contents.md

Co-authored-by: Kilian Valkhof <kilian@kilianvalkhof.com>

---------

Co-authored-by: Kilian Valkhof <kilian@kilianvalkhof.com>
2026-01-14 10:35:53 +01:00
Erick Zhao
a368c5da0c docs: improve build-tools instructions (#49294)
* docs: improve build-tools instructions

* address comments

* update directory structure

* update

* nits

* node -> electron_node

* update macos build version

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

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

---------

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
2026-01-14 09:51:55 +01:00
Keeley Hammond
1b2679b315 fix: revert os_crypt async cookie provider implementation (#49382)
* Revert "fix: provide explicit cookie encryption provider for cookie encryption (#49348)"

This reverts commit 95f097a392.

* Revert "fix: fix cookie encryption provider loading on Windows and Linux (#49371)"

This reverts commit 0e4ee9f03a.

* revert: 6996667: Reland "Port net::CookieCryptoDelegate to os_crypt async" | https://chromium-review.googlesource.com/c/chromium/src/+/6996667
2026-01-14 09:34:00 +01:00
Shelley Vohr
15acf70760 build: roll build-image to a82b87d (#49377)
build: roll build-image to a82b87d
2026-01-13 12:13:14 +01:00
dependabot[bot]
324eb0eb1c build(deps): bump github/codeql-action from 4.31.7 to 4.31.10 (#49376)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.31.7 to 4.31.10.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](cf1bb45a27...cdefb33c0f)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.31.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 10:25:10 +01:00
Keeley Hammond
0e4ee9f03a fix: fix cookie encryption provider loading on Windows and Linux (#49371)
* fix: support cookie encryption provider cross-platform

* fix: add async macos key provider
2026-01-12 19:39:29 -08:00
Charles Kerr
ae94cefdba refactor: add static ReplyChannel::SendError() helper (#49338)
* refactor: add static void ReplyChannel::SendError()

* refactor: use static SendError() instead of instantiating a temporary

* refactor: remove non-static version of SendError()

* refactor: remove redundant callback-is-non-null checks
2026-01-12 17:02:58 -06:00
Shelley Vohr
409c29b12b build: roll build-tools SHA to 4430e4a (#49362)
build: roll build-tools SHA to 4430e4a
2026-01-12 12:22:30 -05:00
Shelley Vohr
b0e012f14e build: update on-create-command for siso (#49357) 2026-01-12 14:30:48 +01:00
Calvin
9a5ffd920c feat: suppress devtools console logging (#49292)
* feat: suppress devtools console logging

* Emit messages as-is in testing builds

* Promote `DCHECK_IS_ON()` to preprocessor check
2026-01-12 11:31:33 +01:00
Charles Kerr
cf2e283332 fix: clang-tidy warnings, pt. 1 (#49083)
* fix: google-readability-casting warning about the uint32_t cast

* fix: modernize-use-equals-default warnings

* fix: readability-redundant-member-init warning

* fix: modernize-make-unique warnings

* fix: modernize-use-emplace

warning: use emplace_back instead of push_back

* refactor: address code review feedback
2026-01-09 22:57:38 -08:00
Niklas Wenzel
d6a6312fc8 build: update NMV to 145 (#49349) 2026-01-09 18:14:18 -08:00
Keeley Hammond
95f097a392 fix: provide explicit cookie encryption provider for cookie encryption (#49348)
fix: provide explicit cookie encryption provider

Fixes 6996667: Reland "Port net::CookieCryptoDelegate to os_crypt async" | https://chromium-review.googlesource.com/c/chromium/src/+/6996667
2026-01-09 11:53:58 -08:00
Niklas Wenzel
b380755514 chore: remove stakeholders mention from PR template (#49317) 2026-01-09 00:36:40 -08:00
David Sanders
3985daa81c chore: improvements to script/run-clang-tidy.ts (#49335)
* chore: disable color output for clang-tidy in CI

* chore: small QoL improvements to run-clang-tidy.ts

* chore: add --fix option to script/run-clang-tidy.ts
2026-01-08 22:05:44 -08:00
Erick Zhao
5901d8a6d8 docs: document ELECTRON_SKIP_BINARY_DOWNLOAD (#49320) 2026-01-07 14:54:22 -08:00
electron-roller[bot]
eee60f202c chore: bump chromium to 145.0.7618.0 (main) (#49314)
* chore: bump chromium in DEPS to 145.0.7618.0

* 7399531: [GTK] Don't preselect file dialog accept buttons | https://chromium-review.googlesource.com/c/chromium/src/+/7399531

* chore: update patches

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
2026-01-07 15:01:56 -05:00
Charles Kerr
b5a7d81c7d refactor: have GetXdgAppId() return a std::optional<std::string> (#49318)
* refactor: GetXdgAppId() now returns std::optional<std::string>

* refactor: slightly simplify app.setDesktopName() ts calls

* refactor: add better documentation for dekstop-entry in XDG notifications
2026-01-07 14:30:09 -05:00
dependabot[bot]
a89b2cd9bc build(deps): bump actions/download-artifact from 6.0.0 to 7.0.0 (#49221)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](018cc2cf5b...37930b1c2a)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-06 15:48:38 -05:00
Niklas Wenzel
44fa30695f docs: update roundedCorners documentation (#49195) 2026-01-05 16:27:46 -05:00
Niklas Wenzel
2ab56adbbd test: remove outdated disabled test (#49196) 2026-01-05 16:27:01 -05:00
electron-roller[bot]
a1f0ef80d4 chore: bump chromium to 145.0.7616.0 (main) (#49279)
* chore: bump chromium in DEPS to 145.0.7605.0

* chore: bump chromium in DEPS to 145.0.7606.0

* chore: bump chromium in DEPS to 145.0.7608.0

* chore: update patches

* chore: bump chromium in DEPS to 145.0.7610.0

* chore: update patches

* [InputVizard] Fix missing touch cancel in InputTransferHandlerAndroid
using InputEventSource

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

* chore: bump chromium in DEPS to 145.0.7611.0

* chore: update patches

* chore: bump chromium in DEPS to 145.0.7614.0

* chore: bump chromium in DEPS to 145.0.7615.0

* chore: update patches

* chore: bump chromium in DEPS to 145.0.7616.0

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2026-01-05 13:34:36 -05:00
dependabot[bot]
c1a031be83 build(deps): bump actions-cool/issues-helper from 3.7.3 to 3.7.5 (#49282)
Bumps [actions-cool/issues-helper](https://github.com/actions-cool/issues-helper) from 3.7.3 to 3.7.5.
- [Release notes](https://github.com/actions-cool/issues-helper/releases)
- [Changelog](https://github.com/actions-cool/issues-helper/blob/main/CHANGELOG.md)
- [Commits](3809910bc1...e2ff99831a)

---
updated-dependencies:
- dependency-name: actions-cool/issues-helper
  dependency-version: 3.7.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-05 12:26:03 -05:00
John Kleinschmidt
c8bb700509 build: fixup release notes generation (#49302) 2026-01-05 11:11:40 -05:00
Calvin
46922de638 fix: drag regions in child windows (#49231)
* fix: drag regions in child windows

* Update comments
2026-01-05 10:34:01 -05:00
Niklas Wenzel
75ea93a279 chore: remove quiet period mention from PR template (#49298) 2026-01-05 10:12:07 -05:00
John Kleinschmidt
ace0beaa3f build: add logging to notes generator (#49300) 2026-01-05 09:49:51 -05:00
434 changed files with 10204 additions and 3121 deletions

View File

@@ -2,7 +2,7 @@ version: '3'
services:
buildtools:
image: ghcr.io/electron/devcontainer:933c7d6ff6802706875270bec2e3c891cf8add3f
image: ghcr.io/electron/devcontainer:a82b87d7a4f5ff0cab61405f8151ac4cf4942aeb
volumes:
- ..:/workspaces/gclient/src/electron:cached

View File

@@ -48,7 +48,8 @@ if [ ! -f $buildtools/configs/evm.testing.json ]; then
\"gen\": {
\"args\": [
\"import(\\\"//electron/build/args/testing.gn\\\")\",
\"use_remoteexec = true\"
\"use_remoteexec = true\",
\"use_siso=true\"
],
\"out\": \"Testing\"
},
@@ -58,7 +59,7 @@ if [ ! -f $buildtools/configs/evm.testing.json ]; then
},
\"\$schema\": \"file:///home/builduser/.electron_build_tools/evm-config.schema.json\",
\"configValidationLevel\": \"strict\",
\"remoteBuild\": \"reclient\",
\"remoteBuild\": \"siso\",
\"preserveSDK\": 5
}
" >$buildtools/configs/evm.testing.json

View File

@@ -1,6 +1,3 @@
> [!IMPORTANT]
> Please note that code reviews and merges will be delayed during our [quiet period in December](https://www.electronjs.org/blog/dec-quiet-period-25) and might not happen until January.
#### Description of Change
<!--
@@ -13,7 +10,8 @@ Contributors guide: https://github.com/electron/electron/blob/main/CONTRIBUTING.
#### Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->
- [ ] PR description included and stakeholders cc'd
- [ ] PR description included
- [ ] I have built and tested this PR
- [ ] `npm test` passes
- [ ] tests are [changed or added](https://github.com/electron/electron/blob/main/docs/development/testing.md)
- [ ] relevant API documentation, tutorials, and examples are updated and follow the [documentation style guide](https://github.com/electron/electron/blob/main/docs/development/style-guide.md)

View File

@@ -1,30 +1,33 @@
name: "Build Electron"
description: "Builds Electron & Friends"
name: 'Build Electron'
description: 'Builds Electron & Friends'
inputs:
target-arch:
description: "Target arch"
description: 'Target arch'
required: true
target-platform:
description: "Target platform, should be linux, win, macos"
description: 'Target platform, should be linux, win, macos'
required: true
artifact-platform:
description: "Artifact platform, should be linux, win, darwin or mas"
description: 'Artifact platform, should be linux, win, darwin or mas'
required: true
step-suffix:
description: "Suffix for build steps"
description: 'Suffix for build steps'
required: false
default: ""
default: ''
is-release:
description: "Is release build"
description: 'Is release build'
required: true
generate-symbols:
description: "Generate symbols"
description: 'Generate symbols'
required: true
upload-to-storage:
description: "Upload to storage"
description: 'Upload to storage'
required: true
is-asan:
description: "The ASan Linux build"
description: 'The ASan Linux build'
required: false
upload-out-gen-artifacts:
description: 'Whether to upload the out/${dir}/gen artifacts'
required: false
runs:
using: "composite"
@@ -48,7 +51,6 @@ runs:
if: ${{ inputs.target-platform != 'win' }}
shell: bash
run: |
exit 1 # Only interested in testing windows builds
rm -rf "src/out/Default/Electron Framework.framework"
rm -rf src/out/Default/Electron*.app
@@ -217,6 +219,7 @@ runs:
- name: Publish Electron Dist ${{ inputs.step-suffix }}
if: ${{ inputs.is-release == 'true' }}
shell: bash
id: github-upload
run: |
rm -rf src/out/Default/obj
cd src/electron
@@ -227,6 +230,11 @@ runs:
echo 'Uploading Electron release distribution to GitHub releases'
script/release/uploaders/upload.py --verbose
fi
- name: Generate artifact attestation
if: ${{ inputs.is-release == 'true' }}
uses: actions/attest-build-provenance@96278af6caaf10aea03fd8d33a09a777ca52d62f # v3.2.0
with:
subject-path: ${{ steps.github-upload.outputs.UPLOADED_PATHS }}
- name: Generate siso report
if: ${{ inputs.target-platform != 'win' && !cancelled() }}
shell: bash
@@ -275,3 +283,9 @@ runs:
with:
name: src_artifacts_${{ env.ARTIFACT_KEY }}
path: ./src_artifacts_${{ inputs.artifact-platform }}_${{ inputs.target-arch }}
- name: Upload Out Gen Artifacts ${{ inputs.step-suffix }}
if: ${{ inputs.upload-out-gen-artifacts == 'true' }}
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808
with:
name: out_gen_artifacts_${{ env.ARTIFACT_KEY }}
path: ./src/out/Default/gen

View File

@@ -143,11 +143,12 @@ runs:
echo "No changes to patches detected"
fi
fi
- name: Remove patch conflict problem matcher
- name: Remove patch conflict problem matchers
shell: bash
run: |
echo "::remove-matcher owner=merge-conflict::"
echo "::remove-matcher owner=patch-conflict::"
echo "::remove-matcher owner=patch-needs-update::"
- name: Upload patches stats
if: ${{ inputs.target-platform == 'linux' && github.ref == 'refs/heads/main' }}
shell: bash

View File

@@ -37,6 +37,22 @@ runs:
installation-dir: third_party/esbuild
target-platform: ${{ inputs.target-platform }}
package: infra/3pp/tools/esbuild/${platform}
- name: Fix rollup
if: ${{ inputs.target-platform != 'linux' }}
uses: ./src/electron/.github/actions/cipd-install
with:
cipd-root-prefix-path: src/third_party/devtools-frontend/src/
dependency: rollup_libs
deps-file: src/third_party/devtools-frontend/src/DEPS
installation-dir: third_party/rollup_libs
target-platform: ${{ inputs.target-platform }}
package: infra/3pp/tools/rollup_libs/${platform}
- name: Sync native rollup libs
if: ${{ inputs.target-platform != 'linux' }}
shell: bash
run : |
cd src/third_party/devtools-frontend/src
python3 scripts/deps/sync_rollup_libs.py
- name: Fix rustc
if: ${{ inputs.target-platform != 'linux' }}
shell: bash

View File

@@ -15,7 +15,7 @@ runs:
git config --global core.preloadindex true
git config --global core.longpaths true
fi
export BUILD_TOOLS_SHA=a5d9f9052dcc36ee88bef5c8b13acbefd87b7d8d
export BUILD_TOOLS_SHA=4430e4a505e0f4fa2a41b707a10a36f780bbdd26
npm i -g @electron/build-tools
# Update depot_tools to ensure python
e d update_depot_tools

View File

@@ -19,6 +19,16 @@
"line": 3
}
]
},
{
"owner": "patch-needs-update",
"pattern": [
{
"regexp": "^((patches\/.*): needs update)$",
"message": 1,
"file": 2
}
]
}
]
}

73
.github/workflows/apply-patches.yml vendored Normal file
View File

@@ -0,0 +1,73 @@
name: Apply Patches
on:
pull_request:
permissions: {}
concurrency:
group: apply-patches-${{ github.ref }}
cancel-in-progress: true
jobs:
setup:
if: github.repository == 'electron/electron'
runs-on: ubuntu-slim
permissions:
contents: read
pull-requests: read
outputs:
has-patches: ${{ steps.filter.outputs.patches }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
ref: ${{ github.event.pull_request.head.sha }}
# Use dorny/paths-filter instead of the path filter under the on: pull_request: block
# so that the output can be used to conditionally run the apply-patches job, which lets
# the job be marked as a required status check (conditional skip counts as a success).
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: filter
with:
filters: |
patches:
- DEPS
- 'patches/**'
apply-patches:
needs: setup
if: ${{ needs.setup.outputs.has-patches == 'true' }}
runs-on: electron-arc-centralus-linux-amd64-32core
permissions:
contents: read
container:
image: ghcr.io/electron/build:a82b87d7a4f5ff0cab61405f8151ac4cf4942aeb
options: --user root
volumes:
- /mnt/cross-instance-cache:/mnt/cross-instance-cache
- /var/run/sas:/var/run/sas
env:
CHROMIUM_GIT_COOKIE: ${{ secrets.CHROMIUM_GIT_COOKIE }}
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
steps:
- name: Checkout Electron
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
persist-credentials: false
ref: ${{ github.event.pull_request.base.ref }}
- name: Merge PR HEAD
working-directory: src/electron
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
git config user.email "electron@github.com"
git config user.name "Electron Bot"
git fetch origin refs/pull/${PR_NUMBER}/head
git merge --squash FETCH_HEAD
git commit -n -m "Squashed commits"
- name: Checkout & Sync & Save
uses: ./src/electron/.github/actions/checkout
with:
target-platform: linux

View File

@@ -13,13 +13,13 @@ jobs:
contents: read
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
fetch-depth: 0
- name: Setup Node.js/npm
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238
with:
node-version: 22.21.x
node-version: 24.12.x
- name: Setting Up Dig Site
run: |
echo "remote: ${{ github.event.pull_request.head.repo.clone_url }}"
@@ -45,7 +45,7 @@ jobs:
sha-file: .dig-old
filename: electron.old.d.ts
- name: Upload artifacts
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 #v5.0.0
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f #v6.0.0
with:
name: artifacts
path: electron/artifacts

View File

@@ -11,16 +11,17 @@ permissions: {}
jobs:
audit_branch_ci:
name: Audit CI on Branches
if: github.repository == 'electron/electron'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Setup Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: 22.17.x
- name: Sparse checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
sparse-checkout: |
.

View File

@@ -14,7 +14,7 @@ permissions: {}
jobs:
release-branch-created:
name: Release Branch Created
if: ${{ github.event_name == 'workflow_dispatch' || (github.event.ref_type == 'branch' && endsWith(github.event.ref, '-x-y') && !startsWith(github.event.ref, 'roller')) }}
if: ${{ github.repository == 'electron/electron' && (github.event_name == 'workflow_dispatch' || (github.event.ref_type == 'branch' && endsWith(github.event.ref, '-x-y') && !startsWith(github.event.ref, 'roller'))) }}
permissions:
contents: read
pull-requests: write
@@ -68,7 +68,7 @@ jobs:
done
- name: Generate GitHub App token
if: ${{ steps.check-major-version.outputs.MAJOR }}
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.RELEASE_BOARD_GH_APP_CREDS }}

View File

@@ -10,11 +10,12 @@ permissions: {}
jobs:
build-git-cache-linux:
if: github.repository == 'electron/electron'
runs-on: electron-arc-centralus-linux-amd64-32core
permissions:
contents: read
container:
image: ghcr.io/electron/build:bc2f48b2415a670de18d13605b1cf0eb5fdbaae1
image: ghcr.io/electron/build:a82b87d7a4f5ff0cab61405f8151ac4cf4942aeb
options: --user root
volumes:
- /mnt/cross-instance-cache:/mnt/cross-instance-cache
@@ -23,7 +24,7 @@ jobs:
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -33,11 +34,12 @@ jobs:
target-platform: linux
build-git-cache-windows:
if: github.repository == 'electron/electron'
runs-on: electron-arc-centralus-linux-amd64-32core
permissions:
contents: read
container:
image: ghcr.io/electron/build:bc2f48b2415a670de18d13605b1cf0eb5fdbaae1
image: ghcr.io/electron/build:a82b87d7a4f5ff0cab61405f8151ac4cf4942aeb
options: --user root --device /dev/fuse --cap-add SYS_ADMIN
volumes:
- /mnt/win-cache:/mnt/win-cache
@@ -47,7 +49,7 @@ jobs:
TARGET_OS: 'win'
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -57,13 +59,14 @@ jobs:
target-platform: win
build-git-cache-macos:
if: github.repository == 'electron/electron'
runs-on: electron-arc-centralus-linux-amd64-32core
permissions:
contents: read
# This job updates the same git cache as linux, so it needs to run after the linux one.
needs: build-git-cache-linux
container:
image: ghcr.io/electron/build:bc2f48b2415a670de18d13605b1cf0eb5fdbaae1
image: ghcr.io/electron/build:a82b87d7a4f5ff0cab61405f8151ac4cf4942aeb
options: --user root
volumes:
- /mnt/cross-instance-cache:/mnt/cross-instance-cache
@@ -72,7 +75,7 @@ jobs:
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_mac=True --custom-var=host_os=mac'
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0

View File

@@ -5,38 +5,38 @@ on:
inputs:
build-image-sha:
type: string
description: "SHA for electron/build image"
default: "933c7d6ff6802706875270bec2e3c891cf8add3f"
description: 'SHA for electron/build image'
default: 'a82b87d7a4f5ff0cab61405f8151ac4cf4942aeb'
required: true
skip-macos:
type: boolean
description: "Skip macOS builds"
description: 'Skip macOS builds'
default: false
required: false
skip-linux:
type: boolean
description: "Skip Linux builds"
description: 'Skip Linux builds'
default: false
required: false
skip-windows:
type: boolean
description: "Skip Windows builds"
description: 'Skip Windows builds'
default: false
required: false
skip-lint:
type: boolean
description: "Skip lint check"
description: 'Skip lint check'
default: false
required: false
enable-ssh:
description: "Enable SSH debugging"
description: 'Enable SSH debugging'
required: false
type: boolean
default: false
push:
branches:
- main
- "[1-9][0-9]-x-y"
- '[1-9][0-9]-x-y'
pull_request:
defaults:
@@ -47,45 +47,46 @@ permissions: {}
jobs:
setup:
if: github.repository == 'electron/electron'
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
outputs:
docs: ${{ steps.filter.outputs.docs }}
src: ${{ steps.filter.outputs.src }}
build-image-sha: ${{ steps.set-output.outputs.build-image-sha }}
docs-only: ${{ steps.set-output.outputs.docs-only }}
docs: ${{ steps.filter.outputs.docs }}
src: ${{ steps.filter.outputs.src }}
build-image-sha: ${{ steps.set-output.outputs.build-image-sha }}
docs-only: ${{ steps.set-output.outputs.docs-only }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
with:
ref: ${{ github.event.pull_request.head.sha }}
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: filter
with:
filters: |
docs:
- 'docs/**'
- README.md
- SECURITY.md
- CONTRIBUTING.md
- CODE_OF_CONDUCT.md
src:
- '!docs/**'
- name: Set Outputs for Build Image SHA & Docs Only
id: set-output
run: |
if [ -z "${{ inputs.build-image-sha }}" ]; then
echo "build-image-sha=933c7d6ff6802706875270bec2e3c891cf8add3f" >> "$GITHUB_OUTPUT"
else
echo "build-image-sha=${{ inputs.build-image-sha }}" >> "$GITHUB_OUTPUT"
fi
echo "docs-only=${{ steps.filter.outputs.docs == 'true' && steps.filter.outputs.src == 'false' }}" >> "$GITHUB_OUTPUT"
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
ref: ${{ github.event.pull_request.head.sha }}
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: filter
with:
filters: |
docs:
- 'docs/**'
- README.md
- SECURITY.md
- CONTRIBUTING.md
- CODE_OF_CONDUCT.md
src:
- '!docs/**'
- name: Set Outputs for Build Image SHA & Docs Only
id: set-output
run: |
if [ -z "${{ inputs.build-image-sha }}" ]; then
echo "build-image-sha=a82b87d7a4f5ff0cab61405f8151ac4cf4942aeb" >> "$GITHUB_OUTPUT"
else
echo "build-image-sha=${{ inputs.build-image-sha }}" >> "$GITHUB_OUTPUT"
fi
echo "docs-only=${{ steps.filter.outputs.docs == 'true' && steps.filter.outputs.src == 'false' }}" >> "$GITHUB_OUTPUT"
# Lint Jobs
lint:
needs: setup
if: false # ${{ !inputs.skip-lint }}
if: ${{ !inputs.skip-lint }}
uses: ./.github/workflows/pipeline-electron-lint.yml
permissions:
contents: read
@@ -96,7 +97,7 @@ jobs:
# Docs Only Jobs
docs-only:
needs: [setup, checkout-linux]
if: false # ${{ needs.setup.outputs.docs-only == 'true' }}
if: ${{ needs.setup.outputs.docs-only == 'true' }}
uses: ./.github/workflows/pipeline-electron-docs-only.yml
permissions:
contents: read
@@ -107,7 +108,7 @@ jobs:
# Checkout Jobs
checkout-macos:
needs: setup
if: false # ${{ needs.setup.outputs.src == 'true' && !inputs.skip-macos}}
if: ${{ needs.setup.outputs.src == 'true' && !inputs.skip-macos}}
runs-on: electron-arc-centralus-linux-amd64-32core
permissions:
contents: read
@@ -119,25 +120,25 @@ jobs:
- /var/run/sas:/var/run/sas
env:
CHROMIUM_GIT_COOKIE: ${{ secrets.CHROMIUM_GIT_COOKIE }}
GCLIENT_EXTRA_ARGS: "--custom-var=checkout_mac=True --custom-var=host_os=mac"
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_mac=True --custom-var=host_os=mac'
outputs:
build-image-sha: ${{ needs.setup.outputs.build-image-sha }}
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
with:
path: src/electron
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Checkout & Sync & Save
uses: ./src/electron/.github/actions/checkout
with:
generate-sas-token: "true"
target-platform: macos
- name: Checkout Electron
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Checkout & Sync & Save
uses: ./src/electron/.github/actions/checkout
with:
generate-sas-token: 'true'
target-platform: macos
checkout-linux:
needs: setup
if: false # ${{ !inputs.skip-linux}}
if: ${{ !inputs.skip-linux}}
runs-on: electron-arc-centralus-linux-amd64-32core
permissions:
contents: read
@@ -150,21 +151,21 @@ jobs:
env:
CHROMIUM_GIT_COOKIE: ${{ secrets.CHROMIUM_GIT_COOKIE }}
DD_API_KEY: ${{ secrets.DD_API_KEY }}
GCLIENT_EXTRA_ARGS: "--custom-var=checkout_arm=True --custom-var=checkout_arm64=True"
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
PATCH_UP_APP_CREDS: ${{ secrets.PATCH_UP_APP_CREDS }}
outputs:
build-image-sha: ${{ needs.setup.outputs.build-image-sha}}
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
with:
path: src/electron
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Checkout & Sync & Save
uses: ./src/electron/.github/actions/checkout
with:
target-platform: linux
- name: Checkout Electron
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Checkout & Sync & Save
uses: ./src/electron/.github/actions/checkout
with:
target-platform: linux
checkout-windows:
needs: setup
@@ -181,28 +182,27 @@ jobs:
env:
CHROMIUM_GIT_COOKIE: ${{ secrets.CHROMIUM_GIT_COOKIE }}
CHROMIUM_GIT_COOKIE_WINDOWS_STRING: ${{ secrets.CHROMIUM_GIT_COOKIE_WINDOWS_STRING }}
GCLIENT_EXTRA_ARGS: "--custom-var=checkout_win=True"
TARGET_OS: "win"
ELECTRON_DEPOT_TOOLS_WIN_TOOLCHAIN: "1"
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_win=True'
TARGET_OS: 'win'
ELECTRON_DEPOT_TOOLS_WIN_TOOLCHAIN: '1'
outputs:
build-image-sha: ${{ needs.setup.outputs.build-image-sha}}
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
with:
path: src/electron
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Checkout & Sync & Save
uses: ./src/electron/.github/actions/checkout
with:
generate-sas-token: "true"
target-platform: win
- name: Checkout Electron
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Checkout & Sync & Save
uses: ./src/electron/.github/actions/checkout
with:
generate-sas-token: 'true'
target-platform: win
# GN Check Jobs
macos-gn-check:
uses: ./.github/workflows/pipeline-segment-electron-gn-check.yml
if: false
permissions:
contents: read
needs: checkout-macos
@@ -218,7 +218,7 @@ jobs:
permissions:
contents: read
needs: checkout-linux
if: false # ${{ needs.setup.outputs.src == 'true' }}
if: ${{ needs.setup.outputs.src == 'true' }}
with:
target-platform: linux
target-archs: x64 arm arm64
@@ -242,7 +242,6 @@ jobs:
# Build Jobs - These cascade into testing jobs
macos-x64:
if: false
permissions:
contents: read
issues: read
@@ -257,12 +256,11 @@ jobs:
is-release: false
gn-build-type: testing
generate-symbols: false
upload-to-storage: "0"
upload-to-storage: '0'
enable-ssh: ${{ inputs.enable-ssh || false }}
secrets: inherit
macos-arm64:
if: false
permissions:
contents: read
issues: read
@@ -277,7 +275,7 @@ jobs:
is-release: false
gn-build-type: testing
generate-symbols: false
upload-to-storage: "0"
upload-to-storage: '0'
enable-ssh: ${{ inputs.enable-ssh || false }}
secrets: inherit
@@ -286,20 +284,22 @@ jobs:
contents: read
issues: read
pull-requests: read
uses: ./.github/workflows/pipeline-electron-build-and-test-and-nan.yml
uses: ./.github/workflows/pipeline-electron-build-and-tidy-and-test-and-nan.yml
needs: checkout-linux
if: false # ${{ needs.setup.outputs.src == 'true' }}
if: ${{ needs.setup.outputs.src == 'true' }}
with:
build-runs-on: electron-arc-centralus-linux-amd64-32core
clang-tidy-runs-on: electron-arc-centralus-linux-amd64-8core
test-runs-on: electron-arc-centralus-linux-amd64-4core
build-container: '{"image":"ghcr.io/electron/build:${{ needs.checkout-linux.outputs.build-image-sha }}","options":"--user root","volumes":["/mnt/cross-instance-cache:/mnt/cross-instance-cache"]}'
clang-tidy-container: '{"image":"ghcr.io/electron/build:${{ needs.checkout-linux.outputs.build-image-sha }}","options":"--user root","volumes":["/mnt/cross-instance-cache:/mnt/cross-instance-cache"]}'
test-container: '{"image":"ghcr.io/electron/build:${{ needs.checkout-linux.outputs.build-image-sha }}","options":"--user root --privileged --init"}'
target-platform: linux
target-arch: x64
is-release: false
gn-build-type: testing
generate-symbols: false
upload-to-storage: "0"
upload-to-storage: '0'
secrets: inherit
linux-x64-asan:
@@ -309,7 +309,7 @@ jobs:
pull-requests: read
uses: ./.github/workflows/pipeline-electron-build-and-test.yml
needs: checkout-linux
if: false # ${{ needs.setup.outputs.src == 'true' }}
if: ${{ needs.setup.outputs.src == 'true' }}
with:
build-runs-on: electron-arc-centralus-linux-amd64-32core
test-runs-on: electron-arc-centralus-linux-amd64-4core
@@ -320,10 +320,10 @@ jobs:
is-release: false
gn-build-type: testing
generate-symbols: false
upload-to-storage: "0"
upload-to-storage: '0'
is-asan: true
secrets: inherit
linux-arm:
permissions:
contents: read
@@ -331,7 +331,7 @@ jobs:
pull-requests: read
uses: ./.github/workflows/pipeline-electron-build-and-test.yml
needs: checkout-linux
if: false # ${{ needs.setup.outputs.src == 'true' }}
if: ${{ needs.setup.outputs.src == 'true' }}
with:
build-runs-on: electron-arc-centralus-linux-amd64-32core
test-runs-on: electron-arc-centralus-linux-arm64-4core
@@ -342,9 +342,9 @@ jobs:
is-release: false
gn-build-type: testing
generate-symbols: false
upload-to-storage: "0"
upload-to-storage: '0'
secrets: inherit
linux-arm64:
permissions:
contents: read
@@ -352,7 +352,7 @@ jobs:
pull-requests: read
uses: ./.github/workflows/pipeline-electron-build-and-test.yml
needs: checkout-linux
if: false # ${{ needs.setup.outputs.src == 'true' }}
if: ${{ needs.setup.outputs.src == 'true' }}
with:
build-runs-on: electron-arc-centralus-linux-amd64-32core
test-runs-on: ubuntu-22.04-arm
@@ -363,7 +363,7 @@ jobs:
is-release: false
gn-build-type: testing
generate-symbols: false
upload-to-storage: "0"
upload-to-storage: '0'
secrets: inherit
windows-x64:
@@ -382,7 +382,7 @@ jobs:
is-release: false
gn-build-type: testing
generate-symbols: false
upload-to-storage: "0"
upload-to-storage: '0'
secrets: inherit
windows-x86:
@@ -401,7 +401,7 @@ jobs:
is-release: false
gn-build-type: testing
generate-symbols: false
upload-to-storage: "0"
upload-to-storage: '0'
secrets: inherit
windows-arm64:
@@ -420,7 +420,7 @@ jobs:
is-release: false
gn-build-type: testing
generate-symbols: false
upload-to-storage: "0"
upload-to-storage: '0'
secrets: inherit
gha-done:
@@ -428,21 +428,9 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
needs:
[
docs-only,
macos-x64,
macos-arm64,
linux-x64,
linux-x64-asan,
linux-arm,
linux-arm64,
windows-x64,
windows-x86,
windows-arm64,
]
if: always() && !contains(needs.*.result, 'failure')
steps:
- name: GitHub Actions Jobs Done
run: |
echo "All GitHub Actions Jobs are done"
needs: [docs-only, macos-x64, macos-arm64, linux-x64, linux-x64-asan, linux-arm, linux-arm64, windows-x64, windows-x86, windows-arm64]
if: always() && github.repository == 'electron/electron' && !contains(needs.*.result, 'failure')
steps:
- name: GitHub Actions Jobs Done
run: |
echo "All GitHub Actions Jobs are done"

View File

@@ -12,6 +12,7 @@ permissions: {}
jobs:
clean-src-cache:
if: github.repository == 'electron/electron'
runs-on: electron-arc-centralus-linux-amd64-32core
permissions:
contents: read

View File

@@ -21,7 +21,7 @@ jobs:
AUTHOR_ASSOCIATION=$(gh api /repos/electron/electron/issues/comments/${{ github.event.comment.id }} --jq '.author_association')
echo "author_association=$AUTHOR_ASSOCIATION" >> "$GITHUB_OUTPUT"
- name: Generate GitHub App token
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
if: ${{ !contains(fromJSON('["MEMBER", "OWNER", "COLLABORATOR"]'), steps.get-author-association.outputs.author_association) }}
id: generate-token
with:

View File

@@ -15,7 +15,7 @@ jobs:
contents: read
steps:
- name: Generate GitHub App token
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
@@ -36,7 +36,7 @@ jobs:
contents: read
steps:
- name: Generate GitHub App token
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
@@ -69,13 +69,13 @@ jobs:
fi
- name: Generate GitHub App token
if: ${{ steps.check-for-comment.outputs.SHOULD_COMMENT }}
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
- name: Create comment
if: ${{ steps.check-for-comment.outputs.SHOULD_COMMENT }}
uses: actions-cool/issues-helper@3809910bc12872edc9b8132f122069ac16cd16ee # v3.7.3
uses: actions-cool/issues-helper@e2ff99831a4f13625d35064e2b3dfe65c07a0396 # v3.7.5
with:
actions: 'create-comment'
token: ${{ steps.generate-token.outputs.token }}

View File

@@ -14,7 +14,7 @@ jobs:
permissions: {}
steps:
- name: Generate GitHub App token
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
@@ -32,13 +32,13 @@ jobs:
permissions: {}
steps:
- name: Generate GitHub App token
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
org: electron
- name: Sparse checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
sparse-checkout: |
.
@@ -146,7 +146,7 @@ jobs:
}
- name: Create unsupported major comment
if: ${{ steps.add-labels.outputs.unsupportedMajor }}
uses: actions-cool/issues-helper@3809910bc12872edc9b8132f122069ac16cd16ee # v3.7.3
uses: actions-cool/issues-helper@e2ff99831a4f13625d35064e2b3dfe65c07a0396 # v3.7.5
with:
actions: 'create-comment'
token: ${{ steps.generate-token.outputs.token }}

View File

@@ -14,7 +14,7 @@ jobs:
if: ${{ !github.event.changes.new_repository.private }}
steps:
- name: Generate GitHub App token
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}

View File

@@ -24,7 +24,7 @@ jobs:
fi
- name: Generate GitHub App token
if: ${{ steps.check-for-blocked-labels.outputs.NOT_BLOCKED }}
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}

View File

@@ -6,7 +6,7 @@ on:
build-image-sha:
type: string
description: 'SHA for electron/build image'
default: '933c7d6ff6802706875270bec2e3c891cf8add3f'
default: 'a82b87d7a4f5ff0cab61405f8151ac4cf4942aeb'
upload-to-storage:
description: 'Uploads to Azure storage'
required: false
@@ -21,6 +21,7 @@ permissions: {}
jobs:
checkout-linux:
if: github.repository == 'electron/electron'
runs-on: electron-arc-centralus-linux-amd64-32core
permissions:
contents: read
@@ -35,7 +36,7 @@ jobs:
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -43,9 +44,11 @@ jobs:
uses: ./src/electron/.github/actions/checkout
publish-x64:
uses: ./.github/workflows/pipeline-segment-electron-build.yml
uses: ./.github/workflows/pipeline-segment-electron-publish.yml
permissions:
attestations: write
contents: read
id-token: write
needs: checkout-linux
with:
environment: production-release
@@ -60,9 +63,11 @@ jobs:
secrets: inherit
publish-arm:
uses: ./.github/workflows/pipeline-segment-electron-build.yml
uses: ./.github/workflows/pipeline-segment-electron-publish.yml
permissions:
attestations: write
contents: read
id-token: write
needs: checkout-linux
with:
environment: production-release
@@ -77,9 +82,11 @@ jobs:
secrets: inherit
publish-arm64:
uses: ./.github/workflows/pipeline-segment-electron-build.yml
uses: ./.github/workflows/pipeline-segment-electron-publish.yml
permissions:
attestations: write
contents: read
id-token: write
needs: checkout-linux
with:
environment: production-release

View File

@@ -13,6 +13,7 @@ permissions: {}
jobs:
macos-disk-cleanup:
if: github.repository == 'electron/electron'
strategy:
fail-fast: false
matrix:
@@ -25,7 +26,7 @@ jobs:
contents: read
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
sparse-checkout: |
.github/actions/free-space-macos

View File

@@ -6,7 +6,7 @@ on:
build-image-sha:
type: string
description: 'SHA for electron/build image'
default: '933c7d6ff6802706875270bec2e3c891cf8add3f'
default: 'a82b87d7a4f5ff0cab61405f8151ac4cf4942aeb'
required: true
upload-to-storage:
description: 'Uploads to Azure storage'
@@ -22,6 +22,7 @@ permissions: {}
jobs:
checkout-macos:
if: github.repository == 'electron/electron'
runs-on: electron-arc-centralus-linux-amd64-32core
permissions:
contents: read
@@ -36,7 +37,7 @@ jobs:
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_mac=True --custom-var=host_os=mac'
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -47,9 +48,11 @@ jobs:
target-platform: macos
publish-x64-darwin:
uses: ./.github/workflows/pipeline-segment-electron-build.yml
uses: ./.github/workflows/pipeline-segment-electron-publish.yml
permissions:
attestations: write
contents: read
id-token: write
needs: checkout-macos
with:
environment: production-release
@@ -64,9 +67,11 @@ jobs:
secrets: inherit
publish-x64-mas:
uses: ./.github/workflows/pipeline-segment-electron-build.yml
uses: ./.github/workflows/pipeline-segment-electron-publish.yml
permissions:
attestations: write
contents: read
id-token: write
needs: checkout-macos
with:
environment: production-release
@@ -81,9 +86,11 @@ jobs:
secrets: inherit
publish-arm64-darwin:
uses: ./.github/workflows/pipeline-segment-electron-build.yml
uses: ./.github/workflows/pipeline-segment-electron-publish.yml
permissions:
attestations: write
contents: read
id-token: write
needs: checkout-macos
with:
environment: production-release
@@ -98,9 +105,11 @@ jobs:
secrets: inherit
publish-arm64-mas:
uses: ./.github/workflows/pipeline-segment-electron-build.yml
uses: ./.github/workflows/pipeline-segment-electron-publish.yml
permissions:
attestations: write
contents: read
id-token: write
needs: checkout-macos
with:
environment: production-release

View File

@@ -5,57 +5,57 @@ on:
inputs:
target-platform:
type: string
description: "Platform to run on, can be macos, win or linux"
description: 'Platform to run on, can be macos, win or linux'
required: true
target-arch:
type: string
description: "Arch to build for, can be x64, arm64 or arm"
description: 'Arch to build for, can be x64, arm64 or arm'
required: true
build-runs-on:
type: string
description: "What host to run the build"
description: 'What host to run the build'
required: true
test-runs-on:
type: string
description: "What host to run the tests on"
description: 'What host to run the tests on'
required: true
build-container:
type: string
description: "JSON container information for aks runs-on"
description: 'JSON container information for aks runs-on'
required: false
default: '{"image":null}'
test-container:
type: string
description: "JSON container information for testing"
description: 'JSON container information for testing'
required: false
default: '{"image":null}'
is-release:
description: "Whether this build job is a release job"
description: 'Whether this build job is a release job'
required: true
type: boolean
default: false
gn-build-type:
description: "The gn build type - testing or release"
description: 'The gn build type - testing or release'
required: true
type: string
default: testing
generate-symbols:
description: "Whether or not to generate symbols"
generate-symbols:
description: 'Whether or not to generate symbols'
required: true
type: boolean
default: false
upload-to-storage:
description: "Whether or not to upload build artifacts to external storage"
upload-to-storage:
description: 'Whether or not to upload build artifacts to external storage'
required: true
type: string
default: "0"
is-asan:
description: "Building the Address Sanitizer (ASan) Linux build"
default: '0'
is-asan:
description: 'Building the Address Sanitizer (ASan) Linux build'
required: false
type: boolean
default: false
enable-ssh:
description: "Enable SSH debugging"
description: 'Enable SSH debugging'
required: false
type: boolean
default: false
@@ -84,7 +84,6 @@ jobs:
enable-ssh: ${{ inputs.enable-ssh }}
secrets: inherit
test:
if: false
uses: ./.github/workflows/pipeline-segment-electron-test.yml
permissions:
contents: read

View File

@@ -0,0 +1,124 @@
name: Electron Build & Clang Tidy & Test (+ Node + NaN) Pipeline
on:
workflow_call:
inputs:
target-platform:
type: string
description: 'Platform to run on, can be macos, win or linux.'
required: true
target-arch:
type: string
description: 'Arch to build for, can be x64, arm64 or arm'
required: true
build-runs-on:
type: string
description: 'What host to run the build'
required: true
clang-tidy-runs-on:
type: string
description: 'What host to run clang-tidy on'
required: true
test-runs-on:
type: string
description: 'What host to run the tests on'
required: true
build-container:
type: string
description: 'JSON container information for aks runs-on'
required: false
default: '{"image":null}'
clang-tidy-container:
type: string
description: 'JSON container information to run clang-tidy on'
required: false
default: '{"image":null}'
test-container:
type: string
description: 'JSON container information for testing'
required: false
default: '{"image":null}'
is-release:
description: 'Whether this build job is a release job'
required: true
type: boolean
default: false
gn-build-type:
description: 'The gn build type - testing or release'
required: true
type: string
default: testing
generate-symbols:
description: 'Whether or not to generate symbols'
required: true
type: boolean
default: false
upload-to-storage:
description: 'Whether or not to upload build artifacts to external storage'
required: true
type: string
default: '0'
is-asan:
description: 'Building the Address Sanitizer (ASan) Linux build'
required: false
type: boolean
default: false
permissions: {}
concurrency:
group: electron-build-and-test-and-nan-${{ inputs.target-platform }}-${{ inputs.target-arch }}-${{ github.ref_protected == true && github.run_id || github.ref }}
cancel-in-progress: ${{ github.ref_protected != true }}
jobs:
build:
uses: ./.github/workflows/pipeline-segment-electron-build.yml
permissions:
contents: read
with:
build-runs-on: ${{ inputs.build-runs-on }}
build-container: ${{ inputs.build-container }}
target-platform: ${{ inputs.target-platform }}
target-arch: ${{ inputs.target-arch }}
is-release: ${{ inputs.is-release }}
gn-build-type: ${{ inputs.gn-build-type }}
generate-symbols: ${{ inputs.generate-symbols }}
upload-to-storage: ${{ inputs.upload-to-storage }}
upload-out-gen-artifacts: true
secrets: inherit
clang-tidy:
uses: ./.github/workflows/pipeline-segment-electron-clang-tidy.yml
permissions:
contents: read
needs: build
with:
clang-tidy-runs-on: ${{ inputs.clang-tidy-runs-on }}
clang-tidy-container: ${{ inputs.clang-tidy-container }}
target-platform: ${{ inputs.target-platform }}
target-arch: ${{ inputs.target-arch }}
secrets: inherit
test:
uses: ./.github/workflows/pipeline-segment-electron-test.yml
permissions:
contents: read
issues: read
pull-requests: read
needs: build
with:
target-arch: ${{ inputs.target-arch }}
target-platform: ${{ inputs.target-platform }}
test-runs-on: ${{ inputs.test-runs-on }}
test-container: ${{ inputs.test-container }}
secrets: inherit
nn-test:
uses: ./.github/workflows/pipeline-segment-node-nan-test.yml
permissions:
contents: read
needs: build
with:
target-arch: ${{ inputs.target-arch }}
target-platform: ${{ inputs.target-platform }}
test-runs-on: ${{ inputs.test-runs-on }}
test-container: ${{ inputs.test-container }}
gn-build-type: ${{ inputs.gn-build-type }}
secrets: inherit

View File

@@ -0,0 +1,121 @@
name: Electron Build & Clang Tidy & Test Pipeline
on:
workflow_call:
inputs:
target-platform:
type: string
description: 'Platform to run on, can be macos, win or linux'
required: true
target-arch:
type: string
description: 'Arch to build for, can be x64, arm64 or arm'
required: true
build-runs-on:
type: string
description: 'What host to run the build'
required: true
clang-tidy-runs-on:
type: string
description: 'What host to run clang-tidy on'
required: true
test-runs-on:
type: string
description: 'What host to run the tests on'
required: true
build-container:
type: string
description: 'JSON container information for aks runs-on'
required: false
default: '{"image":null}'
clang-tidy-container:
type: string
description: 'JSON container information to run clang-tidy on'
required: false
default: '{"image":null}'
test-container:
type: string
description: 'JSON container information for testing'
required: false
default: '{"image":null}'
is-release:
description: 'Whether this build job is a release job'
required: true
type: boolean
default: false
gn-build-type:
description: 'The gn build type - testing or release'
required: true
type: string
default: testing
generate-symbols:
description: 'Whether or not to generate symbols'
required: true
type: boolean
default: false
upload-to-storage:
description: 'Whether or not to upload build artifacts to external storage'
required: true
type: string
default: '0'
is-asan:
description: 'Building the Address Sanitizer (ASan) Linux build'
required: false
type: boolean
default: false
enable-ssh:
description: 'Enable SSH debugging'
required: false
type: boolean
default: false
concurrency:
group: electron-build-and-tidy-and-test-${{ inputs.target-platform }}-${{ inputs.target-arch }}-${{ github.ref_protected == true && github.run_id || github.ref }}
cancel-in-progress: ${{ github.ref_protected != true }}
permissions: {}
jobs:
build:
uses: ./.github/workflows/pipeline-segment-electron-build.yml
permissions:
contents: read
with:
build-runs-on: ${{ inputs.build-runs-on }}
build-container: ${{ inputs.build-container }}
target-platform: ${{ inputs.target-platform }}
target-arch: ${{ inputs.target-arch }}
is-release: ${{ inputs.is-release }}
gn-build-type: ${{ inputs.gn-build-type }}
generate-symbols: ${{ inputs.generate-symbols }}
upload-to-storage: ${{ inputs.upload-to-storage }}
is-asan: ${{ inputs.is-asan }}
enable-ssh: ${{ inputs.enable-ssh }}
upload-out-gen-artifacts: true
secrets: inherit
clang-tidy:
uses: ./.github/workflows/pipeline-segment-electron-clang-tidy.yml
permissions:
contents: read
needs: build
with:
clang-tidy-runs-on: ${{ inputs.clang-tidy-runs-on }}
clang-tidy-container: ${{ inputs.clang-tidy-container }}
target-platform: ${{ inputs.target-platform }}
target-arch: ${{ inputs.target-arch }}
secrets: inherit
test:
uses: ./.github/workflows/pipeline-segment-electron-test.yml
permissions:
contents: read
issues: read
pull-requests: read
needs: build
with:
target-arch: ${{ inputs.target-arch }}
target-platform: ${{ inputs.target-platform }}
test-runs-on: ${{ inputs.test-runs-on }}
test-container: ${{ inputs.test-container }}
is-asan: ${{ inputs.is-asan }}
enable-ssh: ${{ inputs.enable-ssh }}
secrets: inherit

View File

@@ -27,7 +27,7 @@ jobs:
container: ${{ fromJSON(inputs.container) }}
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -43,7 +43,7 @@ jobs:
with:
target-platform: linux
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0

View File

@@ -27,7 +27,7 @@ jobs:
container: ${{ fromJSON(inputs.container) }}
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -85,4 +85,8 @@ jobs:
run: |
cd src/electron
node script/yarn.js tsc -p tsconfig.script.json
- name: Check GHA Workflows
shell: bash
run: |
cd src/electron
node script/copy-pipeline-segment-publish.js --check

View File

@@ -53,6 +53,11 @@ on:
required: false
type: boolean
default: false
upload-out-gen-artifacts:
description: 'Whether to upload the src/gen artifacts'
required: false
type: boolean
default: false
enable-ssh:
description: 'Enable SSH debugging'
required: false
@@ -95,7 +100,7 @@ jobs:
run: |
mkdir src
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -119,7 +124,7 @@ jobs:
run: df -h
- name: Setup Node.js/npm
if: ${{ inputs.target-platform == 'macos' }}
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238
with:
node-version: 22.21.x
cache: yarn
@@ -163,7 +168,7 @@ jobs:
if: ${{ inputs.target-platform == 'linux' }}
uses: ./src/electron/.github/actions/restore-cache-aks
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -201,6 +206,7 @@ jobs:
generate-symbols: '${{ inputs.generate-symbols }}'
upload-to-storage: '${{ inputs.upload-to-storage }}'
is-asan: '${{ inputs.is-asan }}'
upload-out-gen-artifacts: '${{ inputs.upload-out-gen-artifacts }}'
- name: Set GN_EXTRA_ARGS for MAS Build
if: ${{ inputs.target-platform == 'macos' && (inputs.target-variant == 'all' || inputs.target-variant == 'mas') }}
run: |

View File

@@ -0,0 +1,159 @@
name: Pipeline Segment - Electron Clang-Tidy
on:
workflow_call:
inputs:
target-platform:
type: string
description: 'Platform to run on, can be macos, win or linux'
required: true
target-arch:
type: string
description: 'Arch to build for, can be x64, arm64 or arm'
required: true
clang-tidy-runs-on:
type: string
description: 'What host to run clang-tidy on'
required: true
clang-tidy-container:
type: string
description: 'JSON container information for aks runs-on'
required: false
default: '{"image":null}'
permissions: {}
concurrency:
group: electron-clang-tidy-${{ inputs.target-platform }}-${{ inputs.target-arch }}-${{ github.ref }}
cancel-in-progress: true
env:
GCLIENT_EXTRA_ARGS: ${{ inputs.target-platform == 'macos' && '--custom-var=checkout_mac=True --custom-var=host_os=mac' || (inputs.target-platform == 'linux' && '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True' || '--custom-var=checkout_win=True') }}
ELECTRON_OUT_DIR: Default
jobs:
clang-tidy:
defaults:
run:
shell: bash
runs-on: ${{ inputs.clang-tidy-runs-on }}
permissions:
contents: read
container: ${{ fromJSON(inputs.clang-tidy-container) }}
env:
BUILD_TYPE: ${{ inputs.target-platform == 'macos' && 'darwin' || inputs.target-platform }}
TARGET_ARCH: ${{ inputs.target-arch }}
TARGET_PLATFORM: ${{ inputs.target-platform }}
ARTIFACT_KEY: ${{ inputs.target-platform == 'macos' && 'darwin' || inputs.target-platform }}_${{ inputs.target-arch }}
steps:
- name: Checkout Electron
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Cleanup disk space on macOS
if: ${{ inputs.target-platform == 'macos' }}
shell: bash
run: |
sudo mkdir -p $TMPDIR/del-target
tmpify() {
if [ -d "$1" ]; then
sudo mv "$1" $TMPDIR/del-target/$(echo $1|shasum -a 256|head -n1|cut -d " " -f1)
fi
}
tmpify /Library/Developer/CoreSimulator
tmpify ~/Library/Developer/CoreSimulator
sudo rm -rf $TMPDIR/del-target
- name: Check disk space after freeing up space
if: ${{ inputs.target-platform == 'macos' }}
run: df -h
- name: Set Chromium Git Cookie
uses: ./src/electron/.github/actions/set-chromium-cookie
- name: Install Build Tools
uses: ./src/electron/.github/actions/install-build-tools
- name: Enable windows toolchain
if: ${{ inputs.target-platform == 'win' }}
run: |
echo "ELECTRON_DEPOT_TOOLS_WIN_TOOLCHAIN=1" >> $GITHUB_ENV
- name: Generate DEPS Hash
run: |
node src/electron/script/generate-deps-hash.js
DEPSHASH=v1-src-cache-$(cat src/electron/.depshash)
echo "DEPSHASH=$DEPSHASH" >> $GITHUB_ENV
echo "CACHE_PATH=$DEPSHASH.tar" >> $GITHUB_ENV
- name: Restore src cache via AZCopy
if: ${{ inputs.target-platform == 'macos' }}
uses: ./src/electron/.github/actions/restore-cache-azcopy
with:
target-platform: ${{ inputs.target-platform }}
- name: Restore src cache via AKS
if: ${{ inputs.target-platform == 'linux' || inputs.target-platform == 'win' }}
uses: ./src/electron/.github/actions/restore-cache-aks
with:
target-platform: ${{ inputs.target-platform }}
- name: Run Electron Only Hooks
run: |
echo "solutions=[{'name':'src/electron','url':None,'deps_file':'DEPS','custom_vars':{'process_deps':False},'managed':False}]" > tmpgclient
if [ "${{ inputs.target-platform }}" = "win" ]; then
echo "solutions=[{'name':'src/electron','url':None,'deps_file':'DEPS','custom_vars':{'process_deps':False,'install_sysroot':False,'checkout_win':True},'managed':False}]" > tmpgclient
echo "target_os=['win']" >> tmpgclient
fi
e d gclient runhooks --gclientfile=tmpgclient
# Fix VS Toolchain
if [ "${{ inputs.target-platform }}" = "win" ]; then
rm -rf src/third_party/depot_tools/win_toolchain/vs_files
e d python3 src/build/vs_toolchain.py update --force
fi
- name: Regenerate DEPS Hash
run: |
(cd src/electron && git checkout .) && node src/electron/script/generate-deps-hash.js
echo "DEPSHASH=$(cat src/electron/.depshash)" >> $GITHUB_ENV
- name: Add CHROMIUM_BUILDTOOLS_PATH to env
run: echo "CHROMIUM_BUILDTOOLS_PATH=$(pwd)/src/buildtools" >> $GITHUB_ENV
- name: Checkout Electron
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Install Dependencies
uses: ./src/electron/.github/actions/install-dependencies
- name: Default GN gen
run: |
cd src/electron
git pack-refs
- name: Download Out Gen Artifacts
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
with:
name: out_gen_artifacts_${{ env.ARTIFACT_KEY }}
path: ./src/out/${{ env.ELECTRON_OUT_DIR }}/gen
- name: Add Clang problem matcher
shell: bash
run: echo "::add-matcher::src/electron/.github/problem-matchers/clang.json"
- name: Run Clang-Tidy
run: |
e init -f --root=$(pwd) --out=${ELECTRON_OUT_DIR} testing --target-cpu ${TARGET_ARCH}
export GN_EXTRA_ARGS="target_cpu=\"${TARGET_ARCH}\""
if [ "${{ inputs.target-platform }}" = "win" ]; then
export GN_EXTRA_ARGS="$GN_EXTRA_ARGS use_v8_context_snapshot=true target_os=\"win\""
fi
e build --only-gen
cd src/electron
node script/yarn.js lint:clang-tidy --jobs 8 --out-dir ../out/${ELECTRON_OUT_DIR}
- name: Remove Clang problem matcher
shell: bash
run: echo "::remove-matcher owner=clang::"
- name: Wait for active SSH sessions
if: always() && !cancelled()
shell: bash
run: |
while [ -f /var/.ssh-lock ]
do
sleep 60
done

View File

@@ -48,7 +48,7 @@ jobs:
container: ${{ fromJSON(inputs.check-container) }}
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -115,7 +115,7 @@ jobs:
- name: Add CHROMIUM_BUILDTOOLS_PATH to env
run: echo "CHROMIUM_BUILDTOOLS_PATH=$(pwd)/src/buildtools" >> $GITHUB_ENV
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0

View File

@@ -0,0 +1,242 @@
# AUTOGENERATED FILE - DO NOT EDIT MANUALLY
# ONLY EDIT .github/workflows/pipeline-segment-electron-build.yml
name: Pipeline Segment - Electron Build
on:
workflow_call:
inputs:
environment:
description: using the production or testing environment
required: false
type: string
target-platform:
type: string
description: Platform to run on, can be macos, win or linux
required: true
target-arch:
type: string
description: Arch to build for, can be x64, arm64, ia32 or arm
required: true
target-variant:
type: string
description: Variant to build for, no effect on non-macOS target platforms. Can
be darwin, mas or all.
default: all
build-runs-on:
type: string
description: What host to run the build
required: true
build-container:
type: string
description: JSON container information for aks runs-on
required: false
default: '{"image":null}'
is-release:
description: Whether this build job is a release job
required: true
type: boolean
default: false
gn-build-type:
description: The gn build type - testing or release
required: true
type: string
default: testing
generate-symbols:
description: Whether or not to generate symbols
required: true
type: boolean
default: false
upload-to-storage:
description: Whether or not to upload build artifacts to external storage
required: true
type: string
default: "0"
is-asan:
description: Building the Address Sanitizer (ASan) Linux build
required: false
type: boolean
default: false
upload-out-gen-artifacts:
description: Whether to upload the src/gen artifacts
required: false
type: boolean
default: false
enable-ssh:
description: Enable SSH debugging
required: false
type: boolean
default: false
permissions: {}
concurrency:
group: electron-build-${{ inputs.target-platform }}-${{ inputs.target-arch
}}-${{ inputs.target-variant }}-${{ inputs.is-asan }}-${{
github.ref_protected == true && github.run_id || github.ref }}
cancel-in-progress: ${{ github.ref_protected != true }}
env:
CHROMIUM_GIT_COOKIE: ${{ secrets.CHROMIUM_GIT_COOKIE }}
CHROMIUM_GIT_COOKIE_WINDOWS_STRING: ${{ secrets.CHROMIUM_GIT_COOKIE_WINDOWS_STRING }}
DD_API_KEY: ${{ secrets.DD_API_KEY }}
ELECTRON_ARTIFACTS_BLOB_STORAGE: ${{ secrets.ELECTRON_ARTIFACTS_BLOB_STORAGE }}
ELECTRON_RBE_JWT: ${{ secrets.ELECTRON_RBE_JWT }}
SUDOWOODO_EXCHANGE_URL: ${{ secrets.SUDOWOODO_EXCHANGE_URL }}
SUDOWOODO_EXCHANGE_TOKEN: ${{ secrets.SUDOWOODO_EXCHANGE_TOKEN }}
GCLIENT_EXTRA_ARGS: ${{ inputs.target-platform == 'macos' &&
'--custom-var=checkout_mac=True --custom-var=host_os=mac' ||
inputs.target-platform == 'win' && '--custom-var=checkout_win=True' ||
'--custom-var=checkout_arm=True --custom-var=checkout_arm64=True' }}
ELECTRON_OUT_DIR: Default
ACTIONS_STEP_DEBUG: ${{ secrets.ACTIONS_STEP_DEBUG }}
jobs:
build:
defaults:
run:
shell: bash
runs-on: ${{ inputs.build-runs-on }}
permissions:
attestations: write
contents: read
id-token: write
container: ${{ fromJSON(inputs.build-container) }}
environment: ${{ inputs.environment }}
env:
TARGET_ARCH: ${{ inputs.target-arch }}
TARGET_PLATFORM: ${{ inputs.target-platform }}
steps:
- name: Create src dir
run: |
mkdir src
- name: Checkout Electron
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup SSH Debugging
if: ${{ inputs.target-platform == 'macos' && (inputs.enable-ssh ||
env.ACTIONS_STEP_DEBUG == 'true') }}
uses: ./src/electron/.github/actions/ssh-debug
with:
tunnel: "true"
env:
CLOUDFLARE_TUNNEL_CERT: ${{ secrets.CLOUDFLARE_TUNNEL_CERT }}
CLOUDFLARE_TUNNEL_HOSTNAME: ${{ vars.CLOUDFLARE_TUNNEL_HOSTNAME }}
CLOUDFLARE_USER_CA_CERT: ${{ secrets.CLOUDFLARE_USER_CA_CERT }}
AUTHORIZED_USERS: ${{ secrets.SSH_DEBUG_AUTHORIZED_USERS }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Free up space (macOS)
if: ${{ inputs.target-platform == 'macos' }}
uses: ./src/electron/.github/actions/free-space-macos
- name: Check disk space after freeing up space
if: ${{ inputs.target-platform == 'macos' }}
run: df -h
- name: Setup Node.js/npm
if: ${{ inputs.target-platform == 'macos' }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238
with:
node-version: 22.21.x
cache: yarn
cache-dependency-path: src/electron/yarn.lock
- name: Install Dependencies
uses: ./src/electron/.github/actions/install-dependencies
- name: Install AZCopy
if: ${{ inputs.target-platform == 'macos' }}
run: brew install azcopy
- name: Set GN_EXTRA_ARGS for Linux
if: ${{ inputs.target-platform == 'linux' }}
run: >
if [ "${{ inputs.target-arch }}" = "arm" ]; then
if [ "${{ inputs.is-release }}" = true ]; then
GN_EXTRA_ARGS='target_cpu="arm" build_tflite_with_xnnpack=false symbol_level=1'
else
GN_EXTRA_ARGS='target_cpu="arm" build_tflite_with_xnnpack=false'
fi
elif [ "${{ inputs.target-arch }}" = "arm64" ]; then
GN_EXTRA_ARGS='target_cpu="arm64" fatal_linker_warnings=false enable_linux_installer=false'
elif [ "${{ inputs.is-asan }}" = true ]; then
GN_EXTRA_ARGS='is_asan=true'
fi
echo "GN_EXTRA_ARGS=$GN_EXTRA_ARGS" >> $GITHUB_ENV
- name: Set Chromium Git Cookie
uses: ./src/electron/.github/actions/set-chromium-cookie
- name: Install Build Tools
uses: ./src/electron/.github/actions/install-build-tools
- name: Generate DEPS Hash
run: |
node src/electron/script/generate-deps-hash.js
DEPSHASH=v1-src-cache-$(cat src/electron/.depshash)
echo "DEPSHASH=$DEPSHASH" >> $GITHUB_ENV
echo "CACHE_PATH=$DEPSHASH.tar" >> $GITHUB_ENV
- name: Restore src cache via AZCopy
if: ${{ inputs.target-platform != 'linux' }}
uses: ./src/electron/.github/actions/restore-cache-azcopy
with:
target-platform: ${{ inputs.target-platform }}
- name: Restore src cache via AKS
if: ${{ inputs.target-platform == 'linux' }}
uses: ./src/electron/.github/actions/restore-cache-aks
- name: Checkout Electron
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Fix Sync
if: ${{ inputs.target-platform != 'linux' }}
uses: ./src/electron/.github/actions/fix-sync
with:
target-platform: ${{ inputs.target-platform }}
env:
ELECTRON_DEPOT_TOOLS_DISABLE_LOG: true
- name: Init Build Tools
run: >
e init -f --root=$(pwd) --out=Default ${{ inputs.gn-build-type }}
--import ${{ inputs.gn-build-type }} --target-cpu ${{
inputs.target-arch }} --remote-build siso
- name: Run Electron Only Hooks
run: |
e d gclient runhooks --spec="solutions=[{'name':'src/electron','url':None,'deps_file':'DEPS','custom_vars':{'process_deps':False},'managed':False}]"
- name: Regenerate DEPS Hash
run: >
(cd src/electron && git checkout .) && node
src/electron/script/generate-deps-hash.js
echo "DEPSHASH=$(cat src/electron/.depshash)" >> $GITHUB_ENV
- name: Add CHROMIUM_BUILDTOOLS_PATH to env
run: echo "CHROMIUM_BUILDTOOLS_PATH=$(pwd)/src/buildtools" >> $GITHUB_ENV
- name: Free up space (macOS)
if: ${{ inputs.target-platform == 'macos' }}
uses: ./src/electron/.github/actions/free-space-macos
- name: Build Electron
if: ${{ inputs.target-platform != 'macos' || (inputs.target-variant == 'all' ||
inputs.target-variant == 'darwin') }}
uses: ./src/electron/.github/actions/build-electron
with:
target-arch: ${{ inputs.target-arch }}
target-platform: ${{ inputs.target-platform }}
artifact-platform: ${{ inputs.target-platform == 'macos' && 'darwin' ||
inputs.target-platform }}
is-release: ${{ inputs.is-release }}
generate-symbols: ${{ inputs.generate-symbols }}
upload-to-storage: ${{ inputs.upload-to-storage }}
is-asan: ${{ inputs.is-asan }}
upload-out-gen-artifacts: ${{ inputs.upload-out-gen-artifacts }}
- name: Set GN_EXTRA_ARGS for MAS Build
if: ${{ inputs.target-platform == 'macos' && (inputs.target-variant == 'all' ||
inputs.target-variant == 'mas') }}
run: |
echo "MAS_BUILD=true" >> $GITHUB_ENV
GN_EXTRA_ARGS='is_mas_build=true'
echo "GN_EXTRA_ARGS=$GN_EXTRA_ARGS" >> $GITHUB_ENV
- name: Build Electron (MAS)
if: ${{ inputs.target-platform == 'macos' && (inputs.target-variant == 'all' ||
inputs.target-variant == 'mas') }}
uses: ./src/electron/.github/actions/build-electron
with:
target-arch: ${{ inputs.target-arch }}
target-platform: ${{ inputs.target-platform }}
artifact-platform: mas
is-release: ${{ inputs.is-release }}
generate-symbols: ${{ inputs.generate-symbols }}
upload-to-storage: ${{ inputs.upload-to-storage }}
step-suffix: (mas)

View File

@@ -72,7 +72,7 @@ jobs:
cp $(which node) /mnt/runner-externals/node24/bin/
- name: Setup Node.js/npm
if: ${{ inputs.target-platform == 'win' }}
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238
with:
node-version: 22.21.x
- name: Add TCC permissions on macOS
@@ -119,7 +119,7 @@ jobs:
if: ${{ inputs.target-platform == 'macos' }}
run: sudo xcode-select --switch /Applications/Xcode_16.4.app
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -168,12 +168,12 @@ jobs:
echo "DISABLE_CRASH_REPORTER_TESTS=true" >> $GITHUB_ENV
echo "IS_ASAN=true" >> $GITHUB_ENV
- name: Download Generated Artifacts
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
with:
name: generated_artifacts_${{ env.ARTIFACT_KEY }}
path: ./generated_artifacts_${{ matrix.build-type }}_${{ inputs.target-arch }}
- name: Download Src Artifacts
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
with:
name: src_artifacts_${{ env.ARTIFACT_KEY }}
path: ./src_artifacts_${{ matrix.build-type }}_${{ inputs.target-arch }}
@@ -191,12 +191,18 @@ jobs:
run: |
cd src/out/Default
unzip -:o dist.zip
#- name: Import & Trust Self-Signed Codesigning Cert on MacOS
# if: ${{ inputs.target-platform == 'macos' && inputs.target-arch == 'x64' }}
# run: |
# sudo security authorizationdb write com.apple.trust-settings.admin allow
# cd src/electron
# ./script/codesign/generate-identity.sh
- name: Import & Trust Self-Signed Codesigning Cert on MacOS
if: ${{ inputs.target-platform == 'macos' }}
run: |
cd src/electron
./script/codesign/generate-identity.sh
- name: Sign Electron.app for macOS tests
if: ${{ inputs.target-platform == 'macos' }}
run: |
identity=$(src/electron/script/codesign/get-trusted-identity.sh)
if [ -n "$identity" ]; then
codesign -s "$identity" --deep --force src/out/Default/Electron.app
fi
- name: Run Electron Tests
shell: bash
@@ -266,7 +272,7 @@ jobs:
if: always() && !cancelled()
- name: Upload Test Artifacts
if: always() && !cancelled()
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f
with:
name: test_artifacts_${{ env.ARTIFACT_KEY }}_${{ matrix.shard }}
path: src/electron/spec/artifacts

View File

@@ -50,7 +50,7 @@ jobs:
container: ${{ fromJSON(inputs.test-container) }}
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -65,12 +65,12 @@ jobs:
- name: Install Dependencies
uses: ./src/electron/.github/actions/install-dependencies
- name: Download Generated Artifacts
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
with:
name: generated_artifacts_${{ env.BUILD_TYPE }}_${{ env.TARGET_ARCH }}
path: ./generated_artifacts_${{ env.BUILD_TYPE }}_${{ env.TARGET_ARCH }}
- name: Download Src Artifacts
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
with:
name: src_artifacts_linux_${{ env.TARGET_ARCH }}
path: ./src_artifacts_linux_${{ env.TARGET_ARCH }}
@@ -106,7 +106,7 @@ jobs:
container: ${{ fromJSON(inputs.test-container) }}
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -121,12 +121,12 @@ jobs:
- name: Install Dependencies
uses: ./src/electron/.github/actions/install-dependencies
- name: Download Generated Artifacts
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
with:
name: generated_artifacts_${{ env.BUILD_TYPE }}_${{ env.TARGET_ARCH }}
path: ./generated_artifacts_${{ env.BUILD_TYPE }}_${{ env.TARGET_ARCH }}
- name: Download Src Artifacts
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
with:
name: src_artifacts_linux_${{ env.TARGET_ARCH }}
path: ./src_artifacts_linux_${{ env.TARGET_ARCH }}

View File

@@ -32,7 +32,7 @@ jobs:
permissions: {}
steps:
- name: Generate GitHub App token
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.RELEASE_BOARD_GH_APP_CREDS }}
@@ -44,3 +44,35 @@ jobs:
project-number: 94
field: Status
field-value: ✅ Reviewed
pull-request-labeled-ai-pr:
name: ai-pr label added
if: github.event.label.name == 'ai-pr'
runs-on: ubuntu-latest
permissions: {}
steps:
- name: Generate GitHub App token
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
- name: Create comment
uses: actions-cool/issues-helper@e2ff99831a4f13625d35064e2b3dfe65c07a0396 # v3.7.5
with:
actions: 'create-comment'
token: ${{ steps.generate-token.outputs.token }}
issue-number: ${{ github.event.pull_request.number }}
body: |
<!-- ai-pr -->
*AI PR Detected*
Hello @${{ github.event.pull_request.user.login }}. Due to the high amount of AI spam PRs we receive, if a PR is detected to be majority AI-generated without disclosure and untested, we will automatically close the PR.
We welcome the use of AI tools, as long as the PR meets our quality standards and has clearly been built and tested. If you believe your PR was closed in error, we welcome you to resubmit. However, please read our [CONTRIBUTING.md](http://contributing.md/) carefully before reopening. Thanks for your contribution.
- name: Close the pull request
env:
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
GH_REPO: electron/electron
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
gh pr close "$PR_NUMBER"

View File

@@ -0,0 +1,71 @@
name: Rerun PR Apply Patches
on:
push:
branches:
- main
- '[1-9][0-9]-x-y'
paths:
- 'DEPS'
- 'patches/**'
permissions: {}
jobs:
rerun-apply-patches:
runs-on: ubuntu-latest
permissions:
actions: write
checks: read
contents: read
pull-requests: read
steps:
- name: Find PRs and Rerun Apply Patches
env:
GH_REPO: ${{ github.repository }}
GH_TOKEN: ${{ github.token }}
run: |
BRANCH="${GITHUB_REF#refs/heads/}"
# Find all open PRs targeting this branch
PRS=$(gh pr list --base "$BRANCH" --state open --limit 250 --json number)
echo "$PRS" | jq -c '.[]' | while read -r pr; do
PR_NUMBER=$(echo "$pr" | jq -r '.number')
echo "Processing PR #${PR_NUMBER}"
# Find the Apply Patches workflow check for this PR
CHECK=$(gh pr view "$PR_NUMBER" --json statusCheckRollup --jq '[.statusCheckRollup[] | select(.workflowName == "Apply Patches" and .name == "apply-patches")] | first')
if [ -z "$CHECK" ] || [ "$CHECK" = "null" ]; then
echo " No Apply Patches workflow found for PR #${PR_NUMBER}"
continue
fi
CONCLUSION=$(echo "$CHECK" | jq -r '.conclusion')
if [ "$CONCLUSION" = "SKIPPED" ]; then
echo " apply-patches job was skipped for PR #${PR_NUMBER} (no patches)"
continue
fi
LINK=$(echo "$CHECK" | jq -r '.detailsUrl')
# Extract the run ID from the link (format: .../runs/RUN_ID/job/JOB_ID)
RUN_ID=$(echo "$LINK" | grep -oE 'runs/[0-9]+' | cut -d'/' -f2)
if [ -z "$RUN_ID" ]; then
echo " Could not extract run ID from link: ${LINK}"
continue
fi
# Check if the workflow is currently in progress
RUN_STATUS=$(gh run view "$RUN_ID" --json status --jq '.status')
if [ "$RUN_STATUS" = "in_progress" ] || [ "$RUN_STATUS" = "queued" ] || [ "$RUN_STATUS" = "waiting" ]; then
echo " Workflow run ${RUN_ID} is ${RUN_STATUS}, cancelling..."
gh run cancel "$RUN_ID" --force
gh run watch "$RUN_ID"
fi
gh run rerun "$RUN_ID"
done

View File

@@ -13,6 +13,7 @@ permissions: read-all
jobs:
analysis:
name: Scorecards analysis
if: github.repository == 'electron/electron'
runs-on: ubuntu-latest
permissions:
# Needed to upload the results to code-scanning dashboard.
@@ -22,7 +23,7 @@ jobs:
steps:
- name: "Checkout code"
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
@@ -42,7 +43,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: SARIF file
path: results.sarif
@@ -50,6 +51,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@cf1bb45a277cb3c205638b2cd5c984db1c46a412 # v3.29.5
uses: github/codeql-action/upload-sarif@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v3.29.5
with:
sarif_file: results.sarif

View File

@@ -10,11 +10,12 @@ permissions: {}
jobs:
check-stable-prep-items:
name: Check Stable Prep Items
if: github.repository == 'electron/electron'
runs-on: ubuntu-latest
permissions: {}
steps:
- name: Generate GitHub App token
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.RELEASE_BOARD_GH_APP_CREDS }}

View File

@@ -9,11 +9,12 @@ permissions: {}
jobs:
stale:
if: github.repository == 'electron/electron'
runs-on: ubuntu-latest
permissions: {}
steps:
- name: Generate GitHub App token
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
@@ -33,11 +34,11 @@ jobs:
pending-repro:
runs-on: ubuntu-latest
permissions: {}
if: ${{ always() }}
if: ${{ always() && github.repository == 'electron/electron' }}
needs: stale
steps:
- name: Generate GitHub App token
uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
uses: electron/github-app-auth-action@e14e47722ed120360649d0789e25b9baece12725 # v2.0.0
id: generate-token
with:
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}

View File

@@ -0,0 +1,39 @@
name: Update Website Docs
on:
release:
types: [published]
permissions: {}
jobs:
update-website-docs:
name: Update Website Docs
runs-on: ubuntu-latest
environment: website-docs-updater
permissions:
contents: read
id-token: write # needed for secret-service-action
steps:
- name: Get GitHub App token
id: secret-service
uses: electron/secret-service-action@3476425e8b30555aac15b1b7096938e254b0e155 # v1.0.0
- name: Check if this release is the latest
id: check-if-latest-release
env:
GH_REPO: electron/electron
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
LATEST_RELEASE_TAG="$(gh release view --json tagName --jq '.tagName')"
if [ "$LATEST_RELEASE_TAG" = "${GITHUB_REF#refs/tags/}" ]; then
echo "isLatestRelease=true" >> $GITHUB_OUTPUT
else
echo "isLatestRelease=false" >> $GITHUB_OUTPUT
fi
- name: Trigger website docs update
if: ${{ steps.check-if-latest-release.outputs.isLatestRelease }}
env:
GH_REPO: electron/website
GH_TOKEN: ${{ fromJSON(steps.secret-service.outputs.secrets).WEBSITE_DOCS_UPDATER_APP_TOKEN }}
run: |
gh workflow run update-docs.yml -f sha=$GITHUB_SHA

View File

@@ -6,7 +6,7 @@ on:
build-image-sha:
type: string
description: 'SHA for electron/build image'
default: '933c7d6ff6802706875270bec2e3c891cf8add3f'
default: 'a82b87d7a4f5ff0cab61405f8151ac4cf4942aeb'
required: true
upload-to-storage:
description: 'Uploads to Azure storage'
@@ -22,6 +22,7 @@ permissions: {}
jobs:
checkout-windows:
if: github.repository == 'electron/electron'
runs-on: electron-arc-centralus-linux-amd64-32core
permissions:
contents: read
@@ -40,7 +41,7 @@ jobs:
build-image-sha: ${{ inputs.build-image-sha }}
steps:
- name: Checkout Electron
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
path: src/electron
fetch-depth: 0
@@ -51,9 +52,11 @@ jobs:
target-platform: win
publish-x64-win:
uses: ./.github/workflows/pipeline-segment-electron-build.yml
uses: ./.github/workflows/pipeline-segment-electron-publish.yml
permissions:
attestations: write
contents: read
id-token: write
needs: checkout-windows
with:
environment: production-release
@@ -67,9 +70,11 @@ jobs:
secrets: inherit
publish-arm64-win:
uses: ./.github/workflows/pipeline-segment-electron-build.yml
uses: ./.github/workflows/pipeline-segment-electron-publish.yml
permissions:
attestations: write
contents: read
id-token: write
needs: checkout-windows
with:
environment: production-release
@@ -83,9 +88,11 @@ jobs:
secrets: inherit
publish-x86-win:
uses: ./.github/workflows/pipeline-segment-electron-build.yml
uses: ./.github/workflows/pipeline-segment-electron-publish.yml
permissions:
attestations: write
contents: read
id-token: write
needs: checkout-windows
with:
environment: production-release

View File

@@ -321,12 +321,33 @@ grit("resources") {
"grit/electron_resources.h",
"electron_resources.pak",
]
if (translate_genders) {
outputs += [
"electron_resources_MASCULINE.pak",
"electron_resources_FEMININE.pak",
"electron_resources_NEUTER.pak",
]
}
foreach(locale, all_chrome_locales) {
outputs += [ "electron_strings_$locale.pak" ]
if (translate_genders) {
outputs += [
"electron_strings_${locale}_MASCULINE.pak",
"electron_strings_${locale}_FEMININE.pak",
"electron_strings_${locale}_NEUTER.pak",
]
}
}
# Mojo manifest overlays are generated.
grit_flags = [
"-E",
"target_gen_dir=" + rebase_path(target_gen_dir, root_build_dir),
]
if (translate_genders) {
grit_flags += [ "--translate-genders" ]
}
deps = [ ":copy_shell_devtools_discovery_page" ]
@@ -450,6 +471,7 @@ source_set("electron_lib") {
"//chrome:strings",
"//chrome/app:command_ids",
"//chrome/app/resources:platform_locale_settings",
"//chrome/common/notifications",
"//components/autofill/core/common:features",
"//components/certificate_transparency",
"//components/compose:buildflags",
@@ -502,6 +524,7 @@ source_set("electron_lib") {
"//third_party/blink/public/platform/media",
"//third_party/boringssl",
"//third_party/electron_node:libnode",
"//third_party/highway:libhwy",
"//third_party/inspector_protocol:crdtp",
"//third_party/leveldatabase",
"//third_party/libyuv",
@@ -617,6 +640,7 @@ source_set("electron_lib") {
"SecurityInterface.framework",
"ServiceManagement.framework",
"StoreKit.framework",
"UserNotifications.framework",
]
weak_frameworks = [ "QuickLookThumbnailing.framework" ]

4
DEPS
View File

@@ -2,9 +2,9 @@ gclient_gn_args_from = 'src'
vars = {
'chromium_version':
'145.0.7604.0',
'146.0.7650.0',
'node_version':
'v24.11.1',
'v24.13.0',
'nan_version':
'675cefebca42410733da8a454c8d9391fcebfbc2',
'squirrel.mac_version':

View File

@@ -2,7 +2,7 @@ is_electron_build = true
root_extra_deps = [ "//electron" ]
# Registry of NMVs --> https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json
node_module_version = 143
node_module_version = 145
v8_promise_internal_field_count = 1
v8_embedder_string = "-electron.0"

View File

@@ -183,6 +183,7 @@ template("electron_paks") {
"${root_gen_dir}/components/strings/components_locale_settings_",
"${root_gen_dir}/components/strings/components_strings_",
"${root_gen_dir}/device/bluetooth/strings/bluetooth_strings_",
"${root_gen_dir}/electron/electron_strings_",
"${root_gen_dir}/extensions/strings/extensions_strings_",
"${root_gen_dir}/services/strings/services_strings_",
"${root_gen_dir}/third_party/blink/public/strings/blink_strings_",
@@ -199,6 +200,7 @@ template("electron_paks") {
"//components/strings:components_locale_settings",
"//components/strings:components_strings",
"//device/bluetooth/strings",
"//electron:resources",
"//extensions/strings",
"//services/strings",
"//third_party/blink/public/strings",

View File

@@ -9,10 +9,189 @@
<emit emit_type='prepend'></emit>
</output>
<output filename="electron_resources.pak" type="data_package" />
<output filename="electron_strings_af.pak" type="data_package" lang="af" />
<output filename="electron_strings_am.pak" type="data_package" lang="am" />
<output filename="electron_strings_ar.pak" type="data_package" lang="ar" />
<output filename="electron_strings_as.pak" type="data_package" lang="as" />
<output filename="electron_strings_az.pak" type="data_package" lang="az" />
<output filename="electron_strings_be.pak" type="data_package" lang="be" />
<output filename="electron_strings_bg.pak" type="data_package" lang="bg" />
<output filename="electron_strings_bn.pak" type="data_package" lang="bn" />
<output filename="electron_strings_bs.pak" type="data_package" lang="bs" />
<output filename="electron_strings_ca.pak" type="data_package" lang="ca" />
<output filename="electron_strings_cs.pak" type="data_package" lang="cs" />
<output filename="electron_strings_cy.pak" type="data_package" lang="cy" />
<output filename="electron_strings_da.pak" type="data_package" lang="da" />
<output filename="electron_strings_de.pak" type="data_package" lang="de" />
<output filename="electron_strings_el.pak" type="data_package" lang="el" />
<output filename="electron_strings_en-GB.pak" type="data_package" lang="en-GB" />
<output filename="electron_strings_en-US.pak" type="data_package" lang="en" />
<output filename="electron_strings_es-419.pak" type="data_package" lang="es-419" />
<output filename="electron_strings_es.pak" type="data_package" lang="es" />
<output filename="electron_strings_et.pak" type="data_package" lang="et" />
<output filename="electron_strings_eu.pak" type="data_package" lang="eu" />
<output filename="electron_strings_fa.pak" type="data_package" lang="fa" />
<output filename="electron_strings_fi.pak" type="data_package" lang="fi" />
<output filename="electron_strings_fil.pak" type="data_package" lang="fil" />
<output filename="electron_strings_fr-CA.pak" type="data_package" lang="fr-CA" />
<output filename="electron_strings_fr.pak" type="data_package" lang="fr" />
<output filename="electron_strings_gl.pak" type="data_package" lang="gl" />
<output filename="electron_strings_gu.pak" type="data_package" lang="gu" />
<output filename="electron_strings_hi.pak" type="data_package" lang="hi" />
<output filename="electron_strings_hr.pak" type="data_package" lang="hr" />
<output filename="electron_strings_hu.pak" type="data_package" lang="hu" />
<output filename="electron_strings_hy.pak" type="data_package" lang="hy" />
<output filename="electron_strings_id.pak" type="data_package" lang="id" />
<output filename="electron_strings_is.pak" type="data_package" lang="is" />
<output filename="electron_strings_it.pak" type="data_package" lang="it" />
<output filename="electron_strings_he.pak" type="data_package" lang="he" />
<output filename="electron_strings_ja.pak" type="data_package" lang="ja" />
<output filename="electron_strings_ka.pak" type="data_package" lang="ka" />
<output filename="electron_strings_kk.pak" type="data_package" lang="kk" />
<output filename="electron_strings_km.pak" type="data_package" lang="km" />
<output filename="electron_strings_kn.pak" type="data_package" lang="kn" />
<output filename="electron_strings_ko.pak" type="data_package" lang="ko" />
<output filename="electron_strings_ky.pak" type="data_package" lang="ky" />
<output filename="electron_strings_lo.pak" type="data_package" lang="lo" />
<output filename="electron_strings_lt.pak" type="data_package" lang="lt" />
<output filename="electron_strings_lv.pak" type="data_package" lang="lv" />
<output filename="electron_strings_mk.pak" type="data_package" lang="mk" />
<output filename="electron_strings_ml.pak" type="data_package" lang="ml" />
<output filename="electron_strings_mn.pak" type="data_package" lang="mn" />
<output filename="electron_strings_mr.pak" type="data_package" lang="mr" />
<output filename="electron_strings_ms.pak" type="data_package" lang="ms" />
<output filename="electron_strings_my.pak" type="data_package" lang="my" />
<output filename="electron_strings_ne.pak" type="data_package" lang="ne" />
<output filename="electron_strings_nl.pak" type="data_package" lang="nl" />
<!-- The translation console uses 'no' for Norwegian Bokmål. It should
be 'nb'. -->
<output filename="electron_strings_nb.pak" type="data_package" lang="no" />
<output filename="electron_strings_or.pak" type="data_package" lang="or" />
<output filename="electron_strings_pa.pak" type="data_package" lang="pa" />
<output filename="electron_strings_pl.pak" type="data_package" lang="pl" />
<output filename="electron_strings_pt-BR.pak" type="data_package" lang="pt-BR" />
<output filename="electron_strings_pt-PT.pak" type="data_package" lang="pt-PT" />
<output filename="electron_strings_ro.pak" type="data_package" lang="ro" />
<output filename="electron_strings_ru.pak" type="data_package" lang="ru" />
<output filename="electron_strings_si.pak" type="data_package" lang="si" />
<output filename="electron_strings_sk.pak" type="data_package" lang="sk" />
<output filename="electron_strings_sl.pak" type="data_package" lang="sl" />
<output filename="electron_strings_sq.pak" type="data_package" lang="sq" />
<output filename="electron_strings_sr-Latn.pak" type="data_package" lang="sr-Latn" />
<output filename="electron_strings_sr.pak" type="data_package" lang="sr" />
<output filename="electron_strings_sv.pak" type="data_package" lang="sv" />
<output filename="electron_strings_sw.pak" type="data_package" lang="sw" />
<output filename="electron_strings_ta.pak" type="data_package" lang="ta" />
<output filename="electron_strings_te.pak" type="data_package" lang="te" />
<output filename="electron_strings_th.pak" type="data_package" lang="th" />
<output filename="electron_strings_tr.pak" type="data_package" lang="tr" />
<output filename="electron_strings_uk.pak" type="data_package" lang="uk" />
<output filename="electron_strings_ur.pak" type="data_package" lang="ur" />
<output filename="electron_strings_uz.pak" type="data_package" lang="uz" />
<output filename="electron_strings_vi.pak" type="data_package" lang="vi" />
<output filename="electron_strings_zh-CN.pak" type="data_package" lang="zh-CN" />
<output filename="electron_strings_zh-HK.pak" type="data_package" lang="zh-HK" />
<output filename="electron_strings_zh-TW.pak" type="data_package" lang="zh-TW" />
<output filename="electron_strings_zu.pak" type="data_package" lang="zu" />
<!-- CARO TODO: Pseudolocales? -->
<output filename="electron_strings_ar-XB.pak" type="data_package" lang="ar-XB" />
<output filename="electron_strings_en-XA.pak" type="data_package" lang="en-XA" />
</outputs>
<release seq="1" allow_pseudo="false">
<translations>
<file path="translations/electron_strings_af.xtb" lang="af" />
<file path="translations/electron_strings_am.xtb" lang="am" />
<file path="translations/electron_strings_ar.xtb" lang="ar" />
<file path="translations/electron_strings_as.xtb" lang="as" />
<file path="translations/electron_strings_az.xtb" lang="az" />
<file path="translations/electron_strings_be.xtb" lang="be" />
<file path="translations/electron_strings_bg.xtb" lang="bg" />
<file path="translations/electron_strings_bn.xtb" lang="bn" />
<file path="translations/electron_strings_bs.xtb" lang="bs" />
<file path="translations/electron_strings_ca.xtb" lang="ca" />
<file path="translations/electron_strings_cs.xtb" lang="cs" />
<file path="translations/electron_strings_cy.xtb" lang="cy" />
<file path="translations/electron_strings_da.xtb" lang="da" />
<file path="translations/electron_strings_de.xtb" lang="de" />
<file path="translations/electron_strings_el.xtb" lang="el" />
<file path="translations/electron_strings_en-GB.xtb" lang="en-GB" />
<file path="translations/electron_strings_es-419.xtb" lang="es-419" />
<file path="translations/electron_strings_es.xtb" lang="es" />
<file path="translations/electron_strings_et.xtb" lang="et" />
<file path="translations/electron_strings_eu.xtb" lang="eu" />
<file path="translations/electron_strings_fa.xtb" lang="fa" />
<file path="translations/electron_strings_fi.xtb" lang="fi" />
<file path="translations/electron_strings_fil.xtb" lang="fil" />
<file path="translations/electron_strings_fr-CA.xtb" lang="fr-CA" />
<file path="translations/electron_strings_fr.xtb" lang="fr" />
<file path="translations/electron_strings_gl.xtb" lang="gl" />
<file path="translations/electron_strings_gu.xtb" lang="gu" />
<file path="translations/electron_strings_hi.xtb" lang="hi" />
<file path="translations/electron_strings_hr.xtb" lang="hr" />
<file path="translations/electron_strings_hu.xtb" lang="hu" />
<file path="translations/electron_strings_hy.xtb" lang="hy" />
<file path="translations/electron_strings_id.xtb" lang="id" />
<file path="translations/electron_strings_is.xtb" lang="is" />
<file path="translations/electron_strings_it.xtb" lang="it" />
<!-- The translation console uses 'iw' for Hebrew, but we use 'he'. -->
<file path="translations/electron_strings_iw.xtb" lang="he" />
<file path="translations/electron_strings_ja.xtb" lang="ja" />
<file path="translations/electron_strings_ka.xtb" lang="ka" />
<file path="translations/electron_strings_kk.xtb" lang="kk" />
<file path="translations/electron_strings_km.xtb" lang="km" />
<file path="translations/electron_strings_kn.xtb" lang="kn" />
<file path="translations/electron_strings_ko.xtb" lang="ko" />
<file path="translations/electron_strings_ky.xtb" lang="ky" />
<file path="translations/electron_strings_lo.xtb" lang="lo" />
<file path="translations/electron_strings_lt.xtb" lang="lt" />
<file path="translations/electron_strings_lv.xtb" lang="lv" />
<file path="translations/electron_strings_mk.xtb" lang="mk" />
<file path="translations/electron_strings_ml.xtb" lang="ml" />
<file path="translations/electron_strings_mn.xtb" lang="mn" />
<file path="translations/electron_strings_mr.xtb" lang="mr" />
<file path="translations/electron_strings_ms.xtb" lang="ms" />
<file path="translations/electron_strings_my.xtb" lang="my" />
<file path="translations/electron_strings_ne.xtb" lang="ne" />
<file path="translations/electron_strings_nl.xtb" lang="nl" />
<file path="translations/electron_strings_no.xtb" lang="no" />
<file path="translations/electron_strings_or.xtb" lang="or" />
<file path="translations/electron_strings_pa.xtb" lang="pa" />
<file path="translations/electron_strings_pl.xtb" lang="pl" />
<file path="translations/electron_strings_pt-BR.xtb" lang="pt-BR" />
<file path="translations/electron_strings_pt-PT.xtb" lang="pt-PT" />
<file path="translations/electron_strings_ro.xtb" lang="ro" />
<file path="translations/electron_strings_ru.xtb" lang="ru" />
<file path="translations/electron_strings_si.xtb" lang="si" />
<file path="translations/electron_strings_sk.xtb" lang="sk" />
<file path="translations/electron_strings_sl.xtb" lang="sl" />
<file path="translations/electron_strings_sq.xtb" lang="sq" />
<file path="translations/electron_strings_sr-Latn.xtb" lang="sr-Latn" />
<file path="translations/electron_strings_sr.xtb" lang="sr" />
<file path="translations/electron_strings_sv.xtb" lang="sv" />
<file path="translations/electron_strings_sw.xtb" lang="sw" />
<file path="translations/electron_strings_ta.xtb" lang="ta" />
<file path="translations/electron_strings_te.xtb" lang="te" />
<file path="translations/electron_strings_th.xtb" lang="th" />
<file path="translations/electron_strings_tr.xtb" lang="tr" />
<file path="translations/electron_strings_uk.xtb" lang="uk" />
<file path="translations/electron_strings_ur.xtb" lang="ur" />
<file path="translations/electron_strings_uz.xtb" lang="uz" />
<file path="translations/electron_strings_vi.xtb" lang="vi" />
<file path="translations/electron_strings_zh-CN.xtb" lang="zh-CN" />
<file path="translations/electron_strings_zh-HK.xtb" lang="zh-HK" />
<file path="translations/electron_strings_zh-TW.xtb" lang="zh-TW" />
<file path="translations/electron_strings_zu.xtb" lang="zu" />
</translations>
<release seq="1">
<messages fallback_to_english="true">
<message name="IDS_MAC_NOTIFICATION_INLINE_REPLY_BUTTON" desc="Label for the inline reply button inside a macOS notification.">
Reply
</message>
<message name="IDS_MAC_NOTIFICATION_SHOW_BUTTON" desc="Label for the default action button inside a macOS notification.">
Show
</message>
</messages>
<includes>
<include name="IDR_CONTENT_SHELL_DEVTOOLS_DISCOVERY_PAGE" file="${target_gen_dir}/shell_devtools_discovery_page.html" use_base_dir="false" type="BINDATA" />
</includes>
</release>
</grit>
</grit>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="af">
<translation id="2727175239389218057">Antwoord</translation>
<translation id="5300589172476337783">Wys</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="am">
<translation id="2727175239389218057">ምላሽ ስጥ</translation>
<translation id="5300589172476337783">አሳይ</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="ar">
<translation id="2727175239389218057">الرّد</translation>
<translation id="5300589172476337783">عرض</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="as">
<translation id="2727175239389218057">প্ৰত্যুত্তৰ দিয়ক</translation>
<translation id="5300589172476337783">দেখুৱাওক</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="az">
<translation id="2727175239389218057">Cavablayın</translation>
<translation id="5300589172476337783">Göstərin</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="be">
<translation id="2727175239389218057">Адказаць</translation>
<translation id="5300589172476337783">Паказаць</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="bg">
<translation id="2727175239389218057">Отговор</translation>
<translation id="5300589172476337783">Показване</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="bn">
<translation id="2727175239389218057">উত্তর দিন</translation>
<translation id="5300589172476337783">দেখান</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="bs">
<translation id="2727175239389218057">Odgovori</translation>
<translation id="5300589172476337783">Prikaži</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="ca">
<translation id="2727175239389218057">Respon</translation>
<translation id="5300589172476337783">Mostra</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="cs">
<translation id="2727175239389218057">Odpovědět</translation>
<translation id="5300589172476337783">Zobrazit</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="cy">
<translation id="2727175239389218057">Ateb</translation>
<translation id="5300589172476337783">Arddangos</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="da">
<translation id="2727175239389218057">Svar</translation>
<translation id="5300589172476337783">Vis</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="de">
<translation id="2727175239389218057">Antworten</translation>
<translation id="5300589172476337783">Anzeigen</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="el">
<translation id="2727175239389218057">Απάντηση</translation>
<translation id="5300589172476337783">Εμφάνιση</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="en-GB">
<translation id="2727175239389218057">Reply</translation>
<translation id="5300589172476337783">Show</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="es-419">
<translation id="2727175239389218057">Responder</translation>
<translation id="5300589172476337783">Mostrar</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="es">
<translation id="2727175239389218057">Responder</translation>
<translation id="5300589172476337783">Mostrar</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="et">
<translation id="2727175239389218057">Vasta</translation>
<translation id="5300589172476337783">Kuva</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="eu">
<translation id="2727175239389218057">Erantzun</translation>
<translation id="5300589172476337783">Erakutsi</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="fa">
<translation id="2727175239389218057">پاسخ دادن</translation>
<translation id="5300589172476337783">نمایش</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="fi">
<translation id="2727175239389218057">Vastaa</translation>
<translation id="5300589172476337783">Näytä</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="fil">
<translation id="2727175239389218057">Sumagot</translation>
<translation id="5300589172476337783">Ipakita</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="fr-CA">
<translation id="2727175239389218057">Répondre</translation>
<translation id="5300589172476337783">Afficher</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="fr">
<translation id="2727175239389218057">Répondre</translation>
<translation id="5300589172476337783">Afficher</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="gl">
<translation id="2727175239389218057">Responder</translation>
<translation id="5300589172476337783">Mostrar</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="gu">
<translation id="2727175239389218057">જવાબ આપો</translation>
<translation id="5300589172476337783">બતાવો</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="hi">
<translation id="2727175239389218057">जवाब दें</translation>
<translation id="5300589172476337783">दिखाएं</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="hr">
<translation id="2727175239389218057">Odgovori</translation>
<translation id="5300589172476337783">Prikaži</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="hu">
<translation id="2727175239389218057">Válasz</translation>
<translation id="5300589172476337783">Megjelenítés</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="hy">
<translation id="2727175239389218057">Պատասխանել</translation>
<translation id="5300589172476337783">Ցույց տալ</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="id">
<translation id="2727175239389218057">Balas</translation>
<translation id="5300589172476337783">Tampilkan</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="is">
<translation id="2727175239389218057">Svara</translation>
<translation id="5300589172476337783">Sýna</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="it">
<translation id="2727175239389218057">Rispondi</translation>
<translation id="5300589172476337783">Mostra</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="iw">
<translation id="2727175239389218057">מענה</translation>
<translation id="5300589172476337783">הצגה</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="ja">
<translation id="2727175239389218057">返信</translation>
<translation id="5300589172476337783">表示</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="ka">
<translation id="2727175239389218057">პასუხი</translation>
<translation id="5300589172476337783">ჩვენება</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="kk">
<translation id="2727175239389218057">Жауап беру</translation>
<translation id="5300589172476337783">Көрсету</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="km">
<translation id="2727175239389218057">ឆ្លើយតប</translation>
<translation id="5300589172476337783">បង្ហាញ</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="kn">
<translation id="2727175239389218057">ಪ್ರತ್ಯುತ್ತರಿಸಿ</translation>
<translation id="5300589172476337783">ತೋರಿಸಿ</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="ko">
<translation id="2727175239389218057">답장</translation>
<translation id="5300589172476337783">표시</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="ky">
<translation id="2727175239389218057">Жооп берүү</translation>
<translation id="5300589172476337783">Көрсөтүү</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="lo">
<translation id="2727175239389218057">ຕອບກັບ</translation>
<translation id="5300589172476337783">ສະ​ແດງ​</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="lt">
<translation id="2727175239389218057">Atsakyti</translation>
<translation id="5300589172476337783">Rodyti</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="lv">
<translation id="2727175239389218057">Atbildēt</translation>
<translation id="5300589172476337783">Rādīt</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="mk">
<translation id="2727175239389218057">Одговори</translation>
<translation id="5300589172476337783">Прикажи</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="ml">
<translation id="2727175239389218057">മറുപടി നൽകുക</translation>
<translation id="5300589172476337783">കാണിക്കുക</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="mn">
<translation id="2727175239389218057">Хариулах</translation>
<translation id="5300589172476337783">Харуулах</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="mr">
<translation id="2727175239389218057">उत्तर द्या</translation>
<translation id="5300589172476337783">दर्शवा</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="ms">
<translation id="2727175239389218057">Balas</translation>
<translation id="5300589172476337783">Paparkan</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="my">
<translation id="2727175239389218057">စာပြန်ရန်</translation>
<translation id="5300589172476337783">ပြရန်</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="ne">
<translation id="2727175239389218057">जवाफ दिनुहोस्</translation>
<translation id="5300589172476337783">देखाउनुहोस्</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="nl">
<translation id="2727175239389218057">Reageren</translation>
<translation id="5300589172476337783">Tonen</translation>
</translationbundle>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<!DOCTYPE translationbundle>
<translationbundle lang="no">
<translation id="2727175239389218057">Svar</translation>
<translation id="5300589172476337783">Vis</translation>
</translationbundle>

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