[webkit-changes] [WebKit/WebKit] 127556: Notify networking stack that download is media rel...

Jean-Yves Avenard noreply at github.com
Tue Jan 10 19:18:01 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 127556767fd6049032090249e4ccc91110e3c70f
      https://github.com/WebKit/WebKit/commit/127556767fd6049032090249e4ccc91110e3c70f
  Author: Jean-Yves Avenard <jya at apple.com>
  Date:   2023-01-10 (Tue, 10 Jan 2023)

  Changed paths:
    M Source/WebCore/Modules/mediasource/MediaSource.cpp
    M Source/WebCore/Modules/mediasource/MediaSource.h
    M Source/WebCore/html/HTMLMediaElement.cpp
    M Source/WebCore/html/HTMLMediaElement.h
    M Source/WebCore/page/MediaProducer.h
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.h
    M Source/WebKit/NetworkProcess/NetworkProcess.messages.in
    M Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/UIProcess/WebProcessPool.h
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h

  Log Message:
  -----------
  Notify networking stack that download is media related
 https://bugs.webkit.org/show_bug.cgi?id=249569 rdar://103046339

Reviewed by Youenn Fablet.

Send a system notification when a networking operation is likely
going to be related to media playback.
For now the heuristic is rather primitive: if we have an active source buffer
linked to a media element we assume that all further networking operation in the
page is media related.
The notification is produced by the network process whenever a content process
has an active source buffers, and when all have been deleted.

The code was manually tested on a physical iPhone, however it fails on the simulator.
The api test will be added in a follow-up change (https://bugs.webkit.org/show_bug.cgi?id=250420)
* Source/WebCore/Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::removeSourceBuffer):
(WebCore::MediaSource::regenerateActiveSourceBuffers):
(WebCore::MediaSource::notifyElementUpdateMediaState const):
* Source/WebCore/Modules/mediasource/MediaSource.h:
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateMediaState):
(WebCore::HTMLMediaElement::mediaState const):
* Source/WebCore/html/HTMLMediaElement.h:
* Source/WebCore/page/MediaProducer.h:
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose):
(WebKit::NetworkProcess::notifyMediaStreamingActivity):
* Source/WebKit/NetworkProcess/NetworkProcess.h:
* Source/WebKit/NetworkProcess/NetworkProcess.messages.in:
* Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::notifyMediaStreamingActivity):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updatePlayingMediaDidChange):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::m_webProcessWithMediaStreamingCounter):
(WebKit::WebProcessPool::webProcessWithMediaStreamingToken const):
(WebKit::WebProcessPool::updateMediaStreamingActivity):
(WebKit::WebProcessPool::notifyMediaStreamingActivity):
* Source/WebKit/UIProcess/WebProcessPool.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::removeWebPage):
(WebKit::WebProcessProxy::updateAudibleMediaAssertions):
(WebKit::WebProcessProxy::updateMediaStreamingActivity):
* Source/WebKit/UIProcess/WebProcessProxy.h:

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




More information about the webkit-changes mailing list