Electron Documentation

Docs / Guides / Planned Breaking API Changes v1.8.2

Planned Breaking API Changes

The following list includes the APIs that will be removed in Electron 2.0.

There is no timetable for when this release will occur but deprecation warnings will be added at least 90 days beforehand.

app

// Deprecated
  app.getAppMemoryInfo()
  // Replace with
  app.getAppMetrics()

BrowserWindow

// Deprecated
  let optionsA = {webPreferences: {blinkFeatures: ''}}
  let windowA = new BrowserWindow(optionsA)
  // Replace with
  let optionsB = {webPreferences: {enableBlinkFeatures: ''}}
  let windowB = new BrowserWindow(optionsB)
// Deprecated
  let optionsA = {titleBarStyle: 'hidden-inset'}
  let windowA = new BrowserWindow(optionsA)
  // Replace with
  let optionsB = {titleBarStyle: 'hiddenInset'}
  let windowB = new BrowserWindow(optionsB)

clipboard

// Deprecated
  clipboard.readRtf()
  // Replace with
  clipboard.readRTF()
  
  // Deprecated
  clipboard.writeRtf()
  // Replace with
  clipboard.writeRTF()
  
  // Deprecated
  clipboard.readHtml()
  // Replace with
  clipboard.readHTML()
  
  // Deprecated
  clipboard.writeHtml()
  // Replace with
  clipboard.writeHTML()

crashReporter

// Deprecated
  crashReporter.start({
    companyName: 'Crashly',
    submitURL: 'https://crash.server.com',
    autoSubmit: true
  })
  // Replace with
  crashReporter.start({
    companyName: 'Crashly',
    submitURL: 'https://crash.server.com',
    uploadToServer: true
  })
// Deprecated
  menu.popup(browserWindow, 100, 200, 2)
  // Replace with
  menu.popup(browserWindow, {x: 100, y: 200, positioningItem: 2})

nativeImage

// Deprecated
  nativeImage.toPng()
  // Replace with
  nativeImage.toPNG()
  
  // Deprecated
  nativeImage.toJpeg()
  // Replace with
  nativeImage.toJPEG()
  
  // Deprecated
  nativeImage.createFromBuffer(buffer, 1.0)
  // Replace with
  nativeImage.createFromBuffer(buffer, {
    scaleFactor: 1.0
  })

process

// Deprecated
  process.versions['atom-shell']
  // Replace with
  process.versions.electron
  • process.versions.electron and process.version.chrome will be made read-only properties for consistency with the other process.versions properties set by Node.

session

// Deprecated
  ses.setCertificateVerifyProc(function (hostname, certificate, callback) {
    callback(true)
  })
  // Replace with
  ses.setCertificateVerifyProc(function (request, callback) {
    callback(0)
  })

Tray

// Deprecated
  tray.setHighlightMode(true)
  // Replace with
  tray.setHighlightMode('on')
  
  // Deprecated
  tray.setHighlightMode(false)
  // Replace with
  tray.setHighlightMode('off')

webContents

// Deprecated
  webContents.openDevTools({detach: true})
  // Replace with
  webContents.openDevTools({mode: 'detach'})
// Deprecated
  webContents.setZoomLevelLimits(1, 2)
  // Replace with
  webContents.setVisualZoomLevelLimits(1, 2)

webFrame

// Deprecated
  webFrame.setZoomLevelLimits(1, 2)
  // Replace with
  webFrame.setVisualZoomLevelLimits(1, 2)
  
  // Deprecated
  webFrame.registerURLSchemeAsSecure('app')
  // Replace with
  protocol.registerStandardSchemes(['app'], {secure: true})
  
  // Deprecated
  webFrame.registerURLSchemeAsPrivileged('app', {secure: true})
  // Replace with
  protocol.registerStandardSchemes(['app'], {secure: true})

<webview>

// Deprecated
  webview.setZoomLevelLimits(1, 2)
  // Replace with
  webview.setVisualZoomLevelLimits(1, 2)

Node Headers URL

This is the URL specified as disturl in a .npmrc file or as the --dist-url command line flag when building native Node modules.

Deprecated: https://atom.io/download/atom-shell

Replace with: https://atom.io/download/electron

Duplicate ARM Assets

Each Electron release includes two identical ARM builds with slightly different filenames, like electron-v1.7.3-linux-arm.zip and electron-v1.7.3-linux-armv7l.zip. The asset with the v7l prefix was added to clarify to users which ARM version it supports, and to disambiguate it from future armv6l and arm64 assets that may be produced.

The file without the prefix is still being published to avoid breaking any setups that may be consuming it. Starting at 2.0, the un-prefixed file will no longer be published.

For details, see 6986 and 7189.

FIXME comments

The FIXME string is used in code comments to denote things that should be fixed for the 2.0 release. See https://github.com/electron/electron/search?q=fixme