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

Unified Diff: chrome/browser/ui/passwords/manage_passwords_ui_controller.cc

Issue 777423004: Skeleton code for experiment setup, which will determine should "Allow to collect URL?" bubble be s… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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: chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
index 00a4f7f27770f7109240ad446ad66cd3dac5de49..f7890f3d1931bfcd4bf7983a42fb2351022a50f9 100644
--- a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
+++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h"
+#include "base/json/json_writer.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/password_manager/password_store_factory.h"
@@ -15,8 +16,11 @@
#include "chrome/browser/ui/passwords/manage_passwords_icon.h"
#include "chrome/browser/ui/passwords/password_bubble_experiment.h"
#include "chrome/common/url_constants.h"
+#include "components/feedback/feedback_data.h"
+#include "components/feedback/feedback_util.h"
#include "components/password_manager/content/common/credential_manager_types.h"
#include "components/password_manager/core/browser/password_form_manager.h"
+#include "content/public/browser/browser_thread.h"
#include "content/public/browser/navigation_details.h"
#if defined(OS_ANDROID)
@@ -24,6 +28,7 @@
#endif
using autofill::PasswordFormMap;
+using feedback::FeedbackData;
using password_manager::PasswordFormManager;
namespace {
@@ -58,6 +63,49 @@ void DeepCopyMap(const autofill::PasswordFormMap& map,
} // namespace
+class ManagePasswordsUIController::URLCollectionFeedbackSender {
+ public:
+ explicit URLCollectionFeedbackSender(ManagePasswordsUIController* parent);
+ ~URLCollectionFeedbackSender() = default;
+
+ void SendFeedback();
+
+ private:
+ std::string FormReport();
+ static constexpr char kPasswordManagerURLCollectionBucket[] =
+ "PasswordManagerURLCollection";
+ ManagePasswordsUIController* parent_;
+};
+constexpr char ManagePasswordsUIController::URLCollectionFeedbackSender::
+ kPasswordManagerURLCollectionBucket[];
+
+ManagePasswordsUIController::URLCollectionFeedbackSender::
+ URLCollectionFeedbackSender(ManagePasswordsUIController* parent)
+ : parent_(parent) {
+}
+
+void ManagePasswordsUIController::URLCollectionFeedbackSender::SendFeedback() {
+ DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
+ scoped_refptr<FeedbackData> feedback_data = new FeedbackData();
+ feedback_data->set_category_tag(kPasswordManagerURLCollectionBucket);
+ feedback_data->set_description(FormReport());
+
+ feedback_data->set_image(make_scoped_ptr(new std::string));
+
+ feedback_data->set_page_url("");
+ feedback_data->set_user_email("");
+ feedback_data->set_context(parent_->web_contents()->GetBrowserContext());
+ feedback_util::SendReport(feedback_data);
+}
+
+std::string
+ManagePasswordsUIController::URLCollectionFeedbackSender::FormReport() {
+ base::DictionaryValue dict;
+ dict.SetString("url", parent_->origin().GetAsReferrer().spec());
+ std::string json;
+ base::JSONWriter::Write(&dict, &json);
+ return json;
+}
DEFINE_WEB_CONTENTS_USER_DATA_KEY(ManagePasswordsUIController);
ManagePasswordsUIController::ManagePasswordsUIController(
@@ -196,6 +244,12 @@ void ManagePasswordsUIController::SavePassword() {
UpdateBubbleAndIconVisibility();
}
+void ManagePasswordsUIController::SendURLFeedback() {
+ ManagePasswordsUIController::URLCollectionFeedbackSender feedback_sender(
+ this);
+ feedback_sender.SendFeedback();
+}
+
void ManagePasswordsUIController::ChooseCredential(
bool was_chosen,
const autofill::PasswordForm& form) {

Powered by Google App Engine
This is Rietveld 408576698