Index: components/autofill/content/renderer/password_autofill_agent.h |
diff --git a/components/autofill/content/renderer/password_autofill_agent.h b/components/autofill/content/renderer/password_autofill_agent.h |
index 503621bfda784a66f10f0c755a7f1af015e40b47..72ad5b02f1c932188afa3b97b51ecbbbac607f3b 100644 |
--- a/components/autofill/content/renderer/password_autofill_agent.h |
+++ b/components/autofill/content/renderer/password_autofill_agent.h |
@@ -9,10 +9,12 @@ |
#include <vector> |
#include "base/memory/linked_ptr.h" |
+#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
#include "components/autofill/core/common/password_form_fill_data.h" |
#include "content/public/renderer/render_view_observer.h" |
#include "third_party/WebKit/public/web/WebInputElement.h" |
+#include "third_party/WebKit/public/web/WebUserGestureIndicator.h" |
namespace blink { |
class WebInputElement; |
@@ -79,6 +81,26 @@ class PasswordAutofillAgent : public content::RenderViewObserver { |
typedef std::map<blink::WebFrame*, |
linked_ptr<PasswordForm> > FrameToPasswordFormMap; |
+ class AutofillWebUserGestureHandler : public blink::WebUserGestureHandler { |
+ public: |
+ AutofillWebUserGestureHandler(PasswordAutofillAgent* agent); |
+ virtual ~AutofillWebUserGestureHandler(); |
+ |
+ void addElement(const blink::WebInputElement& element) { |
+ elements_.push_back(element); |
+ } |
+ |
+ void clearElements() { |
+ elements_.clear(); |
+ } |
+ |
+ virtual void onGesture(); |
+ |
+ private: |
+ PasswordAutofillAgent* agent_; |
+ std::vector<blink::WebInputElement> elements_; |
+ }; |
+ |
// RenderViewObserver: |
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
virtual void DidStartProvisionalLoad(blink::WebFrame* frame) OVERRIDE; |
@@ -144,6 +166,10 @@ class PasswordAutofillAgent : public content::RenderViewObserver { |
blink::WebFrame* CurrentOrChildFrameWithSavedForms( |
const blink::WebFrame* current_frame); |
+ void set_user_gesture_occurred(bool occurred) { |
+ user_gesture_occurred_ = occurred; |
+ } |
+ |
// The logins we have filled so far with their associated info. |
LoginToPasswordInfoMap login_to_password_info_; |
@@ -157,6 +183,10 @@ class PasswordAutofillAgent : public content::RenderViewObserver { |
// but the submit may still fail (i.e. doesn't pass JavaScript validation). |
FrameToPasswordFormMap provisionally_saved_forms_; |
+ scoped_ptr<AutofillWebUserGestureHandler> gesture_handler_; |
+ |
+ bool user_gesture_occurred_; |
+ |
base::WeakPtrFactory<PasswordAutofillAgent> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(PasswordAutofillAgent); |