[webkit-changes] [WebKit/WebKit] c6069f: [UnifiedPDF] Flashing when interacting with form c...
Simon Fraser
noreply at github.com
Fri Feb 23 12:40:33 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c6069f49ce6b011ecf978e53ce4875f39cea3727
https://github.com/WebKit/WebKit/commit/c6069f49ce6b011ecf978e53ce4875f39cea3727
Author: Simon Fraser <simon.fraser at apple.com>
Date: 2024-02-23 (Fri, 23 Feb 2024)
Changed paths:
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/AsyncPDFRenderer.h
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/AsyncPDFRenderer.mm
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm
Log Message:
-----------
[UnifiedPDF] Flashing when interacting with form controls
https://bugs.webkit.org/show_bug.cgi?id=269958
rdar://123479307
Reviewed by Tim Horton.
Currently when PDF content is invalidated (e.g. by a form control action) we throw
away the rendered tiles for that rect, and asynchronously regenerate them. That results
in flashes.
Instead, we can keep the existing tile, and update it from a asynchronously-rendered
buffer containing the invalidated rect for that tile. This means that paints may use
a stale tile, but that's better than flashing.
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/AsyncPDFRenderer.h:
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/AsyncPDFRenderer.mm:
(WebKit::AsyncPDFRenderer::paintingToTileTransform):
(WebKit::AsyncPDFRenderer::enqueuePaintWithClip):
(WebKit::AsyncPDFRenderer::paintTileOnWorkQueue):
(WebKit::AsyncPDFRenderer::paintPDFIntoBuffer):
(WebKit::AsyncPDFRenderer::transferBufferToMainThread):
(WebKit::AsyncPDFRenderer::didCompleteNewTileRender):
(WebKit::AsyncPDFRenderer::didCompleteTileUpdateRender):
(WebKit::AsyncPDFRenderer::updateTilesForPaintingRect):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::setNeedsRepaintInDocumentRect):
Canonical link: https://commits.webkit.org/275253@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list