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

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

Issue 28713002: [Mac] Add option to reauthenticate the OS user before revealing passwords. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rerebase. Created 7 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
« no previous file with comments | « chrome/browser/ui/webui/options/password_manager_handler.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/options/password_manager_handler.cc
diff --git a/chrome/browser/ui/webui/options/password_manager_handler.cc b/chrome/browser/ui/webui/options/password_manager_handler.cc
index d1ef29a03bed018dc1194fb82b43d030aceec026..a420edb23303dcb933911fd379085f7d4fd9f8e7 100644
--- a/chrome/browser/ui/webui/options/password_manager_handler.cc
+++ b/chrome/browser/ui/webui/options/password_manager_handler.cc
@@ -5,13 +5,17 @@
#include "chrome/browser/ui/webui/options/password_manager_handler.h"
#include "base/bind.h"
+#include "base/command_line.h"
#include "base/prefs/pref_service.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/time/time.h"
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
+#include "chrome/browser/password_manager/password_manager_util.h"
#include "chrome/browser/password_manager/password_store_factory.h"
#include "chrome/browser/profiles/profile.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"
@@ -28,8 +32,9 @@ namespace options {
PasswordManagerHandler::PasswordManagerHandler()
: populater_(this),
- exception_populater_(this),
- is_user_authenticated_(false) {
+ exception_populater_(this) {
+ require_reauthentication_ = CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnablePasswordManagerReauthentication);
}
PasswordManagerHandler::~PasswordManagerHandler() {
@@ -157,9 +162,11 @@ void PasswordManagerHandler::RequestShowPassword(const ListValue* args) {
return;
}
- if (!is_user_authenticated_) {
- // TODO(dubroy): Insert actual authentication code here.
- is_user_authenticated_ = true;
+ if (IsAuthenticationRequired()) {
+ if (password_manager_util::AuthenticateUser())
+ last_authentication_time_ = base::TimeTicks::Now();
+ else
+ return;
}
// Call back the front end to reveal the password.
@@ -178,7 +185,7 @@ void PasswordManagerHandler::SetPasswordList() {
InitializeHandler();
ListValue entries;
- bool show_passwords = *show_passwords_ && is_user_authenticated_;
+ bool show_passwords = *show_passwords_ && !require_reauthentication_;
string16 placeholder(ASCIIToUTF16(" "));
for (size_t i = 0; i < password_list_.size(); ++i) {
ListValue* entry = new ListValue();
@@ -210,6 +217,12 @@ void PasswordManagerHandler::SetPasswordExceptionList() {
entries);
}
+bool PasswordManagerHandler::IsAuthenticationRequired() {
+ base::TimeDelta delta = base::TimeDelta::FromSeconds(60);
+ return require_reauthentication_ &&
+ (base::TimeTicks::Now() - last_authentication_time_) > delta;
+}
+
PasswordManagerHandler::ListPopulater::ListPopulater(
PasswordManagerHandler* page)
: page_(page),
« no previous file with comments | « chrome/browser/ui/webui/options/password_manager_handler.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698