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

Issue 646170 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 3
Type: Feature

Blocking:
issue 646171



Sign in to add a comment

Allow loading MR component extension in Chromium with a command line flag

Project Member Reported by amp@chromium.org, Sep 12 2016

Issue description

Currently it is only possible to use the MR component extension in Chrome (due to closed source being used in the component extension).

It should still be possible to use the component extension in Chromium as long as it is not included with Chromium by default.

This is complicated by the fact that CWS hides the listing for component extensions so users can't load it like a regular extension.

However, it should be possible to use a command line flag that would allow the extension loader to pull down the extension from CWS.

See this code for the likely best location to check for the flag:
https://cs-staging.chromium.org/chromium/src/chrome/browser/extensions/external_component_loader.cc?q=kMediaRouterStableExtensionId+package:%5Echromium$&dr=C&l=56
 

Comment 1 by sko...@chromium.org, Sep 21 2016

Cc: rdevlin....@chromium.org
Labels: Needs-Feedback
Devlin, is this something you'd be comfortable with?  It would allow for any component extension to be downloaded & installed on Chromium (w/ the use of the flag).

Comment 2 by sko...@chromium.org, Sep 28 2016

Ping Devlin, for feedback.

Comment 3 by sko...@chromium.org, Sep 28 2016

Blocking: 646171
Cc: mlamouri@chromium.org
Hmm... I'm definitely not keen on it being used for any component extension.  We've had problems before with that kind of "--install-extension" flag, and it's generally a pain to remove them later because they get used for other things.  Having a specific --load-media-router-extension flag is a little more palatable, since it would be a specific extension.  I'm still a little dubious of anything that can be used to silently add an extension, but this would probably be acceptable.

A few thoughts, though:
- If the user adds and then removes the flag, is the extension removed?
- Would there be any indication to the user that it's installed?
- Would it be feasible to surface the extension in the webstore, along with a way to uninstall?

Comment 6 by sko...@chromium.org, Sep 29 2016

I think we can explore different options, but off the top of my head:

- The extension would be loaded only if the flag is passed on the command
line. So you'd need to start Chromium each time with the flag in order to
continue to use Cast.
- I don't think we'd have any indication to the user that it's installed
(we don't for Chrome, so I cant think of a reason we'd need to here; and if
it requires an explicit flag each time you start Chromium, I think that
suffices);
- We could, I suppose, but I don't know what behavior would be for Chrome
users then.  By definition we don't allow users to uninstall component
extensions.  And it would seem problematic to try and have the Webstore
distinguish between Chromium and Chrome users and offer different
functionality.
Having the extension conditionally loaded each time based on the command line flag presence sounds fairly reasonable, as long as its restricted to a specific id.

Taking a step back for a moment, though, what's the main use case here?  Users of chromium?  Development?  Testing?

Comment 8 by sko...@chromium.org, Sep 29 2016

Yeah we've gotten a fair number of feedback reports from Chromium users who
are upset at losing the ability to Cast. Previously they could install the
old extension from the Webstore, but now they're SOL.
Labels: -Needs-Feedback M-56
Owner: imch...@chromium.org
Status: Assigned (was: Untriaged)
Cc: -mfo...@chromium.org
Owner: mfo...@chromium.org
Status: Started (was: Assigned)
 Issue 647696  has been merged into this issue.
Project Member

Comment 12 by bugdroid1@chromium.org, Oct 28 2016

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

commit ac0030f5d07e66752b93695bc373bcb55ab26602
Author: mfoltz <mfoltz@chromium.org>
Date: Fri Oct 28 21:16:52 2016

[Media Router] Update Media Router flags post-launch.

- Remove --media-router flag as this functionality has shipped
  ( crbug.com/651255 )

- Remove lots of GOOGLE_CHROME_BUILD #ifdefs around cloud services
  ( crbug.com/646171 )

- Adds a --load-media-router-component-extension flag to control loading of the
  Media Router component.  This is default on in Chrome and default off in
  Chromium.  ( crbug.com/646170 )

BUG= 646170 , 646171 , 651255 

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

[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/app/chrome_command_ids.h
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/app/generated_resources.grd
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/app/media_router_strings.grdp
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/about_flags.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/extensions/api/declarative_content/declarative_content_apitest.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/extensions/extension_context_menu_model_unittest.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/extensions/external_component_loader.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/media/router/media_router_feature.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/profiles/profile.cc
[delete] https://crrev.com/f70deac4299d792a31b03bfe1dadc335e3a01a22/chrome/browser/ui/ash/system_tray_tray_cast_browsertest_chromeos.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/location_bar/location_bar_browsertest.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/toolbar/browser_actions_bar_browsertest.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/toolbar/media_router_contextual_menu.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/toolbar/media_router_contextual_menu.h
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/toolbar/media_router_contextual_menu_unittest.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/toolbar/toolbar_actions_model_unittest.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/views/location_bar/page_action_image_view_interactive_uitest.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/webui/media_router/media_router_dialog_controller_impl_browsertest.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/webui/media_router/media_router_localized_strings_provider.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/webui/media_router/media_router_test.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/webui/media_router/media_router_test.h
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/browser/ui/webui/media_router/media_router_webui_message_handler_unittest.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/common/chrome_switches.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/common/chrome_switches.h
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/common/pref_names.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/common/pref_names.h
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/test/BUILD.gn
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/test/media_router/media_router_base_browsertest.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/chrome/test/media_router/media_router_base_browsertest.h
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/extensions/common/feature_switch.cc
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/extensions/common/feature_switch.h
[modify] https://crrev.com/ac0030f5d07e66752b93695bc373bcb55ab26602/tools/metrics/histograms/histograms.xml

Status: Fixed (was: Started)

Sign in to add a comment