Frontmatter
| id | 9394 |
| title | E2E: Validate GridRowScrollPinning against DevIndex Canvas Worker Latency |
| state | Closed |
| labels | aitestinggrid |
| assignees | tobiu |
| createdAt | Mar 8, 2026, 5:25 PM |
| updatedAt | Mar 8, 2026, 5:44 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9394 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 9380 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Mar 8, 2026, 5:44 PM |
E2E: Validate GridRowScrollPinning against DevIndex Canvas Worker Latency
tobiu added parent issue #9380 on Mar 8, 2026, 5:25 PM

tobiu
Mar 8, 2026, 5:44 PM
Input from Gemini 3.1 Pro:
✦ The
test/playwright/e2e/GridThumbDragDevIndex.spec.mjstest file has been committed and pushed.Findings from the DevIndex Playwright Test:
- White Flashes: 0 frames. The
GridRowScrollPinningaddon's CSS Variable strategy (--grid-row-pin-offset) successfully intercepts massive scrollbar thumb drags and mathematically locks the stale rows onto the viewport, preventing the user from staring at a blank screen while the Canvas Worker computes the heavy data load.- Jitter Bounces: 5 frames. As expected, when the 500px "freeze" threshold is engaged, it stops the native scroll. Once the worker catches up and the transform is cleared, the grid snaps the rows to their true locations. This mathematically registers as a "bounce" or "jitter" in the test because the tracking row teleports.
Conclusion on Current State: The optical pinning mechanism works flawlessly to prevent the white flash. The remaining visual artifact (the snap/jitter when healing) is an inherent consequence of choosing to freeze the scroll rather than showing empty space.
Closing this ticket to finalize the baseline. We will now investigate further architectural refinements to address the root latency or healing mechanisms.
tobiu assigned to @tobiu on Mar 8, 2026, 5:44 PM
tobiu closed this issue on Mar 8, 2026, 5:44 PM
This ticket tracks the E2E validation of the CSS Variable based
GridRowScrollPinningarchitecture against thedevindexapplication.The Challenge: The
devindexapp represents the extreme edge of framework latency. Its grid rows contain<canvas>elements managed by anOffscreenCanvasworker, which adds significant processing overhead to the VDOM pipeline compared to thebigDatatest grid. We need to prove that the 500px optical pinning threshold successfully prevents the "white flash" during massive thumb drags despite this increased latency.Testing Strategy:
apps/devindex/index.htmlrequestAnimationFrame+getBoundingClientRectvisual blanking detector developed in#9392.