From 4a58f9d73023e7e25268804ebc3d68c173300cbd Mon Sep 17 00:00:00 2001 From: Thomas Johansen Date: Wed, 3 Aug 2016 08:32:47 +0200 Subject: [PATCH 01/18] :arrow_up: electron@1.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 81d01d0fb..ae83bd4a9 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "0.37.8", + "electronVersion": "1.0.2", "dependencies": { "async": "0.2.6", "atom-keymap": "6.3.2", From e2210722f48e3691bacf2986bf67efe4e6d56520 Mon Sep 17 00:00:00 2001 From: Thomas Johansen Date: Tue, 23 Aug 2016 09:02:17 +0200 Subject: [PATCH 02/18] :arrow_up: electron@1.1.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae83bd4a9..faecab5ea 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "1.0.2", + "electronVersion": "1.1.3", "dependencies": { "async": "0.2.6", "atom-keymap": "6.3.2", From 874b555fde191bec88cf1fed631221421182f2fc Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 24 Aug 2016 12:44:49 -0700 Subject: [PATCH 03/18] :arrow_up: autocomplete-plus --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index faecab5ea..e27b59052 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "autocomplete-atom-api": "0.10.0", "autocomplete-css": "0.11.2", "autocomplete-html": "0.7.2", - "autocomplete-plus": "2.31.1", + "autocomplete-plus": "2.31.2", "autocomplete-snippets": "1.11.0", "autoflow": "0.27.0", "autosave": "0.23.1", From e7444b1ebebf3fcadc0589378071ad87e58529ce Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 24 Aug 2016 13:05:46 -0700 Subject: [PATCH 04/18] Add shims for legacy electron APIs Signed-off-by: Nathan Sobo --- exports/ipc.js | 7 +++++++ exports/remote.js | 7 +++++++ exports/web-frame.js | 7 +++++++ src/electron-shims.js | 7 +++++++ src/initialize-application-window.coffee | 1 + src/initialize-test-window.coffee | 1 + 6 files changed, 30 insertions(+) create mode 100644 exports/ipc.js create mode 100644 exports/remote.js create mode 100644 exports/web-frame.js create mode 100644 src/electron-shims.js diff --git a/exports/ipc.js b/exports/ipc.js new file mode 100644 index 000000000..9d1b1e3ee --- /dev/null +++ b/exports/ipc.js @@ -0,0 +1,7 @@ +module.exports = require('electron').ipcRenderer + +const Grim = require('grim') +Grim.deprecate('Use `require("electron").ipcRenderer` instead of `require("ipc")`') + +// Ensure each package that requires this shim causes a deprecation warning +delete require.cache[__filename] diff --git a/exports/remote.js b/exports/remote.js new file mode 100644 index 000000000..379ee43f6 --- /dev/null +++ b/exports/remote.js @@ -0,0 +1,7 @@ +module.exports = require('electron').remote + +const Grim = require('grim') +Grim.deprecate('Use `require("electron").remote` instead of `require("remote")`') + +// Ensure each package that requires this shim causes a deprecation warning +delete require.cache[__filename] diff --git a/exports/web-frame.js b/exports/web-frame.js new file mode 100644 index 000000000..0c97debfd --- /dev/null +++ b/exports/web-frame.js @@ -0,0 +1,7 @@ +module.exports = require('electron').webFrame + +const Grim = require('grim') +Grim.deprecate('Use `require("electron").webFrame` instead of `require("web-frame")`') + +// Ensure each package that requires this shim causes a deprecation warning +delete require.cache[__filename] diff --git a/src/electron-shims.js b/src/electron-shims.js new file mode 100644 index 000000000..ef625e6de --- /dev/null +++ b/src/electron-shims.js @@ -0,0 +1,7 @@ +const electron = require('electron') + +electron.ipcRenderer.sendChannel = function () { + const Grim = require('grim') + Grim.deprecate('Use `ipcRenderer.send` instead of `ipcRenderer.sendChannel`') + return this.send.apply(this, arguments) +} diff --git a/src/initialize-application-window.coffee b/src/initialize-application-window.coffee index 9787977e2..04784efa0 100644 --- a/src/initialize-application-window.coffee +++ b/src/initialize-application-window.coffee @@ -6,6 +6,7 @@ module.exports = ({blobStore}) -> {getWindowLoadSettings} = require './window-load-settings-helpers' {ipcRenderer} = require 'electron' {resourcePath, isSpec, devMode, env} = getWindowLoadSettings() + require '../src/electron-shims' updateProcessEnv(env) diff --git a/src/initialize-test-window.coffee b/src/initialize-test-window.coffee index d5423a5a5..a775ec3fb 100644 --- a/src/initialize-test-window.coffee +++ b/src/initialize-test-window.coffee @@ -19,6 +19,7 @@ module.exports = ({blobStore}) -> {getWindowLoadSettings} = require './window-load-settings-helpers' AtomEnvironment = require '../src/atom-environment' ApplicationDelegate = require '../src/application-delegate' + require '../src/electron-shims' {testRunnerPath, legacyTestRunnerPath, headless, logFile, testPaths} = getWindowLoadSettings() From c876fd76f8daf7c3bd5932cdb488f17980197698 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 24 Aug 2016 13:19:42 -0700 Subject: [PATCH 05/18] Add deprecated shims for invalid args to node path functions Signed-off-by: Nathan Sobo --- src/electron-shims.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/electron-shims.js b/src/electron-shims.js index ef625e6de..4906f19a5 100644 --- a/src/electron-shims.js +++ b/src/electron-shims.js @@ -1,5 +1,39 @@ +const path = require('path') const electron = require('electron') +const dirname = path.dirname +path.dirname = function (path) { + if (typeof path !== 'string') { + path = '' + path + const Grim = require('grim') + Grim.deprecate('Argument to `path.dirname` must be a string') + } + + return dirname(path) +} + +const extname = path.extname +path.extname = function (path) { + if (typeof path !== 'string') { + path = '' + path + const Grim = require('grim') + Grim.deprecate('Argument to `path.extname` must be a string') + } + + return extname(path) +} + +const basename = path.basename +path.basename = function (path, ext) { + if (typeof path !== 'string' || (ext !== undefined && typeof ext !== 'string')) { + path = '' + path + const Grim = require('grim') + Grim.deprecate('Arguments to `path.basename` must be strings') + } + + return basename(path, ext) +} + electron.ipcRenderer.sendChannel = function () { const Grim = require('grim') Grim.deprecate('Use `ipcRenderer.send` instead of `ipcRenderer.sendChannel`') From 937e595091cf35678cd08c38fa229875f5e3019f Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 24 Aug 2016 13:56:29 -0700 Subject: [PATCH 06/18] :arrow_up: electron to 1.2.8 Signed-off-by: Nathan Sobo --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e27b59052..504d4e765 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "1.1.3", + "electronVersion": "1.2.8", "dependencies": { "async": "0.2.6", "atom-keymap": "6.3.2", From 09a296fc0ecd928381f594991c3f237ec5a56b06 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 24 Aug 2016 13:57:25 -0700 Subject: [PATCH 07/18] Detect headless environment using process.type Signed-off-by: Nathan Sobo --- exports/atom.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exports/atom.js b/exports/atom.js index 7bb7cdb1e..b22a4cdfb 100644 --- a/exports/atom.js +++ b/exports/atom.js @@ -37,7 +37,7 @@ if (process.platform === 'win32') { // The following classes can't be used from a Task handler and should therefore // only be exported when not running as a child node process -if (!process.env.ATOM_SHELL_INTERNAL_RUN_AS_NODE) { +if (process.type === 'renderer') { atomExport.Task = require('../src/task') const TextEditor = (params) => { From db022e7779b2b797a6af606df8a25a285133d6ff Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 24 Aug 2016 13:57:43 -0700 Subject: [PATCH 08/18] Return void from beforeunload handler to allow window unload Signed-off-by: Nathan Sobo --- src/window-event-handler.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/window-event-handler.coffee b/src/window-event-handler.coffee index ea17cb41f..1a138bcaf 100644 --- a/src/window-event-handler.coffee +++ b/src/window-event-handler.coffee @@ -164,7 +164,8 @@ class WindowEventHandler else @applicationDelegate.didCancelWindowUnload() - confirmed + # Returning any non-void value stops the window from unloading + return true unless confirmed handleWindowUnload: => @atomEnvironment.destroy() From 5eea3dd4ebc95ac4347a4c850b4e5552e74c62d7 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 24 Aug 2016 15:25:40 -0700 Subject: [PATCH 09/18] :arrow_up: electron to 1.3.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 504d4e765..8b600b7b0 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "1.2.8", + "electronVersion": "1.3.4", "dependencies": { "async": "0.2.6", "atom-keymap": "6.3.2", From c928b9eb2cbbe0b1899626733024b01f3949273c Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 24 Aug 2016 15:40:43 -0700 Subject: [PATCH 10/18] :arrow_up: oniguruma and all dependent modules/packages Signed-off-by: Nathan Sobo --- package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8b600b7b0..ca6085266 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "devtron": "1.1.0", "event-kit": "^2.1.0", "find-parent-dir": "^0.3.0", - "first-mate": "^5.1.1", + "first-mate": "6.0.0", "fs-plus": "2.9.1", "fstream": "0.1.24", "fuzzaldrin": "^2.1", @@ -43,7 +43,7 @@ "mocha": "2.5.1", "normalize-package-data": "^2.0.0", "nslog": "^3", - "oniguruma": "^5", + "oniguruma": "6.1.0", "pathwatcher": "~6.5", "property-accessors": "^1.1.3", "random-words": "0.0.1", @@ -88,7 +88,7 @@ "autosave": "0.23.1", "background-tips": "0.26.1", "bookmarks": "0.42.0", - "bracket-matcher": "0.82.1", + "bracket-matcher": "0.82.2", "command-palette": "0.38.0", "deprecation-cop": "0.54.1", "dev-live-reload": "0.47.0", @@ -103,7 +103,7 @@ "incompatible-packages": "0.26.1", "keybinding-resolver": "0.35.0", "line-ending-selector": "0.5.0", - "link": "0.31.1", + "link": "0.31.2", "markdown-preview": "0.158.3", "metrics": "1.0.0", "notifications": "0.65.1", @@ -113,7 +113,7 @@ "snippets": "1.0.2", "spell-check": "0.68.2", "status-bar": "1.4.1", - "styleguide": "0.47.0", + "styleguide": "0.47.2", "symbols-view": "0.113.1", "tabs": "0.101.0", "timecop": "0.33.2", From 6ca1676bcb476b18dff10a1f0b7e448c998e643d Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 24 Aug 2016 16:16:25 -0700 Subject: [PATCH 11/18] Access auto-updater through new electron API in AtomEnvironment spec --- spec/atom-environment-spec.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/atom-environment-spec.coffee b/spec/atom-environment-spec.coffee index cd8408a73..f3cb83bf0 100644 --- a/spec/atom-environment-spec.coffee +++ b/spec/atom-environment-spec.coffee @@ -407,7 +407,7 @@ describe "AtomEnvironment", -> updateAvailableHandler = jasmine.createSpy("update-available-handler") subscription = atom.onUpdateAvailable updateAvailableHandler - autoUpdater = require('electron').remote.require('auto-updater') + autoUpdater = require('electron').remote.autoUpdater autoUpdater.emit 'update-downloaded', null, "notes", "version" waitsFor -> From 1ddce8b4a0a962df74c5daeddf1f0973d1dce59c Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 24 Aug 2016 16:19:41 -0700 Subject: [PATCH 12/18] Expect double quotes for multi-word font names in spec getComputedStyle seems to return font families this way in Chrome 52 --- spec/workspace-element-spec.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/workspace-element-spec.coffee b/spec/workspace-element-spec.coffee index cfe21cb18..b5812b7b2 100644 --- a/spec/workspace-element-spec.coffee +++ b/spec/workspace-element-spec.coffee @@ -48,12 +48,12 @@ describe "WorkspaceElement", -> it "updates the font-family based on the 'editor.fontFamily' config value", -> initialCharWidth = editor.getDefaultCharWidth() fontFamily = atom.config.get('editor.fontFamily') - fontFamily += ", 'Apple Color Emoji'" if process.platform is 'darwin' + fontFamily += ', "Apple Color Emoji"' if process.platform is 'darwin' expect(getComputedStyle(editorElement).fontFamily).toBe fontFamily atom.config.set('editor.fontFamily', 'sans-serif') fontFamily = atom.config.get('editor.fontFamily') - fontFamily += ", 'Apple Color Emoji'" if process.platform is 'darwin' + fontFamily += ', "Apple Color Emoji"' if process.platform is 'darwin' expect(getComputedStyle(editorElement).fontFamily).toBe fontFamily expect(editor.getDefaultCharWidth()).not.toBe initialCharWidth From 052cf0dbda99d56bd01e483b1299e177860b62fd Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 25 Aug 2016 09:54:21 -0700 Subject: [PATCH 13/18] Add shims for deprecated shell, clipboard requires --- exports/clipboard.js | 7 +++++++ exports/shell.js | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 exports/clipboard.js create mode 100644 exports/shell.js diff --git a/exports/clipboard.js b/exports/clipboard.js new file mode 100644 index 000000000..3594b3342 --- /dev/null +++ b/exports/clipboard.js @@ -0,0 +1,7 @@ +module.exports = require('electron').clipboard + +const Grim = require('grim') +Grim.deprecate('Use `require("electron").clipboard` instead of `require("clipboard")`') + +// Ensure each package that requires this shim causes a deprecation warning +delete require.cache[__filename] diff --git a/exports/shell.js b/exports/shell.js new file mode 100644 index 000000000..2424455a6 --- /dev/null +++ b/exports/shell.js @@ -0,0 +1,7 @@ +module.exports = require('electron').shell + +const Grim = require('grim') +Grim.deprecate('Use `require("electron").shell` instead of `require("shell")`') + +// Ensure each package that requires this shim causes a deprecation warning +delete require.cache[__filename] From ecb262b58681eec06c58a05a85f4cf42707e26bb Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 25 Aug 2016 11:03:51 -0700 Subject: [PATCH 14/18] Add deprecated shim for removed electron remote requires --- src/electron-shims.js | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/electron-shims.js b/src/electron-shims.js index 4906f19a5..3f8e1c215 100644 --- a/src/electron-shims.js +++ b/src/electron-shims.js @@ -39,3 +39,42 @@ electron.ipcRenderer.sendChannel = function () { Grim.deprecate('Use `ipcRenderer.send` instead of `ipcRenderer.sendChannel`') return this.send.apply(this, arguments) } + +const remoteRequire = electron.remote.require +electron.remote.require = function (moduleName) { + const Grim = require('grim') + switch (moduleName) { + case 'menu': + Grim.deprecate('Use `remote.Menu` instead of `remote.require("menu")`') + return this.Menu + case 'menu-item': + Grim.deprecate('Use `remote.MenuItem` instead of `remote.require("menu-item")`') + return this.MenuItem + case 'browser-window': + Grim.deprecate('Use `remote.BrowserWindow` instead of `remote.require("browser-window")`') + return this.BrowserWindow + case 'dialog': + Grim.deprecate('Use `remote.Dialog` instead of `remote.require("dialog")`') + return this.Dialog + case 'app': + Grim.deprecate('Use `remote.app` instead of `remote.require("app")`') + return this.app + case 'crash-reporter': + Grim.deprecate('Use `remote.crashReporter` instead of `remote.require("crashReporter")`') + return this.crashReporter + case 'global-shortcut': + Grim.deprecate('Use `remote.globalShortcut` instead of `remote.require("global-shortcut")`') + return this.globalShortcut + case 'clipboard': + Grim.deprecate('Use `remote.clipboard` instead of `remote.require("clipboard")`') + return this.clipboard + case 'native-image': + Grim.deprecate('Use `remote.nativeImage` instead of `remote.require("native-image")`') + return this.nativeImage + case 'tray': + Grim.deprecate('Use `remote.Tray` instead of `remote.require("tray")`') + return this.Tray + default: + return remoteRequire.call(this, moduleName) + } +} From 191a50bf2de5ae0873b859e5e8f8c11c0043c980 Mon Sep 17 00:00:00 2001 From: simurai Date: Sat, 27 Aug 2016 00:33:33 +0900 Subject: [PATCH 15/18] Fix position of atom-pane-resize-handle As of Chromium 52 absolutely positioned flexbox items are taken out of the flow. See https://developers.google.com/web/updates/2016/06/absolute-positioned-children?hl=en To keep it in the flow, we use an absolutely positioned pseudo-element instead. --- static/panes.less | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/static/panes.less b/static/panes.less index 89c9569a8..8e10cebfe 100644 --- a/static/panes.less +++ b/static/panes.less @@ -16,8 +16,13 @@ atom-pane-container { min-width: 0; & > atom-pane-resize-handle { - position: absolute; - z-index: 3; + position: relative; + &:before { + content: ""; + position: absolute; + z-index: 3; + background-color: fade(red, 40%); + } } } @@ -25,11 +30,14 @@ atom-pane-container { flex-direction: column; & > atom-pane-resize-handle { - width: 100%; - height: 8px; - margin-top: -4px; - cursor: row-resize; border-bottom: none; + &:before { + height: 8px; + top: -4px; + left: 0; + right: 0; + cursor: row-resize; + } } } @@ -37,11 +45,14 @@ atom-pane-container { flex-direction: row; & > atom-pane-resize-handle { - width: 8px; - height: 100%; - margin-left: -4px; - cursor: col-resize; border-right: none; + &:before { + width: 8px; + left: -4px; + top: 0; + bottom: 0; + cursor: col-resize; + } } } From 0dced471831a035767075186cc1f77d48d4f22b8 Mon Sep 17 00:00:00 2001 From: simurai Date: Sat, 27 Aug 2016 00:47:07 +0900 Subject: [PATCH 16/18] :art: Remove test background --- static/panes.less | 1 - 1 file changed, 1 deletion(-) diff --git a/static/panes.less b/static/panes.less index 8e10cebfe..d2290d42c 100644 --- a/static/panes.less +++ b/static/panes.less @@ -21,7 +21,6 @@ atom-pane-container { content: ""; position: absolute; z-index: 3; - background-color: fade(red, 40%); } } } From 905ba7becfb38e94eeb4c42391f3cb6131bedb46 Mon Sep 17 00:00:00 2001 From: Thomas Johansen Date: Sun, 4 Sep 2016 12:12:48 +0200 Subject: [PATCH 17/18] :arrow_up: electron@1.3.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ca6085266..d9b0650cf 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "1.3.4", + "electronVersion": "1.3.5", "dependencies": { "async": "0.2.6", "atom-keymap": "6.3.2", From bb7ff6d53512a88bfd1801b3ddeca5f25e7c0ecc Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Mon, 5 Sep 2016 11:31:56 +0200 Subject: [PATCH 18/18] :art: --- spec/main-process/atom-application.test.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/spec/main-process/atom-application.test.js b/spec/main-process/atom-application.test.js index 408ea84ff..7fd68e038 100644 --- a/spec/main-process/atom-application.test.js +++ b/spec/main-process/atom-application.test.js @@ -223,9 +223,7 @@ describe('AtomApplication', function () { const window1 = atomApplication.launch(parseCommandLine([dirAPath, dirBPath])) await focusWindow(window1) - await new Promise(function (resolve) { - setTimeout(resolve, 1000) - }) + await timeoutPromise(1000) let treeViewPaths = await evalInWebContents(window1.browserWindow.webContents, function (sendBackToMainProcess) { sendBackToMainProcess(