2013-12-15 08:21:23 +00:00
|
|
|
path = require 'path'
|
2014-04-03 12:54:42 +00:00
|
|
|
url = require 'url'
|
2013-12-15 08:11:00 +00:00
|
|
|
Module = require 'module'
|
2013-12-15 06:20:28 +00:00
|
|
|
|
|
|
|
# Expose information of current process.
|
2014-05-21 14:44:43 +00:00
|
|
|
process.type = 'renderer'
|
2014-03-16 05:24:25 +00:00
|
|
|
process.resourcesPath = path.resolve process.argv[1], '..', '..', '..', '..'
|
2013-12-15 06:20:28 +00:00
|
|
|
|
|
|
|
# We modified the original process.argv to let node.js load the
|
|
|
|
# atom-renderer.js, we need to restore it here.
|
|
|
|
process.argv.splice 1, 1
|
|
|
|
|
|
|
|
# Add renderer/api/lib to require's search paths, which contains javascript part
|
|
|
|
# of Atom's built-in libraries.
|
2013-12-15 08:11:00 +00:00
|
|
|
globalPaths = Module.globalPaths
|
2014-03-16 05:24:25 +00:00
|
|
|
globalPaths.push path.join(process.resourcesPath, 'atom', 'renderer', 'api', 'lib')
|
2013-12-15 08:11:00 +00:00
|
|
|
# And also app.
|
|
|
|
globalPaths.push path.join(process.resourcesPath, 'app')
|
2013-12-15 06:20:28 +00:00
|
|
|
|
2014-01-13 05:57:08 +00:00
|
|
|
# Import common settings.
|
|
|
|
require path.resolve(__dirname, '..', '..', 'common', 'lib', 'init.js')
|
|
|
|
|
2013-12-15 06:20:28 +00:00
|
|
|
# Expose global variables.
|
|
|
|
global.require = require
|
|
|
|
global.module = module
|
2013-12-15 11:09:00 +00:00
|
|
|
|
2014-09-25 13:48:30 +00:00
|
|
|
# Emit the 'exit' event when page is unloading.
|
|
|
|
window.addEventListener 'unload', ->
|
|
|
|
process.emit 'exit'
|
|
|
|
|
2014-09-24 05:23:37 +00:00
|
|
|
# Set the __filename to the path of html file if it's file: or asar: protocol.
|
|
|
|
if window.location.protocol in ['file:', 'asar:']
|
2014-01-24 13:20:30 +00:00
|
|
|
pathname =
|
2014-10-14 11:27:47 +00:00
|
|
|
if process.platform is 'win32' and window.location.pathname[0] is '/'
|
2013-12-17 14:16:15 +00:00
|
|
|
window.location.pathname.substr 1
|
|
|
|
else
|
|
|
|
window.location.pathname
|
2014-10-14 11:45:57 +00:00
|
|
|
global.__filename = path.normalize decodeURIComponent(pathname)
|
2013-12-15 08:11:00 +00:00
|
|
|
global.__dirname = path.dirname global.__filename
|
|
|
|
|
2014-01-07 06:30:18 +00:00
|
|
|
# Set module's filename so relative require can work as expected.
|
|
|
|
module.filename = global.__filename
|
|
|
|
|
2013-12-15 08:11:00 +00:00
|
|
|
# Also search for module under the html file.
|
|
|
|
module.paths = module.paths.concat Module._nodeModulePaths(global.__dirname)
|
|
|
|
else
|
|
|
|
global.__filename = __filename
|
|
|
|
global.__dirname = __dirname
|
2013-12-15 08:32:41 +00:00
|
|
|
|
2014-04-03 12:54:42 +00:00
|
|
|
if location.protocol is 'chrome-devtools:'
|
|
|
|
# Override some inspector APIs.
|
|
|
|
require path.join(__dirname, 'inspector')
|
2014-08-28 04:24:52 +00:00
|
|
|
else if location.protocol is 'chrome-extension:'
|
|
|
|
# Add implementations of chrome API.
|
|
|
|
require path.join(__dirname, 'chrome-api')
|
2014-04-03 12:54:42 +00:00
|
|
|
else
|
|
|
|
# Override default web functions.
|
|
|
|
require path.join(__dirname, 'override')
|