electron/spec/fixtures/no-proprietary-codecs.js
2017-03-30 14:39:48 -07:00

47 lines
1.2 KiB
JavaScript

// Verifies that Electron cannot play a video that uses proprietary codecs
//
// This application should be run with the ffmpeg that does not include
// proprietary codecs to ensure Electron uses it instead of the version
// that does include proprietary codecs.
const {app, BrowserWindow, ipcMain} = require('electron')
const path = require('path')
const url = require('url')
const MEDIA_ERR_SRC_NOT_SUPPORTED = 4
const FIVE_MINUTES = 5 * 60 * 1000
let window
app.once('ready', () => {
window = new BrowserWindow({
show: false
})
window.loadURL(url.format({
protocol: 'file',
slashed: true,
pathname: path.resolve(__dirname, 'asar', 'video.asar', 'index.html')
}))
ipcMain.on('asar-video', (event, message, error) => {
if (message === 'ended') {
console.log('Video played, proprietary codecs are included')
app.exit(1)
return
}
if (message === 'error' && error === MEDIA_ERR_SRC_NOT_SUPPORTED) {
app.exit(0)
return
}
console.log(`Unexpected response from page: ${message} ${error}`)
app.exit(1)
})
setTimeout(() => {
console.log('No IPC message after 5 minutes')
app.exit(1)
}, FIVE_MINUTES)
})