Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0d63417844a1f3efbec6c8cece36bf78d39c9263
      
https://github.com/WebKit/WebKit/commit/0d63417844a1f3efbec6c8cece36bf78d39c9263
  Author: Alice Tang <[email protected]>
  Date:   2026-07-13 (Mon, 13 Jul 2026)

  Changed paths:
    M LayoutTests/TestExpectations
    A 
LayoutTests/fast/css/object-view-box-subset-obscures-background-no-repaint-expected.txt
    A 
LayoutTests/fast/css/object-view-box-subset-obscures-background-no-repaint.html
    A 
LayoutTests/fast/css/object-view-box-superset-does-not-obscure-background-repaint-expected.txt
    A 
LayoutTests/fast/css/object-view-box-superset-does-not-obscure-background-repaint.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-images/object-view-box-auto-size-relayout-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-images/object-view-box-auto-size-relayout-ref.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-images/object-view-box-auto-size-relayout.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-images/object-view-box-zoom-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-images/object-view-box-zoom-ref.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-images/object-view-box-zoom.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/object-view-box-new-image-expected.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/object-view-box-new-image.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/object-view-box-old-image-expected.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/object-view-box-old-image.html
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/wk2/TestExpectations
    M Source/WebCore/platform/graphics/GeometryUtilities.cpp
    M Source/WebCore/platform/graphics/GeometryUtilities.h
    M Source/WebCore/rendering/RenderHTMLCanvas.cpp
    M Source/WebCore/rendering/RenderImage.cpp
    M Source/WebCore/rendering/RenderReplaced.cpp
    M Source/WebCore/rendering/RenderReplaced.h
    M Source/WebCore/rendering/RenderVideo.cpp
    M Source/WebCore/rendering/RenderViewTransitionCapture.cpp
    M Source/WebCore/rendering/RenderViewTransitionCapture.h
    M Source/WebCore/rendering/updating/RenderTreeUpdaterViewTransition.cpp
    M Source/WebCore/style/StyleDifference.cpp

  Log Message:
  -----------
  CSS object-view-box: implement rendering and natural sizes
https://bugs.webkit.org/show_bug.cgi?id=316882
rdar://179304860

Reviewed by Simon Fraser.

Implements rendering and natural size computation for the CSS object-view-box
property across replaced elements (img, canvas, video) and view-transition
pseudo-elements.

For replaced elements (RenderImage, RenderHTMLCanvas, RenderVideo):
- resolveObjectViewBox() computes the view-box rect from inset/rect/xywh values
- replacedContentRect() uses the view-box dimensions as the effective intrinsic
  size for object-fit/object-position calculations
- paintReplaced() draws the full image scaled/translated so the view-box region
  maps onto the replaced content rect, clipped to the content box

For view-transition captures (RenderViewTransitionCapture):
- paintReplaced() uses an explicit srcRect to draw only the view-box sub-region
  of the snapshot, preventing bilinear bleed at the view-box boundary
- image() returns null when object-view-box is set, routing rendering through
  the software paint path (paintReplaced) rather than CA direct compositing
- layout() computes m_viewBoxLocalContentsRect for the CA contentsRect geometry
- canUseExistingLayers() accounts for object-view-box when deciding whether to
  reuse existing CA layers

Layout tests:
- 36/36 css-images object-view-box WPT tests pass, plus 2 new tests added by
  this patch (object-view-box-auto-size-relayout.html, 
object-view-box-zoom.html)
- 4/4 css-view-transitions object-view-box WPT tests pass (object-view-box-old/
  new-image use scale3d in expected refs and maxDifference=85/totalPixels=600
  fuzzy tolerance to account for snapshot-vs-live rendering quality difference;
  old/new-content-with-object-view-box.html are skipped on iOS due to a 1px
  device-pixel rounding difference)
- Adds 2 new fast/css repaint tests verifying the opaque-foreground optimization
  still behaves correctly with subset/superset object-view-box insets
- Removes 25 ImageOnlyFailure entries from TestExpectations

* LayoutTests/TestExpectations:
* 
LayoutTests/fast/css/object-view-box-subset-obscures-background-no-repaint-expected.txt:
 Added.
* 
LayoutTests/fast/css/object-view-box-subset-obscures-background-no-repaint.html:
 Added.
* 
LayoutTests/fast/css/object-view-box-superset-does-not-obscure-background-repaint-expected.txt:
 Added.
* 
LayoutTests/fast/css/object-view-box-superset-does-not-obscure-background-repaint.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-images/object-view-box-auto-size-relayout-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-images/object-view-box-auto-size-relayout-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-images/object-view-box-auto-size-relayout.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-images/object-view-box-zoom-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-images/object-view-box-zoom-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-images/object-view-box-zoom.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/object-view-box-new-image-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/object-view-box-new-image.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/object-view-box-old-image-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-view-transitions/object-view-box-old-image.html:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/wk2/TestExpectations:
* Source/WebCore/platform/graphics/GeometryUtilities.cpp:
* Source/WebCore/platform/graphics/GeometryUtilities.h:
* Source/WebCore/rendering/RenderHTMLCanvas.cpp:
* Source/WebCore/rendering/RenderImage.cpp:
* Source/WebCore/rendering/RenderReplaced.cpp:
* Source/WebCore/rendering/RenderReplaced.h:
* Source/WebCore/rendering/RenderVideo.cpp:
* Source/WebCore/rendering/RenderViewTransitionCapture.cpp:
* Source/WebCore/rendering/RenderViewTransitionCapture.h:
* Source/WebCore/rendering/updating/RenderTreeUpdaterViewTransition.cpp:
* Source/WebCore/style/StyleDifference.cpp:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to