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

Reply via email to