This document is meant to serve as an overview of what steps are needed on each Chrome upgrade in Electron.
These are things to do in addition to updating the Electron code for any Chrome/Node API changes.
VERSION
file at the root of the electron/libchromiumcontent
repositoryCLANG_REVISION
in script/update-clang.sh
to match the version Chrome is using in libchromiumcontent/src/tools/clang/scripts/update.py
vendor/node
to the Node release that corresponds to the v8 version being used in the new Chrome release. See the v8 versions in Node on https://nodejs.org/en/download/releases for more detailsvendor/crashpad
for any crash reporter changes neededvendor/depot_tools
for any build tools changes neededlibchromiumcontent
SHA-1 to download in script/lib/config.py
electron/libchromiumcontent
with the changeselectron/electron
with the changes
vendor/
as neededElectron ships with a version of ffmpeg
that includes proprietary codecs by default. A version without these codecs is built and distributed with each release as well. Each Chrome upgrade should verify that switching this version is still supported.
You can verify Electron’s support for multiple ffmpeg
builds by loading the following page. It should work with the default ffmpeg
library distributed with Electron and not work with the ffmpeg
library built without proprietary codecs.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Proprietary Codec Check</title>
</head>
<body>
<p>Checking if Electron is using proprietary codecs by loading video from http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4</p>
<p id="outcome"></p>
<video style="display:none" src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4" autoplay></video>
<script>
const video = document.querySelector('video')
video.addEventListener('error', ({target}) => {
if (target.error.code === target.error.MEDIA_ERR_SRC_NOT_SUPPORTED) {
document.querySelector('#outcome').textContent = 'Not using proprietary codecs, video emitted source not supported error event.'
} else {
document.querySelector('#outcome').textContent = `Unexpected error: ${target.error.code}`
}
})
video.addEventListener('playing', () => {
document.querySelector('#outcome').textContent = 'Using proprietary codecs, video started playing.'
})
</script>
</body>
</html>