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 8class WebDatabase; 9 10namespace autofill { 11 12class 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. 16class AutofillWebDataBackend { 17 public: 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