Closed Bug 944246 Opened 6 years ago Closed 6 years ago

make nsComputedDOMStyle return the right style when pseudo-elements like ::-moz-progress-bar are passed in and user action pseudo-classes apply

Categories

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

x86
macOS
defect

Tracking

()

RESOLVED FIXED
mozilla28
Tracking Status
firefox28 --- fixed

People

(Reporter: heycam, Assigned: heycam)

Details

(Whiteboard: [qa-])

Attachments

(1 file)

Once bug 922669 lands, user action pseudo-classes can be applied to certain pseudo-elements.  nsComputedDOMStyle doesn't pass in the anonymous content for the pseudo-element, so it can't check if :hover etc. applies, but it should.
Priority: -- → P4
Attached patch patchSplinter Review
https://tbpl.mozilla.org/?tree=Try&rev=fb1d9f7e7da8
Assignee: nobody → cam
Status: NEW → ASSIGNED
Attachment #8340174 - Flags: review?(bzbarsky)
Comment on attachment 8340174 [details] [diff] [review]
patch

I really wish we could just have:

  virtual mozilla::dom::Element* GetPseudoElement(nsCSSPseudoElements::Type aType);

but I guess most of those frames are storing nsIContent?  :(

r=me, but maybe file a followup to fix that?
Attachment #8340174 - Flags: review?(bzbarsky) → review+
(In reply to Boris Zbarsky [:bz] from comment #2)
> but I guess most of those frames are storing nsIContent?  :(
> 
> r=me, but maybe file a followup to fix that?

They are storing nsIContent pointers, but I didn't check to see whether all of them are really Elements.  They probably are.  My thinking though was that given nsIAnonymousContentCreator is geared towards creating nsIContent*s, there's a chance a frame will create e.g. a text node.  Still, it's not likely that we'll want the pseudo type that we pass in there to match something that isn't an element, so I think it would be OK to change it.
https://hg.mozilla.org/mozilla-central/rev/01b220863153
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
Whiteboard: [qa-]
You need to log in before you can comment on or make changes to this bug.