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

Unified Diff: chrome/browser/views/autofill_profiles_view_win.cc

Issue 3140024: Implement policy for disabling auto fill. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: regenerate XIBs in order to avoid maxID corruption. Created 10 years, 4 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
« no previous file with comments | « chrome/browser/views/autofill_profiles_view_win.h ('k') | chrome/browser/views/options/content_page_view.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/views/autofill_profiles_view_win.cc
diff --git a/chrome/browser/views/autofill_profiles_view_win.cc b/chrome/browser/views/autofill_profiles_view_win.cc
index 56708f06aec7b99de0eb1d347eb9d5282a6242db..5417728d055299c05eb55c5d1e5bbb3ac5e07463 100644
--- a/chrome/browser/views/autofill_profiles_view_win.cc
+++ b/chrome/browser/views/autofill_profiles_view_win.cc
@@ -24,6 +24,7 @@
#include "chrome/browser/profile.h"
#include "chrome/browser/views/list_background.h"
#include "chrome/browser/window_sizer.h"
+#include "chrome/common/notification_details.h"
#include "chrome/common/pref_names.h"
#include "gfx/canvas.h"
#include "gfx/native_theme_win.h"
@@ -84,6 +85,7 @@ AutoFillProfilesView::AutoFillProfilesView(
billing_model_(true),
child_dialog_opened_(false) {
DCHECK(preferences_);
+ enable_auto_fill_.Init(prefs::kAutoFillEnabled, preferences_, this);
if (imported_profile) {
profiles_set_.push_back(EditableSetInfo(imported_profile));
}
@@ -152,7 +154,6 @@ void AutoFillProfilesView::AddClicked(int group_type) {
}
void AutoFillProfilesView::EditClicked() {
- DCHECK(scroll_view_);
int index = scroll_view_->FirstSelectedRow();
if (index == -1)
return; // Happens if user double clicks and the table is empty.
@@ -173,8 +174,6 @@ void AutoFillProfilesView::EditClicked() {
}
void AutoFillProfilesView::DeleteClicked() {
- DCHECK(scroll_view_);
- DCHECK(table_model_.get());
DCHECK_GT(scroll_view_->SelectedRowCount(), 0);
int last_view_row = -1;
for (views::TableView::iterator i = scroll_view_->SelectionBegin();
@@ -187,17 +186,13 @@ void AutoFillProfilesView::DeleteClicked() {
if (last_view_row >= 0)
scroll_view_->Select(scroll_view_->ViewToModel(last_view_row));
UpdateBillingModel();
- UpdateButtonState();
+ UpdateWidgetState();
}
-void AutoFillProfilesView::UpdateButtonState() {
- DCHECK(personal_data_manager_);
- DCHECK(scroll_view_);
- DCHECK(add_address_button_);
- DCHECK(add_credit_card_button_);
- DCHECK(edit_button_);
- DCHECK(remove_button_);
- bool autofill_enabled = preferences_->GetBoolean(prefs::kAutoFillEnabled);
+void AutoFillProfilesView::UpdateWidgetState() {
+ bool autofill_enabled = enable_auto_fill_.GetValue();
+ enable_auto_fill_button_->SetChecked(autofill_enabled);
+ enable_auto_fill_button_->SetEnabled(!enable_auto_fill_.IsManaged());
scroll_view_->SetEnabled(autofill_enabled);
add_address_button_->SetEnabled(personal_data_manager_->IsDataLoaded() &&
!child_dialog_opened_ && autofill_enabled);
@@ -227,12 +222,12 @@ void AutoFillProfilesView::UpdateBillingModel() {
void AutoFillProfilesView::ChildWindowOpened() {
child_dialog_opened_ = true;
- UpdateButtonState();
+ UpdateWidgetState();
}
void AutoFillProfilesView::ChildWindowClosed() {
child_dialog_opened_ = false;
- UpdateButtonState();
+ UpdateWidgetState();
}
SkBitmap* AutoFillProfilesView::GetWarningBitmap(bool good) {
@@ -318,7 +313,6 @@ std::wstring AutoFillProfilesView::GetWindowTitle() const {
}
void AutoFillProfilesView::WindowClosing() {
- DCHECK(focus_manager_);
focus_manager_->RemoveFocusChangeListener(this);
instance_ = NULL;
}
@@ -333,7 +327,6 @@ bool AutoFillProfilesView::Cancel() {
}
bool AutoFillProfilesView::Accept() {
- DCHECK(observer_);
std::vector<AutoFillProfile> profiles;
profiles.reserve(profiles_set_.size());
std::vector<EditableSetInfo>::iterator it;
@@ -345,7 +338,6 @@ bool AutoFillProfilesView::Accept() {
for (it = credit_card_set_.begin(); it != credit_card_set_.end(); ++it) {
credit_cards.push_back(it->credit_card);
}
- DCHECK(preferences_);
observer_->OnAutoFillDialogApply(&profiles, &credit_cards);
return true;
}
@@ -367,9 +359,9 @@ void AutoFillProfilesView::ButtonPressed(views::Button* sender,
UserMetricsAction action(enabled ? "Options_FormAutofill_Enable" :
"Options_FormAutofill_Disable");
UserMetrics::RecordAction(action, profile_);
- preferences_->SetBoolean(prefs::kAutoFillEnabled, enabled);
+ enable_auto_fill_.SetValueIfNotManaged(enabled);
preferences_->ScheduleSavePersistentPrefs();
- UpdateButtonState();
+ UpdateWidgetState();
}
}
@@ -395,7 +387,7 @@ void AutoFillProfilesView::FocusWillChange(views::View* focused_before,
/////////////////////////////////////////////////////////////////////////////
// AutoFillProfilesView, views::TableViewObserver implementations:
void AutoFillProfilesView::OnSelectionChanged() {
- UpdateButtonState();
+ UpdateWidgetState();
}
void AutoFillProfilesView::OnDoubleClick() {
@@ -412,6 +404,17 @@ void AutoFillProfilesView::OnPersonalDataLoaded() {
}
/////////////////////////////////////////////////////////////////////////////
+// AutoFillProfilesView, NotificationObserver implementation.
+void AutoFillProfilesView::Observe(NotificationType type,
+ const NotificationSource& source,
+ const NotificationDetails& details) {
+ DCHECK_EQ(NotificationType::PREF_CHANGED, type.value);
+ const std::string* pref_name = Details<std::string>(details).ptr();
+ if (!pref_name || *pref_name == prefs::kAutoFillEnabled)
+ UpdateWidgetState();
+}
+
+/////////////////////////////////////////////////////////////////////////////
// AutoFillProfilesView, private:
void AutoFillProfilesView::Init() {
GetData();
@@ -419,8 +422,6 @@ void AutoFillProfilesView::Init() {
enable_auto_fill_button_ = new views::Checkbox(
l10n_util::GetString(IDS_OPTIONS_AUTOFILL_ENABLE));
enable_auto_fill_button_->set_listener(this);
- enable_auto_fill_button_->SetChecked(
- preferences_->GetBoolean(prefs::kAutoFillEnabled));
billing_model_.SetAddressLabels(profiles_set_);
@@ -482,10 +483,9 @@ void AutoFillProfilesView::Init() {
focus_manager_ = GetFocusManager();
- DCHECK(focus_manager_);
focus_manager_->AddFocusChangeListener(this);
- UpdateButtonState();
+ UpdateWidgetState();
}
void AutoFillProfilesView::GetData() {
@@ -520,7 +520,7 @@ void AutoFillProfilesView::GetData() {
// Update state only if buttons already created.
if (add_address_button_) {
- UpdateButtonState();
+ UpdateWidgetState();
}
}
« no previous file with comments | « chrome/browser/views/autofill_profiles_view_win.h ('k') | chrome/browser/views/options/content_page_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698