Closed
Bug 237568
Opened 21 years ago
Closed 21 years ago
Add CSS3 pseudo-class selector :only-child
Categories
(Core :: CSS Parsing and Computation, defect)
Core
CSS Parsing and Computation
Tracking
()
VERIFIED
FIXED
mozilla1.8alpha1
People
(Reporter: svl-bmo, Assigned: dbaron)
References
Details
(Keywords: css3, Whiteboard: [patch])
Attachments
(1 file, 1 obsolete file)
1.59 KB,
patch
|
svl-bmo
:
review+
dbaron
:
superreview+
|
Details | Diff | Splinter Review |
Pretty self-evident patch, mostly based on :first-child and :last-child. Tested with the :only-child tests (36, 81 and 81b) from the CSS3 test-suite, as well as with some contraptions of my own.
Attachment #143980 -
Flags: review?(bzbarsky)
Assignee | ||
Comment 2•21 years ago
|
||
Are there issues with XBL and a need to check that the child you've found is actually the node you're matching? I think the code might be simpler if you tested equality, too. There are also dynamic change bugs that this doesn't fix, including some with incremental loading. First child / last child information should also probably move into SelectorMatchesData at some point (which would mean we ight want to implement :only-child as :first-child && :last-child).
Comment 3•21 years ago
|
||
Comment on attachment 143980 [details] [diff] [review] patch >+ if (onlyChild) { I think David is right. You want to check here that data.mContent == onlyChild. That allows you to not do the work of looking for moreChild in cases when it's not. r=bzbarsky with that change. I think the dynamic issues shouldn't really block this... we have the same issues with other pseudos (eg :empty, :last-child, etc) and we need to solve them all together anyway (and soonish, imo). I can see pushing this info up into SelectorMatchesData (lazily). Is there a bug on that?
Attachment #143980 -
Flags: superreview?(dbaron)
Attachment #143980 -
Flags: review?(bzbarsky)
Attachment #143980 -
Flags: review+
Apologies for taking so long for a one-line change, but internet access has unfortunately been scarce lately. dbaron: Being unable to find any "SelectorMatchesData" in the code, I'm assuming you mean the RuleProcessorData argument passed along to SelectorMatches; moving information about an element being a first or last child (and first or last node I assume) into that should be no problem, even for me, but is that efficient? Or am I missing something? (What's the meaning of "lazily" in this context?) (If I'm being awfully obtuse, feel free to ignore me, I'm quite aware of how far I still have to go before I really start to get a grip on the code involved here.) :) But if that _is_ the idea, I'll look into doing so next. (I'm perfectly okay with the current approach being abandoned by the wayside, realy only created this as a learning experience.)
Attachment #143980 -
Attachment is obsolete: true
Attachment #143980 -
Flags: superreview?(dbaron)
Comment on attachment 144888 [details] [diff] [review] updated patch carrying over r=
Attachment #144888 -
Flags: superreview?(dbaron)
Attachment #144888 -
Flags: review+
Assignee | ||
Updated•21 years ago
|
Attachment #144888 -
Flags: superreview?(dbaron) → superreview+
Assignee | ||
Comment 6•21 years ago
|
||
sr=dbaron, although I'm not crazy about the idea of introducing new selectors with dynamic change bugs. bz, do you think I should try to get this in 1.7final or wait for 1.8alpha?
Whiteboard: [patch]
Comment 7•21 years ago
|
||
I would say wait for 1.8a, if only because there is a non-negligible chance that we'll solve the dynamic update problem in general in the 1.8 timeframe, which would address your concern about adding buggy selectors.
Assignee | ||
Updated•21 years ago
|
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla1.8alpha
Comment 8•21 years ago
|
||
This patch may be checked in now. Note that 'nsCSSPseudoClassList.h' differs a bit from what is in the patch. ':first-node' and ':last-node' are now ':-moz-first-node' and ':-moz-last-node'.
Comment 9•21 years ago
|
||
Patch checked in.
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Comment 10•21 years ago
|
||
Using the tests cases mentioned in the topic start from the W3C... (2004052601) -> VERIFIED FIXED
Status: RESOLVED → VERIFIED
Comment 11•20 years ago
|
||
Doesn't work for me in Firefox nightlies. Regression?
Comment 12•20 years ago
|
||
Which firefox nightlies? Trunk, or branch? If the latter, note checkin date on this bug, please.
Comment 13•20 years ago
|
||
Sorry, branch nightly. I see on the bug I filed it was posted that "That fix is only on the trunk, and Firefox diverged from the trunk prior to the bug fix. You won't see it in Firefox until it returns to the trunk in a post-1.0 milestone release."
You need to log in
before you can comment on or make changes to this bug.
Description
•