1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_UI_WEBUI_OPTIONS_AUTOFILL_OPTIONS_HANDLER_H_ 6 #define CHROME_BROWSER_UI_WEBUI_OPTIONS_AUTOFILL_OPTIONS_HANDLER_H_ 7 8 #include <string> 9 10 #include "chrome/browser/autofill/personal_data_manager.h" 11 #include "chrome/browser/ui/webui/options/options_ui.h" 12 13 class DictionaryValue; 14 class ListValue; 15 16 class AutofillOptionsHandler : public OptionsPageUIHandler, 17 public PersonalDataManager::Observer { 18 public: 19 AutofillOptionsHandler(); 20 virtual ~AutofillOptionsHandler(); 21 22 // OptionsPageUIHandler implementation. 23 virtual void GetLocalizedValues(DictionaryValue* localized_strings); 24 virtual void Initialize(); 25 virtual void RegisterMessages(); 26 27 // PersonalDataManager::Observer implementation. 28 virtual void OnPersonalDataLoaded(); 29 virtual void OnPersonalDataChanged(); 30 31 private: 32 // Loads the strings for the address and credit card overlays. 33 void SetAddressOverlayStrings(DictionaryValue* localized_strings); 34 void SetCreditCardOverlayStrings(DictionaryValue* localized_strings); 35 36 // Loads Autofill addresses and credit cards using the PersonalDataManager. 37 void LoadAutofillData(); 38 39 // Removes an address from the PersonalDataManager. 40 // |args| - A string, the GUID of the address to remove. 41 void RemoveAddress(const ListValue* args); 42 43 // Removes a credit card from the PersonalDataManager. 44 // |args| - A string, the GUID of the credit card to remove. 45 void RemoveCreditCard(const ListValue* args); 46 47 // Requests profile data for a specific address. Calls into WebUI with the 48 // loaded profile data to open the address editor. 49 // |args| - A string, the GUID of the address to load. 50 void LoadAddressEditor(const ListValue* args); 51 52 // Requests profile data for a specific credit card. Calls into WebUI with the 53 // loaded profile data to open the credit card editor. 54 // |args| - A string, the GUID of the credit card to load. 55 void LoadCreditCardEditor(const ListValue* args); 56 57 // Adds or updates an address, depending on the GUID of the profile. If the 58 // GUID is empty, a new address is added to the WebDatabase; otherwise, the 59 // address with the matching GUID is updated. Called from WebUI. 60 // |args| - an array containing the GUID of the address followed by the 61 // address data. 62 void SetAddress(const ListValue* args); 63 64 // Adds or updates a credit card, depending on the GUID of the profile. If the 65 // GUID is empty, a new credit card is added to the WebDatabase; otherwise, 66 // the credit card with the matching GUID is updated. Called from WebUI. 67 // |args| - an array containing the GUID of the credit card followed by the 68 // credit card data. 69 void SetCreditCard(const ListValue* args); 70 71 // The personal data manager, used to load Autofill profiles and credit cards. 72 // Unowned pointer, may not be NULL. 73 PersonalDataManager* personal_data_; 74 75 DISALLOW_COPY_AND_ASSIGN(AutofillOptionsHandler); 76 }; 77 78 #endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_AUTOFILL_OPTIONS_HANDLER_H_ 79