[webkit-changes] [WebKit/WebKit] 4b47aa: ManagedMediaSource should stop tagging network ope...

Jean-Yves Avenard noreply at github.com
Tue Apr 18 16:14:31 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4b47aa217bc82f6f0dc160eeec086eac846bb651
      https://github.com/WebKit/WebKit/commit/4b47aa217bc82f6f0dc160eeec086eac846bb651
  Author: Jean-Yves Avenard <jya at apple.com>
  Date:   2023-04-18 (Tue, 18 Apr 2023)

  Changed paths:
    M Source/WebCore/Modules/mediasource/ManagedMediaSource.cpp
    M Source/WebCore/Modules/mediasource/ManagedMediaSource.h
    M Source/WebCore/html/HTMLMediaElement.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/file-with-managedmse.html
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKPageHasMediaStreamingActivity.mm

  Log Message:
  -----------
  ManagedMediaSource should stop tagging network operations as media if player is not following guidance
https://bugs.webkit.org/show_bug.cgi?id=255584
rdar://106091782

Reviewed by Jer Noble.

As soon as the Managed Media Source element's streaming attribute was
true, we would tag all networking activity as media related.
However, this didn't account for live playback where small buffers are
appended repeatedly without ever filling the buffered window requested.

We request from the JS player to have "high threshold" seconds ahead of
currentTime. If we fail to buffer that much within "high threshold" seconds
we can assume one of the following:
- networking is too slow to keep up with playback
- or it's a live stream where the player will continously append new data.

In either case, we don't want to keep the 5G mode on to reduce power usage.
So we stop flagging networking activity as media then.

Add API test.

* Source/WebCore/Modules/mediasource/ManagedMediaSource.cpp:
(WebCore::ManagedMediaSource::ManagedMediaSource):
(WebCore::ManagedMediaSource::~ManagedMediaSource):
(WebCore::ManagedMediaSource::setStreaming):
(WebCore::ManagedMediaSource::ensurePrefsRead):
(WebCore::ManagedMediaSource::monitorSourceBuffers):
(WebCore::ManagedMediaSource::streamingTimerFired):
* Source/WebCore/Modules/mediasource/ManagedMediaSource.h:
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaState const):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKPageHasMediaStreamingActivity.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKit/file-with-managedmse.html:

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




More information about the webkit-changes mailing list