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

Unified Diff: chrome/browser/ui/webui/options/password_manager_presenter.cc

Issue 71003002: Merge browser/ui/password and browser/ui/passwords. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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/ui/webui/options/password_manager_presenter.cc
diff --git a/chrome/browser/ui/webui/options/password_manager_presenter.cc b/chrome/browser/ui/webui/options/password_manager_presenter.cc
deleted file mode 100644
index a333f48bcd94148dcbe025c154c0dce4e0acd417..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/webui/options/password_manager_presenter.cc
+++ /dev/null
@@ -1,226 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/webui/options/password_manager_presenter.h"
-
-#include "base/bind.h"
-#include "base/command_line.h"
-#include "base/prefs/pref_service.h"
-#include "base/time/time.h"
-#include "base/values.h"
-#include "chrome/browser/password_manager/password_manager_util.h"
-#include "chrome/browser/password_manager/password_store_factory.h"
-#include "chrome/browser/ui/password/password_ui_view.h"
-#include "chrome/common/chrome_switches.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/common/url_constants.h"
-#include "components/autofill/core/common/password_form.h"
-#include "content/public/browser/user_metrics.h"
-
-namespace options {
-
-PasswordManagerPresenter::PasswordManagerPresenter(
- passwords_ui::PasswordUIView* password_view)
- : populater_(this),
- exception_populater_(this),
- password_view_(password_view) {
- DCHECK(password_view_);
- require_reauthentication_ = CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kEnablePasswordManagerReauthentication);
-}
-
-PasswordManagerPresenter::~PasswordManagerPresenter() {
- PasswordStore* store = GetPasswordStore();
- if (store)
- store->RemoveObserver(this);
-}
-
-void PasswordManagerPresenter::Initialize() {
- // Due to the way that handlers are (re)initialized under certain types of
- // navigation, the presenter may already be initialized. (See bugs 88986
- // and 86448). If this is the case, return immediately. This is a hack.
- // TODO(mdm): remove this hack once it is no longer necessary.
- if (!show_passwords_.GetPrefName().empty())
- return;
-
- show_passwords_.Init(
- prefs::kPasswordManagerAllowShowPasswords,
- password_view_->GetProfile()->GetPrefs(),
- base::Bind(&PasswordManagerPresenter::UpdatePasswordLists,
- base::Unretained(this)));
- // TODO(jhawkins) We should not cache web_ui()->GetProfile().See
- // crosbug.com/6304.
- PasswordStore* store = GetPasswordStore();
- if (store)
- store->AddObserver(this);
-}
-
-void PasswordManagerPresenter::OnLoginsChanged() {
- UpdatePasswordLists();
-}
-
-PasswordStore* PasswordManagerPresenter::GetPasswordStore() {
- return PasswordStoreFactory::GetForProfile(password_view_->GetProfile(),
- Profile::EXPLICIT_ACCESS).get();
-}
-
-void PasswordManagerPresenter::UpdatePasswordLists() {
- // Reset the current lists.
- password_list_.clear();
- password_exception_list_.clear();
-
- populater_.Populate();
- exception_populater_.Populate();
-}
-
-void PasswordManagerPresenter::HandleRemoveSavedPassword(size_t index) {
- DCHECK_LT(index, password_list_.size());
- PasswordStore* store = GetPasswordStore();
- if (!store)
- return;
- store->RemoveLogin(*password_list_[index]);
- content::RecordAction(
- content::UserMetricsAction("PasswordManager_HandleRemoveSavedPassword"));
-}
-
-void PasswordManagerPresenter::HandleRemovePasswordException(size_t index) {
- DCHECK_LT(index, password_exception_list_.size());
- PasswordStore* store = GetPasswordStore();
- if (!store)
- return;
- store->RemoveLogin(*password_exception_list_[index]);
- content::RecordAction(
- content::UserMetricsAction(
- "PasswordManager_HandleRemovePasswordException"));
-}
-
-void PasswordManagerPresenter::HandleRequestShowPassword(size_t index) {
- DCHECK_LT(index, password_list_.size());
- if (IsAuthenticationRequired()) {
- if (password_manager_util::AuthenticateUser())
- last_authentication_time_ = base::TimeTicks::Now();
- else
- return;
- }
- // Call back the front end to reveal the password.
- password_view_->ShowPassword(index, password_list_[index]->password_value);
-}
-
-const autofill::PasswordForm& PasswordManagerPresenter::GetPassword(
- size_t index) {
- DCHECK_LT(index, password_list_.size());
- return *password_list_[index];
-}
-
-const autofill::PasswordForm& PasswordManagerPresenter::GetPasswordException(
- size_t index) {
- DCHECK_LT(index, password_exception_list_.size());
- return *password_exception_list_[index];
-}
-
-void PasswordManagerPresenter::SetPasswordList() {
- // Due to the way that handlers are (re)initialized under certain types of
- // navigation, the presenter may already be initialized. (See bugs 88986
- // and 86448). If this is the case, return immediately. This is a hack.
- // If this is the case, initialize on demand. This is a hack.
- // TODO(mdm): remove this hack once it is no longer necessary.
- if (show_passwords_.GetPrefName().empty())
- Initialize();
-
- bool show_passwords = *show_passwords_ && !require_reauthentication_;
- password_view_->SetPasswordList(password_list_, show_passwords);
-}
-
-void PasswordManagerPresenter::SetPasswordExceptionList() {
- password_view_->SetPasswordExceptionList(password_exception_list_);
-}
-
-bool PasswordManagerPresenter::IsAuthenticationRequired() {
- base::TimeDelta delta = base::TimeDelta::FromSeconds(60);
- return require_reauthentication_ &&
- (base::TimeTicks::Now() - last_authentication_time_) > delta;
-}
-
-PasswordManagerPresenter::ListPopulater::ListPopulater(
- PasswordManagerPresenter* page)
- : page_(page),
- pending_login_query_(0) {
-}
-
-PasswordManagerPresenter::ListPopulater::~ListPopulater() {
-}
-
-PasswordManagerPresenter::PasswordListPopulater::PasswordListPopulater(
- PasswordManagerPresenter* page) : ListPopulater(page) {
-}
-
-void PasswordManagerPresenter::PasswordListPopulater::Populate() {
- PasswordStore* store = page_->GetPasswordStore();
- if (store != NULL) {
- if (pending_login_query_)
- store->CancelRequest(pending_login_query_);
-
- pending_login_query_ = store->GetAutofillableLogins(this);
- } else {
- LOG(ERROR) << "No password store! Cannot display passwords.";
- }
-}
-
-void PasswordManagerPresenter::PasswordListPopulater::
- OnPasswordStoreRequestDone(
- CancelableRequestProvider::Handle handle,
- const std::vector<autofill::PasswordForm*>& result) {
- DCHECK_EQ(pending_login_query_, handle);
- pending_login_query_ = 0;
- page_->password_list_.clear();
- page_->password_list_.insert(page_->password_list_.end(),
- result.begin(), result.end());
- page_->SetPasswordList();
-}
-
-void PasswordManagerPresenter::PasswordListPopulater::OnGetPasswordStoreResults(
- const std::vector<autofill::PasswordForm*>& results) {
- // TODO(kaiwang): Implement when I refactor
- // PasswordStore::GetAutofillableLogins and PasswordStore::GetBlacklistLogins.
- NOTIMPLEMENTED();
-}
-
-PasswordManagerPresenter::PasswordExceptionListPopulater::
- PasswordExceptionListPopulater(PasswordManagerPresenter* page)
- : ListPopulater(page) {
-}
-
-void PasswordManagerPresenter::PasswordExceptionListPopulater::Populate() {
- PasswordStore* store = page_->GetPasswordStore();
- if (store != NULL) {
- if (pending_login_query_)
- store->CancelRequest(pending_login_query_);
-
- pending_login_query_ = store->GetBlacklistLogins(this);
- } else {
- LOG(ERROR) << "No password store! Cannot display exceptions.";
- }
-}
-
-void PasswordManagerPresenter::PasswordExceptionListPopulater::
- OnPasswordStoreRequestDone(
- CancelableRequestProvider::Handle handle,
- const std::vector<autofill::PasswordForm*>& result) {
- DCHECK_EQ(pending_login_query_, handle);
- pending_login_query_ = 0;
- page_->password_exception_list_.clear();
- page_->password_exception_list_.insert(page_->password_exception_list_.end(),
- result.begin(), result.end());
- page_->SetPasswordExceptionList();
-}
-
-void PasswordManagerPresenter::PasswordExceptionListPopulater::
- OnGetPasswordStoreResults(
- const std::vector<autofill::PasswordForm*>& results) {
- // TODO(kaiwang): Implement when I refactor
- // PasswordStore::GetAutofillableLogins and PasswordStore::GetBlacklistLogins.
- NOTIMPLEMENTED();
-}
-
-} // namespace options

Powered by Google App Engine
This is Rietveld 408576698