forked from mirrors/gecko-dev
This patch adds a tooltip that is displayed when the user hovers a `@container` declaration in the rule view. The tooltip displays the query container that is used for this rule and the selected node and the computed values of its `containerType`, `inlineSize` and `blockSize` (if the `containerType` is `size`) properties. The title attribute is removed on the `ruleview-rule-ancestor-data` items as it was not playing well with the new tooltip. The styling for those element is modified so they are never cropped so we can see the whole text (and don't need the title anymore). A test case is added to make sure this works as expected. Differential Revision: https://phabricator.services.mozilla.com/D161129
73 lines
1.8 KiB
JavaScript
73 lines
1.8 KiB
JavaScript
/* 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 {
|
|
Arg,
|
|
RetVal,
|
|
generateActorSpec,
|
|
types,
|
|
} = require("resource://devtools/shared/protocol.js");
|
|
|
|
// Load the shared types for style actors
|
|
require("resource://devtools/shared/specs/style/style-types.js");
|
|
|
|
types.addDictType("domstylerule.queryContainerForNodeReturn", {
|
|
node: "nullable:domnode",
|
|
containerType: "nullable:string",
|
|
blockSize: "nullable:string",
|
|
inlineSize: "nullable:string",
|
|
});
|
|
|
|
const styleRuleSpec = generateActorSpec({
|
|
typeName: "domstylerule",
|
|
|
|
events: {
|
|
"location-changed": {
|
|
type: "locationChanged",
|
|
line: Arg(0, "number"),
|
|
column: Arg(1, "number"),
|
|
},
|
|
"rule-updated": {
|
|
type: "ruleUpdated",
|
|
rule: Arg(0, "domstylerule"),
|
|
},
|
|
},
|
|
|
|
methods: {
|
|
getRuleText: {
|
|
response: {
|
|
text: RetVal("string"),
|
|
},
|
|
},
|
|
setRuleText: {
|
|
request: {
|
|
newText: Arg(0, "string"),
|
|
modifications: Arg(1, "array:json"),
|
|
},
|
|
response: { rule: RetVal("domstylerule") },
|
|
},
|
|
modifyProperties: {
|
|
request: { modifications: Arg(0, "array:json") },
|
|
response: { rule: RetVal("domstylerule") },
|
|
},
|
|
modifySelector: {
|
|
request: {
|
|
node: Arg(0, "domnode"),
|
|
value: Arg(1, "string"),
|
|
editAuthored: Arg(2, "boolean"),
|
|
},
|
|
response: RetVal("modifiedStylesReturn"),
|
|
},
|
|
getQueryContainerForNode: {
|
|
request: {
|
|
ancestorRuleIndex: Arg(0, "number"),
|
|
node: Arg(1, "domnode"),
|
|
},
|
|
response: RetVal("domstylerule.queryContainerForNodeReturn"),
|
|
},
|
|
},
|
|
});
|
|
|
|
exports.styleRuleSpec = styleRuleSpec;
|