New issue
Advanced search Search tips
Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 30
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature

Blocked on:
issue 892773



Sign in to add a comment
link

Issue 892771: Add a mojo API for controlling media sessions

Reported by beccahughes@chromium.org, Oct 5 Project Member

Issue description

Add an API for controlling media sessions
 

Comment 1 by beccahughes@chromium.org, Oct 5

Blockedon: 892773

Comment 2 by bugdroid1@chromium.org, Oct 26

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5f4f882c9fe6a1cd465941bd95bcf1db23a45ccd

commit 5f4f882c9fe6a1cd465941bd95bcf1db23a45ccd
Author: Becca Hughes <beccahughes@chromium.org>
Date: Fri Oct 26 00:57:15 2018

[Media Controller] Add observer

Client using MediaController should be able to add
MediaSessionObserver's to observe the active media
session state.

The primary user here is the media notification which
needs to be notified of state and metadata updates
through media controller.

BUG= 892771 

Change-Id: I7aa343207d3eb2ffa713eb41272646c10e9e6784
Reviewed-on: https://chromium-review.googlesource.com/c/1298477
Commit-Queue: Becca Hughes <beccahughes@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Tommy Steimel <steimel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602958}
[modify] https://crrev.com/5f4f882c9fe6a1cd465941bd95bcf1db23a45ccd/services/media_session/audio_focus_manager.cc
[modify] https://crrev.com/5f4f882c9fe6a1cd465941bd95bcf1db23a45ccd/services/media_session/media_controller.cc
[modify] https://crrev.com/5f4f882c9fe6a1cd465941bd95bcf1db23a45ccd/services/media_session/media_controller.h
[modify] https://crrev.com/5f4f882c9fe6a1cd465941bd95bcf1db23a45ccd/services/media_session/media_controller_unittest.cc
[modify] https://crrev.com/5f4f882c9fe6a1cd465941bd95bcf1db23a45ccd/services/media_session/mock_media_session.cc
[modify] https://crrev.com/5f4f882c9fe6a1cd465941bd95bcf1db23a45ccd/services/media_session/mock_media_session.h
[modify] https://crrev.com/5f4f882c9fe6a1cd465941bd95bcf1db23a45ccd/services/media_session/public/cpp/test/test_media_controller.h
[modify] https://crrev.com/5f4f882c9fe6a1cd465941bd95bcf1db23a45ccd/services/media_session/public/mojom/media_controller.mojom

Comment 3 by bugdroid1@chromium.org, Dec 15

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3b92c3986795eed6c3e738306a0aca218897f58d

commit 3b92c3986795eed6c3e738306a0aca218897f58d
Author: Becca Hughes <beccahughes@chromium.org>
Date: Sat Dec 15 02:23:34 2018

[Audio Focus] Observer should use request state

The AudioFocusObserver should use AudioFocusRequestState
instead of separate parameters for OnFocusGained/Lost. This
was not the case before because AFRS was added after the
observer.

We need this to expose the request id to clients so they
can get a MediaController that will only control a specific
session.

BUG= 892771 

Change-Id: I4f6e2e60de6dbc82f779ffbfec3d91628208c42d
Reviewed-on: https://chromium-review.googlesource.com/c/1363684
Commit-Queue: Becca Hughes <beccahughes@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Tommy Steimel <steimel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616916}
[modify] https://crrev.com/3b92c3986795eed6c3e738306a0aca218897f58d/ash/media/media_notification_controller.h
[modify] https://crrev.com/3b92c3986795eed6c3e738306a0aca218897f58d/content/browser/media/media_internals_audio_focus_helper.cc
[modify] https://crrev.com/3b92c3986795eed6c3e738306a0aca218897f58d/content/browser/media/media_internals_audio_focus_helper.h
[modify] https://crrev.com/3b92c3986795eed6c3e738306a0aca218897f58d/services/media_session/audio_focus_manager.cc
[modify] https://crrev.com/3b92c3986795eed6c3e738306a0aca218897f58d/services/media_session/audio_focus_manager_unittest.cc
[modify] https://crrev.com/3b92c3986795eed6c3e738306a0aca218897f58d/services/media_session/public/cpp/test/audio_focus_test_util.cc
[modify] https://crrev.com/3b92c3986795eed6c3e738306a0aca218897f58d/services/media_session/public/cpp/test/audio_focus_test_util.h
[modify] https://crrev.com/3b92c3986795eed6c3e738306a0aca218897f58d/services/media_session/public/mojom/audio_focus.mojom

Comment 4 by bugdroid1@chromium.org, Dec 17

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/69512ecfd72dcc523eb53b371ddb48ebb5d9080c

commit 69512ecfd72dcc523eb53b371ddb48ebb5d9080c
Author: Becca Hughes <beccahughes@chromium.org>
Date: Mon Dec 17 15:10:01 2018

[Media Controller] Convert Stop to Mojo

Convert the existing Stop() method to Mojo and add
it to media controller. This will stop the underlying
media session.

BUG= 892771 

Change-Id: Ifb672c8456ad8e62e82af54441c9a09787dd882e
Reviewed-on: https://chromium-review.googlesource.com/c/1376105
Commit-Queue: Becca Hughes <beccahughes@chromium.org>
Reviewed-by: Tommy Steimel <steimel@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617114}
[modify] https://crrev.com/69512ecfd72dcc523eb53b371ddb48ebb5d9080c/ash/media/media_notification_controller.cc
[modify] https://crrev.com/69512ecfd72dcc523eb53b371ddb48ebb5d9080c/content/browser/media/session/media_session_impl.cc
[modify] https://crrev.com/69512ecfd72dcc523eb53b371ddb48ebb5d9080c/content/public/browser/media_session.h
[modify] https://crrev.com/69512ecfd72dcc523eb53b371ddb48ebb5d9080c/services/media_session/media_controller.cc
[modify] https://crrev.com/69512ecfd72dcc523eb53b371ddb48ebb5d9080c/services/media_session/media_controller.h
[modify] https://crrev.com/69512ecfd72dcc523eb53b371ddb48ebb5d9080c/services/media_session/media_controller_unittest.cc
[modify] https://crrev.com/69512ecfd72dcc523eb53b371ddb48ebb5d9080c/services/media_session/public/cpp/test/mock_media_session.cc
[modify] https://crrev.com/69512ecfd72dcc523eb53b371ddb48ebb5d9080c/services/media_session/public/cpp/test/mock_media_session.h
[modify] https://crrev.com/69512ecfd72dcc523eb53b371ddb48ebb5d9080c/services/media_session/public/cpp/test/test_media_controller.h
[modify] https://crrev.com/69512ecfd72dcc523eb53b371ddb48ebb5d9080c/services/media_session/public/mojom/media_controller.mojom
[modify] https://crrev.com/69512ecfd72dcc523eb53b371ddb48ebb5d9080c/services/media_session/public/mojom/media_session.mojom

Comment 5 by bugdroid1@chromium.org, Dec 19

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/782cf3c508857c918d7dca3a4838b535ebfef779

commit 782cf3c508857c918d7dca3a4838b535ebfef779
Author: Becca Hughes <beccahughes@chromium.org>
Date: Wed Dec 19 20:29:21 2018

[Media Controller] Add support for a bound controller

Adds a MediaControllerManager interface that supports
creating a MediaController that is bound to a single
media session.

BUG= 892771 

Change-Id: I060d9859c4896ad556fdd43f9cd7c2102720949a
Reviewed-on: https://chromium-review.googlesource.com/c/1363859
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Tommy Steimel <steimel@chromium.org>
Commit-Queue: Becca Hughes <beccahughes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617931}
[modify] https://crrev.com/782cf3c508857c918d7dca3a4838b535ebfef779/ash/media/media_notification_controller.cc
[modify] https://crrev.com/782cf3c508857c918d7dca3a4838b535ebfef779/ash/media_controller.cc
[modify] https://crrev.com/782cf3c508857c918d7dca3a4838b535ebfef779/services/media_session/audio_focus_manager.cc
[modify] https://crrev.com/782cf3c508857c918d7dca3a4838b535ebfef779/services/media_session/audio_focus_manager.h
[modify] https://crrev.com/782cf3c508857c918d7dca3a4838b535ebfef779/services/media_session/manifest.json
[modify] https://crrev.com/782cf3c508857c918d7dca3a4838b535ebfef779/services/media_session/media_controller_unittest.cc
[modify] https://crrev.com/782cf3c508857c918d7dca3a4838b535ebfef779/services/media_session/media_session_service.cc
[modify] https://crrev.com/782cf3c508857c918d7dca3a4838b535ebfef779/services/media_session/public/mojom/media_controller.mojom

Comment 6 by bugdroid1@chromium.org, Dec 20

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ff18abd64baa0565175996ee571466d00b6c2c5e

commit ff18abd64baa0565175996ee571466d00b6c2c5e
Author: Becca Hughes <beccahughes@chromium.org>
Date: Thu Dec 20 11:43:18 2018

[Media Session] Add actions to observer

Adds support for listen to supported action changes
through MediaSessionObserver. This will be used
to notify UI surfaces of which playback control
actions a media session supports.

BUG= 892771 

Change-Id: Ibb37f1f6fbfa6c8c2dd8e3e2382b857c958f13f3
Reviewed-on: https://chromium-review.googlesource.com/c/1379396
Commit-Queue: Becca Hughes <beccahughes@chromium.org>
Reviewed-by: Tommy Steimel <steimel@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618171}
[modify] https://crrev.com/ff18abd64baa0565175996ee571466d00b6c2c5e/ash/media/media_notification_controller.h
[modify] https://crrev.com/ff18abd64baa0565175996ee571466d00b6c2c5e/services/media_session/media_controller.cc
[modify] https://crrev.com/ff18abd64baa0565175996ee571466d00b6c2c5e/services/media_session/media_controller.h
[modify] https://crrev.com/ff18abd64baa0565175996ee571466d00b6c2c5e/services/media_session/media_controller_unittest.cc
[modify] https://crrev.com/ff18abd64baa0565175996ee571466d00b6c2c5e/services/media_session/public/cpp/test/mock_media_session.cc
[modify] https://crrev.com/ff18abd64baa0565175996ee571466d00b6c2c5e/services/media_session/public/cpp/test/mock_media_session.h
[modify] https://crrev.com/ff18abd64baa0565175996ee571466d00b6c2c5e/services/media_session/public/mojom/media_session.mojom

Comment 7 by bugdroid1@chromium.org, Jan 3

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/58586698fba5f0a41c474ac63245766b5fff3ce8

commit 58586698fba5f0a41c474ac63245766b5fff3ce8
Author: Becca Hughes <beccahughes@chromium.org>
Date: Thu Jan 03 20:25:41 2019

[Media Session] Notify mojo observer from content

Notifies the mojo observer from content::MediaSessionImpl
when the supported actions change.

BUG= 892771 

Change-Id: Iea1edf130b415d44ab9f32f7b6506d53f4558280
Reviewed-on: https://chromium-review.googlesource.com/c/1379917
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Commit-Queue: Becca Hughes <beccahughes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619737}
[modify] https://crrev.com/58586698fba5f0a41c474ac63245766b5fff3ce8/content/browser/media/session/media_session_impl.cc
[modify] https://crrev.com/58586698fba5f0a41c474ac63245766b5fff3ce8/content/browser/media/session/media_session_impl_service_routing_unittest.cc

Comment 8 by bugdroid, Jan 29

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/68fc110eb32b122e9ef455e11ba075ebf551bedd

commit 68fc110eb32b122e9ef455e11ba075ebf551bedd
Author: Becca Hughes <beccahughes@chromium.org>
Date: Tue Jan 29 03:32:57 2019

[Media Controller] Split observer out

At the moment mojom::MediaController uses the media
session observer. This splits it so it has its own
observer. This allows use to have a nullable info
parameter passed to MediaSessionInfo which can tell
observers that we are not bound to any media session.

BUG= 892771 

Change-Id: Ifcb1835e3901c82221c7daad1b0036caadd10288
Reviewed-on: https://chromium-review.googlesource.com/c/1422837
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Tommy Steimel <steimel@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Becca Hughes <beccahughes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#626876}
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/ash/media/media_controller.cc
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/ash/media/media_controller.h
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/ash/media/media_notification_item.cc
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/ash/media/media_notification_item.h
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/content/browser/media/hardware_key_media_controller.cc
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/content/browser/media/hardware_key_media_controller.h
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/services/media_session/media_controller.cc
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/services/media_session/media_controller.h
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/services/media_session/media_controller_unittest.cc
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/services/media_session/public/cpp/media_metadata.cc
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/services/media_session/public/cpp/media_metadata.h
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/services/media_session/public/cpp/test/mock_media_session.cc
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/services/media_session/public/cpp/test/mock_media_session.h
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/services/media_session/public/cpp/test/test_media_controller.cc
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/services/media_session/public/cpp/test/test_media_controller.h
[modify] https://crrev.com/68fc110eb32b122e9ef455e11ba075ebf551bedd/services/media_session/public/mojom/media_controller.mojom

Comment 9 by beccahughes@chromium.org, Jan 30

Status: Fixed (was: Started)

Comment 10 by bugdroid, Feb 1

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/02b326aaa36701d7136e6ba790afd6239cbb63e9

commit 02b326aaa36701d7136e6ba790afd6239cbb63e9
Author: Becca Hughes <beccahughes@chromium.org>
Date: Fri Feb 01 01:40:28 2019

[Media Session] Add SpecMediaMetadata

This is a follow up from https://crrev.com/c/1334661
which splits out spec metadata between Blink/Content
with its own SpecMediaMetadata.

BUG= 892771 

Change-Id: I48825f4c97e526888d5a9840cdcc129e2eed11e9
Reviewed-on: https://chromium-review.googlesource.com/c/1423400
Commit-Queue: Becca Hughes <beccahughes@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#628192}
[modify] https://crrev.com/02b326aaa36701d7136e6ba790afd6239cbb63e9/content/browser/media/session/media_metadata_sanitizer.cc
[modify] https://crrev.com/02b326aaa36701d7136e6ba790afd6239cbb63e9/content/browser/media/session/media_metadata_sanitizer.h
[modify] https://crrev.com/02b326aaa36701d7136e6ba790afd6239cbb63e9/content/browser/media/session/media_session_impl_browsertest.cc
[modify] https://crrev.com/02b326aaa36701d7136e6ba790afd6239cbb63e9/content/browser/media/session/media_session_impl_service_routing_unittest.cc
[modify] https://crrev.com/02b326aaa36701d7136e6ba790afd6239cbb63e9/content/browser/media/session/media_session_service_impl.cc
[modify] https://crrev.com/02b326aaa36701d7136e6ba790afd6239cbb63e9/content/browser/media/session/media_session_service_impl.h
[modify] https://crrev.com/02b326aaa36701d7136e6ba790afd6239cbb63e9/third_party/blink/public/platform/modules/mediasession/media_session.mojom
[modify] https://crrev.com/02b326aaa36701d7136e6ba790afd6239cbb63e9/third_party/blink/renderer/modules/mediasession/media_metadata_sanitizer.cc
[modify] https://crrev.com/02b326aaa36701d7136e6ba790afd6239cbb63e9/third_party/blink/renderer/modules/mediasession/media_metadata_sanitizer.h

Sign in to add a comment