| Index: content/browser/indexed_db/indexed_db_dispatcher_host.h
|
| diff --git a/content/browser/indexed_db/indexed_db_dispatcher_host.h b/content/browser/indexed_db/indexed_db_dispatcher_host.h
|
| index e5d7b8d983a2ce09be18c0a14a2a83ceb5e43534..435030b1908d3d555ef5f0100bbbf1ecd2b60f53 100644
|
| --- a/content/browser/indexed_db/indexed_db_dispatcher_host.h
|
| +++ b/content/browser/indexed_db/indexed_db_dispatcher_host.h
|
| @@ -13,7 +13,6 @@
|
| #include <utility>
|
| #include <vector>
|
|
|
| -#include "base/id_map.h"
|
| #include "base/macros.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "content/browser/blob_storage/chrome_blob_storage_context.h"
|
| @@ -37,9 +36,7 @@ class IndexedDBBlobInfo;
|
| class IndexedDBCallbacks;
|
| class IndexedDBConnection;
|
| class IndexedDBContextImpl;
|
| -class IndexedDBCursor;
|
| class IndexedDBDatabaseCallbacks;
|
| -class IndexedDBKey;
|
| class IndexedDBObservation;
|
| class IndexedDBObserverChanges;
|
|
|
| @@ -63,8 +60,6 @@ class IndexedDBDispatcherHost
|
| // BrowserMessageFilter implementation.
|
| void OnChannelClosing() override;
|
| void OnDestruct() const override;
|
| - base::TaskRunner* OverrideTaskRunnerForMessage(
|
| - const IPC::Message& message) override;
|
| bool OnMessageReceived(const IPC::Message& message) override;
|
|
|
| void FinishTransaction(int64_t host_transaction_id, bool committed);
|
| @@ -76,18 +71,12 @@ class IndexedDBDispatcherHost
|
| }
|
| int ipc_process_id() const { return ipc_process_id_; }
|
|
|
| - // IndexedDBCallbacks call these methods to add the results into the
|
| - // applicable map. See below for more details.
|
| - int32_t Add(IndexedDBCursor* cursor);
|
| -
|
| bool RegisterTransactionId(int64_t host_transaction_id,
|
| const url::Origin& origin);
|
| bool GetTransactionSize(int64_t host_transaction_id,
|
| int64_t* transaction_size);
|
| void AddToTransaction(int64_t host_transaction_id, int64_t value_length);
|
|
|
| - IndexedDBCursor* GetCursorFromId(int32_t ipc_cursor_id);
|
| -
|
| // These are called to map a 32-bit front-end (renderer-specific) transaction
|
| // id to and from a back-end ("host") transaction id that encodes the process
|
| // id in the high 32 bits. The mapping is host-specific and ids are validated.
|
| @@ -112,84 +101,11 @@ class IndexedDBDispatcherHost
|
| friend class base::DeleteHelper<IndexedDBDispatcherHost>;
|
|
|
| // Used in nested classes.
|
| - typedef std::map<int64_t, int64_t> TransactionIDToDatabaseIDMap;
|
| typedef std::map<int64_t, int64_t> TransactionIDToSizeMap;
|
| typedef std::map<int64_t, url::Origin> TransactionIDToOriginMap;
|
|
|
| - // IDMap for RefCounted types
|
| - template <typename RefCountedType>
|
| - class RefIDMap {
|
| - public:
|
| - typedef int32_t KeyType;
|
| -
|
| - RefIDMap() {}
|
| - ~RefIDMap() {}
|
| -
|
| - KeyType Add(RefCountedType* data) {
|
| - return map_.Add(new scoped_refptr<RefCountedType>(data));
|
| - }
|
| -
|
| - RefCountedType* Lookup(KeyType id) {
|
| - scoped_refptr<RefCountedType>* ptr = map_.Lookup(id);
|
| - if (ptr == NULL)
|
| - return NULL;
|
| - return ptr->get();
|
| - }
|
| -
|
| - void Remove(KeyType id) { map_.Remove(id); }
|
| -
|
| - void set_check_on_null_data(bool value) {
|
| - map_.set_check_on_null_data(value);
|
| - }
|
| -
|
| - private:
|
| - IDMap<scoped_refptr<RefCountedType>, IDMapOwnPointer> map_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(RefIDMap);
|
| - };
|
| -
|
| - class CursorDispatcherHost {
|
| - public:
|
| - explicit CursorDispatcherHost(IndexedDBDispatcherHost* parent);
|
| - ~CursorDispatcherHost();
|
| -
|
| - bool OnMessageReceived(const IPC::Message& message);
|
| -
|
| - void OnAdvance(int32_t ipc_object_store_id,
|
| - int32_t ipc_thread_id,
|
| - int32_t ipc_callbacks_id,
|
| - uint32_t count);
|
| - void OnContinue(int32_t ipc_object_store_id,
|
| - int32_t ipc_thread_id,
|
| - int32_t ipc_callbacks_id,
|
| - const IndexedDBKey& key,
|
| - const IndexedDBKey& primary_key);
|
| - void OnPrefetch(int32_t ipc_cursor_id,
|
| - int32_t ipc_thread_id,
|
| - int32_t ipc_callbacks_id,
|
| - int n);
|
| - void OnPrefetchReset(int32_t ipc_cursor_id,
|
| - int used_prefetches,
|
| - int unused_prefetches);
|
| - void OnDestroyed(int32_t ipc_cursor_id);
|
| -
|
| - IndexedDBDispatcherHost* parent_;
|
| - RefIDMap<IndexedDBCursor> map_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(CursorDispatcherHost);
|
| - };
|
| -
|
| ~IndexedDBDispatcherHost() override;
|
|
|
| - // Helper templates.
|
| - template <class ReturnType>
|
| - ReturnType* GetOrTerminateProcess(RefIDMap<ReturnType>* map,
|
| - int32_t ipc_return_object_id);
|
| -
|
| - template <typename MapType>
|
| - void DestroyObject(MapType* map, int32_t ipc_object_id);
|
| -
|
| // indexed_db::mojom::Factory implementation:
|
| void GetDatabaseNames(
|
| ::indexed_db::mojom::CallbacksAssociatedPtrInfo callbacks_info,
|
| @@ -220,10 +136,6 @@ class IndexedDBDispatcherHost
|
| const url::Origin& origin,
|
| const base::string16& name);
|
|
|
| - // Message processing. Most of the work is delegated to the dispatcher hosts
|
| - // below.
|
| - void OnAckReceivedBlobs(const std::vector<std::string>& uuids);
|
| -
|
| void ResetDispatcherHosts();
|
|
|
| scoped_refptr<net::URLRequestContextGetter> request_context_getter_;
|
| @@ -241,7 +153,6 @@ class IndexedDBDispatcherHost
|
| bool is_open_ = true;
|
| TransactionIDToSizeMap transaction_size_map_;
|
| TransactionIDToOriginMap transaction_origin_map_;
|
| - std::unique_ptr<CursorDispatcherHost> cursor_dispatcher_host_;
|
|
|
| // Used to set file permissions for blob storage.
|
| int ipc_process_id_;
|
|
|