Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(25)

Side by Side Diff: content/browser/indexed_db/indexed_db_dispatcher_host.cc

Issue 2511403003: Send IndexedDB observations through IDBDatabaseCallbacks. (Closed)
Patch Set: Remove unnecessary forward declaration. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "content/browser/indexed_db/indexed_db_dispatcher_host.h" 5 #include "content/browser/indexed_db/indexed_db_dispatcher_host.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/files/file_path.h" 11 #include "base/files/file_path.h"
12 #include "base/guid.h" 12 #include "base/guid.h"
13 #include "base/memory/ptr_util.h" 13 #include "base/memory/ptr_util.h"
14 #include "base/process/process.h" 14 #include "base/process/process.h"
15 #include "base/stl_util.h" 15 #include "base/stl_util.h"
16 #include "base/strings/utf_string_conversions.h" 16 #include "base/strings/utf_string_conversions.h"
17 #include "content/browser/bad_message.h" 17 #include "content/browser/bad_message.h"
18 #include "content/browser/indexed_db/indexed_db_callbacks.h" 18 #include "content/browser/indexed_db/indexed_db_callbacks.h"
19 #include "content/browser/indexed_db/indexed_db_connection.h" 19 #include "content/browser/indexed_db/indexed_db_connection.h"
20 #include "content/browser/indexed_db/indexed_db_context_impl.h" 20 #include "content/browser/indexed_db/indexed_db_context_impl.h"
21 #include "content/browser/indexed_db/indexed_db_database_callbacks.h" 21 #include "content/browser/indexed_db/indexed_db_database_callbacks.h"
22 #include "content/browser/indexed_db/indexed_db_observation.h"
23 #include "content/browser/indexed_db/indexed_db_observer_changes.h"
24 #include "content/browser/indexed_db/indexed_db_pending_connection.h" 22 #include "content/browser/indexed_db/indexed_db_pending_connection.h"
25 #include "content/browser/indexed_db/indexed_db_value.h" 23 #include "content/browser/indexed_db/indexed_db_value.h"
26 #include "content/browser/renderer_host/render_message_filter.h" 24 #include "content/browser/renderer_host/render_message_filter.h"
27 #include "content/common/indexed_db/indexed_db_messages.h" 25 #include "content/common/indexed_db/indexed_db_messages.h"
28 #include "content/common/indexed_db/indexed_db_metadata.h" 26 #include "content/common/indexed_db/indexed_db_metadata.h"
29 #include "content/public/browser/browser_thread.h" 27 #include "content/public/browser/browser_thread.h"
30 #include "content/public/browser/user_metrics.h" 28 #include "content/public/browser/user_metrics.h"
31 #include "content/public/common/content_switches.h" 29 #include "content/public/common/content_switches.h"
32 #include "content/public/common/result_codes.h" 30 #include "content/public/common/result_codes.h"
33 #include "storage/browser/blob/blob_data_builder.h" 31 #include "storage/browser/blob/blob_data_builder.h"
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 blob_data_handle_map_.erase(iter); 198 blob_data_handle_map_.erase(iter);
201 else 199 else
202 --iter->second.second; 200 --iter->second.second;
203 } 201 }
204 202
205 bool IndexedDBDispatcherHost::IsOpen() const { 203 bool IndexedDBDispatcherHost::IsOpen() const {
206 DCHECK(indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread()); 204 DCHECK(indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread());
207 return is_open_; 205 return is_open_;
208 } 206 }
209 207
210 IndexedDBMsg_ObserverChanges IndexedDBDispatcherHost::ConvertObserverChanges(
211 std::unique_ptr<IndexedDBObserverChanges> changes) {
212 IndexedDBMsg_ObserverChanges idb_changes;
213 idb_changes.observation_index = changes->release_observation_indices_map();
214 for (const auto& observation : changes->release_observations())
215 idb_changes.observations.push_back(ConvertObservation(observation.get()));
216 return idb_changes;
217 }
218
219 IndexedDBMsg_Observation IndexedDBDispatcherHost::ConvertObservation(
220 const IndexedDBObservation* observation) {
221 // TODO(palakj): Modify function for indexed_db_value. Issue crbug.com/609934.
222 IndexedDBMsg_Observation idb_observation;
223 idb_observation.object_store_id = observation->object_store_id();
224 idb_observation.type = observation->type();
225 idb_observation.key_range = observation->key_range();
226 return idb_observation;
227 }
228
229 void IndexedDBDispatcherHost::GetDatabaseNames( 208 void IndexedDBDispatcherHost::GetDatabaseNames(
230 ::indexed_db::mojom::CallbacksAssociatedPtrInfo callbacks_info, 209 ::indexed_db::mojom::CallbacksAssociatedPtrInfo callbacks_info,
231 const url::Origin& origin) { 210 const url::Origin& origin) {
232 DCHECK_CURRENTLY_ON(BrowserThread::IO); 211 DCHECK_CURRENTLY_ON(BrowserThread::IO);
233 212
234 if (!IsValidOrigin(origin)) { 213 if (!IsValidOrigin(origin)) {
235 mojo::ReportBadMessage(kInvalidOrigin); 214 mojo::ReportBadMessage(kInvalidOrigin);
236 return; 215 return;
237 } 216 }
238 217
239 scoped_refptr<IndexedDBCallbacks> callbacks( 218 scoped_refptr<IndexedDBCallbacks> callbacks(
240 new IndexedDBCallbacks(this, origin, std::move(callbacks_info))); 219 new IndexedDBCallbacks(this, origin, std::move(callbacks_info)));
241 indexed_db_context_->TaskRunner()->PostTask( 220 indexed_db_context_->TaskRunner()->PostTask(
242 FROM_HERE, 221 FROM_HERE,
243 base::Bind(&IndexedDBDispatcherHost::GetDatabaseNamesOnIDBThread, this, 222 base::Bind(&IndexedDBDispatcherHost::GetDatabaseNamesOnIDBThread, this,
244 base::Passed(&callbacks), origin)); 223 base::Passed(&callbacks), origin));
245 } 224 }
246 225
247 void IndexedDBDispatcherHost::Open( 226 void IndexedDBDispatcherHost::Open(
248 int32_t worker_thread,
249 ::indexed_db::mojom::CallbacksAssociatedPtrInfo callbacks_info, 227 ::indexed_db::mojom::CallbacksAssociatedPtrInfo callbacks_info,
250 ::indexed_db::mojom::DatabaseCallbacksAssociatedPtrInfo 228 ::indexed_db::mojom::DatabaseCallbacksAssociatedPtrInfo
251 database_callbacks_info, 229 database_callbacks_info,
252 const url::Origin& origin, 230 const url::Origin& origin,
253 const base::string16& name, 231 const base::string16& name,
254 int64_t version, 232 int64_t version,
255 int64_t transaction_id) { 233 int64_t transaction_id) {
256 DCHECK_CURRENTLY_ON(BrowserThread::IO); 234 DCHECK_CURRENTLY_ON(BrowserThread::IO);
257 235
258 if (!IsValidOrigin(origin)) { 236 if (!IsValidOrigin(origin)) {
259 mojo::ReportBadMessage(kInvalidOrigin); 237 mojo::ReportBadMessage(kInvalidOrigin);
260 return; 238 return;
261 } 239 }
262 240
263 scoped_refptr<IndexedDBCallbacks> callbacks( 241 scoped_refptr<IndexedDBCallbacks> callbacks(
264 new IndexedDBCallbacks(this, origin, std::move(callbacks_info))); 242 new IndexedDBCallbacks(this, origin, std::move(callbacks_info)));
265 scoped_refptr<IndexedDBDatabaseCallbacks> database_callbacks( 243 scoped_refptr<IndexedDBDatabaseCallbacks> database_callbacks(
266 new IndexedDBDatabaseCallbacks(this, worker_thread, 244 new IndexedDBDatabaseCallbacks(this, std::move(database_callbacks_info)));
267 std::move(database_callbacks_info)));
268 indexed_db_context_->TaskRunner()->PostTask( 245 indexed_db_context_->TaskRunner()->PostTask(
269 FROM_HERE, 246 FROM_HERE,
270 base::Bind(&IndexedDBDispatcherHost::OpenOnIDBThread, this, 247 base::Bind(&IndexedDBDispatcherHost::OpenOnIDBThread, this,
271 base::Passed(&callbacks), base::Passed(&database_callbacks), 248 base::Passed(&callbacks), base::Passed(&database_callbacks),
272 origin, name, version, transaction_id)); 249 origin, name, version, transaction_id));
273 } 250 }
274 251
275 void IndexedDBDispatcherHost::DeleteDatabase( 252 void IndexedDBDispatcherHost::DeleteDatabase(
276 ::indexed_db::mojom::CallbacksAssociatedPtrInfo callbacks_info, 253 ::indexed_db::mojom::CallbacksAssociatedPtrInfo callbacks_info,
277 const url::Origin& origin, 254 const url::Origin& origin,
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 DCHECK(indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread()); 322 DCHECK(indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread());
346 if (committed) { 323 if (committed) {
347 context()->TransactionComplete( 324 context()->TransactionComplete(
348 transaction_origin_map_[host_transaction_id]); 325 transaction_origin_map_[host_transaction_id]);
349 } 326 }
350 transaction_origin_map_.erase(host_transaction_id); 327 transaction_origin_map_.erase(host_transaction_id);
351 transaction_size_map_.erase(host_transaction_id); 328 transaction_size_map_.erase(host_transaction_id);
352 } 329 }
353 330
354 } // namespace content 331 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/indexed_db/indexed_db_dispatcher_host.h ('k') | content/browser/indexed_db/indexed_db_factory_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698