Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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 // Chromium settings and storage represent user-selected preferences and | 5 // Chromium settings and storage represent user-selected preferences and |
| 6 // information and MUST not be extracted, overwritten or modified except | 6 // information and MUST not be extracted, overwritten or modified except |
| 7 // through Chromium defined APIs. | 7 // through Chromium defined APIs. |
| 8 | 8 |
| 9 #ifndef COMPONENTS_WEBDATA_COMMON_WEB_DATABASE_SERVICE_H_ | 9 #ifndef COMPONENTS_WEBDATA_COMMON_WEB_DATABASE_SERVICE_H_ |
| 10 #define COMPONENTS_WEBDATA_COMMON_WEB_DATABASE_SERVICE_H_ | 10 #define COMPONENTS_WEBDATA_COMMON_WEB_DATABASE_SERVICE_H_ |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 86 virtual WebDataServiceBase::Handle ScheduleDBTaskWithResult( | 86 virtual WebDataServiceBase::Handle ScheduleDBTaskWithResult( |
| 87 const tracked_objects::Location& from_here, | 87 const tracked_objects::Location& from_here, |
| 88 const ReadTask& task, | 88 const ReadTask& task, |
| 89 WebDataServiceConsumer* consumer); | 89 WebDataServiceConsumer* consumer); |
| 90 | 90 |
| 91 // Cancel an existing request for a task on the DB thread. | 91 // Cancel an existing request for a task on the DB thread. |
| 92 // TODO(caitkp): Think about moving the definition of the Handle type to | 92 // TODO(caitkp): Think about moving the definition of the Handle type to |
| 93 // somewhere else. | 93 // somewhere else. |
| 94 virtual void CancelRequest(WebDataServiceBase::Handle h); | 94 virtual void CancelRequest(WebDataServiceBase::Handle h); |
| 95 | 95 |
| 96 void AddObserver(WebDatabaseObserver* observer); | 96 // Register a callback to be notified that the database has loaded. |
| 97 void RemoveObserver(WebDatabaseObserver* observer); | 97 void RegisterDBLoadedCallback(const base::Callback<void(void)>& callback); |
| 98 | |
| 99 // Register a callback to be notified that the database has failed to load. | |
| 100 void RegisterDBErrorCallback( | |
| 101 const base::Callback<void(sql::InitStatus)>& callback); | |
| 102 | |
| 103 bool db_loaded() { return db_loaded_; }; | |
| 98 | 104 |
| 99 private: | 105 private: |
| 100 class BackendDelegate; | 106 class BackendDelegate; |
| 101 friend struct content::BrowserThread::DeleteOnThread< | 107 friend struct content::BrowserThread::DeleteOnThread< |
| 102 content::BrowserThread::UI>; | 108 content::BrowserThread::UI>; |
| 103 friend class base::DeleteHelper<WebDatabaseService>; | 109 friend class base::DeleteHelper<WebDatabaseService>; |
| 104 // We have to friend RCTS<> so WIN shared-lib build is happy (crbug/112250). | 110 // We have to friend RCTS<> so WIN shared-lib build is happy (crbug/112250). |
| 105 friend class base::RefCountedThreadSafe<WebDatabaseService, | 111 friend class base::RefCountedThreadSafe<WebDatabaseService, |
| 106 content::BrowserThread::DeleteOnUIThread>; | 112 content::BrowserThread::DeleteOnUIThread>; |
| 107 friend class BackendDelegate; | 113 friend class BackendDelegate; |
| 108 | 114 |
| 109 virtual ~WebDatabaseService(); | 115 virtual ~WebDatabaseService(); |
| 110 | 116 |
| 111 void OnDatabaseLoadDone(sql::InitStatus status); | 117 void OnDatabaseLoadDone(sql::InitStatus status); |
| 112 | 118 |
| 113 base::FilePath path_; | 119 base::FilePath path_; |
| 114 | 120 |
| 115 // The primary owner is |WebDatabaseService| but is refcounted because | 121 // The primary owner is |WebDatabaseService| but is refcounted because |
| 116 // PostTask on DB thread may outlive us. | 122 // PostTask on DB thread may outlive us. |
| 117 scoped_refptr<WebDataServiceBackend> wds_backend_; | 123 scoped_refptr<WebDataServiceBackend> wds_backend_; |
| 118 | 124 |
| 119 ObserverList<WebDatabaseObserver> observer_list_; | |
| 120 | |
| 121 // All vended weak pointers are invalidated in ShutdownDatabase(). | 125 // All vended weak pointers are invalidated in ShutdownDatabase(). |
| 122 base::WeakPtrFactory<WebDatabaseService> weak_ptr_factory_; | 126 base::WeakPtrFactory<WebDatabaseService> weak_ptr_factory_; |
| 127 | |
| 128 // Types for managing DB laoding callbacks. | |
|
Jói
2013/06/04 22:17:25
laoding -> loading
Cait (Slow)
2013/06/05 19:14:48
Done.
| |
| 129 typedef base::Callback<void(void)> DBLoadedCallback; | |
| 130 typedef std::vector<DBLoadedCallback> PendingCallbacks; | |
|
Jói
2013/06/04 22:17:25
For consistency, suggest renaming to LoadedCallbac
Cait (Slow)
2013/06/05 19:14:48
Done.
| |
| 131 | |
| 132 typedef base::Callback<void(sql::InitStatus)> DBLoadErrorCallback; | |
| 133 typedef std::vector<DBLoadErrorCallback> ErrorCallbacks; | |
| 134 | |
| 135 // Callbacks to be called once the DB has loaded. | |
| 136 PendingCallbacks pending_callbacks_; | |
|
Jói
2013/06/04 22:17:25
variable name too
Cait (Slow)
2013/06/05 19:14:48
Done.
| |
| 137 | |
| 138 // Callbacks to be called if the DB has failed to load. | |
| 139 ErrorCallbacks error_callbacks_; | |
| 140 | |
| 141 // True if the WebDatabase has loaded. | |
| 142 bool db_loaded_; | |
| 123 }; | 143 }; |
| 124 | 144 |
| 125 #endif // COMPONENTS_WEBDATA_COMMON_WEB_DATABASE_SERVICE_H_ | 145 #endif // COMPONENTS_WEBDATA_COMMON_WEB_DATABASE_SERVICE_H_ |
| OLD | NEW |