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

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

Issue 2949002: Add "save credit card info?" infobar for Autofill.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 5 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 <string> 7 #include <string>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/string16.h" 10 #include "base/string16.h"
11 #include "chrome/browser/autofill/autofill_dialog.h" 11 #include "chrome/browser/autofill/autofill_dialog.h"
12 #include "chrome/browser/autofill/autofill_cc_infobar_delegate.h"
12 #include "chrome/browser/autofill/form_structure.h" 13 #include "chrome/browser/autofill/form_structure.h"
13 #include "chrome/browser/pref_service.h" 14 #include "chrome/browser/pref_service.h"
14 #include "chrome/browser/profile.h" 15 #include "chrome/browser/profile.h"
15 #include "chrome/browser/renderer_host/render_view_host.h" 16 #include "chrome/browser/renderer_host/render_view_host.h"
16 #include "chrome/browser/tab_contents/tab_contents.h" 17 #include "chrome/browser/tab_contents/tab_contents.h"
17 #include "chrome/common/chrome_switches.h" 18 #include "chrome/common/chrome_switches.h"
18 #include "chrome/common/pref_names.h" 19 #include "chrome/common/pref_names.h"
19 #include "webkit/glue/form_data.h" 20 #include "webkit/glue/form_data.h"
20 #include "webkit/glue/form_field.h" 21 #include "webkit/glue/form_field.h"
21 22
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 void AutoFillManager::HandleSubmit() { 396 void AutoFillManager::HandleSubmit() {
396 // If there wasn't enough data to import then we don't want to send an upload 397 // If there wasn't enough data to import then we don't want to send an upload
397 // to the server. 398 // to the server.
398 // TODO(jhawkins): Import form data from |form_structures_|. That will 399 // TODO(jhawkins): Import form data from |form_structures_|. That will
399 // require querying the FormManager for updated field values. 400 // require querying the FormManager for updated field values.
400 std::vector<FormStructure*> import; 401 std::vector<FormStructure*> import;
401 import.push_back(upload_form_structure_.get()); 402 import.push_back(upload_form_structure_.get());
402 if (!personal_data_->ImportFormData(import, this)) 403 if (!personal_data_->ImportFormData(import, this))
403 return; 404 return;
404 405
405 UploadFormData(); 406 // Did we get credit card info?
407 AutoFillProfile* profile;
408 CreditCard* credit_card;
409 personal_data_->GetImportedFormData(&profile, &credit_card);
410
411 if (credit_card) {
412 cc_infobar_.reset(new AutoFillCCInfoBarDelegate(tab_contents_, this));
413 } else {
414 UploadFormData();
415 }
406 } 416 }
407 417
408 void AutoFillManager::UploadFormData() { 418 void AutoFillManager::UploadFormData() {
409 // TODO(georgey): enable upload request when we make sure that our data is in 419 // TODO(georgey): enable upload request when we make sure that our data is in
410 // line with toolbar data: 420 // line with toolbar data:
411 // download_manager_.StartUploadRequest(upload_form_structure_, 421 // download_manager_.StartUploadRequest(upload_form_structure_,
412 // form_is_autofilled); 422 // form_is_autofilled);
413 } 423 }
414 424
425 void AutoFillManager::OnInfoBarClosed(bool should_save) {
426 if (should_save)
427 personal_data_->SaveImportedCreditCard();
428 UploadFormData();
429 }
430
415 AutoFillManager::AutoFillManager() 431 AutoFillManager::AutoFillManager()
416 : tab_contents_(NULL), 432 : tab_contents_(NULL),
417 personal_data_(NULL), 433 personal_data_(NULL),
418 download_manager_(NULL) { 434 download_manager_(NULL) {
419 } 435 }
420 436
421 AutoFillManager::AutoFillManager(TabContents* tab_contents, 437 AutoFillManager::AutoFillManager(TabContents* tab_contents,
422 PersonalDataManager* personal_data) 438 PersonalDataManager* personal_data)
423 : tab_contents_(tab_contents), 439 : tab_contents_(tab_contents),
424 personal_data_(personal_data), 440 personal_data_(personal_data),
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 field->set_value(number); 613 field->set_value(number);
598 } else if (has_valid_suffix_and_prefix && 614 } else if (has_valid_suffix_and_prefix &&
599 field->size() == kAutoFillPhoneNumberSuffixCount) { 615 field->size() == kAutoFillPhoneNumberSuffixCount) {
600 number = number.substr(kAutoFillPhoneNumberSuffixOffset, 616 number = number.substr(kAutoFillPhoneNumberSuffixOffset,
601 kAutoFillPhoneNumberSuffixCount); 617 kAutoFillPhoneNumberSuffixCount);
602 field->set_value(number); 618 field->set_value(number);
603 } else { 619 } else {
604 field->set_value(number); 620 field->set_value(number);
605 } 621 }
606 } 622 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698