| Index: components/webdata/common/web_database_service.h
 | 
| diff --git a/components/webdata/common/web_database_service.h b/components/webdata/common/web_database_service.h
 | 
| index 624660d0d88f914d71168f897c9dd3c9107bee31..1bdfca8504edc317b12d9360a1082f07262fc8f3 100644
 | 
| --- a/components/webdata/common/web_database_service.h
 | 
| +++ b/components/webdata/common/web_database_service.h
 | 
| @@ -15,6 +15,8 @@
 | 
|  #include "base/files/file_path.h"
 | 
|  #include "base/memory/ref_counted.h"
 | 
|  #include "base/memory/scoped_ptr.h"
 | 
| +#include "base/memory/weak_ptr.h"
 | 
| +#include "base/observer_list.h"
 | 
|  #include "components/webdata/common/web_data_service_base.h"
 | 
|  #include "components/webdata/common/web_database.h"
 | 
|  #include "components/webdata/common/webdata_export.h"
 | 
| @@ -49,7 +51,6 @@ class WEBDATA_EXPORT WebDatabaseService
 | 
|   public:
 | 
|    typedef base::Callback<scoped_ptr<WDTypedResult>(WebDatabase*)> ReadTask;
 | 
|    typedef base::Callback<WebDatabase::State(WebDatabase*)> WriteTask;
 | 
| -  typedef base::Callback<void(sql::InitStatus)> InitCallback;
 | 
|  
 | 
|    // Takes the path to the WebDatabase file.
 | 
|    explicit WebDatabaseService(const base::FilePath& path);
 | 
| @@ -61,7 +62,7 @@ class WEBDATA_EXPORT WebDatabaseService
 | 
|  
 | 
|    // Initializes the web database service. Takes a callback which will return
 | 
|    // the status of the DB after the init.
 | 
| -  virtual void LoadDatabase(const InitCallback& callback);
 | 
| +  virtual void LoadDatabase();
 | 
|  
 | 
|    // Unloads the database without actually shutting down the service.  This can
 | 
|    // be used to temporarily reduce the browser process' memory footprint.
 | 
| @@ -90,21 +91,33 @@ class WEBDATA_EXPORT WebDatabaseService
 | 
|    // somewhere else.
 | 
|    virtual void CancelRequest(WebDataServiceBase::Handle h);
 | 
|  
 | 
| +  void AddObserver(WebDatabaseObserver* observer);
 | 
| +  void RemoveObserver(WebDatabaseObserver* observer);
 | 
| +
 | 
|   private:
 | 
| +  class BackendDelegate;
 | 
|    friend struct content::BrowserThread::DeleteOnThread<
 | 
|        content::BrowserThread::UI>;
 | 
|    friend class base::DeleteHelper<WebDatabaseService>;
 | 
|    // We have to friend RCTS<> so WIN shared-lib build is happy (crbug/112250).
 | 
|    friend class base::RefCountedThreadSafe<WebDatabaseService,
 | 
|        content::BrowserThread::DeleteOnUIThread>;
 | 
| +  friend class BackendDelegate;
 | 
|  
 | 
|    virtual ~WebDatabaseService();
 | 
|  
 | 
| +  void OnDatabaseLoadDone(sql::InitStatus status);
 | 
| +
 | 
|    base::FilePath path_;
 | 
|  
 | 
|    // The primary owner is |WebDatabaseService| but is refcounted because
 | 
|    // PostTask on DB thread may outlive us.
 | 
|    scoped_refptr<WebDataServiceBackend> wds_backend_;
 | 
| +
 | 
| +  ObserverList<WebDatabaseObserver> observer_list_;
 | 
| +
 | 
| +  // All vended weak pointers are invalidated in ShutdownDatabase().
 | 
| +  base::WeakPtrFactory<WebDatabaseService> weak_ptr_factory_;
 | 
|  };
 | 
|  
 | 
|  #endif  // COMPONENTS_WEBDATA_COMMON_WEB_DATABASE_SERVICE_H_
 | 
| 
 |