Title: [268095] trunk
Revision
268095
Author
[email protected]
Date
2020-10-06 17:18:17 -0700 (Tue, 06 Oct 2020)

Log Message

[Media in GPU Process] The seekable attribute of HTMLMediaElement has an incorrect value
https://bugs.webkit.org/show_bug.cgi?id=217410

Reviewed by Eric Carlson.

Source/WebKit:

Covered by existing tests.

* GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged):
Update the state variables related to the `seekable` attribute when the media player is ready.
(WebKit::RemoteMediaPlayerProxy::updateCachedState):
Add a missing state variable setting.

* WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::seekable const): Deleted.
* WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
Instead of overriding seekable() here, we should use MediaPlayerPrivateInterface::seekable(),
which has the correct behavior.

LayoutTests:

* gpu-process/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (268094 => 268095)


--- trunk/LayoutTests/ChangeLog	2020-10-07 00:16:31 UTC (rev 268094)
+++ trunk/LayoutTests/ChangeLog	2020-10-07 00:18:17 UTC (rev 268095)
@@ -1,3 +1,12 @@
+2020-10-06  Peng Liu  <[email protected]>
+
+        [Media in GPU Process] The seekable attribute of HTMLMediaElement has an incorrect value
+        https://bugs.webkit.org/show_bug.cgi?id=217410
+
+        Reviewed by Eric Carlson.
+
+        * gpu-process/TestExpectations:
+
 2020-10-06  Karl Rackler  <[email protected]>
 
         REGRESSION (r267402): [ iOS Mojave+ Release ] imported/w3c/web-platform-tests/user-timing/measure-l3.any.html is a flaky failure

Modified: trunk/LayoutTests/gpu-process/TestExpectations (268094 => 268095)


--- trunk/LayoutTests/gpu-process/TestExpectations	2020-10-07 00:16:31 UTC (rev 268094)
+++ trunk/LayoutTests/gpu-process/TestExpectations	2020-10-07 00:18:17 UTC (rev 268095)
@@ -281,7 +281,6 @@
 media/track/opera/track/webvtt/rendering/adhoc/cue_font_size_transition.html [ Skip ]
 media/track/opera/track/webvtt/rendering/adhoc/voice_with_evil_timestamp.html [ Skip ]
 media/video-as-img-output-pts.html [ Skip ]
-media/video-buffering-allowed.html [ Skip ]
 media/video-canvas-createPattern.html [ Skip ]
 media/video-canvas-drawing-output.html [ Skip ]
 media/video-canvas.html [ Skip ]
@@ -298,9 +297,6 @@
 media/video-controls-no-scripting.html [ Skip ]
 media/video-controls-show-on-kb-or-ax-event.html [ Skip ]
 media/video-controls-toggling.html [ Skip ]
-media/video-does-not-loop.html [ Skip ]
-media/video-duration-seekable.html [ Skip ]
-media/video-error-does-not-exist.html [ Skip ]
 media/video-object-fit-change.html [ Skip ]
 media/video-orientation-canvas.html [ Skip ]
 media/video-played-ranges-1.html [ Skip ]

Modified: trunk/Source/WebKit/ChangeLog (268094 => 268095)


--- trunk/Source/WebKit/ChangeLog	2020-10-07 00:16:31 UTC (rev 268094)
+++ trunk/Source/WebKit/ChangeLog	2020-10-07 00:18:17 UTC (rev 268095)
@@ -1,3 +1,24 @@
+2020-10-06  Peng Liu  <[email protected]>
+
+        [Media in GPU Process] The seekable attribute of HTMLMediaElement has an incorrect value
+        https://bugs.webkit.org/show_bug.cgi?id=217410
+
+        Reviewed by Eric Carlson.
+
+        Covered by existing tests.
+
+        * GPUProcess/media/RemoteMediaPlayerProxy.cpp:
+        (WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged):
+        Update the state variables related to the `seekable` attribute when the media player is ready.
+        (WebKit::RemoteMediaPlayerProxy::updateCachedState):
+        Add a missing state variable setting.
+
+        * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
+        (WebKit::MediaPlayerPrivateRemote::seekable const): Deleted.
+        * WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
+        Instead of overriding seekable() here, we should use MediaPlayerPrivateInterface::seekable(),
+        which has the correct behavior.
+
 2020-10-06  Devin Rousso  <[email protected]>
 
         CSS hover and "pointer: fine" media queries do not evaluate to true with iOS 13.4 mouse support

