IndexedDB: promote objectstore/index backend ids to the frontend
https://bugs.webkit.org/show_bug.cgi?id=97834

Reviewed by Tony Chang.

Source/WebCore:

Expose int64-based database/objectStore/index ids to the renderer,
step 1 of 2. Support both styles of createObjectStore and
createIndex: those that take an explicit id, and those that take
-1, meaning to autogenerate an id on the backend. In part 2, after
the chromium side lands, support for the autogenerated ids will be
removed. (See https://bugs.webkit.org/show_bug.cgi?id=98085)

This is a part of larger refactoring work to ultimately make the interface
between the frontend and the backend simpler.

No new tests, extensive ASSERTs and existing tests cover correctness.

* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
(WebCore::IDBDatabaseBackendImpl::openInternal):
(WebCore::IDBDatabaseBackendImpl::metadata):
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore):
(WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
(WebCore::IDBDatabaseBackendImpl::loadObjectStores):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::metadata):
* Modules/indexeddb/IDBIndexBackendImpl.h:
(WebCore::IDBIndexBackendImpl::create):
(IDBIndexBackendImpl):
* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore):
(WebCore::getMaxObjectStoreId):
(WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::deleteDatabase):
(WebCore::IDBLevelDBBackingStore::getObjectStores):
(WebCore::setMaxObjectStoreId):
(WebCore::IDBLevelDBBackingStore::createObjectStore):
(WebCore::getMaxIndexId):
(WebCore::setMaxIndexId):
(WebCore::IDBLevelDBBackingStore::createIndex):
* Modules/indexeddb/IDBLevelDBBackingStore.h:
(IDBLevelDBBackingStore):
* Modules/indexeddb/IDBMetadata.h:
(WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
(IDBDatabaseMetadata):
(WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
(IDBObjectStoreMetadata):
(WebCore::IDBIndexMetadata::IDBIndexMetadata):
(IDBIndexMetadata):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
(WebCore::IDBObjectStoreBackendImpl::metadata):
(WebCore::IDBObjectStoreBackendImpl::createIndex):
(WebCore):
(WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(WebCore::IDBObjectStoreBackendImpl::create):
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h:

Source/WebKit/chromium:

Support for marshalling additional IDBMetadata and new calls to
createObjectStore/createIndex.

* public/WebIDBDatabase.h:
(WebKit::WebIDBDatabase::createObjectStore):
* public/WebIDBMetadata.h:
(ObjectStore):
(Index):
* public/WebIDBObjectStore.h:
(WebKit::WebIDBObjectStore::createIndex):
* src/IDBDatabaseBackendProxy.cpp:
(WebKit::IDBDatabaseBackendProxy::createObjectStore):
(WebKit):
* src/IDBDatabaseBackendProxy.h:
(IDBDatabaseBackendProxy):
* src/IDBObjectStoreBackendProxy.cpp:
(WebKit::IDBObjectStoreBackendProxy::createIndex):
(WebKit):
* src/IDBObjectStoreBackendProxy.h:
(IDBObjectStoreBackendProxy):
* src/WebIDBDatabaseImpl.cpp:
(WebKit::WebIDBDatabaseImpl::createObjectStore):
(WebKit):
* src/WebIDBDatabaseImpl.h:
(WebIDBDatabaseImpl):
* src/WebIDBMetadata.cpp:
(WebKit::WebIDBMetadata::WebIDBMetadata):
(WebKit::WebIDBMetadata::operator IDBDatabaseMetadata):
* src/WebIDBObjectStoreImpl.cpp:
(WebKit::WebIDBObjectStoreImpl::createIndex):
(WebKit):
* src/WebIDBObjectStoreImpl.h:
(WebIDBObjectStoreImpl):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130428 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: Build fix after r130411. Add the right offset.
Also use RefPtr instead of a raw pointer for next and previous pointers.

* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):

LayoutTests: Another rebaseline needed after r130411.

* platform/mac/editing/pasteboard/5006779-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130429 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Chromium rebaselines.

Rebaseline pixel results after r130412.

* platform/chromium-mac-snowleopard/scrollbars/listbox-scrollbar-combinations-expected.png:
* platform/chromium-mac/scrollbars/listbox-scrollbar-combinations-expected.png:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130430 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Improve initial empty process tracking
        https://bugs.webkit.org/show_bug.cgi?id=98458

        Reviewed by Sam Weinig.

        * UIProcess/WebContext.cpp: (WebKit::WebContext::disconnectProcess):
        Unset m_haveInitialEmptyProcess if we no longer do.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130432 268f45cc-cd09-0410-ab3c-d52691b4dbfc