Closed
Bug 980225
Opened 10 years ago
Closed 9 years ago
[rule view] Editing colors using the colorpicker tooltip in overriden rules
Categories
(DevTools :: Inspector, defect)
DevTools
Inspector
Tracking
(Not tracked)
RESOLVED
WORKSFORME
People
(Reporter: pbro, Unassigned)
Details
Editing a color using the colorpicker in a property that is overridden will fail and the following js error will be thrown: TypeError: this.activeSwatch.nextSibling is null: SwatchColorPickerTooltip.prototype<._onSpectrumColorChange@resource://gre/modules/commonjs/toolkit/loader.js -> resource:///modules/devtools/shared/widgets/Tooltip.js:959:7 EventEmitter_emit@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/event-emitter.js:126:11 Spectrum.prototype.onChange@resource://gre/modules/commonjs/toolkit/loader.js -> resource:///modules/devtools/shared/widgets/Spectrum.js:271:5 Spectrum.prototype.onDraggerMove@resource://gre/modules/commonjs/toolkit/loader.js -> resource:///modules/devtools/shared/widgets/Spectrum.js:261:5 move@resource://gre/modules/commonjs/toolkit/loader.js -> resource:///modules/devtools/shared/widgets/Spectrum.js:172:7 STR: - Open the inspector on this page - Scroll down in the rule view until you see the body {...} selector that has a background property overridden - Click on the #FFF color swatch in there and start changing the color by dragging the color dragger around. ==> As soon as the color changed once, it doesn't change anymore ==> Errors are being thrown in the console everytime the color is supposed to change. I already investigated a little bit this issue: - whenever the color changes, we try and update the textContent of the element that's right after the color swatch - in the case of an overridden property, for some reason, the whole property object gets re-generated every time the new color is chosen, and therefore, the colorSwatch.nextSibling doesn't exist anymore! More details: - the RuleView goes through all properties again, checking which ones have changed to re-generate them (dirty flag) - for some reason, the dirty flag of the overridden color changes - the property is overridden before and after the change, so the dirty flag shouldn't be set, but one of its computed prop has overriddenDirty=true
Reporter | ||
Comment 1•10 years ago
|
||
There's a bit of cleanup to be done on the rule-view. In this case here, when a color changes in the colorpicker, we call `_livePreview` which, in turn, calls `setPropertyValue` which re-applies all values! _livePreview should probably be a very light operation that only updates the value in the rule-view and applies the style to the page.
Comment 2•9 years ago
|
||
I couldn't reproduce this with fx-team today. Can you? Also, the stuff in comment #1 is addressed by the as-authored project.
Flags: needinfo?(pbrosset)
Reporter | ||
Updated•9 years ago
|
Status: NEW → RESOLVED
Closed: 9 years ago
Flags: needinfo?(pbrosset)
Resolution: --- → WORKSFORME
Updated•6 years ago
|
Product: Firefox → DevTools
You need to log in
before you can comment on or make changes to this bug.
Description
•