Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0a1ac6a9346a53e4ec3d65532e9ea6950f7a99a2
      
https://github.com/WebKit/WebKit/commit/0a1ac6a9346a53e4ec3d65532e9ea6950f7a99a2
  Author: Jean-Yves Avenard <j...@apple.com>
  Date:   2025-05-14 (Wed, 14 May 2025)

  Changed paths:
    M LayoutTests/platform/ios/TestExpectations
    M Source/WebCore/Modules/mediasource/MediaSource.cpp
    M Source/WebCore/Modules/mediasource/MediaSource.h
    M Source/WebCore/Modules/mediasource/MediaSourceInterfaceMainThread.cpp
    M Source/WebCore/Modules/mediasource/MediaSourceInterfaceMainThread.h
    M Source/WebCore/Modules/mediasource/MediaSourceInterfaceProxy.h
    M Source/WebCore/Modules/mediasource/MediaSourceInterfaceWorker.cpp
    M Source/WebCore/Modules/mediasource/MediaSourceInterfaceWorker.h
    M Source/WebCore/html/HTMLMediaElement.cpp
    M Source/WebCore/html/HTMLMediaElement.h
    M Source/WebCore/platform/cocoa/PlaybackSessionModel.h
    M Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.h
    M Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.mm
    M Source/WebCore/platform/graphics/MediaPlayerPrivate.cpp
    M Source/WebCore/platform/graphics/PlatformTimeRanges.cpp
    M Source/WebCore/platform/graphics/cocoa/NullPlaybackSessionInterface.h
    M Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.h
    M Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.mm
    M Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKitLegacy.h
    M Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKitLegacy.mm
    M Source/WebCore/platform/ios/PlaybackSessionInterfaceIOS.h
    M Source/WebCore/platform/ios/PlaybackSessionInterfaceTVOS.h
    M Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm
    M Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.h
    M Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.mm
    M Source/WebKit/Platform/ios/PlaybackSessionInterfaceLMK.h
    M Source/WebKit/Platform/ios/PlaybackSessionInterfaceLMK.mm
    M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.h
    M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in
    M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm
    M Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.h
    M Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm

  Log Message:
  -----------
  [iOS Debug] 2 MediaRecorder tests are constantly crashing due to assertion 
failure.
https://bugs.webkit.org/show_bug.cgi?id=290410
rdar://147863063

Reviewed by Youenn Fablet.

When sending the PlatformTimeRanges to the UI process, we converted each
TimeRange to a Vector<pair<double, double>>. When the TimeRanges contained
+infinity, the conversion from MediaTime::positiveInfinity -> double -> 
MediaTime were lossy
and caused the generated PlatformTimeRanges to fail the assertion 
`end.isValid()`

We remove this unnecessary TimesRanges to Vector when sending it over IPC
and instead use the standard serialiser.
In addition, stop using WebCore::TimeRanges and instead have
seekableRangesChanged() and seekableRanges() return PlatformTimeRanges object.
This also removes a slight layering violation that had existed for a long
time.

Covered by existing tests.

* LayoutTests/platform/ios/TestExpectations: Change test TestExpectations as 
tests won't cause an assertion on debug build anymore.
* Source/WebCore/platform/graphics/PlatformTimeRanges.cpp:
(WebCore::PlatformTimeRanges::add): Assert that the end is valid on all 
platform.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to