Currently all the MRPs are in the MediaRouter component extension. The MR Mojo implementation only supports one MRP, which is the MRPManager in the extension. We want to be able to support multiple MRPs that do not depend on the extension.
Doc: https://docs.google.com/document/d/1bk5SzFVU2zq_ATgfa56VYecklxN1aFYDclgAN53lr0Q/edit
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3c60eb88568d7fa20a9baae9555faf454fa903f5 commit 3c60eb88568d7fa20a9baae9555faf454fa903f5 Author: Takumi Fujimoto <takumif@chromium.org> Date: Thu Nov 02 19:51:30 2017 [Media Router] Add in-browser support for multiple MRPs This CL makes changes to MediaRouterMojoImpl and MediaRouterDesktop for them to support multiple MediaRouteProviders (including in-browser MRPs) over Mojo. - Make MRMojoImpl hold Mojo pointers to multiple MRPs - Allow MRMojoImpl::BindToMojoRequest() to be called by multiple MRPs - Store MRP-to-MediaSink mappings in MediaSinksQuery - Store MRP-to-MediaRoute mappings in MediaRoutesQuery - Create ProviderSinkAvailability internal class for keeping track of sink availability - Changes to MediaRouter Mojo interface to specify the MRP name in some methods This CL doesn't add support for multiple MRPs for JoinRoute(), since that requires mapping from presentation ID to MRP, and currently MRMojoImpl has no way of knowing when a presentation ID expires. Bug: 761493 Change-Id: Idba15505fe2dbd0b089b77fa9a7a4af20609faa6 Reviewed-on: https://chromium-review.googlesource.com/673705 Commit-Queue: Takumi Fujimoto <takumif@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Derek Cheng <imcheng@chromium.org> Cr-Commit-Position: refs/heads/master@{#513586} [modify] https://crrev.com/3c60eb88568d7fa20a9baae9555faf454fa903f5/chrome/browser/media/router/mojo/media_router_desktop.cc [modify] https://crrev.com/3c60eb88568d7fa20a9baae9555faf454fa903f5/chrome/browser/media/router/mojo/media_router_desktop.h [modify] https://crrev.com/3c60eb88568d7fa20a9baae9555faf454fa903f5/chrome/browser/media/router/mojo/media_router_desktop_unittest.cc [modify] https://crrev.com/3c60eb88568d7fa20a9baae9555faf454fa903f5/chrome/browser/media/router/mojo/media_router_mojo_impl.cc [modify] https://crrev.com/3c60eb88568d7fa20a9baae9555faf454fa903f5/chrome/browser/media/router/mojo/media_router_mojo_impl.h [modify] https://crrev.com/3c60eb88568d7fa20a9baae9555faf454fa903f5/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc [modify] https://crrev.com/3c60eb88568d7fa20a9baae9555faf454fa903f5/chrome/browser/media/router/mojo/media_router_mojo_test.cc [modify] https://crrev.com/3c60eb88568d7fa20a9baae9555faf454fa903f5/chrome/browser/media/router/mojo/media_router_mojo_test.h [modify] https://crrev.com/3c60eb88568d7fa20a9baae9555faf454fa903f5/chrome/common/media_router/mojo/media_router.mojom [modify] https://crrev.com/3c60eb88568d7fa20a9baae9555faf454fa903f5/chrome/renderer/resources/extensions/media_router_bindings.js
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f509215b691cd8d082cc4f5e9d0b3ef133e34eb8 commit f509215b691cd8d082cc4f5e9d0b3ef133e34eb8 Author: Takumi Fujimoto <takumif@chromium.org> Date: Tue Nov 14 15:35:41 2017 [Media Router] Add presentation_id attribute to MediaRoute to enable MRP lookup MediaRouterMojoImpl::JoinRoute() requires that we find the MediaRouteProvider associated with a presentation ID. By associating each MediaRoute with a presentation ID, we can look up the associated MRP. The change to add presentation ID to MediaRoute on the component extension side has landed as cl/173960916. Bug: 779155 , 761493 Change-Id: I4bf7d6fb3a832ef4720bfc1952198fd2036350b2 Reviewed-on: https://chromium-review.googlesource.com/757796 Reviewed-by: Derek Cheng <imcheng@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Commit-Queue: Takumi Fujimoto <takumif@chromium.org> Cr-Commit-Position: refs/heads/master@{#516307} [modify] https://crrev.com/f509215b691cd8d082cc4f5e9d0b3ef133e34eb8/chrome/browser/media/router/mojo/media_router_desktop.cc [modify] https://crrev.com/f509215b691cd8d082cc4f5e9d0b3ef133e34eb8/chrome/browser/media/router/mojo/media_router_desktop.h [modify] https://crrev.com/f509215b691cd8d082cc4f5e9d0b3ef133e34eb8/chrome/browser/media/router/mojo/media_router_mojo_impl.cc [modify] https://crrev.com/f509215b691cd8d082cc4f5e9d0b3ef133e34eb8/chrome/browser/media/router/mojo/media_router_mojo_impl.h [modify] https://crrev.com/f509215b691cd8d082cc4f5e9d0b3ef133e34eb8/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc [modify] https://crrev.com/f509215b691cd8d082cc4f5e9d0b3ef133e34eb8/chrome/browser/media/router/mojo/media_router_mojo_test.cc [modify] https://crrev.com/f509215b691cd8d082cc4f5e9d0b3ef133e34eb8/chrome/common/media_router/media_route.h [modify] https://crrev.com/f509215b691cd8d082cc4f5e9d0b3ef133e34eb8/chrome/common/media_router/mojo/media_router.mojom [modify] https://crrev.com/f509215b691cd8d082cc4f5e9d0b3ef133e34eb8/chrome/common/media_router/mojo/media_router_struct_traits.cc [modify] https://crrev.com/f509215b691cd8d082cc4f5e9d0b3ef133e34eb8/chrome/common/media_router/mojo/media_router_struct_traits.h [modify] https://crrev.com/f509215b691cd8d082cc4f5e9d0b3ef133e34eb8/chrome/renderer/resources/extensions/media_router_bindings.js
Comment 1 by taku...@chromium.org
, Sep 6 2017