Branch: refs/heads/webkitglib/2.46
Home: https://github.com/WebKit/WebKit
Commit: 72537c638c1edf905be5f6ef6521b17f46594291
https://github.com/WebKit/WebKit/commit/72537c638c1edf905be5f6ef6521b17f46594291
Author: Pratiksha Choudhury <[email protected]>
Date: 2024-11-22 (Fri, 22 Nov 2024)
Changed paths:
A LayoutTests/fast/dom/Element/element-parentNode-crash-expected.txt
A LayoutTests/fast/dom/Element/element-parentNode-crash.html
M Source/WebCore/html/HTMLElement.cpp
Log Message:
-----------
Cherry-pick 286644@main (936fafec3497).
https://bugs.webkit.org/show_bug.cgi?id=281789
Nullptr crash at
WebCore::Style::Invalidator::invalidateStyleWithMatchElement
https://bugs.webkit.org/show_bug.cgi?id=281789
rdar://137177811
Reviewed by Tim Nguyen.
Do style invalidation for the element and its descendants if connected.
* LayoutTests/fast/dom/Element/element-parentNode-crash-expected.txt: Added.
* LayoutTests/fast/dom/Element/element-parentNode-crash.html: Added.
* Source/WebCore/html/HTMLElement.cpp:
(WebCore::HTMLElement::hidePopoverInternal):
Canonical link: https://commits.webkit.org/286644@main
Canonical link: https://commits.webkit.org/282416.290@webkitglib/2.46
Commit: f5716b1e9cb881fa4ba8365d858892796a4e60cc
https://github.com/WebKit/WebKit/commit/f5716b1e9cb881fa4ba8365d858892796a4e60cc
Author: Miguel Gomez <[email protected]>
Date: 2024-11-23 (Sat, 23 Nov 2024)
Changed paths:
M Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBMTextureMapper.h
M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h
M Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayer.h
Log Message:
-----------
Cherry-pick 286146@main (4df9391bfafa).
https://bugs.webkit.org/show_bug.cgi?id=281309
Regression(280901@main)? [WPE][TextureMapper] Incorrect extra hole punches
with fixed body position
https://bugs.webkit.org/show_bug.cgi?id=281309
Reviewed by Carlos Garcia Campos.
When rendering into a preserves3D subtree, we're rendering into an
intermediate surface
that, once ready, is blended into the main framebuffer.
To make holepunching work in this situation we need to render the
transparent rectangle
in the intermediate surface, but also in the main framebuffer. To achieve
this, when
rendering into the intermediate surface we keep a vector of rects that need
to be painted
to the main framebuffer just before blending the intermediate surface.
There are a couple of points that need to be taken into account though: the
intermediate
surface rendering is tiled, so the same TextureMapperLayer can be rendered
several times,
and it will receive an offset to compensate the rendering into the
intermediate surface.
In order to notify the video sink and render the transparent rectange in
the main
framebuffer, we need to use a transform that doesn't include the
intermediate surface
offset. But to paint into the intermediate surface we need to use the
offsetted transform.
To achieve this, we calculate the non offsetted transform in the first
tile, and use it
to notify the real video position to the video sink and the main
framebuffer. Then
we use the normal transform to paint the transparent rectangle into the
intermediate
surface.
* Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::paintPreserves3DHolePunch):
(WebCore::TextureMapperLayer::paintWith3DRenderingContext):
* Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h:
* Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayer.h:
(WebCore::TextureMapperPlatformLayer::notifyVideoPosition):
(WebCore::TextureMapperPlatformLayer::paintTransparentRectangle):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferHolePunch.cpp:
(WebCore::CoordinatedPlatformLayerBufferHolePunch::notifyVideoPosition):
(WebCore::CoordinatedPlatformLayerBufferHolePunch::paintTransparentRectangle):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferHolePunch.h:
Canonical link: https://commits.webkit.org/286146@main
Canonical link: https://commits.webkit.org/282416.291@webkitglib/2.46
Commit: cdbaf316924a9586fe251b1006041b334d0c7fac
https://github.com/WebKit/WebKit/commit/cdbaf316924a9586fe251b1006041b334d0c7fac
Author: Jani Hautakangas <[email protected]>
Date: 2024-11-23 (Sat, 23 Nov 2024)
Changed paths:
M Source/WebCore/platform/TextureMapper.cmake
A Source/WebCore/platform/graphics/texmap/FloatPlane3D.cpp
A Source/WebCore/platform/graphics/texmap/FloatPlane3D.h
A Source/WebCore/platform/graphics/texmap/FloatPolygon3D.cpp
A Source/WebCore/platform/graphics/texmap/FloatPolygon3D.h
M Source/WebCore/platform/graphics/texmap/TextureMapper.cpp
M Source/WebCore/platform/graphics/texmap/TextureMapper.h
M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h
A
Source/WebCore/platform/graphics/texmap/TextureMapperLayer3DRenderingContext.cpp
A
Source/WebCore/platform/graphics/texmap/TextureMapperLayer3DRenderingContext.h
M Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp
M Source/WebCore/platform/graphics/transforms/TransformationMatrix.h
Log Message:
-----------
Cherry-pick 286605@main (d40d59e4e550).
https://bugs.webkit.org/show_bug.cgi?id=282682
[TextureMapper] Fix preserve-3D intersection rendering
https://bugs.webkit.org/show_bug.cgi?id=282682
Reviewed by Fujii Hironori.
Preserve-3d does not correctly render intersections, and also applying
filters in a 3D scene can break the rendering order. This patch addresses
these issues by implementing the composition and painting logic from the
CSS Transforms Module Level 2.
In a 3D rendering context, rendering and sorting of elements is done as
follows:
1. The element establishing the 3D rendering context, and each other 3D
transformed element participating in the 3D rendering context, is rendered
into its own plane. This plane includes the element’s backgrounds, borders,
other box decorations, content, and descendant elements, excluding any
descendant elements that have their own plane (and their descendants).
This rendering is done according to CSS 2.1,Appendix E, Section E.2
Painting Order.
2. Intersection is performed between this set of planes, according to
Newell’s algorithm, with the planes transformed by the accumulated 3D
transformation matrix. Coplanar 3D transformed elements are rendered in
painting order.
* Source/WebCore/platform/TextureMapper.cmake:
* Source/WebCore/platform/graphics/texmap/FloatPlane3D.cpp: Added.
(WebCore::FloatPlane3D::FloatPlane3D):
* Source/WebCore/platform/graphics/texmap/FloatPlane3D.h: Added.
(WebCore::FloatPlane3D::normal const):
(WebCore::FloatPlane3D::distanceConstant const):
(WebCore::FloatPlane3D::distanceToPoint const):
* Source/WebCore/platform/graphics/texmap/FloatPolygon3D.cpp: Added.
(WebCore::FloatPolygon3D::FloatPolygon3D):
(WebCore::FloatPolygon3D::split const):
* Source/WebCore/platform/graphics/texmap/FloatPolygon3D.h: Added.
(WebCore::FloatPolygon3D::vertexAt const):
(WebCore::FloatPolygon3D::numberOfVertices const):
(WebCore::FloatPolygon3D::normal const):
* Source/WebCore/platform/graphics/texmap/TextureMapper.cpp:
(WebCore::TextureMapper::beginClip):
* Source/WebCore/platform/graphics/texmap/TextureMapper.h:
* Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeTransformsRecursive):
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::paintWith3DRenderingContext):
(WebCore::TextureMapperLayer::collect3DSceneLayers):
(WebCore::TextureMapperLayer::effectiveLayerRect const):
(WebCore::TextureMapperLayer::paintPreserves3DHolePunch): Deleted.
(WebCore::TextureMapperLayer::sortByZOrder): Deleted.
* Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h:
(WebCore::TextureMapperLayer::toSurfaceTransform const):
*
Source/WebCore/platform/graphics/texmap/TextureMapperLayer3DRenderingContext.cpp:
Added.
(WebCore::TextureMapperLayer3DRenderingContext::paint):
(WebCore::TextureMapperLayer3DRenderingContext::buildTree):
(WebCore::TextureMapperLayer3DRenderingContext::traverseTreeAndPaint):
(WebCore::TextureMapperLayer3DRenderingContext::classifyPolygon):
*
Source/WebCore/platform/graphics/texmap/TextureMapperLayer3DRenderingContext.h:
Added.
* Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::transpose const):
* Source/WebCore/platform/graphics/transforms/TransformationMatrix.h:
Canonical link: https://commits.webkit.org/286605@main
Canonical link: https://commits.webkit.org/282416.292@webkitglib/2.46
Compare: https://github.com/WebKit/WebKit/compare/98a3e23efd46...cdbaf316924a
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes