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

Unified Diff: chrome/browser/password_manager/password_generation_manager.h

Issue 151503006: Re-land r248110 with ASAN error fixed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 11 months 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/password_manager/password_generation_manager.h
diff --git a/chrome/browser/password_manager/password_generation_manager.h b/chrome/browser/password_manager/password_generation_manager.h
index 6d0a7ffd1fe86953737c2b29d24b36d98b00842c..3eb4cbdf8b8e22e131113d944faad83659ebf8de 100644
--- a/chrome/browser/password_manager/password_generation_manager.h
+++ b/chrome/browser/password_manager/password_generation_manager.h
@@ -7,13 +7,17 @@
#include "base/basictypes.h"
#include "base/memory/scoped_ptr.h"
+#include "base/memory/weak_ptr.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/browser/web_contents_user_data.h"
+#include "ui/gfx/rect.h"
namespace autofill {
struct FormData;
class FormStructure;
class PasswordGenerator;
+class PasswordGenerationPopupControllerImpl;
+class PasswordGenerationPopupObserver;
struct PasswordForm;
}
@@ -46,6 +50,12 @@ class PasswordGenerationManager
void DetectAccountCreationForms(
const std::vector<autofill::FormStructure*>& forms);
+ // Hide any visible password generation related popups.
+ void HidePopup();
+
+ // Observer for PasswordGenerationPopup events. Used for testing.
+ void SetTestObserver(autofill::PasswordGenerationPopupObserver* observer);
+
protected:
explicit PasswordGenerationManager(content::WebContents* contents);
@@ -65,16 +75,33 @@ class PasswordGenerationManager
content::RenderViewHost* host,
const std::vector<autofill::FormData>& forms);
- // Causes the password generation bubble UI to be shown for the specified
- // form. The popup will be anchored at |icon_bounds|. The generated
- // password will be no longer than |max_length|.
- void OnShowPasswordGenerationPopup(const gfx::Rect& icon_bounds,
+ // Given |bounds| in the renderers coordinate system, return the same bounds
+ // in the screens coordinate system.
+ gfx::RectF GetBoundsInScreenSpace(const gfx::RectF& bounds);
+
+ // Causes the password generation UI to be shown for the specified form.
+ // The popup will be anchored at |element_bounds|. The generated password
+ // will be no longer than |max_length|.
+ void OnShowPasswordGenerationPopup(const gfx::RectF& element_bounds,
int max_length,
const autofill::PasswordForm& form);
+ // Causes the password editing UI to be shown anchored at |element_bounds|.
+ void OnShowPasswordEditingPopup(const gfx::RectF& element_bounds);
+
+ // Hide any visible UI.
+ void OnHidePasswordGenerationPopup();
+
+ // Observer for password generation popup.
+ autofill::PasswordGenerationPopupObserver* observer_;
+
// Controls how passwords are generated.
scoped_ptr<autofill::PasswordGenerator> password_generator_;
+ // Controls the popup
+ base::WeakPtr<
+ autofill::PasswordGenerationPopupControllerImpl> popup_controller_;
+
DISALLOW_COPY_AND_ASSIGN(PasswordGenerationManager);
};

Powered by Google App Engine
This is Rietveld 408576698