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

Unified Diff: components/password_manager/core/browser/password_manager.cc

Issue 1415533013: Fix password manager internals renderer reporting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 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: components/password_manager/core/browser/password_manager.cc
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
index 99be5089ba36df629ff00fafd278fd6fd660248c..e94d49cf7b023b2f00a9e2f8162d23eb95902c4c 100644
--- a/components/password_manager/core/browser/password_manager.cc
+++ b/components/password_manager/core/browser/password_manager.cc
@@ -20,6 +20,7 @@
#include "components/password_manager/core/browser/affiliation_utils.h"
#include "components/password_manager/core/browser/browser_save_password_progress_logger.h"
#include "components/password_manager/core/browser/keychain_migration_status_mac.h"
+#include "components/password_manager/core/browser/log_router.h"
#include "components/password_manager/core/browser/password_autofill_manager.h"
#include "components/password_manager/core/browser/password_form_manager.h"
#include "components/password_manager/core/browser/password_manager_client.h"
@@ -172,14 +173,38 @@ void PasswordManager::RegisterLocalPrefs(PrefRegistrySimple* registry) {
#endif
PasswordManager::PasswordManager(PasswordManagerClient* client)
- : client_(client) {
+ : client_(client),
+ log_router_(client_->GetLogRouter()),
+ can_use_log_router_(log_router_ ? log_router_->RegisterManager(this)
vasilii 2015/11/12 16:27:34 Can't you just add a method to LogRouter to reques
vabr (Chromium) 2015/11/12 21:55:43 I could, but what would be the advantage?
+ : false) {
DCHECK(client_);
}
PasswordManager::~PasswordManager() {
+ if (log_router_)
+ log_router_->UnregisterManager(this);
FOR_EACH_OBSERVER(LoginModelObserver, observers_, OnLoginModelDestroying());
}
+void PasswordManager::OnLogRouterAvailabilityChanged(bool router_can_be_used) {
+ DCHECK(log_router_); // |log_router_| should be calling this method.
+ if (can_use_log_router_ == router_can_be_used)
+ return;
+ can_use_log_router_ = router_can_be_used;
+
+ client_->NotifyDriversAboutLoggingAvailability(can_use_log_router_);
+}
+
+void PasswordManager::LogSavePasswordProgress(const std::string& text) const {
+ if (!IsLoggingActive())
+ return;
+ log_router_->ProcessLog(text);
+}
+
+bool PasswordManager::IsLoggingActive() const {
+ return can_use_log_router_ && log_router_;
+}
+
void PasswordManager::GenerationAvailableForForm(const PasswordForm& form) {
DCHECK(client_->IsSavingAndFillingEnabledForCurrentPage());
@@ -223,8 +248,8 @@ void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) {
client_->IsSavingAndFillingEnabledForCurrentPage();
scoped_ptr<BrowserSavePasswordProgressLogger> logger;
- if (client_->IsLoggingActive()) {
- logger.reset(new BrowserSavePasswordProgressLogger(client_));
+ if (IsLoggingActive()) {
+ logger.reset(new BrowserSavePasswordProgressLogger(this));
logger->LogMessage(Logger::STRING_PROVISIONALLY_SAVE_PASSWORD_METHOD);
logger->LogPasswordForm(Logger::STRING_PROVISIONALLY_SAVE_PASSWORD_FORM,
form);
@@ -452,8 +477,8 @@ void PasswordManager::CreatePendingLoginManagers(
password_manager::PasswordManagerDriver* driver,
const std::vector<PasswordForm>& forms) {
scoped_ptr<BrowserSavePasswordProgressLogger> logger;
- if (client_->IsLoggingActive()) {
- logger.reset(new BrowserSavePasswordProgressLogger(client_));
+ if (IsLoggingActive()) {
+ logger.reset(new BrowserSavePasswordProgressLogger(this));
logger->LogMessage(Logger::STRING_CREATE_LOGIN_MANAGERS_METHOD);
}
@@ -525,8 +550,8 @@ void PasswordManager::CreatePendingLoginManagers(
bool PasswordManager::CanProvisionalManagerSave() {
scoped_ptr<BrowserSavePasswordProgressLogger> logger;
- if (client_->IsLoggingActive()) {
- logger.reset(new BrowserSavePasswordProgressLogger(client_));
+ if (IsLoggingActive()) {
+ logger.reset(new BrowserSavePasswordProgressLogger(this));
logger->LogMessage(Logger::STRING_CAN_PROVISIONAL_MANAGER_SAVE_METHOD);
}
@@ -566,8 +591,8 @@ void PasswordManager::OnPasswordFormsRendered(
bool did_stop_loading) {
CreatePendingLoginManagers(driver, visible_forms);
scoped_ptr<BrowserSavePasswordProgressLogger> logger;
- if (client_->IsLoggingActive()) {
- logger.reset(new BrowserSavePasswordProgressLogger(client_));
+ if (IsLoggingActive()) {
+ logger.reset(new BrowserSavePasswordProgressLogger(this));
logger->LogMessage(Logger::STRING_ON_PASSWORD_FORMS_RENDERED_METHOD);
}
@@ -643,8 +668,8 @@ void PasswordManager::OnInPageNavigation(
password_manager::PasswordManagerDriver* driver,
const PasswordForm& password_form) {
scoped_ptr<BrowserSavePasswordProgressLogger> logger;
- if (client_->IsLoggingActive()) {
- logger.reset(new BrowserSavePasswordProgressLogger(client_));
+ if (IsLoggingActive()) {
+ logger.reset(new BrowserSavePasswordProgressLogger(this));
logger->LogMessage(Logger::STRING_ON_IN_PAGE_NAVIGATION);
}
@@ -658,8 +683,8 @@ void PasswordManager::OnInPageNavigation(
void PasswordManager::OnLoginSuccessful() {
scoped_ptr<BrowserSavePasswordProgressLogger> logger;
- if (client_->IsLoggingActive()) {
- logger.reset(new BrowserSavePasswordProgressLogger(client_));
+ if (IsLoggingActive()) {
+ logger.reset(new BrowserSavePasswordProgressLogger(this));
logger->LogMessage(Logger::STRING_ON_ASK_USER_OR_SAVE_PASSWORD);
}
@@ -722,8 +747,8 @@ void PasswordManager::Autofill(password_manager::PasswordManagerDriver* driver,
DCHECK_EQ(PasswordForm::SCHEME_HTML, preferred_match.scheme);
scoped_ptr<BrowserSavePasswordProgressLogger> logger;
- if (client_->IsLoggingActive()) {
- logger.reset(new BrowserSavePasswordProgressLogger(client_));
+ if (IsLoggingActive()) {
+ logger.reset(new BrowserSavePasswordProgressLogger(this));
logger->LogMessage(Logger::STRING_PASSWORDMANAGER_AUTOFILL);
}
@@ -749,8 +774,8 @@ void PasswordManager::AutofillHttpAuth(
DCHECK_NE(PasswordForm::SCHEME_HTML, preferred_match.scheme);
scoped_ptr<BrowserSavePasswordProgressLogger> logger;
- if (client_->IsLoggingActive()) {
- logger.reset(new BrowserSavePasswordProgressLogger(client_));
+ if (IsLoggingActive()) {
+ logger.reset(new BrowserSavePasswordProgressLogger(this));
logger->LogMessage(Logger::STRING_PASSWORDMANAGER_AUTOFILLHTTPAUTH);
logger->LogBoolean(Logger::STRING_LOGINMODELOBSERVER_PRESENT,
observers_.might_have_observers());

Powered by Google App Engine
This is Rietveld 408576698