Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 75c8d8e05e203899e442be049be01e891e4e37d0
      
https://github.com/WebKit/WebKit/commit/75c8d8e05e203899e442be049be01e891e4e37d0
  Author: Etienne Segonzac <[email protected]>
  Date:   2026-06-10 (Wed, 10 Jun 2026)

  Changed paths:
    M LayoutTests/model-element/model-element-bounding-box-expected.txt
    M LayoutTests/model-element/model-element-bounding-box.html
    M 
LayoutTests/model-element/model-element-contents-layer-updates-expected.txt
    M 
LayoutTests/model-element/model-element-contents-layer-updates-with-clipping-expected.txt
    R 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-after-bfcache-expected.txt
    R 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-after-bfcache.html
    R
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-expected.txt
    R 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-frames-expected.txt
    R 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-frames.html
    R 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-navigation-expected.txt
    R 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-navigation.html
    R 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information.html
    M 
LayoutTests/model-element/model-element-graphics-layers-opacity-expected.txt
    M 
LayoutTests/model-element/model-element-update-transform-after-resize-expected.txt
    M LayoutTests/model-element/model-element-update-transform-after-resize.html
    A
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-after-bfcache-expected.txt
    A 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-after-bfcache.html
    A 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-expected.txt
    A 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-frames-expected.txt
    A 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-frames.html
    A 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-navigation-expected.txt
    A 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-navigation.html
    A
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information.html
    M LayoutTests/model-element/resources/model-utils.js
    A 
LayoutTests/platform/visionos/model-element/model-element-contents-layer-updates-expected.txt
    A 
LayoutTests/platform/visionos/model-element/model-element-contents-layer-updates-with-clipping-expected.txt
    A 
LayoutTests/platform/visionos/model-element/model-element-graphics-layers-opacity-expected.txt
    M Source/WebCore/Modules/model-element/HTMLModelElement.cpp
    M Source/WebKit/GPUProcess/graphics/Model/ModelTypes.h
    M Source/WebKit/GPUProcess/graphics/Model/USDModel.swift
    M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h
    M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm
    M Source/WebKit/WebProcess/GPU/graphics/Model/RemoteMeshProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/Model/RemoteMeshProxy.h
    M
Source/WebKit/WebProcess/Model/WebModelPlayer.h
    M Source/WebKit/WebProcess/Model/WebModelPlayer.mm
    M Tools/Scripts/webkitpy/port/mac.py

  Log Message:
  -----------
  [Model] existing tests under LayoutTests/model-element/ tests should pass
https://bugs.webkit.org/show_bug.cgi?id=300037
<rdar://161835901>

Reviewed by Mike Wyrzykowski.

Align HTMLModelElement behavior across platforms and enable a unified test
suite.

