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

Side by Side Diff: chrome/browser/ui/autofill/autofill_dialog_controller_impl.h

Issue 14904002: Load and send Wallet Risk params after user has agreed (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 7 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
« no previous file with comments | « no previous file | chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_CONTROLLER_IMPL_H_ 5 #ifndef CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_CONTROLLER_IMPL_H_
6 #define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_CONTROLLER_IMPL_H_ 6 #define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_CONTROLLER_IMPL_H_
7 7
8 #include <map> 8 #include <map>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 // Call to disable communication to Online Wallet for this dialog. 258 // Call to disable communication to Online Wallet for this dialog.
259 // Exposed for testing. 259 // Exposed for testing.
260 void DisableWallet(); 260 void DisableWallet();
261 261
262 // Returns whether Wallet is the current data source. Exposed for testing. 262 // Returns whether Wallet is the current data source. Exposed for testing.
263 virtual bool IsPayingWithWallet() const; 263 virtual bool IsPayingWithWallet() const;
264 264
265 // Exposed and virtual for testing. 265 // Exposed and virtual for testing.
266 virtual bool IsFirstRun() const; 266 virtual bool IsFirstRun() const;
267 267
268 // Asks risk module to asynchronously load fingerprint data. Data will be
269 // returned via |OnDidLoadRiskFingerprintData()|. Exposed for testing.
270 virtual void LoadRiskFingerprintData();
271 virtual void OnDidLoadRiskFingerprintData(
272 scoped_ptr<risk::Fingerprint> fingerprint);
273
268 // Opens the given URL in a new foreground tab. 274 // Opens the given URL in a new foreground tab.
269 virtual void OpenTabWithUrl(const GURL& url); 275 virtual void OpenTabWithUrl(const GURL& url);
270 276
271 private: 277 private:
272 // Whether or not the current request wants credit info back. 278 // Whether or not the current request wants credit info back.
273 bool RequestingCreditCardInfo() const; 279 bool RequestingCreditCardInfo() const;
274 280
275 // Whether the information input in this dialog will be securely transmitted 281 // Whether the information input in this dialog will be securely transmitted
276 // to the requesting site. 282 // to the requesting site.
277 bool TransmissionWillBeSecure() const; 283 bool TransmissionWillBeSecure() const;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 std::vector<string16>* popup_values, 373 std::vector<string16>* popup_values,
368 std::vector<string16>* popup_labels, 374 std::vector<string16>* popup_labels,
369 std::vector<string16>* popup_icons); 375 std::vector<string16>* popup_icons);
370 376
371 // Like RequestedFieldsForSection, but returns a pointer. 377 // Like RequestedFieldsForSection, but returns a pointer.
372 DetailInputs* MutableRequestedFieldsForSection(DialogSection section); 378 DetailInputs* MutableRequestedFieldsForSection(DialogSection section);
373 379
374 // Hides |popup_controller_|'s popup view, if it exists. 380 // Hides |popup_controller_|'s popup view, if it exists.
375 void HidePopup(); 381 void HidePopup();
376 382
377 // Asks risk module to asynchronously load fingerprint data. Data will be
378 // returned via OnDidLoadRiskFingerprintData.
379 void LoadRiskFingerprintData();
380 void OnDidLoadRiskFingerprintData(scoped_ptr<risk::Fingerprint> fingerprint);
381
382 // Whether the user has chosen to enter all new data in |section|. This 383 // Whether the user has chosen to enter all new data in |section|. This
383 // happens via choosing "Add a new X..." from a section's suggestion menu. 384 // happens via choosing "Add a new X..." from a section's suggestion menu.
384 bool IsManuallyEditingSection(DialogSection section) const; 385 bool IsManuallyEditingSection(DialogSection section) const;
385 386
386 // Whether the user has chosen to enter all new data in at least one section. 387 // Whether the user has chosen to enter all new data in at least one section.
387 bool IsManuallyEditingAnySection() const; 388 bool IsManuallyEditingAnySection() const;
388 389
389 // Returns true if the |value| is a valid string for the given autofill field 390 // Returns true if the |value| is a valid string for the given autofill field
390 // type. 391 // type.
391 bool InputIsValid(AutofillFieldType type, const string16& value) const; 392 bool InputIsValid(AutofillFieldType type, const string16& value) const;
(...skipping 13 matching lines...) Expand all
405 // Whether the billing section should be used to fill in the shipping details. 406 // Whether the billing section should be used to fill in the shipping details.
406 bool ShouldUseBillingForShipping(); 407 bool ShouldUseBillingForShipping();
407 408
408 // Whether the user wishes to save information locally to Autofill. 409 // Whether the user wishes to save information locally to Autofill.
409 bool ShouldSaveDetailsLocally(); 410 bool ShouldSaveDetailsLocally();
410 411
411 // Change whether the controller is currently submitting details to Autofill 412 // Change whether the controller is currently submitting details to Autofill
412 // or Online Wallet (|is_submitting_|) and update the view. 413 // or Online Wallet (|is_submitting_|) and update the view.
413 void SetIsSubmitting(bool submitting); 414 void SetIsSubmitting(bool submitting);
414 415
416 // Whether the user has accepted all the current legal documents' terms.
417 bool AreLegalDocumentsCurrent() const;
418
415 // Start the submit proccess to interact with Online Wallet (might do various 419 // Start the submit proccess to interact with Online Wallet (might do various
416 // things like accept documents, save details, update details, respond to 420 // things like accept documents, save details, update details, respond to
417 // required actions, etc.). 421 // required actions, etc.).
418 void SubmitWithWallet(); 422 void SubmitWithWallet();
419 423
420 // Creates an instrument based on |views_|' contents. 424 // Creates an instrument based on |views_|' contents.
421 scoped_ptr<wallet::Instrument> CreateTransientInstrument(); 425 scoped_ptr<wallet::Instrument> CreateTransientInstrument();
422 426
423 // Creates an update request based on |instrument|. May return NULL. 427 // Creates an update request based on |instrument|. May return NULL.
424 scoped_ptr<wallet::WalletClient::UpdateInstrumentRequest> 428 scoped_ptr<wallet::WalletClient::UpdateInstrumentRequest>
425 CreateUpdateInstrumentRequest(const wallet::Instrument* instrument, 429 CreateUpdateInstrumentRequest(const wallet::Instrument* instrument,
426 const std::string& instrument_id); 430 const std::string& instrument_id);
427 431
428 // Creates an address based on the contents of |view_|. 432 // Creates an address based on the contents of |view_|.
429 scoped_ptr<wallet::Address> CreateTransientAddress(); 433 scoped_ptr<wallet::Address> CreateTransientAddress();
430 434
431 // Gets a full wallet from Online Wallet so the user can purchase something. 435 // Gets a full wallet from Online Wallet so the user can purchase something.
432 // This information is decoded to reveal a fronting (proxy) card. 436 // This information is decoded to reveal a fronting (proxy) card.
433 void GetFullWallet(); 437 void GetFullWallet();
434 438
439 // Calls |GetFullWallet()| if the required members (|risk_data_|,
440 // |active_instrument_id_|, and |active_address_id_|) are populated.
441 void GetFullWalletIfReady();
442
435 // Updates the state of the controller and |view_| based on any required 443 // Updates the state of the controller and |view_| based on any required
436 // actions returned by Save or Update calls to Wallet. 444 // actions returned by Save or Update calls to Wallet.
437 void HandleSaveOrUpdateRequiredActions( 445 void HandleSaveOrUpdateRequiredActions(
438 const std::vector<wallet::RequiredAction>& required_actions); 446 const std::vector<wallet::RequiredAction>& required_actions);
439 447
440 // Whether submission is currently waiting for |action| to be handled. 448 // Whether submission is currently waiting for |action| to be handled.
441 bool IsSubmitPausedOn(wallet::RequiredAction action) const; 449 bool IsSubmitPausedOn(wallet::RequiredAction action) const;
442 450
443 // Called when there's nothing left to accept, update, save, or authenticate 451 // Called when there's nothing left to accept, update, save, or authenticate
444 // in order to fill |form_structure_| and pass data back to the invoking page. 452 // in order to fill |form_structure_| and pass data back to the invoking page.
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 // The helper is set only during fetch/sign-in, and NULL otherwise. 514 // The helper is set only during fetch/sign-in, and NULL otherwise.
507 scoped_ptr<wallet::WalletSigninHelper> signin_helper_; 515 scoped_ptr<wallet::WalletSigninHelper> signin_helper_;
508 516
509 // A client to talk to the Online Wallet API. 517 // A client to talk to the Online Wallet API.
510 wallet::WalletClient wallet_client_; 518 wallet::WalletClient wallet_client_;
511 519
512 // Recently received items retrieved via |wallet_client_|. 520 // Recently received items retrieved via |wallet_client_|.
513 scoped_ptr<wallet::WalletItems> wallet_items_; 521 scoped_ptr<wallet::WalletItems> wallet_items_;
514 scoped_ptr<wallet::FullWallet> full_wallet_; 522 scoped_ptr<wallet::FullWallet> full_wallet_;
515 523
524 // Local machine signals to pass along on each request to trigger (or
525 // discourage) risk challenges; sent if the user is up to date on legal docs.
526 std::string risk_data_;
527
516 // The text to display when the user is accepting new terms of service, etc. 528 // The text to display when the user is accepting new terms of service, etc.
517 string16 legal_documents_text_; 529 string16 legal_documents_text_;
518 // The ranges within |legal_documents_text_| to linkify. 530 // The ranges within |legal_documents_text_| to linkify.
519 std::vector<ui::Range> legal_document_link_ranges_; 531 std::vector<ui::Range> legal_document_link_ranges_;
520 532
521 // The instrument and address IDs from the Online Wallet server to be used 533 // The instrument and address IDs from the Online Wallet server to be used
522 // when getting a full wallet. 534 // when getting a full wallet.
523 std::string active_instrument_id_; 535 std::string active_instrument_id_;
524 std::string active_address_id_; 536 std::string active_address_id_;
525 537
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 scoped_ptr<AutofillDialogView> view_; 574 scoped_ptr<AutofillDialogView> view_;
563 575
564 // A NotificationRegistrar for tracking the completion of sign-in. 576 // A NotificationRegistrar for tracking the completion of sign-in.
565 content::NotificationRegistrar signin_registrar_; 577 content::NotificationRegistrar signin_registrar_;
566 578
567 base::WeakPtrFactory<AutofillDialogControllerImpl> weak_ptr_factory_; 579 base::WeakPtrFactory<AutofillDialogControllerImpl> weak_ptr_factory_;
568 580
569 // Whether this is the first time this profile has seen the Autofill dialog. 581 // Whether this is the first time this profile has seen the Autofill dialog.
570 bool is_first_run_; 582 bool is_first_run_;
571 583
584 // Whether a user accepted legal documents while this dialog is running.
585 bool has_accepted_legal_documents_;
586
572 // True after the user first accepts the dialog and presses "Submit". May 587 // True after the user first accepts the dialog and presses "Submit". May
573 // continue to be true while processing required actions. 588 // continue to be true while processing required actions.
574 bool is_submitting_; 589 bool is_submitting_;
575 590
576 // Whether or not there was a server side validation error saving or updating 591 // Whether or not there was a server side validation error saving or updating
577 // Wallet data. 592 // Wallet data.
578 bool wallet_server_validation_error_; 593 bool wallet_server_validation_error_;
579 594
580 // The current state of the Autocheckout flow. 595 // The current state of the Autocheckout flow.
581 AutocheckoutState autocheckout_state_; 596 AutocheckoutState autocheckout_state_;
582 597
583 // Whether the latency to display to the UI was logged to UMA yet. 598 // Whether the latency to display to the UI was logged to UMA yet.
584 bool was_ui_latency_logged_; 599 bool was_ui_latency_logged_;
585 600
586 DISALLOW_COPY_AND_ASSIGN(AutofillDialogControllerImpl); 601 DISALLOW_COPY_AND_ASSIGN(AutofillDialogControllerImpl);
587 }; 602 };
588 603
589 } // namespace autofill 604 } // namespace autofill
590 605
591 #endif // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_CONTROLLER_IMPL_H_ 606 #endif // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_CONTROLLER_IMPL_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698