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

Side by Side Diff: chrome/browser/autofill/autofill_manager.cc

Issue 6213002: Propagate correct data to the Toolbar servers (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/browser/autofill/autofill_manager.h" 5 #include "chrome/browser/autofill/autofill_manager.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 FillCreditCardFormField(credit_card, autofill_type, &result.fields[j]); 402 FillCreditCardFormField(credit_card, autofill_type, &result.fields[j]);
403 } else if (profile && 403 } else if (profile &&
404 autofill_type.group() != AutoFillType::CREDIT_CARD) { 404 autofill_type.group() != AutoFillType::CREDIT_CARD) {
405 FillFormField(profile, autofill_type, &result.fields[j]); 405 FillFormField(profile, autofill_type, &result.fields[j]);
406 } 406 }
407 407
408 // We found a matching field in the |form_structure| so we 408 // We found a matching field in the |form_structure| so we
409 // proceed to the next |result| field, and the next |form_structure|. 409 // proceed to the next |result| field, and the next |form_structure|.
410 ++i; 410 ++i;
411 } 411 }
412 autofilled_forms_signatures_.push_front(form_structure->FormSignature()); 412 AutofilledFormInfo form_info;
413 form_info.form_signature = form_structure->FormSignature();
414 form_info.profile_guid = profile_guid;
415 form_info.cc_guid = cc_guid;
416 autofilled_forms_signatures_.push_front(form_info);
413 417
414 host->Send(new ViewMsg_AutoFillFormDataFilled( 418 host->Send(new ViewMsg_AutoFillFormDataFilled(
415 host->routing_id(), query_id, result)); 419 host->routing_id(), query_id, result));
416 } 420 }
417 421
418 void AutoFillManager::OnShowAutoFillDialog() { 422 void AutoFillManager::OnShowAutoFillDialog() {
419 if (!CommandLine::ForCurrentProcess()->HasSwitch( 423 if (!CommandLine::ForCurrentProcess()->HasSwitch(
420 switches::kDisableTabbedOptions)) { 424 switches::kDisableTabbedOptions)) {
421 Browser* browser = BrowserList::GetLastActive(); 425 Browser* browser = BrowserList::GetLastActive();
422 if (browser) 426 if (browser)
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 tab_contents_->AddInfoBar(new AutoFillCCInfoBarDelegate(tab_contents_, 541 tab_contents_->AddInfoBar(new AutoFillCCInfoBarDelegate(tab_contents_,
538 this)); 542 this));
539 } 543 }
540 } 544 }
541 545
542 void AutoFillManager::UploadFormData() { 546 void AutoFillManager::UploadFormData() {
543 if (!disable_download_manager_requests_ && upload_form_structure_.get()) { 547 if (!disable_download_manager_requests_ && upload_form_structure_.get()) {
544 bool was_autofilled = false; 548 bool was_autofilled = false;
545 // Check if the form among last 3 forms that were auto-filled. 549 // Check if the form among last 3 forms that were auto-filled.
546 // Clear older signatures. 550 // Clear older signatures.
547 std::list<std::string>::iterator it; 551 std::list<AutofilledFormInfo>::iterator it;
548 int total_form_checked = 0; 552 int total_form_checked = 0;
553 std::string profile_guid, cc_guid;
549 for (it = autofilled_forms_signatures_.begin(); 554 for (it = autofilled_forms_signatures_.begin();
550 it != autofilled_forms_signatures_.end() && total_form_checked < 3; 555 it != autofilled_forms_signatures_.end() && total_form_checked < 3;
551 ++it, ++total_form_checked) { 556 ++it, ++total_form_checked) {
552 if (*it == upload_form_structure_->FormSignature()) 557 if (it->form_signature == upload_form_structure_->FormSignature()) {
553 was_autofilled = true; 558 was_autofilled = true;
559 profile_guid = it->profile_guid;
560 cc_guid = it->cc_guid;
561 }
554 } 562 }
555 // Remove outdated form signatures. 563 // Remove outdated form signatures.
556 if (total_form_checked == 3 && it != autofilled_forms_signatures_.end()) { 564 if (total_form_checked == 3 && it != autofilled_forms_signatures_.end()) {
557 autofilled_forms_signatures_.erase(it, 565 autofilled_forms_signatures_.erase(it,
558 autofilled_forms_signatures_.end()); 566 autofilled_forms_signatures_.end());
559 } 567 }
560 download_manager_.StartUploadRequest(*(upload_form_structure_.get()), 568 download_manager_.StartUploadRequest(*(upload_form_structure_.get()),
561 was_autofilled); 569 was_autofilled,
570 personal_data_->PresentData(profile_guid, cc_guid).c_str());
562 } 571 }
563 } 572 }
564 573
565 void AutoFillManager::Reset() { 574 void AutoFillManager::Reset() {
566 upload_form_structure_.reset(); 575 upload_form_structure_.reset();
567 form_structures_.reset(); 576 form_structures_.reset();
568 } 577 }
569 578
570 void AutoFillManager::OnInfoBarClosed(bool should_save) { 579 void AutoFillManager::OnInfoBarClosed(bool should_save) {
571 if (should_save) 580 if (should_save)
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 return std::string(); 868 return std::string();
860 869
861 std::map<int, std::string>::const_iterator iter = id_guid_map_.find(id); 870 std::map<int, std::string>::const_iterator iter = id_guid_map_.find(id);
862 if (iter == id_guid_map_.end()) { 871 if (iter == id_guid_map_.end()) {
863 NOTREACHED(); 872 NOTREACHED();
864 return std::string(); 873 return std::string();
865 } 874 }
866 875
867 return iter->second; 876 return iter->second;
868 } 877 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698