Title: [158289] trunk/Source/WebCore

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 */,
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to