| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/options/vpn_config_view.h" | 5 #include "chrome/browser/chromeos/options/vpn_config_view.h" |
| 6 | 6 |
| 7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
| 8 #include "base/stringprintf.h" | 8 #include "base/stringprintf.h" |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "chrome/browser/chromeos/cros/cros_library.h" | 10 #include "chrome/browser/chromeos/cros/cros_library.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 break; | 47 break; |
| 48 } | 48 } |
| 49 NOTREACHED(); | 49 NOTREACHED(); |
| 50 return string16(); | 50 return string16(); |
| 51 } | 51 } |
| 52 | 52 |
| 53 } // namespace | 53 } // namespace |
| 54 | 54 |
| 55 namespace chromeos { | 55 namespace chromeos { |
| 56 | 56 |
| 57 namespace internal { |
| 58 |
| 57 class ProviderTypeComboboxModel : public ui::ComboboxModel { | 59 class ProviderTypeComboboxModel : public ui::ComboboxModel { |
| 58 public: | 60 public: |
| 59 ProviderTypeComboboxModel() {} | 61 ProviderTypeComboboxModel(); |
| 60 virtual ~ProviderTypeComboboxModel() {} | 62 virtual ~ProviderTypeComboboxModel(); |
| 61 | 63 |
| 62 // Overridden from ui::ComboboxModel: | 64 // Overridden from ui::ComboboxModel: |
| 63 virtual int GetItemCount() const OVERRIDE { | 65 virtual int GetItemCount() const OVERRIDE; |
| 64 return chromeos::PROVIDER_TYPE_MAX; | 66 virtual string16 GetItemAt(int index) OVERRIDE; |
| 65 } | |
| 66 virtual string16 GetItemAt(int index) OVERRIDE { | |
| 67 ProviderType type = static_cast<ProviderType>(index); | |
| 68 return ProviderTypeToString(type); | |
| 69 } | |
| 70 | 67 |
| 71 private: | 68 private: |
| 72 DISALLOW_COPY_AND_ASSIGN(ProviderTypeComboboxModel); | 69 DISALLOW_COPY_AND_ASSIGN(ProviderTypeComboboxModel); |
| 73 }; | 70 }; |
| 74 | 71 |
| 75 class ServerCACertComboboxModel : public ui::ComboboxModel { | 72 class VpnServerCACertComboboxModel : public ui::ComboboxModel { |
| 76 public: | 73 public: |
| 77 explicit ServerCACertComboboxModel(CertLibrary* cert_library) | 74 explicit VpnServerCACertComboboxModel(CertLibrary* cert_library); |
| 78 : cert_library_(cert_library) { | 75 virtual ~VpnServerCACertComboboxModel(); |
| 79 } | |
| 80 virtual ~ServerCACertComboboxModel() {} | |
| 81 | 76 |
| 82 // Overridden from ui::ComboboxModel: | 77 // Overridden from ui::ComboboxModel: |
| 83 virtual int GetItemCount() const OVERRIDE { | 78 virtual int GetItemCount() const OVERRIDE; |
| 84 if (cert_library_->CertificatesLoading()) | 79 virtual string16 GetItemAt(int index) OVERRIDE; |
| 85 return 1; // "Loading" | |
| 86 // "Default" + certs. | |
| 87 return cert_library_->GetCACertificates().Size() + 1; | |
| 88 } | |
| 89 virtual string16 GetItemAt(int index) OVERRIDE { | |
| 90 if (cert_library_->CertificatesLoading()) | |
| 91 return l10n_util::GetStringUTF16( | |
| 92 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_LOADING); | |
| 93 if (index == 0) | |
| 94 return l10n_util::GetStringUTF16( | |
| 95 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_SERVER_CA_DEFAULT); | |
| 96 int cert_index = index - 1; | |
| 97 return cert_library_->GetCACertificates().GetDisplayStringAt(cert_index); | |
| 98 } | |
| 99 | 80 |
| 100 private: | 81 private: |
| 101 CertLibrary* cert_library_; | 82 CertLibrary* cert_library_; |
| 102 | 83 |
| 103 DISALLOW_COPY_AND_ASSIGN(ServerCACertComboboxModel); | 84 DISALLOW_COPY_AND_ASSIGN(VpnServerCACertComboboxModel); |
| 104 }; | 85 }; |
| 105 | 86 |
| 106 class UserCertComboboxModel : public ui::ComboboxModel { | 87 class VpnUserCertComboboxModel : public ui::ComboboxModel { |
| 107 public: | 88 public: |
| 108 explicit UserCertComboboxModel(CertLibrary* cert_library) | 89 explicit VpnUserCertComboboxModel(CertLibrary* cert_library); |
| 109 : cert_library_(cert_library) { | 90 virtual ~VpnUserCertComboboxModel(); |
| 110 } | |
| 111 virtual ~UserCertComboboxModel() {} | |
| 112 | 91 |
| 113 // Overridden from ui::ComboboxModel: | 92 // Overridden from ui::ComboboxModel: |
| 114 virtual int GetItemCount() const OVERRIDE { | 93 virtual int GetItemCount() const OVERRIDE; |
| 115 if (cert_library_->CertificatesLoading()) | 94 virtual string16 GetItemAt(int index) OVERRIDE; |
| 116 return 1; // "Loading" | |
| 117 int num_certs = cert_library_->GetUserCertificates().Size(); | |
| 118 if (num_certs == 0) | |
| 119 return 1; // "None installed" | |
| 120 return num_certs; | |
| 121 } | |
| 122 virtual string16 GetItemAt(int index) OVERRIDE { | |
| 123 if (cert_library_->CertificatesLoading()) { | |
| 124 return l10n_util::GetStringUTF16( | |
| 125 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_LOADING); | |
| 126 } | |
| 127 if (cert_library_->GetUserCertificates().Size() == 0) { | |
| 128 return l10n_util::GetStringUTF16( | |
| 129 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_USER_CERT_NONE_INSTALLED); | |
| 130 } | |
| 131 return cert_library_->GetUserCertificates().GetDisplayStringAt(index); | |
| 132 } | |
| 133 | 95 |
| 134 private: | 96 private: |
| 135 CertLibrary* cert_library_; | 97 CertLibrary* cert_library_; |
| 136 DISALLOW_COPY_AND_ASSIGN(UserCertComboboxModel); | 98 |
| 99 DISALLOW_COPY_AND_ASSIGN(VpnUserCertComboboxModel); |
| 137 }; | 100 }; |
| 138 | 101 |
| 102 // ProviderTypeComboboxModel --------------------------------------------------- |
| 103 |
| 104 ProviderTypeComboboxModel::ProviderTypeComboboxModel() { |
| 105 } |
| 106 |
| 107 ProviderTypeComboboxModel::~ProviderTypeComboboxModel() { |
| 108 } |
| 109 |
| 110 int ProviderTypeComboboxModel::GetItemCount() const { |
| 111 return PROVIDER_TYPE_MAX; |
| 112 } |
| 113 |
| 114 string16 ProviderTypeComboboxModel::GetItemAt(int index) { |
| 115 ProviderType type = static_cast<ProviderType>(index); |
| 116 return ProviderTypeToString(type); |
| 117 } |
| 118 |
| 119 // VpnServerCACertComboboxModel ------------------------------------------------ |
| 120 |
| 121 VpnServerCACertComboboxModel::VpnServerCACertComboboxModel( |
| 122 CertLibrary* cert_library) |
| 123 : cert_library_(cert_library) { |
| 124 } |
| 125 |
| 126 VpnServerCACertComboboxModel::~VpnServerCACertComboboxModel() { |
| 127 } |
| 128 |
| 129 int VpnServerCACertComboboxModel::GetItemCount() const { |
| 130 if (cert_library_->CertificatesLoading()) |
| 131 return 1; // "Loading" |
| 132 // "Default" + certs. |
| 133 return cert_library_->GetCACertificates().Size() + 1; |
| 134 } |
| 135 |
| 136 string16 VpnServerCACertComboboxModel::GetItemAt(int index) { |
| 137 if (cert_library_->CertificatesLoading()) |
| 138 return l10n_util::GetStringUTF16( |
| 139 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_LOADING); |
| 140 if (index == 0) |
| 141 return l10n_util::GetStringUTF16( |
| 142 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_SERVER_CA_DEFAULT); |
| 143 int cert_index = index - 1; |
| 144 return cert_library_->GetCACertificates().GetDisplayStringAt(cert_index); |
| 145 } |
| 146 |
| 147 // VpnUserCertComboboxModel ---------------------------------------------------- |
| 148 |
| 149 VpnUserCertComboboxModel::VpnUserCertComboboxModel( |
| 150 CertLibrary* cert_library) |
| 151 : cert_library_(cert_library) { |
| 152 } |
| 153 |
| 154 VpnUserCertComboboxModel::~VpnUserCertComboboxModel() { |
| 155 } |
| 156 |
| 157 int VpnUserCertComboboxModel::GetItemCount() const { |
| 158 if (cert_library_->CertificatesLoading()) |
| 159 return 1; // "Loading" |
| 160 int num_certs = cert_library_->GetUserCertificates().Size(); |
| 161 if (num_certs == 0) |
| 162 return 1; // "None installed" |
| 163 return num_certs; |
| 164 } |
| 165 |
| 166 string16 VpnUserCertComboboxModel::GetItemAt(int index) { |
| 167 if (cert_library_->CertificatesLoading()) { |
| 168 return l10n_util::GetStringUTF16( |
| 169 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_LOADING); |
| 170 } |
| 171 if (cert_library_->GetUserCertificates().Size() == 0) { |
| 172 return l10n_util::GetStringUTF16( |
| 173 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_USER_CERT_NONE_INSTALLED); |
| 174 } |
| 175 return cert_library_->GetUserCertificates().GetDisplayStringAt(index); |
| 176 } |
| 177 |
| 178 } // namespace internal |
| 179 |
| 139 VPNConfigView::VPNConfigView(NetworkConfigView* parent, VirtualNetwork* vpn) | 180 VPNConfigView::VPNConfigView(NetworkConfigView* parent, VirtualNetwork* vpn) |
| 140 : ChildNetworkConfigView(parent, vpn), | 181 : ChildNetworkConfigView(parent, vpn), |
| 141 cert_library_(NULL) { | 182 cert_library_(NULL) { |
| 142 Init(vpn); | 183 Init(vpn); |
| 143 } | 184 } |
| 144 | 185 |
| 145 VPNConfigView::VPNConfigView(NetworkConfigView* parent) | 186 VPNConfigView::VPNConfigView(NetworkConfigView* parent) |
| 146 : ChildNetworkConfigView(parent), | 187 : ChildNetworkConfigView(parent), |
| 147 cert_library_(NULL) { | 188 cert_library_(NULL) { |
| 148 Init(NULL); | 189 Init(NULL); |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 ParseVPNUIProperty(&user_cert_ui_data_, vpn, onc::vpn::kClientCertRef); | 437 ParseVPNUIProperty(&user_cert_ui_data_, vpn, onc::vpn::kClientCertRef); |
| 397 ParseVPNUIProperty(&username_ui_data_, vpn, onc::vpn::kUsername); | 438 ParseVPNUIProperty(&username_ui_data_, vpn, onc::vpn::kUsername); |
| 398 ParseVPNUIProperty(&user_passphrase_ui_data_, vpn, onc::vpn::kPassword); | 439 ParseVPNUIProperty(&user_passphrase_ui_data_, vpn, onc::vpn::kPassword); |
| 399 ParseVPNUIProperty(&group_name_ui_data_, vpn, onc::vpn::kGroup); | 440 ParseVPNUIProperty(&group_name_ui_data_, vpn, onc::vpn::kGroup); |
| 400 } | 441 } |
| 401 | 442 |
| 402 views::GridLayout* layout = views::GridLayout::CreatePanel(this); | 443 views::GridLayout* layout = views::GridLayout::CreatePanel(this); |
| 403 SetLayoutManager(layout); | 444 SetLayoutManager(layout); |
| 404 | 445 |
| 405 // VPN may require certificates, so always set the library and observe. | 446 // VPN may require certificates, so always set the library and observe. |
| 406 cert_library_ = chromeos::CrosLibrary::Get()->GetCertLibrary(); | 447 cert_library_ = CrosLibrary::Get()->GetCertLibrary(); |
| 407 | 448 |
| 408 // Setup a callback if certificates are yet to be loaded. | 449 // Setup a callback if certificates are yet to be loaded. |
| 409 if (!cert_library_->CertificatesLoaded()) | 450 if (!cert_library_->CertificatesLoaded()) |
| 410 cert_library_->AddObserver(this); | 451 cert_library_->AddObserver(this); |
| 411 | 452 |
| 412 int column_view_set_id = 0; | 453 int column_view_set_id = 0; |
| 413 views::ColumnSet* column_set = layout->AddColumnSet(column_view_set_id); | 454 views::ColumnSet* column_set = layout->AddColumnSet(column_view_set_id); |
| 414 // Label. | 455 // Label. |
| 415 column_set->AddColumn(views::GridLayout::LEADING, views::GridLayout::FILL, 1, | 456 column_set->AddColumn(views::GridLayout::LEADING, views::GridLayout::FILL, 1, |
| 416 views::GridLayout::USE_PREF, 0, 0); | 457 views::GridLayout::USE_PREF, 0, 0); |
| 417 column_set->AddPaddingColumn(0, views::kRelatedControlSmallHorizontalSpacing); | 458 column_set->AddPaddingColumn(0, views::kRelatedControlSmallHorizontalSpacing); |
| 418 // Textfield, combobox. | 459 // Textfield, combobox. |
| 419 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1, | 460 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1, |
| 420 views::GridLayout::USE_PREF, 0, | 461 views::GridLayout::USE_PREF, 0, |
| 421 ChildNetworkConfigView::kInputFieldMinWidth); | 462 ChildNetworkConfigView::kInputFieldMinWidth); |
| 422 column_set->AddPaddingColumn(0, views::kRelatedControlSmallHorizontalSpacing); | 463 column_set->AddPaddingColumn(0, views::kRelatedControlSmallHorizontalSpacing); |
| 423 // Policy indicator. | 464 // Policy indicator. |
| 424 column_set->AddColumn(views::GridLayout::CENTER, views::GridLayout::CENTER, 0, | 465 column_set->AddColumn(views::GridLayout::CENTER, views::GridLayout::CENTER, 0, |
| 425 views::GridLayout::USE_PREF, 0, 0); | 466 views::GridLayout::USE_PREF, 0, 0); |
| 426 | 467 |
| 427 // Initialize members. | 468 // Initialize members. |
| 428 service_text_modified_ = false; | 469 service_text_modified_ = false; |
| 429 if (vpn) { | 470 if (vpn) { |
| 430 provider_type_ = vpn->provider_type(); | 471 provider_type_ = vpn->provider_type(); |
| 431 // Sets enable_* based on the provider type which we use to control | 472 // Sets enable_* based on the provider type which we use to control |
| 432 // which controls to make visible. | 473 // which controls to make visible. |
| 433 UpdateControlsToEnable(); | 474 UpdateControlsToEnable(); |
| 434 } else { | 475 } else { |
| 435 // Set the default provider type. | 476 // Set the default provider type. |
| 436 provider_type_ = chromeos::PROVIDER_TYPE_L2TP_IPSEC_PSK; | 477 provider_type_ = PROVIDER_TYPE_L2TP_IPSEC_PSK; |
| 437 // Provider Type is user selectable, so enable all controls during init. | 478 // Provider Type is user selectable, so enable all controls during init. |
| 438 enable_psk_passphrase_ = true; | 479 enable_psk_passphrase_ = true; |
| 439 enable_user_cert_ = true; | 480 enable_user_cert_ = true; |
| 440 enable_server_ca_cert_ = true; | 481 enable_server_ca_cert_ = true; |
| 441 enable_otp_ = true; | 482 enable_otp_ = true; |
| 442 enable_group_name_ = true; | 483 enable_group_name_ = true; |
| 443 } | 484 } |
| 444 | 485 |
| 445 // Server label and input. | 486 // Server label and input. |
| 446 // Only provide Server name when configuring a new VPN. | 487 // Only provide Server name when configuring a new VPN. |
| (...skipping 24 matching lines...) Expand all Loading... |
| 471 layout->AddView(service_text_); | 512 layout->AddView(service_text_); |
| 472 service_textfield_ = NULL; | 513 service_textfield_ = NULL; |
| 473 } | 514 } |
| 474 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 515 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
| 475 | 516 |
| 476 // Provider type label and select. | 517 // Provider type label and select. |
| 477 layout->StartRow(0, column_view_set_id); | 518 layout->StartRow(0, column_view_set_id); |
| 478 layout->AddView(new views::Label(l10n_util::GetStringUTF16( | 519 layout->AddView(new views::Label(l10n_util::GetStringUTF16( |
| 479 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_VPN_PROVIDER_TYPE))); | 520 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_VPN_PROVIDER_TYPE))); |
| 480 if (!vpn) { | 521 if (!vpn) { |
| 481 provider_type_combobox_ = | 522 provider_type_combobox_model_.reset( |
| 482 new views::Combobox(new ProviderTypeComboboxModel()); | 523 new internal::ProviderTypeComboboxModel); |
| 524 provider_type_combobox_ = new views::Combobox( |
| 525 provider_type_combobox_model_.get()); |
| 483 provider_type_combobox_->set_listener(this); | 526 provider_type_combobox_->set_listener(this); |
| 484 layout->AddView(provider_type_combobox_); | 527 layout->AddView(provider_type_combobox_); |
| 485 provider_type_text_label_ = NULL; | 528 provider_type_text_label_ = NULL; |
| 486 } else { | 529 } else { |
| 487 provider_type_text_label_ = | 530 provider_type_text_label_ = |
| 488 new views::Label(ProviderTypeToString(provider_type_)); | 531 new views::Label(ProviderTypeToString(provider_type_)); |
| 489 provider_type_text_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); | 532 provider_type_text_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
| 490 layout->AddView(provider_type_text_label_); | 533 layout->AddView(provider_type_text_label_); |
| 491 provider_type_combobox_ = NULL; | 534 provider_type_combobox_ = NULL; |
| 492 } | 535 } |
| (...skipping 18 matching lines...) Expand all Loading... |
| 511 } | 554 } |
| 512 | 555 |
| 513 // Server CA certificate | 556 // Server CA certificate |
| 514 // Only provide Server CA when configuring a new VPN. | 557 // Only provide Server CA when configuring a new VPN. |
| 515 if (!vpn) { | 558 if (!vpn) { |
| 516 layout->StartRow(0, column_view_set_id); | 559 layout->StartRow(0, column_view_set_id); |
| 517 server_ca_cert_label_ = | 560 server_ca_cert_label_ = |
| 518 new views::Label(l10n_util::GetStringUTF16( | 561 new views::Label(l10n_util::GetStringUTF16( |
| 519 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_SERVER_CA)); | 562 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_SERVER_CA)); |
| 520 layout->AddView(server_ca_cert_label_); | 563 layout->AddView(server_ca_cert_label_); |
| 521 ServerCACertComboboxModel* server_ca_cert_model = | 564 server_ca_cert_combobox_model_.reset( |
| 522 new ServerCACertComboboxModel(cert_library_); | 565 new internal::VpnServerCACertComboboxModel(cert_library_)); |
| 523 server_ca_cert_combobox_ = new views::Combobox(server_ca_cert_model); | 566 server_ca_cert_combobox_ = new views::Combobox( |
| 567 server_ca_cert_combobox_model_.get()); |
| 524 layout->AddView(server_ca_cert_combobox_); | 568 layout->AddView(server_ca_cert_combobox_); |
| 525 layout->AddView(new ControlledSettingIndicatorView(ca_cert_ui_data_)); | 569 layout->AddView(new ControlledSettingIndicatorView(ca_cert_ui_data_)); |
| 526 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 570 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
| 527 } else { | 571 } else { |
| 528 server_ca_cert_label_ = NULL; | 572 server_ca_cert_label_ = NULL; |
| 529 server_ca_cert_combobox_ = NULL; | 573 server_ca_cert_combobox_ = NULL; |
| 530 } | 574 } |
| 531 | 575 |
| 532 // User certificate label and input. | 576 // User certificate label and input. |
| 533 if (enable_user_cert_) { | 577 if (enable_user_cert_) { |
| 534 layout->StartRow(0, column_view_set_id); | 578 layout->StartRow(0, column_view_set_id); |
| 535 user_cert_label_ = new views::Label(l10n_util::GetStringUTF16( | 579 user_cert_label_ = new views::Label(l10n_util::GetStringUTF16( |
| 536 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_VPN_USER_CERT)); | 580 IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_VPN_USER_CERT)); |
| 537 layout->AddView(user_cert_label_); | 581 layout->AddView(user_cert_label_); |
| 538 UserCertComboboxModel* user_cert_model = | 582 user_cert_combobox_model_.reset( |
| 539 new UserCertComboboxModel(cert_library_); | 583 new internal::VpnUserCertComboboxModel(cert_library_)); |
| 540 user_cert_combobox_ = new views::Combobox(user_cert_model); | 584 user_cert_combobox_ = new views::Combobox(user_cert_combobox_model_.get()); |
| 541 user_cert_combobox_->set_listener(this); | 585 user_cert_combobox_->set_listener(this); |
| 542 layout->AddView(user_cert_combobox_); | 586 layout->AddView(user_cert_combobox_); |
| 543 layout->AddView(new ControlledSettingIndicatorView(user_cert_ui_data_)); | 587 layout->AddView(new ControlledSettingIndicatorView(user_cert_ui_data_)); |
| 544 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 588 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
| 545 } else { | 589 } else { |
| 546 user_cert_label_ = NULL; | 590 user_cert_label_ = NULL; |
| 547 user_cert_combobox_ = NULL; | 591 user_cert_combobox_ = NULL; |
| 548 } | 592 } |
| 549 | 593 |
| 550 // Username label and input. | 594 // Username label and input. |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 819 std::string vpn_type; | 863 std::string vpn_type; |
| 820 if (!vpn_dict || !vpn_dict->GetString(onc::kType, &vpn_type)) | 864 if (!vpn_dict || !vpn_dict->GetString(onc::kType, &vpn_type)) |
| 821 return; | 865 return; |
| 822 | 866 |
| 823 property_ui_data->ParseOncProperty( | 867 property_ui_data->ParseOncProperty( |
| 824 network->ui_data(), onc, | 868 network->ui_data(), onc, |
| 825 base::StringPrintf("%s.%s.%s", onc::kVPN, vpn_type.c_str(), key.c_str())); | 869 base::StringPrintf("%s.%s.%s", onc::kVPN, vpn_type.c_str(), key.c_str())); |
| 826 } | 870 } |
| 827 | 871 |
| 828 } // namespace chromeos | 872 } // namespace chromeos |
| OLD | NEW |