Bug 912121 - Migrate major DevTools directories. rs=devtools
Move major DevTools files to new directories using the following steps: hg mv browser/devtools devtools/client hg mv toolkit/devtools/server devtools/server hg mv toolkit/devtools devtools/shared No other changes are made.
This commit is contained in:
86
devtools/shared/gcli/commands/inject.js
Normal file
86
devtools/shared/gcli/commands/inject.js
Normal file
@@ -0,0 +1,86 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
"use strict";
|
||||
|
||||
const { Services } = require("resource://gre/modules/Services.jsm");
|
||||
const { listenOnce } = require("devtools/async-utils");
|
||||
const l10n = require("gcli/l10n");
|
||||
|
||||
exports.items = [
|
||||
{
|
||||
item: "command",
|
||||
runAt: "server",
|
||||
name: "inject",
|
||||
description: l10n.lookup("injectDesc"),
|
||||
manual: l10n.lookup("injectManual2"),
|
||||
params: [{
|
||||
name: "library",
|
||||
type: {
|
||||
name: "union",
|
||||
alternatives: [
|
||||
{
|
||||
name: "selection",
|
||||
lookup: [
|
||||
{
|
||||
name: "jQuery",
|
||||
value: {
|
||||
name: "jQuery",
|
||||
src: Services.prefs.getCharPref("devtools.gcli.jquerySrc")
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "lodash",
|
||||
value: {
|
||||
name: "lodash",
|
||||
src: Services.prefs.getCharPref("devtools.gcli.lodashSrc")
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "underscore",
|
||||
value: {
|
||||
name: "underscore",
|
||||
src: Services.prefs.getCharPref("devtools.gcli.underscoreSrc")
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "url"
|
||||
}
|
||||
]
|
||||
},
|
||||
description: l10n.lookup("injectLibraryDesc")
|
||||
}],
|
||||
exec: function*(args, context) {
|
||||
let document = context.environment.document;
|
||||
let library = args.library;
|
||||
let name = (library.type === "selection") ?
|
||||
library.selection.name : library.url;
|
||||
let src = (library.type === "selection") ?
|
||||
library.selection.src : library.url;
|
||||
|
||||
if (context.environment.window.location.protocol == "https:") {
|
||||
src = src.replace(/^http:/, "https:");
|
||||
}
|
||||
|
||||
try {
|
||||
// Check if URI is valid
|
||||
Services.io.newURI(src, null, null);
|
||||
} catch(e) {
|
||||
return l10n.lookupFormat("injectFailed", [name]);
|
||||
}
|
||||
|
||||
let newSource = document.createElement("script");
|
||||
newSource.setAttribute("src", src);
|
||||
|
||||
let loadPromise = listenOnce(newSource, "load");
|
||||
document.head.appendChild(newSource);
|
||||
|
||||
yield loadPromise;
|
||||
|
||||
return l10n.lookupFormat("injectLoaded", [name]);
|
||||
}
|
||||
}
|
||||
];
|
||||
Reference in New Issue
Block a user