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

Side by Side Diff: chrome/browser/password_manager/password_store.cc

Issue 106053008: [Mac] Passwords: Don't always prompt to access passwords saved by other browsers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix yet another compile failure. Created 7 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/password_manager/password_store.h" 5 #include "chrome/browser/password_manager/password_store.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/message_loop/message_loop_proxy.h" 10 #include "base/message_loop/message_loop_proxy.h"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 void PasswordStore::RemoveLoginsCreatedBetween(const base::Time& delete_begin, 113 void PasswordStore::RemoveLoginsCreatedBetween(const base::Time& delete_begin,
114 const base::Time& delete_end) { 114 const base::Time& delete_end) {
115 ScheduleTask(base::Bind(&PasswordStore::WrapModificationTask, this, 115 ScheduleTask(base::Bind(&PasswordStore::WrapModificationTask, this,
116 base::Closure( 116 base::Closure(
117 base::Bind(&PasswordStore::RemoveLoginsCreatedBetweenImpl, this, 117 base::Bind(&PasswordStore::RemoveLoginsCreatedBetweenImpl, this,
118 delete_begin, delete_end)))); 118 delete_begin, delete_end))));
119 } 119 }
120 120
121 CancelableTaskTracker::TaskId PasswordStore::GetLogins( 121 CancelableTaskTracker::TaskId PasswordStore::GetLogins(
122 const PasswordForm& form, 122 const PasswordForm& form,
123 AuthorizationPromptPolicy prompt_policy,
123 PasswordStoreConsumer* consumer) { 124 PasswordStoreConsumer* consumer) {
124 // Per http://crbug.com/121738, we deliberately ignore saved logins for 125 // Per http://crbug.com/121738, we deliberately ignore saved logins for
125 // http*://www.google.com/ that were stored prior to 2012. (Google now uses 126 // http*://www.google.com/ that were stored prior to 2012. (Google now uses
126 // https://accounts.google.com/ for all login forms, so these should be 127 // https://accounts.google.com/ for all login forms, so these should be
127 // unused.) We don't delete them just yet, and they'll still be visible in the 128 // unused.) We don't delete them just yet, and they'll still be visible in the
128 // password manager, but we won't use them to autofill any forms. This is a 129 // password manager, but we won't use them to autofill any forms. This is a
129 // security feature to help minimize damage that can be done by XSS attacks. 130 // security feature to help minimize damage that can be done by XSS attacks.
130 // TODO(mdm): actually delete them at some point, say M24 or so. 131 // TODO(mdm): actually delete them at some point, say M24 or so.
131 base::Time ignore_logins_cutoff; // the null time 132 base::Time ignore_logins_cutoff; // the null time
132 if (form.scheme == PasswordForm::SCHEME_HTML && 133 if (form.scheme == PasswordForm::SCHEME_HTML &&
133 (form.signon_realm == "http://www.google.com" || 134 (form.signon_realm == "http://www.google.com" ||
134 form.signon_realm == "http://www.google.com/" || 135 form.signon_realm == "http://www.google.com/" ||
135 form.signon_realm == "https://www.google.com" || 136 form.signon_realm == "https://www.google.com" ||
136 form.signon_realm == "https://www.google.com/")) { 137 form.signon_realm == "https://www.google.com/")) {
137 static const base::Time::Exploded exploded_cutoff = 138 static const base::Time::Exploded exploded_cutoff =
138 { 2012, 1, 0, 1, 0, 0, 0, 0 }; // 00:00 Jan 1 2012 139 { 2012, 1, 0, 1, 0, 0, 0, 0 }; // 00:00 Jan 1 2012
139 ignore_logins_cutoff = base::Time::FromUTCExploded(exploded_cutoff); 140 ignore_logins_cutoff = base::Time::FromUTCExploded(exploded_cutoff);
140 } 141 }
141 142
142 CancelableTaskTracker::IsCanceledCallback is_canceled_cb; 143 CancelableTaskTracker::IsCanceledCallback is_canceled_cb;
143 CancelableTaskTracker::TaskId id = 144 CancelableTaskTracker::TaskId id =
144 consumer->cancelable_task_tracker()->NewTrackedTaskId(&is_canceled_cb); 145 consumer->cancelable_task_tracker()->NewTrackedTaskId(&is_canceled_cb);
145 146
146 ConsumerCallbackRunner callback_runner = 147 ConsumerCallbackRunner callback_runner =
147 base::Bind(&PostConsumerCallback, 148 base::Bind(&PostConsumerCallback,
148 base::MessageLoopProxy::current(), 149 base::MessageLoopProxy::current(),
149 is_canceled_cb, 150 is_canceled_cb,
150 consumer, 151 consumer,
151 ignore_logins_cutoff); 152 ignore_logins_cutoff);
152 ScheduleTask( 153 ScheduleTask(base::Bind(&PasswordStore::GetLoginsImpl,
153 base::Bind(&PasswordStore::GetLoginsImpl, this, form, callback_runner)); 154 this, form, prompt_policy, callback_runner));
154 return id; 155 return id;
155 } 156 }
156 157
157 CancelableRequestProvider::Handle PasswordStore::GetAutofillableLogins( 158 CancelableRequestProvider::Handle PasswordStore::GetAutofillableLogins(
158 PasswordStoreConsumer* consumer) { 159 PasswordStoreConsumer* consumer) {
159 return Schedule(&PasswordStore::GetAutofillableLoginsImpl, consumer); 160 return Schedule(&PasswordStore::GetAutofillableLoginsImpl, consumer);
160 } 161 }
161 162
162 CancelableRequestProvider::Handle PasswordStore::GetBlacklistLogins( 163 CancelableRequestProvider::Handle PasswordStore::GetBlacklistLogins(
163 PasswordStoreConsumer* consumer) { 164 PasswordStoreConsumer* consumer) {
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 #endif // !defined(OS_MACOSX) 241 #endif // !defined(OS_MACOSX)
241 BrowserThread::PostTask( 242 BrowserThread::PostTask(
242 BrowserThread::UI, FROM_HERE, 243 BrowserThread::UI, FROM_HERE,
243 base::Bind(&PasswordStore::NotifyLoginsChanged, this)); 244 base::Bind(&PasswordStore::NotifyLoginsChanged, this));
244 } 245 }
245 246
246 void PasswordStore::NotifyLoginsChanged() { 247 void PasswordStore::NotifyLoginsChanged() {
247 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 248 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
248 FOR_EACH_OBSERVER(Observer, observers_, OnLoginsChanged()); 249 FOR_EACH_OBSERVER(Observer, observers_, OnLoginsChanged());
249 } 250 }
OLDNEW
« no previous file with comments | « chrome/browser/password_manager/password_store.h ('k') | chrome/browser/password_manager/password_store_default.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698