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

Side by Side Diff: components/autofill/content/renderer/password_autofill_agent.cc

Issue 226093007: Convert Chrome usages of WebFrame to WebLocalFrame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/autofill/content/renderer/password_autofill_agent.h" 5 #include "components/autofill/content/renderer/password_autofill_agent.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 } 448 }
449 449
450 void PasswordAutofillAgent::DidStartLoading() { 450 void PasswordAutofillAgent::DidStartLoading() {
451 if (usernames_usage_ != NOTHING_TO_AUTOFILL) { 451 if (usernames_usage_ != NOTHING_TO_AUTOFILL) {
452 UMA_HISTOGRAM_ENUMERATION("PasswordManager.OtherPossibleUsernamesUsage", 452 UMA_HISTOGRAM_ENUMERATION("PasswordManager.OtherPossibleUsernamesUsage",
453 usernames_usage_, OTHER_POSSIBLE_USERNAMES_MAX); 453 usernames_usage_, OTHER_POSSIBLE_USERNAMES_MAX);
454 usernames_usage_ = NOTHING_TO_AUTOFILL; 454 usernames_usage_ = NOTHING_TO_AUTOFILL;
455 } 455 }
456 } 456 }
457 457
458 void PasswordAutofillAgent::DidFinishDocumentLoad(blink::WebFrame* frame) { 458 void PasswordAutofillAgent::DidFinishDocumentLoad(blink::WebLocalFrame* frame) {
459 // The |frame| contents have been parsed, but not yet rendered. Let the 459 // The |frame| contents have been parsed, but not yet rendered. Let the
460 // PasswordManager know that forms are loaded, even though we can't yet tell 460 // PasswordManager know that forms are loaded, even though we can't yet tell
461 // whether they're visible. 461 // whether they're visible.
462 SendPasswordForms(frame, false); 462 SendPasswordForms(frame, false);
463 } 463 }
464 464
465 void PasswordAutofillAgent::DidFinishLoad(blink::WebFrame* frame) { 465 void PasswordAutofillAgent::DidFinishLoad(blink::WebLocalFrame* frame) {
466 // The |frame| contents have been rendered. Let the PasswordManager know 466 // The |frame| contents have been rendered. Let the PasswordManager know
467 // which of the loaded frames are actually visible to the user. This also 467 // which of the loaded frames are actually visible to the user. This also
468 // triggers the "Save password?" infobar if the user just submitted a password 468 // triggers the "Save password?" infobar if the user just submitted a password
469 // form. 469 // form.
470 SendPasswordForms(frame, true); 470 SendPasswordForms(frame, true);
471 } 471 }
472 472
473 void PasswordAutofillAgent::FrameDetached(blink::WebFrame* frame) { 473 void PasswordAutofillAgent::FrameDetached(blink::WebFrame* frame) {
474 FrameClosing(frame); 474 FrameClosing(frame);
475 } 475 }
476 476
477 void PasswordAutofillAgent::FrameWillClose(blink::WebFrame* frame) { 477 void PasswordAutofillAgent::FrameWillClose(blink::WebFrame* frame) {
478 FrameClosing(frame); 478 FrameClosing(frame);
479 } 479 }
480 480
481 void PasswordAutofillAgent::WillSendSubmitEvent( 481 void PasswordAutofillAgent::WillSendSubmitEvent(
482 blink::WebFrame* frame, 482 blink::WebLocalFrame* frame,
483 const blink::WebFormElement& form) { 483 const blink::WebFormElement& form) {
484 // Some login forms have onSubmit handlers that put a hash of the password 484 // Some login forms have onSubmit handlers that put a hash of the password
485 // into a hidden field and then clear the password (http://crbug.com/28910). 485 // into a hidden field and then clear the password (http://crbug.com/28910).
486 // This method gets called before any of those handlers run, so save away 486 // This method gets called before any of those handlers run, so save away
487 // a copy of the password in case it gets lost. 487 // a copy of the password in case it gets lost.
488 scoped_ptr<PasswordForm> password_form(CreatePasswordForm(form)); 488 scoped_ptr<PasswordForm> password_form(CreatePasswordForm(form));
489 if (password_form) 489 if (password_form)
490 provisionally_saved_forms_[frame].reset(password_form.release()); 490 provisionally_saved_forms_[frame].reset(password_form.release());
491 } 491 }
492 492
493 void PasswordAutofillAgent::WillSubmitForm(blink::WebFrame* frame, 493 void PasswordAutofillAgent::WillSubmitForm(blink::WebLocalFrame* frame,
494 const blink::WebFormElement& form) { 494 const blink::WebFormElement& form) {
495 scoped_ptr<PasswordForm> submitted_form = CreatePasswordForm(form); 495 scoped_ptr<PasswordForm> submitted_form = CreatePasswordForm(form);
496 496
497 // If there is a provisionally saved password, copy over the previous 497 // If there is a provisionally saved password, copy over the previous
498 // password value so we get the user's typed password, not the value that 498 // password value so we get the user's typed password, not the value that
499 // may have been transformed for submit. 499 // may have been transformed for submit.
500 // TODO(gcasto): Do we need to have this action equality check? Is it trying 500 // TODO(gcasto): Do we need to have this action equality check? Is it trying
501 // to prevent accidentally copying over passwords from a different form? 501 // to prevent accidentally copying over passwords from a different form?
502 if (submitted_form) { 502 if (submitted_form) {
503 if (provisionally_saved_forms_[frame].get() && 503 if (provisionally_saved_forms_[frame].get() &&
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 // keep just the first frame found, it might be a good idea to add a UMA 535 // keep just the first frame found, it might be a good idea to add a UMA
536 // statistic or a similar check on how many frames are here to choose from. 536 // statistic or a similar check on how many frames are here to choose from.
537 if (current_frame == form_frame || 537 if (current_frame == form_frame ||
538 current_frame->findChildByName(form_frame->assignedName())) { 538 current_frame->findChildByName(form_frame->assignedName())) {
539 return form_frame; 539 return form_frame;
540 } 540 }
541 } 541 }
542 return NULL; 542 return NULL;
543 } 543 }
544 544
545 void PasswordAutofillAgent::DidStartProvisionalLoad(blink::WebFrame* frame) { 545 void PasswordAutofillAgent::DidStartProvisionalLoad(
546 blink::WebLocalFrame* frame) {
546 if (!frame->parent()) { 547 if (!frame->parent()) {
547 // If the navigation is not triggered by a user gesture, e.g. by some ajax 548 // If the navigation is not triggered by a user gesture, e.g. by some ajax
548 // callback, then inherit the submitted password form from the previous 549 // callback, then inherit the submitted password form from the previous
549 // state. This fixes the no password save issue for ajax login, tracked in 550 // state. This fixes the no password save issue for ajax login, tracked in
550 // [http://crbug/43219]. Note that this still fails for sites that use 551 // [http://crbug/43219]. Note that this still fails for sites that use
551 // synchonous XHR as isProcessingUserGesture() will return true. 552 // synchonous XHR as isProcessingUserGesture() will return true.
552 blink::WebFrame* form_frame = CurrentOrChildFrameWithSavedForms(frame); 553 blink::WebFrame* form_frame = CurrentOrChildFrameWithSavedForms(frame);
553 if (!blink::WebUserGestureIndicator::isProcessingUserGesture()) { 554 if (!blink::WebUserGestureIndicator::isProcessingUserGesture()) {
554 // If onsubmit has been called, try and save that form. 555 // If onsubmit has been called, try and save that form.
555 if (provisionally_saved_forms_[form_frame].get()) { 556 if (provisionally_saved_forms_[form_frame].get()) {
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 LoginToPasswordInfoMap::iterator iter = login_to_password_info_.find(input); 896 LoginToPasswordInfoMap::iterator iter = login_to_password_info_.find(input);
896 if (iter == login_to_password_info_.end()) 897 if (iter == login_to_password_info_.end())
897 return false; 898 return false;
898 899
899 *found_input = input; 900 *found_input = input;
900 *found_password = iter->second; 901 *found_password = iter->second;
901 return true; 902 return true;
902 } 903 }
903 904
904 } // namespace autofill 905 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698