[webkit-changes] [WebKit/WebKit] a8ec36: REGRESSION (GPU Process): Data detector border doe...

Aditya Keerthi noreply at github.com
Thu May 4 16:50:33 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a8ec36cfcdc70b595124542be1f6a89514db35aa
      https://github.com/WebKit/WebKit/commit/a8ec36cfcdc70b595124542be1f6a89514db35aa
  Author: Aditya Keerthi <akeerthi at apple.com>
  Date:   2023-05-04 (Thu, 04 May 2023)

  Changed paths:
    M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp

  Log Message:
  -----------
  REGRESSION (GPU Process): Data detector border doesn't appear when hovering over text in Mail
https://bugs.webkit.org/show_bug.cgi?id=256320
rdar://108559329

Reviewed by Tim Horton.

DataDetectors UI in Mail is implemented using an injected bundle. Specifically,
the `PageOverlay` API is used to draw the content. Following the introduction of
the GPU Process on macOS, there is no longer a platform graphics context in the
Web Process. Consequently, WebKit hands DataDetectors.framework a `NULL`
`CGContextRef` to draw into, resulting in no content being drawn.

To fix, create a temporary image buffer in the Web Process, for clients of
the injected bundle `PageOverlay` API to draw into. The image buffer is then
drawn into the `GraphicsContext` using an existing drawing command.

* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:

To limit the size of the temporary image buffer, the size is restricted to the
size of the dirty rect. This also requires translating the image buffer's
context, as clients are drawing relative to (0, 0).

Canonical link: https://commits.webkit.org/263700@main




More information about the webkit-changes mailing list