Closed Bug 653645 Opened 9 years ago Closed 9 years ago

css3-animations should not override user or UA !important declarations

Categories

(Core :: CSS Parsing and Computation, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla6
Tracking Status
firefox5 + fixed
status2.0 --- unaffected
status1.9.2 --- unaffected
status1.9.1 --- unaffected

People

(Reporter: dbaron, Assigned: dbaron)

References

Details

(Keywords: dev-doc-complete, Whiteboard: [DocArea=CSS])

Attachments

(1 file)

Attached patch patchSplinter Review
One issue that came up in today's security review of css3-animations (and I think the only one that should definitely block release of css3-animations) is that animations should not override user or particularly UA !important declarations.

This patch instead makes them appear as the most important thing in the author level, i.e., between override stylesheet !important rules and user !important rules.  That doesn't necessarily make a huge amount of sense for animations used in a user style sheet, but I think use of animations in a user style sheet will be quite rare... and it's not *horrible*, just a little odd for that case.
Attachment #529028 - Flags: review?(bzbarsky)
Comment on attachment 529028 [details] [diff] [review]
patch

>+// If that rule changes, we should rewrite it to depend on a different rule.

Please add a corresponding comment in forms.css? 

We should probably add an assert somewhere that there's only one animation rule for any given ruletree leaf..  We sort of assert that in ReplaceAnimationRule but maybe we could assert it in rulenode code directly to catch it earliet (e.g. we should never be hitting Transition when both |this| and the new rulenode are animation rules)?

r=me with those changes.
Attachment #529028 - Flags: review?(bzbarsky) → review+
https://hg.mozilla.org/mozilla-central/rev/068d876996c6
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: mozilla5 → mozilla6
Comment on attachment 529028 [details] [diff] [review]
patch

This changes how CSS animations interact with user and UA style sheet rules with !important -- it shouldn't be noticeable except in edge cases, but it's the most important item that came out of the security review for animations, and I'd be uncomfortable shipping animations without this change.
Attachment #529028 - Flags: approval-mozilla-aurora?
Comment on attachment 529028 [details] [diff] [review]
patch

dbaron asserts this is safe, and an important part of shipping animations with confidence.
Attachment #529028 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Depends on: 822766
Whiteboard: [DocArea=CSS]
A description for this behavior can be found at https://developer.mozilla.org/en-US/docs/Web/CSS/Cascade#Cascading_order and is explicitly noted again in the next section.

Sebastian
You need to log in before you can comment on or make changes to this bug.