mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-20 08: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)
|
||||
// this.start = now;
|
||||
//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
|
||||
|
||||
@@ -59,7 +59,7 @@ const Dactyl = Module("dactyl", {
|
||||
autocommands.trigger("LeavePre", {});
|
||||
storage.saveAll();
|
||||
dactyl.triggerObserver("shutdown", null);
|
||||
dactyl.dump("All dactyl modules destroyed\n");
|
||||
util.dump("All dactyl modules destroyed\n");
|
||||
autocommands.trigger("Leave", {});
|
||||
},
|
||||
|
||||
@@ -1897,7 +1897,7 @@ const Dactyl = Module("dactyl", {
|
||||
dactyl.commandLineOptions.noPlugins = "++noplugin" in args;
|
||||
dactyl.commandLineOptions.postCommands = args["+c"];
|
||||
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);
|
||||
|
||||
@@ -88,7 +88,7 @@ const Events = Module("events", {
|
||||
},
|
||||
|
||||
destroy: function () {
|
||||
dactyl.dump("Removing all event listeners");
|
||||
util.dump("Removing all event listeners");
|
||||
for (let args in values(this.sessionListeners))
|
||||
args[0].removeEventListener.apply(args[0], args.slice(1));
|
||||
},
|
||||
@@ -571,7 +571,7 @@ const Events = Module("events", {
|
||||
* @returns {boolean}
|
||||
*/
|
||||
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
|
||||
|
||||
if (buffer.loaded == 1)
|
||||
@@ -584,7 +584,7 @@ const Events = Module("events", {
|
||||
while (now = Date.now(), now < end) {
|
||||
util.threadYield();
|
||||
//if ((now - start) % 1000 < 10)
|
||||
// dactyl.dump("waited: " + (now - start) + " ms");
|
||||
// util.dump("waited: " + (now - start) + " ms");
|
||||
|
||||
if (!events.feedingKeys)
|
||||
return false;
|
||||
@@ -602,7 +602,7 @@ const Events = Module("events", {
|
||||
let ret = (buffer.loaded == 1);
|
||||
if (!ret)
|
||||
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
|
||||
// maybe this call should be moved somewhere else?
|
||||
|
||||
@@ -62,6 +62,8 @@ const JavaScript = Module("javascript", {
|
||||
return [];
|
||||
|
||||
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;
|
||||
},
|
||||
|
||||
|
||||
@@ -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 deferredInit = { load: [] };
|
||||
const seen = set();
|
||||
@@ -136,7 +135,7 @@ window.addEventListener("load", function onLoad() {
|
||||
fn();
|
||||
}
|
||||
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];
|
||||
}
|
||||
@@ -145,7 +144,7 @@ window.addEventListener("load", function onLoad() {
|
||||
deferredInit["load"].forEach(call);
|
||||
modules.times = update({}, defineModule.times);
|
||||
|
||||
dump("Loaded in " + (Date.now() - start) + "ms");
|
||||
util.dump("Loaded in " + (Date.now() - start) + "ms");
|
||||
}, false);
|
||||
|
||||
window.addEventListener("unload", function onUnload() {
|
||||
|
||||
@@ -157,7 +157,6 @@ const QuickMarks = Module("quickmarks", {
|
||||
commands.add(["qmarks"],
|
||||
"Show all QuickMarks",
|
||||
function (args) {
|
||||
dactyl.dump(args);
|
||||
args = args[0] || "";
|
||||
|
||||
// ignore invalid qmark characters unless there are no valid qmark chars
|
||||
|
||||
@@ -137,6 +137,9 @@ function require(obj, name, from) {
|
||||
}
|
||||
catch (e) {
|
||||
dump("loading " + String.quote("resource://dactyl/" + name + ".jsm") + "\n");
|
||||
if (loaded.util)
|
||||
util.reportError(e);
|
||||
else
|
||||
dump(" " + e.fileName + ":" + e.lineNumber + ": " + e +"\n");
|
||||
}
|
||||
}
|
||||
@@ -151,7 +154,7 @@ defineModule("base", {
|
||||
"isObject", "isString", "isSubclass", "iter", "iterAll", "keys",
|
||||
"memoize", "properties", "requiresMainThread", "set", "update", "values"
|
||||
],
|
||||
use: ["services"]
|
||||
use: ["services", "util"]
|
||||
});
|
||||
|
||||
function Runnable(self, func, args) {
|
||||
@@ -697,12 +700,7 @@ Class.Property.prototype.init = function () {};
|
||||
Class.extend = function extend(subclass, superclass, overrides) {
|
||||
subclass.superclass = superclass;
|
||||
|
||||
try {
|
||||
subclass.prototype = Object.create(superclass.prototype);
|
||||
}
|
||||
catch(e) {
|
||||
dump(e + "\n" + String.replace(e.stack, /^/gm, " ") + "\n\n");
|
||||
}
|
||||
update(subclass.prototype, overrides);
|
||||
subclass.prototype.constructor = subclass;
|
||||
subclass.prototype._class_ = subclass;
|
||||
|
||||
@@ -153,7 +153,8 @@ const Sanitizer = Module("sanitizer", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakR
|
||||
catch (e) {
|
||||
errors = errors || {};
|
||||
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) {
|
||||
errors = errors || {};
|
||||
errors[itemName] = e;
|
||||
dump("Error sanitizing " + itemName + ": " + e + "\n" + e.stack + "\n");
|
||||
util.dump("Error sanitizing " + itemName);
|
||||
util.reportError(e);
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
|
||||
Components.utils.import("resource://dactyl/base.jsm");
|
||||
defineModule("services", {
|
||||
exports: ["Services", "services"]
|
||||
exports: ["Services", "services"],
|
||||
use: ["util"]
|
||||
});
|
||||
|
||||
/**
|
||||
@@ -72,7 +73,7 @@ const Services = Module("Services", {
|
||||
}
|
||||
catch (e) {
|
||||
// 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;
|
||||
}
|
||||
},
|
||||
|
||||
@@ -299,7 +299,7 @@ const File = Class("File", {
|
||||
file.initWithPath(expandedPath);
|
||||
}
|
||||
catch (e) {
|
||||
dump("dactyl: " + e + "\n" + String.replace(e.stack, /^/gm, "dactyl: ") + "\n");
|
||||
util.reportError(e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,6 @@ const Util = Module("Util", {
|
||||
if (observers[target])
|
||||
observers[target].call(obj, subject, data);
|
||||
});
|
||||
this.dactyl.dump(String(obj), obj instanceof Ci.nsIObserver);
|
||||
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
|
||||
* pretty printed.
|
||||
*
|
||||
* NOTE: the "browser.dom.window.dump.enabled" preference needs to be
|
||||
* set.
|
||||
*
|
||||
* @param {string|Object} msg The message to print.
|
||||
*/
|
||||
dump: function dump_() {
|
||||
@@ -676,6 +672,8 @@ const Util = Module("Util", {
|
||||
}
|
||||
},
|
||||
|
||||
maxErrors: 15,
|
||||
errors: Class.memoize(function () []),
|
||||
reportError: function (error) {
|
||||
if (Cu.reportError)
|
||||
Cu.reportError(error);
|
||||
@@ -686,16 +684,16 @@ const Util = Module("Util", {
|
||||
stack: <>{String.replace(error.stack || Error().stack, /^/mg, "\t")}</>
|
||||
});
|
||||
|
||||
let errors = storage.newArray("errors", { store: false });
|
||||
errors.toString = function () [String(v[0]) + "\n" + v[1] for ([k, v] in this)].join("\n\n");
|
||||
errors.push([new Date, obj + obj.stack]);
|
||||
this.errors.push([new Date, obj + "\n" + obj.stack]);
|
||||
this.errors = this.errors.slice(-this.maxErrors);
|
||||
this.errors.toString = function () [k + "\n" + v for ([k, v] in array.iterValues(this))].join("\n\n");
|
||||
|
||||
util.dump(String(error));
|
||||
util.dump(obj);
|
||||
util.dump("");
|
||||
this.dump(String(error));
|
||||
this.dump(obj);
|
||||
this.dump("");
|
||||
}
|
||||
catch (e) {
|
||||
dump(e);
|
||||
this.dump(e);
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -240,7 +240,6 @@ const Config = Module("config", ConfigBase, {
|
||||
});
|
||||
},
|
||||
completion: function () {
|
||||
dactyl.dump("Load completion\n");
|
||||
var searchRunning = false; // only until Firefox fixes https://bugzilla.mozilla.org/show_bug.cgi?id=510589
|
||||
completion.location = function location(context) {
|
||||
if (!services.get("autoCompleteSearch"))
|
||||
|
||||
Reference in New Issue
Block a user