Changeset 140935 in webkit


Ignore:
Timestamp:
Jan 27, 2013 6:32:10 PM (11 years ago)
Author:
keishi@webkit.org
Message:

Unreviewed, rolling out r140850.
http://trac.webkit.org/changeset/140850
https://bugs.webkit.org/show_bug.cgi?id=107960

r14602 caused 8 indexed tests to crash.

Source/WebCore:

  • Modules/indexeddb/IDBCursorBackendImpl.cpp:

(WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):

  • Modules/indexeddb/IDBCursorBackendImpl.h:

(WebCore::IDBCursorBackendImpl::create):
(IDBCursorBackendImpl):

  • Modules/indexeddb/IDBDatabaseBackendImpl.cpp:

(WebCore::IDBDatabaseBackendImpl::setIndexesReady):
(WebCore::OpenCursorOperation::perform):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::openCursor):

  • Modules/indexeddb/IDBObjectStore.h:

(WebCore::IDBObjectStore::openCursor):
(IDBObjectStore):

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::create):
(WebCore::IDBRequest::IDBRequest):

  • Modules/indexeddb/IDBRequest.h:

(IDBRequest):
(WebCore::IDBRequest::taskType):

  • Modules/indexeddb/IDBTransactionBackendImpl.cpp:

(WebCore::IDBTransactionBackendImpl::scheduleTask):

  • Modules/indexeddb/IDBTransactionBackendImpl.h:

(WebCore::IDBTransactionBackendImpl::scheduleTask):
(IDBTransactionBackendImpl):

  • Modules/indexeddb/IDBTransactionBackendInterface.h:

(IDBTransactionBackendInterface):

Source/WebKit/chromium:

  • src/AssertMatchingEnums.cpp:
