Changeset 135856 in webkit
- Timestamp:
- Nov 27, 2012 6:10:27 AM (11 years ago)
- Location:
- trunk/Source
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r135853 r135856 1 2012-11-27 Alec Flett <alecflett@chromium.org> 2 3 IndexedDB: stub out IDBDatabaseBackendInterface::createTransaction 4 https://bugs.webkit.org/show_bug.cgi?id=102730 5 6 Reviewed by Darin Fisher. 7 8 Stub out and support passing a 64-bit transaction id 9 so the frontend can refer to transactions by id rather than 10 a proxy object or a direct pointer reference. This will ultimately 11 loosen ownership and lifetime of transactions from the frontend 12 and backend. 13 14 No new tests, this is just part of a refactor. 15 16 * Modules/indexeddb/IDBDatabase.cpp: 17 * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: 18 (WebCore): 19 (WebCore::IDBDatabaseBackendImpl::transaction): 20 (WebCore::IDBDatabaseBackendImpl::createTransaction): 21 * Modules/indexeddb/IDBDatabaseBackendImpl.h: 22 (IDBDatabaseBackendImpl): 23 * Modules/indexeddb/IDBDatabaseBackendInterface.h: 24 (IDBDatabaseBackendInterface): 25 * Modules/indexeddb/IDBTransactionBackendImpl.cpp: 26 (WebCore::IDBTransactionBackendImpl::create): 27 (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl): 28 * Modules/indexeddb/IDBTransactionBackendImpl.h: 29 (IDBTransactionBackendImpl): 30 (WebCore::IDBTransactionBackendImpl::id): 31 1 32 2012-11-27 Andrei Bucur <abucur@adobe.com> 2 33 -
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
r134673 r135856 37 37 #include "IDBDatabaseException.h" 38 38 #include "IDBEventDispatcher.h" 39 #include "IDBFactoryBackendInterface.h"40 39 #include "IDBIndex.h" 41 40 #include "IDBKeyPath.h" -
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp
r135226 r135856 423 423 } 424 424 425 // FIXME: Remove this as part of https://bugs.webkit.org/show_bug.cgi?id=102733. 425 426 PassRefPtr<IDBTransactionBackendInterface> IDBDatabaseBackendImpl::transaction(const Vector<int64_t>& objectStoreIds, unsigned short mode) 426 427 { 427 RefPtr<IDBTransactionBackendImpl> transaction = IDBTransactionBackendImpl::create(objectStoreIds, mode, this); 428 return createTransaction(0, objectStoreIds, mode); 429 } 430 431 PassRefPtr<IDBTransactionBackendInterface> IDBDatabaseBackendImpl::createTransaction(int64_t transactionId, const Vector<int64_t>& objectStoreIds, unsigned short mode) 432 { 433 RefPtr<IDBTransactionBackendImpl> transaction = IDBTransactionBackendImpl::create(transactionId, objectStoreIds, mode, this); 428 434 m_transactions.add(transaction.get()); 429 435 return transaction.release(); -
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h
r134095 r135856 65 65 virtual void deleteObjectStore(int64_t, IDBTransactionBackendInterface*, ExceptionCode&); 66 66 virtual void setVersion(const String& version, PassRefPtr<IDBCallbacks>, PassRefPtr<IDBDatabaseCallbacks>, ExceptionCode&); 67 // FIXME: Remove this as part of https://bugs.webkit.org/show_bug.cgi?id=102733. 67 68 virtual PassRefPtr<IDBTransactionBackendInterface> transaction(const Vector<int64_t>&, unsigned short); 69 virtual PassRefPtr<IDBTransactionBackendInterface> createTransaction(int64_t transactionId, const Vector<int64_t>& objectStoreIds, unsigned short mode); 68 70 virtual void close(PassRefPtr<IDBDatabaseCallbacks>); 69 71 -
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendInterface.h
r134095 r135856 57 57 virtual void deleteObjectStore(int64_t, IDBTransactionBackendInterface*, ExceptionCode&) = 0; 58 58 virtual void setVersion(const String& version, PassRefPtr<IDBCallbacks>, PassRefPtr<IDBDatabaseCallbacks>, ExceptionCode&) = 0; 59 // FIXME: Remove this as part of https://bugs.webkit.org/show_bug.cgi?id=102733. 59 60 virtual PassRefPtr<IDBTransactionBackendInterface> transaction(const Vector<int64_t>& objectStoreIds, unsigned short mode) = 0; 61 virtual PassRefPtr<IDBTransactionBackendInterface> createTransaction(int64_t transactionId, const Vector<int64_t>& objectStoreIds, unsigned short mode) = 0; 60 62 virtual void close(PassRefPtr<IDBDatabaseCallbacks>) = 0; 61 63 }; -
trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp
r135332 r135856 40 40 namespace WebCore { 41 41 42 PassRefPtr<IDBTransactionBackendImpl> IDBTransactionBackendImpl::create(const Vector<int64_t>& objectStoreIds, unsigned short mode, IDBDatabaseBackendImpl* database) 43 { 44 return adoptRef(new IDBTransactionBackendImpl(objectStoreIds, mode, database)); 45 } 46 47 IDBTransactionBackendImpl::IDBTransactionBackendImpl(const Vector<int64_t>& objectStoreIds, unsigned short mode, IDBDatabaseBackendImpl* database) 48 : m_objectStoreIds(objectStoreIds) 42 PassRefPtr<IDBTransactionBackendImpl> IDBTransactionBackendImpl::create(int64_t id, const Vector<int64_t>& objectStoreIds, unsigned short mode, IDBDatabaseBackendImpl* database) 43 { 44 return adoptRef(new IDBTransactionBackendImpl(id, objectStoreIds, mode, database)); 45 } 46 47 IDBTransactionBackendImpl::IDBTransactionBackendImpl(int64_t id, const Vector<int64_t>& objectStoreIds, unsigned short mode, IDBDatabaseBackendImpl* database) 48 : m_id(id) 49 , m_objectStoreIds(objectStoreIds) 49 50 , m_mode(mode) 50 51 , m_state(Unused) -
trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h
r135332 r135856 45 45 class IDBTransactionBackendImpl : public IDBTransactionBackendInterface { 46 46 public: 47 static PassRefPtr<IDBTransactionBackendImpl> create( const Vector<int64_t>&, unsigned short mode, IDBDatabaseBackendImpl*);47 static PassRefPtr<IDBTransactionBackendImpl> create(int64_t transactionId, const Vector<int64_t>&, unsigned short mode, IDBDatabaseBackendImpl*); 48 48 static IDBTransactionBackendImpl* from(IDBTransactionBackendInterface* interface) 49 49 { … … 69 69 void didCompletePreemptiveEvent() { m_pendingPreemptiveEvents--; ASSERT(m_pendingPreemptiveEvents >= 0); } 70 70 IDBBackingStore::Transaction* backingStoreTransaction() { return &m_transaction; } 71 int64_t id() const { return m_id; } 71 72 72 73 private: 73 IDBTransactionBackendImpl( const Vector<int64_t>& objectStoreIds, unsigned short mode, IDBDatabaseBackendImpl*);74 IDBTransactionBackendImpl(int64_t id, const Vector<int64_t>& objectStoreIds, unsigned short mode, IDBDatabaseBackendImpl*); 74 75 75 76 enum State { … … 90 91 void closeOpenCursors(); 91 92 93 const int64_t m_id; 92 94 const Vector<int64_t> m_objectStoreIds; 93 95 const unsigned short m_mode; -
trunk/Source/WebKit/chromium/ChangeLog
r135837 r135856 1 2012-11-27 Alec Flett <alecflett@chromium.org> 2 3 IndexedDB: stub out IDBDatabaseBackendInterface::createTransaction 4 https://bugs.webkit.org/show_bug.cgi?id=102730 5 6 Reviewed by Darin Fisher. 7 8 Add support for new createTransaction() method in both sides 9 of the WebKit API. 10 11 * public/WebIDBDatabase.h: 12 (WebIDBDatabase): 13 (WebKit::WebIDBDatabase::createTransaction): 14 * src/IDBDatabaseBackendProxy.cpp: 15 (WebKit): 16 (WebKit::IDBDatabaseBackendProxy::createTransaction): 17 * src/IDBDatabaseBackendProxy.h: 18 (IDBDatabaseBackendProxy): 19 * src/WebIDBDatabaseImpl.cpp: 20 (WebKit::WebIDBDatabaseImpl::createTransaction): 21 (WebKit): 22 * src/WebIDBDatabaseImpl.h: 23 (WebIDBDatabaseImpl): 24 1 25 2012-11-27 Sheriff Bot <webkit.review.bot@gmail.com> 2 26 -
trunk/Source/WebKit/chromium/public/WebIDBDatabase.h
r134436 r135856 58 58 virtual void deleteObjectStore(long long objectStoreId, const WebIDBTransaction& transaction, WebExceptionCode& ec) { WEBKIT_ASSERT_NOT_REACHED(); } 59 59 virtual void setVersion(const WebString& version, WebIDBCallbacks* callbacks, WebExceptionCode&) { WEBKIT_ASSERT_NOT_REACHED(); } 60 // FIXME: Remove this as part of https://bugs.webkit.org/show_bug.cgi?id=102733. 60 61 // Transfers ownership of the WebIDBTransaction to the caller. 61 62 virtual WebIDBTransaction* transaction(const WebVector<long long>&, unsigned short mode) … … 64 65 return 0; 65 66 } 67 // Transfers ownership of the WebIDBTransaction to the caller. 68 virtual WebIDBTransaction* createTransaction(long long id, const WebVector<long long>&, unsigned short mode) { WEBKIT_ASSERT_NOT_REACHED(); return 0; } 66 69 virtual void close() { WEBKIT_ASSERT_NOT_REACHED(); } 67 70 virtual void forceClose() { WEBKIT_ASSERT_NOT_REACHED(); } -
trunk/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.cpp
r134436 r135856 92 92 } 93 93 94 // FIXME: Remove this as part of https://bugs.webkit.org/show_bug.cgi?id=102733. 94 95 PassRefPtr<IDBTransactionBackendInterface> IDBDatabaseBackendProxy::transaction(const Vector<int64_t>& objectStoreIds, unsigned short mode) 95 96 { 96 97 OwnPtr<WebIDBTransaction> transaction = adoptPtr(m_webIDBDatabase->transaction(objectStoreIds, mode)); 98 if (!transaction) 99 return 0; 100 101 return IDBTransactionBackendProxy::create(transaction.release()); 102 } 103 104 PassRefPtr<IDBTransactionBackendInterface> IDBDatabaseBackendProxy::createTransaction(int64_t id, const Vector<int64_t>& objectStoreIds, unsigned short mode) 105 { 106 OwnPtr<WebIDBTransaction> transaction = adoptPtr(m_webIDBDatabase->createTransaction(id, objectStoreIds, mode)); 97 107 if (!transaction) 98 108 return 0; -
trunk/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h
r134436 r135856 48 48 virtual void deleteObjectStore(int64_t, WebCore::IDBTransactionBackendInterface*, WebCore::ExceptionCode&); 49 49 virtual void setVersion(const String& version, PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::IDBDatabaseCallbacks>, WebCore::ExceptionCode&); 50 // FIXME: Remove this as part of https://bugs.webkit.org/show_bug.cgi?id=102733. 50 51 virtual PassRefPtr<WebCore::IDBTransactionBackendInterface> transaction(const Vector<int64_t>&, unsigned short mode); 52 virtual PassRefPtr<WebCore::IDBTransactionBackendInterface> createTransaction(int64_t, const Vector<int64_t>&, unsigned short mode); 51 53 virtual void close(PassRefPtr<WebCore::IDBDatabaseCallbacks>); 52 54 -
trunk/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
r134095 r135856 81 81 } 82 82 83 WebIDBTransaction* WebIDBDatabaseImpl::createTransaction(long long id, const WebVector<long long>& objectStoreIds, unsigned short mode) 84 { 85 Vector<int64_t> objectStoreIdList(objectStoreIds.size()); 86 for (size_t i = 0; i < objectStoreIds.size(); ++i) 87 objectStoreIdList[i] = objectStoreIds[i]; 88 RefPtr<IDBTransactionBackendInterface> transaction = m_databaseBackend->createTransaction(id, objectStoreIdList, mode); 89 if (!transaction) 90 return 0; 91 return new WebIDBTransactionImpl(transaction); 92 } 93 94 // FIXME: Remove this as part of https://bugs.webkit.org/show_bug.cgi?id=102733. 83 95 WebIDBTransaction* WebIDBDatabaseImpl::transaction(const WebVector<long long>& objectStoreIds, unsigned short mode) 84 96 { -
trunk/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h
r134095 r135856 56 56 virtual void deleteObjectStore(long long objectStoreId, const WebIDBTransaction&, WebExceptionCode&); 57 57 virtual void setVersion(const WebString& version, WebIDBCallbacks*, WebExceptionCode&); 58 // FIXME: Remove this as part of https://bugs.webkit.org/show_bug.cgi?id=102733. 58 59 virtual WebIDBTransaction* transaction(const WebVector<long long>& names, unsigned short mode); 60 virtual WebIDBTransaction* createTransaction(long long id, const WebVector<long long>&, unsigned short mode); 59 61 virtual void forceClose(); 60 62 virtual void close(); -
trunk/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp
r133195 r135856 155 155 virtual void deleteObjectStore(int64_t, IDBTransactionBackendInterface*, ExceptionCode&) { } 156 156 virtual void setVersion(const String& version, PassRefPtr<IDBCallbacks>, PassRefPtr<IDBDatabaseCallbacks>, ExceptionCode&) { } 157 virtual PassRefPtr<IDBTransactionBackendInterface> transaction(DOMStringList* storeNames, unsigned short mode, ExceptionCode&) { return 0; }157 // FIXME: Remove this as part of https://bugs.webkit.org/show_bug.cgi?id=102733. 158 158 virtual PassRefPtr<IDBTransactionBackendInterface> transaction(const Vector<int64_t>&, unsigned short mode) { return 0; } 159 virtual PassRefPtr<IDBTransactionBackendInterface> createTransaction(int64_t, const Vector<int64_t>&, unsigned short mode) { return 0; } 159 160 160 161 virtual void close(PassRefPtr<IDBDatabaseCallbacks>)
Note: See TracChangeset
for help on using the changeset viewer.