Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(453)

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

Created:
3 years, 9 months ago by takumif
Modified:
3 years, 8 months ago
CC:
Aaron Boodman, abarth-chromium, chfremer+watch_chromium.org, chromium-apps-reviews_chromium.org, chromium-reviews, darin (slow to review), extensions-reviews_chromium.org, feature-media-reviews_chromium.org, mcasas+watch+vc_chromium.org, media-router+watch_chromium.org, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, yzshen+watch_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

[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} Committed: https://chromium.googlesource.com/chromium/src/+/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c

Patch Set 1 : . #

Patch Set 2 : More tests #

Total comments: 34

Patch Set 3 : Address Daniel's and Derek's comments #

Total comments: 24

Patch Set 4 : Address Mark's comments #

Total comments: 10

Patch Set 5 : Address Derek's comments #

Total comments: 20

Patch Set 6 : Rebase #

Patch Set 7 : Address Derek's comments #

Total comments: 11

Patch Set 8 : Address Derek's comments #

Total comments: 24

Patch Set 9 : Address Mark's comments #

Patch Set 10 : Don't create controller if binding is invalid #

Total comments: 11

Patch Set 11 : Address Daniel's comments #

Patch Set 12 : Combine CreateMRController and SetMRStatusObserver #

Unified diffs Side-by-side diffs Delta from patch set Stats (+592 lines, -116 lines) Patch
M chrome/browser/media/router/media_router.h View 1 2 3 4 5 6 7 8 9 3 chunks +13 lines, -0 lines 0 comments Download
M chrome/browser/media/router/media_router_base.h View 1 2 3 4 5 6 7 8 3 chunks +10 lines, -0 lines 0 comments Download
M chrome/browser/media/router/media_router_base.cc View 1 2 3 4 5 6 7 8 4 chunks +17 lines, -0 lines 0 comments Download
M chrome/browser/media/router/mock_media_router.h View 1 2 3 4 5 3 chunks +7 lines, -0 lines 0 comments Download
M chrome/browser/media/router/mojo/media_route_controller.h View 1 2 3 4 5 6 7 8 5 chunks +33 lines, -12 lines 0 comments Download
M chrome/browser/media/router/mojo/media_route_controller.cc View 1 2 3 4 5 6 7 8 3 chunks +48 lines, -12 lines 0 comments Download
M chrome/browser/media/router/mojo/media_route_controller_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +47 lines, -25 lines 0 comments Download
M chrome/browser/media/router/mojo/media_router.mojom View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +20 lines, -2 lines 0 comments Download
M chrome/browser/media/router/mojo/media_router_mojo_impl.h View 1 2 3 4 5 6 7 8 9 10 11 7 chunks +31 lines, -3 lines 0 comments Download
M chrome/browser/media/router/mojo/media_router_mojo_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 20 chunks +122 lines, -47 lines 0 comments Download
M chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 6 chunks +175 lines, -12 lines 0 comments Download
M chrome/browser/media/router/mojo/media_router_mojo_metrics.h View 1 2 3 4 5 6 7 1 chunk +2 lines, -1 line 0 comments Download
M chrome/browser/media/router/mojo/media_router_mojo_test.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +44 lines, -2 lines 0 comments Download
M chrome/browser/media/router/mojo/media_router_mojo_test.cc View 1 chunk +22 lines, -0 lines 0 comments Download
M tools/metrics/histograms/histograms.xml View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 66 (37 generated)
takumif
Please take a look at: dcheng: media_router.mojom imcheng: overall mfoltz: overall Thanks!
3 years, 9 months ago (2017-03-24 18:53:27 UTC) #11
dcheng
https://codereview.chromium.org/2728543009/diff/100001/chrome/browser/media/router/mojo/media_route_controller.cc File chrome/browser/media/router/mojo/media_route_controller.cc (right): https://codereview.chromium.org/2728543009/diff/100001/chrome/browser/media/router/mojo/media_route_controller.cc#newcode38 chrome/browser/media/router/mojo/media_route_controller.cc:38: media_router_(media_router), Shall we DCHECK(media_router)? https://codereview.chromium.org/2728543009/diff/100001/chrome/browser/media/router/mojo/media_router.mojom File chrome/browser/media/router/mojo/media_router.mojom (right): https://codereview.chromium.org/2728543009/diff/100001/chrome/browser/media/router/mojo/media_router.mojom#newcode378 ...
3 years, 9 months ago (2017-03-27 22:15:26 UTC) #12
imcheng
Looks good overall. I have some suggestions in how to make the API a bit ...
3 years, 9 months ago (2017-03-28 01:18:38 UTC) #13
takumif
https://codereview.chromium.org/2728543009/diff/100001/chrome/browser/media/router/media_router.h File chrome/browser/media/router/media_router.h (right): https://codereview.chromium.org/2728543009/diff/100001/chrome/browser/media/router/media_router.h#newcode193 chrome/browser/media/router/media_router.h:193: // Returns a nullptr if no MediaRoute exists for ...
3 years, 8 months ago (2017-03-29 02:34:50 UTC) #15
mark a. foltz
https://codereview.chromium.org/2728543009/diff/100001/chrome/browser/media/router/media_router.h File chrome/browser/media/router/media_router.h (right): https://codereview.chromium.org/2728543009/diff/100001/chrome/browser/media/router/media_router.h#newcode195 chrome/browser/media/router/media_router.h:195: // or if on Android. or just "if the ...
3 years, 8 months ago (2017-03-30 23:03:28 UTC) #16
imcheng
https://codereview.chromium.org/2728543009/diff/100001/chrome/browser/media/router/mojo/media_route_controller.cc File chrome/browser/media/router/mojo/media_route_controller.cc (right): https://codereview.chromium.org/2728543009/diff/100001/chrome/browser/media/router/mojo/media_route_controller.cc#newcode42 chrome/browser/media/router/mojo/media_route_controller.cc:42: base::Bind(&MediaRouteController::Invalidate, base::Unretained(this))); On 2017/03/29 02:34:49, takumif wrote: > On ...
3 years, 8 months ago (2017-03-31 01:30:25 UTC) #17
takumif
https://codereview.chromium.org/2728543009/diff/140001/chrome/browser/media/router/media_router.h File chrome/browser/media/router/media_router.h (right): https://codereview.chromium.org/2728543009/diff/140001/chrome/browser/media/router/media_router.h#newcode194 chrome/browser/media/router/media_router.h:194: // connection with the extension-side controller could not be ...
3 years, 8 months ago (2017-04-04 03:19:51 UTC) #19
imcheng
https://codereview.chromium.org/2728543009/diff/180001/chrome/browser/media/router/mojo/media_route_controller.cc File chrome/browser/media/router/mojo/media_route_controller.cc (right): https://codereview.chromium.org/2728543009/diff/180001/chrome/browser/media/router/mojo/media_route_controller.cc#newcode76 chrome/browser/media/router/mojo/media_route_controller.cc:76: is_valid_ = false; You could just call OnRouteInvalid here. ...
3 years, 8 months ago (2017-04-05 07:18:02 UTC) #20
takumif
https://codereview.chromium.org/2728543009/diff/180001/chrome/browser/media/router/mojo/media_route_controller.cc File chrome/browser/media/router/mojo/media_route_controller.cc (right): https://codereview.chromium.org/2728543009/diff/180001/chrome/browser/media/router/mojo/media_route_controller.cc#newcode76 chrome/browser/media/router/mojo/media_route_controller.cc:76: is_valid_ = false; On 2017/04/05 07:18:02, imcheng wrote: > ...
3 years, 8 months ago (2017-04-06 19:38:33 UTC) #23
imcheng
Looking much better. Thanks for converting to OnceClosure in MRMojoImpl. https://codereview.chromium.org/2728543009/diff/180001/chrome/browser/media/router/mojo/media_route_controller.cc File chrome/browser/media/router/mojo/media_route_controller.cc (right): https://codereview.chromium.org/2728543009/diff/180001/chrome/browser/media/router/mojo/media_route_controller.cc#newcode92 ...
3 years, 8 months ago (2017-04-06 21:14:05 UTC) #24
takumif
https://codereview.chromium.org/2728543009/diff/240001/chrome/browser/media/router/mojo/media_route_controller.cc File chrome/browser/media/router/mojo/media_route_controller.cc (right): https://codereview.chromium.org/2728543009/diff/240001/chrome/browser/media/router/mojo/media_route_controller.cc#newcode71 chrome/browser/media/router/mojo/media_route_controller.cc:71: if (!is_valid_) On 2017/04/06 21:14:04, imcheng wrote: > Maybe ...
3 years, 8 months ago (2017-04-07 21:07:56 UTC) #25
imcheng
A couple more thoughts. Looks good otherwise. https://codereview.chromium.org/2728543009/diff/280001/chrome/browser/media/router/mojo/media_router_mojo_impl.cc File chrome/browser/media/router/mojo/media_router_mojo_impl.cc (right): https://codereview.chromium.org/2728543009/diff/280001/chrome/browser/media/router/mojo/media_router_mojo_impl.cc#newcode421 chrome/browser/media/router/mojo/media_router_mojo_impl.cc:421: CREATE_MEDIA_ROUTE_CONTROLLER_AND_SET_OBSERVER); Maybe ...
3 years, 8 months ago (2017-04-07 22:45:48 UTC) #26
takumif
https://codereview.chromium.org/2728543009/diff/280001/chrome/browser/media/router/mojo/media_router_mojo_impl.cc File chrome/browser/media/router/mojo/media_router_mojo_impl.cc (right): https://codereview.chromium.org/2728543009/diff/280001/chrome/browser/media/router/mojo/media_router_mojo_impl.cc#newcode421 chrome/browser/media/router/mojo/media_router_mojo_impl.cc:421: CREATE_MEDIA_ROUTE_CONTROLLER_AND_SET_OBSERVER); On 2017/04/07 22:45:47, imcheng wrote: > Maybe just ...
3 years, 8 months ago (2017-04-11 04:08:37 UTC) #28
mark a. foltz
LGTM % some wordsmithing suggestions you can take or leave. Overall this looks nice and ...
3 years, 8 months ago (2017-04-11 19:43:20 UTC) #29
imcheng
lgtm after Mark's comments are addressed
3 years, 8 months ago (2017-04-12 00:49:29 UTC) #30
takumif
+holte@ for histograms.xml Please take a look, thanks! https://codereview.chromium.org/2728543009/diff/180001/chrome/browser/media/router/mojo/media_route_controller.cc File chrome/browser/media/router/mojo/media_route_controller.cc (right): https://codereview.chromium.org/2728543009/diff/180001/chrome/browser/media/router/mojo/media_route_controller.cc#newcode92 chrome/browser/media/router/mojo/media_route_controller.cc:92: DCHECK(!binding_.is_bound()); ...
3 years, 8 months ago (2017-04-12 23:11:36 UTC) #31
takumif
(forgot to add to reviewers last time) +holte@ for histograms.xml Please take a look, thanks!
3 years, 8 months ago (2017-04-12 23:12:23 UTC) #33
Steven Holte
histograms lgtm
3 years, 8 months ago (2017-04-13 22:41:12 UTC) #38
dcheng
Sorry for the slow review. https://codereview.chromium.org/2728543009/diff/320001/chrome/browser/media/router/mojo/media_route_controller_unittest.cc File chrome/browser/media/router/mojo/media_route_controller_unittest.cc (right): https://codereview.chromium.org/2728543009/diff/320001/chrome/browser/media/router/mojo/media_route_controller_unittest.cc#newcode39 chrome/browser/media/router/mojo/media_route_controller_unittest.cc:39: new MediaRouteController(kRouteId, std::move(media_controller_ptr), Nit: ...
3 years, 8 months ago (2017-04-14 05:30:08 UTC) #43
takumif
https://codereview.chromium.org/2728543009/diff/320001/chrome/browser/media/router/mojo/media_route_controller_unittest.cc File chrome/browser/media/router/mojo/media_route_controller_unittest.cc (right): https://codereview.chromium.org/2728543009/diff/320001/chrome/browser/media/router/mojo/media_route_controller_unittest.cc#newcode39 chrome/browser/media/router/mojo/media_route_controller_unittest.cc:39: new MediaRouteController(kRouteId, std::move(media_controller_ptr), On 2017/04/14 05:30:07, dcheng wrote: > ...
3 years, 8 months ago (2017-04-14 18:43:01 UTC) #46
dcheng
https://codereview.chromium.org/2728543009/diff/360001/chrome/browser/media/router/mojo/media_route_controller_unittest.cc File chrome/browser/media/router/mojo/media_route_controller_unittest.cc (right): https://codereview.chromium.org/2728543009/diff/360001/chrome/browser/media/router/mojo/media_route_controller_unittest.cc#newcode102 chrome/browser/media/router/mojo/media_route_controller_unittest.cc:102: base::RunLoop run_loop2; On 2017/04/14 18:42:58, takumif wrote: > On ...
3 years, 8 months ago (2017-04-14 19:25:26 UTC) #47
dcheng
https://codereview.chromium.org/2728543009/diff/360001/chrome/browser/media/router/mojo/media_route_controller_unittest.cc File chrome/browser/media/router/mojo/media_route_controller_unittest.cc (right): https://codereview.chromium.org/2728543009/diff/360001/chrome/browser/media/router/mojo/media_route_controller_unittest.cc#newcode102 chrome/browser/media/router/mojo/media_route_controller_unittest.cc:102: base::RunLoop run_loop2; On 2017/04/14 19:25:25, dcheng wrote: > On ...
3 years, 8 months ago (2017-04-14 19:30:04 UTC) #48
imcheng
dcheng@ - we have already discussed this API in a previous patch and also in ...
3 years, 8 months ago (2017-04-17 18:27:18 UTC) #51
dcheng
On 2017/04/17 18:27:18, imcheng wrote: > dcheng@ - we have already discussed this API in ...
3 years, 8 months ago (2017-04-17 18:34:33 UTC) #52
takumif
I've combined CreateMediaRouteController() and SetMediaRouteStatusObserver(). Please take a look, thanks!
3 years, 8 months ago (2017-04-17 22:53:08 UTC) #54
dcheng
LGTM
3 years, 8 months ago (2017-04-18 04:49:31 UTC) #59
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2728543009/420001
3 years, 8 months ago (2017-04-18 05:25:06 UTC) #62
commit-bot: I haz the power
Committed patchset #12 (id:420001) as https://chromium.googlesource.com/chromium/src/+/3c8ebf96c1e2432763cac1a6fa97cf5217a8728c
3 years, 8 months ago (2017-04-18 05:29:43 UTC) #65
mark a. foltz
3 years, 8 months ago (2017-04-18 16:50:06 UTC) #66
Message was sent while issue was closed.
LGTM with new API.

Powered by Google App Engine
This is Rietveld 408576698