Location:
trunk/Source
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r140934 r140935  
     12013-01-27  Keishi Hattori  <keishi@webkit.org>
     2
     3        Unreviewed, rolling out r140850.
     4        http://trac.webkit.org/changeset/140850
     5        https://bugs.webkit.org/show_bug.cgi?id=107960
     6
     7        r14602 caused 8 indexed tests to crash.
     8
     9        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
     10        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
     11        * Modules/indexeddb/IDBCursorBackendImpl.h:
     12        (WebCore::IDBCursorBackendImpl::create):
     13        (IDBCursorBackendImpl):
     14        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
     15        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
     16        (WebCore::OpenCursorOperation::perform):
     17        * Modules/indexeddb/IDBObjectStore.cpp:
     18        (WebCore::IDBObjectStore::createIndex):
     19        (WebCore::IDBObjectStore::openCursor):
     20        * Modules/indexeddb/IDBObjectStore.h:
     21        (WebCore::IDBObjectStore::openCursor):
     22        (IDBObjectStore):
     23        * Modules/indexeddb/IDBOpenDBRequest.cpp:
     24        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
     25        * Modules/indexeddb/IDBRequest.cpp:
     26        (WebCore::IDBRequest::create):
     27        (WebCore::IDBRequest::IDBRequest):
     28        * Modules/indexeddb/IDBRequest.h:
     29        (IDBRequest):
     30        (WebCore::IDBRequest::taskType):
     31        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
     32        (WebCore::IDBTransactionBackendImpl::scheduleTask):
     33        * Modules/indexeddb/IDBTransactionBackendImpl.h:
     34        (WebCore::IDBTransactionBackendImpl::scheduleTask):
     35        (IDBTransactionBackendImpl):
     36        * Modules/indexeddb/IDBTransactionBackendInterface.h:
     37        (IDBTransactionBackendInterface):
     38
    1392013-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
    240
  • trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp

    r140850 r140935  
    102102};
    103103
    104 IDBCursorBackendImpl::IDBCursorBackendImpl(PassRefPtr<IDBBackingStore::Cursor> cursor, CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, IDBTransactionBackendImpl* transaction, int64_t objectStoreId)
     104IDBCursorBackendImpl::IDBCursorBackendImpl(PassRefPtr<IDBBackingStore::Cursor> cursor, CursorType cursorType, IDBTransactionBackendInterface::TaskType taskType, IDBTransactionBackendImpl* transaction, int64_t objectStoreId)
    105105    : m_taskType(taskType)
    106106    , m_cursorType(cursorType)
  • trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.h

    r140850 r140935  
    4848    static PassRefPtr<IDBCursorBackendImpl> create(PassRefPtr<IDBBackingStore::Cursor> cursor, CursorType cursorType, IDBTransactionBackendImpl* transaction, int64_t objectStoreId)
    4949    {
    50         return adoptRef(new IDBCursorBackendImpl(cursor, cursorType, IDBDatabaseBackendInterface::NormalTask, transaction, objectStoreId));
     50        return adoptRef(new IDBCursorBackendImpl(cursor, cursorType, IDBTransactionBackendInterface::NormalTask, transaction, objectStoreId));
    5151    }
    52     static PassRefPtr<IDBCursorBackendImpl> create(PassRefPtr<IDBBackingStore::Cursor> cursor, CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, IDBTransactionBackendImpl* transaction, int64_t objectStoreId)
     52    static PassRefPtr<IDBCursorBackendImpl> create(PassRefPtr<IDBBackingStore::Cursor> cursor, CursorType cursorType, IDBTransactionBackendInterface::TaskType taskType, IDBTransactionBackendImpl* transaction, int64_t objectStoreId)
    5353    {
    5454        return adoptRef(new IDBCursorBackendImpl(cursor, cursorType, taskType, transaction, objectStoreId));
     
    7070
    7171private:
    72     IDBCursorBackendImpl(PassRefPtr<IDBBackingStore::Cursor>, CursorType, IDBDatabaseBackendInterface::TaskType, IDBTransactionBackendImpl*, int64_t objectStoreId);
     72    IDBCursorBackendImpl(PassRefPtr<IDBBackingStore::Cursor>, CursorType, IDBTransactionBackendInterface::TaskType, IDBTransactionBackendImpl*, int64_t objectStoreId);
    7373
    7474    class CursorIterationOperation;
     
    7676    class CursorPrefetchIterationOperation;
    7777
    78     IDBDatabaseBackendInterface::TaskType m_taskType;
     78    IDBTransactionBackendInterface::TaskType m_taskType;
    7979    CursorType m_cursorType;
    8080    const RefPtr<IDBDatabaseBackendImpl> m_database;
  • trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp

    r140850 r140935  
    915915        return;
    916916
    917     if (!transaction->scheduleTask(IDBDatabaseBackendInterface::PreemptiveTask, SetIndexesReadyOperation::create(indexIds.size())))
     917    if (!transaction->scheduleTask(IDBTransactionBackendInterface::PreemptiveTask, SetIndexesReadyOperation::create(indexIds.size())))
    918918        ASSERT_NOT_REACHED();
    919919}
     
    964964    }
    965965
    966     IDBDatabaseBackendInterface::TaskType taskType(static_cast<IDBDatabaseBackendInterface::TaskType>(m_taskType));
     966    IDBTransactionBackendInterface::TaskType taskType(static_cast<IDBTransactionBackendInterface::TaskType>(m_taskType));
    967967    RefPtr<IDBCursorBackendImpl> cursor = IDBCursorBackendImpl::create(backingStoreCursor.get(), m_cursorType, taskType, transaction, m_objectStoreId);
    968968    m_callbacks->onSuccess(cursor, cursor->key(), cursor->primaryKey(), cursor->value());
  • trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp

    r140850 r140935  
    416416        return 0;
    417417
    418     RefPtr<IDBRequest> indexRequest = openCursor(context, static_cast<IDBKeyRange*>(0), IDBCursor::directionNext(), IDBDatabaseBackendInterface::PreemptiveTask, ec);
     418    RefPtr<IDBRequest> indexRequest = openCursor(context, static_cast<IDBKeyRange*>(0), IDBCursor::directionNext(), IDBTransactionBackendInterface::PreemptiveTask, ec);
    419419    ASSERT(!ec);
    420420    if (ec)
     
    492492}
    493493
    494 PassRefPtr<IDBRequest> IDBObjectStore::openCursor(ScriptExecutionContext* context, PassRefPtr<IDBKeyRange> range, const String& directionString, IDBDatabaseBackendInterface::TaskType taskType, ExceptionCode& ec)
     494PassRefPtr<IDBRequest> IDBObjectStore::openCursor(ScriptExecutionContext* context, PassRefPtr<IDBKeyRange> range, const String& directionString, IDBTransactionBackendInterface::TaskType taskType, ExceptionCode& ec)
    495495{
    496496    IDB_TRACE("IDBObjectStore::openCursor");
  • trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.h

    r140850 r140935  
    7171    PassRefPtr<IDBRequest> openCursor(ScriptExecutionContext* context, PassRefPtr<IDBKeyRange> keyRange, ExceptionCode& ec) { return openCursor(context, keyRange, IDBCursor::directionNext(), ec); }
    7272    PassRefPtr<IDBRequest> openCursor(ScriptExecutionContext* context, const ScriptValue& key, ExceptionCode& ec) { return openCursor(context, key, IDBCursor::directionNext(), ec); }
    73     PassRefPtr<IDBRequest> openCursor(ScriptExecutionContext* context, PassRefPtr<IDBKeyRange> range, const String& direction, ExceptionCode& ec) { return openCursor(context, range, direction, IDBDatabaseBackendInterface::NormalTask, ec); }
    74     PassRefPtr<IDBRequest> openCursor(ScriptExecutionContext*, PassRefPtr<IDBKeyRange>, const String& direction, IDBDatabaseBackendInterface::TaskType, ExceptionCode&);
     73    PassRefPtr<IDBRequest> openCursor(ScriptExecutionContext* context, PassRefPtr<IDBKeyRange> range, const String& direction, ExceptionCode& ec) { return openCursor(context, range, direction, IDBTransactionBackendInterface::NormalTask, ec); }
     74    PassRefPtr<IDBRequest> openCursor(ScriptExecutionContext*, PassRefPtr<IDBKeyRange>, const String& direction, IDBTransactionBackendInterface::TaskType, ExceptionCode&);
    7575    PassRefPtr<IDBRequest> openCursor(ScriptExecutionContext*, const ScriptValue& key, const String& direction, ExceptionCode&);
    7676
  • trunk/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp

    r140934 r140935  
    4646
    4747IDBOpenDBRequest::IDBOpenDBRequest(ScriptExecutionContext* context, PassRefPtr<IDBDatabaseCallbacksImpl> callbacks, int64_t transactionId, int64_t version)
    48     : IDBRequest(context, IDBAny::createNull(), IDBDatabaseBackendInterface::NormalTask, 0)
     48    : IDBRequest(context, IDBAny::createNull(), IDBTransactionBackendInterface::NormalTask, 0)
    4949    , m_databaseCallbacks(callbacks)
    5050    , m_transactionId(transactionId)
  • trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp

    r140850 r140935  
    4848PassRefPtr<IDBRequest> IDBRequest::create(ScriptExecutionContext* context, PassRefPtr<IDBAny> source, IDBTransaction* transaction)
    4949{
    50     RefPtr<IDBRequest> request(adoptRef(new IDBRequest(context, source, IDBDatabaseBackendInterface::NormalTask, transaction)));
     50    RefPtr<IDBRequest> request(adoptRef(new IDBRequest(context, source, IDBTransactionBackendInterface::NormalTask, transaction)));
    5151    request->suspendIfNeeded();
    5252    // Requests associated with IDBFactory (open/deleteDatabase/getDatabaseNames) are not associated with transactions.
     
    5656}
    5757
    58 PassRefPtr<IDBRequest> IDBRequest::create(ScriptExecutionContext* context, PassRefPtr<IDBAny> source, IDBDatabaseBackendInterface::TaskType taskType, IDBTransaction* transaction)
     58PassRefPtr<IDBRequest> IDBRequest::create(ScriptExecutionContext* context, PassRefPtr<IDBAny> source, IDBTransactionBackendInterface::TaskType taskType, IDBTransaction* transaction)
    5959{
    6060    RefPtr<IDBRequest> request(adoptRef(new IDBRequest(context, source, taskType, transaction)));
     
    6666}
    6767
    68 IDBRequest::IDBRequest(ScriptExecutionContext* context, PassRefPtr<IDBAny> source, IDBDatabaseBackendInterface::TaskType taskType, IDBTransaction* transaction)
     68IDBRequest::IDBRequest(ScriptExecutionContext* context, PassRefPtr<IDBAny> source, IDBTransactionBackendInterface::TaskType taskType, IDBTransaction* transaction)
    6969    : ActiveDOMObject(context, this)
    7070    , m_result(0)
  • trunk/Source/WebCore/Modules/indexeddb/IDBRequest.h

    r140850 r140935  
    5858public:
    5959    static PassRefPtr<IDBRequest> create(ScriptExecutionContext*, PassRefPtr<IDBAny> source, IDBTransaction*);
    60     static PassRefPtr<IDBRequest> create(ScriptExecutionContext*, PassRefPtr<IDBAny> source, IDBDatabaseBackendInterface::TaskType, IDBTransaction*);
     60    static PassRefPtr<IDBRequest> create(ScriptExecutionContext*, PassRefPtr<IDBAny> source, IDBTransactionBackendInterface::TaskType, IDBTransaction*);
    6161    virtual ~IDBRequest();
    6262
     
    116116    using RefCounted<IDBCallbacks>::deref;
    117117
    118     IDBDatabaseBackendInterface::TaskType taskType() { return m_taskType; }
     118    IDBTransactionBackendInterface::TaskType taskType() { return m_taskType; }
    119119
    120120    DOMRequestState* requestState() { return &m_requestState; }
    121121
    122122protected:
    123     IDBRequest(ScriptExecutionContext*, PassRefPtr<IDBAny> source, IDBDatabaseBackendInterface::TaskType, IDBTransaction*);
     123    IDBRequest(ScriptExecutionContext*, PassRefPtr<IDBAny> source, IDBTransactionBackendInterface::TaskType, IDBTransaction*);
    124124    void enqueueEvent(PassRefPtr<Event>);
    125125    virtual bool shouldEnqueueEvent() const;
     
    146146
    147147    RefPtr<IDBAny> m_source;
    148     const IDBDatabaseBackendInterface::TaskType m_taskType;
     148    const IDBTransactionBackendInterface::TaskType m_taskType;
    149149
    150150    bool m_hasPendingActivity;
  • trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp

    r140850 r140935  
    7171}
    7272
    73 bool IDBTransactionBackendImpl::scheduleTask(IDBDatabaseBackendInterface::TaskType type, PassOwnPtr<Operation> task, PassOwnPtr<Operation> abortTask)
     73bool IDBTransactionBackendImpl::scheduleTask(TaskType type, PassOwnPtr<Operation> task, PassOwnPtr<Operation> abortTask)
    7474{
    7575    if (m_state == Finished)
    7676        return false;
    7777
    78     if (type == IDBDatabaseBackendInterface::NormalTask)
     78    if (type == NormalTask)
    7979        m_taskQueue.append(task);
    8080    else
  • trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h

    r140850 r140935  
    6868    const HashSet<int64_t>& scope() const { return m_objectStoreIds; }
    6969    bool isFinished() const { return m_state == Finished; }
    70     bool scheduleTask(PassOwnPtr<Operation> task, PassOwnPtr<Operation> abortTask = nullptr) { return scheduleTask(IDBDatabaseBackendInterface::NormalTask, task, abortTask); }
    71     bool scheduleTask(IDBDatabaseBackendInterface::TaskType, PassOwnPtr<Operation>, PassOwnPtr<Operation> abortTask = nullptr);
     70    bool scheduleTask(PassOwnPtr<Operation> task, PassOwnPtr<Operation> abortTask = nullptr) { return scheduleTask(NormalTask, task, abortTask); }
     71    bool scheduleTask(TaskType, PassOwnPtr<Operation>, PassOwnPtr<Operation> abortTask = nullptr);
    7272    void registerOpenCursor(IDBCursorBackendImpl*);
    7373    void unregisterOpenCursor(IDBCursorBackendImpl*);
  • trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendInterface.h

    r140850 r140935  
    4747public:
    4848    virtual ~IDBTransactionBackendInterface() { }
     49
     50    enum TaskType {
     51        NormalTask = 0,
     52        PreemptiveTask
     53    };
     54
    4955    virtual void commit() = 0;
    5056    virtual void abort() = 0;
  • trunk/Source/WebKit/chromium/ChangeLog

    r140928 r140935  
     12013-01-27  Keishi Hattori  <keishi@webkit.org>
     2
     3        Unreviewed, rolling out r140850.
     4        http://trac.webkit.org/changeset/140850
     5        https://bugs.webkit.org/show_bug.cgi?id=107960
     6
     7        r14602 caused 8 indexed tests to crash.
     8
     9        * src/AssertMatchingEnums.cpp:
     10
    1112013-01-27  Jochen Eisinger  <jochen@chromium.org>
    212
  • trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp

    r140906 r140935  
    503503COMPILE_ASSERT_MATCHING_ENUM(WebIDBCursor::PrevNoDuplicate, IDBCursor::PREV_NO_DUPLICATE);
    504504
    505 COMPILE_ASSERT_MATCHING_ENUM(WebIDBTransaction::PreemptiveTask, IDBDatabaseBackendInterface::PreemptiveTask);
    506 COMPILE_ASSERT_MATCHING_ENUM(WebIDBTransaction::NormalTask, IDBDatabaseBackendInterface::NormalTask);
     505COMPILE_ASSERT_MATCHING_ENUM(WebIDBTransaction::PreemptiveTask, IDBTransactionBackendInterface::PreemptiveTask);
     506COMPILE_ASSERT_MATCHING_ENUM(WebIDBTransaction::NormalTask, IDBTransactionBackendInterface::NormalTask);
    507507#endif
    508508
Note: See TracChangeset for help on using the changeset viewer.