Modified: trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp (268094 => 268095)


--- trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp	2020-10-07 00:16:31 UTC (rev 268094)
+++ trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp	2020-10-07 00:18:17 UTC (rev 268095)
@@ -293,16 +293,21 @@
 void RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged()
 {
     updateCachedState();
-    m_cachedState.canSaveMediaData = m_player->canSaveMediaData();
+
+    m_cachedState.minTimeSeekable = m_player->minTimeSeekable();
+    m_cachedState.maxTimeSeekable = m_player->maxTimeSeekable();
     m_cachedState.startDate = m_player->getStartDate();
     m_cachedState.startTime = m_player->startTime();
     m_cachedState.naturalSize = m_player->naturalSize();
     m_cachedState.maxFastForwardRate = m_player->maxFastForwardRate();
     m_cachedState.minFastReverseRate = m_player->minFastReverseRate();
+    m_cachedState.seekableTimeRangesLastModifiedTime = m_player->seekableTimeRangesLastModifiedTime();
+    m_cachedState.liveUpdateInterval = m_player->liveUpdateInterval();
     m_cachedState.hasAvailableVideoFrame = m_player->hasAvailableVideoFrame();
 #if ENABLE(WIRELESS_PLAYBACK_TARGET)
     m_cachedState.wirelessVideoPlaybackDisabled = m_player->wirelessVideoPlaybackDisabled();
 #endif
+    m_cachedState.canSaveMediaData = m_player->canSaveMediaData();
     m_cachedState.hasSingleSecurityOrigin = m_player->hasSingleSecurityOrigin();
     m_cachedState.didPassCORSAccessCheck = m_player->didPassCORSAccessCheck();
     m_cachedState.wouldTaintDocumentSecurityOrigin = m_player->wouldTaintOrigin(m_configuration.documentSecurityOrigin.securityOrigin());
@@ -727,6 +732,7 @@
     m_cachedState.duration = m_player->duration();
     m_cachedState.networkState = m_player->networkState();
     m_cachedState.readyState = m_player->readyState();
+    m_cachedState.movieLoadType = m_player->movieLoadType();
     m_cachedState.paused = m_player->paused();
     m_cachedState.loadingProgressed = m_player->didLoadingProgress();
     m_cachedState.hasAudio = m_player->hasAudio();

Modified: trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp (268094 => 268095)


--- trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp	2020-10-07 00:16:31 UTC (rev 268094)
+++ trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp	2020-10-07 00:18:17 UTC (rev 268095)
@@ -251,11 +251,6 @@
     return m_cachedState.hasAudio;
 }
 
-std::unique_ptr<PlatformTimeRanges> MediaPlayerPrivateRemote::seekable() const
-{
-    return makeUnique<PlatformTimeRanges>(m_cachedState.minTimeSeekable, m_cachedState.maxTimeSeekable);
-}
-
 std::unique_ptr<PlatformTimeRanges> MediaPlayerPrivateRemote::buffered() const
 {
     if (!m_cachedBufferedTimeRanges)

Modified: trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h (268094 => 268095)


--- trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h	2020-10-07 00:16:31 UTC (rev 268094)
+++ trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h	2020-10-07 00:18:17 UTC (rev 268095)
@@ -246,8 +246,6 @@
     WebCore::MediaPlayer::NetworkState networkState() const final { return m_cachedState.networkState; }
     WebCore::MediaPlayer::ReadyState readyState() const final { return m_cachedState.readyState; }
 
-    std::unique_ptr<WebCore::PlatformTimeRanges> seekable() const final;
-
     MediaTime maxMediaTimeSeekable() const final;
     MediaTime minMediaTimeSeekable() const final;
     std::unique_ptr<WebCore::PlatformTimeRanges> buffered() const final;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to