Index: components/password_manager/core/browser/password_store_default.cc |
diff --git a/components/password_manager/core/browser/password_store_default.cc b/components/password_manager/core/browser/password_store_default.cc |
index 95eee9064822d1a3e433ad3579495b8f70dff260..26599ceb174c4494f717213aa78f8ff1f2f2f617 100644 |
--- a/components/password_manager/core/browser/password_store_default.cc |
+++ b/components/password_manager/core/browser/password_store_default.cc |
@@ -10,6 +10,7 @@ |
#include "base/prefs/pref_service.h" |
#include "base/stl_util.h" |
#include "components/password_manager/core/browser/password_store_change.h" |
+#include "url/origin.h" |
using autofill::PasswordForm; |
@@ -80,6 +81,26 @@ PasswordStoreChangeList PasswordStoreDefault::RemoveLoginImpl( |
return changes; |
} |
+PasswordStoreChangeList PasswordStoreDefault::RemoveLoginsByOriginAndTimeImpl( |
+ const url::Origin& origin, |
+ base::Time delete_begin, |
+ base::Time delete_end) { |
+ ScopedVector<autofill::PasswordForm> forms; |
+ PasswordStoreChangeList changes; |
+ if (login_db_ && |
+ login_db_->GetLoginsCreatedBetween(delete_begin, delete_end, &forms)) { |
+ for (autofill::PasswordForm* form : forms) { |
+ if (origin.IsSameOriginWith(url::Origin(form->origin)) && |
+ login_db_->RemoveLogin(*form)) |
+ changes.push_back( |
+ PasswordStoreChange(PasswordStoreChange::REMOVE, *form)); |
+ } |
+ if (!changes.empty()) |
+ LogStatsForBulkDeletion(changes.size()); |
+ } |
+ return changes; |
+} |
+ |
PasswordStoreChangeList PasswordStoreDefault::RemoveLoginsCreatedBetweenImpl( |
base::Time delete_begin, |
base::Time delete_end) { |