Separate overrides from init script.
This commit is contained in:
parent
4c8e483bc1
commit
753a1e7aff
3 changed files with 39 additions and 36 deletions
1
atom.gyp
1
atom.gyp
|
@ -32,6 +32,7 @@
|
||||||
'common/api/lib/shell.coffee',
|
'common/api/lib/shell.coffee',
|
||||||
'common/lib/init.coffee',
|
'common/lib/init.coffee',
|
||||||
'renderer/lib/init.coffee',
|
'renderer/lib/init.coffee',
|
||||||
|
'renderer/lib/override.coffee',
|
||||||
'renderer/api/lib/ipc.coffee',
|
'renderer/api/lib/ipc.coffee',
|
||||||
'renderer/api/lib/remote.coffee',
|
'renderer/api/lib/remote.coffee',
|
||||||
],
|
],
|
||||||
|
|
|
@ -42,39 +42,5 @@ else
|
||||||
global.__filename = __filename
|
global.__filename = __filename
|
||||||
global.__dirname = __dirname
|
global.__dirname = __dirname
|
||||||
|
|
||||||
# Redirect window.onerror to uncaughtException.
|
# Override default web functions.
|
||||||
window.onerror = (error) ->
|
require path.join(__dirname, 'override')
|
||||||
if global.process.listeners('uncaughtException').length > 0
|
|
||||||
global.process.emit 'uncaughtException', error
|
|
||||||
true
|
|
||||||
else
|
|
||||||
false
|
|
||||||
|
|
||||||
# Override default window.close, see:
|
|
||||||
# https://github.com/atom/atom-shell/issues/70
|
|
||||||
window.close = ->
|
|
||||||
require('remote').getCurrentWindow().close()
|
|
||||||
|
|
||||||
# Override default window.open.
|
|
||||||
window.open = (url, name, features) ->
|
|
||||||
options = {}
|
|
||||||
for feature in features.split ','
|
|
||||||
[name, value] = feature.split '='
|
|
||||||
options[name] =
|
|
||||||
if value is 'yes'
|
|
||||||
true
|
|
||||||
else if value is 'no'
|
|
||||||
false
|
|
||||||
else
|
|
||||||
value
|
|
||||||
|
|
||||||
options.x ?= options.left
|
|
||||||
options.y ?= options.top
|
|
||||||
options.title ?= name
|
|
||||||
options.width ?= 800
|
|
||||||
options.height ?= 600
|
|
||||||
|
|
||||||
BrowserWindow = require('remote').require 'browser-window'
|
|
||||||
browser = new BrowserWindow options
|
|
||||||
browser.loadUrl url
|
|
||||||
browser
|
|
||||||
|
|
36
renderer/lib/override.coffee
Normal file
36
renderer/lib/override.coffee
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# Redirect window.onerror to uncaughtException.
|
||||||
|
window.onerror = (error) ->
|
||||||
|
if global.process.listeners('uncaughtException').length > 0
|
||||||
|
global.process.emit 'uncaughtException', error
|
||||||
|
true
|
||||||
|
else
|
||||||
|
false
|
||||||
|
|
||||||
|
# Override default window.close, see:
|
||||||
|
# https://github.com/atom/atom-shell/issues/70
|
||||||
|
window.close = ->
|
||||||
|
require('remote').getCurrentWindow().close()
|
||||||
|
|
||||||
|
# Override default window.open.
|
||||||
|
window.open = (url, name, features) ->
|
||||||
|
options = {}
|
||||||
|
for feature in features.split ','
|
||||||
|
[name, value] = feature.split '='
|
||||||
|
options[name] =
|
||||||
|
if value is 'yes'
|
||||||
|
true
|
||||||
|
else if value is 'no'
|
||||||
|
false
|
||||||
|
else
|
||||||
|
value
|
||||||
|
|
||||||
|
options.x ?= options.left
|
||||||
|
options.y ?= options.top
|
||||||
|
options.title ?= name
|
||||||
|
options.width ?= 800
|
||||||
|
options.height ?= 600
|
||||||
|
|
||||||
|
BrowserWindow = require('remote').require 'browser-window'
|
||||||
|
browser = new BrowserWindow options
|
||||||
|
browser.loadUrl url
|
||||||
|
browser
|
Loading…
Reference in a new issue