[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