Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e6ac3419306c15f2b830078c89afaf47ab1fde55
      
https://github.com/WebKit/WebKit/commit/e6ac3419306c15f2b830078c89afaf47ab1fde55
  Author: destra <[email protected]>
  Date:   2023-08-04 (Fri, 04 Aug 2023)

  Changed paths:
    M Source/WebCore/platform/audio/PlatformMediaSession.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSuspendAllMediaPlayback.mm

  Log Message:
  -----------
  Pausing media playback after suspending media playback, and then later 
unsuspending media
playback should not unpause media that was playing before the original 
suspension
https://bugs.webkit.org/show_bug.cgi?id=259801
rdar://111917263

Reviewed by Eric Carlson.

Currently, if playing media is suspended, then a user pauses the media, when
playback is unsuspended the media begins playing again. However the desired 
behavior is for
the pause to be honored when media is unsuspended. This bug happens because 
when playback is
suspended, PlatformMediaSession::beginInterruption records the playback state 
to restore when
unsuspended in m_stateToRestore. But this data member is not updated if pausing 
occurs while
suspended.

Now, when playback is paused, PlatformMediaSession::pauseSession checks if 
playback is currently
interrupted (meaning it is suspended), and if so, sets m_stateToRestore to 
'paused'.

1 API test added that checks that after doing suspend -> pause -> unsuspend, 
media that was playing
originally is now paused.

* Source/WebCore/platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::pauseSession):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSuspendAllMediaPlayback.mm:

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to