Skip to content

Timeline-Mithril: add experimental virtual scroll workload - #558

Merged
camillobruni merged 50 commits into
WebKit:mainfrom
camillobruni:2026-07-01_lazy_load_scroll
Nov 13, 2026
Merged

camillobruni merged 50 commits into
WebKit:mainfrom
camillobruni:2026-07-01_lazy_load_scroll

Conversation

@camillobruni

Copy link
Copy Markdown
Contributor

No description provided.

@netlify

netlify Bot commented Jul 8, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for webkit-speedometer-preview ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit 17c6406
🔍 Latest deploy log https://app.netlify.com/projects/webkit-speedometer-preview/deploys/6af72b5aadb3f5fe1116bbd2
😎 Deploy Preview https://deploy-preview-558--webkit-speedometer-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@camillobruni
camillobruni marked this pull request as draft July 8, 2026 09:57
@camillobruni camillobruni changed the title WIP add experimental virtual scroll workload Timeline-Mithril: add experimental virtual scroll workload Nov 12, 2026
Replace dynamic Google Fonts requests with locally bundled open-source Plus Jakarta Sans WOFF2 files so the Timeline-Mithril workload runs self-contained with zero external network dependencies.
Ensure all benchmark state transitions, redraws, and scroll jumps execute deterministically inside measured synchronous steps without leaking timers or hitting browser History API rate limits.
After switching Timeline-Mithril to synchronous redraws, reduce the loop iterations in SearchTimeline, FilterByCategory, and SwitchLanguage so each step runs in ~100ms.
Replace <mark> VDOM node splitting in card titles and descriptions with Range-based CSS.highlights (::highlight(search-results)) so search highlighting updates without mutating text DOM structure.
Replace the undefined ScrollBehavior type assertion in Timeline.ts, format with ESLint and Prettier, and remove the Node-only timeline.mjs import from tests/index.html so CI linters and browser unit tests pass.
Keep the final search term ('Computer') active at the end of SearchTimeline so CSS Custom Highlight ranges are painted and exercised across subsequent benchmark steps.
Trim the iteration counts in SearchTimeline, FilterByCategory, and SwitchLanguage by roughly 30% to keep the longer-running steps compact.
Remove unconditional vnode.dom.focus() calls in Card.oncreate and Card.onupdate so typing into the search input keeps focus on the input and keeps the suggestions dropdown open.
Ensure npm run build compiles TypeScript sources before running vite build so Vite never bundles stale tsc-emitted .js files left behind by npm test.
@camillobruni

Copy link
Copy Markdown
Contributor Author

Interactive scrollytelling benchmark tracking computing milestones from 1900 to the present across five localized languages: German (DE), French (FR), Italian (IT), Traditional Chinese (TW), and Japanese (JP).

@camillobruni
camillobruni marked this pull request as ready for review November 13, 2026 15:19
# Conflicts:
#	suites-experimental/suites.mjs
@camillobruni
camillobruni merged commit b091b9f into WebKit:main Nov 13, 2026
13 of 14 checks passed
@camillobruni
camillobruni deleted the 2026-07-01_lazy_load_scroll branch November 13, 2026 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants