Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 62d83e48a0d38c1382c7b1f7765fa53ad8b3c3b7
      
https://github.com/WebKit/WebKit/commit/62d83e48a0d38c1382c7b1f7765fa53ad8b3c3b7
  Author: Etienne Segonzac <[email protected]>
  Date:   2026-01-08 (Thu, 08 Jan 2026)

  Changed paths:
    M Source/WebKit/Configurations/WebKit.xcconfig
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources-output.xcfilelist
    M Source/WebKit/DerivedSources.make
    A 
Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageView+Analysis.swift
    A 
Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageView+Generation.swift
    A 
Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageView+Rendering.swift
    A Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageView+Surface.swift
    A Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageView.h
    A Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageView.swift
    A 
Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageViewConstants.swift
    R Source/WebKit/UIProcess/Cocoa/WKSeparatedImageView.h
    R Source/WebKit/UIProcess/Cocoa/WKSeparatedImageView.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  -----------
  [visionOS] Upstream WKSeparatedImageView implementation
https://bugs.webkit.org/show_bug.cgi?id=304500
<rdar://156490053>

Reviewed by Richard Robinson.

No logic change, but this feature is finally broken down into multiple
files and obvious Swift warnings / lint issues were addressed.

Tests: LayoutTests/platform/visionos/transforms/separated-image*

* Source/WebKit/Configurations/WebKit.xcconfig:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources-output.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageView+Analysis.swift: 
Added.
(WKSeparatedImageView.pickViewMode):
(WKSeparatedImageView.startImageAnalysis):
(taskQueue):
(idleTask):
(idleContinuation):
(scoreImage(_:)):
(isIdle):
(enqueue(_:)):
(processQueue):
(CGImage.hasCompatibleDimensions):
* 
Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageView+Generation.swift: 
Added.
(WKSeparatedImageView.startImage3DGeneration):
(tail):
(getTurn() async -> @Sendable (:)):
(ContinuationBox.continuation):
(makeVoidPromise() -> (promise: Task<Void:Never:fulfill:)):
(StoredData.desiredViewingModeSpatial):
(set(for:spatial3DImage:desiredViewingModeSpatial:)):
(updateDesiredViewingMode(for:_:)):
(get(for:)):
(forget(_:)):
* Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageView+Rendering.swift: 
Added.
(WKSeparatedImageView.layoutCustomSubtree):
(WKSeparatedImageView.scheduleUpdate):
(WKSeparatedImageView.update):
(WKSeparatedImageView.updateContents):
(WKSeparatedImageView.updatePortal):
(WKSeparatedImageView.requestPortalEntity):
(WKSeparatedImageView.preparePortalEntity):
(WKSeparatedImageView.updateUI):
(WKSeparatedImageView.generationQueueSpinnerView):
(WKSeparatedImageView.desiredViewModeToggleView):
(WKSeparatedImageView.nextDisplayLink):
(ViewMode.description):
(DesiredViewModeButton.isSpatial):
(DesiredViewModeButton.body):
(DisplayLinkTarget.continuation):
(DisplayLinkTarget.handle(_:)):
(CALayer.effectivePointsPerMeter):
(UIView.replaceSubviews(with:)):
(UIView.updateVisibility(_:animate:duration:animationCompletion:)):
* Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageView+Surface.swift: 
Added.
(WKSeparatedImageView.processSurface(_:)):
(WKSeparatedImageView.didReceiveImage):
(StreamHasher.outputStream):
(cgImageAsDataWithHash(_:NSString:)):
(makeCGImage(from:)):
* Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageView.h: Renamed from 
Source/WebKit/UIProcess/Cocoa/WKSeparatedImageView.h.
* Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageView.swift: Added.
(WKSeparatedImageView.viewMode):
(WKSeparatedImageView.cachedViewModeInfo):
(WKSeparatedImageView.desiredViewingModeSpatial):
(WKSeparatedImageView.cgImage):
(WKSeparatedImageView.imageData):
(WKSeparatedImageView.imageHash):
(WKSeparatedImageView.computeHashTask):
(WKSeparatedImageView.pickViewModeTask):
(WKSeparatedImageView.generate3DImageTask):
(WKSeparatedImageView.spatial3DImage):
(WKSeparatedImageView.portalEntity):
(WKSeparatedImageView.contentView):
(WKSeparatedImageView.cornerView):
(WKSeparatedImageView.spinner):
(WKSeparatedImageView.toggleHostingView):
(WKSeparatedImageView.isSeparated):
(WKSeparatedImageView.isAttached):
(WKSeparatedImageView.isRenderingIPC):
(WKSeparatedImageView.logPrefix):
(WKSeparatedImageView.scaleObservation):
(WKSeparatedImageView.setSurface(_:)):
(WKSeparatedImageView.layoutSubviews):
(WKSeparatedImageView.layerClass):
(WKSeparatedImageView.layerSeparatedDidChange):
(WKSeparatedImageView.layerWasCleared):
(WKObservingLayerDelegate.layerSeparatedDidChange):
(WKObservingLayerDelegate.layerWasCleared):
(WKObservingLayer.layerDelegate):
(WKObservingLayer.isSeparated):
(WKObservingLayer.contents):
(WKSeparatedImageView.cleanUp):
(WKSeparatedImageView.webSetSubViews(_:)):
* Source/WebKit/UIProcess/Cocoa/Separated/WKSeparatedImageViewConstants.swift: 
Added.
* Source/WebKit/UIProcess/Cocoa/WKSeparatedImageView.mm: Removed.

* Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
Move the WKContentControlled conformance here since we don't have an
objective-c implementation anymore.

* Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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



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

Reply via email to