Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: electron/electron
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v34.3.3
Choose a base ref
...
head repository: electron/electron
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v35.0.0
Choose a head ref

Commits on Oct 15, 2024

  1. chore: bump chromium to 131.0.6778.0 (main) (#44251)

    * chore: bump chromium in DEPS to 131.0.6778.0
    
    * 5803393: [UI] Add alias for mojo version of `MenuSourceType`
    
    https://chromium-review.googlesource.com/c/chromium/src/+/5803393
    
    ---------
    
    Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
    Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
    electron-roller[bot] and jkleinsc authored Oct 15, 2024
    Copy the full SHA
    ef84f13 View commit details
  2. fix: -Wunsafe-buffer-usage warnings in TaskbarHost::SetThumbarButtons…

    …() (#44238)
    
    * fix: -Wunsafe-buffer-usage warnings in TaskbarHost::SetThumbarButtons()
    
    * fixup! fix: -Wunsafe-buffer-usage warning in ChunkedDataPipeReadableStream (#44211)
    ckerr authored Oct 15, 2024
    Copy the full SHA
    b5acebf View commit details

Commits on Oct 16, 2024

  1. fix: ensure utilityProcess only emits one 'exit' event (#44243)

    fix: ensure utilityProcess only emits one exit
    codebytere authored Oct 16, 2024
    Copy the full SHA
    df45474 View commit details
  2. Copy the full SHA
    af6e2fb View commit details
  3. Copy the full SHA
    bd4ea5b View commit details
  4. fix: Linux crash after webContents.print() with no parent window (#…

    …44246)
    
    fix: Linux crash after print with no parent window
    codebytere authored Oct 16, 2024
    Copy the full SHA
    cbe3cb7 View commit details
  5. Copy the full SHA
    67775d1 View commit details
  6. build: use new Issue Template types in templates (#44224)

    * build: use new Issue Template types in templates
    
    * build: restore existing labels for now
    codebytere authored Oct 16, 2024
    Copy the full SHA
    d386664 View commit details

Commits on Oct 17, 2024

  1. chore: bump chromium to 132.0.6779.0 (main) (#44273)

    * chore: bump chromium in DEPS to 132.0.6779.0
    
    * chore: update patches
    
    * 5904951: controlledframe: Disable File System Access for <controlledframe>
    
    https://chromium-review.googlesource.com/c/chromium/src/+/5904951
    
    ---------
    
    Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
    Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
    electron-roller[bot] and jkleinsc authored Oct 17, 2024
    Copy the full SHA
    d801bad View commit details
  2. ci: use Node.js 20 in Bake AppVeyor Image workflow (#44290)

    * ci: use Node.js 20 in Bake AppVeyor Image workflow
    
    * chore: add bake workflow to CODEOWNERS
    dsanders11 authored Oct 17, 2024
    Copy the full SHA
    cbc12d6 View commit details
  3. docs: removed AngularJS Batarang from the Devtool Extension Support (#…

    …44261)
    
    docs: update Devtool Extension Support
    mayur9210 authored Oct 17, 2024
    Copy the full SHA
    44c398f View commit details
  4. Copy the full SHA
    9280add View commit details
  5. build: fix main printing patch conflict (#44302)

    build: update patches
    VerteDinde authored Oct 17, 2024
    Copy the full SHA
    ac09d11 View commit details
  6. build(deps-dev): bump remark-cli from 10.0.0 to 12.0.1 (#44258)

    Bumps [remark-cli](https://github.com/remarkjs/remark) from 10.0.0 to 12.0.1.
    - [Release notes](https://github.com/remarkjs/remark/releases)
    - [Changelog](https://github.com/remarkjs/remark/blob/main/changelog.md)
    - [Commits](https://github.com/remarkjs/remark/compare/10.0.0...remark-cli@12.0.1)
    
    ---
    updated-dependencies:
    - dependency-name: remark-cli
      dependency-type: direct:development
      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>
    dependabot[bot] authored Oct 17, 2024
    Copy the full SHA
    2b0624f View commit details

Commits on Oct 18, 2024

  1. chore: bump chromium to 132.0.6781.0 (main) (#44301)

    * chore: bump chromium in DEPS to 132.0.6781.0
    
    * chore: update patches
    
    * 5933789: [MappableSI] Remove kill-switch from RenderableGpuMemoryBufferVideoFramePool.
    
    https://chromium-review.googlesource.com/c/chromium/src/+/5933789
    
    * 5938992: Reland: Remove `force_guest_profile` param from context getters.
    
    https://chromium-review.googlesource.com/c/chromium/src/+/5938992
    
    * 5928743: spanification: Add WTF::String::FromUTF8(span<>) overloads
    
    https://chromium-review.googlesource.com/c/chromium/src/+/5928743
    
    * 5898835: Update windows SDK version to 10.0.26100.1742
    
    https://chromium-review.googlesource.com/c/chromium/src/+/5898835
    
    ---------
    
    Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
    Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
    electron-roller[bot] and jkleinsc authored Oct 18, 2024
    Copy the full SHA
    089f233 View commit details
  2. build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.3 (#44173)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.0 to 4.4.3.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@5076954...b4b15b8)
    
    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      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>
    dependabot[bot] authored Oct 18, 2024
    Copy the full SHA
    6c6e5c0 View commit details
  3. build: update appveyor image to latest version (#44311)

    Co-authored-by: electron-appveyor-updater[bot] <161660339+electron-appveyor-updater[bot]@users.noreply.github.com>
    electron-appveyor-updater[bot] authored Oct 18, 2024
    Copy the full SHA
    456aac1 View commit details
  4. chore: bump chromium to 132.0.6783.0 (main) (#44307)

    * chore: bump chromium in DEPS to 132.0.6782.0
    
    * chore: bump chromium in DEPS to 132.0.6783.0
    
    * chore: update patches
    
    ---------
    
    Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
    Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
    electron-roller[bot] and jkleinsc authored Oct 18, 2024
    Copy the full SHA
    738533d View commit details
  5. fix: respect setAlwaysOnTop before showInactive on Linux under X11 (#…

    …44078)
    
    Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
    cptpcrd and jkleinsc authored Oct 18, 2024
    Copy the full SHA
    35aeab6 View commit details
  6. feat: expose frame & move properties to console-message event object (#…

    …43617)
    
    * feat: expose frame on console-message event
    
    refactor: use property names similar to ServiceWorker's console-message event
    
    refactor: don't use deprecated params in tests
    
    doc: console-message breaking change
    
    chore: add deprecation warning
    
    docs: restore deprecated argument descriptions
    
    * move console-message deprecations to v34
    
    ---------
    
    Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
    samuelmaddock and jkleinsc authored Oct 18, 2024
    Copy the full SHA
    87bd665 View commit details

Commits on Oct 20, 2024

  1. build(deps-dev): bump webpack from 5.94.0 to 5.95.0 (#44309)

    Bumps [webpack](https://github.com/webpack/webpack) from 5.94.0 to 5.95.0.
    - [Release notes](https://github.com/webpack/webpack/releases)
    - [Commits](webpack/webpack@v5.94.0...v5.95.0)
    
    ---
    updated-dependencies:
    - dependency-name: webpack
      dependency-type: direct:development
      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>
    dependabot[bot] authored Oct 20, 2024
    Copy the full SHA
    2cf59b3 View commit details

Commits on Oct 21, 2024

  1. chore: bump chromium to 132.0.6787.0 (main) (#44329)

    * chore: bump chromium in DEPS to 132.0.6785.0
    
    * chore: bump chromium in DEPS to 132.0.6787.0
    
    * 5837702: mac fullscreen: always show traffic lights
    
    https://chromium-review.googlesource.com/c/chromium/src/+/5837702
    
    * 5892572: Move SimpleMenuModel out of ui/base
    
    https://chromium-review.googlesource.com/c/chromium/src/+/5892572
    
    * 5938185: Remove lacros code from //ui/base/clipboard
    
    https://chromium-review.googlesource.com/c/chromium/src/+/5938185
    
    * chore: fixup patch indices
    
    * 5939514: Wire up the preference of overlay scrollbars to the ChromeOS settings
    
    https://chromium-review.googlesource.com/c/chromium/src/+/5939514
    
    * chore: fixup patch indices
    
    ---------
    
    Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
    Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
    electron-roller[bot] and codebytere authored Oct 21, 2024
    Copy the full SHA
    0d948da View commit details
  2. chore: bump chromium to 132.0.6788.0 (main) (#44331)

    chore: bump chromium in DEPS to 132.0.6788.0
    
    Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
    electron-roller[bot] authored Oct 21, 2024
    Copy the full SHA
    e70f70f View commit details
  3. chore: bump chromium to 132.0.6789.0 (main) (#44337)

    chore: bump chromium in DEPS to 132.0.6789.0
    
    Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
    electron-roller[bot] authored Oct 21, 2024
    Copy the full SHA
    d3d02ef View commit details
  4. Copy the full SHA
    cc9d85d View commit details
  5. Copy the full SHA
    3e77faf View commit details
  6. fix: software compositing infinite loop (#44318)

    Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
    samuelmaddock and VerteDinde authored Oct 21, 2024
    Copy the full SHA
    fff6ea4 View commit details
  7. fix: silence -Wunsafe-buffer-usage warning in GetPreferredLanguages() (

    …#44333)
    
    fix: use UNSAFE_BUFFERS macro in GetPreferredLanguages()
    ckerr authored Oct 21, 2024
    Copy the full SHA
    e3e94d4 View commit details

Commits on Oct 22, 2024

  1. build: update appveyor image to latest version (#44334)

    Co-authored-by: electron-appveyor-updater[bot] <161660339+electron-appveyor-updater[bot]@users.noreply.github.com>
    electron-appveyor-updater[bot] authored Oct 22, 2024
    Copy the full SHA
    d60d526 View commit details
  2. Copy the full SHA
    fd50047 View commit details

Commits on Oct 23, 2024

  1. test: fixup flaky tests (#44349)

    * test: fixup flaky test
    
    * test: disable flaky protocol speed test on macOS
    
    * test: fixup flaky test in api-browser-window-spec.ts
    jkleinsc authored Oct 23, 2024
    Copy the full SHA
    c42fb09 View commit details
  2. fix: -Wunsafe-buffer-usage warning in didRegisterForRemoteNotificatio…

    …nsWithDeviceToken (#44348)
    
    * chore: move as_byte_span() to new shell/common/mac_util.h
    
    this way it can be used by multiple mm files
    
    * fix: -Wunsafe-buffer-usage warnings in UNNotificationResponseToNSDictionary
    
    * refactor: use base::HexEncode() instead of rolling our own
    
    * fixup! chore: move as_byte_span() to new shell/common/mac_util.h
    
    * fixup! chore: move as_byte_span() to new shell/common/mac_util.h
    
    fix: move mac_util to the right place in filenames.gni
    ckerr authored Oct 23, 2024
    Copy the full SHA
    83d7040 View commit details

Commits on Oct 24, 2024

  1. Copy the full SHA
    a0f51d8 View commit details

Commits on Oct 25, 2024

  1. Copy the full SHA
    57920e7 View commit details

Commits on Oct 28, 2024

  1. fix: crash on netlog connection error (#44406)

    * fix: crash on netlog connection error
    
    * refactor: remove default PromiseBase constructor
    
    * Revert "refactor: remove default PromiseBase constructor"
    
    This reverts commit 9292324.
    
    * remove dcheck
    samuelmaddock authored Oct 28, 2024
    Copy the full SHA
    348801b View commit details
  2. perf: prefer NewFromUtf8Literal() over NewFromUtf8() for string liter…

    …als (#44412)
    
    * perf: prefer NewFromUtf8Literal() over NewFromUtf8() for string literals
    
    the string length is known at compile time and no need to call ToLocalChecked()
    
    * perf: string length is known when calling NewFromUtf8(), so use it
    
    * perf: remove unnecessary calls to c_str()
    
    these just force the code being called to have to recalculate the string length
    ckerr authored Oct 28, 2024
    Copy the full SHA
    5d0d15a View commit details

Commits on Oct 29, 2024

  1. Copy the full SHA
    7396882 View commit details
  2. build(deps): bump github/codeql-action from 3.26.13 to 3.27.0 (#44434)

    Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.13 to 3.27.0.
    - [Release notes](https://github.com/github/codeql-action/releases)
    - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
    - [Commits](github/codeql-action@f779452...6624720)
    
    ---
    updated-dependencies:
    - dependency-name: github/codeql-action
      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>
    dependabot[bot] authored Oct 29, 2024
    Copy the full SHA
    214c822 View commit details
  3. build: improve gen-libc++-filenames output (#44424)

    build: improve gen-libc++-filenames output
    codebytere authored Oct 29, 2024
    Copy the full SHA
    46561fc View commit details
  4. build(deps): bump actions/checkout from 4.2.1 to 4.2.2 (#44435)

    Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.1 to 4.2.2.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](actions/checkout@eef6144...11bd719)
    
    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      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>
    dependabot[bot] authored Oct 29, 2024
    Copy the full SHA
    cc3359f View commit details
  5. refactor: prefer inline constexpr string_view for string constants (#…

    …44405)
    
    * refactor: BaseWindow::OnExecuteAppCommand() now takes a std::string_view
    
    * refactor: NativeWindow::NotifyWindowExecuteAppCommand() takes a std::string_view
    
    * refactor: AppCommandToString() returns a std::string_view, is now constexpr
    
    * refactor: make kBrowserBackward, kBrowserForward inline constexpr std::string_view
    
    Xref: https://abseil.io/tips/140
    
    https://groups.google.com/a/chromium.org/g/chromium-dev/c/jROTxMo_m2Q/m/HgciN2KsAgAJ
    
    * refactor: use inline constexpr string_view for kDevice*Key constants
    
    Xref: https://abseil.io/tips/140
    
    https://groups.google.com/a/chromium.org/g/chromium-dev/c/jROTxMo_m2Q/m/HgciN2KsAgAJ
    
    * refactor: IsEnvSet now takes a base::cstring_view
    
    * refactor: use inline constexpr cstring_view for kRunAsNode
    
    * refactor: use inline constexpr string_view for kPDF*PluginName
    
    * refactor: use base::FilePath::FromASCII() since "internal-pdf-viewer" is ascii
    
    * chore: remove unused shell/common/electron_constants.cc
    
    * fixup! refactor: IsEnvSet now takes a base::cstring_view
    ckerr authored Oct 29, 2024
    Copy the full SHA
    b3c2e83 View commit details
  6. build(deps): bump actions/setup-node from 4.0.4 to 4.1.0 (#44433)

    Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.4 to 4.1.0.
    - [Release notes](https://github.com/actions/setup-node/releases)
    - [Commits](actions/setup-node@0a44ba7...39370e3)
    
    ---
    updated-dependencies:
    - dependency-name: actions/setup-node
      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>
    dependabot[bot] authored Oct 29, 2024
    Copy the full SHA
    f7ead78 View commit details
  7. refactor: move node ofs script to electron (#44425)

    * refactor: move node ofs script to electron
    
    * chore: remove empty file
    codebytere authored Oct 29, 2024
    Copy the full SHA
    39b24ae View commit details
  8. fix: -Wunsafe-buffer-usage warnings with argc, argv (#44366)

    * refactor: move uv_setup_args() calls to startup
    
    * refactor: call base::CommandLine::Init() before ContentMain()
    
    * feat: add ElectronCommandLine::AsUtf8()
    
    * refactor: call base::CommandLine::Init() before NodeMain()
    
    * refactor: use ElectronCommandLine::AsUtf8() in NodeMain()
    
    * fix: -Wunsafe-buffer-usage warning in ElectronCommandLine::Init()
    
    * chore: add a DCHECK to confirm ElectronCommandLine was initialized before AsUtf8() is called
    
    * chore: const correctness in ElectronCommandLine::Init() args
    
    * chore: add ElectronCommandLine to macOS Electron Helper app
    
    * chore: move argc, argvc setup into electron_library_main on macOS
    
    * chore: revert BUILD.gn changes
    
    * fix: WideToUTF8() call in ElectronCommandLine::AsUtf8()
    
    * build: add uv to the include paths for app/electron_main_linux
    
    * build: add uv to the include paths for app/electron_library_main.mm
    
    * chore: revert unrelated changes
    
    these were intended for another branch
    ckerr authored Oct 29, 2024
    Copy the full SHA
    dffe00b View commit details
  9. docs: Fix powerMonitor docs for type generation of `speed-limit-cha…

    …nge` (#44391)
    
    Fix `powerMonitor` docs for type generation of `speed-limit-change`
    devinbinnie authored Oct 29, 2024
    Copy the full SHA
    53458da View commit details
  10. build: fix python util verbose mode logic (#44431)

    build: fix verbose mode logic
    codebytere authored Oct 29, 2024
    Copy the full SHA
    9fc94a1 View commit details
  11. docs: fix win.getContentView() return type (#44430)

    docs: fix win.getContentView() return type
    codebytere authored Oct 29, 2024
    Copy the full SHA
    7ff7160 View commit details
  12. fix: update shell.openExternal to correctly focus on external window (#…

    …44408)
    
    * fix: Use openURL:configuration:completionHandler instead of openUrl
    
    * test: add a test
    
    * fix: add dispatch_async to replace GetUIThreadTaskRunner
    
    * refactor: remove unused import
    
    * fix: update to use BindPostTaskToCurrentDefault
    
    * test: add regression test for window focus
    
    * refactor: update to explicit task runner
    alicelovescake authored Oct 29, 2024
    Copy the full SHA
    de04fc3 View commit details
  13. Copy the full SHA
    fb959f8 View commit details

Commits on Oct 30, 2024

  1. Copy the full SHA
    a720c8d View commit details
Showing 809 changed files with 20,071 additions and 15,028 deletions.
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# `git apply` and friends don't understand CRLF, even on windows. Force those
# files to be checked out with LF endings even if core.autocrlf is true.
*.patch text eol=lf
DEPS text eol=lf
yarn.lock text eol=lf
script/zip_manifests/*.manifest text eol=lf
patches/**/.patches merge=union

# Source code and markdown files should always use LF as line ending.
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@
DEPS @electron/wg-upgrades

# Releases WG
/.github/workflows/update_appveyor_image.yml @electron/wg-releases
/docs/breaking-changes.md @electron/wg-releases
/npm/ @electron/wg-releases
/script/release @electron/wg-releases
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Bug Report
description: Report an Electron bug
title: "[Bug]: "
description: Report a bug in Electron
type: 'bug'
labels: "bug :beetle:"
body:
- type: checkboxes
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Feature Request
description: Suggest an idea for Electron
title: "[Feature Request]: "
type: 'enhancement'
labels: "enhancement :sparkles:"
body:
- type: checkboxes
55 changes: 40 additions & 15 deletions .github/actions/build-electron/action.yml
Original file line number Diff line number Diff line change
@@ -5,10 +5,10 @@ inputs:
description: 'Target arch'
required: true
target-platform:
description: 'Target platform'
description: 'Target platform, should be linux, win, macos'
required: true
artifact-platform:
description: 'Artifact platform, should be linux, darwin or mas'
description: 'Artifact platform, should be linux, win, darwin or mas'
required: true
step-suffix:
description: 'Suffix for build steps'
@@ -63,15 +63,15 @@ runs:
run: |
cd src
electron/script/copy-debug-symbols.py --target-cpu="${{ inputs.target-arch }}" --out-dir=out/Default/debug --compress
electron/script/strip-binaries.py --target-cpu="${{ inputs.target-arch }}"
electron/script/strip-binaries.py --target-cpu="${{ inputs.target-arch }}" --verbose
electron/script/add-debug-link.py --target-cpu="${{ inputs.target-arch }}" --debug-dir=out/Default/debug
- name: Build Electron dist.zip ${{ inputs.step-suffix }}
shell: bash
run: |
cd src
e build --target electron:electron_dist_zip -j $NUMBER_OF_NINJA_PROCESSES
e build --target electron:electron_dist_zip -j $NUMBER_OF_NINJA_PROCESSES -d explain
if [ "${{ inputs.is-asan }}" != "true" ]; then
target_os=${{ inputs.target-platform == 'linux' && 'linux' || 'mac'}}
target_os=${{ inputs.target-platform == 'macos' && 'mac' || inputs.target-platform }}
if [ "${{ inputs.artifact-platform }}" = "mas" ]; then
target_os="${target_os}_mas"
fi
@@ -82,7 +82,7 @@ runs:
run: |
cd src
e build --target electron:electron_mksnapshot -j $NUMBER_OF_NINJA_PROCESSES
gn desc out/Default v8:run_mksnapshot_default args > out/Default/mksnapshot_args
ELECTRON_DEPOT_TOOLS_DISABLE_LOG=1 e d gn desc out/Default v8:run_mksnapshot_default args > out/Default/mksnapshot_args
# Remove unused args from mksnapshot_args
SEDOPTION="-i"
if [ "`uname`" = "Darwin" ]; then
@@ -91,7 +91,7 @@ runs:
sed $SEDOPTION '/.*builtins-pgo/d' out/Default/mksnapshot_args
sed $SEDOPTION '/--turbo-profiling-input/d' out/Default/mksnapshot_args
if [ "`uname`" = "Linux" ]; then
if [ "${{ inputs.target-platform }}" = "linux" ]; then
if [ "${{ inputs.target-arch }}" = "arm" ]; then
electron/script/strip-binaries.py --file $PWD/out/Default/clang_x86_v8_arm/mksnapshot
electron/script/strip-binaries.py --file $PWD/out/Default/clang_x86_v8_arm/v8_context_snapshot_generator
@@ -105,7 +105,15 @@ runs:
fi
e build --target electron:electron_mksnapshot_zip -j $NUMBER_OF_NINJA_PROCESSES
(cd out/Default; zip mksnapshot.zip mksnapshot_args gen/v8/embedded.S)
if [ "${{ inputs.target-platform }}" = "win" ]; then
cd out/Default
powershell Compress-Archive -update mksnapshot_args mksnapshot.zip
powershell mkdir mktmp\\gen\\v8
powershell Copy-Item gen\\v8\\embedded.S mktmp\\gen\\v8
powershell Compress-Archive -update -Path mktmp\\gen mksnapshot.zip
else
(cd out/Default; zip mksnapshot.zip mksnapshot_args gen/v8/embedded.S)
fi
- name: Generate Cross-Arch Snapshot (arm/arm64) ${{ inputs.step-suffix }}
shell: bash
if: ${{ (inputs.target-arch == 'arm' || inputs.target-arch == 'arm64') && inputs.target-platform == 'linux' }}
@@ -137,6 +145,25 @@ runs:
run: |
cd src
e build --target electron:node_headers
- name: Create installed_software.json ${{ inputs.step-suffix }}
shell: powershell
if: ${{ inputs.is-release == 'true' && inputs.target-platform == 'win' }}
run: |
cd src
Get-CimInstance -Namespace root\cimv2 -Class Win32_product | Select vendor, description, @{l='install_location';e='InstallLocation'}, @{l='install_date';e='InstallDate'}, @{l='install_date_2';e='InstallDate2'}, caption, version, name, @{l='sku_number';e='SKUNumber'} | ConvertTo-Json | Out-File -Encoding utf8 -FilePath .\installed_software.json
- name: Profile Windows Toolchain ${{ inputs.step-suffix }}
shell: bash
if: ${{ inputs.is-release == 'true' && inputs.target-platform == 'win' }}
run: |
cd src
python3 electron/build/profile_toolchain.py --output-json=out/Default/windows_toolchain_profile.json
- name: Add msdia140.dll to Path ${{ inputs.step-suffix }}
shell: bash
if: ${{ inputs.is-release == 'true' && inputs.target-platform == 'win' }}
run: |
# Needed for msdia140.dll on 64-bit windows
cd src
export PATH="$PATH:$(pwd)/third_party/llvm-build/Release+Asserts/bin"
- name: Generate & Zip Symbols ${{ inputs.step-suffix }}
shell: bash
run: |
@@ -159,21 +186,19 @@ runs:
run: |
cd src
gn gen out/ffmpeg --args="import(\"//electron/build/args/ffmpeg.gn\") use_remoteexec=true $GN_EXTRA_ARGS"
autoninja -C out/ffmpeg electron:electron_ffmpeg_zip -j $NUMBER_OF_NINJA_PROCESSES
e build --target electron:electron_ffmpeg_zip -C ../../out/ffmpeg -j $NUMBER_OF_NINJA_PROCESSES
- name: Generate Hunspell Dictionaries ${{ inputs.step-suffix }}
shell: bash
if: ${{ inputs.is-release == 'true' && inputs.target-platform == 'linux' }}
run: |
cd src
autoninja -C out/Default electron:hunspell_dictionaries_zip -j $NUMBER_OF_NINJA_PROCESSES
e build --target electron:hunspell_dictionaries_zip -j $NUMBER_OF_NINJA_PROCESSES
- name: Generate Libcxx ${{ inputs.step-suffix }}
shell: bash
if: ${{ inputs.is-release == 'true' && inputs.target-platform == 'linux' }}
run: |
cd src
autoninja -C out/Default electron:libcxx_headers_zip -j $NUMBER_OF_NINJA_PROCESSES
autoninja -C out/Default electron:libcxxabi_headers_zip -j $NUMBER_OF_NINJA_PROCESSES
autoninja -C out/Default electron:libcxx_objects_zip -j $NUMBER_OF_NINJA_PROCESSES
e build --target electron:libcxx_headers_zip -j $NUMBER_OF_NINJA_PROCESSES
e build --target electron:libcxxabi_headers_zip -j $NUMBER_OF_NINJA_PROCESSES
e build --target electron:libcxx_objects_zip -j $NUMBER_OF_NINJA_PROCESSES
- name: Generate TypeScript Definitions ${{ inputs.step-suffix }}
if: ${{ inputs.is-release == 'true' }}
shell: bash
85 changes: 56 additions & 29 deletions .github/actions/checkout/action.yml
Original file line number Diff line number Diff line change
@@ -5,6 +5,10 @@ inputs:
description: 'Whether to generate and persist a SAS token for the item in the cache'
required: false
default: 'false'
use-cache:
description: 'Whether to persist the cache to the shared drive'
required: false
default: 'true'
runs:
using: "composite"
steps:
@@ -13,39 +17,37 @@ runs:
run: |
echo "GIT_CACHE_PATH=$(pwd)/git-cache" >> $GITHUB_ENV
- name: Install Dependencies
shell: bash
run: |
cd src/electron
node script/yarn install --frozen-lockfile
uses: ./src/electron/.github/actions/install-dependencies
- name: Install Build Tools
uses: ./src/electron/.github/actions/install-build-tools
- name: Set Chromium Git Cookie
uses: ./src/electron/.github/actions/set-chromium-cookie
- name: Get Depot Tools
shell: bash
run: |
git clone --depth=1 https://chromium.googlesource.com/chromium/tools/depot_tools.git
if [[ ! -d depot_tools ]]; then
git clone --depth=1 https://chromium.googlesource.com/chromium/tools/depot_tools.git
sed -i '/ninjalog_uploader_wrapper.py/d' ./depot_tools/autoninja
# Remove swift-format dep from cipd on macOS until we send a patch upstream.
cd depot_tools
git apply --3way ../src/electron/.github/workflows/config/gclient.diff
# Ensure depot_tools does not update.
test -d depot_tools && cd depot_tools
touch .disable_auto_update
# Ensure depot_tools does not update.
test -d depot_tools && cd depot_tools
touch .disable_auto_update
fi
- name: Add Depot Tools to PATH
shell: bash
run: echo "$(pwd)/depot_tools" >> $GITHUB_PATH
- name: Generate DEPS Hash
shell: bash
run: |
node src/electron/script/generate-deps-hash.js && cat src/electron/.depshash-target
echo "DEPSHASH=v1-src-cache-$(shasum src/electron/.depshash | cut -f1 -d' ')" >> $GITHUB_ENV
node src/electron/script/generate-deps-hash.js
echo "DEPSHASH=v1-src-cache-$(cat src/electron/.depshash)" >> $GITHUB_ENV
- name: Generate SAS Key
if: ${{ inputs.generate-sas-token == 'true' }}
shell: bash
run: |
curl --unix-socket /var/run/sas/sas.sock --fail "http://foo/$DEPSHASH.tar" > sas-token
- name: Save SAS Key
if: ${{ inputs.generate-sas-token == 'true' }}
uses: actions/cache/save@v4
uses: actions/cache/save@1bd1e32a3bdc45362d1e726936510720a7c30a57
with:
path: |
sas-token
@@ -54,27 +56,49 @@ runs:
id: check-cache
shell: bash
run: |
cache_path=/mnt/cross-instance-cache/$DEPSHASH.tar
echo "Using cache key: $DEPSHASH"
echo "Checking for cache in: $cache_path"
if [ ! -f "$cache_path" ]; then
if [[ "${{ inputs.use-cache }}" == "false" ]]; then
echo "Not using cache this time..."
echo "cache_exists=false" >> $GITHUB_OUTPUT
echo "Cache Does Not Exist for $DEPSHASH"
else
echo "cache_exists=true" >> $GITHUB_OUTPUT
echo "Cache Already Exists for $DEPSHASH, Skipping.."
cache_path=/mnt/cross-instance-cache/$DEPSHASH.tar
echo "Using cache key: $DEPSHASH"
echo "Checking for cache in: $cache_path"
if [ ! -f "$cache_path" ] || [ `du $cache_path | cut -f1` = "0" ]; then
echo "cache_exists=false" >> $GITHUB_OUTPUT
echo "Cache Does Not Exist for $DEPSHASH"
else
echo "cache_exists=true" >> $GITHUB_OUTPUT
echo "Cache Already Exists for $DEPSHASH, Skipping.."
fi
fi
- name: Check cross instance cache disk space
if: steps.check-cache.outputs.cache_exists == 'false' && inputs.use-cache == 'true'
shell: bash
run: |
# if there is less than 35 GB free space then creating the cache might fail so exit early
freespace=`df -m /mnt/cross-instance-cache | grep -w /mnt/cross-instance-cache | awk '{print $4}'`
freespace_human=`df -h /mnt/cross-instance-cache | grep -w /mnt/cross-instance-cache | awk '{print $4}'`
if [ $freespace -le 35000 ]; then
echo "The cross mount cache has $freespace_human free space which is not enough - exiting"
exit 1
else
echo "The cross mount cache has $freespace_human free space - continuing"
fi
- name: Gclient Sync
if: steps.check-cache.outputs.cache_exists == 'false'
shell: bash
run: |
gclient config \
e d gclient config \
--name "src/electron" \
--unmanaged \
${GCLIENT_EXTRA_ARGS} \
"$GITHUB_SERVER_URL/$GITHUB_REPOSITORY"
ELECTRON_USE_THREE_WAY_MERGE_FOR_PATCHES=1 gclient sync --with_branch_heads --with_tags -vvvvv
if [ "$TARGET_OS" != "" ]; then
echo "target_os=['$TARGET_OS']" >> ./.gclient
fi
ELECTRON_USE_THREE_WAY_MERGE_FOR_PATCHES=1 e d gclient sync --with_branch_heads --with_tags -vv
if [ "${{ inputs.is-release }}" != "true" && -n "${{ env.PATCH_UP_APP_CREDS }}" ]; then
# Re-export all the patches to check if there were changes.
python3 src/electron/script/export_all_patches.py src/electron/patches/config.json
@@ -115,13 +139,13 @@ runs:
# https://dawn-review.googlesource.com/c/dawn/+/83901
# TODO: maybe better to always leave out */.git/HEAD file for all targets ?
- name: Delete .git directories under src to free space
if: steps.check-cache.outputs.cache_exists == 'false'
if: ${{ steps.check-cache.outputs.cache_exists == 'false' && inputs.use-cache == 'true' }}
shell: bash
run: |
cd src
( find . -type d -name ".git" -not -path "./third_party/angle/*" -not -path "./third_party/dawn/*" -not -path "./electron/*" ) | xargs rm -rf
- name: Minimize Cache Size for Upload
if: steps.check-cache.outputs.cache_exists == 'false'
if: ${{ steps.check-cache.outputs.cache_exists == 'false' && inputs.use-cache == 'true' }}
shell: bash
run: |
rm -rf src/android_webview
@@ -132,17 +156,20 @@ runs:
rm -rf src/third_party/angle/third_party/VK-GL-CTS/src
rm -rf src/third_party/swift-toolchain
rm -rf src/third_party/swiftshader/tests/regres/testlists
cp src/electron/.github/actions/checkout/action.yml ./
rm -rf src/electron
mkdir -p src/electron/.github/actions/checkout
mv action.yml src/electron/.github/actions/checkout
- name: Compress Src Directory
if: steps.check-cache.outputs.cache_exists == 'false'
if: ${{ steps.check-cache.outputs.cache_exists == 'false' && inputs.use-cache == 'true' }}
shell: bash
run: |
echo "Uncompressed src size: $(du -sh src | cut -f1 -d' ')"
tar -cf $DEPSHASH.tar src
echo "Compressed src to $(du -sh $DEPSHASH.tar | cut -f1 -d' ')"
cp ./$DEPSHASH.tar /mnt/cross-instance-cache/
- name: Persist Src Cache
if: steps.check-cache.outputs.cache_exists == 'false'
if: ${{ steps.check-cache.outputs.cache_exists == 'false' && inputs.use-cache == 'true' }}
shell: bash
run: |
final_cache_path=/mnt/cross-instance-cache/$DEPSHASH.tar
11 changes: 10 additions & 1 deletion .github/actions/install-build-tools/action.yml
Original file line number Diff line number Diff line change
@@ -6,6 +6,15 @@ runs:
- name: Install Build Tools
shell: bash
run: |
export BUILD_TOOLS_SHA=33dc5186556bfbf7b0121a00cdd89ed3802e47da
if [ "$(expr substr $(uname -s) 1 10)" == "MSYS_NT-10" ]; then
git config --global core.filemode false
git config --global core.autocrlf false
git config --global branch.autosetuprebase always
fi
export BUILD_TOOLS_SHA=8246e57791b0af4ae5975eb96f09855f9269b1cd
npm i -g @electron/build-tools
e auto-update disable
if [ "$(expr substr $(uname -s) 1 10)" == "MSYS_NT-10" ]; then
e d cipd.bat --version
cp "C:\Python311\python.exe" "C:\Python311\python3.exe"
fi
21 changes: 21 additions & 0 deletions .github/actions/install-dependencies/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: 'Install Dependencies'
description: 'Installs yarn depdencies using cache when available'
runs:
using: "composite"
steps:
- name: Get yarn cache directory path
shell: bash
id: yarn-cache-dir-path
run: echo "dir=$(node src/electron/script/yarn cache dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('src/electron/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install Dependencies
shell: bash
run: |
cd src/electron
node script/yarn install --frozen-lockfile --prefer-offline
5 changes: 5 additions & 0 deletions .github/actions/restore-cache-aks/action.yml
Original file line number Diff line number Diff line change
@@ -17,6 +17,11 @@ runs:
fi
echo "Persisted cache is $(du -sh $cache_path | cut -f1)"
if [ `du $cache_path | cut -f1` = "0" ]; then
echo "Cache is empty - exiting"
exit 1
fi
mkdir temp-cache
tar -xf $cache_path -C temp-cache
echo "Unzipped cache is $(du -sh temp-cache/src | cut -f1)"
9 changes: 7 additions & 2 deletions .github/actions/restore-cache-azcopy/action.yml
Original file line number Diff line number Diff line change
@@ -5,14 +5,14 @@ runs:
steps:
- name: Obtain SAS Key
continue-on-error: true
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57
with:
path: |
sas-token
key: sas-key-${{ github.run_number }}-1
- name: Obtain SAS Key
continue-on-error: true
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9
uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57
with:
path: |
sas-token
@@ -44,6 +44,11 @@ runs:
shell: bash
run: |
echo "Downloaded cache is $(du -sh $DEPSHASH.tar | cut -f1)"
if [ `du $DEPSHASH.tar | cut -f1` = "0" ]; then
echo "Cache is empty - exiting"
exit 1
fi
mkdir temp-cache
tar -xf $DEPSHASH.tar -C temp-cache
echo "Unzipped cache is $(du -sh temp-cache/src | cut -f1)"
Loading