From 74c0e79986c25d04bdd57f80a72840aa91747861 Mon Sep 17 00:00:00 2001 From: Wliu <50Wliu@users.noreply.github.com> Date: Mon, 16 Nov 2015 09:34:29 -0500 Subject: [PATCH 01/43] :arrow_up: electron@0.35.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7a586cd4a..ab90b1a55 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "0.34.3", + "electronVersion": "0.35.0", "dependencies": { "async": "0.2.6", "atom-keymap": "^6.1.1", From 6cd480b37e486738f376a7692f609bd673831c0a Mon Sep 17 00:00:00 2001 From: Wliu Date: Tue, 17 Nov 2015 21:16:09 -0500 Subject: [PATCH 02/43] Fix Electron deprecations --- spec/atom-environment-spec.coffee | 6 +++--- spec/atom-reporter.coffee | 2 +- spec/jasmine-test-runner.coffee | 2 +- spec/text-editor-component-spec.js | 2 +- spec/window-event-handler-spec.coffee | 2 +- spec/workspace-element-spec.coffee | 2 +- src/application-delegate.coffee | 4 ++-- src/atom-environment.coffee | 6 +++--- src/browser/application-menu.coffee | 2 +- src/browser/atom-application.coffee | 2 +- src/browser/atom-portable.coffee | 2 +- src/browser/atom-window.coffee | 2 +- src/browser/auto-update-manager.coffee | 2 +- src/browser/auto-updater-win32.coffee | 2 +- src/browser/main.coffee | 4 ++-- src/initialize-test-window.coffee | 2 +- src/menu-manager.coffee | 2 +- src/module-cache.coffee | 2 +- src/register-default-commands.coffee | 2 +- src/text-editor-component.coffee | 2 +- src/workspace-element.coffee | 2 +- static/index.js | 2 +- 22 files changed, 28 insertions(+), 28 deletions(-) diff --git a/spec/atom-environment-spec.coffee b/spec/atom-environment-spec.coffee index 23f8e0e51..2d8fd70ac 100644 --- a/spec/atom-environment-spec.coffee +++ b/spec/atom-environment-spec.coffee @@ -47,7 +47,7 @@ describe "AtomEnvironment", -> describe "window onerror handler", -> beforeEach -> spyOn atom, 'openDevTools' - spyOn atom, 'executeJavaScriptInDevTools' + spyOn atom, 'webContents.executeJavaScriptInDevTools' it "will open the dev tools when an error is triggered", -> try @@ -56,7 +56,7 @@ describe "AtomEnvironment", -> window.onerror.call(window, e.toString(), 'abc', 2, 3, e) expect(atom.openDevTools).toHaveBeenCalled() - expect(atom.executeJavaScriptInDevTools).toHaveBeenCalled() + expect(atom.webContents.executeJavaScriptInDevTools).toHaveBeenCalled() describe "::onWillThrowError", -> willThrowSpy = null @@ -91,7 +91,7 @@ describe "AtomEnvironment", -> expect(willThrowSpy).toHaveBeenCalled() expect(atom.openDevTools).not.toHaveBeenCalled() - expect(atom.executeJavaScriptInDevTools).not.toHaveBeenCalled() + expect(atom.webContents.executeJavaScriptInDevTools).not.toHaveBeenCalled() describe "::onDidThrowError", -> didThrowSpy = null diff --git a/spec/atom-reporter.coffee b/spec/atom-reporter.coffee index 35caecb34..9bc4bdbf9 100644 --- a/spec/atom-reporter.coffee +++ b/spec/atom-reporter.coffee @@ -173,7 +173,7 @@ class AtomReporter listen document, 'click', '.stack-trace', (event) -> event.currentTarget.classList.toggle('expanded') - @reloadButton.addEventListener('click', -> require('ipc').send('call-window-method', 'restart')) + @reloadButton.addEventListener('click', -> require('ipc-main').send('call-window-method', 'restart')) updateSpecCounts: -> if @skippedCount diff --git a/spec/jasmine-test-runner.coffee b/spec/jasmine-test-runner.coffee index 7ef34ce54..64191c1f4 100644 --- a/spec/jasmine-test-runner.coffee +++ b/spec/jasmine-test-runner.coffee @@ -2,7 +2,7 @@ fs = require 'fs' _ = require 'underscore-plus' fs = require 'fs-plus' path = require 'path' -ipc = require 'ipc' +ipc = require 'ipc-main' module.exports = ({logFile, headless, testPaths, buildAtomEnvironment}) -> window[key] = value for key, value of require '../vendor/jasmine' diff --git a/spec/text-editor-component-spec.js b/spec/text-editor-component-spec.js index 609d20291..a7b6818f5 100644 --- a/spec/text-editor-component-spec.js +++ b/spec/text-editor-component-spec.js @@ -4585,7 +4585,7 @@ describe('TextEditorComponent', function () { it('pastes the previously selected text at the clicked location', async function () { let clipboardWrittenTo = false - spyOn(require('ipc'), 'send').andCallFake(function (eventName, selectedText) { + spyOn(require('ipc-main'), 'send').andCallFake(function (eventName, selectedText) { if (eventName === 'write-text-to-selection-clipboard') { require('../src/safe-clipboard').writeText(selectedText, 'selection') clipboardWrittenTo = true diff --git a/spec/window-event-handler-spec.coffee b/spec/window-event-handler-spec.coffee index 3148942b4..9cd68d5e8 100644 --- a/spec/window-event-handler-spec.coffee +++ b/spec/window-event-handler-spec.coffee @@ -4,7 +4,7 @@ fs = require 'fs-plus' temp = require 'temp' TextEditor = require '../src/text-editor' WindowEventHandler = require '../src/window-event-handler' -ipc = require 'ipc' +ipc = require 'ipc-main' describe "WindowEventHandler", -> [projectPath, windowEventHandler] = [] diff --git a/spec/workspace-element-spec.coffee b/spec/workspace-element-spec.coffee index 09c54d5ea..110b8d562 100644 --- a/spec/workspace-element-spec.coffee +++ b/spec/workspace-element-spec.coffee @@ -1,4 +1,4 @@ -ipc = require 'ipc' +ipc = require 'ipc-main' path = require 'path' temp = require('temp').track() diff --git a/src/application-delegate.coffee b/src/application-delegate.coffee index 1999c6e83..ebd497c47 100644 --- a/src/application-delegate.coffee +++ b/src/application-delegate.coffee @@ -1,5 +1,5 @@ _ = require 'underscore-plus' -ipc = require 'ipc' +ipc = require 'ipc-main' remote = require 'remote' shell = require 'shell' webFrame = require 'web-frame' @@ -72,7 +72,7 @@ class ApplicationDelegate remote.getCurrentWindow().toggleDevTools() executeJavaScriptInWindowDevTools: (code) -> - remote.getCurrentWindow().executeJavaScriptInDevTools(code) + remote.getCurrentWindow().webContents.executeJavaScriptInDevTools(code) setWindowDocumentEdited: (edited) -> ipc.send("call-window-method", "setDocumentEdited", edited) diff --git a/src/atom-environment.coffee b/src/atom-environment.coffee index 938010607..6082ac4d0 100644 --- a/src/atom-environment.coffee +++ b/src/atom-environment.coffee @@ -1,6 +1,6 @@ crypto = require 'crypto' path = require 'path' -ipc = require 'ipc' +ipc = require 'ipc-main' _ = require 'underscore-plus' {deprecate} = require 'grim' @@ -671,7 +671,7 @@ class AtomEnvironment extends Model if openDevTools @openDevTools() - @executeJavaScriptInDevTools('DevToolsAPI.showConsole()') + @webContents.executeJavaScriptInDevTools('DevToolsAPI.showConsole()') @emitter.emit 'did-throw-error', {message, url, line, column, originalError} @@ -729,7 +729,7 @@ class AtomEnvironment extends Model @applicationDelegate.toggleWindowDevTools() # Extended: Execute code in dev tools. - executeJavaScriptInDevTools: (code) -> + webContents.executeJavaScriptInDevTools: (code) -> @applicationDelegate.executeJavaScriptInWindowDevTools(code) ### diff --git a/src/browser/application-menu.coffee b/src/browser/application-menu.coffee index 27b9df8e1..b9b4eed92 100644 --- a/src/browser/application-menu.coffee +++ b/src/browser/application-menu.coffee @@ -1,5 +1,5 @@ app = require 'app' -ipc = require 'ipc' +ipc = require 'ipc-main' Menu = require 'menu' _ = require 'underscore-plus' diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index 8bb44349e..4001fba8e 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -9,7 +9,7 @@ app = require 'app' dialog = require 'dialog' shell = require 'shell' fs = require 'fs-plus' -ipc = require 'ipc' +ipc = require 'ipc-main' path = require 'path' os = require 'os' net = require 'net' diff --git a/src/browser/atom-portable.coffee b/src/browser/atom-portable.coffee index 5f8f10cf6..37324e615 100644 --- a/src/browser/atom-portable.coffee +++ b/src/browser/atom-portable.coffee @@ -1,6 +1,6 @@ fs = require 'fs-plus' path = require 'path' -ipc = require 'ipc' +ipc = require 'ipc-main' module.exports = class AtomPortable diff --git a/src/browser/atom-window.coffee b/src/browser/atom-window.coffee index c507b634c..4ab13ef0e 100644 --- a/src/browser/atom-window.coffee +++ b/src/browser/atom-window.coffee @@ -81,7 +81,7 @@ class AtomWindow loadSettings = _.clone(loadSettingsObj) delete loadSettings['windowState'] - @browserWindow.loadUrl url.format + @browserWindow.loadURL url.format protocol: 'file' pathname: "#{@resourcePath}/static/index.html" slashes: true diff --git a/src/browser/auto-update-manager.coffee b/src/browser/auto-update-manager.coffee index 55ab2462b..f4a493829 100644 --- a/src/browser/auto-update-manager.coffee +++ b/src/browser/auto-update-manager.coffee @@ -31,7 +31,7 @@ class AutoUpdateManager @setState(ErrorState) console.error "Error Downloading Update: #{message}" - autoUpdater.setFeedUrl @feedUrl + autoUpdater.setFeedURL @feedUrl autoUpdater.on 'checking-for-update', => @setState(CheckingState) diff --git a/src/browser/auto-updater-win32.coffee b/src/browser/auto-updater-win32.coffee index 4d043ac4e..13dcd9a1e 100644 --- a/src/browser/auto-updater-win32.coffee +++ b/src/browser/auto-updater-win32.coffee @@ -5,7 +5,7 @@ SquirrelUpdate = require './squirrel-update' class AutoUpdater _.extend @prototype, EventEmitter.prototype - setFeedUrl: (@updateUrl) -> + setFeedURL: (@updateUrl) -> quitAndInstall: -> if SquirrelUpdate.existsSync() diff --git a/src/browser/main.coffee b/src/browser/main.coffee index ca9d7e3ae..2a50cba94 100644 --- a/src/browser/main.coffee +++ b/src/browser/main.coffee @@ -59,7 +59,7 @@ setupCrashReporter = -> setupAtomHome = ({setPortable}) -> return if process.env.ATOM_HOME - atomHome = path.join(app.getHomeDir(), '.atom') + atomHome = path.join(app.getPath(), '.atom') AtomPortable = require './atom-portable' if setPortable and not AtomPortable.isPortableInstall(process.platform, process.env.ATOM_HOME, atomHome) @@ -142,7 +142,7 @@ parseCommandLine = -> socketPath = args['socket-path'] profileStartup = args['profile-startup'] urlsToOpen = [] - devResourcePath = process.env.ATOM_DEV_RESOURCE_PATH ? path.join(app.getHomeDir(), 'github', 'atom') + devResourcePath = process.env.ATOM_DEV_RESOURCE_PATH ? path.join(app.getPath(), 'github', 'atom') setPortable = args.portable if args['resource-path'] diff --git a/src/initialize-test-window.coffee b/src/initialize-test-window.coffee index 375581a96..2eea1ec6a 100644 --- a/src/initialize-test-window.coffee +++ b/src/initialize-test-window.coffee @@ -14,7 +14,7 @@ module.exports = ({blobStore}) -> try path = require 'path' - ipc = require 'ipc' + ipc = require 'ipc-main' {getWindowLoadSettings} = require './window-load-settings-helpers' AtomEnvironment = require '../src/atom-environment' ApplicationDelegate = require '../src/application-delegate' diff --git a/src/menu-manager.coffee b/src/menu-manager.coffee index fa78d3cd6..7f73fdb41 100644 --- a/src/menu-manager.coffee +++ b/src/menu-manager.coffee @@ -1,7 +1,7 @@ path = require 'path' _ = require 'underscore-plus' -ipc = require 'ipc' +ipc = require 'ipc-main' CSON = require 'season' fs = require 'fs-plus' {Disposable} = require 'event-kit' diff --git a/src/module-cache.coffee b/src/module-cache.coffee index e9245cf40..a2840a864 100644 --- a/src/module-cache.coffee +++ b/src/module-cache.coffee @@ -208,7 +208,7 @@ registerBuiltins = (devMode) -> cache.builtins[builtin] = path.join(commonRoot, "#{builtin}.js") rendererRoot = path.join(atomShellRoot, 'renderer', 'api', 'lib') - rendererBuiltins = ['ipc', 'remote'] + rendererBuiltins = ['ipc-renderer', 'remote'] for builtin in rendererBuiltins cache.builtins[builtin] = path.join(rendererRoot, "#{builtin}.js") diff --git a/src/register-default-commands.coffee b/src/register-default-commands.coffee index 6c838b8c0..b873b0728 100644 --- a/src/register-default-commands.coffee +++ b/src/register-default-commands.coffee @@ -1,4 +1,4 @@ -ipc = require 'ipc' +ipc = require 'ipc-main' module.exports = ({commandRegistry, commandInstaller, config}) -> commandRegistry.add 'atom-workspace', diff --git a/src/text-editor-component.coffee b/src/text-editor-component.coffee index 430b0c0fd..525c7a3af 100644 --- a/src/text-editor-component.coffee +++ b/src/text-editor-component.coffee @@ -2,7 +2,7 @@ _ = require 'underscore-plus' scrollbarStyle = require 'scrollbar-style' {Range, Point} = require 'text-buffer' {CompositeDisposable} = require 'event-kit' -ipc = require 'ipc' +ipc = require 'ipc-main' TextEditorPresenter = require './text-editor-presenter' GutterContainerComponent = require './gutter-container-component' diff --git a/src/workspace-element.coffee b/src/workspace-element.coffee index fb4b19dc3..5b734c3f0 100644 --- a/src/workspace-element.coffee +++ b/src/workspace-element.coffee @@ -1,4 +1,4 @@ -ipc = require 'ipc' +ipc = require 'ipc-main' path = require 'path' {Disposable, CompositeDisposable} = require 'event-kit' Grim = require 'grim' diff --git a/static/index.js b/static/index.js index 2a5bcad3a..d62efd4f0 100644 --- a/static/index.js +++ b/static/index.js @@ -83,7 +83,7 @@ var initialize = require(loadSettings.windowInitializationScript) initialize({blobStore: blobStore}) - require('ipc').sendChannel('window-command', 'window:loaded') + require('ipc-main').send('window-command', 'window:loaded') } function setupCsonCache (cacheDir) { From 6c811433cfe99b6d1432e263469fde77cee799c7 Mon Sep 17 00:00:00 2001 From: Wliu Date: Tue, 17 Nov 2015 23:11:55 -0500 Subject: [PATCH 03/43] Fix executeJavaScriptInDevTools The joy of Atom and Electron having identically-named functions --- spec/atom-environment-spec.coffee | 6 +++--- src/atom-environment.coffee | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/spec/atom-environment-spec.coffee b/spec/atom-environment-spec.coffee index 2d8fd70ac..23f8e0e51 100644 --- a/spec/atom-environment-spec.coffee +++ b/spec/atom-environment-spec.coffee @@ -47,7 +47,7 @@ describe "AtomEnvironment", -> describe "window onerror handler", -> beforeEach -> spyOn atom, 'openDevTools' - spyOn atom, 'webContents.executeJavaScriptInDevTools' + spyOn atom, 'executeJavaScriptInDevTools' it "will open the dev tools when an error is triggered", -> try @@ -56,7 +56,7 @@ describe "AtomEnvironment", -> window.onerror.call(window, e.toString(), 'abc', 2, 3, e) expect(atom.openDevTools).toHaveBeenCalled() - expect(atom.webContents.executeJavaScriptInDevTools).toHaveBeenCalled() + expect(atom.executeJavaScriptInDevTools).toHaveBeenCalled() describe "::onWillThrowError", -> willThrowSpy = null @@ -91,7 +91,7 @@ describe "AtomEnvironment", -> expect(willThrowSpy).toHaveBeenCalled() expect(atom.openDevTools).not.toHaveBeenCalled() - expect(atom.webContents.executeJavaScriptInDevTools).not.toHaveBeenCalled() + expect(atom.executeJavaScriptInDevTools).not.toHaveBeenCalled() describe "::onDidThrowError", -> didThrowSpy = null diff --git a/src/atom-environment.coffee b/src/atom-environment.coffee index 6082ac4d0..5afdb1f8d 100644 --- a/src/atom-environment.coffee +++ b/src/atom-environment.coffee @@ -671,7 +671,7 @@ class AtomEnvironment extends Model if openDevTools @openDevTools() - @webContents.executeJavaScriptInDevTools('DevToolsAPI.showConsole()') + @executeJavaScriptInDevTools('DevToolsAPI.showConsole()') @emitter.emit 'did-throw-error', {message, url, line, column, originalError} @@ -729,7 +729,7 @@ class AtomEnvironment extends Model @applicationDelegate.toggleWindowDevTools() # Extended: Execute code in dev tools. - webContents.executeJavaScriptInDevTools: (code) -> + executeJavaScriptInDevTools: (code) -> @applicationDelegate.executeJavaScriptInWindowDevTools(code) ### From d2a86e2466960f49314f34a4b33d5f1beafa5792 Mon Sep 17 00:00:00 2001 From: Wliu Date: Wed, 18 Nov 2015 18:46:38 -0500 Subject: [PATCH 04/43] Add 'home' argument to app.getPath() --- src/browser/main.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/browser/main.coffee b/src/browser/main.coffee index 2a50cba94..df8b3b74a 100644 --- a/src/browser/main.coffee +++ b/src/browser/main.coffee @@ -59,7 +59,7 @@ setupCrashReporter = -> setupAtomHome = ({setPortable}) -> return if process.env.ATOM_HOME - atomHome = path.join(app.getPath(), '.atom') + atomHome = path.join(app.getPath('home'), '.atom') AtomPortable = require './atom-portable' if setPortable and not AtomPortable.isPortableInstall(process.platform, process.env.ATOM_HOME, atomHome) @@ -142,7 +142,7 @@ parseCommandLine = -> socketPath = args['socket-path'] profileStartup = args['profile-startup'] urlsToOpen = [] - devResourcePath = process.env.ATOM_DEV_RESOURCE_PATH ? path.join(app.getPath(), 'github', 'atom') + devResourcePath = process.env.ATOM_DEV_RESOURCE_PATH ? path.join(app.getPath('home'), 'github', 'atom') setPortable = args.portable if args['resource-path'] From fec1507ff48f984ef978afb5d09eaf8d17f612ae Mon Sep 17 00:00:00 2001 From: Wliu Date: Wed, 18 Nov 2015 21:10:40 -0500 Subject: [PATCH 05/43] Require ipc-renderer where it belongs --- spec/jasmine-test-runner.coffee | 2 +- spec/text-editor-component-spec.js | 2 +- spec/window-event-handler-spec.coffee | 2 +- spec/workspace-element-spec.coffee | 2 +- src/application-delegate.coffee | 2 +- src/atom-environment.coffee | 2 +- src/browser/atom-portable.coffee | 2 +- src/initialize-test-window.coffee | 2 +- src/menu-manager.coffee | 2 +- src/register-default-commands.coffee | 2 +- src/text-editor-component.coffee | 2 +- src/workspace-element.coffee | 2 +- static/index.js | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/spec/jasmine-test-runner.coffee b/spec/jasmine-test-runner.coffee index 64191c1f4..8192d4328 100644 --- a/spec/jasmine-test-runner.coffee +++ b/spec/jasmine-test-runner.coffee @@ -2,7 +2,7 @@ fs = require 'fs' _ = require 'underscore-plus' fs = require 'fs-plus' path = require 'path' -ipc = require 'ipc-main' +ipc = require 'ipc-renderer' module.exports = ({logFile, headless, testPaths, buildAtomEnvironment}) -> window[key] = value for key, value of require '../vendor/jasmine' diff --git a/spec/text-editor-component-spec.js b/spec/text-editor-component-spec.js index a7b6818f5..c6062d0ec 100644 --- a/spec/text-editor-component-spec.js +++ b/spec/text-editor-component-spec.js @@ -4585,7 +4585,7 @@ describe('TextEditorComponent', function () { it('pastes the previously selected text at the clicked location', async function () { let clipboardWrittenTo = false - spyOn(require('ipc-main'), 'send').andCallFake(function (eventName, selectedText) { + spyOn(require('ipc-renderer'), 'send').andCallFake(function (eventName, selectedText) { if (eventName === 'write-text-to-selection-clipboard') { require('../src/safe-clipboard').writeText(selectedText, 'selection') clipboardWrittenTo = true diff --git a/spec/window-event-handler-spec.coffee b/spec/window-event-handler-spec.coffee index 9cd68d5e8..052fed8c0 100644 --- a/spec/window-event-handler-spec.coffee +++ b/spec/window-event-handler-spec.coffee @@ -4,7 +4,7 @@ fs = require 'fs-plus' temp = require 'temp' TextEditor = require '../src/text-editor' WindowEventHandler = require '../src/window-event-handler' -ipc = require 'ipc-main' +ipc = require 'ipc-renderer' describe "WindowEventHandler", -> [projectPath, windowEventHandler] = [] diff --git a/spec/workspace-element-spec.coffee b/spec/workspace-element-spec.coffee index 110b8d562..01dddc5b7 100644 --- a/spec/workspace-element-spec.coffee +++ b/spec/workspace-element-spec.coffee @@ -1,4 +1,4 @@ -ipc = require 'ipc-main' +ipc = require 'ipc-renderer' path = require 'path' temp = require('temp').track() diff --git a/src/application-delegate.coffee b/src/application-delegate.coffee index c5b65a4c8..d9a032fef 100644 --- a/src/application-delegate.coffee +++ b/src/application-delegate.coffee @@ -1,5 +1,5 @@ _ = require 'underscore-plus' -ipc = require 'ipc-main' +ipc = require 'ipc-renderer' remote = require 'remote' shell = require 'shell' webFrame = require 'web-frame' diff --git a/src/atom-environment.coffee b/src/atom-environment.coffee index d2e069a85..a0049e50b 100644 --- a/src/atom-environment.coffee +++ b/src/atom-environment.coffee @@ -1,6 +1,6 @@ crypto = require 'crypto' path = require 'path' -ipc = require 'ipc-main' +ipc = require 'ipc-renderer' _ = require 'underscore-plus' {deprecate} = require 'grim' diff --git a/src/browser/atom-portable.coffee b/src/browser/atom-portable.coffee index 37324e615..eeda81152 100644 --- a/src/browser/atom-portable.coffee +++ b/src/browser/atom-portable.coffee @@ -1,6 +1,6 @@ fs = require 'fs-plus' path = require 'path' -ipc = require 'ipc-main' +ipc = require 'ipc-renderer' module.exports = class AtomPortable diff --git a/src/initialize-test-window.coffee b/src/initialize-test-window.coffee index b90eb0ed2..ad085730e 100644 --- a/src/initialize-test-window.coffee +++ b/src/initialize-test-window.coffee @@ -14,7 +14,7 @@ module.exports = ({blobStore}) -> try path = require 'path' - ipc = require 'ipc-main' + ipc = require 'ipc-renderer' {getWindowLoadSettings} = require './window-load-settings-helpers' AtomEnvironment = require '../src/atom-environment' ApplicationDelegate = require '../src/application-delegate' diff --git a/src/menu-manager.coffee b/src/menu-manager.coffee index 7f73fdb41..9eabcb697 100644 --- a/src/menu-manager.coffee +++ b/src/menu-manager.coffee @@ -1,7 +1,7 @@ path = require 'path' _ = require 'underscore-plus' -ipc = require 'ipc-main' +ipc = require 'ipc-renderer' CSON = require 'season' fs = require 'fs-plus' {Disposable} = require 'event-kit' diff --git a/src/register-default-commands.coffee b/src/register-default-commands.coffee index b873b0728..7e8a728bc 100644 --- a/src/register-default-commands.coffee +++ b/src/register-default-commands.coffee @@ -1,4 +1,4 @@ -ipc = require 'ipc-main' +ipc = require 'ipc-renderer' module.exports = ({commandRegistry, commandInstaller, config}) -> commandRegistry.add 'atom-workspace', diff --git a/src/text-editor-component.coffee b/src/text-editor-component.coffee index 525c7a3af..c0f1486b5 100644 --- a/src/text-editor-component.coffee +++ b/src/text-editor-component.coffee @@ -2,7 +2,7 @@ _ = require 'underscore-plus' scrollbarStyle = require 'scrollbar-style' {Range, Point} = require 'text-buffer' {CompositeDisposable} = require 'event-kit' -ipc = require 'ipc-main' +ipc = require 'ipc-renderer' TextEditorPresenter = require './text-editor-presenter' GutterContainerComponent = require './gutter-container-component' diff --git a/src/workspace-element.coffee b/src/workspace-element.coffee index 5b734c3f0..89e990c66 100644 --- a/src/workspace-element.coffee +++ b/src/workspace-element.coffee @@ -1,4 +1,4 @@ -ipc = require 'ipc-main' +ipc = require 'ipc-renderer' path = require 'path' {Disposable, CompositeDisposable} = require 'event-kit' Grim = require 'grim' diff --git a/static/index.js b/static/index.js index d62efd4f0..651f2b54c 100644 --- a/static/index.js +++ b/static/index.js @@ -83,7 +83,7 @@ var initialize = require(loadSettings.windowInitializationScript) initialize({blobStore: blobStore}) - require('ipc-main').send('window-command', 'window:loaded') + require('ipc-renderer').send('window-command', 'window:loaded') } function setupCsonCache (cacheDir) { From 5fca7b6582dc54c812e5ce438d06e6ff9de778eb Mon Sep 17 00:00:00 2001 From: Wliu Date: Wed, 18 Nov 2015 21:20:45 -0500 Subject: [PATCH 06/43] More ipc-renderer fixes --- spec/atom-reporter.coffee | 2 +- src/browser/application-menu.coffee | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/spec/atom-reporter.coffee b/spec/atom-reporter.coffee index 9bc4bdbf9..931e21777 100644 --- a/spec/atom-reporter.coffee +++ b/spec/atom-reporter.coffee @@ -173,7 +173,7 @@ class AtomReporter listen document, 'click', '.stack-trace', (event) -> event.currentTarget.classList.toggle('expanded') - @reloadButton.addEventListener('click', -> require('ipc-main').send('call-window-method', 'restart')) + @reloadButton.addEventListener('click', -> require('ipc-renderer').send('call-window-method', 'restart')) updateSpecCounts: -> if @skippedCount diff --git a/src/browser/application-menu.coffee b/src/browser/application-menu.coffee index b9b4eed92..f742c3a54 100644 --- a/src/browser/application-menu.coffee +++ b/src/browser/application-menu.coffee @@ -1,5 +1,4 @@ app = require 'app' -ipc = require 'ipc-main' Menu = require 'menu' _ = require 'underscore-plus' From f6328fb5115836bd71fb6739eb6072ac091c89e0 Mon Sep 17 00:00:00 2001 From: Wliu Date: Thu, 19 Nov 2015 16:37:11 -0500 Subject: [PATCH 07/43] One more ipc fix --- src/browser/atom-portable.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/browser/atom-portable.coffee b/src/browser/atom-portable.coffee index eeda81152..37324e615 100644 --- a/src/browser/atom-portable.coffee +++ b/src/browser/atom-portable.coffee @@ -1,6 +1,6 @@ fs = require 'fs-plus' path = require 'path' -ipc = require 'ipc-renderer' +ipc = require 'ipc-main' module.exports = class AtomPortable From 50a42af9fdfb1441e6408ffad754375415142abe Mon Sep 17 00:00:00 2001 From: Wliu Date: Thu, 19 Nov 2015 18:20:51 -0500 Subject: [PATCH 08/43] ...try this? --- src/application-delegate.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/application-delegate.coffee b/src/application-delegate.coffee index d9a032fef..e88bc321f 100644 --- a/src/application-delegate.coffee +++ b/src/application-delegate.coffee @@ -72,7 +72,8 @@ class ApplicationDelegate remote.getCurrentWindow().toggleDevTools() executeJavaScriptInWindowDevTools: (code) -> - remote.getCurrentWindow().webContents.executeJavaScriptInDevTools(code) + webContents = remote.getCurrentWindow.webContents + webContents.executeJavaScript(code) setWindowDocumentEdited: (edited) -> ipc.send("call-window-method", "setDocumentEdited", edited) From c85cd805440c6550ee745e30dd1d1c1dfed92523 Mon Sep 17 00:00:00 2001 From: Wliu Date: Thu, 19 Nov 2015 19:49:29 -0500 Subject: [PATCH 09/43] Fix missing parentheses --- src/application-delegate.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/application-delegate.coffee b/src/application-delegate.coffee index e88bc321f..592170a35 100644 --- a/src/application-delegate.coffee +++ b/src/application-delegate.coffee @@ -72,7 +72,7 @@ class ApplicationDelegate remote.getCurrentWindow().toggleDevTools() executeJavaScriptInWindowDevTools: (code) -> - webContents = remote.getCurrentWindow.webContents + webContents = remote.getCurrentWindow().webContents webContents.executeJavaScript(code) setWindowDocumentEdited: (edited) -> From 9a850f9cb215d84b878ce7f96b6d438b594b107d Mon Sep 17 00:00:00 2001 From: Wliu Date: Thu, 19 Nov 2015 20:11:26 -0500 Subject: [PATCH 10/43] This is ridiculous --- src/browser/atom-portable.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/browser/atom-portable.coffee b/src/browser/atom-portable.coffee index 37324e615..eeda81152 100644 --- a/src/browser/atom-portable.coffee +++ b/src/browser/atom-portable.coffee @@ -1,6 +1,6 @@ fs = require 'fs-plus' path = require 'path' -ipc = require 'ipc-main' +ipc = require 'ipc-renderer' module.exports = class AtomPortable From dfe27ff989d12f972436dc563cd8cc798a934a8b Mon Sep 17 00:00:00 2001 From: Wliu Date: Thu, 19 Nov 2015 20:49:05 -0500 Subject: [PATCH 11/43] More deprecations --- src/browser/atom-window.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/browser/atom-window.coffee b/src/browser/atom-window.coffee index 4ab13ef0e..6a36b55eb 100644 --- a/src/browser/atom-window.coffee +++ b/src/browser/atom-window.coffee @@ -89,7 +89,7 @@ class AtomWindow getLoadSettings: -> if @browserWindow.webContents? and not @browserWindow.webContents.isLoading() - hash = url.parse(@browserWindow.webContents.getUrl()).hash.substr(1) + hash = url.parse(@browserWindow.webContents.getURL()).hash.substr(1) JSON.parse(decodeURIComponent(hash)) hasProjectPath: -> @getLoadSettings().initialPaths?.length > 0 @@ -147,7 +147,7 @@ class AtomWindow when 1 then @browserWindow.restart() @browserWindow.webContents.on 'will-navigate', (event, url) => - unless url is @browserWindow.webContents.getUrl() + unless url is @browserWindow.webContents.getURL() event.preventDefault() @setupContextMenu() From 991d65c107d750b78613931c9d36eefa54d1ee23 Mon Sep 17 00:00:00 2001 From: Wliu <50Wliu@users.noreply.github.com> Date: Tue, 24 Nov 2015 19:43:06 -0500 Subject: [PATCH 12/43] :arrow_up: electron@0.35.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0d9c7b221..af1dbf7a2 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "0.35.0", + "electronVersion": "0.35.1", "dependencies": { "async": "0.2.6", "atom-keymap": "^6.1.1", From e36cf63500742cffd764b246cecb294903626537 Mon Sep 17 00:00:00 2001 From: Wliu Date: Fri, 27 Nov 2015 11:10:31 -0500 Subject: [PATCH 13/43] :arrow_up: electron@0.35.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f0c177b42..79cdd4bee 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "0.35.1", + "electronVersion": "0.35.2", "dependencies": { "async": "0.2.6", "atom-keymap": "^6.1.1", From 8e6c8b02bbeb03e7488a7a46a9ca94df983de7a4 Mon Sep 17 00:00:00 2001 From: Wliu Date: Fri, 27 Nov 2015 13:20:22 -0500 Subject: [PATCH 14/43] Switch back to ipc-main in atom-portable.coffee --- src/browser/atom-portable.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/browser/atom-portable.coffee b/src/browser/atom-portable.coffee index eeda81152..37324e615 100644 --- a/src/browser/atom-portable.coffee +++ b/src/browser/atom-portable.coffee @@ -1,6 +1,6 @@ fs = require 'fs-plus' path = require 'path' -ipc = require 'ipc-renderer' +ipc = require 'ipc-main' module.exports = class AtomPortable From 1725b9bf54252be2a2cf81d0b76bd5cb1693d918 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 11 Dec 2015 09:30:58 +0800 Subject: [PATCH 15/43] Use require('electron') --- src/application-delegate.coffee | 71 +++++++++++++++------------- src/atom-environment.coffee | 8 ++-- src/browser/atom-application.coffee | 31 +++++------- src/browser/atom-portable.coffee | 4 +- src/browser/main.coffee | 3 +- src/initialize-test-window.coffee | 12 ++--- src/menu-manager.coffee | 4 +- src/register-default-commands.coffee | 48 +++++++++---------- src/text-editor-component.coffee | 8 ++-- src/workspace-element.coffee | 4 +- static/index.js | 2 + 11 files changed, 97 insertions(+), 98 deletions(-) diff --git a/src/application-delegate.coffee b/src/application-delegate.coffee index f1812dd25..5e82ebd15 100644 --- a/src/application-delegate.coffee +++ b/src/application-delegate.coffee @@ -1,28 +1,25 @@ _ = require 'underscore-plus' -ipc = require 'ipc-renderer' -remote = require 'remote' -shell = require 'shell' -webFrame = require 'web-frame' +{ipcRenderer, remote, shell, webFrame} = require 'electron' {Disposable} = require 'event-kit' {getWindowLoadSettings, setWindowLoadSettings} = require './window-load-settings-helpers' module.exports = class ApplicationDelegate open: (params) -> - ipc.send('open', params) + ipcRenderer.send('open', params) pickFolder: (callback) -> responseChannel = "atom-pick-folder-response" - ipc.on responseChannel, (path) -> - ipc.removeAllListeners(responseChannel) + ipcRenderer.on responseChannel, (event, path) -> + ipcRenderer.removeAllListeners(responseChannel) callback(path) - ipc.send("pick-folder", responseChannel) + ipcRenderer.send("pick-folder", responseChannel) getCurrentWindow: -> remote.getCurrentWindow() closeWindow: -> - ipc.send("call-window-method", "close") + ipcRenderer.send("call-window-method", "close") getWindowSize: -> [width, height] = remote.getCurrentWindow().getSize() @@ -36,34 +33,34 @@ class ApplicationDelegate {x, y} setWindowPosition: (x, y) -> - ipc.send("call-window-method", "setPosition", x, y) + ipcRenderer.send("call-window-method", "setPosition", x, y) centerWindow: -> - ipc.send("call-window-method", "center") + ipcRenderer.send("call-window-method", "center") focusWindow: -> - ipc.send("call-window-method", "focus") + ipcRenderer.send("call-window-method", "focus") showWindow: -> - ipc.send("call-window-method", "show") + ipcRenderer.send("call-window-method", "show") hideWindow: -> - ipc.send("call-window-method", "hide") + ipcRenderer.send("call-window-method", "hide") restartWindow: -> - ipc.send("call-window-method", "restart") + ipcRenderer.send("call-window-method", "restart") isWindowMaximized: -> remote.getCurrentWindow().isMaximized() maximizeWindow: -> - ipc.send("call-window-method", "maximize") + ipcRenderer.send("call-window-method", "maximize") isWindowFullScreen: -> remote.getCurrentWindow().isFullScreen() setWindowFullScreen: (fullScreen=false) -> - ipc.send("call-window-method", "setFullScreen", fullScreen) + ipcRenderer.send("call-window-method", "setFullScreen", fullScreen) openWindowDevTools: -> new Promise (resolve) -> @@ -75,7 +72,7 @@ class ApplicationDelegate resolve() else remote.getCurrentWindow().once("devtools-opened", -> resolve()) - ipc.send("call-window-method", "openDevTools") + ipcRenderer.send("call-window-method", "openDevTools") closeWindowDevTools: -> new Promise (resolve) -> @@ -87,7 +84,7 @@ class ApplicationDelegate resolve() else remote.getCurrentWindow().once("devtools-closed", -> resolve()) - ipc.send("call-window-method", "closeDevTools") + ipcRenderer.send("call-window-method", "closeDevTools") toggleWindowDevTools: -> new Promise (resolve) => @@ -101,13 +98,13 @@ class ApplicationDelegate @openWindowDevTools().then(resolve) executeJavaScriptInWindowDevTools: (code) -> - ipc.send("call-window-method", "executeJavaScriptInDevTools", code) + ipcRenderer.send("call-window-method", "executeJavaScriptInDevTools", code) setWindowDocumentEdited: (edited) -> - ipc.send("call-window-method", "setDocumentEdited", edited) + ipcRenderer.send("call-window-method", "setDocumentEdited", edited) setRepresentedFilename: (filename) -> - ipc.send("call-window-method", "setRepresentedFilename", filename) + ipcRenderer.send("call-window-method", "setRepresentedFilename", filename) setRepresentedDirectoryPaths: (paths) -> loadSettings = getWindowLoadSettings() @@ -115,7 +112,7 @@ class ApplicationDelegate setWindowLoadSettings(loadSettings) setAutoHideWindowMenuBar: (autoHide) -> - ipc.send("call-window-method", "setAutoHideMenuBar", autoHide) + ipcRenderer.send("call-window-method", "setAutoHideMenuBar", autoHide) setWindowMenuBarVisibility: (visible) -> remote.getCurrentWindow().setMenuBarVisibility(visible) @@ -161,35 +158,41 @@ class ApplicationDelegate shell.beep() onDidOpenLocations: (callback) -> - outerCallback = (message, detail) -> + outerCallback = (event, message, detail) -> if message is 'open-locations' callback(detail) - ipc.on('message', outerCallback) + ipcRenderer.on('message', outerCallback) new Disposable -> - ipc.removeListener('message', outerCallback) + ipcRenderer.removeListener('message', outerCallback) onUpdateAvailable: (callback) -> - outerCallback = (message, detail) -> + outerCallback = (event, message, detail) -> if message is 'update-available' callback(detail) - ipc.on('message', outerCallback) + ipcRenderer.on('message', outerCallback) new Disposable -> - ipc.removeListener('message', outerCallback) + ipcRenderer.removeListener('message', outerCallback) onApplicationMenuCommand: (callback) -> - ipc.on('command', callback) + outerCallback = (event, args...) -> + callback(args...) + + ipcRenderer.on('command', outerCallback) new Disposable -> - ipc.removeListener('command', callback) + ipcRenderer.removeListener('command', outerCallback) onContextMenuCommand: (callback) -> - ipc.on('context-command', callback) + outerCallback = (event, args...) -> + callback(args...) + + ipcRenderer.on('context-command', outerCallback) new Disposable -> - ipc.removeListener('context-command', callback) + ipcRenderer.removeListener('context-command', outerCallback) didCancelWindowUnload: -> - ipc.send('did-cancel-window-unload') + ipcRenderer.send('did-cancel-window-unload') openExternal: (url) -> shell.openExternal(url) diff --git a/src/atom-environment.coffee b/src/atom-environment.coffee index 027c7b547..7c1f81bba 100644 --- a/src/atom-environment.coffee +++ b/src/atom-environment.coffee @@ -1,6 +1,6 @@ crypto = require 'crypto' path = require 'path' -ipc = require 'ipc-renderer' +{ipcRenderer} = require 'electron' _ = require 'underscore-plus' {deprecate} = require 'grim' @@ -206,10 +206,10 @@ class AtomEnvironment extends Model checkPortableHomeWritable = -> responseChannel = "check-portable-home-writable-response" - ipc.on responseChannel, (response) -> - ipc.removeAllListeners(responseChannel) + ipcRenderer.on responseChannel, (event, response) -> + ipcRenderer.removeAllListeners(responseChannel) atom.notifications.addWarning("#{response.message.replace(/([\\\.+\\-_#!])/g, '\\$1')}") if not response.writable - ipc.send('check-portable-home-writable', responseChannel) + ipcRenderer.send('check-portable-home-writable', responseChannel) checkPortableHomeWritable() diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index 63e3e3cf9..f721596d8 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -2,14 +2,9 @@ AtomWindow = require './atom-window' ApplicationMenu = require './application-menu' AtomProtocolHandler = require './atom-protocol-handler' AutoUpdateManager = require './auto-update-manager' -BrowserWindow = require 'browser-window' StorageFolder = require '../storage-folder' -Menu = require 'menu' -app = require 'app' -dialog = require 'dialog' -shell = require 'shell' +{BrowserWindow, Menu, app, dialog, ipcMain, shell} = require 'electron' fs = require 'fs-plus' -ipc = require 'ipc-main' path = require 'path' os = require 'os' net = require 'net' @@ -232,7 +227,7 @@ class AtomApplication @emit('application:new-window') # A request from the associated render process to open a new render process. - ipc.on 'open', (event, options) => + ipcMain.on 'open', (event, options) => window = @windowForEvent(event) if options? if typeof options.pathsToOpen is 'string' @@ -245,39 +240,39 @@ class AtomApplication else @promptForPathToOpen('all', {window}) - ipc.on 'update-application-menu', (event, template, keystrokesByCommand) => + ipcMain.on 'update-application-menu', (event, template, keystrokesByCommand) => win = BrowserWindow.fromWebContents(event.sender) @applicationMenu.update(win, template, keystrokesByCommand) - ipc.on 'run-package-specs', (event, packageSpecPath) => + ipcMain.on 'run-package-specs', (event, packageSpecPath) => @runTests({resourcePath: @devResourcePath, pathsToOpen: [packageSpecPath], headless: false}) - ipc.on 'command', (event, command) => + ipcMain.on 'command', (event, command) => @emit(command) - ipc.on 'window-command', (event, command, args...) -> + ipcMain.on 'window-command', (event, command, args...) -> win = BrowserWindow.fromWebContents(event.sender) win.emit(command, args...) - ipc.on 'call-window-method', (event, method, args...) -> + ipcMain.on 'call-window-method', (event, method, args...) -> win = BrowserWindow.fromWebContents(event.sender) win[method](args...) - ipc.on 'pick-folder', (event, responseChannel) => + ipcMain.on 'pick-folder', (event, responseChannel) => @promptForPath "folder", (selectedPaths) -> event.sender.send(responseChannel, selectedPaths) - ipc.on 'did-cancel-window-unload', => + ipcMain.on 'did-cancel-window-unload', => @quitting = false clipboard = require '../safe-clipboard' - ipc.on 'write-text-to-selection-clipboard', (event, selectedText) -> + ipcMain.on 'write-text-to-selection-clipboard', (event, selectedText) -> clipboard.writeText(selectedText, 'selection') - ipc.on 'write-to-stdout', (event, output) -> + ipcMain.on 'write-to-stdout', (event, output) -> process.stdout.write(output) - ipc.on 'write-to-stderr', (event, output) -> + ipcMain.on 'write-to-stderr', (event, output) -> process.stderr.write(output) # Public: Executes the given command. @@ -340,7 +335,7 @@ class AtomApplication _.find @windows, (atomWindow) -> atomWindow.devMode is devMode and atomWindow.containsPaths(pathsToOpen) - # Returns the {AtomWindow} for the given ipc event. + # Returns the {AtomWindow} for the given ipcMain event. windowForEvent: ({sender}) -> window = BrowserWindow.fromWebContents(sender) _.find @windows, ({browserWindow}) -> window is browserWindow diff --git a/src/browser/atom-portable.coffee b/src/browser/atom-portable.coffee index 37324e615..ae4bb67ec 100644 --- a/src/browser/atom-portable.coffee +++ b/src/browser/atom-portable.coffee @@ -1,6 +1,6 @@ fs = require 'fs-plus' path = require 'path' -ipc = require 'ipc-main' +{ipcMain} = require 'electron' module.exports = class AtomPortable @@ -30,6 +30,6 @@ class AtomPortable catch error message = "Failed to use portable Atom home directory (#{@getPortableAtomHomePath()}). Using the default instead (#{defaultHome}). #{error.message}" - ipc.on 'check-portable-home-writable', (event) -> + ipcMain.on 'check-portable-home-writable', (event) -> event.sender.send 'check-portable-home-writable-response', {writable, message} writable diff --git a/src/browser/main.coffee b/src/browser/main.coffee index df8b3b74a..e2e9d2243 100644 --- a/src/browser/main.coffee +++ b/src/browser/main.coffee @@ -4,8 +4,7 @@ process.on 'uncaughtException', (error={}) -> console.log(error.message) if error.message? console.log(error.stack) if error.stack? -crashReporter = require 'crash-reporter' -app = require 'app' +{crashReporter, app} = require 'electron' fs = require 'fs-plus' path = require 'path' yargs = require 'yargs' diff --git a/src/initialize-test-window.coffee b/src/initialize-test-window.coffee index ad085730e..f54d40dc3 100644 --- a/src/initialize-test-window.coffee +++ b/src/initialize-test-window.coffee @@ -4,9 +4,9 @@ cloneObject = (object) -> clone module.exports = ({blobStore}) -> + {crashReporter, remote} = require 'electron' # Start the crash reporter before anything else. - require('crash-reporter').start(productName: 'Atom', companyName: 'GitHub') - remote = require 'remote' + crashReporter.start(productName: 'Atom', companyName: 'GitHub') exitWithStatusCode = (status) -> remote.require('app').emit('will-quit') @@ -14,7 +14,7 @@ module.exports = ({blobStore}) -> try path = require 'path' - ipc = require 'ipc-renderer' + {ipcRenderer} = require 'electron' {getWindowLoadSettings} = require './window-load-settings-helpers' AtomEnvironment = require '../src/atom-environment' ApplicationDelegate = require '../src/application-delegate' @@ -29,15 +29,15 @@ module.exports = ({blobStore}) -> handleKeydown = (event) -> # Reload: cmd-r / ctrl-r if (event.metaKey or event.ctrlKey) and event.keyCode is 82 - ipc.send('call-window-method', 'restart') + ipcRenderer.send('call-window-method', 'restart') # Toggle Dev Tools: cmd-alt-i / ctrl-alt-i if (event.metaKey or event.ctrlKey) and event.altKey and event.keyCode is 73 - ipc.send('call-window-method', 'toggleDevTools') + ipcRenderer.send('call-window-method', 'toggleDevTools') # Reload: cmd-w / ctrl-w if (event.metaKey or event.ctrlKey) and event.keyCode is 87 - ipc.send('call-window-method', 'close') + ipcRenderer.send('call-window-method', 'close') window.addEventListener('keydown', handleKeydown, true) diff --git a/src/menu-manager.coffee b/src/menu-manager.coffee index 9eabcb697..67076dbfa 100644 --- a/src/menu-manager.coffee +++ b/src/menu-manager.coffee @@ -1,7 +1,7 @@ path = require 'path' _ = require 'underscore-plus' -ipc = require 'ipc-renderer' +{ipcRenderer} = require 'electron' CSON = require 'season' fs = require 'fs-plus' {Disposable} = require 'event-kit' @@ -191,7 +191,7 @@ class MenuManager sendToBrowserProcess: (template, keystrokesByCommand) -> keystrokesByCommand = @filterMultipleKeystroke(keystrokesByCommand) - ipc.send 'update-application-menu', template, keystrokesByCommand + ipcRenderer.send 'update-application-menu', template, keystrokesByCommand # Get an {Array} of {String} classes for the given element. classesForElement: (element) -> diff --git a/src/register-default-commands.coffee b/src/register-default-commands.coffee index b43e0a44b..ffb49880f 100644 --- a/src/register-default-commands.coffee +++ b/src/register-default-commands.coffee @@ -1,4 +1,4 @@ -ipc = require 'ipc-renderer' +{ipcRenderer} = require 'electron' module.exports = ({commandRegistry, commandInstaller, config}) -> commandRegistry.add 'atom-workspace', @@ -18,30 +18,30 @@ module.exports = ({commandRegistry, commandInstaller, config}) -> 'window:increase-font-size': -> @getModel().increaseFontSize() 'window:decrease-font-size': -> @getModel().decreaseFontSize() 'window:reset-font-size': -> @getModel().resetFontSize() - 'application:about': -> ipc.send('command', 'application:about') - 'application:show-preferences': -> ipc.send('command', 'application:show-settings') - 'application:show-settings': -> ipc.send('command', 'application:show-settings') - 'application:quit': -> ipc.send('command', 'application:quit') - 'application:hide': -> ipc.send('command', 'application:hide') - 'application:hide-other-applications': -> ipc.send('command', 'application:hide-other-applications') - 'application:install-update': -> ipc.send('command', 'application:install-update') - 'application:unhide-all-applications': -> ipc.send('command', 'application:unhide-all-applications') - 'application:new-window': -> ipc.send('command', 'application:new-window') - 'application:new-file': -> ipc.send('command', 'application:new-file') - 'application:open': -> ipc.send('command', 'application:open') - 'application:open-file': -> ipc.send('command', 'application:open-file') - 'application:open-folder': -> ipc.send('command', 'application:open-folder') - 'application:open-dev': -> ipc.send('command', 'application:open-dev') - 'application:open-safe': -> ipc.send('command', 'application:open-safe') + 'application:about': -> ipcRenderer.send('command', 'application:about') + 'application:show-preferences': -> ipcRenderer.send('command', 'application:show-settings') + 'application:show-settings': -> ipcRenderer.send('command', 'application:show-settings') + 'application:quit': -> ipcRenderer.send('command', 'application:quit') + 'application:hide': -> ipcRenderer.send('command', 'application:hide') + 'application:hide-other-applications': -> ipcRenderer.send('command', 'application:hide-other-applications') + 'application:install-update': -> ipcRenderer.send('command', 'application:install-update') + 'application:unhide-all-applications': -> ipcRenderer.send('command', 'application:unhide-all-applications') + 'application:new-window': -> ipcRenderer.send('command', 'application:new-window') + 'application:new-file': -> ipcRenderer.send('command', 'application:new-file') + 'application:open': -> ipcRenderer.send('command', 'application:open') + 'application:open-file': -> ipcRenderer.send('command', 'application:open-file') + 'application:open-folder': -> ipcRenderer.send('command', 'application:open-folder') + 'application:open-dev': -> ipcRenderer.send('command', 'application:open-dev') + 'application:open-safe': -> ipcRenderer.send('command', 'application:open-safe') 'application:add-project-folder': -> atom.addProjectFolder() - 'application:minimize': -> ipc.send('command', 'application:minimize') - 'application:zoom': -> ipc.send('command', 'application:zoom') - 'application:bring-all-windows-to-front': -> ipc.send('command', 'application:bring-all-windows-to-front') - 'application:open-your-config': -> ipc.send('command', 'application:open-your-config') - 'application:open-your-init-script': -> ipc.send('command', 'application:open-your-init-script') - 'application:open-your-keymap': -> ipc.send('command', 'application:open-your-keymap') - 'application:open-your-snippets': -> ipc.send('command', 'application:open-your-snippets') - 'application:open-your-stylesheet': -> ipc.send('command', 'application:open-your-stylesheet') + 'application:minimize': -> ipcRenderer.send('command', 'application:minimize') + 'application:zoom': -> ipcRenderer.send('command', 'application:zoom') + 'application:bring-all-windows-to-front': -> ipcRenderer.send('command', 'application:bring-all-windows-to-front') + 'application:open-your-config': -> ipcRenderer.send('command', 'application:open-your-config') + 'application:open-your-init-script': -> ipcRenderer.send('command', 'application:open-your-init-script') + 'application:open-your-keymap': -> ipcRenderer.send('command', 'application:open-your-keymap') + 'application:open-your-snippets': -> ipcRenderer.send('command', 'application:open-your-snippets') + 'application:open-your-stylesheet': -> ipcRenderer.send('command', 'application:open-your-stylesheet') 'application:open-license': -> @getModel().openLicense() 'window:run-package-specs': -> @runPackageSpecs() 'window:focus-next-pane': -> @getModel().activateNextPane() diff --git a/src/text-editor-component.coffee b/src/text-editor-component.coffee index c0f1486b5..c6ed4e053 100644 --- a/src/text-editor-component.coffee +++ b/src/text-editor-component.coffee @@ -2,7 +2,7 @@ _ = require 'underscore-plus' scrollbarStyle = require 'scrollbar-style' {Range, Point} = require 'text-buffer' {CompositeDisposable} = require 'event-kit' -ipc = require 'ipc-renderer' +{ipcRenderer} = require 'electron' TextEditorPresenter = require './text-editor-presenter' GutterContainerComponent = require './gutter-container-component' @@ -263,10 +263,10 @@ class TextEditorComponent writeSelectedTextToSelectionClipboard = => return if @editor.isDestroyed() if selectedText = @editor.getSelectedText() - # This uses ipc.send instead of clipboard.writeText because - # clipboard.writeText is a sync ipc call on Linux and that + # This uses ipcRenderer.send instead of clipboard.writeText because + # clipboard.writeText is a sync ipcRenderer call on Linux and that # will slow down selections. - ipc.send('write-text-to-selection-clipboard', selectedText) + ipcRenderer.send('write-text-to-selection-clipboard', selectedText) @disposables.add @editor.onDidChangeSelectionRange -> clearTimeout(timeoutId) timeoutId = setTimeout(writeSelectedTextToSelectionClipboard) diff --git a/src/workspace-element.coffee b/src/workspace-element.coffee index 89e990c66..b3d4c8a7a 100644 --- a/src/workspace-element.coffee +++ b/src/workspace-element.coffee @@ -1,4 +1,4 @@ -ipc = require 'ipc-renderer' +{ipcRenderer} = require 'electron' path = require 'path' {Disposable, CompositeDisposable} = require 'event-kit' Grim = require 'grim' @@ -104,6 +104,6 @@ class WorkspaceElement extends HTMLElement [projectPath] = @project.relativizePath(activePath) else [projectPath] = @project.getPaths() - ipc.send('run-package-specs', path.join(projectPath, 'spec')) if projectPath + ipcRenderer.send('run-package-specs', path.join(projectPath, 'spec')) if projectPath module.exports = WorkspaceElement = document.registerElement 'atom-workspace', prototype: WorkspaceElement.prototype diff --git a/static/index.js b/static/index.js index 651f2b54c..1f2c61f7c 100644 --- a/static/index.js +++ b/static/index.js @@ -1,4 +1,6 @@ (function () { + process.throwDeprecation = true; + var path = require('path') var FileSystemBlobStore = require('../src/file-system-blob-store') var NativeCompileCache = require('../src/native-compile-cache') From d7e6b6399f761ffeadb387a1c83c75fd1a521602 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 11 Dec 2015 09:33:53 +0800 Subject: [PATCH 16/43] :arrow_up: electron@0.35.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 82211c710..1ff8721c0 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "0.35.2", + "electronVersion": "0.35.4", "dependencies": { "async": "0.2.6", "atom-keymap": "^6.2.0", From 1f9cfc929cdc5f57281bc3b44beacf617f134baa Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 11 Dec 2015 09:50:18 +0800 Subject: [PATCH 17/43] Update the API usages after merge --- src/application-delegate.coffee | 2 +- src/browser/atom-application.coffee | 6 +++--- static/index.js | 2 -- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/application-delegate.coffee b/src/application-delegate.coffee index 60627e5ce..2c7688de9 100644 --- a/src/application-delegate.coffee +++ b/src/application-delegate.coffee @@ -107,7 +107,7 @@ class ApplicationDelegate ipcRenderer.send("call-window-method", "setRepresentedFilename", filename) addRecentDocument: (filename) -> - ipc.send("add-recent-document", filename) + ipcRenderer.send("add-recent-document", filename) setRepresentedDirectoryPaths: (paths) -> loadSettings = getWindowLoadSettings() diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index f997c6f86..cbfe36f2d 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -273,10 +273,10 @@ class AtomApplication ipcMain.on 'write-to-stdout', (event, output) -> process.stdout.write(output) - ipcMain.on 'write-to-stderr', (event, output) -> - process.stderr.write(output) + ipcMain.on 'write-to-stderr', (event, output) -> + process.stderr.write(output) - ipc.on 'add-recent-document', (event, filename) -> + ipcMain.on 'add-recent-document', (event, filename) -> app.addRecentDocument(filename) setupDockMenu: -> diff --git a/static/index.js b/static/index.js index 1f2c61f7c..651f2b54c 100644 --- a/static/index.js +++ b/static/index.js @@ -1,6 +1,4 @@ (function () { - process.throwDeprecation = true; - var path = require('path') var FileSystemBlobStore = require('../src/file-system-blob-store') var NativeCompileCache = require('../src/native-compile-cache') From c186d70beccb3d9ee8e2d77a20383a5609b77444 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 11 Dec 2015 10:03:20 +0800 Subject: [PATCH 18/43] Also use require('electron') in specs --- spec/atom-reporter.coffee | 2 +- spec/jasmine-test-runner.coffee | 4 ++-- spec/text-editor-component-spec.js | 2 +- spec/window-event-handler-spec.coffee | 8 ++++---- spec/workspace-element-spec.coffee | 22 +++++++++++----------- src/browser/atom-application.coffee | 2 +- static/index.js | 2 +- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/spec/atom-reporter.coffee b/spec/atom-reporter.coffee index 931e21777..d7ff49964 100644 --- a/spec/atom-reporter.coffee +++ b/spec/atom-reporter.coffee @@ -173,7 +173,7 @@ class AtomReporter listen document, 'click', '.stack-trace', (event) -> event.currentTarget.classList.toggle('expanded') - @reloadButton.addEventListener('click', -> require('ipc-renderer').send('call-window-method', 'restart')) + @reloadButton.addEventListener('click', -> require('electron').ipcRenderer.send('call-window-method', 'restart')) updateSpecCounts: -> if @skippedCount diff --git a/spec/jasmine-test-runner.coffee b/spec/jasmine-test-runner.coffee index 8192d4328..0ce21f76d 100644 --- a/spec/jasmine-test-runner.coffee +++ b/spec/jasmine-test-runner.coffee @@ -2,7 +2,7 @@ fs = require 'fs' _ = require 'underscore-plus' fs = require 'fs-plus' path = require 'path' -ipc = require 'ipc-renderer' +{ipcRenderer} = require 'electron' module.exports = ({logFile, headless, testPaths, buildAtomEnvironment}) -> window[key] = value for key, value of require '../vendor/jasmine' @@ -89,7 +89,7 @@ buildTerminalReporter = (logFile, resolveWithExitCode) -> if logStream? fs.writeSync(logStream, str) else - ipc.send 'write-to-stderr', str + ipcRenderer.send 'write-to-stderr', str {TerminalReporter} = require 'jasmine-tagged' new TerminalReporter diff --git a/spec/text-editor-component-spec.js b/spec/text-editor-component-spec.js index 19f193917..a18ab06e4 100644 --- a/spec/text-editor-component-spec.js +++ b/spec/text-editor-component-spec.js @@ -4585,7 +4585,7 @@ describe('TextEditorComponent', function () { it('pastes the previously selected text at the clicked location', async function () { let clipboardWrittenTo = false - spyOn(require('ipc-renderer'), 'send').andCallFake(function (eventName, selectedText) { + spyOn(require('electron').ipcRenderer, 'send').andCallFake(function (eventName, selectedText) { if (eventName === 'write-text-to-selection-clipboard') { require('../src/safe-clipboard').writeText(selectedText, 'selection') clipboardWrittenTo = true diff --git a/spec/window-event-handler-spec.coffee b/spec/window-event-handler-spec.coffee index e3e76643f..bb7e1665b 100644 --- a/spec/window-event-handler-spec.coffee +++ b/spec/window-event-handler-spec.coffee @@ -4,7 +4,7 @@ fs = require 'fs-plus' temp = require 'temp' TextEditor = require '../src/text-editor' WindowEventHandler = require '../src/window-event-handler' -ipc = require 'ipc-renderer' +{ipcRenderer} = require 'electron' describe "WindowEventHandler", -> [projectPath, windowEventHandler] = [] @@ -53,7 +53,7 @@ describe "WindowEventHandler", -> describe "beforeunload event", -> beforeEach -> jasmine.unspy(TextEditor.prototype, "shouldPromptToSave") - spyOn(ipc, 'send') + spyOn(ipcRenderer, 'send') describe "when pane items are modified", -> editor = null @@ -65,13 +65,13 @@ describe "WindowEventHandler", -> spyOn(atom.workspace, 'confirmClose').andReturn(true) window.dispatchEvent(new CustomEvent('beforeunload')) expect(atom.workspace.confirmClose).toHaveBeenCalled() - expect(ipc.send).not.toHaveBeenCalledWith('did-cancel-window-unload') + expect(ipcRenderer.send).not.toHaveBeenCalledWith('did-cancel-window-unload') it "cancels the unload if the user selects cancel", -> spyOn(atom.workspace, 'confirmClose').andReturn(false) window.dispatchEvent(new CustomEvent('beforeunload')) expect(atom.workspace.confirmClose).toHaveBeenCalled() - expect(ipc.send).toHaveBeenCalledWith('did-cancel-window-unload') + expect(ipcRenderer.send).toHaveBeenCalledWith('did-cancel-window-unload') describe "when a link is clicked", -> it "opens the http/https links in an external application", -> diff --git a/spec/workspace-element-spec.coffee b/spec/workspace-element-spec.coffee index 01dddc5b7..24f8f6c3a 100644 --- a/spec/workspace-element-spec.coffee +++ b/spec/workspace-element-spec.coffee @@ -1,4 +1,4 @@ -ipc = require 'ipc-renderer' +{ipcRenderer} = require 'electron' path = require 'path' temp = require('temp').track() @@ -87,35 +87,35 @@ describe "WorkspaceElement", -> describe "the 'window:run-package-specs' command", -> it "runs the package specs for the active item's project path, or the first project path", -> workspaceElement = atom.views.getView(atom.workspace) - spyOn(ipc, 'send') + spyOn(ipcRenderer, 'send') # No project paths. Don't try to run specs. atom.commands.dispatch(workspaceElement, "window:run-package-specs") - expect(ipc.send).not.toHaveBeenCalledWith("run-package-specs") + expect(ipcRenderer.send).not.toHaveBeenCalledWith("run-package-specs") projectPaths = [temp.mkdirSync("dir1-"), temp.mkdirSync("dir2-")] atom.project.setPaths(projectPaths) # No active item. Use first project directory. atom.commands.dispatch(workspaceElement, "window:run-package-specs") - expect(ipc.send).toHaveBeenCalledWith("run-package-specs", path.join(projectPaths[0], "spec")) - ipc.send.reset() + expect(ipcRenderer.send).toHaveBeenCalledWith("run-package-specs", path.join(projectPaths[0], "spec")) + ipcRenderer.send.reset() # Active item doesn't implement ::getPath(). Use first project directory. item = document.createElement("div") atom.workspace.getActivePane().activateItem(item) atom.commands.dispatch(workspaceElement, "window:run-package-specs") - expect(ipc.send).toHaveBeenCalledWith("run-package-specs", path.join(projectPaths[0], "spec")) - ipc.send.reset() + expect(ipcRenderer.send).toHaveBeenCalledWith("run-package-specs", path.join(projectPaths[0], "spec")) + ipcRenderer.send.reset() # Active item has no path. Use first project directory. item.getPath = -> null atom.commands.dispatch(workspaceElement, "window:run-package-specs") - expect(ipc.send).toHaveBeenCalledWith("run-package-specs", path.join(projectPaths[0], "spec")) - ipc.send.reset() + expect(ipcRenderer.send).toHaveBeenCalledWith("run-package-specs", path.join(projectPaths[0], "spec")) + ipcRenderer.send.reset() # Active item has path. Use project path for item path. item.getPath = -> path.join(projectPaths[1], "a-file.txt") atom.commands.dispatch(workspaceElement, "window:run-package-specs") - expect(ipc.send).toHaveBeenCalledWith("run-package-specs", path.join(projectPaths[1], "spec")) - ipc.send.reset() + expect(ipcRenderer.send).toHaveBeenCalledWith("run-package-specs", path.join(projectPaths[1], "spec")) + ipcRenderer.send.reset() diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index cbfe36f2d..eb3d9a60c 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -277,7 +277,7 @@ class AtomApplication process.stderr.write(output) ipcMain.on 'add-recent-document', (event, filename) -> - app.addRecentDocument(filename) + app.addRecentDocument(filename) setupDockMenu: -> if process.platform is 'darwin' diff --git a/static/index.js b/static/index.js index 651f2b54c..a55f31b5c 100644 --- a/static/index.js +++ b/static/index.js @@ -83,7 +83,7 @@ var initialize = require(loadSettings.windowInitializationScript) initialize({blobStore: blobStore}) - require('ipc-renderer').send('window-command', 'window:loaded') + require('electron').ipcRenderer.send('window-command', 'window:loaded') } function setupCsonCache (cacheDir) { From 2150790596354c6317df33b9dd379e43b3f35111 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 11 Dec 2015 10:21:46 +0800 Subject: [PATCH 19/43] Use the new style of `remote` --- src/application-delegate.coffee | 9 +++------ src/context-menu-manager.coffee | 2 +- src/initialize-test-window.coffee | 2 +- src/safe-clipboard.coffee | 4 ++-- src/window-load-settings-helpers.coffee | 2 +- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/application-delegate.coffee b/src/application-delegate.coffee index 2c7688de9..39e8efe95 100644 --- a/src/application-delegate.coffee +++ b/src/application-delegate.coffee @@ -121,8 +121,7 @@ class ApplicationDelegate remote.getCurrentWindow().setMenuBarVisibility(visible) getPrimaryDisplayWorkAreaSize: -> - screen = remote.require 'screen' - screen.getPrimaryDisplay().workAreaSize + remote.screen.getPrimaryDisplay().workAreaSize confirm: ({message, detailedMessage, buttons}) -> buttons ?= {} @@ -131,8 +130,7 @@ class ApplicationDelegate else buttonLabels = Object.keys(buttons) - dialog = remote.require('dialog') - chosen = dialog.showMessageBox(remote.getCurrentWindow(), { + chosen = remote.dialog.showMessageBox(remote.getCurrentWindow(), { type: 'info' message: message detail: detailedMessage @@ -154,8 +152,7 @@ class ApplicationDelegate params = _.clone(params) params.title ?= 'Save File' params.defaultPath ?= getWindowLoadSettings().initialPaths[0] - dialog = remote.require('dialog') - dialog.showSaveDialog remote.getCurrentWindow(), params + remote.dialog.showSaveDialog remote.getCurrentWindow(), params playBeepSound: -> shell.beep() diff --git a/src/context-menu-manager.coffee b/src/context-menu-manager.coffee index 869076beb..cce767f57 100644 --- a/src/context-menu-manager.coffee +++ b/src/context-menu-manager.coffee @@ -4,7 +4,7 @@ CSON = require 'season' fs = require 'fs-plus' {calculateSpecificity, validateSelector} = require 'clear-cut' {Disposable} = require 'event-kit' -remote = require 'remote' +{remote} = require 'electron' MenuHelpers = require './menu-helpers' platformContextMenu = require('../package.json')?._atomMenu?['context-menu'] diff --git a/src/initialize-test-window.coffee b/src/initialize-test-window.coffee index f54d40dc3..7de84cf0b 100644 --- a/src/initialize-test-window.coffee +++ b/src/initialize-test-window.coffee @@ -9,7 +9,7 @@ module.exports = ({blobStore}) -> crashReporter.start(productName: 'Atom', companyName: 'GitHub') exitWithStatusCode = (status) -> - remote.require('app').emit('will-quit') + remote.app.emit('will-quit') remote.process.exit(status) try diff --git a/src/safe-clipboard.coffee b/src/safe-clipboard.coffee index 8301f9d54..1f91803e2 100644 --- a/src/safe-clipboard.coffee +++ b/src/safe-clipboard.coffee @@ -1,6 +1,6 @@ # Using clipboard in renderer process is not safe on Linux. module.exports = if process.platform is 'linux' and process.type is 'renderer' - require('remote').require('clipboard') + require('electron').remote.clipboard else - require('clipboard') + require('electron').clipboard diff --git a/src/window-load-settings-helpers.coffee b/src/window-load-settings-helpers.coffee index 59ee2f382..4bb514301 100644 --- a/src/window-load-settings-helpers.coffee +++ b/src/window-load-settings-helpers.coffee @@ -1,4 +1,4 @@ -remote = require 'remote' +{remote} = require 'electron' _ = require 'underscore-plus' windowLoadSettings = null From 2e5c7f85736736c61f8a838f5d3abd04666565bd Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 11 Dec 2015 11:00:08 +0800 Subject: [PATCH 20/43] executeJavaScriptInDevTools is deprecated --- src/application-delegate.coffee | 2 +- src/browser/atom-application.coffee | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/application-delegate.coffee b/src/application-delegate.coffee index 39e8efe95..8fc51582a 100644 --- a/src/application-delegate.coffee +++ b/src/application-delegate.coffee @@ -98,7 +98,7 @@ class ApplicationDelegate @openWindowDevTools().then(resolve) executeJavaScriptInWindowDevTools: (code) -> - ipcRenderer.send("call-window-method", "executeJavaScriptInDevTools", code) + ipcRenderer.send("execute-javascript-in-dev-tools", code) setWindowDocumentEdited: (edited) -> ipcRenderer.send("call-window-method", "setDocumentEdited", edited) diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index eb3d9a60c..61faa5704 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -279,6 +279,9 @@ class AtomApplication ipcMain.on 'add-recent-document', (event, filename) -> app.addRecentDocument(filename) + ipcMain.on 'execute-javascript-in-dev-tools', (event, code) -> + event.sender.devToolsWebContents?.executeJavaScript(code) + setupDockMenu: -> if process.platform is 'darwin' dockMenu = Menu.buildFromTemplate [ From 678c390e2ed6f1294fc859bd6cd2d97249e3f23d Mon Sep 17 00:00:00 2001 From: Wliu Date: Thu, 10 Dec 2015 22:52:06 -0500 Subject: [PATCH 21/43] Fix indentation --- src/browser/atom-application.coffee | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index 61faa5704..7b3694947 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -273,14 +273,14 @@ class AtomApplication ipcMain.on 'write-to-stdout', (event, output) -> process.stdout.write(output) - ipcMain.on 'write-to-stderr', (event, output) -> - process.stderr.write(output) + ipcMain.on 'write-to-stderr', (event, output) -> + process.stderr.write(output) - ipcMain.on 'add-recent-document', (event, filename) -> - app.addRecentDocument(filename) + ipcMain.on 'add-recent-document', (event, filename) -> + app.addRecentDocument(filename) - ipcMain.on 'execute-javascript-in-dev-tools', (event, code) -> - event.sender.devToolsWebContents?.executeJavaScript(code) + ipcMain.on 'execute-javascript-in-dev-tools', (event, code) -> + event.sender.devToolsWebContents?.executeJavaScript(code) setupDockMenu: -> if process.platform is 'darwin' From d6fa46accec1191971fcf20dffa7ffd9f9bdd8bc Mon Sep 17 00:00:00 2001 From: Wliu Date: Sat, 12 Dec 2015 13:22:22 -0500 Subject: [PATCH 22/43] Update browser files to use require 'electron' --- src/browser/application-menu.coffee | 3 +-- src/browser/atom-protocol-handler.coffee | 3 +-- src/browser/atom-window.coffee | 4 +--- src/browser/auto-update-manager.coffee | 6 +++--- src/browser/auto-updater-win32.coffee | 4 ++-- src/browser/context-menu.coffee | 2 +- 6 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/browser/application-menu.coffee b/src/browser/application-menu.coffee index f742c3a54..fef9f90fa 100644 --- a/src/browser/application-menu.coffee +++ b/src/browser/application-menu.coffee @@ -1,5 +1,4 @@ -app = require 'app' -Menu = require 'menu' +{app, Menu} = require 'electron' _ = require 'underscore-plus' # Used to manage the global application menu. diff --git a/src/browser/atom-protocol-handler.coffee b/src/browser/atom-protocol-handler.coffee index 0fda8095b..3967c0525 100644 --- a/src/browser/atom-protocol-handler.coffee +++ b/src/browser/atom-protocol-handler.coffee @@ -1,7 +1,6 @@ -app = require 'app' +{app, protocol} = require 'electron' fs = require 'fs' path = require 'path' -protocol = require 'protocol' # Handles requests with 'atom' protocol. # diff --git a/src/browser/atom-window.coffee b/src/browser/atom-window.coffee index 6a36b55eb..ace12239e 100644 --- a/src/browser/atom-window.coffee +++ b/src/browser/atom-window.coffee @@ -1,6 +1,4 @@ -BrowserWindow = require 'browser-window' -app = require 'app' -dialog = require 'dialog' +{BrowserWindow, app, dialog} = require 'electron' path = require 'path' fs = require 'fs' url = require 'url' diff --git a/src/browser/auto-update-manager.coffee b/src/browser/auto-update-manager.coffee index f4a493829..63a79b60f 100644 --- a/src/browser/auto-update-manager.coffee +++ b/src/browser/auto-update-manager.coffee @@ -25,7 +25,7 @@ class AutoUpdateManager if process.platform is 'win32' autoUpdater = require './auto-updater-win32' else - autoUpdater = require 'auto-updater' + {autoUpdater} = require 'electron' autoUpdater.on 'error', (event, message) => @setState(ErrorState) @@ -91,7 +91,7 @@ class AutoUpdateManager onUpdateNotAvailable: => autoUpdater.removeListener 'error', @onUpdateError - dialog = require 'dialog' + {dialog} = require 'electron' dialog.showMessageBox type: 'info' buttons: ['OK'] @@ -102,7 +102,7 @@ class AutoUpdateManager onUpdateError: (event, message) => autoUpdater.removeListener 'update-not-available', @onUpdateNotAvailable - dialog = require 'dialog' + {dialog} = require 'electron' dialog.showMessageBox type: 'warning' buttons: ['OK'] diff --git a/src/browser/auto-updater-win32.coffee b/src/browser/auto-updater-win32.coffee index 13dcd9a1e..e31578d49 100644 --- a/src/browser/auto-updater-win32.coffee +++ b/src/browser/auto-updater-win32.coffee @@ -9,9 +9,9 @@ class AutoUpdater quitAndInstall: -> if SquirrelUpdate.existsSync() - SquirrelUpdate.restartAtom(require('app')) + SquirrelUpdate.restartAtom(require('electron').app) else - require('auto-updater').quitAndInstall() + require('electron').autoUpdater.quitAndInstall() downloadUpdate: (callback) -> SquirrelUpdate.spawn ['--download', @updateUrl], (error, stdout) -> diff --git a/src/browser/context-menu.coffee b/src/browser/context-menu.coffee index 44b57cdc9..1bc9c29ba 100644 --- a/src/browser/context-menu.coffee +++ b/src/browser/context-menu.coffee @@ -1,4 +1,4 @@ -Menu = require 'menu' +{Menu} = require 'electron' module.exports = class ContextMenu From ed96ac7daf06a4abb106b54e0e70edc33da11541 Mon Sep 17 00:00:00 2001 From: Wliu Date: Sat, 12 Dec 2015 21:35:14 -0500 Subject: [PATCH 23/43] browserWindow.restart -> .reload --- src/application-delegate.coffee | 4 ++-- src/atom-environment.coffee | 2 +- src/browser/atom-window.coffee | 4 ++-- src/initialize-test-window.coffee | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/application-delegate.coffee b/src/application-delegate.coffee index 8fc51582a..f7b04e10d 100644 --- a/src/application-delegate.coffee +++ b/src/application-delegate.coffee @@ -47,8 +47,8 @@ class ApplicationDelegate hideWindow: -> ipcRenderer.send("call-window-method", "hide") - restartWindow: -> - ipcRenderer.send("call-window-method", "restart") + reloadWindow: -> + ipcRenderer.send("call-window-method", "reload") isWindowMaximized: -> remote.getCurrentWindow().isMaximized() diff --git a/src/atom-environment.coffee b/src/atom-environment.coffee index f46df14ab..cd6834da4 100644 --- a/src/atom-environment.coffee +++ b/src/atom-environment.coffee @@ -492,7 +492,7 @@ class AtomEnvironment extends Model # Extended: Reload the current window. reload: -> - @applicationDelegate.restartWindow() + @applicationDelegate.reloadWindow() # Extended: Returns a {Boolean} that is `true` if the current window is maximized. isMaximized: -> diff --git a/src/browser/atom-window.coffee b/src/browser/atom-window.coffee index ace12239e..721eb68a6 100644 --- a/src/browser/atom-window.coffee +++ b/src/browser/atom-window.coffee @@ -142,7 +142,7 @@ class AtomWindow detail: 'Please report this issue to https://github.com/atom/atom' switch chosen when 0 then @browserWindow.destroy() - when 1 then @browserWindow.restart() + when 1 then @browserWindow.reload() @browserWindow.webContents.on 'will-navigate', (event, url) => unless url is @browserWindow.webContents.getURL() @@ -216,6 +216,6 @@ class AtomWindow isSpecWindow: -> @isSpec - reload: -> @browserWindow.restart() + reload: -> @browserWindow.reload() toggleDevTools: -> @browserWindow.toggleDevTools() diff --git a/src/initialize-test-window.coffee b/src/initialize-test-window.coffee index 7de84cf0b..d9607f8f7 100644 --- a/src/initialize-test-window.coffee +++ b/src/initialize-test-window.coffee @@ -29,7 +29,7 @@ module.exports = ({blobStore}) -> handleKeydown = (event) -> # Reload: cmd-r / ctrl-r if (event.metaKey or event.ctrlKey) and event.keyCode is 82 - ipcRenderer.send('call-window-method', 'restart') + ipcRenderer.send('call-window-method', 'reload') # Toggle Dev Tools: cmd-alt-i / ctrl-alt-i if (event.metaKey or event.ctrlKey) and event.altKey and event.keyCode is 73 From 74e830358d939eafda89bf5c7269b81756fe3f50 Mon Sep 17 00:00:00 2001 From: Wliu Date: Mon, 14 Dec 2015 17:31:27 -0500 Subject: [PATCH 24/43] Save the state before the browser window is closed --- src/browser/atom-application.coffee | 1 - src/browser/atom-window.coffee | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index 7b3694947..720e0f84d 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -208,7 +208,6 @@ class AtomApplication @openPathOnEvent('application:open-license', path.join(process.resourcesPath, 'LICENSE.md')) app.on 'before-quit', => - @saveState(false) @quitting = true app.on 'will-quit', => diff --git a/src/browser/atom-window.coffee b/src/browser/atom-window.coffee index 721eb68a6..8425171b7 100644 --- a/src/browser/atom-window.coffee +++ b/src/browser/atom-window.coffee @@ -119,6 +119,9 @@ class AtomWindow false handleEvents: -> + @browserWindow.on 'close', -> + global.atomApplication.saveState(false) + @browserWindow.on 'closed', => global.atomApplication.removeWindow(this) From f4f5e47aab9784ff8405d678b462ef1940c76820 Mon Sep 17 00:00:00 2001 From: Wliu Date: Mon, 14 Dec 2015 17:35:50 -0500 Subject: [PATCH 25/43] One more remote update --- spec/integration/helpers/start-atom.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/integration/helpers/start-atom.coffee b/spec/integration/helpers/start-atom.coffee index b8768f532..6d89af263 100644 --- a/spec/integration/helpers/start-atom.coffee +++ b/spec/integration/helpers/start-atom.coffee @@ -124,7 +124,7 @@ buildAtomClient = (args, env) -> .addCommand "simulateQuit", (done) -> @execute -> atom.unloadEditorWindow() - .execute -> require("remote").require("app").emit("before-quit") + .execute -> require("electron").remote.app.emit("before-quit") .call(done) module.exports = (args, env, fn) -> From 295698c085efedccf217fcdc16ade5daee547c20 Mon Sep 17 00:00:00 2001 From: Wliu Date: Tue, 22 Dec 2015 17:01:01 -0500 Subject: [PATCH 26/43] app.terminate --> app.quit --- src/browser/atom-application.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index 720e0f84d..0fbeeac9e 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -46,7 +46,7 @@ class AtomApplication client = net.connect {path: options.socketPath}, -> client.write JSON.stringify(options), -> client.end() - app.terminate() + app.quit() client.on 'error', createAtomApplication From bdb11a95f762168ba2ffad070450f674b6d69e53 Mon Sep 17 00:00:00 2001 From: Wliu Date: Tue, 22 Dec 2015 17:05:27 -0500 Subject: [PATCH 27/43] :arrow_up: tabs@0.89.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1cca017b4..8bce54f82 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "status-bar": "0.80.0", "styleguide": "0.45.0", "symbols-view": "0.110.1", - "tabs": "0.88.0", + "tabs": "0.89.0", "timecop": "0.33.0", "tree-view": "0.198.0", "update-package-dependencies": "0.10.0", From dbc06e599394a7c99f79a3ddbba4133ad3a9ad2a Mon Sep 17 00:00:00 2001 From: Wliu Date: Tue, 22 Dec 2015 17:16:15 -0500 Subject: [PATCH 28/43] Initial attempt to update to Electron 0.36.1 --- package.json | 2 +- static/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 8bce54f82..0a490b8ee 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "0.35.4", + "electronVersion": "0.36.1", "dependencies": { "async": "0.2.6", "atom-keymap": "^6.2.0", diff --git a/static/index.html b/static/index.html index 5fcb30ad2..0bd4a7954 100644 --- a/static/index.html +++ b/static/index.html @@ -1,7 +1,7 @@ - + From d75102f46d51599cdc914cda700e05b964f07397 Mon Sep 17 00:00:00 2001 From: Wliu Date: Tue, 22 Dec 2015 18:01:26 -0500 Subject: [PATCH 29/43] Set URL in the crash reporter --- src/browser/main.coffee | 2 +- src/initialize-test-window.coffee | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/browser/main.coffee b/src/browser/main.coffee index e2e9d2243..751870573 100644 --- a/src/browser/main.coffee +++ b/src/browser/main.coffee @@ -53,7 +53,7 @@ handleStartupEventWithSquirrel = -> SquirrelUpdate.handleStartupEvent(app, squirrelCommand) setupCrashReporter = -> - crashReporter.start(productName: 'Atom', companyName: 'GitHub') + crashReporter.start(productName: 'Atom', companyName: 'GitHub', submitURL: 'http://54.249.141.255:1127/post') setupAtomHome = ({setPortable}) -> return if process.env.ATOM_HOME diff --git a/src/initialize-test-window.coffee b/src/initialize-test-window.coffee index d9607f8f7..9c5df337b 100644 --- a/src/initialize-test-window.coffee +++ b/src/initialize-test-window.coffee @@ -6,7 +6,7 @@ cloneObject = (object) -> module.exports = ({blobStore}) -> {crashReporter, remote} = require 'electron' # Start the crash reporter before anything else. - crashReporter.start(productName: 'Atom', companyName: 'GitHub') + crashReporter.start(productName: 'Atom', companyName: 'GitHub', submitURL: 'http://54.249.141.255:1127/post') exitWithStatusCode = (status) -> remote.app.emit('will-quit') From 612ca6ecabe63298351fd3e4c7b865ff267cfc97 Mon Sep 17 00:00:00 2001 From: Wliu Date: Tue, 22 Dec 2015 20:44:51 -0500 Subject: [PATCH 30/43] Missed one of the crash reporters Also convert even more requires... --- static/index.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/static/index.js b/static/index.js index d7f509635..b2646b5bc 100644 --- a/static/index.js +++ b/static/index.js @@ -54,7 +54,7 @@ } function handleSetupError (error) { - var currentWindow = require('remote').getCurrentWindow() + var currentWindow = require('electron').remote.getCurrentWindow() currentWindow.setSize(800, 600) currentWindow.center() currentWindow.show() @@ -71,9 +71,10 @@ ModuleCache.add(loadSettings.resourcePath) // Start the crash reporter before anything else. - require('crash-reporter').start({ + require('electron').crashReporter.start({ productName: 'Atom', companyName: 'GitHub', + submitURL: 'http://54.249.141.255:1127/post', // By explicitly passing the app version here, we could save the call // of "require('remote').require('app').getVersion()". extra: {_version: loadSettings.appVersion} @@ -124,7 +125,7 @@ } } - var currentWindow = require('remote').getCurrentWindow() + var currentWindow = require('electron').remote.getCurrentWindow() if (currentWindow.devToolsWebContents) { profile() } else { From dbf7bedec81653be81183db3aa6040745164f459 Mon Sep 17 00:00:00 2001 From: Wliu Date: Wed, 30 Dec 2015 10:54:34 -0500 Subject: [PATCH 31/43] :arrow_up: electron@0.36.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 872c38d87..b7123e85c 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "0.36.1", + "electronVersion": "0.36.2", "dependencies": { "async": "0.2.6", "atom-keymap": "^6.2.0", From c34ef243d70ed02073444df07eb40646dea84395 Mon Sep 17 00:00:00 2001 From: Wliu Date: Fri, 8 Jan 2016 16:58:02 +0000 Subject: [PATCH 32/43] :arrow_up: electron@0.36.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3b67d6a5d..49b754313 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "0.36.2", + "electronVersion": "0.36.3", "dependencies": { "async": "0.2.6", "atom-keymap": "^6.2.0", From 271f6b184dc2ba225e43356520a9e25060edeaf9 Mon Sep 17 00:00:00 2001 From: Wliu Date: Fri, 15 Jan 2016 17:21:11 -0500 Subject: [PATCH 33/43] :arrow_up: electron@0.36.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bcd36a4be..daf7a94f0 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "0.36.3", + "electronVersion": "0.36.4", "dependencies": { "async": "0.2.6", "atom-keymap": "^6.2.0", From be85af4bc597be5e47259d7654c72268e866a0e4 Mon Sep 17 00:00:00 2001 From: Wliu Date: Mon, 25 Jan 2016 16:39:07 -0500 Subject: [PATCH 34/43] :arrow_up: electron@0.36.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 380064d73..c0f62ebd0 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "0.36.4", + "electronVersion": "0.36.5", "dependencies": { "async": "0.2.6", "atom-keymap": "^6.2.0", From 9db33e5f8e05ebdc7d49fbf61a6ea04caaff35dd Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 26 Jan 2016 11:42:12 -0800 Subject: [PATCH 35/43] :arrow_up: autocomplete-plus --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c0f62ebd0..a1a626636 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "autocomplete-atom-api": "0.9.2", "autocomplete-css": "0.11.0", "autocomplete-html": "0.7.2", - "autocomplete-plus": "2.25.0", + "autocomplete-plus": "2.26.0", "autocomplete-snippets": "1.9.0", "autoflow": "0.26.0", "autosave": "0.23.0", From f4be23049d537b78d58a9125d71c28b3f5b2b6f8 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 26 Jan 2016 13:26:12 -0800 Subject: [PATCH 36/43] Wait for window resize to take effect in text editor component spec --- spec/text-editor-component-spec.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spec/text-editor-component-spec.js b/spec/text-editor-component-spec.js index 17dfa1183..15ad223fe 100644 --- a/spec/text-editor-component-spec.js +++ b/spec/text-editor-component-spec.js @@ -2155,6 +2155,11 @@ describe('TextEditorComponent', function () { width: windowWidth, height: windowHeight }) + + await conditionPromise(function () { + return window.innerWidth === windowWidth + }) + component.measureDimensions() component.measureWindowSize() await nextViewUpdatePromise() From d1b5e0e7e3ff8e67c58326364af4b8322b415d75 Mon Sep 17 00:00:00 2001 From: Wliu Date: Tue, 26 Jan 2016 17:22:33 -0500 Subject: [PATCH 37/43] :arrow_down: electron@0.36.4 Resolves crashes on Windows --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a1a626636..455bd0503 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "0.36.5", + "electronVersion": "0.36.4", "dependencies": { "async": "0.2.6", "atom-keymap": "^6.2.0", From 32f51491962cd0d5c95982b0abd6bdf015148571 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 27 Jan 2016 12:38:28 -0800 Subject: [PATCH 38/43] Wait for browser process to acknowledge window manipulation IPC requests We need to avoid using the module for synchronous IPC on startup, but in some cases, we need to know when our asynchronous IPC messages have taken effect. Now, methods like and return Promises that indicate when the message has been processed. --- spec/text-editor-component-spec.js | 6 +--- src/application-delegate.coffee | 13 ++++---- src/atom-environment.coffee | 28 +++++++++-------- src/browser/atom-application.coffee | 19 +++++++++++ src/initialize-application-window.coffee | 14 ++++----- src/ipc-helpers.js | 40 ++++++++++++++++++++++++ 6 files changed, 89 insertions(+), 31 deletions(-) create mode 100644 src/ipc-helpers.js diff --git a/spec/text-editor-component-spec.js b/spec/text-editor-component-spec.js index 15ad223fe..08da07dd8 100644 --- a/spec/text-editor-component-spec.js +++ b/spec/text-editor-component-spec.js @@ -2151,15 +2151,11 @@ describe('TextEditorComponent', function () { item.style.height = itemHeight + 'px' wrapperNode.style.width = windowWidth + 'px' wrapperNode.style.height = windowHeight + 'px' - atom.setWindowDimensions({ + await atom.setWindowDimensions({ width: windowWidth, height: windowHeight }) - await conditionPromise(function () { - return window.innerWidth === windowWidth - }) - component.measureDimensions() component.measureWindowSize() await nextViewUpdatePromise() diff --git a/src/application-delegate.coffee b/src/application-delegate.coffee index f7b04e10d..f87827886 100644 --- a/src/application-delegate.coffee +++ b/src/application-delegate.coffee @@ -1,5 +1,6 @@ _ = require 'underscore-plus' {ipcRenderer, remote, shell, webFrame} = require 'electron' +ipcHelpers = require './ipc-helpers' {Disposable} = require 'event-kit' {getWindowLoadSettings, setWindowLoadSettings} = require './window-load-settings-helpers' @@ -26,26 +27,26 @@ class ApplicationDelegate {width, height} setWindowSize: (width, height) -> - remote.getCurrentWindow().setSize(width, height) + ipcHelpers.call('set-window-size', width, height) getWindowPosition: -> [x, y] = remote.getCurrentWindow().getPosition() {x, y} setWindowPosition: (x, y) -> - ipcRenderer.send("call-window-method", "setPosition", x, y) + ipcHelpers.call('set-window-position', x, y) centerWindow: -> - ipcRenderer.send("call-window-method", "center") + ipcHelpers.call('center-window') focusWindow: -> - ipcRenderer.send("call-window-method", "focus") + ipcHelpers.call('focus-window') showWindow: -> - ipcRenderer.send("call-window-method", "show") + ipcHelpers.call('show-window') hideWindow: -> - ipcRenderer.send("call-window-method", "hide") + ipcHelpers.call('hide-window') reloadWindow: -> ipcRenderer.send("call-window-method", "reload") diff --git a/src/atom-environment.coffee b/src/atom-environment.coffee index cd6834da4..be05ef4cf 100644 --- a/src/atom-environment.coffee +++ b/src/atom-environment.coffee @@ -519,16 +519,17 @@ class AtomEnvironment extends Model # Restore the window to its previous dimensions and show it. # - # Also restores the full screen and maximized state on the next tick to + # Restores the full screen and maximized state after the window has resized to # prevent resize glitches. displayWindow: -> - dimensions = @restoreWindowDimensions() - @show() - @focus() - - setImmediate => - @setFullScreen(true) if @workspace?.fullScreen - @maximize() if dimensions?.maximized and process.platform isnt 'darwin' + @restoreWindowDimensions().then (dimensions) => + steps = [ + @show(), + @focus() + ] + steps.push(@setFullScreen(true)) if @workspace.fullScreen + steps.push(@maximize()) if dimensions?.maximized and process.platform isnt 'darwin' + Promise.all(steps) # Get the dimensions of this window. # @@ -556,12 +557,14 @@ class AtomEnvironment extends Model # * `width` The new width. # * `height` The new height. setWindowDimensions: ({x, y, width, height}) -> + steps = [] if width? and height? - @setSize(width, height) + steps.push(@setSize(width, height)) if x? and y? - @setPosition(x, y) + steps.push(@setPosition(x, y)) else - @center() + steps.push(@center()) + Promise.all(steps) # Returns true if the dimensions are useable, false if they should be ignored. # Work around for https://github.com/atom/atom-shell/issues/473 @@ -594,8 +597,7 @@ class AtomEnvironment extends Model dimensions = @state.windowDimensions unless @isValidDimensions(dimensions) dimensions = @getDefaultWindowDimensions() - @setWindowDimensions(dimensions) - dimensions + @setWindowDimensions(dimensions).then -> dimensions storeWindowDimensions: -> dimensions = @getWindowDimensions() diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index 49bf310dc..ff98c9edc 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -3,6 +3,7 @@ ApplicationMenu = require './application-menu' AtomProtocolHandler = require './atom-protocol-handler' AutoUpdateManager = require './auto-update-manager' StorageFolder = require '../storage-folder' +ipcHelpers = require '../ipc-helpers' {BrowserWindow, Menu, app, dialog, ipcMain, shell} = require 'electron' fs = require 'fs-plus' path = require 'path' @@ -261,6 +262,24 @@ class AtomApplication @promptForPath "folder", (selectedPaths) -> event.sender.send(responseChannel, selectedPaths) + ipcHelpers.respondTo 'set-window-size', (win, width, height) -> + win.setSize(width, height) + + ipcHelpers.respondTo 'set-window-position', (win, x, y) -> + win.setPosition(x, y) + + ipcHelpers.respondTo 'center-window', (win) -> + win.center() + + ipcHelpers.respondTo 'focus-window', (win) -> + win.focus() + + ipcHelpers.respondTo 'show-window', (win) -> + win.show() + + ipcHelpers.respondTo 'hide-window', (win) -> + win.hide() + ipcMain.on 'did-cancel-window-unload', => @quitting = false diff --git a/src/initialize-application-window.coffee b/src/initialize-application-window.coffee index 57aa33ce0..35c48ee0a 100644 --- a/src/initialize-application-window.coffee +++ b/src/initialize-application-window.coffee @@ -23,11 +23,11 @@ module.exports = ({blobStore}) -> enablePersistence: true }) - atom.displayWindow() - atom.startEditorWindow() + atom.displayWindow().then -> + atom.startEditorWindow() - # Workaround for focus getting cleared upon window creation - windowFocused = -> - window.removeEventListener('focus', windowFocused) - setTimeout (-> document.querySelector('atom-workspace').focus()), 0 - window.addEventListener('focus', windowFocused) + # Workaround for focus getting cleared upon window creation + windowFocused = -> + window.removeEventListener('focus', windowFocused) + setTimeout (-> document.querySelector('atom-workspace').focus()), 0 + window.addEventListener('focus', windowFocused) diff --git a/src/ipc-helpers.js b/src/ipc-helpers.js new file mode 100644 index 000000000..c0b38c50e --- /dev/null +++ b/src/ipc-helpers.js @@ -0,0 +1,40 @@ +var ipcRenderer = null +var ipcMain = null +var BrowserWindow = null + +exports.call = function (methodName, ...args) { + if (!ipcRenderer) { + ipcRenderer = require('electron').ipcRenderer + } + + var responseChannel = getResponseChannel(methodName) + + return new Promise(function (resolve) { + ipcRenderer.on(responseChannel, function (event, result) { + ipcRenderer.removeAllListeners(responseChannel) + resolve(result) + }) + + ipcRenderer.send(methodName, ...args) + }) +} + +exports.respondTo = function (methodName, callback) { + if (!ipcMain) { + var electron = require('electron') + ipcMain = electron.ipcMain + BrowserWindow = electron.BrowserWindow + } + + var responseChannel = getResponseChannel(methodName) + + ipcMain.on(methodName, function (event, ...args) { + var browserWindow = BrowserWindow.fromWebContents(event.sender) + var result = callback(browserWindow, ...args) + event.sender.send(responseChannel, result) + }) +} + +function getResponseChannel (methodName) { + return 'ipc-helpers-' + methodName + '-response' +} From 28e535ee15921e621a2b3218acc456e985a24d2b Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 27 Jan 2016 13:00:18 -0800 Subject: [PATCH 39/43] Apply window background color after resizing window --- src/atom-environment.coffee | 9 +++++++++ static/index.js | 26 -------------------------- 2 files changed, 9 insertions(+), 26 deletions(-) diff --git a/src/atom-environment.coffee b/src/atom-environment.coffee index be05ef4cf..44579a4bc 100644 --- a/src/atom-environment.coffee +++ b/src/atom-environment.coffee @@ -524,6 +524,7 @@ class AtomEnvironment extends Model displayWindow: -> @restoreWindowDimensions().then (dimensions) => steps = [ + @restoreWindowBackground(), @show(), @focus() ] @@ -603,6 +604,13 @@ class AtomEnvironment extends Model dimensions = @getWindowDimensions() @state.windowDimensions = dimensions if @isValidDimensions(dimensions) + restoreWindowBackground: -> + if backgroundColor = window.localStorage.getItem('atom:window-background-color') + @backgroundStylesheet = document.createElement('style') + @backgroundStylesheet.type = 'text/css' + @backgroundStylesheet.innerText = 'html, body { background: ' + backgroundColor + ' !important; }' + document.head.appendChild(@backgroundStylesheet) + storeWindowBackground: -> return if @inSpecMode() @@ -627,6 +635,7 @@ class AtomEnvironment extends Model @packages.loadPackages() @loadStateSync() @document.body.appendChild(@views.getView(@workspace)) + @backgroundStylesheet?.remove() @watchProjectPath() diff --git a/static/index.js b/static/index.js index 796cda363..bedd422fb 100644 --- a/static/index.js +++ b/static/index.js @@ -146,31 +146,6 @@ } } - function setupWindowBackground () { - if (loadSettings && loadSettings.isSpec) { - return - } - - var backgroundColor = window.localStorage.getItem('atom:window-background-color') - if (!backgroundColor) { - return - } - - var backgroundStylesheet = document.createElement('style') - backgroundStylesheet.type = 'text/css' - backgroundStylesheet.innerText = 'html, body { background: ' + backgroundColor + ' !important; }' - document.head.appendChild(backgroundStylesheet) - - // Remove once the page loads - window.addEventListener('load', function loadWindow () { - window.removeEventListener('load', loadWindow, false) - setTimeout(function () { - backgroundStylesheet.remove() - backgroundStylesheet = null - }, 1000) - }, false) - } - var setupAtomHome = function () { if (process.env.ATOM_HOME) { return @@ -186,5 +161,4 @@ parseLoadSettings() setupAtomHome() - setupWindowBackground() })() From 130f23166da9ec1cbc3f0e8c5e42e980b071b189 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 27 Jan 2016 14:04:50 -0800 Subject: [PATCH 40/43] Emit window:loaded event after editor window is started --- src/initialize-application-window.coffee | 1 + static/index.js | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/initialize-application-window.coffee b/src/initialize-application-window.coffee index 35c48ee0a..1a4a74447 100644 --- a/src/initialize-application-window.coffee +++ b/src/initialize-application-window.coffee @@ -25,6 +25,7 @@ module.exports = ({blobStore}) -> atom.displayWindow().then -> atom.startEditorWindow() + require('electron').ipcRenderer.send('window-command', 'window:loaded') # Workaround for focus getting cleared upon window creation windowFocused = -> diff --git a/static/index.js b/static/index.js index bedd422fb..6b901a215 100644 --- a/static/index.js +++ b/static/index.js @@ -85,7 +85,6 @@ var initialize = require(loadSettings.windowInitializationScript) initialize({blobStore: blobStore}) - require('electron').ipcRenderer.send('window-command', 'window:loaded') } function setupCsonCache (cacheDir) { From 0fd753ea8c790a2cd3955357fb55b426ed2c8761 Mon Sep 17 00:00:00 2001 From: Wliu <50Wliu@users.noreply.github.com> Date: Sat, 30 Jan 2016 12:07:36 -0500 Subject: [PATCH 41/43] :arrow_up: electron@0.36.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 455bd0503..ca569b342 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "0.36.4", + "electronVersion": "0.36.7", "dependencies": { "async": "0.2.6", "atom-keymap": "^6.2.0", From 81c15bd8b41778fe6373bd34357667d4f3f4b53a Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 12 Feb 2016 14:19:03 -0800 Subject: [PATCH 42/43] Make --profile-startup flag work w/ async initializion --- static/index.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/static/index.js b/static/index.js index 87f7e04af..4e5494b18 100644 --- a/static/index.js +++ b/static/index.js @@ -85,7 +85,7 @@ var initialize = require(loadSettings.windowInitializationScript) - initialize({blobStore: blobStore}).then(function () { + return initialize({blobStore: blobStore}).then(function () { require('electron').ipcRenderer.send('window-command', 'window:loaded') }) } @@ -115,16 +115,12 @@ function profileStartup (loadSettings, initialTime) { function profile () { console.profile('startup') - try { - var startTime = Date.now() - setupWindow(loadSettings) + var startTime = Date.now() + setupWindow(loadSettings).then(function () { setLoadTime(Date.now() - startTime + initialTime) - } catch (error) { - handleSetupError(error) - } finally { console.profileEnd('startup') console.log('Switch to the Profiles tab to view the created startup profile') - } + }) } var currentWindow = require('electron').remote.getCurrentWindow() From 63270f417432f12ffeacf93f42c77308ea8e6211 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Tue, 16 Feb 2016 14:35:12 +0100 Subject: [PATCH 43/43] Add TextEditor.prototype.cursorsForScreenRowRange So that `TextEditorPresenter` can avoid to scan through all the cursors to understand whether they're visible on screen. This dramatically reduces the calls to `getScreenRange` and, thus, makes `updateCursorsState` faster for multi-cursor edits. --- src/text-editor-presenter.coffee | 16 ++++++---------- src/text-editor.coffee | 10 ++++++++++ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/text-editor-presenter.coffee b/src/text-editor-presenter.coffee index b13bf9036..a36c860ed 100644 --- a/src/text-editor-presenter.coffee +++ b/src/text-editor-presenter.coffee @@ -432,18 +432,14 @@ class TextEditorPresenter return updateCursorsState: -> - @state.content.cursors = {} - @updateCursorState(cursor) for cursor in @model.cursors # using property directly to avoid allocation - return - - updateCursorState: (cursor) -> return unless @startRow? and @endRow? and @hasPixelRectRequirements() and @baseCharacterWidth? - screenRange = cursor.getScreenRange() - return unless cursor.isVisible() and @startRow <= screenRange.start.row < @endRow - pixelRect = @pixelRectForScreenRange(screenRange) - pixelRect.width = Math.round(@baseCharacterWidth) if pixelRect.width is 0 - @state.content.cursors[cursor.id] = pixelRect + @state.content.cursors = {} + for cursor in @model.cursorsForScreenRowRange(@startRow, @endRow - 1) when cursor.isVisible() + pixelRect = @pixelRectForScreenRange(cursor.getScreenRange()) + pixelRect.width = Math.round(@baseCharacterWidth) if pixelRect.width is 0 + @state.content.cursors[cursor.id] = pixelRect + return updateOverlaysState: -> return unless @hasOverlayPositionRequirements() diff --git a/src/text-editor.coffee b/src/text-editor.coffee index 2ba45a3ba..55f6d84ad 100644 --- a/src/text-editor.coffee +++ b/src/text-editor.coffee @@ -109,6 +109,7 @@ class TextEditor extends Model @emitter = new Emitter @disposables = new CompositeDisposable @cursors = [] + @cursorsByMarkerId = new Map @selections = [] buffer ?= new TextBuffer @@ -1944,10 +1945,18 @@ class TextEditor extends Model getCursorsOrderedByBufferPosition: -> @getCursors().sort (a, b) -> a.compare(b) + cursorsForScreenRowRange: (startScreenRow, endScreenRow) -> + cursors = [] + for marker in @selectionsMarkerLayer.findMarkers(intersectsScreenRowRange: [startScreenRow, endScreenRow]) + if cursor = @cursorsByMarkerId.get(marker.id) + cursors.push(cursor) + cursors + # Add a cursor based on the given {TextEditorMarker}. addCursor: (marker) -> cursor = new Cursor(editor: this, marker: marker, config: @config) @cursors.push(cursor) + @cursorsByMarkerId.set(marker.id, cursor) @decorateMarker(marker, type: 'line-number', class: 'cursor-line') @decorateMarker(marker, type: 'line-number', class: 'cursor-line-no-selection', onlyHead: true, onlyEmpty: true) @decorateMarker(marker, type: 'line', class: 'cursor-line', onlyEmpty: true) @@ -2446,6 +2455,7 @@ class TextEditor extends Model removeSelection: (selection) -> _.remove(@cursors, selection.cursor) _.remove(@selections, selection) + @cursorsByMarkerId.delete(selection.cursor.marker.id) @emitter.emit 'did-remove-cursor', selection.cursor @emitter.emit 'did-remove-selection', selection