RESOLVED FIXED315118
Opening or refreshing wasitai.com is extremely slow
https://bugs.webkit.org/show_bug.cgi?id=315118
Summary Opening or refreshing wasitai.com is extremely slow
Said Abou-Hallawa
Reported 2026-05-19 12:39:36 PDT
On macOS, the first paint of wasitai.com may take a few seconds. But opening or refreshing it on iOS may take about 50 seconds. This slow performance happens because the PageColorSampler tries to get five pixels from the first row in the page by taking five snapshots. The size of every snapshot is { 1 x 1 }. In general this is very inefficient because snapshotFrameRect() can't know to precisely clip the whole frame drawing to just one pixel. Many renderers will be traversed although their drawing does not affect the required pixel. By what makes this scenario extremely slow is the expensive blur in this page. On iPhone, wasitai.com draws a blur filter with stdDeviation = { 200, 200 }. This is extremely large stdDeviation. Usually the stdDeviation does not exceed 20px. So to fix this perf bug, the following fixes should be done: Instead of getting five snapshots from as single row, a single snapshot will be taken for the whole row. Then pixels in this row will examined. Second a new `FilterRenderingOption` named `FastAndLowQuality` will be introduced. This new option will allow clamping the blur stdDeviation to 20px if applied. The PageColorSampler will propagate this flag to rendering code in SnapshotFlags. `snapshotFrameRectWithClip()` will translate this SnapshotFlags to PaintBehavior. RenderLayer will send the PaintBehaviors to `RenderLayerFilters::beginFilterEffect()` which will examine paintBehavior. If it has FastAndLowQualityFilters it will send FilterRenderingOption ::FastAndLowQuality to `CSSFilterRenderer::create()`. FEGaussianBlur will check for this flag and clamp the stdDeviation when creating the appliers or the CGStyle.
Attachments
Said Abou-Hallawa
Comment 1 2026-05-19 12:39:59 PDT
Said Abou-Hallawa
Comment 2 2026-05-19 12:52:47 PDT
EWS
Comment 3 2026-05-20 02:28:08 PDT
Committed 313563@main (f4ce4a791de7): <https://commits.webkit.org/313563@main> Reviewed commits have been landed. Closing PR #65208 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.