Use // for multi-line comments

This commit is contained in:
Kevin Sawicki 2016-01-14 10:44:21 -08:00
parent f4af744519
commit 990dc30e8d
15 changed files with 65 additions and 138 deletions

View file

@ -62,11 +62,8 @@ AutoUpdater = (function(superClass) {
}; };
/* // Private: Emit both error object and message, this is to keep compatibility
Private: Emit both error object and message, this is to keep compatibility // with Old APIs.
with Old APIs.
*/
AutoUpdater.prototype.emitError = function(message) { AutoUpdater.prototype.emitError = function(message) {
return this.emit('error', new Error(message), message); return this.emit('error', new Error(message), message);
}; };

View file

@ -6,24 +6,16 @@ path = require('path');
spawn = require('child_process').spawn; spawn = require('child_process').spawn;
// i.e. my-app/app-0.1.13/ // i.e. my-app/app-0.1.13/
appFolder = path.dirname(process.execPath); appFolder = path.dirname(process.execPath);
// i.e. my-app/Update.exe // i.e. my-app/Update.exe
updateExe = path.resolve(appFolder, '..', 'Update.exe'); updateExe = path.resolve(appFolder, '..', 'Update.exe');
exeName = path.basename(process.execPath); exeName = path.basename(process.execPath);
// Spawn a command and invoke the callback when it completes with an error
/* // and the output from standard out.
Spawn a command and invoke the callback when it completes with an error
and the output from standard out.
*/
spawnUpdate = function(args, detached, callback) { spawnUpdate = function(args, detached, callback) {
var error, error1, errorEmitted, spawnedProcess, stderr, stdout; var error, error1, errorEmitted, spawnedProcess, stderr, stdout;
try { try {

View file

@ -33,10 +33,8 @@ BrowserWindow.prototype._init = function() {
return ipcMain.emit('ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_OPEN', event, url, frameName, options); return ipcMain.emit('ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_OPEN', event, url, frameName, options);
}); });
/* // window.resizeTo(...)
window.resizeTo(...) // window.moveTo(...)
window.moveTo(...)
*/
this.webContents.on('move', (function(_this) { this.webContents.on('move', (function(_this) {
return function(event, size) { return function(event, size) {
return _this.setBounds(size); return _this.setBounds(size);
@ -69,14 +67,12 @@ BrowserWindow.prototype._init = function() {
}; };
})(this)); })(this));
/* // Sometimes the webContents doesn't get focus when window is shown, so we have
Sometimes the webContents doesn't get focus when window is shown, so we have // to force focusing on webContents in this case. The safest way is to focus it
to force focusing on webContents in this case. The safest way is to focus it // when we first start to load URL, if we do it earlier it won't have effect,
when we first start to load URL, if we do it earlier it won't have effect, // if we do it later we might move focus in the page.
if we do it later we might move focus in the page. // Though this hack is only needed on OS X when the app is launched from
Though this hack is only needed on OS X when the app is launched from // Finder, we still do it on all platforms in case of other bugs we don't know.
Finder, we still do it on all platforms in case of other bugs we don't know.
*/
this.webContents.once('load-url', function() { this.webContents.once('load-url', function() {
return this.focus(); return this.focus();
}); });

View file

@ -18,15 +18,11 @@ ipcMain.on('ATOM_SHELL_SYNC_NAVIGATION_CONTROLLER', function() {
return event.returnValue = (ref = event.sender)[method].apply(ref, args); return event.returnValue = (ref = event.sender)[method].apply(ref, args);
}); });
// JavaScript implementation of Chromium's NavigationController.
/* // Instead of relying on Chromium for history control, we compeletely do history
JavaScript implementation of Chromium's NavigationController. // control on user land, and only rely on WebContents.loadURL for navigation.
Instead of relying on Chromium for history control, we compeletely do history // This helps us avoid Chromium's various optimizations so we can ensure renderer
control on user land, and only rely on WebContents.loadURL for navigation. // process is restarted everytime.
This helps us avoid Chromium's various optimizations so we can ensure renderer
process is restarted everytime.
*/
NavigationController = (function() { NavigationController = (function() {
function NavigationController(webContents) { function NavigationController(webContents) {
this.webContents = webContents; this.webContents = webContents;

View file

@ -138,10 +138,8 @@ wrapWebContents = function(webContents) {
var args; var args;
args = 1 <= arguments.length ? slice.call(arguments, 0) : []; args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
/* // Calling loadURL during this event might cause crash, so delay the event
Calling loadURL during this event might cause crash, so delay the event // until next tick.
until next tick.
*/
return setImmediate((function(_this) { return setImmediate((function(_this) {
return function() { return function() {
return _this.emit.apply(_this, ['did-fail-load'].concat(slice.call(args))); return _this.emit.apply(_this, ['did-fail-load'].concat(slice.call(args)));

View file

@ -36,10 +36,8 @@ getExtensionInfoFromPath = function(srcDirectory) {
manifest = JSON.parse(fs.readFileSync(path.join(srcDirectory, 'manifest.json'))); manifest = JSON.parse(fs.readFileSync(path.join(srcDirectory, 'manifest.json')));
if (extensionInfoMap[manifest.name] == null) { if (extensionInfoMap[manifest.name] == null) {
/* // We can not use 'file://' directly because all resources in the extension
We can not use 'file://' directly because all resources in the extension // will be treated as relative to the root in Chrome.
will be treated as relative to the root in Chrome.
*/
page = url.format({ page = url.format({
protocol: 'chrome-extension', protocol: 'chrome-extension',
slashes: true, slashes: true,

View file

@ -29,10 +29,8 @@ ipcMain.on('ATOM_BROWSER_DESKTOP_CAPTURER_GET_SOURCES', function(event, captureW
desktopCapturer.startHandling(captureWindow, captureScreen, thumbnailSize); desktopCapturer.startHandling(captureWindow, captureScreen, thumbnailSize);
} }
/* // If the WebContents is destroyed before receiving result, just remove the
If the WebContents is destroyed before receiving result, just remove the // reference from requestsQueue to make the module not send the result to it.
reference from requestsQueue to make the module not send the result to it.
*/
return event.sender.once('destroyed', function() { return event.sender.once('destroyed', function() {
return request.webContents = null; return request.webContents = null;
}); });
@ -60,10 +58,8 @@ desktopCapturer.emit = function(event, name, sources) {
ref.send("ATOM_RENDERER_DESKTOP_CAPTURER_RESULT_" + handledRequest.id, result); ref.send("ATOM_RENDERER_DESKTOP_CAPTURER_RESULT_" + handledRequest.id, result);
} }
/* // Check the queue to see whether there is other same request. If has, handle
Check the queue to see whether there is other same request. If has, handle // it for reducing redunplicated `desktopCaptuer.startHandling` calls.
it for reducing redunplicated `desktopCaptuer.startHandling` calls.
*/
unhandledRequestsQueue = []; unhandledRequestsQueue = [];
for (i = 0, len = requestsQueue.length; i < len; i++) { for (i = 0, len = requestsQueue.length; i < len; i++) {
request = requestsQueue[i]; request = requestsQueue[i];

View file

@ -62,11 +62,9 @@ createGuest = function(embedder, params) {
event = destroyEvents[i]; event = destroyEvents[i];
embedder.once(event, destroy); embedder.once(event, destroy);
/* // Users might also listen to the crashed event, so We must ensure the guest
Users might also listen to the crashed event, so We must ensure the guest // is destroyed before users' listener gets called. It is done by moving our
is destroyed before users' listener gets called. It is done by moving our // listener to the first one in queue.
listener to the first one in queue.
*/
listeners = embedder._events[event]; listeners = embedder._events[event];
if (Array.isArray(listeners)) { if (Array.isArray(listeners)) {
moveLastToFirst(listeners); moveLastToFirst(listeners);

View file

@ -65,11 +65,9 @@ createGuest = function(embedder, url, frameName, options) {
guest = new BrowserWindow(options); guest = new BrowserWindow(options);
guest.loadURL(url); guest.loadURL(url);
/* // When |embedder| is destroyed we should also destroy attached guest, and if
When |embedder| is destroyed we should also destroy attached guest, and if // guest is closed by user then we should prevent |embedder| from double
guest is closed by user then we should prevent |embedder| from double // closing guest.
closing guest.
*/
guestId = guest.id; guestId = guest.id;
closedByEmbedder = function() { closedByEmbedder = function() {
guest.removeListener('closed', closedByUser); guest.removeListener('closed', closedByUser);

View file

@ -17,14 +17,10 @@ Module = require('module');
process.argv.splice(1, 1); process.argv.splice(1, 1);
// Clear search paths. // Clear search paths.
require(path.resolve(__dirname, '..', '..', 'common', 'lib', 'reset-search-paths')); require(path.resolve(__dirname, '..', '..', 'common', 'lib', 'reset-search-paths'));
// Import common settings. // Import common settings.
require(path.resolve(__dirname, '..', '..', 'common', 'lib', 'init')); require(path.resolve(__dirname, '..', '..', 'common', 'lib', 'init'));
globalPaths = Module.globalPaths; globalPaths = Module.globalPaths;
@ -33,17 +29,12 @@ if (!process.env.ELECTRON_HIDE_INTERNAL_MODULES) {
globalPaths.push(path.resolve(__dirname, '..', 'api', 'lib')); globalPaths.push(path.resolve(__dirname, '..', 'api', 'lib'));
} }
// Expose public APIs. // Expose public APIs.
globalPaths.push(path.resolve(__dirname, '..', 'api', 'lib', 'exports')); globalPaths.push(path.resolve(__dirname, '..', 'api', 'lib', 'exports'));
if (process.platform === 'win32') { if (process.platform === 'win32') {
// Redirect node's console to use our own implementations, since node can not
/* // handle console output when running as GUI program.
Redirect node's console to use our own implementations, since node can not
handle console output when running as GUI program.
*/
consoleLog = function() { consoleLog = function() {
var args; var args;
args = 1 <= arguments.length ? slice.call(arguments, 0) : []; args = 1 <= arguments.length ? slice.call(arguments, 0) : [];

View file

@ -13,25 +13,17 @@ ObjectsRegistry = (function(superClass) {
this.setMaxListeners(Number.MAX_VALUE); this.setMaxListeners(Number.MAX_VALUE);
this.nextId = 0; this.nextId = 0;
/* // Stores all objects by ref-counting.
Stores all objects by ref-counting. // (id) => {object, count}
(id) => {object, count}
*/
this.storage = {}; this.storage = {};
/* // Stores the IDs of objects referenced by WebContents.
Stores the IDs of objects referenced by WebContents. // (webContentsId) => {(id) => (count)}
(webContentsId) => {(id) => (count)}
*/
this.owners = {}; this.owners = {};
} }
// Register a new object, the object would be kept referenced until you release
/* // it explicitly.
Register a new object, the object would be kept referenced until you release
it explicitly.
*/
ObjectsRegistry.prototype.add = function(webContentsId, obj) { ObjectsRegistry.prototype.add = function(webContentsId, obj) {
var base, base1, id; var base, base1, id;
id = this.saveToStorage(obj); id = this.saveToStorage(obj);
@ -51,7 +43,6 @@ ObjectsRegistry = (function(superClass) {
// Get an object according to its ID. // Get an object according to its ID.
ObjectsRegistry.prototype.get = function(id) { ObjectsRegistry.prototype.get = function(id) {
var ref; var ref;
return (ref = this.storage[id]) != null ? ref.object : void 0; return (ref = this.storage[id]) != null ? ref.object : void 0;
@ -59,7 +50,6 @@ ObjectsRegistry = (function(superClass) {
// Dereference an object according to its ID. // Dereference an object according to its ID.
ObjectsRegistry.prototype.remove = function(webContentsId, id) { ObjectsRegistry.prototype.remove = function(webContentsId, id) {
var pointer; var pointer;
this.dereference(id, 1); this.dereference(id, 1);
@ -77,7 +67,6 @@ ObjectsRegistry = (function(superClass) {
// Clear all references to objects refrenced by the WebContents. // Clear all references to objects refrenced by the WebContents.
ObjectsRegistry.prototype.clear = function(webContentsId) { ObjectsRegistry.prototype.clear = function(webContentsId) {
var count, id, ref; var count, id, ref;
this.emit("clear-" + webContentsId); this.emit("clear-" + webContentsId);
@ -94,7 +83,6 @@ ObjectsRegistry = (function(superClass) {
// Private: Saves the object into storage and assigns an ID for it. // Private: Saves the object into storage and assigns an ID for it.
ObjectsRegistry.prototype.saveToStorage = function(object) { ObjectsRegistry.prototype.saveToStorage = function(object) {
var id; var id;
id = v8Util.getHiddenValue(object, 'atomId'); id = v8Util.getHiddenValue(object, 'atomId');
@ -112,7 +100,6 @@ ObjectsRegistry = (function(superClass) {
// Private: Dereference the object from store. // Private: Dereference the object from store.
ObjectsRegistry.prototype.dereference = function(id, count) { ObjectsRegistry.prototype.dereference = function(id, count) {
var pointer; var pointer;
pointer = this.storage[id]; pointer = this.storage[id];

View file

@ -61,11 +61,9 @@ valueToMeta = function(sender, value, optimizeSimpleObject) {
} else if (meta.type === 'object' || meta.type === 'function') { } else if (meta.type === 'object' || meta.type === 'function') {
meta.name = value.constructor.name; meta.name = value.constructor.name;
/* // Reference the original value if it's an object, because when it's
Reference the original value if it's an object, because when it's // passed to renderer we would assume the renderer keeps a reference of
passed to renderer we would assume the renderer keeps a reference of // it.
it.
*/
meta.id = objectsRegistry.add(sender.getId(), value); meta.id = objectsRegistry.add(sender.getId(), value);
meta.members = (function() { meta.members = (function() {
var results; var results;
@ -196,12 +194,8 @@ unwrapArgs = function(sender, args) {
return args.map(metaToValue); return args.map(metaToValue);
}; };
// Call a function and send reply asynchronously if it's a an asynchronous
/* // style function and the caller didn't pass a callback.
Call a function and send reply asynchronously if it's a an asynchronous
style function and the caller didn't pass a callback.
*/
callFunction = function(event, func, caller, args) { callFunction = function(event, func, caller, args) {
var e, error1, funcMarkedAsync, funcName, funcPassedCallback, ref, ret; var e, error1, funcMarkedAsync, funcName, funcPassedCallback, ref, ret;
funcMarkedAsync = v8Util.getHiddenValue(func, 'asynchronous'); funcMarkedAsync = v8Util.getHiddenValue(func, 'asynchronous');
@ -219,11 +213,9 @@ callFunction = function(event, func, caller, args) {
} catch (error1) { } catch (error1) {
e = error1; e = error1;
/* // Catch functions thrown further down in function invocation and wrap
Catch functions thrown further down in function invocation and wrap // them with the function name so it's easier to trace things like
them with the function name so it's easier to trace things like // `Error processing argument -1.`
`Error processing argument -1.`
*/
funcName = (ref = func.name) != null ? ref : "anonymous"; funcName = (ref = func.name) != null ? ref : "anonymous";
throw new Error("Could not call remote function `" + funcName + "`. Check that the function signature is correct. Underlying error: " + e.message); throw new Error("Could not call remote function `" + funcName + "`. Check that the function signature is correct. Underlying error: " + e.message);
} }
@ -231,7 +223,6 @@ callFunction = function(event, func, caller, args) {
// Send by BrowserWindow when its render view is deleted. // Send by BrowserWindow when its render view is deleted.
process.on('ATOM_BROWSER_RELEASE_RENDER_VIEW', function(id) { process.on('ATOM_BROWSER_RELEASE_RENDER_VIEW', function(id) {
return objectsRegistry.clear(id); return objectsRegistry.clear(id);
}); });
@ -286,10 +277,8 @@ ipcMain.on('ATOM_BROWSER_CONSTRUCTOR', function(event, id, args) {
args = unwrapArgs(event.sender, args); args = unwrapArgs(event.sender, args);
constructor = objectsRegistry.get(id); constructor = objectsRegistry.get(id);
/* // Call new with array of arguments.
Call new with array of arguments. // http://stackoverflow.com/questions/1606797/use-of-apply-with-new-operator-is-this-possible
http://stackoverflow.com/questions/1606797/use-of-apply-with-new-operator-is-this-possible
*/
obj = new (Function.prototype.bind.apply(constructor, [null].concat(args))); obj = new (Function.prototype.bind.apply(constructor, [null].concat(args)));
return event.returnValue = valueToMeta(event.sender, obj); return event.returnValue = valueToMeta(event.sender, obj);
} catch (error1) { } catch (error1) {

View file

@ -19,10 +19,8 @@ module.exports = CallbacksRegistry = (function() {
} }
id = ++this.nextId; id = ++this.nextId;
/* // Capture the location of the function and put it in the ID string,
Capture the location of the function and put it in the ID string, // so that release errors can be tracked down easily.
so that release errors can be tracked down easily.
*/
regexp = /at (.*)/gi; regexp = /at (.*)/gi;
stackString = (new Error).stack; stackString = (new Error).stack;
while ((match = regexp.exec(stackString)) !== null) { while ((match = regexp.exec(stackString)) !== null) {

View file

@ -571,12 +571,10 @@ exports.wrapFsWithAsar = function(fs) {
} }
}; };
/* // Calling mkdir for directory inside asar archive should throw ENOTDIR
Calling mkdir for directory inside asar archive should throw ENOTDIR // error, but on Windows it throws ENOENT.
error, but on Windows it throws ENOENT. // This is to work around the recursive looping bug of mkdirp since it is
This is to work around the recursive looping bug of mkdirp since it is // widely used.
widely used.
*/
if (process.platform === 'win32') { if (process.platform === 'win32') {
mkdir = fs.mkdir; mkdir = fs.mkdir;
fs.mkdir = function(p, mode, callback) { fs.mkdir = function(p, mode, callback) {

View file

@ -27,15 +27,12 @@ if (!process.env.ELECTRON_HIDE_INTERNAL_MODULES) {
} }
/* // setImmediate and process.nextTick makes use of uv_check and uv_prepare to
setImmediate and process.nextTick makes use of uv_check and uv_prepare to // run the callbacks, however since we only run uv loop on requests, the
run the callbacks, however since we only run uv loop on requests, the // callbacks wouldn't be called until something else activated the uv loop,
callbacks wouldn't be called until something else activated the uv loop, // which would delay the callbacks for arbitrary long time. So we should
which would delay the callbacks for arbitrary long time. So we should // initiatively activate the uv loop once setImmediate and process.nextTick is
initiatively activate the uv loop once setImmediate and process.nextTick is // called.
called.
*/
wrapWithActivateUvLoop = function(func) { wrapWithActivateUvLoop = function(func) {
return function() { return function() {
process.activateUvLoop(); process.activateUvLoop();
@ -51,12 +48,10 @@ global.clearImmediate = timers.clearImmediate;
if (process.type === 'browser') { if (process.type === 'browser') {
/* // setTimeout needs to update the polling timeout of the event loop, when
setTimeout needs to update the polling timeout of the event loop, when // called under Chromium's event loop the node's event loop won't get a chance
called under Chromium's event loop the node's event loop won't get a chance // to update the timeout, so we have to force the node's event loop to
to update the timeout, so we have to force the node's event loop to // recalculate the timeout in browser process.
recalculate the timeout in browser process.
*/
global.setTimeout = wrapWithActivateUvLoop(timers.setTimeout); global.setTimeout = wrapWithActivateUvLoop(timers.setTimeout);
global.setInterval = wrapWithActivateUvLoop(timers.setInterval); global.setInterval = wrapWithActivateUvLoop(timers.setInterval);
} }