mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-20 10:37:59 +01:00
Finish moving dactyl.dump to util from last commit, and store the last 15 intercepted stack traces.
This commit is contained in:
@@ -1964,7 +1964,7 @@ const ItemList = Class("ItemList", {
|
|||||||
//if (index == 0)
|
//if (index == 0)
|
||||||
// this.start = now;
|
// this.start = now;
|
||||||
//if (index == Math.min(len - 1, 100))
|
//if (index == Math.min(len - 1, 100))
|
||||||
// dactyl.dump({ time: Date.now() - this.start });
|
// util.dump({ time: Date.now() - this.start });
|
||||||
},
|
},
|
||||||
|
|
||||||
onEvent: function onEvent(event) false
|
onEvent: function onEvent(event) false
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ const Dactyl = Module("dactyl", {
|
|||||||
autocommands.trigger("LeavePre", {});
|
autocommands.trigger("LeavePre", {});
|
||||||
storage.saveAll();
|
storage.saveAll();
|
||||||
dactyl.triggerObserver("shutdown", null);
|
dactyl.triggerObserver("shutdown", null);
|
||||||
dactyl.dump("All dactyl modules destroyed\n");
|
util.dump("All dactyl modules destroyed\n");
|
||||||
autocommands.trigger("Leave", {});
|
autocommands.trigger("Leave", {});
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -1897,7 +1897,7 @@ const Dactyl = Module("dactyl", {
|
|||||||
dactyl.commandLineOptions.noPlugins = "++noplugin" in args;
|
dactyl.commandLineOptions.noPlugins = "++noplugin" in args;
|
||||||
dactyl.commandLineOptions.postCommands = args["+c"];
|
dactyl.commandLineOptions.postCommands = args["+c"];
|
||||||
dactyl.commandLineOptions.preCommands = args["++cmd"];
|
dactyl.commandLineOptions.preCommands = args["++cmd"];
|
||||||
dactyl.dump("Processing command-line option: " + commandline);
|
util.dump("Processing command-line option: " + commandline);
|
||||||
}
|
}
|
||||||
|
|
||||||
dactyl.log("Command-line options: " + util.objectToString(dactyl.commandLineOptions), 3);
|
dactyl.log("Command-line options: " + util.objectToString(dactyl.commandLineOptions), 3);
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ const Events = Module("events", {
|
|||||||
},
|
},
|
||||||
|
|
||||||
destroy: function () {
|
destroy: function () {
|
||||||
dactyl.dump("Removing all event listeners");
|
util.dump("Removing all event listeners");
|
||||||
for (let args in values(this.sessionListeners))
|
for (let args in values(this.sessionListeners))
|
||||||
args[0].removeEventListener.apply(args[0], args.slice(1));
|
args[0].removeEventListener.apply(args[0], args.slice(1));
|
||||||
},
|
},
|
||||||
@@ -571,7 +571,7 @@ const Events = Module("events", {
|
|||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
waitForPageLoad: function () {
|
waitForPageLoad: function () {
|
||||||
//dactyl.dump("start waiting in loaded state: " + buffer.loaded);
|
//util.dump("start waiting in loaded state: " + buffer.loaded);
|
||||||
util.threadYield(true); // clear queue
|
util.threadYield(true); // clear queue
|
||||||
|
|
||||||
if (buffer.loaded == 1)
|
if (buffer.loaded == 1)
|
||||||
@@ -584,7 +584,7 @@ const Events = Module("events", {
|
|||||||
while (now = Date.now(), now < end) {
|
while (now = Date.now(), now < end) {
|
||||||
util.threadYield();
|
util.threadYield();
|
||||||
//if ((now - start) % 1000 < 10)
|
//if ((now - start) % 1000 < 10)
|
||||||
// dactyl.dump("waited: " + (now - start) + " ms");
|
// util.dump("waited: " + (now - start) + " ms");
|
||||||
|
|
||||||
if (!events.feedingKeys)
|
if (!events.feedingKeys)
|
||||||
return false;
|
return false;
|
||||||
@@ -602,7 +602,7 @@ const Events = Module("events", {
|
|||||||
let ret = (buffer.loaded == 1);
|
let ret = (buffer.loaded == 1);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
dactyl.echoerr("Page did not load completely in " + maxWaitTime + " seconds. Macro stopped.");
|
dactyl.echoerr("Page did not load completely in " + maxWaitTime + " seconds. Macro stopped.");
|
||||||
//dactyl.dump("done waiting: " + ret);
|
//util.dump("done waiting: " + ret);
|
||||||
|
|
||||||
// sometimes the input widget had focus when replaying a macro
|
// sometimes the input widget had focus when replaying a macro
|
||||||
// maybe this call should be moved somewhere else?
|
// maybe this call should be moved somewhere else?
|
||||||
|
|||||||
@@ -62,6 +62,8 @@ const JavaScript = Module("javascript", {
|
|||||||
return [];
|
return [];
|
||||||
|
|
||||||
let completions = [k for (k in this.iter(obj, toplevel))];
|
let completions = [k for (k in this.iter(obj, toplevel))];
|
||||||
|
if (obj == modules) // Hack.
|
||||||
|
completions = completions.concat([k for (k in this.iter(jsmodules, toplevel))]);
|
||||||
return completions;
|
return completions;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -82,7 +82,6 @@ window.addEventListener("load", function onLoad() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function dump(str) window.dump(String.replace(str, /\n?$/, "\n").replace(/^/m, services.get("dactyl:").name + ": "));
|
|
||||||
const start = Date.now();
|
const start = Date.now();
|
||||||
const deferredInit = { load: [] };
|
const deferredInit = { load: [] };
|
||||||
const seen = set();
|
const seen = set();
|
||||||
@@ -136,7 +135,7 @@ window.addEventListener("load", function onLoad() {
|
|||||||
fn();
|
fn();
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
dump("Loading " + (module && module.className) + ": " + e + "\n" + (e.stack || ""));
|
util.dump("Loading " + (module && module.className) + ": " + e + "\n" + (e.stack || ""));
|
||||||
}
|
}
|
||||||
return modules[module.className];
|
return modules[module.className];
|
||||||
}
|
}
|
||||||
@@ -145,7 +144,7 @@ window.addEventListener("load", function onLoad() {
|
|||||||
deferredInit["load"].forEach(call);
|
deferredInit["load"].forEach(call);
|
||||||
modules.times = update({}, defineModule.times);
|
modules.times = update({}, defineModule.times);
|
||||||
|
|
||||||
dump("Loaded in " + (Date.now() - start) + "ms");
|
util.dump("Loaded in " + (Date.now() - start) + "ms");
|
||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
window.addEventListener("unload", function onUnload() {
|
window.addEventListener("unload", function onUnload() {
|
||||||
|
|||||||
@@ -157,7 +157,6 @@ const QuickMarks = Module("quickmarks", {
|
|||||||
commands.add(["qmarks"],
|
commands.add(["qmarks"],
|
||||||
"Show all QuickMarks",
|
"Show all QuickMarks",
|
||||||
function (args) {
|
function (args) {
|
||||||
dactyl.dump(args);
|
|
||||||
args = args[0] || "";
|
args = args[0] || "";
|
||||||
|
|
||||||
// ignore invalid qmark characters unless there are no valid qmark chars
|
// ignore invalid qmark characters unless there are no valid qmark chars
|
||||||
|
|||||||
@@ -137,6 +137,9 @@ function require(obj, name, from) {
|
|||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
dump("loading " + String.quote("resource://dactyl/" + name + ".jsm") + "\n");
|
dump("loading " + String.quote("resource://dactyl/" + name + ".jsm") + "\n");
|
||||||
|
if (loaded.util)
|
||||||
|
util.reportError(e);
|
||||||
|
else
|
||||||
dump(" " + e.fileName + ":" + e.lineNumber + ": " + e +"\n");
|
dump(" " + e.fileName + ":" + e.lineNumber + ": " + e +"\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,7 +154,7 @@ defineModule("base", {
|
|||||||
"isObject", "isString", "isSubclass", "iter", "iterAll", "keys",
|
"isObject", "isString", "isSubclass", "iter", "iterAll", "keys",
|
||||||
"memoize", "properties", "requiresMainThread", "set", "update", "values"
|
"memoize", "properties", "requiresMainThread", "set", "update", "values"
|
||||||
],
|
],
|
||||||
use: ["services"]
|
use: ["services", "util"]
|
||||||
});
|
});
|
||||||
|
|
||||||
function Runnable(self, func, args) {
|
function Runnable(self, func, args) {
|
||||||
@@ -697,12 +700,7 @@ Class.Property.prototype.init = function () {};
|
|||||||
Class.extend = function extend(subclass, superclass, overrides) {
|
Class.extend = function extend(subclass, superclass, overrides) {
|
||||||
subclass.superclass = superclass;
|
subclass.superclass = superclass;
|
||||||
|
|
||||||
try {
|
|
||||||
subclass.prototype = Object.create(superclass.prototype);
|
subclass.prototype = Object.create(superclass.prototype);
|
||||||
}
|
|
||||||
catch(e) {
|
|
||||||
dump(e + "\n" + String.replace(e.stack, /^/gm, " ") + "\n\n");
|
|
||||||
}
|
|
||||||
update(subclass.prototype, overrides);
|
update(subclass.prototype, overrides);
|
||||||
subclass.prototype.constructor = subclass;
|
subclass.prototype.constructor = subclass;
|
||||||
subclass.prototype._class_ = subclass;
|
subclass.prototype._class_ = subclass;
|
||||||
|
|||||||
@@ -153,7 +153,8 @@ const Sanitizer = Module("sanitizer", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakR
|
|||||||
catch (e) {
|
catch (e) {
|
||||||
errors = errors || {};
|
errors = errors || {};
|
||||||
errors[itemName] = e;
|
errors[itemName] = e;
|
||||||
dump("Error sanitizing " + itemName + ": " + e + "\n" + e.stack + "\n");
|
util.dump("Error sanitizing " + itemName);
|
||||||
|
util.reportError(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,7 +173,8 @@ const Sanitizer = Module("sanitizer", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakR
|
|||||||
catch (e) {
|
catch (e) {
|
||||||
errors = errors || {};
|
errors = errors || {};
|
||||||
errors[itemName] = e;
|
errors[itemName] = e;
|
||||||
dump("Error sanitizing " + itemName + ": " + e + "\n" + e.stack + "\n");
|
util.dump("Error sanitizing " + itemName);
|
||||||
|
util.reportError(e);
|
||||||
}
|
}
|
||||||
return errors;
|
return errors;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,8 @@
|
|||||||
|
|
||||||
Components.utils.import("resource://dactyl/base.jsm");
|
Components.utils.import("resource://dactyl/base.jsm");
|
||||||
defineModule("services", {
|
defineModule("services", {
|
||||||
exports: ["Services", "services"]
|
exports: ["Services", "services"],
|
||||||
|
use: ["util"]
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -72,7 +73,7 @@ const Services = Module("Services", {
|
|||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
// dactyl.log() is not defined at this time, so just dump any error
|
// dactyl.log() is not defined at this time, so just dump any error
|
||||||
dump("Service creation failed for '" + classes + "': " + e + "\n");
|
util.dump("Service creation failed for '" + classes + "': " + e + "\n");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -299,7 +299,7 @@ const File = Class("File", {
|
|||||||
file.initWithPath(expandedPath);
|
file.initWithPath(expandedPath);
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
dump("dactyl: " + e + "\n" + String.replace(e.stack, /^/gm, "dactyl: ") + "\n");
|
util.reportError(e);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,6 @@ const Util = Module("Util", {
|
|||||||
if (observers[target])
|
if (observers[target])
|
||||||
observers[target].call(obj, subject, data);
|
observers[target].call(obj, subject, data);
|
||||||
});
|
});
|
||||||
this.dactyl.dump(String(obj), obj instanceof Ci.nsIObserver);
|
|
||||||
register("addObserver");
|
register("addObserver");
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -230,9 +229,6 @@ const Util = Module("Util", {
|
|||||||
* Prints a message to the console. If <b>msg</b> is an object it is
|
* Prints a message to the console. If <b>msg</b> is an object it is
|
||||||
* pretty printed.
|
* pretty printed.
|
||||||
*
|
*
|
||||||
* NOTE: the "browser.dom.window.dump.enabled" preference needs to be
|
|
||||||
* set.
|
|
||||||
*
|
|
||||||
* @param {string|Object} msg The message to print.
|
* @param {string|Object} msg The message to print.
|
||||||
*/
|
*/
|
||||||
dump: function dump_() {
|
dump: function dump_() {
|
||||||
@@ -676,6 +672,8 @@ const Util = Module("Util", {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
maxErrors: 15,
|
||||||
|
errors: Class.memoize(function () []),
|
||||||
reportError: function (error) {
|
reportError: function (error) {
|
||||||
if (Cu.reportError)
|
if (Cu.reportError)
|
||||||
Cu.reportError(error);
|
Cu.reportError(error);
|
||||||
@@ -686,16 +684,16 @@ const Util = Module("Util", {
|
|||||||
stack: <>{String.replace(error.stack || Error().stack, /^/mg, "\t")}</>
|
stack: <>{String.replace(error.stack || Error().stack, /^/mg, "\t")}</>
|
||||||
});
|
});
|
||||||
|
|
||||||
let errors = storage.newArray("errors", { store: false });
|
this.errors.push([new Date, obj + "\n" + obj.stack]);
|
||||||
errors.toString = function () [String(v[0]) + "\n" + v[1] for ([k, v] in this)].join("\n\n");
|
this.errors = this.errors.slice(-this.maxErrors);
|
||||||
errors.push([new Date, obj + obj.stack]);
|
this.errors.toString = function () [k + "\n" + v for ([k, v] in array.iterValues(this))].join("\n\n");
|
||||||
|
|
||||||
util.dump(String(error));
|
this.dump(String(error));
|
||||||
util.dump(obj);
|
this.dump(obj);
|
||||||
util.dump("");
|
this.dump("");
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
dump(e);
|
this.dump(e);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -240,7 +240,6 @@ const Config = Module("config", ConfigBase, {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
completion: function () {
|
completion: function () {
|
||||||
dactyl.dump("Load completion\n");
|
|
||||||
var searchRunning = false; // only until Firefox fixes https://bugzilla.mozilla.org/show_bug.cgi?id=510589
|
var searchRunning = false; // only until Firefox fixes https://bugzilla.mozilla.org/show_bug.cgi?id=510589
|
||||||
completion.location = function location(context) {
|
completion.location = function location(context) {
|
||||||
if (!services.get("autoCompleteSearch"))
|
if (!services.get("autoCompleteSearch"))
|
||||||
|
|||||||
Reference in New Issue
Block a user