-
Notifications
You must be signed in to change notification settings - Fork 666
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[fullscreen] Details on how top layer elements interact with their ancestors #6939
Comments
And from web-platform-tests/wpt#31668 (comment), should top layer elements escape ancestor inertness? |
Shouldn't this be in https://github.com/whatwg/fullscreen/issues/new? |
I think there was a resolution to move the top layer definition to CSSWG, I don't think this was ever done in practice though. |
I would like to get a resolution on |
My view is that top layer elements should escape non-inherited ancestor properties/effects/clips. I'm not sure what escape |
Imo, they should act as if they were reparented to be siblings of the root element. That's how they exist in the box tree, and we shouldn't overcomplicate things (like we've done with some abspos+clipping stuff) by applying effects from elements that aren't in their box-tree ancestor chain.
Same as previous answer - since it was reparented in the box tree, its container effects that would suppress rendering no longer apply. The top-layer elements should display in both of these cases, imo.
Like
Yeah this needs to be rewritten a little for clarity. It's just to address what we do if an element generates multiple sibling boxes; only the principal box is positioned by positioning schemes. |
The CSS Working Group just discussed
The full IRC log of that discussion<TabAtkins> Topic: how does top-layer interact with ancestors<TabAtkins> github: https://github.com//issues/6939 <TabAtkins> smfr: top-laye ris used by <dialog>, ::backdrop,e tc <TabAtkins> smfr: They generate new stackign contexts, escape ancestor opacity, other graphical effects <TabAtkins> smfr: 'visibility' is a bit different <TabAtkins> smfr: It's inherited; as specced, a visibility:hidden ancesotr will hide a dialog <TabAtkins> [simon was dropped] <TabAtkins> smfr: Tab responded with a confusing comment <fantasai> TabAtkins: ... <TabAtkins> smfr: he said top-layer things are reparented in the box tree <TabAtkins> smfr: so that doesn't affect inheritance <TabAtkins> smfr: I think people might be confused about that effect with visibility <TabAtkins> smfr: Maybe UA stylesheet should put visibility:visible on the dialog? <TabAtkins> ntim: Worth nothing - display:none on the ancestor propogates to the top-layer element <TabAtkins> emilio: unsure to what extent display and visiblity work together <TabAtkins> emilio: was going to suggest Simon's UA stylesheet tweak to make it work <fantasai> TabAtkins: That seems fine to me. I don't see a particular issue to set 'visiblity' in the UA stylesheet <fantasai> TabAtkins: I think it is surprising that a dialog would stay hidden if the ancestor is hidden <TabAtkins> emilio: Seems like a special case, yeah. But other than that, no strong feeling. <fantasai> TabAtkins: I guess 2 resolutions <fantasai> TabAtkins: a) Top-layer elements are essentially reparented in the box tree, so visual effects from containers don't apply, but inheritance applies as normal <fantasai> TabAtkins: b) We add rule to UA stylesheet that dialog is visibility: visible <fantasai> emilio: I'm not super convinced we should add it <fantasai> emilio: could argue the same for a ton of other properties <fantasai> emilio: but not strong, so won't object <fantasai> astearns: what other properties? <TabAtkins> emilio: everything that inherits, like pointer-events <TabAtkins> emilio: anything that inherits thru could potentially be weird <TabAtkins> astearns: And we're onlyt alking about setting visibility and not display <fantasai> TabAtkins: display is consistent with what I said because it can't be reparented in the box tree, because it's not in the box tree <TabAtkins> astearns: So first proposal from tab is top-layer elements are reparented in teh box tree, and point out that inheritance isn't affected by that <TabAtkins> smfr: The "etc" in the spec text needs clarification <emilio> q+ <TabAtkins> TabAtkins: agree, can do that <astearns> ack emilio <TabAtkins> emilio: related to 'display' issue, something came up recently while triaging <TabAtkins> emilio: Blink will create a box if the dialgo is a child of the replaced element <fantasai> TabAtkins: I probably agree with you, decided on that in my comment too quickly. Because affects box generation, dialog shouldn't display at all <TabAtkins> astearns: So any more discussion on the "reparenting in box tree" portion? <fantasai> smfr: do we need to be that specific? <fantasai> TabAtkins: You asked a bunch of questions, need to have consistent answers <fantasai> TabAtkins: and having this conceptual model gives us consistent answers <TabAtkins> ntim: I think stacking context/containing block dfns are enough to cover those cases <fantasai> TabAtkins: Possibly <fantasai> TabAtkins: I can review and see if that's enough <fantasai> astearns: So why don't we not take that resolution for now, and you cna review <TabAtkins> astearns: Okay so the etc <fantasai> ntim: pointer-events <fantasai> TabAtkins: It's an inherited property, so will just inherit. Unless we want to do a reset in the UA stylesheet <fantasai> astearns: Do we need to resolve on resetting visibility? <fantasai> TabAtkins: OK, let's do that <fantasai> astearns: Proposed to have UA stylesheet reset visibility for dialog ... what about other top-level elements? <fantasai> TabAtkins: Can't for other elements, can be arbitrary elements <fantasai> TabAtkins: so can only do for dialog <fantasai> astearns: OK, so proposed is that UA stylesheet sets 'visibility' on dialog <fantasai> smfr: when they are in the modal state <fantasai> fantasai: I believe there's a :modal pseudo-class in HTML <fantasai> ntim: we have a pseudo-class, but internal, not exposed in CSS <fantasai> iank_: I wrote that internal class <fantasai> iank_: Wording is there, but not actually in the HTML spec <fantasai> astearns: Anything else we can use to select? <fantasai> TabAtkins: reasons we don't want to go into, are they blockers to putting in HTML spec or historical? <fantasai> iank_: There was pushback to adding as an actual pseudo-class <smfr> q+ <fantasai> iank_: HTML spec didn't want to define pseudo-classes itself <fantasai> TabAtkins: put it in Selectors <fantasai> ntim: UA stylesheet, should have a statement about it <astearns> ack smfr <fantasai> smfr: Comment about ::backdrop <fantasai> smfr: current behavior, if have visiblity:hidden ancestor on dialog <fantasai> smfr: is that dialog is hidden but backdrop shows up <fantasai> smfr: because backdrop not affected by inherted visibility, that's not great <fantasai> TabAtkins: right, because ::backdrop inherits from the root <fantasai> emilio: I thought it didn't inherit, which causes problems with system properties <fantasai> rune: ... <iank_> https://html.spec.whatwg.org/#phrasing-content-3 and scroll up <fantasai> emilio: Which is something we may want to consider fixing <fantasai> TabAtkins: That can be done in today's CSS by setting 'all: initial' in the ::backdrop stylesheet <fantasai> TabAtkins: so explainable in current CSS <fantasai> emilio: is it though? <iank_> "The dialog element, when its is modal flag is true, is expected to act as if it had a user-agent-level style sheet rule setting the following properties:" <fantasai> emilio: all doesn't reset custom properties <fantasai> emilio: We have an agenda item about selection, e.g. new ::selection model not inheriting from original element which causes other issues <fantasai> iank_: Quoted the prose from HTML <fantasai> TabAtkins: HTMl spec says "pretend there's a pseudo-class, and apply these properties" <fantasai> TabAtkins: let's just define the pseudo-class <fantasai> iank_: Pushback was exposing the internal pseudo-class to web developers <fantasai> astearns: Is there a concern about exposing to web devs? <fantasai> emilio: I think Gecko was the first to implement via internal pseudo-class <fantasai> emilio: Everyone converged on that model <fantasai> emilio: I think at first there was some resistance to expose a pseudo-class because not how some browsers work <fantasai> emilio: but at this point, given we have interop in that sense, all browsers have internal pseudo-class <fantasai> emilio: maybe makes sense to expose it <fantasai> iank_: Agree it makes sense, but think we'll still get pushback from WHATWG <fantasai> iank_: Another thing that could be internal class but isn't <fantasai> TabAtkins: we don't have to invoke WHATWG, we just put it in Selectors <fantasai> TabAtkins: as long as browsers want that, not a jurisdictional problem <fantasai> emilio: ... <fantasai> TabAtkins: To change the styling of a dialog based on whether it's open in a modal style or not, if UA wants to do it don't see why authors wouldn't want to do it <fantasai> ntim: I don't see much use case for it <fantasai> ntim: Unlikely that someone will call showModal() and show() on the same dialog <fantasai> astearns: I suggest we separate out whether propertly-defined pseudo into own issue <fantasai> astearns: but whether or not we do that, we should define certain things for dialog using existing internal pseudo-class <fantasai> astearns: so have some changes mentioning that you set visiblity and perhaps pointer-events <fantasai> astearns: using same handwavy definition that HTML currently has <fantasai> astearns: and separately figure out whether we need an exposed real pseudo-class to put into Selectors <fantasai> astearns: does that sound reasonable? <fantasai> TabAtkins: OK, opening issue <fantasai> astearns: So can we resolve to set visiblity using internal pseudo-class? <fantasai> astearns: Anyone want to continue discussing? Anyone have an objection? <fantasai> [continued silence] <fantasai> RESOLVED: Set visiblity:hidden on modal dialogs <fantasai> astearns: Any other property to resolve now, or continue discussing in the issue? <fantasai> ntim: Pointer-events maybe? <fantasai> ntim: Idk if it should be auto or all ... <fantasai> astearns: In interest of time, let's punt to issue <fantasai> astearns: and find out what the value should be and figure out any other properties that should be set in this way <fantasai> astearns: Done with this issue for today <fantasai> astearns: bit about box-tree reparenting, should that be a separate issue so don't lose track of it? <TabAtkins> (new issue for :modal-dialog https://github.com//issues/6965) <fantasai> astearns: OK, we'll keep this issue just about properties to set in UA stylesheet <fantasai> astearns: separate issue on modal pseudo-class <fantasai> astearns: and separate issue on reparenting |
Should that be |
If modal dialogs reset
|
Why would it? We clarified that even though inertness behaves like We should probably fix up the previous resolution of course. Regarding these two tests:
I think consensus was that Gecko and WebKit have the preferred behavior since it's similar to how |
Yes, there was a typo in the minutes RESOLVED: Set visibility: visible on modal dialogs |
There is now an issue on whether we need to define a real pseudo-class for this #6965 I suggest that if we would like to use box re-parenting to specify how top layers behave we also open a separate issue specifically on that. The remainder of the discussion on this issue should be on which properties we need to set in the UA stylesheet for the dialog element shown state. One we have not yet resolved on is pointer-events. Please list any others we should consider. |
Yes, we don't have to necessarily reset inertness, but then |
The behavior is not really standardized, and some folks from Blink have agreed those tests may not be quite right. w3c/csswg-drafts#6939 (comment)
The behavior is not really standardized, and some folks from Blink have agreed those tests may not be quite right. w3c/csswg-drafts#6939 (comment)
…erer.html to match Gecko & WebKit behavior Gecko & WebKit do not generate boxes for modal dialogs in replaced renderers, and nothing in the spec really says this is the wanted behavior. Blink follows the 'reparent in box tree' logic, but it can be argued that since no box is generated in the first place (like for display: none), there is nothing to reparent, hence no box should be displayed. This is the consensus of a CSSWG meeting: w3c/csswg-drafts#6939 (comment)
I made a WPT PR here: web-platform-tests/wpt#32947 if everyone is ok with it, I can re-include them into interop-2022 |
…erer.html to match Gecko & WebKit behavior Gecko & WebKit do not generate boxes for modal dialogs in replaced renderers, and nothing in the spec really says this is the wanted behavior. Blink follows the 'reparent in box tree' logic, but it can be argued that since no box is generated in the first place (like for display: none), there is nothing to reparent, hence no box should be displayed. This is the consensus of a CSSWG meeting: w3c/csswg-drafts#6939 (comment)
…erer.html to match Gecko & WebKit behavior Gecko & WebKit do not generate boxes for modal dialogs in replaced renderers, and nothing in the spec really says this is the wanted behavior. Blink follows the 'reparent in box tree' logic, but it can be argued that since no box is generated in the first place (like for display: none), there is nothing to reparent, hence no box should be displayed. This is the consensus of a CSSWG meeting: w3c/csswg-drafts#6939 (comment)
Modal dialogs and fullscreen elements mark all elements outside of them as inert. That makes them have a used value of "user-select: none". But modal dialogs and fullscreen elements are not inert, so by default they got "user-select: auto". This resolves to "none" since the used value on the parent element is "none". So modal dialogs and fullscreen elements were not selectable. This patch addresses the problem by setting "user-select: text" on UA origin. There is a somewhat similar precedent where the CSSWG resolved to set "visibility: visible" on modal dialogs: w3c/csswg-drafts#6939 (comment) Bug: 1305797 TEST=external/wpt/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html Change-Id: I6fb00c25559dfefcf931be535ddf4128864c71ae Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3521788 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: Oriol Brufau <obrufau@igalia.com> Cr-Commit-Position: refs/heads/main@{#981078}
Modal dialogs and fullscreen elements mark all elements outside of them as inert. That makes them have a used value of "user-select: none". But modal dialogs and fullscreen elements are not inert, so by default they got "user-select: auto". This resolves to "none" since the used value on the parent element is "none". So modal dialogs and fullscreen elements were not selectable. This patch addresses the problem by setting "user-select: text" on UA origin. There is a somewhat similar precedent where the CSSWG resolved to set "visibility: visible" on modal dialogs: w3c/csswg-drafts#6939 (comment) Bug: 1305797 TEST=external/wpt/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html Change-Id: I6fb00c25559dfefcf931be535ddf4128864c71ae Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3521788 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: Oriol Brufau <obrufau@igalia.com> Cr-Commit-Position: refs/heads/main@{#981078}
Modal dialogs and fullscreen elements mark all elements outside of them as inert. That makes them have a used value of "user-select: none". But modal dialogs and fullscreen elements are not inert, so by default they got "user-select: auto". This resolves to "none" since the used value on the parent element is "none". So modal dialogs and fullscreen elements were not selectable. This patch addresses the problem by setting "user-select: text" on UA origin. There is a somewhat similar precedent where the CSSWG resolved to set "visibility: visible" on modal dialogs: w3c/csswg-drafts#6939 (comment) Bug: 1305797 TEST=external/wpt/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html Change-Id: I6fb00c25559dfefcf931be535ddf4128864c71ae Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3521788 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: Oriol Brufau <obrufau@igalia.com> Cr-Commit-Position: refs/heads/main@{#981078}
…modal-dialog-in-replaced-rend…, a=testonly Automatic update from web-platform-tests Fix modal-dialog-in-table-column.html & modal-dialog-in-replaced-renderer.html to match Gecko & WebKit behavior Gecko & WebKit do not generate boxes for modal dialogs in replaced renderers, and nothing in the spec really says this is the wanted behavior. Blink follows the 'reparent in box tree' logic, but it can be argued that since no box is generated in the first place (like for display: none), there is nothing to reparent, hence no box should be displayed. This is the consensus of a CSSWG meeting: w3c/csswg-drafts#6939 (comment) -- wpt-commits: b64788f3cb9f8f18adf27422efbf71536a3f244b wpt-pr: 32947
…modal-dialog-in-replaced-rend…, a=testonly Automatic update from web-platform-tests Fix modal-dialog-in-table-column.html & modal-dialog-in-replaced-renderer.html to match Gecko & WebKit behavior Gecko & WebKit do not generate boxes for modal dialogs in replaced renderers, and nothing in the spec really says this is the wanted behavior. Blink follows the 'reparent in box tree' logic, but it can be argued that since no box is generated in the first place (like for display: none), there is nothing to reparent, hence no box should be displayed. This is the consensus of a CSSWG meeting: w3c/csswg-drafts#6939 (comment) -- wpt-commits: b64788f3cb9f8f18adf27422efbf71536a3f244b wpt-pr: 32947
…alogs and fullscreen elements, a=testonly Automatic update from web-platform-tests [inert] Set user-select:text on modal dialogs and fullscreen elements Modal dialogs and fullscreen elements mark all elements outside of them as inert. That makes them have a used value of "user-select: none". But modal dialogs and fullscreen elements are not inert, so by default they got "user-select: auto". This resolves to "none" since the used value on the parent element is "none". So modal dialogs and fullscreen elements were not selectable. This patch addresses the problem by setting "user-select: text" on UA origin. There is a somewhat similar precedent where the CSSWG resolved to set "visibility: visible" on modal dialogs: w3c/csswg-drafts#6939 (comment) Bug: 1305797 TEST=external/wpt/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html Change-Id: I6fb00c25559dfefcf931be535ddf4128864c71ae Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3521788 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: Oriol Brufau <obrufau@igalia.com> Cr-Commit-Position: refs/heads/main@{#981078} -- wpt-commits: 7106c6106d2a78801d4b2fa1aab589322caed7af wpt-pr: 33178
…alogs and fullscreen elements, a=testonly Automatic update from web-platform-tests [inert] Set user-select:text on modal dialogs and fullscreen elements Modal dialogs and fullscreen elements mark all elements outside of them as inert. That makes them have a used value of "user-select: none". But modal dialogs and fullscreen elements are not inert, so by default they got "user-select: auto". This resolves to "none" since the used value on the parent element is "none". So modal dialogs and fullscreen elements were not selectable. This patch addresses the problem by setting "user-select: text" on UA origin. There is a somewhat similar precedent where the CSSWG resolved to set "visibility: visible" on modal dialogs: w3c/csswg-drafts#6939 (comment) Bug: 1305797 TEST=external/wpt/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html Change-Id: I6fb00c25559dfefcf931be535ddf4128864c71ae Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3521788 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: Oriol Brufau <obrufau@igalia.com> Cr-Commit-Position: refs/heads/main@{#981078} -- wpt-commits: 7106c6106d2a78801d4b2fa1aab589322caed7af wpt-pr: 33178
…alogs and fullscreen elements, a=testonly Automatic update from web-platform-tests [inert] Set user-select:text on modal dialogs and fullscreen elements Modal dialogs and fullscreen elements mark all elements outside of them as inert. That makes them have a used value of "user-select: none". But modal dialogs and fullscreen elements are not inert, so by default they got "user-select: auto". This resolves to "none" since the used value on the parent element is "none". So modal dialogs and fullscreen elements were not selectable. This patch addresses the problem by setting "user-select: text" on UA origin. There is a somewhat similar precedent where the CSSWG resolved to set "visibility: visible" on modal dialogs: w3c/csswg-drafts#6939 (comment) Bug: 1305797 TEST=external/wpt/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html Change-Id: I6fb00c25559dfefcf931be535ddf4128864c71ae Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3521788 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: Oriol Brufau <obrufau@igalia.com> Cr-Commit-Position: refs/heads/main@{#981078} -- wpt-commits: 7106c6106d2a78801d4b2fa1aab589322caed7af wpt-pr: 33178
…alogs and fullscreen elements, a=testonly Automatic update from web-platform-tests [inert] Set user-select:text on modal dialogs and fullscreen elements Modal dialogs and fullscreen elements mark all elements outside of them as inert. That makes them have a used value of "user-select: none". But modal dialogs and fullscreen elements are not inert, so by default they got "user-select: auto". This resolves to "none" since the used value on the parent element is "none". So modal dialogs and fullscreen elements were not selectable. This patch addresses the problem by setting "user-select: text" on UA origin. There is a somewhat similar precedent where the CSSWG resolved to set "visibility: visible" on modal dialogs: w3c/csswg-drafts#6939 (comment) Bug: 1305797 TEST=external/wpt/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html Change-Id: I6fb00c25559dfefcf931be535ddf4128864c71ae Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3521788 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: Oriol Brufau <obrufau@igalia.com> Cr-Commit-Position: refs/heads/main@{#981078} -- wpt-commits: 7106c6106d2a78801d4b2fa1aab589322caed7af wpt-pr: 33178
Modal dialogs and fullscreen elements mark all elements outside of them as inert. That makes them have a used value of "user-select: none". But modal dialogs and fullscreen elements are not inert, so by default they got "user-select: auto". This resolves to "none" since the used value on the parent element is "none". So modal dialogs and fullscreen elements were not selectable. This patch addresses the problem by setting "user-select: text" on UA origin. There is a somewhat similar precedent where the CSSWG resolved to set "visibility: visible" on modal dialogs: w3c/csswg-drafts#6939 (comment) Bug: 1305797 TEST=external/wpt/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html (cherry picked from commit 2f99d43) Change-Id: I6fb00c25559dfefcf931be535ddf4128864c71ae Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3521788 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: Oriol Brufau <obrufau@igalia.com> Cr-Original-Commit-Position: refs/heads/main@{#981078} Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3529074 Auto-Submit: Oriol Brufau <obrufau@igalia.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/branch-heads/4896@{#606} Cr-Branched-From: 1f63ff4-refs/heads/main@{#972766}
As per resolution: w3c/csswg-drafts#6939 (comment) Differential Revision: https://phabricator.services.mozilla.com/D143392
As per resolution: w3c/csswg-drafts#6939 (comment) Differential Revision: https://phabricator.services.mozilla.com/D143392
This was decided on here: w3c/csswg-drafts#6939 (comment) WebKit implemented this: https://bugs.webkit.org/show_bug.cgi?id=235369 Bug: 1301716 Change-Id: I86553556719d64a1bd0d6b28f042a2d4f55aebfa Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3636485 Commit-Queue: Joey Arhar <jarhar@chromium.org> Reviewed-by: Mason Freed <masonf@chromium.org> Cr-Commit-Position: refs/heads/main@{#1001684}
I am implementing changes in chromium to get modal-dialog-in-replaced-renderer.html and modal-dialog-in-table-column.html passing again based on this resolution. However, it also caused these chromium-only tests to regress: Should children of |
@josepharhar |
Cool, I am adding tests for this here: https://chromium-review.googlesource.com/c/chromium/src/+/3646687 As for my question about |
Modal dialogs and fullscreen elements mark all elements outside of them as inert. That makes them have a used value of "user-select: none". But modal dialogs and fullscreen elements are not inert, so by default they got "user-select: auto". This resolves to "none" since the used value on the parent element is "none". So modal dialogs and fullscreen elements were not selectable. This patch addresses the problem by setting "user-select: text" on UA origin. There is a somewhat similar precedent where the CSSWG resolved to set "visibility: visible" on modal dialogs: w3c/csswg-drafts#6939 (comment) Bug: 1305797 TEST=external/wpt/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html Change-Id: I6fb00c25559dfefcf931be535ddf4128864c71ae Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3521788 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: Oriol Brufau <obrufau@igalia.com> Cr-Commit-Position: refs/heads/main@{#981078} NOKEYCHECK=True GitOrigin-RevId: 2f99d43b8ad481c35014367b301e53f70cd5bf81
This was decided on here: w3c/csswg-drafts#6939 (comment) WebKit implemented this: https://bugs.webkit.org/show_bug.cgi?id=235369 Bug: 1301716 Change-Id: I86553556719d64a1bd0d6b28f042a2d4f55aebfa Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3636485 Commit-Queue: Joey Arhar <jarhar@chromium.org> Reviewed-by: Mason Freed <masonf@chromium.org> Cr-Commit-Position: refs/heads/main@{#1001684} NOKEYCHECK=True GitOrigin-RevId: ee67ee8e3ec9423a38f983787945fc24a8f01cf8
The top layer has been added to the CSS spec, and this patch moves the top layer references from the fullscreen spec to the CSS spec and uses new algorithms to add and remove from the top layer defined in the CSS spec. Moving the top layer to the CSS spec has been discussed in these issues: w3c/csswg-drafts#4998 w3c/csswg-drafts#6939 w3c/csswg-drafts#7845 w3c/csswg-drafts#8240
This change moves the top layer references from Fullscreen to CSS and uses the new algorithms to add and remove from the top layer. Moving the top layer concept to CSS has been discussed in these issues: * w3c/csswg-drafts#4998 * w3c/csswg-drafts#6939 * w3c/csswg-drafts#7845 * w3c/csswg-drafts#8240 Tests: web-platform-tests/wpt#39828.
This change moves the top layer references from Fullscreen to CSS and uses the new algorithms to add and remove from the top layer. Moving the top layer concept to CSS has been discussed in these issues: * w3c/csswg-drafts#4998 * w3c/csswg-drafts#6939 * w3c/csswg-drafts#7845 * w3c/csswg-drafts#8240 Tests: web-platform-tests/wpt#39828.
This change moves the top layer references from Fullscreen to CSS and uses the new algorithms to add and remove from the top layer. Moving the top layer concept to CSS has been discussed in these issues: * w3c/csswg-drafts#4998 * w3c/csswg-drafts#6939 * w3c/csswg-drafts#7845 * w3c/csswg-drafts#8240 Tests: web-platform-tests/wpt#39828.
Things it would be nice to get clarification on:
What happens when the ancestor is replaced content or display: table-column? See the following tests:
Should top layer elements "escape" ancestor
pointer-events
? In all 3 current implementations the answer is no, ancestorpointer-events
propagate to<dialog>
, would be nice to make that clear!Not sure "If it consists of multiple layout boxes, the first box is used." should be kept, this currently isn't tested, and is quite vague.
Personally, I don't find "It is rendered as an atomic unit as if it were a sibling of its root." very useful. The stacking context/containing block definitions sort of cover most things IMO.
Spec: https://fullscreen.spec.whatwg.org/#new-stacking-layer
The text was updated successfully, but these errors were encountered: