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

Issue 658015 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocking:
issue 656184



Sign in to add a comment

MD Settings > Internet - Implement network proxies

Project Member Reported by steve...@chromium.org, Oct 20 2016

Issue description

The existing proxy preference code is rather complicated. Instead of a direct mapping of network properties to UI, there is a much more complex system involving prefs which takes into account proxies set by an extension.

We will need to re-implement this system for MD Settings.

bartfab@, mnissler@ - any idea if there is anyone still around who is familiar with this code, e.g. proxy_cros_settings_parser.cc?

 
Feel free to shot any questions. I can't claim familiarity with all details of this, but I may have enough context stashed away in some remote part of my brain to answer high-level questions.
Project Member

Comment 2 by bugdroid1@chromium.org, Oct 26 2016

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

commit f22f82eaa63e369a1cee77b3473d978fd5de288f
Author: stevenjb <stevenjb@chromium.org>
Date: Wed Oct 26 21:47:38 2016

Move onc and proxy pref names to components.

This is some code cleanup in anticipation of moving chromeos
proxy configuration related code out of src/chrome so that
it can be accessed by networkingPrivate and ash.

This CL also namespaces some pseudo-prefs in proxy_cros_settings_parser.cc which were in the global 'chromeos' namespace before, which was super confusing because they aren't actually stored in the pref store, just set to look like prefs for the (soon to be deprecated) options UI code.

BUG= 658015 

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

