Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: facebook/react
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 9784cb37
Choose a base ref
...
head repository: facebook/react
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: c260b38d
Choose a head ref
  • 4 commits
  • 4 files changed
  • 2 contributors

Commits on Jul 31, 2025

  1. [Fizz] Don't outline Boundaries that may contribute to the preamble (#…

    …34058)
    
    Suspense boundaries that may have contributed to the preamble should not
    be outlined due to size because these boundaries are only meant to be in
    fallback state if the boundary actually errors. This change excludes any
    boundary which has the potential to contribute to the preamble. We could
    alternatively track which boundaries actually contributed to the
    preamble but in practice there will be very few and I think this is
    sufficient.
    
    One problem with this approach is it makes Suspense above body opt out
    of the mode where we omit rel="expect" for large shells. In essence
    Suspense above body has the semantics of a Shell (it blocks flushing
    until resolved) but it doesn't get tracked as request bytes and thus we
    will not opt users into the skipped blocking shell for very large
    boundaries.
    
    This will be fixed in a followup
    gnoff authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    9877346 View commit details
    Browse the repository at this point in the history
  2. [Fizz] Count Boundary bytes that may contribute to the preamble in th…

    …e request byteSize (#34059)
    
    Stacked on #34058
    
    When tracking how large the shell is we currently only track the bytes
    of everything above Suspense boundaries. However since Boundaries that
    contribute to the preamble will always be inlined when the shell flushes
    they should also be considered as part of the request byteSize since
    they always flush alongside the shell. This change adds this tracking
    gnoff authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    8de7aed View commit details
    Browse the repository at this point in the history
  3. [DevTools] Model Hidden Offscreen Boundaries as Unmounts (#34062)

    This is modeling Offscreen boundaries as the thing that unmounts a tree
    in the frontend. This will let us model this as a "hide" that preserves
    state instead in a follow up but not yet.
    
    By doing it this way, we don't have to special case suspended Suspense
    boundaries, at least not for the modern versions that use Offscreen as
    the internal node. It's still special cased for the old React versions.
    Instead, this is handled by the Offscreen fiber getting hidden.
    
    By giving this fiber an FilteredFiberInstance, we also have somewhere to
    store the children on (separately from the parent children set which can
    include other siblings too like the loading state).
    
    One consequence is that Activity boundary content now disappears when
    they're hidden which is probably a good thing since otherwise it would
    be confusing and noisy when it's used to render multiple pages at once.
    sebmarkbage authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    5bbf9be View commit details
    Browse the repository at this point in the history
  4. [DevTools] Clean up Virtual Instances from id map (#34063)

    This was a pretty glaring memory leak. 🙈
    
    I forgot to clean up the VirtualInstances from the id map so the Server
    Component instances always leaked in DEV.
    sebmarkbage authored Jul 31, 2025
    Configuration menu
    Copy the full SHA
    c260b38 View commit details
    Browse the repository at this point in the history
Loading