[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