[webkit-changes] [WebKit/WebKit] 55195d: [UnifiedPDF] Scrollbars don't show
Simon Fraser
noreply at github.com
Wed Dec 20 08:38:18 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 55195d817a86c40943811d2e3dd5d3b7ca10c76c
https://github.com/WebKit/WebKit/commit/55195d817a86c40943811d2e3dd5d3b7ca10c76c
Author: Simon Fraser <simon.fraser at apple.com>
Date: 2023-12-20 (Wed, 20 Dec 2023)
Changed paths:
M LayoutTests/compositing/plugins/pdf/pdf-scrolling-tree-dynamic-expected.txt
M LayoutTests/compositing/plugins/pdf/pdf-scrolling-tree-dynamic.html
M LayoutTests/compositing/plugins/pdf/pdf-scrolling-tree-expected.txt
M LayoutTests/compositing/plugins/pdf/pdf-scrolling-tree.html
M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h
M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm
M Source/WebKit/WebProcess/Plugins/PluginView.cpp
Log Message:
-----------
[UnifiedPDF] Scrollbars don't show
https://bugs.webkit.org/show_bug.cgi?id=266644
rdar://119848161
Reviewed by Tim Horton.
Fix the UnifiedPDFPlugin to display scrollbars. This involves:
1. Making layers for scrollbars, via `layerForVerticalScrollbar()` and friends.
Implement `viewRelativeVerticalScrollbarRect()` etc in the base class to share
code related to scrollbar geometry. In the non-UI-side compositing configuration,
those scrollbar layers are painted into via `UnifiedPDFPlugin::paintContents()`.
2. Make a m_overflowControlsContainer layer to host the overflow controls layers,
which makes it easier to ensure that scrollbars are always above the content.
3. `UnifiedPDFPlugin::updateLayout()` takes scrollbars into account when
doing layout, potentially doing two passes when they change as a result of layout.
4. Respond to changes between overlay and legacy scrollbars. This is handled
by `UnifiedPDFPlugin::scrollbarStyleChanged()` which just updates layout,
since scrollbars an affect the available space for the PDF content.
* LayoutTests/compositing/plugins/pdf/pdf-in-embed-expected.txt:
* LayoutTests/compositing/plugins/pdf/pdf-scrolling-tree-dynamic-expected.txt:
* LayoutTests/compositing/plugins/pdf/pdf-scrolling-tree-dynamic.html: The embed has to be small enough to trigger scrolling.
* LayoutTests/compositing/plugins/pdf/pdf-scrolling-tree-expected.txt:
* LayoutTests/compositing/plugins/pdf/pdf-scrolling-tree.html: The embed has to be small enough to trigger scrolling.
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm:
(WebKit::PDFPluginBase::viewRelativeVerticalScrollbarRect const):
(WebKit::PDFPluginBase::viewRelativeHorizontalScrollbarRect const):
(WebKit::PDFPluginBase::viewRelativeScrollCornerRect const):
(WebKit::PDFPluginBase::updateScrollbars):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h:
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::ensureLayers):
(WebKit::UnifiedPDFPlugin::updateLayerHierarchy):
(WebKit::UnifiedPDFPlugin::didChangeSettings):
(WebKit::UnifiedPDFPlugin::paintContents):
(WebKit::UnifiedPDFPlugin::availableContentsRect const):
(WebKit::UnifiedPDFPlugin::updateLayout):
(WebKit::UnifiedPDFPlugin::updateOverflowControlsLayers):
(WebKit::UnifiedPDFPlugin::positionOverflowControlsLayers):
(WebKit::UnifiedPDFPlugin::invalidateScrollbarRect):
(WebKit::UnifiedPDFPlugin::invalidateScrollCornerRect):
(WebKit::UnifiedPDFPlugin::layerForHorizontalScrollbar const):
(WebKit::UnifiedPDFPlugin::layerForVerticalScrollbar const):
(WebKit::UnifiedPDFPlugin::layerForScrollCorner const):
(WebKit::UnifiedPDFPlugin::scrollingMode const):
(WebKit::UnifiedPDFPlugin::scrollbarStyleChanged):
(WebKit::UnifiedPDFPlugin::updateScrollbars):
(WebKit::UnifiedPDFPlugin::updateScrollingExtents):
* Source/WebKit/WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::horizontalScrollbar):
(WebKit::PluginView::verticalScrollbar):
Canonical link: https://commits.webkit.org/272350@main
More information about the webkit-changes
mailing list