[webkit-changes] [WebKit/WebKit] 0e52b2: SEED ☂: Video - Playback does not start - [Include...
Sihui
noreply at github.com
Fri Jan 26 23:38:08 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0e52b21eff6365f96c3bcd8f90e594cfb7895026
https://github.com/WebKit/WebKit/commit/0e52b21eff6365f96c3bcd8f90e594cfb7895026
Author: Sihui Liu <sihui_liu at apple.com>
Date: 2024-01-26 (Fri, 26 Jan 2024)
Changed paths:
M Source/WebCore/bindings/js/SerializedScriptValue.cpp
Log Message:
-----------
SEED ☂: Video - Playback does not start - [Includes Logs] - Netflix.com
https://bugs.webkit.org/show_bug.cgi?id=266111
rdar://118775332
Reviewed by Chris Dumez and Mark Lam.
rdar://116034413 changed the serialization format of script value but didn’t update version number. This was later fixed
by rdar://117020274, which upgraded version number to 15 and made sure data serialized in new format contains new
version nubmer. The problem is, builds between rdar://116034413 and rdar://117020274 could create serialized script data
in new format but with old version number 14. These data can be stored persistently in IndexedDB database, and could not
be deserialized successfully after rdar://117020274 because they have mismatched version number and format.
To fix this, when we see an error in deserializing data with version nubmer 14, we upgrade the version number and try
deserializing it again in new format. This patch tries deserialization again with a new deserializer instead of using
the old deserializer because it's more complicated to revert the internal states on a deserializer that fails.
* Source/WebCore/bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::takeBackingStores):
(WebCore::CloneDeserializer::takeDetachedOffscreenCanvases):
(WebCore::CloneDeserializer::takeDetachedRTCDataChannels):
(WebCore::CloneDeserializer::takeSerializedVideoChunks):
(WebCore::CloneDeserializer::takeSerializedVideoFrames):
(WebCore::CloneDeserializer::takeSerializedAudioChunks):
(WebCore::CloneDeserializer::takeSerializedAudioData):
(WebCore::CloneDeserializer::version const):
(WebCore::CloneDeserializer::upgradeVersion):
Originally-landed-as: 267815.625 at safari-7617-branch (aa738c8a36f7). rdar://121480294
Canonical link: https://commits.webkit.org/273599@main
More information about the webkit-changes
mailing list