[CSSWG] Minutes New York F2F 2022-08-02 Part I: Shared Element Transitions; Sizing [css-sizing]

=========================================
  These are the official CSSWG minutes.
  Unless you're correcting the minutes,
 Please respond by starting a new thread
   with an appropriate subject line.
=========================================


Shared Element Transitions
--------------------------

  - RESOLVED: Add Shared Element Transitions as ED, with JakeA, khush,
              and TabAtkins as editors (Issue #6464: Shared Element
              Transitions)

Sizing
------

  - RESOLVED: 0x0 is not special with regards to ResizeObserver or
              contain-intrinsic-size (Issue #7539: How does 0x0 size
              affect last remembered size?)
  - RESOLVED: Replace ResizeObserver editors with Oriol and Emilio
  - RESOLVED: At ResizeObserver time, forget an element's last
              remembered size if it is currently out of the document
              (Issue #7532: Should last remembered size be removed if
              the element is removed from the document?)
  - RESOLVED: "last remembered size" is tracked for the two axises
              independently (in case of containment in one axis), and
              can be invoked independently (with
              contain-intrinsic-size:auto in one axis) (Issue #7529: Is
              the last remembered size recorded if there is size
              containment in a single axis?)
  - RESOLVED: Clarify that setting contain-intrinsic-size to a size
              overrides the content size, even if there is other sizing
              info such as grid column widths (Issue #7520: Clarify
              contain-intrinsic-size with multicolumn/grid)
  - RESOLVED: contain-intrinsic-size size is used as the natural sizes
              of replaced elements (but does not set the aspect ratio)
              (Issue #7519: Clarify how contain-intrinsic-size affects
              size containment algorithm)
      - TabAtkins will also add some examples to the spec
  - RESOLVED: If, when an element goes from not generating a principal
              box to generating one, it does not have
              contain-intrinsic-size:auto, forget any last remembered
              size (Issue #7527: What happens with the last remembered
              size if there is no principal box?)
  - RESOLVED: If an element doesn't have a principal box, we do not
              record a last remembered size (Issue #7527)

===== FULL MEETING MINUTES ======

Agenda: https://github.com/w3c/csswg-drafts/projects/30

Present:
  Rachel Andrew, Google
  Jake Archibald, Google
  Rossen Atanassov, Microsoft
  Tab Atkins, Google
  David Baron, Google
  Oriol Brufau, Igalia
  Emilio Cobos Álvarez, Mozilla
  Yehonatan Daniv, Wix.com
  Elika J Etemad aka fantasai, Invited Expert
  Robert Flack, Google
  Simon Fraser, Apple
  Daniel Holbert, Mozilla
  Brian Kardell, Igalia
  Jonathan Kew, Mozilla
  Ian Kilpatrick, Google
  Una Kravets, Google
  Rune Lillesveen, Google
  Chris Lilley, W3C
  Vladimir Levin, Google
  Francois REMY, Invited Expert
  Florian Rivoal, Invited Expert
  Cassondra Roberts, Adobe
  Khushal Sagar, Google
  Alan Stearns, Adobe
  Miriam Suzanne, Invited Expert
  Bramus Van Damme, Google
  Lea Verou, Invited Expert

Scribe: fantasai

  Rossen: welcome to Day 2

Shared Element Transitions
==========================
  github: https://github.com/w3c/csswg-drafts/issues/6464

  vmpstr: About Shared Element Transitions, a new set of APIs we're
          working on for animations and transitions between pages
  vmpstr: single page and hopefully multipage as well
  vmpstr: Was presented in breakout session
  vmpstr: since then worked on spec text and prototype in Chromium as
          well
  <vmpstr> https://tabatkins.github.io/specs/css-shared-element-transitions/
  vmpstr: I sent this spec draft to the list awhile back
  vmpstr: hoping that people interested would have read through the
          draft
  vmpstr: Ultimate goal for us is adopting this into the CSSWG
  vmpstr: so we wanted to use this opportunity to surface issues people
          may have
  vmpstr: and of course we're happy to answer any questions
  khush: Other goal that I'm hoping is, there are a few open issues in
         the spec and things came up while prototyping
  khush: and wanted to go over those as well
  khush: hoping we can file issues within CSSWG and go from there

  Rossen: We've had the overview in the past, there's also an open
          aggregate for this feature, which we haven't gotten to
  Rossen: Questions or comments or feedback to vlad and khushal?
  Rossen: What do they need to move forward and adopt this as part of
          the CSS charter?
  Rossen: Do we need any additional overview, refresher of the APIs?
  TabAtkins: Happy to discuss any concerns, but also if OK with making
             ED can discuss later as well

  fremy: I like the idea, just note that there is no images or diagram
         or anything in the draft
  fremy: so maybe in a future version, have a diagram of the different
         pseudo elements
  fremy: and what order they're in the page
  fremy: It's in Ch4, but a diagram would be nice
  fremy: not a blocking thing
  <Rossen> https://github.com/WICG/shared-element-transitions/blob/main/explainer.md
  Rossen: I posted also a link to the explainer, a bunch of really
          well-illustrated examples there
  fremy: Exactly what I was hoping for
  Rossen: Anything else, fremy ?
  fremy: Nope

  <JakeA> Updated developer-facing article
https://developer.chrome.com/blog/shared-element-transitions-for-spas/
  JakeA: I posted a link to the developer-facing content for this,
         which includes a lot of videos and examples
  JakeA: can put it in the spec if wanted
  JakeA: I've never seen a video in a spec before!
  TabAtkins: Of all this specs, this is probably the one that would
             most benefit!

  Rossen: Any objections to adopting this work?
  fantasai: Are we adopting an ED, or are we also publishing FPWD
  TabAtkins: Still have some tweaks to make, so happy to wait until we
             get those down and then doing FPWD
  fantasai: If you have planned edits, let's do ED now and FPWD later
            then.

  RESOLVED: Add Shared Element Transitions as ED, with JakeA, khush,
            and TabAtkins as editors

  Rossen: anything else on this topic?
  <bramus> Nice!
  <vmpstr> \o/

Sizing
======
  Scribe: emilio
  Scribe's scribe: fantasai

How does 0x0 size affect last remembered size?
----------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7539

  oriol: Not sure if I should do a quick intro about
         contain-intrinsic-size: auto
  oriol: which is a feature that remembers the last size of an element
  oriol: and then uses that instead of collapsing the contribution of
         the contents
  oriol: when you have size containment
  oriol: This specific issue is about 0x0 size. The spec seems to
         assume that using ResizeObserver is the way to track this size
  oriol: since it mentions that the size is updated at ResizeObserver
         time
  oriol: when implementing this I found a problem when the size is 0x0
  oriol: If you start observing an element with ResizeObserver and the
         element doesn't have a 0x0 size then you get an observation
         with the current size
  oriol: but you don't get it without it
  oriol: so the question is should we still store this size as the last
         remembered size?
  oriol: Seems like Chromium wasn't doing it
  oriol: so I don't see a reason about why special-casing it
  <dbaron> This sounds like a spec bug, and the spec should handle 0x0
           sizes just like other sizes.

  emilio: Now that you've explained this, this is only observable in
          some cases, right?
  emilio: if there's not stored size, you use 0x0
  emilio: e.g. in one axis
  oriol: when you have contain-intrinsic-size: auto you need to provide
         a fallback value
  oriol: so if you get the fallback you can detect it's not stored

  TabAtkins: This appears to be a corner case falling from the
             implementation details
  TabAtkins: so I don't mind either way

  dbaron: I think this is just a spec bug that was copied to the spec
          because it was written based on impl
  dbaron: I think 0x0 should be handled like any other size
  TabAtkins: the spec doesn't special-case this
  TabAtkins: so it's an impl bug
  oriol: yeah, this is because the ResizeObserver inits its size to 0x0
  TabAtkins: we only reuse the RO timing
  dbaron: it might be a bug in ResizeObserver

  flackr: Should we remember 0x0 only if the element was visible? This
          is intended for content-visibility
  oriol: There are some issues with storing the size
  oriol: You need to be size-contained at the time, which
         content-visibility provides in some cases
  oriol: so if you lay out the content normally without
         size-containment etc it gets saved
  flackr: If the element has never been on screen we shouldn't be
          remembering 0x0 for its size
  flackr: we'd lay out 0x0 with content-visibility: hidden
  oriol: If it has content-visibility from the beginning you don't
         store the size
  flackr: But content-visibility: auto changes dynamically when you
          scroll
  oriol: If you have content-visibility: auto initially outside of the
         screen we won't store the last remembered size because it has
         size containment, we'll store it once you enter the screen
  flackr: So we won't save the size if it has size containment, so my
          concern is addressed
  flackr: ResizeObserver will still fire
  oriol: Yeah, but you won't store the last remembered size

  scribe: fantasai
  scribe's scribe: emilio

  emilio: I think I agree with dbaron, but it feels like a bug in
          ResizeObserver
  emilio: IntersectionObserver does fire an observation immediately,
          regardless of whether on the screen
  emilio: so it feels to me like a bug that ResizeObserver doesn't fire
          on zero
  <flackr> +1
  emilio: and that would fix this by extension
  emilio: so I suspect we just move this to the ResizeObserver spec
  emilio: idk who's the editor of that?
  emilio: but given the precedent of IntersectionObserver always firing
          as well, it doesn't seem to me that this would be
          objectionable
  emilio: It seems the editors are no longer working on CSS specs
  emilio: so we need new editors for this spec?
  Rossen: Let's figure out what we want to fix and then figure out who
          is going to do it

  oriol: Proposed resolution would be that 0x0 size is not special, is
         just like any other size
  emilio: That's the current spec behavior
  Rossen: That doesn't require any change to the spec, simply requires
          implementations to fix their bugs
  emilio: But then we need to file a ResizeObserver bug
  Rossen: Yeah, but we're here to fix specs
  Rossen: Seems we don't need a spec change, if the bugs are not filed,
          please go and file them
  Rossen: Anything else on this topic?
  Rossen: Objections to resolving on 0x0 is not a special size?

  RESOLVED: 0x0 is not special with regards to ResizeObserver or
            contain-intrinsic-size

  emilio: This means we need ResizeObserver spec changes
  [discussion of possible editors]
  <fantasai> +1 to oriol

  RESOLVED: Replace ResizeObserver editors with Oriol and Emilio

Last remembered size when element is removed from the document
--------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7532

  oriol: Spec says that when we store last remembered size, this
         survives box destruction, e.g. if you add 'display: none', the
         element will keep storing this last remembered size
  oriol: My question here is if the element is removed from the tree
  oriol: and then later re-inserted
  oriol: will it still have its last remembered size from the previous
         position in the tree?
  oriol: Should we remove the last remembered size?
  TabAtkins: I suggest whatever is easiest to implement
  ...
  TabAtkins: Rossen made the point that moving the element is done by
             removing the item ...
  TabAtkins: but if you're e.g. re-ordering a list, you might want to
             keep that info
  <iank> yeah there are lots of cases for moving things around, and it
         should keep the same last size.
  TabAtkins: The common case for removing from document and
             re-inserting is moving it around
  TabAtkins: and the common case of that is re-ordering within a list
             of similar items
  TabAtkins: so my suggestion is to keep the last remembered size until
             normal things remove it

  <ydaniv> Is removing from layout tree much different from being
           removed completely from the DOM?

  emilio: You can move things around, given how specced right now
  emilio: that means that if you move it, by the time you ??, it will
          already have a box
  emilio: When we fire ResizeObserver callback, if you move an element,
          it will have a new box and a new position in the tree
  emilio: Do we want to clear it if it's not in the document or doesn't
          have a box, i.e. when you fire the ResizeObserver event
  emilio: [missed]
  emilio: Deciding at the time of ResizeObserver doesn't prevent the
          moving case from working
  TabAtkins: If you remove it from the tree, hold onto it a bit,
             ResizeObserver fires, and then you don't have a remembered
             size at that point
  TabAtkins: when the ResizeObserver timing happens (well-defined), if
             the element is outside the document, we clear the last
             remember size
  TabAtkins: because we forget the size in some cases at ResizeObserver
             timing
  Rossen: What do we do for animations?
  TabAtkins: They're tied to the box
  TabAtkins: but these are tied specifically to the element itself
  TabAtkins: Is there an implementation concern?
  emilio: No
  TabAtkins: I could lean either way

  Rossen: Oriol, do you have an opinion
  oriol: No strong opinion, just wondering about it
  oriol: I suppose we can leave it to not do anything special
  oriol: Styles might change if you move it, or the old size might be
         strange in the new position
  oriol: but can also be fine
  oriol: so no strong opinion
  iank: The reason not to tie it to the box is that we have a lot of
        features that will switch out of the box
  iank: e.g. like when using CQ, it will be very common fro an element
        to have potentially different boxes associated

  ydaniv: contain-intrinsic-size is only interesting if you have
          content-visibility and still out of view, right?
  ydaniv: so by the time that the element is in view, it doesn't really
          play any part, right?
  oriol: It can play a part if you first lay out the element normally
         and it can store its size, and then you add
         content-visibility: hidden, then it can be in the screen and
         keep its contents, and it will use its last remembered size
  oriol: We resolved this last week
  TabAtkins: That's the exact weirdo case this is designed for

  Rossen: Ok, regardless if it's weird or not, we need to make it more
          predictable
  Rossen: If we specify that it fires, the previous size
  Rossen: would there be any objections?
  TabAtkins: I think I lean very slightly towards it forgetting its size
  TabAtkins: if you're stashing away, not just doing a move
  TabAtkins: it's much less clear that the new context you're putting
             it into would be similar
  TabAtkins: so I lean towards forgetting if it's out of document

  Rossen: When you last checked this, did you check what
          implementations did?
  oriol: Chromium never seems to remove last remembered size
  oriol: and in Gecko haven't landed implementation
  flackr: For virtual scroller recycling element, I think we'd see this
          happen, and you'd want to forget the size, because you're
          changing the content before re-inserting
  Rossen: So then the proposed resolution is that the element will
          forget its last size
  TabAtkins: at normal ResizeObserver timing
  vmpstr: Then if removed and then re-added, then it's keeps its size
          if it happened before the resize observer timing
  TabAtkins: At ResizeObserver time, you also check if it is in the
             document
  TabAtkins: if not, forget the size

  RESOLVED: At ResizeObserver time, forget an element's last remembered
            size if it is currently out of the document

Recording last remembered size recorded given single-axis containment
---------------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7529

  oriol: We are only storing last remembered size if there's not size
         containment
  oriol: However, in newer specs of css-contain, we may have size
         containment in a single axis
  oriol: what happens?
  oriol: Are we still storing both width and height of last remembered
         size?
  oriol: Do we not update last remembered size in the uncontained axis?
  oriol: Should we check at least one of the axes has size containment
         and then store both?
  oriol: How should this work exactly?
  TabAtkins: This is a very good question

  Rossen: do you have a proposal, Oriol?
  oriol: Maybe would feel more natural to me to do independently rather
         than together
  oriol: Right now Chromium stores together
  oriol: I don't have a strong opinion

  TabAtkins: I think I lean toward tracking them together, just because
             say you have a set width and you have a contained block
             size
  TabAtkins: whatever height you want to remember, that depends on
             your width
  TabAtkins: if you end up with a different width, your height is not
             going to be very meaningful
  TabAtkins: It's weird to expect a different width also
  TabAtkins: but I feel either record both or record neither
  TabAtkins: and you need to have containment to get sizing to trigger

  flackr: I was going to suggest the opposite
  flackr: reason being that the only way that you have containment in
          one axis by it being an explicit style, whereas containment
          in both axes is because of content-visibility and being
          off-screen
  flackr: If the developer, while on screen, has containment in one axis
  flackr: then it should store the last remembered size when it goes
          off screen
  Rossen: That's a compelling argument
  TabAtkins: That seems reasonable
  Rossen: Sounds like we're approaching a resolution
  Rossen: Proposed resolution is that we'll keep them separate, and
          store them separate
  Rossen: Any objections?

  RESOLVED: "last remembered size" is tracked for the two axises
            independently (in case of containment in one axis), and can
            be invoked independently (with contain-intrinsic-size:auto
            in one axis)

<br end=??:20>

Clarify contain-intrinsic-size with multicolumn/grid
----------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7520

  oriol: Spec defines contain-intrinsic-size as setting the intrinsic
         inner size
  oriol: then it says that this causes the box to size as if its
         in-flow contents ...
  oriol: but what exactly are its in-flow contents?
  oriol: multicol container or grid container
  oriol: In a multicol container, the size, it sets the width of the box
  oriol: but if you have columns or tracks, the total width of the
         column/container will be bigger than that
  oriol: in grid it's the opposite,
  oriol: but here, contain-intrinsic-size, was setting the content size
         of the grid
  oriol: ...
  oriol: I don't think it's completely clear, and I want to have a
         resolution on this

  <iank> our multi-col intrinsic sizing isn't particularly good in this
         respect.
  TabAtkins: The Grid behavior is correct. Multicol is wrong
  TabAtkins: We didn't think about multicol when writing this, but
             thought about grid, and ignoring the grid stuff is the
             intended behavior
  TabAtkins: multicol should be fixed, and get a clarification in the
             spec to make extra clear
  oriol: If you specify contain-intrinsic-size: none and then in grid
         it may become greater than zero
  oriol: if you have e.g. fixed tracks
  oriol: but if you specify contain-intrinsic-size: zero
  oriol: then it will override grid template properties?
  TabAtkins: Correct
  TabAtkins: If not setting the size, you pretend no children, but grid
             is still there
  TabAtkins: but if set a size, you get that size

  fantasai: What's the behavior with multicol?
  TabAtkins: If you set contain-intrinsic-size to a length, you get
             that size, not size of columns
  fantasai: multicol columns are usually less fixed-size than fixed-size
            grid columns anyway

  Rossen: Is that the only clarification we need?
  TabAtkins: This isn't a clarification for multicol specification,
             just make clear that things such as multicol or grid don't
             do anything special, size just gets overridden
  Rossen: What's the proposed resolution?
  TabAtkins: Clarify spec that layout systems that can have sizing
             effects even with empty children don't matter,
             contain-intrinsic-size overrides all of that and sets a
             particular content size

  RESOLVED: Clarify that setting contain-intrinsic-size to a size
            overrides the content size, even if there is other sizing
            info such as grid column widths

Clarify how contain-intrinsic-size affects size containment algorithm
---------------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7519

  oriol: There's a bunch of sentences in the spec, mostly editorial,
         but the interaction of how the algo in containment spec is
         altered to take contain-intrinsic-size into account
  oriol: Mostly editorial, might not worth it to discuss now, just one
         thing I wanted to discuss is
  oriol: What about replaced elements?
  oriol: The contain spec says that when you have a replaced element
         with size containment, it behaves as if it had no natural
         aspect ratio
  oriol: and the natural size was zero
  oriol: what happens if you have contain-intrinsic-size?
  oriol: What Chromium does is that the replaced element still doesn't
         have a natural aspect ratio
  oriol: but the natural width and height are the ones specified in
         contain-intrinsic-size
  oriol: Does this make sense, or do we want some other behavior?
  TabAtkins: Having used natural width/height take from
             contain-intrinsic-size makes sense

  TabAtkins: You asked, why do first layout if going to relayout
  TabAtkins: Answer is, we want to make sure that under normal
             circumstances, width calculates before height
  TabAtkins: depending on contents, can have different effects
  TabAtkins: once have width, then calculate height
  oriol: So can we have an example of these cases in the spec?
  ACTION: TabAtkins add an example

  Rossen: Does that mean we don't need to change anything?
  TabAtkins: Oriol's second example, needs fixing in the spec
  fantasai: We want to clarify that it doesn't set the aspect-ratio
            right?
  Proposed: contain-intrinsic-size size is used as the natural sizes of
      replaced elements (but does not set the aspect ratio)
  <iank> some SVGs have this behaviour.
  TabAtkins: Yeah
  fantasai: I wanna suggest that if the aspect-ratio...
  TabAtkins: We wanna say that it doesn't have an intrinsic
             aspect-ratio, the property can affect
  fantasai: Wonder if there's utility in being able to set the
            aspect-ratio from those sizes
  fantasai: guess it has to be opt-in, we don't know if the element is
            supposed to have an aspect-ratio
  fantasai: we might want to have that ability
  <iank> if you want to opt-in to an aspect-ratio you can just set the
         aspect-ratio as well?
  fantasai: Yeah, you can do that explicitly, but it'd be easier to
            have it computed from contain-intrinsic-size
  fantasai: That's something to think about but can be addressed later
  Rossen: Objections?

  RESOLVED: contain-intrinsic-size size is used as the natural sizes of
            replaced elements (but does not set the aspect ratio)

Last remembered size if there is no principal box
-------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7527

  oriol: In a note, when the element gets display:none, then the last
         remembered size is supposed to be preserved
  oriol: If the element doesn't have 0x0, and the box is destroyed when
         you apply 'display:none', then the last remember size will be
         zero
  oriol: if contain-intrinsic-size is auto, then need to remember this
         last size
  oriol: so we override the last size with 0x0
  oriol: and then I guess we should add the condition that the element
         at that point is not generating a principal box, shouldn't
         record the size
  TabAtkins: Correct, if it doesn't have a principal box shouldn't
             record the size
  TabAtkins: agree we should fix that
  oriol: If there's no box, shouldn't we be able to remove this last
         remembered size?
  oriol: we resolved that if it's removed from the tree, we clear the
         size
  oriol: I guess if it doesn't have a box, the size doesn't change, but
         my understanding is even if the size doesn't change, if you
         remove contain-intrinsic-size: auto you remove last remembered
         size
  TabAtkins: Lacking a principal box shouldn't remove the remembered
             size
  TabAtkins: as long as you still have contain-intrinsic-size: auto

  oriol: Consider a case where we have a box, but let's say that we
         have contain-intrinsic-size: auto and we remember the size
  oriol: and then we remove contain-intrinsic-size: auto
  oriol: but box size doesn't change
  oriol: Should we remove the last remembered size?
  TabAtkins: Yes
  TabAtkins: This is not tied to ResizeObserver, it's tied to
             ResizeObserver timing
  oriol: If you lose contain-intrinsic-size: auto, but this doesn't
         trigger a size change, then we still remove the last
         remembered size
  fantasai: Okay
  oriol: In this case, we wouldn't get an observation because the size
         didn't change
  oriol: but if we can remove the size when contain-intrinsic-size:
         auto is lost, what if we first add display:none
  oriol: and then remove contain-intrinsic-size: auto
  oriol: by consistency, we need to remove the last remembered size as
         well
  oriol: but most browsers don't recompute style during 'display: none'
  TabAtkins: So that's an implementation difficulty with matching the
             spec

  fantasai: Suppose if it's display: none you can flip things on and off
  fantasai: and when you remove 'display: none', you check if
            contain-intrinsic-size:auto is there and either clear the
            last remembered size or not?
  emilio: But you need to do that not at ResizeObserver time, but as
          soon as you get a box that is not contain-intrinsic-size:auto
  emilio: so you go display:none, at ResizeObserver time we don't know
          what to do because don't have a box
  emilio: if when you come back, you need to check
          contain-intrinsic-size:auto
  TabAtkins: that seems fine to me
  emilio: It's weird to update this in different places
  TabAtkins: I also think it's weird to do that, but it's apparently
             problematic to do it while display is none
  TabAtkins: So we check for contain-intrinsic-size:auto when the
             element begins generating a principal box again
  TabAtkins: if it doesn't have contain-intrinsic-size:auto at that
             point, forget its last remembered size
  emilio: yeah, ok
  TabAtkins: If you're doing anything weird switching
             contain-intrinsic-size while you're display:none it's your
             fault

  emilio: Consider Container Queries, might flip things depending on
          container
  emilio: if you're already compute Container Queries, you may need to
          create a box for a size that isn't your final one
  emilio: you may clear the remembered size,
  emilio: ...
  TabAtkins: Why would you clear it at that point
  emilio: Imagine without CQ matching, you don't have
          contain-intrinsic-size:auto
  emilio: and once you know that you have a container of a given size,
          the box gets contain-intrinsic-size:auto
  TabAtkins: Easiest solution is to put contain-intrinsic-size:auto
             less conditionally
  emilio: Yes, I agree, but its a sketchy case
  emilio: because it depends on how precisely you implement queries
  TabAtkins: I think it's okay
  TabAtkins: It seems ok for it to be less certain
  TabAtkins: There's an easy solution: don't make it conditional in
             your styles

  TabAtkins: So proposed resolution is that we add new condition to
             forget last remembered size
  TabAtkins: which is if an element goes from not generating a
             principal box to generating one, we check cis and if it's
             not auto we forget the size
  oriol: and for storing the size the element should have a box
  Rossen: any objections to first one?

  RESOLVED: If, when an element goes from not generating a principal
            box to generating one, it does not have
            contain-intrinsic-size:auto, forget any last remembered size

  TabAtkins: If an element doesn't have a principal box, we do not
             record a principal size

  RESOLVED: If an element doesn't have a principal box, we do not
            record a last remembered size

  Rossen: Anything else on this issue?
  oriol: Nope

Received on Tuesday, 30 August 2022 23:32:55 UTC