Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e6168698e8a3a0a3b2df3c26747b814b55f5174f
      
https://github.com/WebKit/WebKit/commit/e6168698e8a3a0a3b2df3c26747b814b55f5174f
  Author: Simon Fraser <simon.fra...@apple.com>
  Date:   2024-01-29 (Mon, 29 Jan 2024)

  Changed paths:
    A 
LayoutTests/compositing/plugins/pdf/pdf-in-iframe-scrolling-tree-after-back-expected.txt
    A 
LayoutTests/compositing/plugins/pdf/pdf-in-iframe-scrolling-tree-after-back.html
    A LayoutTests/compositing/plugins/pdf/resources/go-back.html
    M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h
    M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm

  Log Message:
  -----------
  [UnifiedPDF] scrolling is broken after navigating back to a PDF
https://bugs.webkit.org/show_bug.cgi?id=268228
rdar://120847163

Reviewed by Tim Horton.

When navigating back to a main frame PDF using the UnifiedPDF plugin, we'd fail 
to hook up
the scrolling tree, resulting in assertions in debug builds, and scrolling 
failures in release.

The bug happens because when navigating back, the ordering of creating the 
plugin's scrolling
node, and the main frame's scrolling node is different; the plugin node gets 
created first,
but with no parent, so it's thrown away, and the scrolling coordinator 
re-creates it later
with the same ID, but without the necessary layers.

Fix by creating the plugin's scrolling node on demand, when scrollingNodeID() 
is called.

The new test doesn't not actually replicate the bug (we can't yet test main 
frame PDFs),
but seems like a good test to have that exercises history.back() in an iframe 
with a PDF.

* 
LayoutTests/compositing/plugins/pdf/pdf-in-iframe-scrolling-tree-after-back-expected.txt:
 Added.
* 
LayoutTests/compositing/plugins/pdf/pdf-in-iframe-scrolling-tree-after-back.html:
 Added.
* LayoutTests/compositing/plugins/pdf/resources/go-back.html: Added.
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h:
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::ensureLayers):
(WebKit::UnifiedPDFPlugin::scrollingNodeID const):
(WebKit::UnifiedPDFPlugin::createScrollingNodeIfNecessary):

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to