From 2d1afbf51b989a0c85ae37d775e320e73dc21bb7 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Sun, 18 Jan 2015 17:24:02 -0800 Subject: [PATCH] Call app.getDataPath after app is ready It is possible for users to override the data path. --- atom/browser/lib/chrome-extension.coffee | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) 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