Initial rendering support for declarative skeletons [chromium/src : main]

0 views
Skip to first unread message

Rune Lillesveen (Gerrit)

unread,
Apr 17, 2026, 2:28:15 AM (yesterday) Apr 17
to Rune Lillesveen, Vladimir Levin, Noam Rosenthal, android-bu...@system.gserviceaccount.com, Menard, Alexis, chromium...@chromium.org, devtools...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org
Attention needed from Noam Rosenthal and Vladimir Levin

Rune Lillesveen added 1 comment

Patchset-level comments
File-level comment, Patchset 6 (Latest):
Rune Lillesveen . resolved

This is the start of rendering a skeleton in a ::skeleton pseudo tree that we've talked about.

There are a lot of details to figure out. Now, the ::skeleton is rendered under the LayoutView at the same time as the rest of the document.

I move a skeleton document fully using an <html> root element under the ::skeleton pseudo. The question is if the author creating a skeleton should expect that an authored skeleton document should render exactly as if it was rendered standalone. If so, we need to make the ::skeleton <html> root behave as a document root with selector matching, propagation of overflow to viewport, etc.

Open in Gerrit

Related details

Attention is currently required from:
  • Noam Rosenthal
  • Vladimir Levin
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Icf2f5f74dd3061bb54a88148f109cfe30fc1d49f
Gerrit-Change-Number: 7754114
Gerrit-PatchSet: 6
Gerrit-Owner: Rune Lillesveen <fut...@chromium.org>
Gerrit-Reviewer: Noam Rosenthal <nrose...@google.com>
Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
Gerrit-Attention: Noam Rosenthal <nrose...@google.com>
Gerrit-Comment-Date: Fri, 17 Apr 2026 06:27:56 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Vladimir Levin (Gerrit)

unread,
Apr 17, 2026, 9:58:18 PM (23 hours ago) Apr 17
to Rune Lillesveen, Noam Rosenthal, android-bu...@system.gserviceaccount.com, Menard, Alexis, chromium...@chromium.org, devtools...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org
Attention needed from Noam Rosenthal and Rune Lillesveen

Vladimir Levin added 3 comments

Commit Message
Line 21, Patchset 6 (Latest):
Vladimir Levin . unresolved

I'd file a bug to track implementation

File third_party/blink/renderer/core/skeleton/build.gni
Line 6, Patchset 6 (Latest): "skeleton.cc",
Vladimir Levin . unresolved

Should we have a couple of smoke tests?

File third_party/blink/renderer/core/skeleton/skeleton_loader.h
Line 62, Patchset 6 (Latest): Member<Skeleton> skeleton_;
Vladimir Levin . unresolved

The fact that there's a single skeleton but a HashSet of URLs surprises me. I can see that the implementation is to basically just fetch the skeleton as soon as we have a navigation (which I assume just races the two fetches). I would've pictured this more like a prefetch eventually where we have a URL->skeleton type of map that is opportunistically populated

Open in Gerrit

Related details

Attention is currently required from:
  • Noam Rosenthal
  • Rune Lillesveen
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Icf2f5f74dd3061bb54a88148f109cfe30fc1d49f
    Gerrit-Change-Number: 7754114
    Gerrit-PatchSet: 6
    Gerrit-Owner: Rune Lillesveen <fut...@chromium.org>
    Gerrit-Reviewer: Noam Rosenthal <nrose...@google.com>
    Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
    Gerrit-CC: Menard, Alexis <alexis...@intel.com>
    Gerrit-Attention: Rune Lillesveen <fut...@chromium.org>
    Gerrit-Attention: Noam Rosenthal <nrose...@google.com>
    Gerrit-Comment-Date: Sat, 18 Apr 2026 01:58:10 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages