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 3 // found in the LICENSE file. 4 5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_WEBDATA_AUTOFILL_WEBDATA_BACKEND_H_ 6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_WEBDATA_AUTOFILL_WEBDATA_BACKEND_H_ 7 8 class WebDatabase; 9 10 namespace autofill { 11 12 class AutofillWebDataServiceObserverOnDBThread; 13 14 // Interface for doing Autofill work directly on the DB thread (used by 15 // Sync, mostly), without fully exposing the AutofillWebDataBackend to clients. 16 class AutofillWebDataBackend { 17 public: ~AutofillWebDataBackend()18 virtual ~AutofillWebDataBackend() {} 19 20 // Get a raw pointer to the WebDatabase. 21 virtual WebDatabase* GetDatabase() = 0; 22 23 // Add an observer to be notified of changes on the DB thread. 24 virtual void AddObserver( 25 AutofillWebDataServiceObserverOnDBThread* observer) = 0; 26 27 // Remove an observer. 28 virtual void RemoveObserver( 29 AutofillWebDataServiceObserverOnDBThread* observer) = 0; 30 31 // Remove expired elements from the database and commit if needed. 32 virtual void RemoveExpiredFormElements() = 0; 33 34 // Notifies listeners on the UI thread that multiple changes have been made to 35 // to Autofill records of the database. 36 // NOTE: This method is intended to be called from the DB thread. It 37 // asynchronously notifies listeners on the UI thread. 38 virtual void NotifyOfMultipleAutofillChanges() = 0; 39 }; 40 41 } // namespace autofill 42 43 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_WEBDATA_AUTOFILL_WEBDATA_BACKEND_H_ 44