From efb055eb89ffaf0771ee6670602a7f3bae0129a8 Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Fri, 22 Jan 2016 00:20:50 -0400 Subject: [PATCH] Upgrade Electron to v0.36.4 --- .travis.yml | 1 + lib/browser/app.js | 6 +++--- lib/browser/modules/drive-scanner.js | 10 +++++----- lib/browser/modules/image-writer.js | 6 +++--- lib/elevate.js | 8 ++++++-- lib/etcher.js | 26 ++++++++++++++------------ lib/src/dialog.js | 6 +++--- package.json | 5 ++--- tests/src/dialog.spec.js | 4 ++-- 9 files changed, 39 insertions(+), 33 deletions(-) diff --git a/.travis.yml b/.travis.yml index 887d3146..dc9e3861 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ node_js: - "4.0" before_script: - npm install -g electron-prebuilt + - export DISPLAY=:99.0; sh -e /etc/init.d/xvfb start notifications: email: false webhooks: diff --git a/lib/browser/app.js b/lib/browser/app.js index d54d7377..1d43acd9 100644 --- a/lib/browser/app.js +++ b/lib/browser/app.js @@ -20,9 +20,9 @@ var angular = require('angular'); var _ = require('lodash'); -var remote = window.require('remote'); -var shell = remote.require('shell'); -var dialog = remote.require('./src/dialog'); +var electron = require('electron'); +var shell = electron.remote.require('shell'); +var dialog = electron.remote.require('./src/dialog'); require('angular-ui-bootstrap'); require('./browser/modules/selection-state'); diff --git a/lib/browser/modules/drive-scanner.js b/lib/browser/modules/drive-scanner.js index bd3b6763..dca53c09 100644 --- a/lib/browser/modules/drive-scanner.js +++ b/lib/browser/modules/drive-scanner.js @@ -21,16 +21,16 @@ var angular = require('angular'); var _ = require('lodash'); var EventEmitter = require('events').EventEmitter; -var remote = window.require('remote'); +var electron = require('electron'); if (window.mocha) { var path = require('path'); var srcPath = path.join(__dirname, '..', '..', 'src'); - var drives = remote.require(path.join(srcPath, 'drives')); - var dialog = remote.require(path.join(srcPath, 'dialog')); + var drives = electron.remote.require(path.join(srcPath, 'drives')); + var dialog = electron.remote.require(path.join(srcPath, 'dialog')); } else { - var drives = remote.require('./src/drives'); - var dialog = remote.require('./src/dialog'); + var drives = electron.remote.require('./src/drives'); + var dialog = electron.remote.require('./src/dialog'); } var driveScanner = angular.module('ResinEtcher.drive-scanner', []); diff --git a/lib/browser/modules/image-writer.js b/lib/browser/modules/image-writer.js index 63de1433..41322d51 100644 --- a/lib/browser/modules/image-writer.js +++ b/lib/browser/modules/image-writer.js @@ -19,13 +19,13 @@ */ var angular = require('angular'); -var remote = window.require('remote'); +var electron = require('electron'); require('./logger'); if (window.mocha) { - var writer = remote.require(require('path').join(__dirname, '..', '..', 'src', 'writer')); + var writer = electron.remote.require(require('path').join(__dirname, '..', '..', 'src', 'writer')); } else { - var writer = remote.require('./src/writer'); + var writer = electron.remote.require('./src/writer'); } var imageWriter = angular.module('ResinEtcher.image-writer', [ diff --git a/lib/elevate.js b/lib/elevate.js index b695cfc7..2dc9380c 100644 --- a/lib/elevate.js +++ b/lib/elevate.js @@ -15,7 +15,7 @@ */ var _ = require('lodash'); -var dialog = require('dialog'); +var electron = require('electron'); var isElevated = require('is-elevated'); var sudoPrompt = require('sudo-prompt'); var os = require('os'); @@ -66,7 +66,11 @@ exports.require = function(app, callback) { }); } else { - dialog.showErrorBox('You don\'t have enough permissions', 'Please run this application as root or administrator'); + electron.dialog.showErrorBox( + 'You don\'t have enough permissions', + 'Please run this application as root or administrator' + ); + process.exit(1); } } diff --git a/lib/etcher.js b/lib/etcher.js index 1664ad2e..5bbadb72 100644 --- a/lib/etcher.js +++ b/lib/etcher.js @@ -14,28 +14,26 @@ * limitations under the License. */ -var globalShortcut = require('global-shortcut'); +var electron = require('electron'); var path = require('path'); -var app = require('app'); -var Menu = require('menu'); -var ElectronWindow = require('electron-window'); var elevate = require('./elevate'); +var mainWindow = null; -app.on('window-all-closed', app.quit); +electron.app.on('window-all-closed', electron.app.quit); -app.on('ready', function() { +electron.app.on('ready', function() { 'use strict'; // No menu bar - Menu.setApplicationMenu(null); + electron.Menu.setApplicationMenu(null); - elevate.require(app, function(error) { + elevate.require(electron.app, function(error) { if (error) { throw error; } - var mainWindow = ElectronWindow.createWindow({ + mainWindow = new electron.BrowserWindow({ width: 800, height: 380, resizable: false, @@ -43,11 +41,15 @@ app.on('ready', function() { icon: path.join(__dirname, '..', 'assets', 'icon.png') }); - globalShortcut.register('CmdOrCtrl+Alt+I', function() { - mainWindow.openDevTools(); + mainWindow.on('closed', function() { + mainWindow = null; }); - mainWindow.showUrl(path.join(__dirname, 'index.html')); + electron.globalShortcut.register('CmdOrCtrl+Alt+I', function() { + mainWindow.webContents.openDevTools(); + }); + + mainWindow.loadURL('file://' + path.join(__dirname, 'index.html')); }); }); diff --git a/lib/src/dialog.js b/lib/src/dialog.js index 1afe1af4..83914d3d 100644 --- a/lib/src/dialog.js +++ b/lib/src/dialog.js @@ -14,7 +14,7 @@ * limitations under the License. */ -var dialog = require('dialog'); +var electron = require('electron'); var Promise = require('bluebird'); var _ = require('lodash'); @@ -38,7 +38,7 @@ exports.selectImage = function() { 'use strict'; return new Promise(function(resolve, reject) { - dialog.showOpenDialog({ + electron.dialog.showOpenDialog({ properties: [ 'openFile' ], filters: [ { name: 'IMG/ISO', extensions: [ 'img', 'iso' ] } @@ -62,5 +62,5 @@ exports.selectImage = function() { exports.showError = function(error) { 'use strict'; - dialog.showErrorBox(error.message, error.stack || ''); + electron.dialog.showErrorBox(error.message, error.stack || ''); }; diff --git a/package.json b/package.json index 75d45bae..0e846492 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,6 @@ "bluebird": "^3.0.5", "bootstrap-sass": "^3.3.5", "drivelist": "^2.0.7", - "electron-window": "^0.6.0", "flexboxgrid": "^6.3.0", "is-elevated": "^1.0.0", "lodash": "^3.10.1", @@ -36,9 +35,9 @@ }, "devDependencies": { "angular-mocks": "^1.4.7", - "electron-mocha": "^0.6.1", + "electron-mocha": "^0.8.0", "electron-packager": "^5.1.1", - "electron-prebuilt": "^0.31.2", + "electron-prebuilt": "^0.36.4", "gulp": "^3.9.0", "gulp-jshint": "^1.11.2", "gulp-sass": "^2.0.4", diff --git a/tests/src/dialog.spec.js b/tests/src/dialog.spec.js index 0389538c..be2bb9e2 100644 --- a/tests/src/dialog.spec.js +++ b/tests/src/dialog.spec.js @@ -1,5 +1,5 @@ var m = require('mochainon'); -var electronDialog = require('dialog'); +var electron = require('electron'); var dialog = require('../../lib/src/dialog'); describe('Dialog:', function() { @@ -10,7 +10,7 @@ describe('Dialog:', function() { describe('given the users performs a selection', function() { beforeEach(function() { - this.showOpenDialogStub = m.sinon.stub(electronDialog, 'showOpenDialog'); + this.showOpenDialogStub = m.sinon.stub(electron.dialog, 'showOpenDialog'); this.showOpenDialogStub.yields([ 'foo/bar' ]); });