diff --git a/atom/browser/lib/chrome-extension.coffee b/atom/browser/lib/chrome-extension.coffee index e62ad5250de4..1b987187c46a 100644 --- a/atom/browser/lib/chrome-extension.coffee +++ b/atom/browser/lib/chrome-extension.coffee @@ -34,15 +34,9 @@ getExtensionInfoFromPath = (srcDirectory) -> srcDirectory: srcDirectory extensionInfoMap[manifest.name] -# Load persistented extensions. -loadedExtensionsPath = path.join app.getDataPath(), 'DevTools Extensions' - -try - loadedExtensions = JSON.parse fs.readFileSync(loadedExtensionsPath) - loadedExtensions = [] unless Array.isArray loadedExtensions - # Preheat the extensionInfo cache. - getExtensionInfoFromPath srcDirectory for srcDirectory in loadedExtensions -catch e +# The loaded extensions cache and its persistent path. +loadedExtensions = null +loadedExtensionsPath = null # Persistent loaded extensions. app.on 'will-quit', -> @@ -59,6 +53,16 @@ app.once 'ready', -> protocol = require 'protocol' BrowserWindow = require 'browser-window' + # Load persistented extensions. + loadedExtensionsPath = path.join app.getDataPath(), 'DevTools Extensions' + + try + loadedExtensions = JSON.parse fs.readFileSync(loadedExtensionsPath) + loadedExtensions = [] unless Array.isArray loadedExtensions + # Preheat the extensionInfo cache. + getExtensionInfoFromPath srcDirectory for srcDirectory in loadedExtensions + catch e + # The chrome-extension: can map a extension URL request to real file path. protocol.registerProtocol 'chrome-extension', (request) -> parsed = url.parse request.url