summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-14 22:19:53 +0000
committermnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-14 22:19:53 +0000
commit4ed69832c6178bfd8f07a77035ea0a9223276695 (patch)
treec0e34bba1e3d6daa610fa8c6f86d91748249a9dc
parent6946935636644de2829152214cb2fb513e7cddb1 (diff)
downloadchromium_src-4ed69832c6178bfd8f07a77035ea0a9223276695.zip
chromium_src-4ed69832c6178bfd8f07a77035ea0a9223276695.tar.gz
chromium_src-4ed69832c6178bfd8f07a77035ea0a9223276695.tar.bz2
Fix ONC value substitution.
BUG=chromium-os:23751 TEST=unit test Review URL: http://codereview.chromium.org/9234032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121954 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/automation/testing_automation_provider_chromeos.cc2
-rw-r--r--chrome/browser/chromeos/cros/network_library.cc38
-rw-r--r--chrome/browser/chromeos/cros/network_library.h13
-rw-r--r--chrome/browser/chromeos/cros/network_library_unittest.cc1
-rw-r--r--chrome/browser/chromeos/cros/onc_network_parser.cc77
-rw-r--r--chrome/browser/chromeos/cros/onc_network_parser.h6
-rw-r--r--chrome/browser/chromeos/cros/onc_network_parser_unittest.cc40
-rw-r--r--chrome/browser/chromeos/options/vpn_config_view.cc4
-rw-r--r--chrome/browser/chromeos/options/wifi_config_view.cc4
-rw-r--r--chrome/browser/ui/webui/about_ui.cc2
-rw-r--r--chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc2
-rw-r--r--chrome/browser/ui/webui/options2/chromeos/internet_options_handler2.cc2
12 files changed, 125 insertions, 66 deletions
diff --git a/chrome/browser/automation/testing_automation_provider_chromeos.cc b/chrome/browser/automation/testing_automation_provider_chromeos.cc
index 6dd58a1..2fc05ae 100644
--- a/chrome/browser/automation/testing_automation_provider_chromeos.cc
+++ b/chrome/browser/automation/testing_automation_provider_chromeos.cc
@@ -867,7 +867,7 @@ void TestingAutomationProvider::GetPrivateNetworkInfo(
item->SetString("key", virt->psk_passphrase());
item->SetString("cert_nss", virt->ca_cert_nss());
item->SetString("cert_id", virt->client_cert_id());
- item->SetString("username", virt->GetUserName());
+ item->SetString("username", virt->username());
item->SetString("password", virt->user_passphrase());
return_value->Set(virt->service_path(), item);
}
diff --git a/chrome/browser/chromeos/cros/network_library.cc b/chrome/browser/chromeos/cros/network_library.cc
index eafbed7..03aca4c 100644
--- a/chrome/browser/chromeos/cros/network_library.cc
+++ b/chrome/browser/chromeos/cros/network_library.cc
@@ -37,7 +37,6 @@
#include "chrome/browser/chromeos/cros/onc_constants.h"
#include "chrome/browser/chromeos/cros/onc_network_parser.h"
#include "chrome/browser/chromeos/cros_settings.h"
-#include "chrome/browser/chromeos/login/user_manager.h"
#include "chrome/browser/chromeos/network_login_observer.h"
#include "chrome/browser/net/browser_url_util.h"
#include "chrome/common/time_format.h"
@@ -433,26 +432,6 @@ Network::~Network() {
}
}
-// static.
-std::string Network::GetUserExpandedValue(const std::string& value) {
- // If running unit test, just return the original value.
- if (!BrowserThread::IsMessageLoopValid(BrowserThread::UI))
- return value;
-
- if (!UserManager::Get()->user_is_logged_in())
- return value;
-
- std::string temp_value;
- std::string final_value;
- ReplaceChars(value, onc::substitutes::kLoginIDField,
- UserManager::Get()->logged_in_user().GetAccountName(),
- &temp_value);
- ReplaceChars(temp_value, onc::substitutes::kEmailField,
- UserManager::Get()->logged_in_user().email(),
- &final_value);
- return final_value;
-}
-
void Network::SetNetworkParser(NetworkParser* parser) {
network_parser_.reset(parser);
}
@@ -748,10 +727,6 @@ VirtualNetwork::VirtualNetwork(const std::string& service_path)
VirtualNetwork::~VirtualNetwork() {}
-std::string VirtualNetwork::GetUserName() const {
- return GetUserExpandedValue(username_);
-}
-
void VirtualNetwork::EraseCredentials() {
WipeString(&ca_cert_nss_);
WipeString(&psk_passphrase_);
@@ -772,7 +747,7 @@ void VirtualNetwork::CopyCredentialsFromRemembered(Network* remembered) {
DCHECK_EQ(remembered->type(), TYPE_VPN);
VirtualNetwork* remembered_vpn = static_cast<VirtualNetwork*>(remembered);
VLOG(1) << "Copy VPN credentials: " << name()
- << " username: " << remembered_vpn->GetUserName();
+ << " username: " << remembered_vpn->username();
if (ca_cert_nss_.empty())
ca_cert_nss_ = remembered_vpn->ca_cert_nss();
if (psk_passphrase_.empty())
@@ -780,7 +755,7 @@ void VirtualNetwork::CopyCredentialsFromRemembered(Network* remembered) {
if (client_cert_id_.empty())
client_cert_id_ = remembered_vpn->client_cert_id();
if (username_.empty())
- username_ = remembered_vpn->GetUserName();
+ username_ = remembered_vpn->username();
if (user_passphrase_.empty())
user_passphrase_ = remembered_vpn->user_passphrase();
}
@@ -1323,15 +1298,6 @@ WifiNetwork::WifiNetwork(const std::string& service_path)
WifiNetwork::~WifiNetwork() {}
-std::string WifiNetwork::GetEapIdentity() const {
- return GetUserExpandedValue(eap_identity_);
-}
-
-std::string WifiNetwork::GetEapAnonymousIdentity() const {
- return GetUserExpandedValue(eap_anonymous_identity_);
-}
-
-
void WifiNetwork::CalculateUniqueId() {
ConnectionSecurity encryption = encryption_;
// Flimflam treats wpa and rsn as psk internally, so convert those types
diff --git a/chrome/browser/chromeos/cros/network_library.h b/chrome/browser/chromeos/cros/network_library.h
index 1132100..54d3192 100644
--- a/chrome/browser/chromeos/cros/network_library.h
+++ b/chrome/browser/chromeos/cros/network_library.h
@@ -761,9 +761,6 @@ class Network {
Network(const std::string& service_path,
ConnectionType type);
- // Expands |value| with user account specific paramaters.
- static std::string GetUserExpandedValue(const std::string& value);
-
NetworkParser* network_parser() { return network_parser_.get(); }
void SetNetworkParser(NetworkParser* parser);
@@ -815,6 +812,8 @@ class Network {
// This allows the implementation classes access to privates.
NETWORK_LIBRARY_IMPL_FRIENDS;
+ FRIEND_TEST_ALL_PREFIXES(NetworkLibraryTest, GetUserExpandedValue);
+
// Use these functions at your peril. They are used by the various
// parsers to set state, and really shouldn't be used by anything else
// because they don't do the error checking and sending to the
@@ -925,9 +924,9 @@ class VirtualNetwork : public Network {
const std::string& ca_cert_nss() const { return ca_cert_nss_; }
const std::string& psk_passphrase() const { return psk_passphrase_; }
const std::string& client_cert_id() const { return client_cert_id_; }
+ const std::string& username() const { return username_; }
const std::string& user_passphrase() const { return user_passphrase_; }
const std::string& group_name() const { return group_name_; }
- std::string GetUserName() const;
// Sets the well-known PKCS#11 slot and PIN for accessing certificates.
void SetCertificateSlotAndPin(
@@ -1241,8 +1240,10 @@ class WifiNetwork : public WirelessNetwork {
const std::string& eap_client_cert_pkcs11_id() const {
return eap_client_cert_pkcs11_id_; }
const bool eap_use_system_cas() const { return eap_use_system_cas_; }
- std::string GetEapIdentity() const;
- std::string GetEapAnonymousIdentity() const;
+ const std::string& eap_identity() const { return eap_identity_; }
+ const std::string& eap_anonymous_identity() const {
+ return eap_anonymous_identity_;
+ }
const std::string& eap_passphrase() const { return eap_passphrase_; }
const std::string& GetPassphrase() const;
diff --git a/chrome/browser/chromeos/cros/network_library_unittest.cc b/chrome/browser/chromeos/cros/network_library_unittest.cc
index d0aa9c8..55cf83f 100644
--- a/chrome/browser/chromeos/cros/network_library_unittest.cc
+++ b/chrome/browser/chromeos/cros/network_library_unittest.cc
@@ -3,6 +3,7 @@
// found in the LICENSE file.
+#include "base/at_exit.h"
#include "chrome/browser/chromeos/cros/cros_library.h"
#include "chrome/browser/chromeos/cros/network_library.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/chromeos/cros/onc_network_parser.cc b/chrome/browser/chromeos/cros/onc_network_parser.cc
index 0f1226d..140b592 100644
--- a/chrome/browser/chromeos/cros/onc_network_parser.cc
+++ b/chrome/browser/chromeos/cros/onc_network_parser.cc
@@ -9,6 +9,7 @@
#include "base/base64.h"
#include "base/json/json_value_serializer.h"
+#include "chrome/browser/chromeos/login/user_manager.h"
#include "base/json/json_writer.h" // for debug output only.
#include "base/stringprintf.h"
#include "base/values.h"
@@ -19,6 +20,7 @@
#include "chrome/browser/chromeos/proxy_config_service_impl.h"
#include "chrome/browser/prefs/proxy_config_dictionary.h"
#include "chrome/common/net/x509_certificate_model.h"
+#include "content/public/browser/browser_thread.h"
#include "crypto/encryptor.h"
#include "crypto/hmac.h"
#include "crypto/scoped_nss_types.h"
@@ -601,6 +603,36 @@ bool OncNetworkParser::ParseNestedObject(Network* network,
return !any_errors;
}
+// static
+std::string OncNetworkParser::GetUserExpandedValue(
+ const base::Value& value,
+ NetworkUIData::ONCSource source) {
+ std::string string_value;
+ if (!value.GetAsString(&string_value))
+ return string_value;
+
+ // If running unit test, just return the original value.
+ if (!content::BrowserThread::IsMessageLoopValid(content::BrowserThread::UI))
+ return string_value;
+
+ if (source != NetworkUIData::ONC_SOURCE_USER_POLICY &&
+ source != NetworkUIData::ONC_SOURCE_USER_IMPORT) {
+ return string_value;
+ }
+
+ if (!UserManager::Get()->user_is_logged_in())
+ return string_value;
+
+ const User& logged_in_user(UserManager::Get()->logged_in_user());
+ ReplaceSubstringsAfterOffset(&string_value, 0,
+ onc::substitutes::kLoginIDField,
+ logged_in_user.GetAccountName());
+ ReplaceSubstringsAfterOffset(&string_value, 0,
+ onc::substitutes::kEmailField,
+ logged_in_user.email());
+ return string_value;
+}
+
Network* OncNetworkParser::CreateNewNetwork(
ConnectionType type, const std::string& service_path) {
Network* network = NetworkParser::CreateNewNetwork(type, service_path);
@@ -1278,7 +1310,7 @@ bool OncWifiNetworkParser::ParseWifiValue(OncNetworkParser* parser,
}
// static
-bool OncWifiNetworkParser::ParseEAPValue(OncNetworkParser*,
+bool OncWifiNetworkParser::ParseEAPValue(OncNetworkParser* parser,
PropertyIndex index,
const base::Value& value,
Network* network) {
@@ -1286,10 +1318,14 @@ bool OncWifiNetworkParser::ParseEAPValue(OncNetworkParser*,
return false;
WifiNetwork* wifi_network = static_cast<WifiNetwork*>(network);
switch (index) {
- case PROPERTY_INDEX_EAP_IDENTITY:
- // TODO(crosbug.com/23751): Support string expansion.
- wifi_network->set_eap_identity(GetStringValue(value));
+ case PROPERTY_INDEX_EAP_IDENTITY: {
+ const std::string expanded_identity(
+ GetUserExpandedValue(value, parser->onc_source()));
+ wifi_network->set_eap_identity(expanded_identity);
+ const StringValue expanded_identity_value(expanded_identity);
+ wifi_network->UpdatePropertyMap(index, expanded_identity_value);
return true;
+ }
case PROPERTY_INDEX_EAP_METHOD: {
EAPMethod eap_method = ParseEAPMethod(GetStringValue(value));
wifi_network->set_eap_method(eap_method);
@@ -1311,9 +1347,14 @@ bool OncWifiNetworkParser::ParseEAPValue(OncNetworkParser*,
wifi_network->UpdatePropertyMap(index, *val.get());
return true;
}
- case PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY:
- wifi_network->set_eap_anonymous_identity(GetStringValue(value));
+ case PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY: {
+ const std::string expanded_identity(
+ GetUserExpandedValue(value, parser->onc_source()));
+ wifi_network->set_eap_anonymous_identity(expanded_identity);
+ const StringValue expanded_identity_value(expanded_identity);
+ wifi_network->UpdatePropertyMap(index, expanded_identity_value);
return true;
+ }
case PROPERTY_INDEX_EAP_CERT_ID:
wifi_network->set_eap_client_cert_pkcs11_id(GetStringValue(value));
return true;
@@ -1573,7 +1614,7 @@ ProviderType OncVirtualNetworkParser::GetCanonicalProviderType(
}
// static
-bool OncVirtualNetworkParser::ParseL2TPValue(OncNetworkParser*,
+bool OncVirtualNetworkParser::ParseL2TPValue(OncNetworkParser* parser,
PropertyIndex index,
const base::Value& value,
Network* network) {
@@ -1584,10 +1625,14 @@ bool OncVirtualNetworkParser::ParseL2TPValue(OncNetworkParser*,
case PROPERTY_INDEX_L2TPIPSEC_PASSWORD:
virtual_network->set_user_passphrase(GetStringValue(value));
return true;
- case PROPERTY_INDEX_L2TPIPSEC_USER:
- // TODO(crosbug.com/23751): Support string expansion.
- virtual_network->set_username(GetStringValue(value));
+ case PROPERTY_INDEX_L2TPIPSEC_USER: {
+ const std::string expanded_user(
+ GetUserExpandedValue(value, parser->onc_source()));
+ virtual_network->set_username(expanded_user);
+ const StringValue expanded_user_value(expanded_user);
+ virtual_network->UpdatePropertyMap(index, expanded_user_value);
return true;
+ }
case PROPERTY_INDEX_SAVE_CREDENTIALS:
// Note that the specification allows different settings for
// IPsec credentials (PSK) and L2TP credentials (username and
@@ -1602,7 +1647,7 @@ bool OncVirtualNetworkParser::ParseL2TPValue(OncNetworkParser*,
}
// static
-bool OncVirtualNetworkParser::ParseOpenVPNValue(OncNetworkParser*,
+bool OncVirtualNetworkParser::ParseOpenVPNValue(OncNetworkParser* parser,
PropertyIndex index,
const base::Value& value,
Network* network) {
@@ -1613,10 +1658,14 @@ bool OncVirtualNetworkParser::ParseOpenVPNValue(OncNetworkParser*,
case PROPERTY_INDEX_OPEN_VPN_PASSWORD:
virtual_network->set_user_passphrase(GetStringValue(value));
return true;
- case PROPERTY_INDEX_OPEN_VPN_USER:
- // TODO(crosbug.com/23751): Support string expansion.
- virtual_network->set_username(GetStringValue(value));
+ case PROPERTY_INDEX_OPEN_VPN_USER: {
+ const std::string expanded_user(
+ GetUserExpandedValue(value, parser->onc_source()));
+ virtual_network->set_username(expanded_user);
+ const StringValue expanded_user_value(expanded_user);
+ virtual_network->UpdatePropertyMap(index, expanded_user_value);
return true;
+ }
case PROPERTY_INDEX_SAVE_CREDENTIALS:
virtual_network->set_save_credentials(GetBooleanValue(value));
return true;
diff --git a/chrome/browser/chromeos/cros/onc_network_parser.h b/chrome/browser/chromeos/cros/onc_network_parser.h
index 754fc0f..faead8e 100644
--- a/chrome/browser/chromeos/cros/onc_network_parser.h
+++ b/chrome/browser/chromeos/cros/onc_network_parser.h
@@ -90,8 +90,14 @@ class OncNetworkParser : public NetworkParser {
OncValueSignature* signature,
ParserPointer parser);
+ // Expands |value| with user account specific paramaters.
+ static std::string GetUserExpandedValue(const base::Value& value,
+ NetworkUIData::ONCSource source);
+
const std::string& parse_error() const { return parse_error_; }
+ NetworkUIData::ONCSource onc_source() const { return onc_source_; }
+
protected:
OncNetworkParser();
diff --git a/chrome/browser/chromeos/cros/onc_network_parser_unittest.cc b/chrome/browser/chromeos/cros/onc_network_parser_unittest.cc
index d24d64a..974e2d1 100644
--- a/chrome/browser/chromeos/cros/onc_network_parser_unittest.cc
+++ b/chrome/browser/chromeos/cros/onc_network_parser_unittest.cc
@@ -11,6 +11,7 @@
#include "base/file_util.h"
#include "base/json/json_value_serializer.h"
#include "base/lazy_instance.h"
+#include "base/message_loop.h"
#include "base/path_service.h"
#include "base/threading/thread_restrictions.h"
#include "base/stringprintf.h"
@@ -18,9 +19,13 @@
#include "chrome/browser/chromeos/cros/cros_library.h"
#include "chrome/browser/chromeos/cros/network_library.h"
#include "chrome/browser/chromeos/dbus/dbus_thread_manager.h"
+#include "chrome/browser/chromeos/login/user_manager.h"
#include "chrome/browser/chromeos/system/runtime_environment.h"
#include "chrome/browser/net/pref_proxy_config_tracker_impl.h"
#include "chrome/common/chrome_paths.h"
+#include "chrome/test/base/testing_browser_process.h"
+#include "chrome/test/base/testing_pref_service.h"
+#include "content/test/test_browser_thread.h"
#include "crypto/nss_util.h"
#include "net/base/cert_database.h"
#include "net/base/cert_type.h"
@@ -299,11 +304,11 @@ TEST_F(OncNetworkParserTest, TestCreateNetworkWifiEAP2) {
EXPECT_EQ(wifi->auto_connect(), false);
EXPECT_EQ(wifi->eap_method(), EAP_METHOD_LEAP);
EXPECT_EQ(wifi->eap_use_system_cas(), true);
- EXPECT_EQ(wifi->GetEapIdentity(), "user");
+ EXPECT_EQ(wifi->eap_identity(), "user");
CheckStringProperty(wifi, PROPERTY_INDEX_EAP_IDENTITY, "user");
EXPECT_EQ(wifi->eap_passphrase(), "pass");
CheckStringProperty(wifi, PROPERTY_INDEX_EAP_PASSWORD, "pass");
- EXPECT_EQ(wifi->GetEapAnonymousIdentity(), "anon");
+ EXPECT_EQ(wifi->eap_anonymous_identity(), "anon");
CheckStringProperty(wifi, PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY, "anon");
}
@@ -752,4 +757,35 @@ TEST_F(OncNetworkParserTest, TestProxySettingsManual) {
EXPECT_TRUE(expected_bypass_rules.Equals(rules.bypass_rules));
}
+TEST(OncNetworkParserUserExpansionTest, GetUserExpandedValue) {
+ NetworkUIData::ONCSource source = NetworkUIData::ONC_SOURCE_USER_IMPORT;
+
+ // Setup environment needed by UserManager.
+ MessageLoop loop;
+ content::TestBrowserThread ui_thread(content::BrowserThread::UI, &loop);
+ base::ShadowingAtExitManager at_exit_manager;
+ ScopedTestingLocalState local_state(
+ static_cast<TestingBrowserProcess*>(g_browser_process));
+
+ base::StringValue login_id_pattern("a ${LOGIN_ID} b");
+ base::StringValue login_email_pattern("a ${LOGIN_EMAIL} b");
+
+ // No expansion if there is no user logged in.
+ EXPECT_EQ("a ${LOGIN_ID} b",
+ chromeos::OncNetworkParser::GetUserExpandedValue(
+ login_id_pattern, source));
+ EXPECT_EQ("a ${LOGIN_EMAIL} b",
+ chromeos::OncNetworkParser::GetUserExpandedValue(
+ login_email_pattern, source));
+
+ // Log in a user and check that the expansions work as expected.
+ UserManager::Get()->UserLoggedIn("onc@example.com");
+ EXPECT_EQ("a onc b",
+ chromeos::OncNetworkParser::GetUserExpandedValue(
+ login_id_pattern, source));
+ EXPECT_EQ("a onc@example.com b",
+ chromeos::OncNetworkParser::GetUserExpandedValue(
+ login_email_pattern, source));
+}
+
} // namespace chromeos
diff --git a/chrome/browser/chromeos/options/vpn_config_view.cc b/chrome/browser/chromeos/options/vpn_config_view.cc
index 9ade022..efa457b 100644
--- a/chrome/browser/chromeos/options/vpn_config_view.cc
+++ b/chrome/browser/chromeos/options/vpn_config_view.cc
@@ -539,8 +539,8 @@ void VPNConfigView::Init(VirtualNetwork* vpn) {
username_textfield_ = new views::Textfield(views::Textfield::STYLE_DEFAULT);
username_textfield_->SetController(this);
username_textfield_->SetEnabled(username_ui_data_.editable());
- if (vpn && !vpn->GetUserName().empty())
- username_textfield_->SetText(UTF8ToUTF16(vpn->GetUserName()));
+ if (vpn && !vpn->username().empty())
+ username_textfield_->SetText(UTF8ToUTF16(vpn->username()));
layout->AddView(username_textfield_);
layout->AddView(new ControlledSettingIndicatorView(username_ui_data_));
layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing);
diff --git a/chrome/browser/chromeos/options/wifi_config_view.cc b/chrome/browser/chromeos/options/wifi_config_view.cc
index fe1c08d..f6b42f6 100644
--- a/chrome/browser/chromeos/options/wifi_config_view.cc
+++ b/chrome/browser/chromeos/options/wifi_config_view.cc
@@ -1075,7 +1075,7 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) {
}
const std::string& eap_anonymous_identity =
- (wifi ? wifi->GetEapAnonymousIdentity() : std::string());
+ (wifi ? wifi->eap_anonymous_identity() : std::string());
identity_anonymous_textfield_->SetText(
UTF8ToUTF16(eap_anonymous_identity));
}
@@ -1119,7 +1119,7 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) {
// Identity is always active.
const std::string& eap_identity =
- (wifi ? wifi->GetEapIdentity() : std::string());
+ (wifi ? wifi->eap_identity() : std::string());
identity_textfield_->SetText(UTF8ToUTF16(eap_identity));
// Passphrase
diff --git a/chrome/browser/ui/webui/about_ui.cc b/chrome/browser/ui/webui/about_ui.cc
index d61768e..5d3d530 100644
--- a/chrome/browser/ui/webui/about_ui.cc
+++ b/chrome/browser/ui/webui/about_ui.cc
@@ -412,7 +412,7 @@ std::string ToHtmlTableRow(const chromeos::Network* network) {
str += WrapWithTH(vpn->server_hostname());
str += WrapWithTH(vpn->GetProviderTypeString());
str += WrapWithTD(std::string(vpn->psk_passphrase().length(), '*'));
- str += WrapWithTH(vpn->GetUserName());
+ str += WrapWithTH(vpn->username());
str += WrapWithTD(std::string(vpn->user_passphrase().length(), '*'));
}
str += WrapWithTD(network->failed() ? network->GetErrorString() : "");
diff --git a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
index 266bb30a..b566694 100644
--- a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
+++ b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
@@ -1110,7 +1110,7 @@ void InternetOptionsHandler::PopulateVPNDetails(
dictionary->SetBoolean("remembered", remembered);
dictionary->SetString("server_hostname", vpn->server_hostname());
dictionary->SetString("provider_type", vpn->GetProviderTypeString());
- dictionary->SetString("username", vpn->GetUserName());
+ dictionary->SetString("username", vpn->username());
}
void InternetOptionsHandler::SetActivationButtonVisibility(
diff --git a/chrome/browser/ui/webui/options2/chromeos/internet_options_handler2.cc b/chrome/browser/ui/webui/options2/chromeos/internet_options_handler2.cc
index c3fa6a8..d1d21cf 100644
--- a/chrome/browser/ui/webui/options2/chromeos/internet_options_handler2.cc
+++ b/chrome/browser/ui/webui/options2/chromeos/internet_options_handler2.cc
@@ -1112,7 +1112,7 @@ void InternetOptionsHandler::PopulateVPNDetails(
dictionary->SetBoolean("remembered", remembered);
dictionary->SetString("server_hostname", vpn->server_hostname());
dictionary->SetString("provider_type", vpn->GetProviderTypeString());
- dictionary->SetString("username", vpn->GetUserName());
+ dictionary->SetString("username", vpn->username());
}
void InternetOptionsHandler::SetActivationButtonVisibility(