Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4a9d1a52a38c2feda07d32b7ec9790ef7a690b20
      
https://github.com/WebKit/WebKit/commit/4a9d1a52a38c2feda07d32b7ec9790ef7a690b20
  Author: Simon Fraser <[email protected]>
  Date:   2023-07-31 (Mon, 31 Jul 2023)

  Changed paths:
    M Source/WebCore/page/mac/ServicesOverlayController.mm
    M Source/WebCore/platform/mac/DataDetectorHighlight.h
    M Source/WebCore/platform/mac/DataDetectorHighlight.mm

  Log Message:
  -----------
  Crash in GraphicsLayerCA::computeVisibleAndCoverageRect() caused by data 
detector highlights
https://bugs.webkit.org/show_bug.cgi?id=257684
rdar://105900355

Reviewed by Aditya Keerthi.

It was possible for ServicesOverlayController to delete a 
DataDetectorHighlight, but leave its GraphicsLayer
parented in the page overlay, so the GraphicsLayer client() was deleted.

Fix by having the DataDetectorHighlight's destructor call invalidate(), which 
unparents the layer. The
ServicesOverlayController destructor no longer needs to explicitly call 
invalidate().

I attempted for several hours to make an API test for this, but was unable.

* Source/WebCore/page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::~ServicesOverlayController): Deleted.
* Source/WebCore/platform/mac/DataDetectorHighlight.h:
* Source/WebCore/platform/mac/DataDetectorHighlight.mm:
(WebCore::DataDetectorHighlight::~DataDetectorHighlight):

Originally-landed-as: 259548.817@safari-7615-branch (9abef45e45a6). 
rdar://105900355
Canonical link: https://commits.webkit.org/266434@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to