зеркало из https://github.com/mozilla/ubiquity.git
CmdUtils: Streamlined eval()ed codes.
This commit is contained in:
Родитель
79b35ecde5
Коммит
93a0012ffd
|
@ -92,6 +92,10 @@ for each (let g in ["document", "documentInsecure",
|
||||||
CmdUtils.__defineGetter__(g, this["get" + g[0].toUpperCase() + g.slice(1)]);
|
CmdUtils.__defineGetter__(g, this["get" + g[0].toUpperCase() + g.slice(1)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.doAt = function doAt(code, keys) {
|
||||||
|
for each (let key in keys) doAt.it += (";" + code).replace(/@/g, key);
|
||||||
|
};
|
||||||
|
|
||||||
// == From NounUtils ==
|
// == From NounUtils ==
|
||||||
// {{{CmdUtils}}} inherits [[#modules/nounutils.js|NounUtils]].
|
// {{{CmdUtils}}} inherits [[#modules/nounutils.js|NounUtils]].
|
||||||
|
|
||||||
|
@ -103,7 +107,7 @@ for (let k in NounUtils) CmdUtils[k] = NounUtils[k];
|
||||||
// (i.e. {{{CmdUtils.getSelection("")}}} is equivalent to
|
// (i.e. {{{CmdUtils.getSelection("")}}} is equivalent to
|
||||||
// {{{ContextUtils.getSelection(context, "")}}})
|
// {{{ContextUtils.getSelection(context, "")}}})
|
||||||
|
|
||||||
eval([String(<![CDATA[
|
doAt(<![CDATA[{
|
||||||
CmdUtils["__define" + "@"[0].toUpperCase() + "etter__"](
|
CmdUtils["__define" + "@"[0].toUpperCase() + "etter__"](
|
||||||
"@"[3].toLowerCase() + "@".slice(4),
|
"@"[3].toLowerCase() + "@".slice(4),
|
||||||
CmdUtils.@ = function @(x, y) {
|
CmdUtils.@ = function @(x, y) {
|
||||||
|
@ -111,7 +115,8 @@ eval([String(<![CDATA[
|
||||||
"focusedWindow" in c && "focusedElement" in c ||
|
"focusedWindow" in c && "focusedElement" in c ||
|
||||||
(c = Utils.currentChromeWindow.document.commandDispatcher);
|
(c = Utils.currentChromeWindow.document.commandDispatcher);
|
||||||
return ContextUtils.@(c, x, y);
|
return ContextUtils.@(c, x, y);
|
||||||
})]]>).replace(/@/g, name) for (name in ContextUtils)].join(';'));
|
});
|
||||||
|
}]]>, (name for (name in ContextUtils)));
|
||||||
|
|
||||||
// === {{{ CmdUtils.log(a, b, c, ...) }}} ===
|
// === {{{ CmdUtils.log(a, b, c, ...) }}} ===
|
||||||
// See [[#modules/utils.js|Utils]]{{{.log}}}.
|
// See [[#modules/utils.js|Utils]]{{{.log}}}.
|
||||||
|
@ -165,17 +170,13 @@ function getCommand(id) commandSource.getCommand(id);
|
||||||
// {source: CmdUtils.makeSugg("English", null, "en"), goal: ...}
|
// {source: CmdUtils.makeSugg("English", null, "en"), goal: ...}
|
||||||
// }}}
|
// }}}
|
||||||
|
|
||||||
// ToDo: If the command doesn't exist, should we notify and/or fail gracefully?
|
// TODO: If the command doesn't exist, should we notify and/or fail gracefully?
|
||||||
|
doAt(<![CDATA[{
|
||||||
function executeCommand(command, args, mods) {
|
CmdUtils.@Command = function @Command(command, x, y, z) {
|
||||||
if (typeof command === "string") command = getCommand(command);
|
if (typeof command === "string") command = getCommand(command);
|
||||||
return command.execute(this.__globalObject.context, args, mods);
|
return command.@(this.__globalObject.context, x, y, z);
|
||||||
}
|
};
|
||||||
|
}]]>, ["execute", "preview"]);
|
||||||
function previewCommand(command, pblock, args, mods) {
|
|
||||||
if (typeof command === "string") command = getCommand(command);
|
|
||||||
return command.preview(this.__globalObject.context, pblock, args, mods);
|
|
||||||
}
|
|
||||||
|
|
||||||
// === {{{ CmdUtils.geocodeAddress(location, callback) }}} ===
|
// === {{{ CmdUtils.geocodeAddress(location, callback) }}} ===
|
||||||
// This function uses the Yahoo geocoding service to take a text
|
// This function uses the Yahoo geocoding service to take a text
|
||||||
|
@ -1161,7 +1162,7 @@ function previewAjax(pblock, options) {
|
||||||
// time that it's requested and the time it displays. If the preview
|
// time that it's requested and the time it displays. If the preview
|
||||||
// is cancelled, the given callback will not be called.
|
// is cancelled, the given callback will not be called.
|
||||||
|
|
||||||
for each (let m in ["Get", "Post"]) eval(<><![CDATA[
|
doAt(<![CDATA[{
|
||||||
CmdUtils.preview@ = function preview@(pblock, url, data, callback, type) {
|
CmdUtils.preview@ = function preview@(pblock, url, data, callback, type) {
|
||||||
if (typeof data === "function") {
|
if (typeof data === "function") {
|
||||||
callback = data;
|
callback = data;
|
||||||
|
@ -1173,7 +1174,8 @@ for each (let m in ["Get", "Post"]) eval(<><![CDATA[
|
||||||
data: data,
|
data: data,
|
||||||
success: callback,
|
success: callback,
|
||||||
dataType: type});
|
dataType: type});
|
||||||
}]]></>.toString().replace(/@/g, m));
|
};
|
||||||
|
}]]>, ["Get", "Post"]);
|
||||||
|
|
||||||
// === {{{ CmdUtils.previewCallback(pblock, callback, [abortCallback]) }}} ===
|
// === {{{ CmdUtils.previewCallback(pblock, callback, [abortCallback]) }}} ===
|
||||||
// Creates a 'preview callback': a wrapper for a function which
|
// Creates a 'preview callback': a wrapper for a function which
|
||||||
|
@ -1320,3 +1322,6 @@ function safeWrapper(func) function safeWrapped() {
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
eval(doAt.it);
|
||||||
|
delete doAt;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче