New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 670319 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Android MediaRouter only (left Chro...
Closed: Dec 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug



Sign in to add a comment

Improve MediaSession routing

Project Member Reported by zqzh...@chromium.org, Dec 1 2016

Issue description

We should update the implementation w.r.t. latest discussions on https://github.com/WICG/mediasession/issues/136
 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 5 2016

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

commit ddc545cbe5a17717fbd3193c21ae2a63dc92ba40
Author: zqzhang <zqzhang@chromium.org>
Date: Mon Dec 05 12:18:56 2016

Allow MediaSession in iframes to be routed

This CL allows MediaSession in iframes to be routed, as per spec change:
https://github.com/WICG/mediasession/pull/149

To achieve this goal, class MediaSessionServiceRouter is added for selecting
which MediaSession object to route.

The current MediaSessionService routing strategy is:

* If the top-level frame uses MediaSession API, always select the
  top-level session.
* If the top-level frame has no MediaSession, select one of an
  audio-producing frame, and route its session (or null if the frame
  does not use MediaSession API).

CL explanation:
https://docs.google.com/a/google.com/document/d/1Ht6DxjOcfBctfRT3_wOkwGoNUaJY-Q8K18MV3xdAh_8/edit?usp=sharing

BUG= 670319 

Review-Url: https://codereview.chromium.org/2526533002
Cr-Commit-Position: refs/heads/master@{#436266}

[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/audio_focus_manager_unittest.cc
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/media_session_android.cc
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/media_session_android.h
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/media_session_controller.cc
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/media_session_controller.h
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/media_session_impl.cc
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/media_session_impl.h
[add] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/media_session_impl_service_routing_unittest.cc
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/media_session_player_observer.h
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/media_session_service_impl.cc
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/media_session_service_impl.h
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/mock_media_session_player_observer.cc
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/mock_media_session_player_observer.h
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/pepper_player_delegate.cc
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/browser/media/session/pepper_player_delegate.h
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/public/android/java/src/org/chromium/content/browser/MediaSessionImpl.java
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/public/android/java/src/org/chromium/content_public/browser/MediaSessionObserver.java
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/public/browser/media_session_observer.h
[modify] https://crrev.com/ddc545cbe5a17717fbd3193c21ae2a63dc92ba40/content/test/BUILD.gn

Status: Fixed (was: Started)
Project Member

Comment 3 by bugdroid1@chromium.org, Dec 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7f5596e8dcfd88ba7700393dd937eafb9ea39167

commit 7f5596e8dcfd88ba7700393dd937eafb9ea39167
Author: zqzhang <zqzhang@chromium.org>
Date: Mon Dec 19 16:27:47 2016

[MediaSession] A fix for MediaSessionService routing

Previously, MediaSessionImpl uses the metadata and controls to determine
whether a page uses the MediaSession API. However there comes an issues
that we need to update the routed MediaSession every time when a service
is created/destroyed or its metadata/controls changed, which is a lot of
maintainance work.

This CL simplifies the MediaSessionService routing strategy. It only
checks whether a service is created for a given frame. The rationale is
that a MediaSessionService is created when and only when anything passes
through mojo, which is enough for indicating whether a frame uses
MediaSession API.

BUG= 670319 

Review-Url: https://codereview.chromium.org/2585243002
Cr-Commit-Position: refs/heads/master@{#439488}

[modify] https://crrev.com/7f5596e8dcfd88ba7700393dd937eafb9ea39167/content/browser/media/session/media_session_impl.cc
[modify] https://crrev.com/7f5596e8dcfd88ba7700393dd937eafb9ea39167/content/browser/media/session/media_session_impl_browsertest.cc
[modify] https://crrev.com/7f5596e8dcfd88ba7700393dd937eafb9ea39167/content/browser/media/session/media_session_impl_service_routing_unittest.cc

Sign in to add a comment