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

Unified Diff: components/autofill/content/renderer/autofill_agent.cc

Issue 22926033: Enable password saving for dynamic password forms (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: test added Created 7 years, 3 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: components/autofill/content/renderer/autofill_agent.cc
diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc
index 8f80e4fcba27b56f4cf47938dca1b5139cdacf5f..da8fcaa8101e67e59369eb5f1ce6c755f0f6f81e 100644
--- a/components/autofill/content/renderer/autofill_agent.cc
+++ b/components/autofill/content/renderer/autofill_agent.cc
@@ -184,6 +184,7 @@ void AutofillAgent::DidFinishDocumentLoad(WebFrame* frame) {
std::vector<FormData> forms;
bool has_more_forms = false;
if (!frame->parent()) {
+ topmost_frame_ = frame;
form_elements_.clear();
has_more_forms = form_cache_.ExtractFormsAndFormElements(
*frame, kRequiredAutofillFields, &forms, &form_elements_);
@@ -209,6 +210,9 @@ void AutofillAgent::DidCommitProvisionalLoad(WebFrame* frame,
void AutofillAgent::FrameDetached(WebFrame* frame) {
form_cache_.ResetFrame(*frame);
+ if (!frame->parent())
+ // |frame| is about to be destroyed so we need to clear |top_most_frame_|.
+ topmost_frame_ = NULL;
}
void AutofillAgent::WillSubmitForm(WebFrame* frame,
@@ -610,6 +614,13 @@ void AutofillAgent::HideAutofillUI() {
// TODO(isherman): Decide if we want to support autofill with AJAX.
void AutofillAgent::didAssociateFormControls(
const WebKit::WebVector<WebKit::WebNode>& nodes) {
+ for (size_t i = 0; i < nodes.size(); ++i) {
+ WebKit::WebNode node = nodes[i];
+ if (node.document().frame() == topmost_frame_) {
Ilya Sherman 2013/09/10 01:27:58 Do we really need to cache |topmost_frame_|, or ca
Garrett Casto 2013/09/10 17:13:45 Could you put a comment here as to why we are only
guohui 2013/09/13 15:09:39 Done.
+ password_autofill_agent_->OnDynamicFormsSeen(topmost_frame_);
+ return;
+ }
+ }
}
} // namespace autofill

Powered by Google App Engine
This is Rietveld 408576698