Diff
Modified: trunk/Source/WebCore/CMakeLists.txt (158288 => 158289)
--- trunk/Source/WebCore/CMakeLists.txt 2013-10-30 18:01:33 UTC (rev 158288)
+++ trunk/Source/WebCore/CMakeLists.txt 2013-10-30 18:02:37 UTC (rev 158289)
@@ -761,6 +761,7 @@
Modules/indexeddb/DOMWindowIndexedDatabase.cpp
Modules/indexeddb/IDBAny.cpp
Modules/indexeddb/IDBCursor.cpp
+ Modules/indexeddb/IDBCursorBackendLevelDB.cpp
Modules/indexeddb/IDBCursorWithValue.cpp
Modules/indexeddb/IDBDatabase.cpp
Modules/indexeddb/IDBDatabaseBackendImpl.cpp
@@ -786,7 +787,6 @@
Modules/indexeddb/PageGroupIndexedDatabase.cpp
Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp
Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp
- Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp
Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp
Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp
Modified: trunk/Source/WebCore/ChangeLog (158288 => 158289)
--- trunk/Source/WebCore/ChangeLog 2013-10-30 18:01:33 UTC (rev 158288)
+++ trunk/Source/WebCore/ChangeLog 2013-10-30 18:02:37 UTC (rev 158289)
@@ -1,3 +1,24 @@
+2013-10-30 Brady Eidson <beid...@apple.com>
+
+ IDBCursorBackendLevelDB should be made cross-platform
+ https://bugs.webkit.org/show_bug.cgi?id=123513
+
+ Rubberstamped by Andreas Kling.
+
+ Because of all the already-done refactoring, this is basically a file-move and global rename.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * WebCore.xcodeproj/project.pbxproj:
+ * WebCore.vcxproj/WebCore.vcxproj:
+
+ * Modules/indexeddb/IDBCursorBackendImpl.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp.
+ * Modules/indexeddb/IDBCursorBackendImpl.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h.
+
+ * Modules/indexeddb/IDBCursorBackendInterface.h:
+
+ * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
+
2013-10-29 Jer Noble <jer.no...@apple.com>
[MSE] Remove legacy Media Source APIs (WebKitMediaSource, WebKitSourceBuffer, WebKitSourceBufferList)
Modified: trunk/Source/WebCore/GNUmakefile.list.am (158288 => 158289)
--- trunk/Source/WebCore/GNUmakefile.list.am 2013-10-30 18:01:33 UTC (rev 158288)
+++ trunk/Source/WebCore/GNUmakefile.list.am 2013-10-30 18:02:37 UTC (rev 158289)
@@ -1786,8 +1786,8 @@
Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp \
Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h \
Source/WebCore/Modules/indexeddb/IDBCallbacks.h \
- Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp \
- Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h \
+ Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp \
+ Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.h \
Source/WebCore/Modules/indexeddb/IDBCursorBackendInterface.h \
Source/WebCore/Modules/indexeddb/IDBCursor.cpp \
Source/WebCore/Modules/indexeddb/IDBCursor.h \
Copied: trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp (from rev 158288, trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp) (0 => 158289)
--- trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp 2013-10-30 18:02:37 UTC (rev 158289)
@@ -0,0 +1,250 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "IDBCursorBackendImpl.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "IDBBackingStoreInterface.h"
+#include "IDBCallbacks.h"
+#include "IDBDatabaseBackendImpl.h"
+#include "IDBDatabaseCallbacks.h"
+#include "IDBDatabaseError.h"
+#include "IDBDatabaseException.h"
+#include "IDBKeyRange.h"
+#include "IDBOperation.h"
+#include "Logging.h"
+#include "SharedBuffer.h"
+
+namespace WebCore {
+
+class IDBCursorBackendImpl::CursorIterationOperation : public IDBOperation {
+public:
+ static PassOwnPtr<IDBOperation> create(PassRefPtr<IDBCursorBackendImpl> cursor, PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks)
+ {
+ return adoptPtr(new CursorIterationOperation(cursor, key, callbacks));
+ }
+ virtual void perform() OVERRIDE FINAL;
+private:
+ CursorIterationOperation(PassRefPtr<IDBCursorBackendImpl> cursor, PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks)
+ : m_cursor(cursor)
+ , m_key(key)
+ , m_callbacks(callbacks)
+ {
+ }
+
+ RefPtr<IDBCursorBackendImpl> m_cursor;
+ RefPtr<IDBKey> m_key;
+ RefPtr<IDBCallbacks> m_callbacks;
+};
+
+class IDBCursorBackendImpl::CursorAdvanceOperation : public IDBOperation {
+public:
+ static PassOwnPtr<IDBOperation> create(PassRefPtr<IDBCursorBackendImpl> cursor, unsigned long count, PassRefPtr<IDBCallbacks> callbacks)
+ {
+ return adoptPtr(new CursorAdvanceOperation(cursor, count, callbacks));
+ }
+ virtual void perform() OVERRIDE FINAL;
+private:
+ CursorAdvanceOperation(PassRefPtr<IDBCursorBackendImpl> cursor, unsigned long count, PassRefPtr<IDBCallbacks> callbacks)
+ : m_cursor(cursor)
+ , m_count(count)
+ , m_callbacks(callbacks)
+ {
+ }
+
+ RefPtr<IDBCursorBackendImpl> m_cursor;
+ unsigned long m_count;
+ RefPtr<IDBCallbacks> m_callbacks;
+};
+
+class IDBCursorBackendImpl::CursorPrefetchIterationOperation : public IDBOperation {
+public:
+ static PassOwnPtr<IDBOperation> create(PassRefPtr<IDBCursorBackendImpl> cursor, int numberToFetch, PassRefPtr<IDBCallbacks> callbacks)
+ {
+ return adoptPtr(new CursorPrefetchIterationOperation(cursor, numberToFetch, callbacks));
+ }
+ virtual void perform() OVERRIDE FINAL;
+private:
+ CursorPrefetchIterationOperation(PassRefPtr<IDBCursorBackendImpl> cursor, int numberToFetch, PassRefPtr<IDBCallbacks> callbacks)
+ : m_cursor(cursor)
+ , m_numberToFetch(numberToFetch)
+ , m_callbacks(callbacks)
+ {
+ }
+
+ RefPtr<IDBCursorBackendImpl> m_cursor;
+ int m_numberToFetch;
+ RefPtr<IDBCallbacks> m_callbacks;
+};
+
+IDBCursorBackendImpl::IDBCursorBackendImpl(PassRefPtr<IDBBackingStoreInterface::Cursor> cursor, IndexedDB::CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, IDBTransactionBackendInterface* transaction, int64_t objectStoreId)
+ : m_taskType(taskType)
+ , m_cursorType(cursorType)
+ , m_database(&(transaction->database()))
+ , m_transaction(transaction)
+ , m_objectStoreId(objectStoreId)
+ , m_cursor(cursor)
+ , m_closed(false)
+{
+ m_transaction->registerOpenCursor(this);
+}
+
+IDBCursorBackendImpl::~IDBCursorBackendImpl()
+{
+ m_transaction->unregisterOpenCursor(this);
+}
+
+
+void IDBCursorBackendImpl::continueFunction(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> prpCallbacks, ExceptionCode&)
+{
+ LOG(StorageAPI, "IDBCursorBackendImpl::continue");
+ RefPtr<IDBCallbacks> callbacks = prpCallbacks;
+ m_transaction->scheduleTask(m_taskType, CursorIterationOperation::create(this, key, callbacks));
+}
+
+void IDBCursorBackendImpl::advance(unsigned long count, PassRefPtr<IDBCallbacks> prpCallbacks, ExceptionCode&)
+{
+ LOG(StorageAPI, "IDBCursorBackendImpl::advance");
+ RefPtr<IDBCallbacks> callbacks = prpCallbacks;
+ m_transaction->scheduleTask(CursorAdvanceOperation::create(this, count, callbacks));
+}
+
+void IDBCursorBackendImpl::CursorAdvanceOperation::perform()
+{
+ LOG(StorageAPI, "CursorAdvanceOperation");
+ if (!m_cursor->m_cursor || !m_cursor->m_cursor->advance(m_count)) {
+ m_cursor->m_cursor = 0;
+ m_callbacks->onSuccess(static_cast<SharedBuffer*>(0));
+ return;
+ }
+
+ m_callbacks->onSuccess(m_cursor->key(), m_cursor->primaryKey(), m_cursor->value());
+}
+
+void IDBCursorBackendImpl::CursorIterationOperation::perform()
+{
+ LOG(StorageAPI, "CursorIterationOperation");
+ if (!m_cursor->m_cursor || !m_cursor->m_cursor->continueFunction(m_key.get())) {
+ m_cursor->m_cursor = 0;
+ m_callbacks->onSuccess(static_cast<SharedBuffer*>(0));
+ return;
+ }
+
+ m_callbacks->onSuccess(m_cursor->key(), m_cursor->primaryKey(), m_cursor->value());
+}
+
+void IDBCursorBackendImpl::deleteFunction(PassRefPtr<IDBCallbacks> prpCallbacks, ExceptionCode&)
+{
+ LOG(StorageAPI, "IDBCursorBackendImpl::delete");
+ ASSERT(m_transaction->mode() != IndexedDB::TransactionReadOnly);
+ RefPtr<IDBKeyRange> keyRange = IDBKeyRange::create(m_cursor->primaryKey());
+ m_database->deleteRange(m_transaction.get()->id(), m_objectStoreId, keyRange.release(), prpCallbacks);
+}
+
+void IDBCursorBackendImpl::prefetchContinue(int numberToFetch, PassRefPtr<IDBCallbacks> prpCallbacks, ExceptionCode&)
+{
+ LOG(StorageAPI, "IDBCursorBackendImpl::prefetchContinue");
+ RefPtr<IDBCallbacks> callbacks = prpCallbacks;
+ m_transaction->scheduleTask(m_taskType, CursorPrefetchIterationOperation::create(this, numberToFetch, callbacks));
+}
+
+void IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform()
+{
+ LOG(StorageAPI, "CursorPrefetchIterationOperation");
+
+ Vector<RefPtr<IDBKey>> foundKeys;
+ Vector<RefPtr<IDBKey>> foundPrimaryKeys;
+ Vector<RefPtr<SharedBuffer>> foundValues;
+
+ if (m_cursor->m_cursor)
+ m_cursor->m_savedCursor = m_cursor->m_cursor->clone();
+
+ const size_t maxSizeEstimate = 10 * 1024 * 1024;
+ size_t sizeEstimate = 0;
+
+ for (int i = 0; i < m_numberToFetch; ++i) {
+ if (!m_cursor->m_cursor || !m_cursor->m_cursor->continueFunction(0)) {
+ m_cursor->m_cursor = 0;
+ break;
+ }
+
+ foundKeys.append(m_cursor->m_cursor->key());
+ foundPrimaryKeys.append(m_cursor->m_cursor->primaryKey());
+
+ switch (m_cursor->m_cursorType) {
+ case IndexedDB::CursorKeyOnly:
+ foundValues.append(SharedBuffer::create());
+ break;
+ case IndexedDB::CursorKeyAndValue:
+ sizeEstimate += m_cursor->m_cursor->value()->size();
+ foundValues.append(m_cursor->m_cursor->value());
+ break;
+ default:
+ ASSERT_NOT_REACHED();
+ }
+ sizeEstimate += m_cursor->m_cursor->key()->sizeEstimate();
+ sizeEstimate += m_cursor->m_cursor->primaryKey()->sizeEstimate();
+
+ if (sizeEstimate > maxSizeEstimate)
+ break;
+ }
+
+ if (!foundKeys.size()) {
+ m_callbacks->onSuccess(static_cast<SharedBuffer*>(0));
+ return;
+ }
+
+ m_callbacks->onSuccessWithPrefetch(foundKeys, foundPrimaryKeys, foundValues);
+}
+
+void IDBCursorBackendImpl::prefetchReset(int usedPrefetches, int)
+{
+ LOG(StorageAPI, "IDBCursorBackendImpl::prefetchReset");
+ m_cursor = m_savedCursor;
+ m_savedCursor = 0;
+
+ if (m_closed)
+ return;
+ if (m_cursor) {
+ for (int i = 0; i < usedPrefetches; ++i) {
+ bool ok = m_cursor->continueFunction();
+ ASSERT_UNUSED(ok, ok);
+ }
+ }
+}
+
+void IDBCursorBackendImpl::close()
+{
+ LOG(StorageAPI, "IDBCursorBackendImpl::close");
+ m_closed = true;
+ m_cursor.clear();
+ m_savedCursor.clear();
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
Copied: trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.h (from rev 158288, trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h) (0 => 158289)
--- trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.h (rev 0)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.h 2013-10-30 18:02:37 UTC (rev 158289)
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#ifndef IDBCursorBackendImpl_h
+#define IDBCursorBackendImpl_h
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "IDBBackingStoreInterface.h"
+#include "IDBCursorBackendInterface.h"
+#include "IDBDatabaseBackendImpl.h"
+#include "IDBTransactionBackendImpl.h"
+#include "SharedBuffer.h"
+#include <wtf/OwnPtr.h>
+#include <wtf/PassOwnPtr.h>
+#include <wtf/RefPtr.h>
+
+namespace WebCore {
+
+class IDBKeyRange;
+
+class IDBCursorBackendImpl : public IDBCursorBackendInterface {
+public:
+ static PassRefPtr<IDBCursorBackendImpl> create(PassRefPtr<IDBBackingStoreInterface::Cursor> cursor, IndexedDB::CursorType cursorType, IDBTransactionBackendInterface* transaction, int64_t objectStoreId)
+ {
+ return adoptRef(new IDBCursorBackendImpl(cursor, cursorType, IDBDatabaseBackendInterface::NormalTask, transaction, objectStoreId));
+ }
+ static PassRefPtr<IDBCursorBackendImpl> create(PassRefPtr<IDBBackingStoreInterface::Cursor> cursor, IndexedDB::CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, IDBTransactionBackendInterface* transaction, int64_t objectStoreId)
+ {
+ return adoptRef(new IDBCursorBackendImpl(cursor, cursorType, taskType, transaction, objectStoreId));
+ }
+ virtual ~IDBCursorBackendImpl();
+
+ // IDBCursorBackendInterface
+ virtual void advance(unsigned long, PassRefPtr<IDBCallbacks>, ExceptionCode&);
+ virtual void continueFunction(PassRefPtr<IDBKey>, PassRefPtr<IDBCallbacks>, ExceptionCode&);
+ virtual void deleteFunction(PassRefPtr<IDBCallbacks>, ExceptionCode&);
+ virtual void prefetchContinue(int numberToFetch, PassRefPtr<IDBCallbacks>, ExceptionCode&);
+ virtual void prefetchReset(int usedPrefetches, int unusedPrefetches);
+ virtual void postSuccessHandlerCallback() { }
+
+ virtual IDBKey* key() const OVERRIDE { return m_cursor->key().get(); }
+ virtual IDBKey* primaryKey() const OVERRIDE { return m_cursor->primaryKey().get(); }
+ virtual SharedBuffer* value() const OVERRIDE { return (m_cursorType == IndexedDB::CursorKeyOnly) ? 0 : m_cursor->value().get(); }
+
+ virtual void close() OVERRIDE;
+
+private:
+ IDBCursorBackendImpl(PassRefPtr<IDBBackingStoreInterface::Cursor>, IndexedDB::CursorType, IDBDatabaseBackendInterface::TaskType, IDBTransactionBackendInterface*, int64_t objectStoreId);
+
+ class CursorIterationOperation;
+ class CursorAdvanceOperation;
+ class CursorPrefetchIterationOperation;
+
+ IDBDatabaseBackendInterface::TaskType m_taskType;
+ IndexedDB::CursorType m_cursorType;
+ const RefPtr<IDBDatabaseBackendInterface> m_database;
+ RefPtr<IDBTransactionBackendInterface> m_transaction;
+ const int64_t m_objectStoreId;
+
+ RefPtr<IDBBackingStoreInterface::Cursor> m_cursor; // Must be destroyed before m_transaction.
+ RefPtr<IDBBackingStoreInterface::Cursor> m_savedCursor; // Must be destroyed before m_transaction.
+
+ bool m_closed;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
+
+#endif // IDBCursorBackendImpl_h
Modified: trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendInterface.h (158288 => 158289)
--- trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendInterface.h 2013-10-30 18:01:33 UTC (rev 158288)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendInterface.h 2013-10-30 18:02:37 UTC (rev 158289)
@@ -36,6 +36,7 @@
class IDBCallbacks;
class IDBKey;
class IDBRequest;
+class SharedBuffer;
typedef int ExceptionCode;
Deleted: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp (158288 => 158289)
--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp 2013-10-30 18:01:33 UTC (rev 158288)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp 2013-10-30 18:02:37 UTC (rev 158289)
@@ -1,250 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "IDBCursorBackendLevelDB.h"
-
-#if ENABLE(INDEXED_DATABASE) && USE(LEVELDB)
-
-#include "IDBBackingStoreLevelDB.h"
-#include "IDBCallbacks.h"
-#include "IDBDatabaseBackendImpl.h"
-#include "IDBDatabaseCallbacks.h"
-#include "IDBDatabaseError.h"
-#include "IDBDatabaseException.h"
-#include "IDBKeyRange.h"
-#include "IDBOperation.h"
-#include "Logging.h"
-#include "SharedBuffer.h"
-
-namespace WebCore {
-
-class IDBCursorBackendLevelDB::CursorIterationOperation : public IDBOperation {
-public:
- static PassOwnPtr<IDBOperation> create(PassRefPtr<IDBCursorBackendLevelDB> cursor, PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks)
- {
- return adoptPtr(new CursorIterationOperation(cursor, key, callbacks));
- }
- virtual void perform() OVERRIDE FINAL;
-private:
- CursorIterationOperation(PassRefPtr<IDBCursorBackendLevelDB> cursor, PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks)
- : m_cursor(cursor)
- , m_key(key)
- , m_callbacks(callbacks)
- {
- }
-
- RefPtr<IDBCursorBackendLevelDB> m_cursor;
- RefPtr<IDBKey> m_key;
- RefPtr<IDBCallbacks> m_callbacks;
-};
-
-class IDBCursorBackendLevelDB::CursorAdvanceOperation : public IDBOperation {
-public:
- static PassOwnPtr<IDBOperation> create(PassRefPtr<IDBCursorBackendLevelDB> cursor, unsigned long count, PassRefPtr<IDBCallbacks> callbacks)
- {
- return adoptPtr(new CursorAdvanceOperation(cursor, count, callbacks));
- }
- virtual void perform() OVERRIDE FINAL;
-private:
- CursorAdvanceOperation(PassRefPtr<IDBCursorBackendLevelDB> cursor, unsigned long count, PassRefPtr<IDBCallbacks> callbacks)
- : m_cursor(cursor)
- , m_count(count)
- , m_callbacks(callbacks)
- {
- }
-
- RefPtr<IDBCursorBackendLevelDB> m_cursor;
- unsigned long m_count;
- RefPtr<IDBCallbacks> m_callbacks;
-};
-
-class IDBCursorBackendLevelDB::CursorPrefetchIterationOperation : public IDBOperation {
-public:
- static PassOwnPtr<IDBOperation> create(PassRefPtr<IDBCursorBackendLevelDB> cursor, int numberToFetch, PassRefPtr<IDBCallbacks> callbacks)
- {
- return adoptPtr(new CursorPrefetchIterationOperation(cursor, numberToFetch, callbacks));
- }
- virtual void perform() OVERRIDE FINAL;
-private:
- CursorPrefetchIterationOperation(PassRefPtr<IDBCursorBackendLevelDB> cursor, int numberToFetch, PassRefPtr<IDBCallbacks> callbacks)
- : m_cursor(cursor)
- , m_numberToFetch(numberToFetch)
- , m_callbacks(callbacks)
- {
- }
-
- RefPtr<IDBCursorBackendLevelDB> m_cursor;
- int m_numberToFetch;
- RefPtr<IDBCallbacks> m_callbacks;
-};
-
-IDBCursorBackendLevelDB::IDBCursorBackendLevelDB(PassRefPtr<IDBBackingStoreInterface::Cursor> cursor, IndexedDB::CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, IDBTransactionBackendInterface* transaction, int64_t objectStoreId)
- : m_taskType(taskType)
- , m_cursorType(cursorType)
- , m_database(&(transaction->database()))
- , m_transaction(transaction)
- , m_objectStoreId(objectStoreId)
- , m_cursor(cursor)
- , m_closed(false)
-{
- m_transaction->registerOpenCursor(this);
-}
-
-IDBCursorBackendLevelDB::~IDBCursorBackendLevelDB()
-{
- m_transaction->unregisterOpenCursor(this);
-}
-
-
-void IDBCursorBackendLevelDB::continueFunction(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> prpCallbacks, ExceptionCode&)
-{
- LOG(StorageAPI, "IDBCursorBackendLevelDB::continue");
- RefPtr<IDBCallbacks> callbacks = prpCallbacks;
- m_transaction->scheduleTask(m_taskType, CursorIterationOperation::create(this, key, callbacks));
-}
-
-void IDBCursorBackendLevelDB::advance(unsigned long count, PassRefPtr<IDBCallbacks> prpCallbacks, ExceptionCode&)
-{
- LOG(StorageAPI, "IDBCursorBackendLevelDB::advance");
- RefPtr<IDBCallbacks> callbacks = prpCallbacks;
- m_transaction->scheduleTask(CursorAdvanceOperation::create(this, count, callbacks));
-}
-
-void IDBCursorBackendLevelDB::CursorAdvanceOperation::perform()
-{
- LOG(StorageAPI, "CursorAdvanceOperation");
- if (!m_cursor->m_cursor || !m_cursor->m_cursor->advance(m_count)) {
- m_cursor->m_cursor = 0;
- m_callbacks->onSuccess(static_cast<SharedBuffer*>(0));
- return;
- }
-
- m_callbacks->onSuccess(m_cursor->key(), m_cursor->primaryKey(), m_cursor->value());
-}
-
-void IDBCursorBackendLevelDB::CursorIterationOperation::perform()
-{
- LOG(StorageAPI, "CursorIterationOperation");
- if (!m_cursor->m_cursor || !m_cursor->m_cursor->continueFunction(m_key.get())) {
- m_cursor->m_cursor = 0;
- m_callbacks->onSuccess(static_cast<SharedBuffer*>(0));
- return;
- }
-
- m_callbacks->onSuccess(m_cursor->key(), m_cursor->primaryKey(), m_cursor->value());
-}
-
-void IDBCursorBackendLevelDB::deleteFunction(PassRefPtr<IDBCallbacks> prpCallbacks, ExceptionCode&)
-{
- LOG(StorageAPI, "IDBCursorBackendLevelDB::delete");
- ASSERT(m_transaction->mode() != IndexedDB::TransactionReadOnly);
- RefPtr<IDBKeyRange> keyRange = IDBKeyRange::create(m_cursor->primaryKey());
- m_database->deleteRange(m_transaction.get()->id(), m_objectStoreId, keyRange.release(), prpCallbacks);
-}
-
-void IDBCursorBackendLevelDB::prefetchContinue(int numberToFetch, PassRefPtr<IDBCallbacks> prpCallbacks, ExceptionCode&)
-{
- LOG(StorageAPI, "IDBCursorBackendLevelDB::prefetchContinue");
- RefPtr<IDBCallbacks> callbacks = prpCallbacks;
- m_transaction->scheduleTask(m_taskType, CursorPrefetchIterationOperation::create(this, numberToFetch, callbacks));
-}
-
-void IDBCursorBackendLevelDB::CursorPrefetchIterationOperation::perform()
-{
- LOG(StorageAPI, "CursorPrefetchIterationOperation");
-
- Vector<RefPtr<IDBKey>> foundKeys;
- Vector<RefPtr<IDBKey>> foundPrimaryKeys;
- Vector<RefPtr<SharedBuffer>> foundValues;
-
- if (m_cursor->m_cursor)
- m_cursor->m_savedCursor = m_cursor->m_cursor->clone();
-
- const size_t maxSizeEstimate = 10 * 1024 * 1024;
- size_t sizeEstimate = 0;
-
- for (int i = 0; i < m_numberToFetch; ++i) {
- if (!m_cursor->m_cursor || !m_cursor->m_cursor->continueFunction(0)) {
- m_cursor->m_cursor = 0;
- break;
- }
-
- foundKeys.append(m_cursor->m_cursor->key());
- foundPrimaryKeys.append(m_cursor->m_cursor->primaryKey());
-
- switch (m_cursor->m_cursorType) {
- case IndexedDB::CursorKeyOnly:
- foundValues.append(SharedBuffer::create());
- break;
- case IndexedDB::CursorKeyAndValue:
- sizeEstimate += m_cursor->m_cursor->value()->size();
- foundValues.append(m_cursor->m_cursor->value());
- break;
- default:
- ASSERT_NOT_REACHED();
- }
- sizeEstimate += m_cursor->m_cursor->key()->sizeEstimate();
- sizeEstimate += m_cursor->m_cursor->primaryKey()->sizeEstimate();
-
- if (sizeEstimate > maxSizeEstimate)
- break;
- }
-
- if (!foundKeys.size()) {
- m_callbacks->onSuccess(static_cast<SharedBuffer*>(0));
- return;
- }
-
- m_callbacks->onSuccessWithPrefetch(foundKeys, foundPrimaryKeys, foundValues);
-}
-
-void IDBCursorBackendLevelDB::prefetchReset(int usedPrefetches, int)
-{
- LOG(StorageAPI, "IDBCursorBackendLevelDB::prefetchReset");
- m_cursor = m_savedCursor;
- m_savedCursor = 0;
-
- if (m_closed)
- return;
- if (m_cursor) {
- for (int i = 0; i < usedPrefetches; ++i) {
- bool ok = m_cursor->continueFunction();
- ASSERT_UNUSED(ok, ok);
- }
- }
-}
-
-void IDBCursorBackendLevelDB::close()
-{
- LOG(StorageAPI, "IDBCursorBackendLevelDB::close");
- m_closed = true;
- m_cursor.clear();
- m_savedCursor.clear();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE) && USE(LEVELDB)
Deleted: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h (158288 => 158289)
--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h 2013-10-30 18:01:33 UTC (rev 158288)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h 2013-10-30 18:02:37 UTC (rev 158289)
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-#ifndef IDBCursorBackendLevelDB_h
-#define IDBCursorBackendLevelDB_h
-
-#if ENABLE(INDEXED_DATABASE) && USE(LEVELDB)
-
-#include "IDBBackingStoreLevelDB.h"
-#include "IDBCursorBackendInterface.h"
-#include "IDBDatabaseBackendImpl.h"
-#include "IDBTransactionBackendImpl.h"
-#include "SharedBuffer.h"
-#include <wtf/OwnPtr.h>
-#include <wtf/PassOwnPtr.h>
-#include <wtf/RefPtr.h>
-
-namespace WebCore {
-
-class IDBKeyRange;
-
-class IDBCursorBackendLevelDB : public IDBCursorBackendInterface {
-public:
- static PassRefPtr<IDBCursorBackendLevelDB> create(PassRefPtr<IDBBackingStoreInterface::Cursor> cursor, IndexedDB::CursorType cursorType, IDBTransactionBackendInterface* transaction, int64_t objectStoreId)
- {
- return adoptRef(new IDBCursorBackendLevelDB(cursor, cursorType, IDBDatabaseBackendInterface::NormalTask, transaction, objectStoreId));
- }
- static PassRefPtr<IDBCursorBackendLevelDB> create(PassRefPtr<IDBBackingStoreInterface::Cursor> cursor, IndexedDB::CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, IDBTransactionBackendInterface* transaction, int64_t objectStoreId)
- {
- return adoptRef(new IDBCursorBackendLevelDB(cursor, cursorType, taskType, transaction, objectStoreId));
- }
- virtual ~IDBCursorBackendLevelDB();
-
- // IDBCursorBackendInterface
- virtual void advance(unsigned long, PassRefPtr<IDBCallbacks>, ExceptionCode&);
- virtual void continueFunction(PassRefPtr<IDBKey>, PassRefPtr<IDBCallbacks>, ExceptionCode&);
- virtual void deleteFunction(PassRefPtr<IDBCallbacks>, ExceptionCode&);
- virtual void prefetchContinue(int numberToFetch, PassRefPtr<IDBCallbacks>, ExceptionCode&);
- virtual void prefetchReset(int usedPrefetches, int unusedPrefetches);
- virtual void postSuccessHandlerCallback() { }
-
- virtual IDBKey* key() const OVERRIDE { return m_cursor->key().get(); }
- virtual IDBKey* primaryKey() const OVERRIDE { return m_cursor->primaryKey().get(); }
- virtual SharedBuffer* value() const OVERRIDE { return (m_cursorType == IndexedDB::CursorKeyOnly) ? 0 : m_cursor->value().get(); }
-
- virtual void close() OVERRIDE;
-
-private:
- IDBCursorBackendLevelDB(PassRefPtr<IDBBackingStoreInterface::Cursor>, IndexedDB::CursorType, IDBDatabaseBackendInterface::TaskType, IDBTransactionBackendInterface*, int64_t objectStoreId);
-
- class CursorIterationOperation;
- class CursorAdvanceOperation;
- class CursorPrefetchIterationOperation;
-
- IDBDatabaseBackendInterface::TaskType m_taskType;
- IndexedDB::CursorType m_cursorType;
- const RefPtr<IDBDatabaseBackendInterface> m_database;
- RefPtr<IDBTransactionBackendInterface> m_transaction;
- const int64_t m_objectStoreId;
-
- RefPtr<IDBBackingStoreInterface::Cursor> m_cursor; // Must be destroyed before m_transaction.
- RefPtr<IDBBackingStoreInterface::Cursor> m_savedCursor; // Must be destroyed before m_transaction.
-
- bool m_closed;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(INDEXED_DATABASE) && USE(LEVELDB)
-
-#endif // IDBCursorBackendLevelDB_h
Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp (158288 => 158289)
--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp 2013-10-30 18:01:33 UTC (rev 158288)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp 2013-10-30 18:02:37 UTC (rev 158289)
@@ -31,7 +31,7 @@
#include "DOMStringList.h"
#include "IDBBackingStoreLevelDB.h"
-#include "IDBCursorBackendLevelDB.h"
+#include "IDBCursorBackendImpl.h"
#include "IDBDatabaseBackendImpl.h"
#include "IDBDatabaseException.h"
#include "IDBTransactionBackendImpl.h"
Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (158288 => 158289)
--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj 2013-10-30 18:01:33 UTC (rev 158288)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj 2013-10-30 18:02:37 UTC (rev 158289)
@@ -6543,7 +6543,7 @@
<ClCompile Include="..\Modules\indexeddb\DOMWindowIndexedDatabase.cpp" />
<ClCompile Include="..\Modules\indexeddb\IDBAny.cpp" />
<ClCompile Include="..\Modules\indexeddb\IDBCursor.cpp" />
- <ClCompile Include="..\Modules\indexeddb\leveldb\IDBCursorBackendLevelDB.cpp" />
+ <ClCompile Include="..\Modules\indexeddb\IDBCursorBackendImpl.cpp" />
<ClCompile Include="..\Modules\indexeddb\IDBDatabase.cpp" />
<ClCompile Include="..\Modules\indexeddb\IDBFactory.cpp" />
<ClCompile Include="..\Modules\indexeddb\leveldb\IDBFactoryBackendLevelDB.cpp" />
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (158288 => 158289)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-10-30 18:01:33 UTC (rev 158288)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-10-30 18:02:37 UTC (rev 158289)
@@ -1728,6 +1728,8 @@
514C767E0CE923A1007EF3CD /* ResourceResponseBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C76690CE923A1007EF3CD /* ResourceResponseBase.cpp */; };
514C767F0CE923A1007EF3CD /* ResourceResponseBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C766A0CE923A1007EF3CD /* ResourceResponseBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
515788C11207852C00A37C4A /* VisitedLinkStrategy.h in Headers */ = {isa = PBXBuildFile; fileRef = 515788C01207852C00A37C4A /* VisitedLinkStrategy.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 515C321518216A5B00A6DAA9 /* IDBCursorBackendImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 515C321318216A5B00A6DAA9 /* IDBCursorBackendImpl.cpp */; };
+ 515C321618216A5B00A6DAA9 /* IDBCursorBackendImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 515C321418216A5B00A6DAA9 /* IDBCursorBackendImpl.h */; };
5160300B0CC4251200C8AC25 /* FileSystemPOSIX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5160300A0CC4251200C8AC25 /* FileSystemPOSIX.cpp */; };
5160306C0CC4362300C8AC25 /* FileSystemCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5160306B0CC4362300C8AC25 /* FileSystemCF.cpp */; };
5160F4980B0AA75F00C1D2AF /* HistoryItemMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5160F4970B0AA75F00C1D2AF /* HistoryItemMac.mm */; };
@@ -8332,6 +8334,8 @@
514C76690CE923A1007EF3CD /* ResourceResponseBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceResponseBase.cpp; sourceTree = "<group>"; };
514C766A0CE923A1007EF3CD /* ResourceResponseBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceResponseBase.h; sourceTree = "<group>"; };
515788C01207852C00A37C4A /* VisitedLinkStrategy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VisitedLinkStrategy.h; sourceTree = "<group>"; };
+ 515C321318216A5B00A6DAA9 /* IDBCursorBackendImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursorBackendImpl.cpp; sourceTree = "<group>"; };
+ 515C321418216A5B00A6DAA9 /* IDBCursorBackendImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursorBackendImpl.h; sourceTree = "<group>"; };
5160300A0CC4251200C8AC25 /* FileSystemPOSIX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileSystemPOSIX.cpp; sourceTree = "<group>"; };
5160306B0CC4362300C8AC25 /* FileSystemCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileSystemCF.cpp; sourceTree = "<group>"; };
5160F4970B0AA75F00C1D2AF /* HistoryItemMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = HistoryItemMac.mm; path = mac/HistoryItemMac.mm; sourceTree = "<group>"; };
@@ -16771,6 +16775,8 @@
51D71975181106DF0016DC51 /* IDBCursor.cpp */,
51D71976181106DF0016DC51 /* IDBCursor.h */,
51D71977181106DF0016DC51 /* IDBCursor.idl */,
+ 515C321318216A5B00A6DAA9 /* IDBCursorBackendImpl.cpp */,
+ 515C321418216A5B00A6DAA9 /* IDBCursorBackendImpl.h */,
51D71978181106DF0016DC51 /* IDBCursorBackendInterface.h */,
51D71979181106DF0016DC51 /* IDBCursorWithValue.cpp */,
51D7197A181106DF0016DC51 /* IDBCursorWithValue.h */,
@@ -22599,6 +22605,7 @@
9746AF2514F4DDE6003E7A71 /* GeolocationClient.h in Headers */,
9746AF2714F4DDE6003E7A70 /* GeolocationController.h in Headers */,
9746AF2814F4DDE6003E7A70 /* GeolocationError.h in Headers */,
+ 515C321618216A5B00A6DAA9 /* IDBCursorBackendImpl.h in Headers */,
078E091A17D14D1C00420AA1 /* NavigatorMediaStream.h in Headers */,
9746AF2914F4DDE6003E7A70 /* GeolocationPosition.h in Headers */,
9746AF2A14F4DDE6003E7A70 /* Geoposition.h in Headers */,
@@ -26077,6 +26084,7 @@
82AB1773125C826700C5069D /* InspectorStyleSheet.cpp in Sources */,
82889B4C13C62392009A6156 /* InspectorStyleTextEditor.cpp in Sources */,
07277E4E17D018CC0015534D /* JSMediaStreamAudioDestinationNode.cpp in Sources */,
+ 515C321518216A5B00A6DAA9 /* IDBCursorBackendImpl.cpp in Sources */,
754133AA102E00F400075D00 /* InspectorTimelineAgent.cpp in Sources */,
573D134714CE39FF0057ABCA /* InspectorTypeBuilder.cpp in Sources */,
4F3289B511A42AAB005ABE7E /* InspectorValues.cpp in Sources */,