Tests: model-element/*

* LayoutTests/model-element/model-element-bounding-box-expected.txt:
* LayoutTests/model-element/model-element-bounding-box.html:
* LayoutTests/model-element/model-element-contents-layer-updates-expected.txt:
* 
LayoutTests/model-element/model-element-contents-layer-updates-with-clipping-expected.txt:
* LayoutTests/model-element/model-element-graphics-layers-opacity-expected.txt:
Update the base expectations for the WebModelPlayer.

*
LayoutTests/model-element/model-element-update-transform-after-resize-expected.txt:
* LayoutTests/model-element/model-element-update-transform-after-resize.html:
Align on the WebModelPlayer behavior for this test. Re-layout does
compute a new transform as long as entityTransform was not set by JS.
Even if stagemode is None.
Add a test covering the case where entityTransform is set.

* 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-after-bfcache-expected.txt:
 Renamed from 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-after-bfcache-expected.txt.
* 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-after-bfcache.html:
 Renamed from 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-after-bfcache.html.
*
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-expected.txt:
 Renamed from 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-expected.txt.
* 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-frames-expected.txt:
 Renamed from 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-frames-expected.txt.
* 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-frames.html:
 Renamed from 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-frames.html.
* 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-navigation-expected.txt:
 Renamed from
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-navigation-expected.txt.
* 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information-navigation.html:
 Renamed from 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information-navigation.html.
* 
LayoutTests/model-element/model-process/model-element-determines-if-scroll-gesture-updates-position-information.html:
 Renamed from 
LayoutTests/model-element/model-element-determines-if-scroll-gesture-updates-position-information.html.
Move the ModelProcess-only tests to a model-process directory for easy
skipping.

* LayoutTests/model-element/resources/model-utils.js:
(const.assert_3d_matrix_equals):
Add some wiggle room to the transform matrix assertions.

* 
LayoutTests/platform/visionos/model-element/model-element-contents-layer-updates-expected.txt:
 Copied from
LayoutTests/model-element/model-element-contents-layer-updates-expected.txt.
* 
LayoutTests/platform/visionos/model-element/model-element-contents-layer-updates-with-clipping-expected.txt:
 Copied from 
LayoutTests/model-element/model-element-contents-layer-updates-with-clipping-expected.txt.
* 
LayoutTests/platform/visionos/model-element/model-element-graphics-layers-opacity-expected.txt:
 Copied from 
LayoutTests/model-element/model-element-graphics-layers-opacity-expected.txt.
Add visionOS expectations for the layer tree tests.

* Source/WebCore/Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::reloadModelPlayer):
Make sure the reload code path from PlaceHolderModelPlayer to a live one
works for GPU_PROCESS_MODEL. It's covered by
model-element-suspend-resume.html.

* Source/WebKit/GPUProcess/graphics/Model/ModelTypes.h:
* Source/WebKit/GPUProcess/graphics/Model/USDModel.swift:
(USDModelLoader.treatZAsUpAxis):
(WKBridgeModelLoader.treatZAsUpAxis):
*
Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h:
* Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm:
(WebKit::ModelProcessModelPlayerProxy::updateTransformAfterLayout):
(WebKit::ModelProcessModelPlayerProxy::sizeDidChange):
(WebKit::ModelProcessModelPlayerProxy::setEntityTransform):
(WebKit::ModelProcessModelPlayerProxy::setStageMode):
Align the re-layout behavior on the WebModelPlayer.

* Source/WebKit/WebProcess/GPU/graphics/Model/RemoteMeshProxy.cpp:
(WebKit::RemoteMeshProxy::setStageMode):
* Source/WebKit/WebProcess/GPU/graphics/Model/RemoteMeshProxy.h:
Align the stagemode update behavior on the ModelProcessModelPlayer.
Going from Orbit to None does _not_ recompute the scale.

* Source/WebKit/WebProcess/Model/WebModelPlayer.h:
* Source/WebKit/WebProcess/Model/WebModelPlayer.mm:
(WebKit::WebModelPlayer::duration
const):
(WebKit::WebModelPlayer::load):
(WebKit::WebModelPlayer::setPlaybackRate):
(WebKit::WebModelPlayer::update):
(WebKit::WebModelPlayer::play):
(WebKit::WebModelPlayer::setLoop):
(WebKit::WebModelPlayer::setAutoplay):
(WebKit::WebModelPlayer::setPaused):
(WebKit::WebModelPlayer::currentTime const):
(WebKit::WebModelPlayer::updateClockTimeOnAnimationState):
(WebKit::WebModelPlayer::setCurrentTime):
(WebKit::WebModelPlayer::setEnvironmentMap):
(WebKit::WebModelPlayer::reload):
Keep track of the animation even when the model player is suspended
(like on visionOS).
Align the animation behaviors between platforms.
Covered by model-element-animations-* tests.
Fix an issue where the environment map promise was rejected if it loaded
before the model was ready.
Make sure the bounding box reported to JavaScript honors the USD `upAxis` value.

(WebKit::WebModelPlayer::boundingBoxCenterAndExtents const):
(WebKit::WebModelPlayer::currentTransformState const):
*
Tools/Scripts/webkitpy/port/mac.py:
(MacPort.stderr_patterns_to_strip):
Suppress spurious log from lower level frameworks.

Canonical link: 
https://flagged.apple.com:443/proxy?t2=Da7N1D0dX7&o=aHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvMzE0ODk0QG1haW4=&emid=cb81e424-c451-40ad-8e4d-7f56ac3944fa&c=11



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

Reply via email to