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

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

Issue 794133002: [Password Manager] Add UMA signals to understand how often the password form submit navigate… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 6 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 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 dbd57f0b64da98d4bd8b6c7f12a993151ae9d274..a9b95a430ede672f89d5aa071d7576fc62696dd6 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/common/password_manager_pref_names.h"
#include "components/password_manager/core/common/password_manager_switches.h"
#include "components/pref_registry/pref_registry_syncable.h"
+#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
#if defined(OS_WIN)
#include "base/prefs/pref_registry_simple.h"
@@ -97,6 +98,16 @@ bool URLsEqualUpToHttpHttpsSubstitution(const GURL& a, const GURL& b) {
return false;
}
+// Helper UMA reporting function for differences in URLs during form submission.
+void RecordWhetherTargetDomainDiffers(const GURL& src, const GURL& target) {
+ bool target_domain_differs =
+ !net::registry_controlled_domains::SameDomainOrHost(
+ src, target,
+ net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES);
+ UMA_HISTOGRAM_BOOLEAN("PasswordManager.SubmitNavigatesToDifferentDomain",
+ target_domain_differs);
+}
+
} // namespace
const char PasswordManager::kOtherPossibleUsernamesExperiment[] =
@@ -309,6 +320,11 @@ void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) {
}
manager->ProvisionallySave(provisionally_saved_form, action);
provisional_save_manager_.swap(manager);
+
+ // Cache the user-visible URL (i.e., the one seen in the omnibox). Once the
+ // post-submit navigation concludes, we compare the landing URL against the
+ // cached and report the difference through UMA.
+ main_frame_url_ = client_->GetMainFrameURL();
}
void PasswordManager::RecordFailure(ProvisionalSaveFailure failure,
@@ -574,6 +590,8 @@ void PasswordManager::AskUserOrSavePassword() {
}
provisional_save_manager_->SubmitPassed();
+ RecordWhetherTargetDomainDiffers(main_frame_url_, client_->GetMainFrameURL());
+
if (ShouldPromptUserToSavePassword()) {
if (logger)
logger->LogMessage(Logger::STRING_DECISION_ASK);

Powered by Google App Engine
This is Rietveld 408576698