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

Issue 684635 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 684642



Sign in to add a comment

[Media Router] Implement support for media controllers in Media Router

Project Member Reported by imch...@chromium.org, Jan 24 2017

Issue description

This includes:
- MediaRouteController
- MediaStatus
 
Blocking: 684642

Comment 2 by sko...@chromium.org, Jan 26 2017

Status: Assigned (was: Untriaged)
Cc: imch...@chromium.org
Owner: taku...@chromium.org
Project Member

Comment 4 by bugdroid1@chromium.org, Mar 22 2017

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

commit 67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7
Author: takumif <takumif@chromium.org>
Date: Wed Mar 22 23:14:53 2017

[Media Router] Custom Controls 1 - Add MediaStatus, MediaRouteController, and
mojo interfaces

This CL adds MediaRouteController that will forward media controller commands
from the custom controls WebUI to the Media Router component extension, and
will receive MediaStatus updates from the extension which it then will forward
to its Observer(s) (= to the WebUI).

This patch includes mojo interfaces/structs that were first reviewed in this
patch [1]. The MediaController mojo interface will be implemented in the
component extension (not a part of Chromium), and will receive commands from
MediaRouteController. MediaRouteController implements the MediaStatusObserver
mojo interface and receives updates from the extension. Typemapping between
media_router::mojom::MediaStatus and media_router::MediaStatus is also
included in this CL.

Changes in extensions/renderer/ are for exposing the new mojo interfaces to
the component extension.

The Chromium-side implementation of custom controls redesign will be done in
these patches:
1. Mojo/MediaStatus/MediaRouteController:     this patch
2. MediaRouter::GetRouteController():         http://crrev/2728543009
3. MRUI/MRWebUIMessageHandler:                http://crrev/2731033002
4. Custom controls WebUI:                     http://crrev/2725503002

Custom controls redesign design doc:
https://docs.google.com/document/d/1_8QxdFIiiJX39jR1Wi1Zn9FW-Y66EMvX1GmQZvjN4G0/edit

[1] https://codereview.chromium.org/2674363002/

BUG= 684636 , 684635 

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

[modify] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/browser/media/router/BUILD.gn
[add] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/browser/media/router/media_status.cc
[add] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/browser/media/router/media_status.h
[add] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/browser/media/router/mojo/media_controller.mojom
[add] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/browser/media/router/mojo/media_route_controller.cc
[add] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/browser/media/router/mojo/media_route_controller.h
[add] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/browser/media/router/mojo/media_route_controller_unittest.cc
[add] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/browser/media/router/mojo/media_status.mojom
[add] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/browser/media/router/mojo/media_status.typemap
[add] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/browser/media/router/mojo/media_status_struct_traits.cc
[add] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/browser/media/router/mojo/media_status_struct_traits.h
[modify] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/browser/media/router/mojo/typemaps.gni
[modify] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/chrome/test/BUILD.gn
[modify] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/extensions/renderer/dispatcher.cc
[modify] https://crrev.com/67a8f64435d0a1c3ae9d04e33f965f885b9cb8b7/extensions/renderer/resources/extensions_renderer_resources.grd

Description: Show this description
Status: Fixed (was: Assigned)
Project Member

Comment 7 by bugdroid1@chromium.org, Apr 18 2017

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

commit 3c8ebf96c1e2432763cac1a6fa97cf5217a8728c
Author: takumif <takumif@chromium.org>
Date: Tue Apr 18 05:29:25 2017

[Media Router] Custom Controls 2 - add MediaRouter::GetRouteController()

This CL adds GetRouteController() to the MediaRouter API. The method returns a
scoped_refptr to a MediaRouteController that is connected to the MediaController
in the component extension.

MediaRouterMojoImpl will keep a map of raw pointers to MediaRouteControllers
that are valid and are owned by their observers. MediaRouterMojoImpl is notified
when a controller is invalidated, so that it can be removed from the map.

GetRouteController() will be called in the next CL by MediaRouterUI for
instantiating an observer for MediaRouteController.

We also add two methods to the MediaRouteProvider mojo interface that are called
by GetRouteController():
- CreateMediaRouteController(): called for creating the extension-side
  MediaController.
- SetMediaRouteStatusObserver(): called for setting the browser-side
  MediaRouteController as a status observer.

The Chromium-side implementation of custom controls will be done in these
patches:
1. Mojo/MediaStatus/MediaRouteController:     http://crrev/2727123002
2. MediaRouter::GetRouteController():         this patch
3. MRUI/MRWebUIMessageHandler:                http://crrev/2731033002
4. Custom controls WebUI:                     http://crrev/2725503002

Custom controls design doc:
https://docs.google.com/document/d/1_8QxdFIiiJX39jR1Wi1Zn9FW-Y66EMvX1GmQZvjN4G0/edit

BUG= 684635 

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

[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/media_router.h
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/media_router_base.cc
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/media_router_base.h
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/mock_media_router.h
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/mojo/media_route_controller.cc
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/mojo/media_route_controller.h
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/mojo/media_route_controller_unittest.cc
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/mojo/media_router.mojom
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/mojo/media_router_mojo_impl.cc
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/mojo/media_router_mojo_impl.h
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/mojo/media_router_mojo_metrics.h
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/mojo/media_router_mojo_test.cc
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/chrome/browser/media/router/mojo/media_router_mojo_test.h
[modify] https://crrev.com/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c/tools/metrics/histograms/histograms.xml

Sign in to add a comment