mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-06 15:58:39 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
158
devtools/shared/gcli/commands/highlight.js
Normal file
158
devtools/shared/gcli/commands/highlight.js
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
/* 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 l10n = require("gcli/l10n");
|
||||
require("devtools/server/actors/inspector");
|
||||
const {
|
||||
BoxModelHighlighter,
|
||||
HighlighterEnvironment
|
||||
} = require("devtools/server/actors/highlighters");
|
||||
|
||||
const {PluralForm} = require("devtools/shared/plural-form");
|
||||
const {LocalizationHelper} = require("devtools/shared/l10n");
|
||||
const L10N = new LocalizationHelper("devtools/shared/locales/gclicommands.properties");
|
||||
|
||||
// How many maximum nodes can be highlighted in parallel
|
||||
const MAX_HIGHLIGHTED_ELEMENTS = 100;
|
||||
|
||||
// Store the environment object used to create highlighters so it can be
|
||||
// destroyed later.
|
||||
var highlighterEnv;
|
||||
|
||||
// Stores the highlighters instances so they can be destroyed later.
|
||||
// also export them so tests can access those and assert they got created
|
||||
// correctly.
|
||||
exports.highlighters = [];
|
||||
|
||||
/**
|
||||
* Destroy all existing highlighters
|
||||
*/
|
||||
function unhighlightAll() {
|
||||
for (let highlighter of exports.highlighters) {
|
||||
highlighter.destroy();
|
||||
}
|
||||
exports.highlighters.length = 0;
|
||||
|
||||
if (highlighterEnv) {
|
||||
highlighterEnv.destroy();
|
||||
highlighterEnv = null;
|
||||
}
|
||||
}
|
||||
|
||||
exports.items = [
|
||||
{
|
||||
item: "command",
|
||||
runAt: "server",
|
||||
name: "highlight",
|
||||
description: l10n.lookup("highlightDesc"),
|
||||
manual: l10n.lookup("highlightManual"),
|
||||
params: [
|
||||
{
|
||||
name: "selector",
|
||||
type: "nodelist",
|
||||
description: l10n.lookup("highlightSelectorDesc"),
|
||||
manual: l10n.lookup("highlightSelectorManual")
|
||||
},
|
||||
{
|
||||
group: l10n.lookup("highlightOptionsDesc"),
|
||||
params: [
|
||||
{
|
||||
name: "hideguides",
|
||||
type: "boolean",
|
||||
description: l10n.lookup("highlightHideGuidesDesc"),
|
||||
manual: l10n.lookup("highlightHideGuidesManual")
|
||||
},
|
||||
{
|
||||
name: "showinfobar",
|
||||
type: "boolean",
|
||||
description: l10n.lookup("highlightShowInfoBarDesc"),
|
||||
manual: l10n.lookup("highlightShowInfoBarManual")
|
||||
},
|
||||
{
|
||||
name: "showall",
|
||||
type: "boolean",
|
||||
description: l10n.lookup("highlightShowAllDesc"),
|
||||
manual: l10n.lookup("highlightShowAllManual")
|
||||
},
|
||||
{
|
||||
name: "region",
|
||||
type: {
|
||||
name: "selection",
|
||||
data: ["content", "padding", "border", "margin"]
|
||||
},
|
||||
description: l10n.lookup("highlightRegionDesc"),
|
||||
manual: l10n.lookup("highlightRegionManual"),
|
||||
defaultValue: "border"
|
||||
},
|
||||
{
|
||||
name: "fill",
|
||||
type: "string",
|
||||
description: l10n.lookup("highlightFillDesc"),
|
||||
manual: l10n.lookup("highlightFillManual"),
|
||||
defaultValue: null
|
||||
},
|
||||
{
|
||||
name: "keep",
|
||||
type: "boolean",
|
||||
description: l10n.lookup("highlightKeepDesc"),
|
||||
manual: l10n.lookup("highlightKeepManual")
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
exec: function(args, context) {
|
||||
// Remove all existing highlighters unless told otherwise
|
||||
if (!args.keep) {
|
||||
unhighlightAll();
|
||||
}
|
||||
|
||||
let env = context.environment;
|
||||
highlighterEnv = new HighlighterEnvironment();
|
||||
highlighterEnv.initFromWindow(env.window);
|
||||
|
||||
// Unhighlight on navigate
|
||||
highlighterEnv.once("will-navigate", unhighlightAll);
|
||||
|
||||
let i = 0;
|
||||
for (let node of args.selector) {
|
||||
if (!args.showall && i >= MAX_HIGHLIGHTED_ELEMENTS) {
|
||||
break;
|
||||
}
|
||||
|
||||
let highlighter = new BoxModelHighlighter(highlighterEnv);
|
||||
if (args.fill) {
|
||||
highlighter.regionFill[args.region] = args.fill;
|
||||
}
|
||||
highlighter.show(node, {
|
||||
region: args.region,
|
||||
hideInfoBar: !args.showinfobar,
|
||||
hideGuides: args.hideguides,
|
||||
showOnly: args.region
|
||||
});
|
||||
exports.highlighters.push(highlighter);
|
||||
i++;
|
||||
}
|
||||
|
||||
let highlightText = L10N.getStr("highlightOutputConfirm2");
|
||||
let output = PluralForm.get(args.selector.length, highlightText)
|
||||
.replace("%1$S", args.selector.length);
|
||||
if (args.selector.length > i) {
|
||||
output = l10n.lookupFormat("highlightOutputMaxReached",
|
||||
["" + args.selector.length, "" + i]);
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
},
|
||||
{
|
||||
item: "command",
|
||||
runAt: "server",
|
||||
name: "unhighlight",
|
||||
description: l10n.lookup("unhighlightDesc"),
|
||||
manual: l10n.lookup("unhighlightManual"),
|
||||
exec: unhighlightAll
|
||||
}
|
||||
];
|
||||
Loading…
Add table
Add a link
Reference in a new issue