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

Unified Diff: chrome/browser/chromeos/options/wifi_config_view.cc

Issue 4169001: Rewritten parts of NetworkLibrary to work around memory corruption that prev... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/options/wifi_config_view.cc
===================================================================
--- chrome/browser/chromeos/options/wifi_config_view.cc (revision 64441)
+++ chrome/browser/chromeos/options/wifi_config_view.cc (working copy)
@@ -27,11 +27,12 @@
// The width of the password field.
const int kPasswordWidth = 150;
-WifiConfigView::WifiConfigView(NetworkConfigView* parent, WifiNetwork wifi)
+WifiConfigView::WifiConfigView(NetworkConfigView* parent,
+ const WifiNetwork* wifi)
: parent_(parent),
other_network_(false),
can_login_(false),
- wifi_(wifi),
+ wifi_(new WifiNetwork(*wifi)),
ssid_textfield_(NULL),
identity_textfield_(NULL),
certificate_browse_button_(NULL),
@@ -46,6 +47,7 @@
: parent_(parent),
other_network_(true),
can_login_(false),
+ wifi_(NULL),
ssid_textfield_(NULL),
identity_textfield_(NULL),
certificate_browse_button_(NULL),
@@ -56,6 +58,9 @@
Init();
}
+WifiConfigView::~WifiConfigView() {
+}
+
void WifiConfigView::UpdateCanLogin(void) {
bool can_login = true;
if (other_network_) {
@@ -149,7 +154,7 @@
} else {
Save();
CrosLibrary::Get()->GetNetworkLibrary()->ConnectToWifiNetwork(
- wifi_, GetPassphrase(),
+ wifi_.get(), GetPassphrase(),
identity_string, certificate_path_);
}
return true;
@@ -162,8 +167,8 @@
if (autoconnect_checkbox_) {
bool auto_connect = autoconnect_checkbox_->checked();
- if (auto_connect != wifi_.auto_connect()) {
- wifi_.set_auto_connect(auto_connect);
+ if (auto_connect != wifi_->auto_connect()) {
+ wifi_->set_auto_connect(auto_connect);
changed = true;
}
}
@@ -171,14 +176,14 @@
if (passphrase_textfield_) {
const std::string& passphrase =
UTF16ToUTF8(passphrase_textfield_->text());
- if (passphrase != wifi_.passphrase()) {
- wifi_.set_passphrase(passphrase);
+ if (passphrase != wifi_->passphrase()) {
+ wifi_->set_passphrase(passphrase);
changed = true;
}
}
if (changed)
- CrosLibrary::Get()->GetNetworkLibrary()->SaveWifiNetwork(wifi_);
+ CrosLibrary::Get()->GetNetworkLibrary()->SaveWifiNetwork(wifi_.get());
}
return true;
}
@@ -230,7 +235,7 @@
ssid_textfield_->SetController(this);
layout->AddView(ssid_textfield_);
} else {
- views::Label* label = new views::Label(ASCIIToWide(wifi_.name()));
+ views::Label* label = new views::Label(ASCIIToWide(wifi_->name()));
label->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
layout->AddView(label);
}
@@ -245,23 +250,23 @@
// in general, but very common. WPA Supplicant doesn't report the
// EAP type because it's unknown until the process begins, and we'd
// need some kind of callback.
- if (wifi_.encrypted() && wifi_.encryption() == SECURITY_8021X) {
+ if (wifi_->encrypted() && wifi_->encryption() == SECURITY_8021X) {
layout->StartRow(0, column_view_set_id);
layout->AddView(new views::Label(l10n_util::GetString(
IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT_IDENTITY)));
identity_textfield_ = new views::Textfield(
views::Textfield::STYLE_DEFAULT);
identity_textfield_->SetController(this);
- if (!wifi_.identity().empty())
- identity_textfield_->SetText(UTF8ToUTF16(wifi_.identity()));
+ if (!wifi_->identity().empty())
+ identity_textfield_->SetText(UTF8ToUTF16(wifi_->identity()));
layout->AddView(identity_textfield_);
layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
layout->StartRow(0, column_view_set_id);
layout->AddView(new views::Label(l10n_util::GetString(
IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_CERT)));
- if (!wifi_.cert_path().empty()) {
- certificate_path_ = wifi_.cert_path();
- certificate_loaded = wifi_.IsCertificateLoaded();
+ if (!wifi_->cert_path().empty()) {
+ certificate_path_ = wifi_->cert_path();
+ certificate_loaded = wifi_->IsCertificateLoaded();
}
if (certificate_loaded) {
std::wstring label = l10n_util::GetString(
@@ -283,10 +288,10 @@
}
// Add passphrase if other_network or wifi is encrypted.
- if (other_network_ || (wifi_.encrypted() && !certificate_loaded)) {
+ if (other_network_ || (wifi_->encrypted() && !certificate_loaded)) {
layout->StartRow(0, column_view_set_id);
int label_text_id;
- if (wifi_.encryption() == SECURITY_8021X)
+ if (wifi_->encryption() == SECURITY_8021X)
label_text_id =
IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_PRIVATE_KEY_PASSWORD;
else
@@ -295,8 +300,8 @@
passphrase_textfield_ = new views::Textfield(
views::Textfield::STYLE_PASSWORD);
passphrase_textfield_->SetController(this);
- if (!wifi_.passphrase().empty())
- passphrase_textfield_->SetText(UTF8ToUTF16(wifi_.passphrase()));
+ if (!wifi_->passphrase().empty())
+ passphrase_textfield_->SetText(UTF8ToUTF16(wifi_->passphrase()));
layout->AddView(passphrase_textfield_);
// Password visible button.
passphrase_visible_button_ = new views::ImageButton(this);
@@ -306,7 +311,7 @@
passphrase_visible_button_->SetImageAlignment(
views::ImageButton::ALIGN_CENTER, views::ImageButton::ALIGN_MIDDLE);
// Disable viewing password by unauthenticated user.
- if (!wifi_.passphrase().empty() &&
+ if (!wifi_->passphrase().empty() &&
chromeos::UserManager::Get()->logged_in_user().email().empty()) {
passphrase_visible_button_->SetVisible(false);
}
@@ -316,12 +321,12 @@
// If there's an error, add an error message label.
// Right now, only displaying bad_passphrase and bad_wepkey errors.
- if (wifi_.error() == ERROR_BAD_PASSPHRASE ||
- wifi_.error() == ERROR_BAD_WEPKEY) {
+ if (wifi_->error() == ERROR_BAD_PASSPHRASE ||
+ wifi_->error() == ERROR_BAD_WEPKEY) {
layout->StartRow(0, column_view_set_id);
layout->SkipColumns(1);
int id = IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_BAD_PASSPHRASE;
- if (wifi_.error() == ERROR_BAD_WEPKEY)
+ if (wifi_->error() == ERROR_BAD_WEPKEY)
id = IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_BAD_WEPKEY;
views::Label* label_error = new views::Label(l10n_util::GetString(id));
label_error->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
@@ -332,11 +337,11 @@
// Autoconnect checkbox
// Only show if this network is already remembered (a favorite).
- if (wifi_.favorite()) {
+ if (wifi_->favorite()) {
autoconnect_checkbox_ = new views::Checkbox(l10n_util::GetString(
IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_AUTO_CONNECT));
// For other network, default to autoconnect.
- bool autoconnect = other_network_ || wifi_.auto_connect();
+ bool autoconnect = other_network_ || wifi_->auto_connect();
autoconnect_checkbox_->SetChecked(autoconnect);
layout->StartRow(0, column_view_set_id);
layout->AddView(autoconnect_checkbox_, 3, 1);
« no previous file with comments | « chrome/browser/chromeos/options/wifi_config_view.h ('k') | chrome/browser/chromeos/options/wifi_config_view_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698