Closed
Bug 208730
Opened 22 years ago
Closed 2 years ago
investigate output of shorthand properties when some subprops !important
Categories
(Core :: CSS Parsing and Computation, defect)
Core
CSS Parsing and Computation
Tracking
()
RESOLVED
INVALID
People
(Reporter: dbaron, Unassigned)
Details
Attachments
(1 file)
582 bytes,
text/html
|
Details |
bzbarsky wrote in bug 125246 comment 41:
In nsCSSDeclaration::GetValue(nsCSSProperty, nsAString&):
It looks like our existing code also screws up in the case when a shorthand
has both !important and not !important parts. File a bug to deal with your
XXX comment, please? It would be good to decide what exactly we should
return in such cases.... Same applies to "border".
Reporter | ||
Updated•18 years ago
|
Assignee: dbaron → nobody
QA Contact: ian → style-system
Comment 1•2 years ago
|
||
For reference: I think the XXX comment referenced here (from the attachment in bug 125246 Comment 40) was:
+ if (nsCSSProps::IsShorthand(aProperty) ||
+ aProperty == eCSSProperty_play_during) {
+ // XXX What about checking the consistency of '!important'?
+ switch (aProperty) {
+ case eCSSProperty_margin:
+ case eCSSProperty_padding:
+ case eCSSProperty_border_color:
+ case eCSSProperty_border_style:
+ case eCSSProperty__moz_border_radius:
+ case eCSSProperty__moz_outline_radius:
+ case eCSSProperty_border_width: {
+ const nsCSSProperty* subprops =
+ nsCSSProps::SubpropertyEntryFor(aProperty);
+ NS_ASSERTION(nsCSSProps::kTypeTable[subprops[0]] == eCSSType_Value &&
+ nsCSSProps::kTypeTable[subprops[1]] == eCSSType_Value &&
+ nsCSSProps::kTypeTable[subprops[2]] == eCSSType_Value &&
+ nsCSSProps::kTypeTable[subprops[3]] == eCSSType_Value,
+ "type mismatch");
+ if (!AppendValueOrImportantValueToString(subprops[0], aValue) ||
+ !(aValue.Append(PRUnichar(' ')), AppendValueOrImportantValueToString(subprops[1], aValue)) ||
+ !(aValue.Append(PRUnichar(' ')), AppendValueOrImportantValueToString(subprops[2], aValue)) ||
+ !(aValue.Append(PRUnichar(' ')), AppendValueOrImportantValueToString(subprops[3], aValue))) {
+ aValue.Truncate();
}
Comment 2•2 years ago
|
||
This code all was replaced in stylo, so I suspect this is invalid at this point (nothing to be fixed, at least no such XXX comment anymore).
I'm not entirely clear on what the problematic scenario was; presumably it was something like inspecting the specified-style of a shorthand for an element whose subproperties had mixed important vs non-important. Currently we just decline to serialize a value (we return the empty string), which seems reasonable, I think; and it matches what Chrome does as well FWIW.
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → INVALID
Comment 3•2 years ago
|
||
You need to log in
before you can comment on or make changes to this bug.
Description
•