[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/chromeos/arc/intent_helper/arc_settings_service.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/chromeos/net/onc_utils.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/chromeos/net/proxy_config_handler.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/chromeos/net/proxy_config_handler.h
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/chromeos/policy/configuration_policy_handler_chromeos.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/chromeos/proxy_config_service_impl.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/chromeos/proxy_config_service_impl.h
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/chromeos/proxy_config_service_impl_unittest.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/chromeos/proxy_cros_settings_parser.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/chromeos/proxy_cros_settings_parser.h
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/prefs/browser_prefs.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/ui/webui/options/chromeos/core_chromeos_options_handler.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/browser/ui/webui/options/preferences_browsertest.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/common/pref_names.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/chrome/common/pref_names.h
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/components/onc/BUILD.gn
[add] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/components/onc/DEPS
[add] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/components/onc/onc_pref_names.cc
[add] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/components/onc/onc_pref_names.h
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/components/proxy_config/pref_proxy_config_tracker_impl.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/components/proxy_config/proxy_config_pref_names.cc
[modify] https://crrev.com/f22f82eaa63e369a1cee77b3473d978fd5de288f/components/proxy_config/proxy_config_pref_names.h

Project Member

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

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

commit 100c620bb32532fce5683c052cdfebc141e18df3
Author: stevenjb <stevenjb@chromium.org>
Date: Fri Oct 28 02:28:00 2016

Move some proxy config code out of src/chrome

BUG= 658015 

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

[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/chromeos/arc/intent_helper/arc_settings_service.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/chromeos/arc/intent_helper/arc_settings_service_browsertest.cc
[delete] https://crrev.com/74cd242122315f562ac21403b935b72c56f176d9/chrome/browser/chromeos/net/onc_utils.cc
[delete] https://crrev.com/74cd242122315f562ac21403b935b72c56f176d9/chrome/browser/chromeos/net/onc_utils.h
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/chromeos/options/vpn_config_view.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/chromeos/options/wifi_config_view.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/chromeos/options/wimax_config_view.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/chromeos/policy/user_network_configuration_updater.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/chromeos/proxy_config_service_impl_unittest.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/chromeos/proxy_cros_settings_parser.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/net/proxy_service_factory.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/prefs/browser_prefs.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/ui/webui/chromeos/login/network_state_informer.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/ui/webui/options/chromeos/core_chromeos_options_handler.h
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chrome/browser/ui/webui/options/preferences_browsertest.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/BUILD.gn
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/DEPS
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/chromeos.gyp
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/network/DEPS
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/network/onc/onc_utils.cc
[modify] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/network/onc/onc_utils.h
[rename] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/network/proxy/proxy_config_handler.cc
[rename] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/network/proxy/proxy_config_handler.h
[rename] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/network/proxy/proxy_config_service_impl.cc
[rename] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/network/proxy/proxy_config_service_impl.h
[rename] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/network/proxy/ui_proxy_config.cc
[rename] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/network/proxy/ui_proxy_config.h
[rename] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/network/proxy/ui_proxy_config_service.cc
[rename] https://crrev.com/100c620bb32532fce5683c052cdfebc141e18df3/chromeos/network/proxy/ui_proxy_config_service.h

Project Member

Comment 4 by bugdroid1@chromium.org, Nov 3 2016

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

commit 5205952ad0b7f9df469a620b3bea96f81817015e
Author: stevenjb <stevenjb@chromium.org>
Date: Thu Nov 03 05:16:56 2016

chromeos::NetworkHandler: Add ui_proxy_config_service

This introduces NetworkHandler::InitializePrefServices which
passes PrefService for local (device) state and the logged in user. This will get called twice, once on startup
and once when the primary user logs in.

NetworkHandler::InitializePrefServices currently only initializes
an owned instance of UIProxyConfigService, which can then be used
by any code utilizing NetworkHandler. Currently this is the (old)
options UI, but it will soon include the networkingPrivate
extension API code in order to support the new MD Settings UI.

BUG= 658015 

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

[modify] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chrome/browser/chromeos/chrome_browser_main_chromeos.h
[add] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chrome/browser/chromeos/net/network_pref_state_observer.cc
[add] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chrome/browser/chromeos/net/network_pref_state_observer.h
[add] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chrome/browser/chromeos/net/network_pref_state_observer_unittest.cc
[modify] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chrome/browser/chromeos/proxy_cros_settings_parser.cc
[modify] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chrome/browser/chromeos/proxy_cros_settings_parser.h
[modify] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chrome/browser/ui/webui/options/chromeos/core_chromeos_options_handler.cc
[modify] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chrome/browser/ui/webui/options/chromeos/core_chromeos_options_handler.h
[modify] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chrome/browser/ui/webui/options/preferences_browsertest.cc
[modify] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chromeos/network/network_handler.cc
[modify] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chromeos/network/network_handler.h
[modify] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chromeos/network/proxy/ui_proxy_config_service.cc
[modify] https://crrev.com/5205952ad0b7f9df469a620b3bea96f81817015e/chromeos/network/proxy/ui_proxy_config_service.h

Comment 5 by dpa...@chromium.org, Nov 15 2016

Labels: Proj-MaterialDesign-WebUI
Project Member

Comment 6 by bugdroid1@chromium.org, Nov 16 2016

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

commit 7b704d273945c123d864d49838695f36e0151a47
Author: stevenjb <stevenjb@chromium.org>
Date: Wed Nov 16 02:36:35 2016

chromeos: networkingPrivate: Set active proxy values

This CL sets the 'Active' ONC property for the Proxy when the proxy is
being set by an extension.

It also introduces the 'ActiveExtension' value for the 'Effective'
field of managed ONC property dictionaries indicating that the Active
value has been set by an extension.

BUG= 658015 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

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

[modify] https://crrev.com/7b704d273945c123d864d49838695f36e0151a47/chrome/test/data/extensions/api_test/networking_private/chromeos/test.js
[modify] https://crrev.com/7b704d273945c123d864d49838695f36e0151a47/chromeos/network/network_state_handler.cc
[modify] https://crrev.com/7b704d273945c123d864d49838695f36e0151a47/chromeos/network/network_state_handler.h
[modify] https://crrev.com/7b704d273945c123d864d49838695f36e0151a47/chromeos/network/proxy/ui_proxy_config_service.cc
[modify] https://crrev.com/7b704d273945c123d864d49838695f36e0151a47/components/onc/onc_constants.cc
[modify] https://crrev.com/7b704d273945c123d864d49838695f36e0151a47/components/onc/onc_constants.h
[modify] https://crrev.com/7b704d273945c123d864d49838695f36e0151a47/extensions/browser/api/networking_private/DEPS
[modify] https://crrev.com/7b704d273945c123d864d49838695f36e0151a47/extensions/browser/api/networking_private/networking_private_chromeos.cc
[modify] https://crrev.com/7b704d273945c123d864d49838695f36e0151a47/extensions/browser/api/networking_private/networking_private_chromeos.h

Project Member

Comment 7 by bugdroid1@chromium.org, Nov 17 2016

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

commit afb75b2886338e87d1d81c2d3f12e26d2209adfb
Author: stevenjb <stevenjb@chromium.org>
Date: Wed Nov 16 23:52:57 2016

Settings: Internet: Update proxy controlled indicator and fields.

This CL updates the proxy config indicators and shows the active
proxy configuration (which might be provided by an extension).

This also fixes some proxy strings that were not being translated and were somehow previously missed.

BUG= 658015 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

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

[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/app/settings_strings.grdp
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/browser/resources/settings/basic_page/basic_page.html
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/browser/resources/settings/internet_page/compiled_resources2.gyp
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/browser/resources/settings/internet_page/internet_detail_page.html
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/browser/resources/settings/internet_page/internet_detail_page.js
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/browser/resources/settings/internet_page/internet_page.html
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/browser/resources/settings/internet_page/internet_page.js
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/browser/resources/settings/internet_page/network_proxy.html
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/browser/resources/settings/internet_page/network_proxy.js
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.html
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/browser/resources/settings/internet_page/network_proxy_exclusions.js
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/browser/resources/settings/internet_page/network_proxy_input.html
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/ui/webui/resources/cr_elements/network/cr_onc_types.js
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/ui/webui/resources/cr_elements/policy/cr_policy_network_behavior.js
[modify] https://crrev.com/afb75b2886338e87d1d81c2d3f12e26d2209adfb/ui/webui/resources/cr_elements/policy/cr_policy_network_indicator.js

Status: Fixed (was: Started)
I am not able to set proxy using chrome://md-settings/internet page. The option is grayed out. If this is not expected behavior, please mark this back as assigned. 
It depends on the type of account. If it is disabled with no other information (e.g. an indicator that the setting is controlled by an extension or the administrator), that would be a bug. Please file separately with a specific repro and screenshot, thanks!

Status: Verified (was: Fixed)
As per #10, https://bugs.chromium.org/p/chromium/issues/detail?id=669747. Closing this as verified. Let me know if we require any more manual testing on this. 

Sign in to add a comment