WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch v1
patch (text/plain), 32.98 KB, created by
Brady Eidson
on 2016-02-16 16:25:01 PST
(
hide
)
Description:
Patch v1
Filename:
MIME Type:
Creator:
Brady Eidson
Created:
2016-02-16 16:25:01 PST
Size:
32.98 KB
patch
obsolete
>diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index ed3dbe2..f09fffa 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,22 @@ >+2016-02-16 Brady Eidson <beidson@apple.com> >+ >+ Modern IDB: More WK2 IPC Scaffolding. >+ https://bugs.webkit.org/show_bug.cgi?id=154317 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ No change in behavior yet; Just laying the groundwork. >+ >+ * Modules/indexeddb/shared/IDBCursorInfo.h: >+ * Modules/indexeddb/shared/IDBError.h: >+ * Modules/indexeddb/shared/IDBIndexInfo.h: >+ * Modules/indexeddb/shared/IDBObjectStoreInfo.h: >+ * Modules/indexeddb/shared/IDBRequestData.h: >+ * Modules/indexeddb/shared/IDBResourceIdentifier.h: >+ * Modules/indexeddb/shared/IDBResultData.h: >+ * Modules/indexeddb/shared/IDBTransactionInfo.h: >+ * WebCore.xcodeproj/project.pbxproj: >+ > 2016-02-16 Daniel Bates <dabates@apple.com> > > CSP: Disallow an empty host in a host-source source expression >diff --git a/Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.h b/Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.h >index 401e508..91bbd71 100644 >--- a/Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.h >+++ b/Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.h >@@ -69,6 +69,10 @@ public: > > IDBCursorInfo isolatedCopy() const; > >+ WEBCORE_EXPORT IDBCursorInfo(); >+ template<class Encoder> void encode(Encoder&) const; >+ template<class Decoder> static bool decode(Decoder&, IDBCursorInfo&); >+ > private: > IDBCursorInfo(IDBClient::IDBTransaction&, uint64_t objectStoreIdentifier, const IDBKeyRangeData&, IndexedDB::CursorDirection, IndexedDB::CursorType); > IDBCursorInfo(IDBClient::IDBTransaction&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData&, IndexedDB::CursorDirection, IndexedDB::CursorType); >diff --git a/Source/WebCore/Modules/indexeddb/shared/IDBError.h b/Source/WebCore/Modules/indexeddb/shared/IDBError.h >index 211d19d..975b2ca 100644 >--- a/Source/WebCore/Modules/indexeddb/shared/IDBError.h >+++ b/Source/WebCore/Modules/indexeddb/shared/IDBError.h >@@ -49,6 +49,9 @@ public: > > IDBError isolatedCopy() const; > >+ template<class Encoder> void encode(Encoder&) const; >+ template<class Decoder> static bool decode(Decoder&, IDBError&); >+ > private: > ExceptionCode m_code { IDBDatabaseException::NoError }; > String m_message; >diff --git a/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h b/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h >index 7fc56d2..547be70 100644 >--- a/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h >+++ b/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h >@@ -47,6 +47,9 @@ public: > bool unique() const { return m_unique; } > bool multiEntry() const { return m_multiEntry; } > >+ template<class Encoder> void encode(Encoder&) const; >+ template<class Decoder> static bool decode(Decoder&, IDBIndexInfo&); >+ > #ifndef NDEBUG > String loggingString(int indent = 0) const; > #endif >diff --git a/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h b/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h >index 2498d85..715f96a 100644 >--- a/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h >+++ b/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h >@@ -62,6 +62,9 @@ public: > void deleteIndex(const String& indexName); > void deleteIndex(uint64_t indexIdentifier); > >+ template<class Encoder> void encode(Encoder&) const; >+ template<class Decoder> static bool decode(Decoder&, IDBObjectStoreInfo&); >+ > #ifndef NDEBUG > String loggingString(int indent = 0) const; > #endif >diff --git a/Source/WebCore/Modules/indexeddb/shared/IDBRequestData.h b/Source/WebCore/Modules/indexeddb/shared/IDBRequestData.h >index 3e1312c..c960e77 100644 >--- a/Source/WebCore/Modules/indexeddb/shared/IDBRequestData.h >+++ b/Source/WebCore/Modules/indexeddb/shared/IDBRequestData.h >@@ -67,6 +67,11 @@ public: > > IDBRequestData isolatedCopy(); > >+ WEBCORE_EXPORT IDBRequestData(); >+ >+ template<class Encoder> void encode(Encoder&) const; >+ template<class Decoder> static bool decode(Decoder&, IDBRequestData&); >+ > private: > uint64_t m_serverConnectionIdentifier { 0 }; > std::unique_ptr<IDBResourceIdentifier> m_requestIdentifier; >diff --git a/Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.h b/Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.h >index d2e146c..e0888a8 100644 >--- a/Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.h >+++ b/Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.h >@@ -76,8 +76,12 @@ public: > String loggingString() const; > #endif > >+ WEBCORE_EXPORT IDBResourceIdentifier(); >+ >+ template<class Encoder> void encode(Encoder&) const; >+ template<class Decoder> static bool decode(Decoder&, IDBResourceIdentifier&); >+ > private: >- IDBResourceIdentifier() = delete; > IDBResourceIdentifier(uint64_t connectionIdentifier, uint64_t resourceIdentifier); > uint64_t m_idbConnectionIdentifier { 0 }; > uint64_t m_resourceNumber { 0 }; >diff --git a/Source/WebCore/Modules/indexeddb/shared/IDBResultData.h b/Source/WebCore/Modules/indexeddb/shared/IDBResultData.h >index 67ad70b..65f7df1 100644 >--- a/Source/WebCore/Modules/indexeddb/shared/IDBResultData.h >+++ b/Source/WebCore/Modules/indexeddb/shared/IDBResultData.h >@@ -98,11 +98,13 @@ public: > > const IDBGetResult& getResult() const; > >+ WEBCORE_EXPORT IDBResultData(); >+ > private: > IDBResultData(const IDBResourceIdentifier&); > IDBResultData(IDBResultType, const IDBResourceIdentifier&); > >- IDBResultType m_type; >+ IDBResultType m_type { IDBResultType::Error }; > IDBResourceIdentifier m_requestIdentifier; > > IDBError m_error; >diff --git a/Source/WebCore/Modules/indexeddb/shared/IDBTransactionInfo.h b/Source/WebCore/Modules/indexeddb/shared/IDBTransactionInfo.h >index ed8a384..d08543e 100644 >--- a/Source/WebCore/Modules/indexeddb/shared/IDBTransactionInfo.h >+++ b/Source/WebCore/Modules/indexeddb/shared/IDBTransactionInfo.h >@@ -61,6 +61,10 @@ public: > > IDBDatabaseInfo* originalDatabaseInfo() const { return m_originalDatabaseInfo.get(); } > >+ WEBCORE_EXPORT IDBTransactionInfo(); >+ template<class Encoder> void encode(Encoder&) const; >+ template<class Decoder> static bool decode(Decoder&, IDBTransactionInfo&); >+ > #ifndef NDEBUG > String loggingString() const; > #endif >diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >index e84f462..285333e 100644 >--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj >+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >@@ -2064,7 +2064,7 @@ > 517138F71BF128BB000D5F01 /* IndexValueStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517138F51BF12262000D5F01 /* IndexValueStore.cpp */; }; > 517138F81BF128BB000D5F01 /* IndexValueStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 517138F61BF12262000D5F01 /* IndexValueStore.h */; }; > 517138FB1BF3ADF4000D5F01 /* IDBCursorInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517138F91BF3ADAC000D5F01 /* IDBCursorInfo.cpp */; }; >- 517138FC1BF3ADF4000D5F01 /* IDBCursorInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 517138FA1BF3ADAC000D5F01 /* IDBCursorInfo.h */; }; >+ 517138FC1BF3ADF4000D5F01 /* IDBCursorInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 517138FA1BF3ADAC000D5F01 /* IDBCursorInfo.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 517139051BF64DEC000D5F01 /* MemoryObjectStoreCursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517139031BF64DE3000D5F01 /* MemoryObjectStoreCursor.cpp */; }; > 517139061BF64DEC000D5F01 /* MemoryObjectStoreCursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 517139041BF64DE3000D5F01 /* MemoryObjectStoreCursor.h */; }; > 517139071BF64DEF000D5F01 /* MemoryCursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517139011BF64DE3000D5F01 /* MemoryCursor.cpp */; }; >@@ -2204,7 +2204,7 @@ > 51CBFC990D10E483002DBF51 /* CachedFramePlatformData.h in Headers */ = {isa = PBXBuildFile; fileRef = 51CBFC980D10E483002DBF51 /* CachedFramePlatformData.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 51D0C5160DAA90B7003B3831 /* JSStorageCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D0C5150DAA90B7003B3831 /* JSStorageCustom.cpp */; }; > 51D7236C1BB6174900478CA3 /* IDBResultData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D7236A1BB60BFE00478CA3 /* IDBResultData.cpp */; }; >- 51D7236D1BB6174900478CA3 /* IDBResultData.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D7236B1BB60BFE00478CA3 /* IDBResultData.h */; }; >+ 51D7236D1BB6174900478CA3 /* IDBResultData.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D7236B1BB60BFE00478CA3 /* IDBResultData.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 51D7EFEA1BDE8F8C00E93E10 /* ThreadSafeDataBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 511FAEA91BDC989A00B4AFE4 /* ThreadSafeDataBuffer.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 51D7EFEC1BDEFA5100E93E10 /* TransactionOperation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D7EFEB1BDEFA4700E93E10 /* TransactionOperation.cpp */; }; > 51DCE8020CAC9F1C00488358 /* JSSQLResultSetRowListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51DCE8010CAC9F1C00488358 /* JSSQLResultSetRowListCustom.cpp */; }; >diff --git a/Source/WebKit2/CMakeLists.txt b/Source/WebKit2/CMakeLists.txt >index c9e041a..bea2be3 100644 >--- a/Source/WebKit2/CMakeLists.txt >+++ b/Source/WebKit2/CMakeLists.txt >@@ -647,6 +647,7 @@ set(WebKit2_MESSAGES_IN_FILES > DatabaseProcess/DatabaseToWebProcessConnection.messages.in > > DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in >+ DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in > > NetworkProcess/CustomProtocols/CustomProtocolManager.messages.in > >@@ -700,6 +701,7 @@ set(WebKit2_MESSAGES_IN_FILES > > WebProcess/Cookies/WebCookieManager.messages.in > >+ WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in > WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in > > WebProcess/FullScreen/WebFullScreenManager.messages.in >diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog >index f210403..ade2d8e 100644 >--- a/Source/WebKit2/ChangeLog >+++ b/Source/WebKit2/ChangeLog >@@ -1,5 +1,26 @@ > 2016-02-16 Brady Eidson <beidson@apple.com> > >+ Modern IDB: More WK2 IPC Scaffolding. >+ https://bugs.webkit.org/show_bug.cgi?id=154317 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ No change in behavior yet; Just laying the groundwork. >+ >+ * CMakeLists.txt: >+ * DerivedSources.make: >+ * WebKit2.xcodeproj/project.pbxproj: >+ >+ * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h: >+ * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in: Added. >+ >+ * Shared/WebCoreArgumentCoders.h: >+ >+ * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: >+ * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in: Added. >+ >+2016-02-16 Brady Eidson <beidson@apple.com> >+ > Modern IDB: WK2 IPC Scaffolding. > https://bugs.webkit.org/show_bug.cgi?id=154296 > >diff --git a/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h b/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h >index 64e5d01..0e75d1d 100644 >--- a/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h >+++ b/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h >@@ -32,6 +32,15 @@ > #include "MessageSender.h" > #include <WebCore/IDBConnectionToClient.h> > >+namespace WebCore { >+class IDBCursorInfo; >+class IDBIndexInfo; >+class IDBObjectStoreInfo; >+class IDBRequestData; >+class IDBTransactionInfo; >+class SerializedScriptValue; >+} >+ > namespace WebKit { > > class WebIDBConnectionToClient final : public WebCore::IDBServer::IDBConnectionToClientDelegate, public IPC::MessageSender, public RefCounted<WebIDBConnectionToClient> { >@@ -44,6 +53,7 @@ public: > virtual uint64_t identifier() const override final { return m_identifier; } > virtual uint64_t messageSenderDestinationID() override final { return m_identifier; } > >+ // IDBConnectionToClientDelegate > virtual void didDeleteDatabase(const WebCore::IDBResultData&) override final; > virtual void didOpenDatabase(const WebCore::IDBResultData&) override final; > virtual void didAbortTransaction(const WebCore::IDBResourceIdentifier& transactionIdentifier, const WebCore::IDBError&) override final; >@@ -67,12 +77,37 @@ public: > virtual void ref() override { RefCounted<WebIDBConnectionToClient>::ref(); } > virtual void deref() override { RefCounted<WebIDBConnectionToClient>::deref(); } > >+ // Messages received from WebProcess >+ void deleteDatabase(const WebCore::IDBRequestData&); >+ void openDatabase(const WebCore::IDBRequestData&); >+ void abortTransaction(const WebCore::IDBResourceIdentifier&); >+ void commitTransaction(const WebCore::IDBResourceIdentifier&); >+ void didFinishHandlingVersionChangeTransaction(const WebCore::IDBResourceIdentifier&); >+ void createObjectStore(const WebCore::IDBRequestData&, const WebCore::IDBObjectStoreInfo&); >+ void deleteObjectStore(const WebCore::IDBRequestData&, const String& objectStoreName); >+ void clearObjectStore(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier); >+ void createIndex(const WebCore::IDBRequestData&, const WebCore::IDBIndexInfo&); >+ void deleteIndex(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, const String& indexName); >+ void putOrAdd(const WebCore::IDBRequestData&, const WebCore::IDBKeyData&, const IPC::DataReference& value, bool overwriteEnabled); >+ void getRecord(const WebCore::IDBRequestData&, const WebCore::IDBKeyRangeData&); >+ void getCount(const WebCore::IDBRequestData&, const WebCore::IDBKeyRangeData&); >+ void deleteRecord(const WebCore::IDBRequestData&, const WebCore::IDBKeyRangeData&); >+ void openCursor(const WebCore::IDBRequestData&, const WebCore::IDBCursorInfo&); >+ void iterateCursor(const WebCore::IDBRequestData&, const WebCore::IDBKeyData&, unsigned long count); >+ >+ void establishTransaction(uint64_t databaseConnectionIdentifier, const WebCore::IDBTransactionInfo&); >+ void databaseConnectionClosed(uint64_t databaseConnectionIdentifier); >+ void abortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier& transactionIdentifier); >+ void didFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier& requestIdentifier); >+ > void disconnectedFromWebProcess(); > > private: > WebIDBConnectionToClient(DatabaseToWebProcessConnection&, uint64_t serverConnectionIdentifier); > > virtual IPC::Connection* messageSenderConnection() override final; >+ void didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&); >+ > Ref<DatabaseToWebProcessConnection> m_connection; > > uint64_t m_identifier; >diff --git a/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in b/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in >new file mode 100644 >index 0000000..802e67b >--- /dev/null >+++ b/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in >@@ -0,0 +1,49 @@ >+# Copyright (C) 2016 Apple 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 INC. 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 INC. 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. >+ >+#if ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS) >+ >+messages -> WebIDBConnectionToClient { >+ DeleteDatabase(WebCore::IDBRequestData requestData) >+ OpenDatabase(WebCore::IDBRequestData requestData); >+ AbortTransaction(WebCore::IDBResourceIdentifier transactionIdentifier); >+ CommitTransaction(WebCore::IDBResourceIdentifier transactionIdentifier); >+ DidFinishHandlingVersionChangeTransaction(WebCore::IDBResourceIdentifier transactionIdentifier); >+ CreateObjectStore(WebCore::IDBRequestData requestData, WebCore::IDBObjectStoreInfo info); >+ DeleteObjectStore(WebCore::IDBRequestData requestData, String objectStoreName); >+ ClearObjectStore(WebCore::IDBRequestData requestData, uint64_t objectStoreIdentifier); >+ CreateIndex(WebCore::IDBRequestData requestData, WebCore::IDBIndexInfo info); >+ DeleteIndex(WebCore::IDBRequestData requestData, uint64_t objectStoreIdentifier, String indexName); >+ PutOrAdd(WebCore::IDBRequestData requestData, WebCore::IDBKeyData key, IPC::DataReference value, bool overwriteEnabled); >+ GetRecord(WebCore::IDBRequestData requestData, struct WebCore::IDBKeyRangeData range); >+ GetCount(WebCore::IDBRequestData requestData, struct WebCore::IDBKeyRangeData range); >+ DeleteRecord(WebCore::IDBRequestData requestData, struct WebCore::IDBKeyRangeData range); >+ OpenCursor(WebCore::IDBRequestData requestData, WebCore::IDBCursorInfo info); >+ IterateCursor(WebCore::IDBRequestData requestData, WebCore::IDBKeyData key, uint32_t count); >+ >+ EstablishTransaction(uint64_t databaseConnectionIdentifier, WebCore::IDBTransactionInfo info); >+ DatabaseConnectionClosed(uint64_t databaseConnectionIdentifier); >+ AbortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, WebCore::IDBResourceIdentifier transactionIdentifier); >+ DidFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, WebCore::IDBResourceIdentifier requestIdentifier); >+} >+ >+#endif // ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS) >diff --git a/Source/WebKit2/DerivedSources.make b/Source/WebKit2/DerivedSources.make >index 9f3e1e2..09759af 100644 >--- a/Source/WebKit2/DerivedSources.make >+++ b/Source/WebKit2/DerivedSources.make >@@ -115,6 +115,8 @@ MESSAGE_RECEIVERS = \ > WebFullScreenManagerProxy \ > WebGeolocationManager \ > WebGeolocationManagerProxy \ >+ WebIDBConnectionToClient \ >+ WebIDBConnectionToServer \ > WebIDBServerConnection \ > WebIconDatabase \ > WebIconDatabaseProxy \ >diff --git a/Source/WebKit2/Shared/WebCoreArgumentCoders.h b/Source/WebKit2/Shared/WebCoreArgumentCoders.h >index 8a2e0d2..8627537 100644 >--- a/Source/WebKit2/Shared/WebCoreArgumentCoders.h >+++ b/Source/WebKit2/Shared/WebCoreArgumentCoders.h >@@ -48,6 +48,7 @@ class FloatSize; > class FixedPositionViewportConstraints; > class HTTPHeaderMap; > class IDBGetResult; >+class IDBResultData; > class IntPoint; > class IntRect; > class IntSize; >@@ -408,6 +409,11 @@ template<> struct ArgumentCoder<WebCore::IDBGetResult> { > static void encode(ArgumentEncoder&, const WebCore::IDBGetResult&); > static bool decode(ArgumentDecoder&, WebCore::IDBGetResult&); > }; >+ >+template<> struct ArgumentCoder<WebCore::IDBResultData> { >+ static void encode(ArgumentEncoder&, const WebCore::IDBResultData&); >+ static bool decode(ArgumentDecoder&, WebCore::IDBResultData&); >+}; > #endif // ENABLE(INDEXED_DATABASE) > > template<> struct ArgumentCoder<WebCore::SessionID> { >diff --git a/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj b/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj >index e3b4c65..367a13d 100644 >--- a/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj >+++ b/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj >@@ -856,6 +856,10 @@ > 51032F1E180F791700961BB7 /* DatabaseToWebProcessConnectionMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 51032F1C180F791700961BB7 /* DatabaseToWebProcessConnectionMessages.h */; }; > 5105236F1C739D42007993CB /* WebIDBConnectionToClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5105236D1C7393E9007993CB /* WebIDBConnectionToClient.cpp */; }; > 510523701C739D42007993CB /* WebIDBConnectionToClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 5105236E1C7393E9007993CB /* WebIDBConnectionToClient.h */; }; >+ 510523741C73D38B007993CB /* WebIDBConnectionToServerMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 510523731C73D37B007993CB /* WebIDBConnectionToServerMessages.h */; }; >+ 510523751C73D38F007993CB /* WebIDBConnectionToServerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510523721C73D37B007993CB /* WebIDBConnectionToServerMessageReceiver.cpp */; }; >+ 510523791C73DA77007993CB /* WebIDBConnectionToClientMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510523771C73DA70007993CB /* WebIDBConnectionToClientMessageReceiver.cpp */; }; >+ 5105237A1C73DA77007993CB /* WebIDBConnectionToClientMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 510523781C73DA70007993CB /* WebIDBConnectionToClientMessages.h */; }; > 51064D35189781C4004B2FEB /* SQLiteIDBCursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51064D33189781C4004B2FEB /* SQLiteIDBCursor.cpp */; }; > 51064D36189781C4004B2FEB /* SQLiteIDBCursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 51064D34189781C4004B2FEB /* SQLiteIDBCursor.h */; }; > 5106D7C218BDBE73000AB166 /* ContextMenuContextData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5106D7BF18BDBE73000AB166 /* ContextMenuContextData.cpp */; }; >@@ -2858,6 +2862,12 @@ > 51032F1C180F791700961BB7 /* DatabaseToWebProcessConnectionMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatabaseToWebProcessConnectionMessages.h; sourceTree = "<group>"; }; > 5105236D1C7393E9007993CB /* WebIDBConnectionToClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebIDBConnectionToClient.cpp; sourceTree = "<group>"; }; > 5105236E1C7393E9007993CB /* WebIDBConnectionToClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebIDBConnectionToClient.h; sourceTree = "<group>"; }; >+ 510523711C73D22B007993CB /* WebIDBConnectionToServer.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebIDBConnectionToServer.messages.in; sourceTree = "<group>"; }; >+ 510523721C73D37B007993CB /* WebIDBConnectionToServerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebIDBConnectionToServerMessageReceiver.cpp; sourceTree = "<group>"; }; >+ 510523731C73D37B007993CB /* WebIDBConnectionToServerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebIDBConnectionToServerMessages.h; sourceTree = "<group>"; }; >+ 510523761C73D9F6007993CB /* WebIDBConnectionToClient.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebIDBConnectionToClient.messages.in; sourceTree = "<group>"; }; >+ 510523771C73DA70007993CB /* WebIDBConnectionToClientMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebIDBConnectionToClientMessageReceiver.cpp; sourceTree = "<group>"; }; >+ 510523781C73DA70007993CB /* WebIDBConnectionToClientMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebIDBConnectionToClientMessages.h; sourceTree = "<group>"; }; > 5105B0D4162F7A7A00E27709 /* NetworkProcessConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkProcessConnection.cpp; path = Network/NetworkProcessConnection.cpp; sourceTree = "<group>"; }; > 5105B0D5162F7A7A00E27709 /* NetworkProcessConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcessConnection.h; path = Network/NetworkProcessConnection.h; sourceTree = "<group>"; }; > 5105B0F31630872E00E27709 /* NetworkProcessProxy.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = NetworkProcessProxy.messages.in; sourceTree = "<group>"; }; >@@ -5310,6 +5320,7 @@ > children = ( > 514129911C6428100059E714 /* WebIDBConnectionToServer.cpp */, > 514129921C6428100059E714 /* WebIDBConnectionToServer.h */, >+ 510523711C73D22B007993CB /* WebIDBConnectionToServer.messages.in */, > 51E351F1180F5C7500E53BE9 /* WebIDBFactoryBackend.cpp */, > 51E351F2180F5C7500E53BE9 /* WebIDBFactoryBackend.h */, > 51290990183ACEAF005522A6 /* WebIDBServerConnection.cpp */, >@@ -5462,6 +5473,7 @@ > 515E773218402D510007203F /* UniqueIDBDatabaseIdentifier.h */, > 5105236D1C7393E9007993CB /* WebIDBConnectionToClient.cpp */, > 5105236E1C7393E9007993CB /* WebIDBConnectionToClient.h */, >+ 510523761C73D9F6007993CB /* WebIDBConnectionToClient.messages.in */, > ); > path = IndexedDB; > sourceTree = "<group>"; >@@ -6944,6 +6956,10 @@ > 51D02F67132EC73700BEAA96 /* WebIconDatabaseMessages.h */, > 51D02F68132EC73700BEAA96 /* WebIconDatabaseProxyMessageReceiver.cpp */, > 51D02F69132EC73700BEAA96 /* WebIconDatabaseProxyMessages.h */, >+ 510523771C73DA70007993CB /* WebIDBConnectionToClientMessageReceiver.cpp */, >+ 510523781C73DA70007993CB /* WebIDBConnectionToClientMessages.h */, >+ 510523721C73D37B007993CB /* WebIDBConnectionToServerMessageReceiver.cpp */, >+ 510523731C73D37B007993CB /* WebIDBConnectionToServerMessages.h */, > 51C96116183D294700D2002E /* WebIDBServerConnectionMessageReceiver.cpp */, > 51C96117183D294700D2002E /* WebIDBServerConnectionMessages.h */, > 1C8E2A311277852400BC7BD0 /* WebInspectorMessageReceiver.cpp */, >@@ -7208,6 +7224,7 @@ > 1A5704F21BE0174000874AF1 /* _WKElementInfo.h in Headers */, > 1AD01BC91905D37E00C9C45F /* _WKErrorRecoveryAttempting.h in Headers */, > 005D158F18E4C4EB00734619 /* _WKFindDelegate.h in Headers */, >+ 510523741C73D38B007993CB /* WebIDBConnectionToServerMessages.h in Headers */, > 2DEAC5CF1AC368BB00A195D8 /* _WKFindOptions.h in Headers */, > 2E7A944A1BBD97C300945547 /* _WKFocusedElementInfo.h in Headers */, > 2E0B8A7A1BC59A590044B32D /* _WKFormDelegate.h in Headers */, >@@ -7643,6 +7660,7 @@ > BCF4DE25168FA44800C94AFC /* WebContextSupplement.h in Headers */, > 330934501315B94D0097A7BC /* WebCookieManager.h in Headers */, > 330934481315B9220097A7BC /* WebCookieManagerMessages.h in Headers */, >+ 5105237A1C73DA77007993CB /* WebIDBConnectionToClientMessages.h in Headers */, > 330934561315B9750097A7BC /* WebCookieManagerProxy.h in Headers */, > 33AA1067131F060000D4A575 /* WebCookieManagerProxyClient.h in Headers */, > 3309344A1315B9220097A7BC /* WebCookieManagerProxyMessages.h in Headers */, >@@ -9063,6 +9081,7 @@ > 1AE00D6B18327C1200087DD7 /* StringReference.cpp in Sources */, > 296BD85E15019BC30071F424 /* StringUtilities.mm in Sources */, > 1ZZ417EF12C00D87002BE67B /* TextCheckerCompletion.cpp in Sources */, >+ 510523751C73D38F007993CB /* WebIDBConnectionToServerMessageReceiver.cpp in Sources */, > 2DA944AD1884E9BA00ED86DB /* TextCheckerIOS.mm in Sources */, > 1AA417EF12C00D87002BE67B /* TextCheckerMac.mm in Sources */, > 1AAF263814687C39004A1E8A /* TiledCoreAnimationDrawingArea.mm in Sources */, >@@ -9205,6 +9224,7 @@ > 7CCCC8FA1A5F50FD008FB0DA /* WebNavigationState.cpp in Sources */, > 31A2EC48148997C200810D71 /* WebNotification.cpp in Sources */, > 31099973146C75A20029DEB9 /* WebNotificationClient.cpp in Sources */, >+ 510523791C73DA77007993CB /* WebIDBConnectionToClientMessageReceiver.cpp in Sources */, > 31312620148FF82C00BA2A39 /* WebNotificationManager.cpp in Sources */, > 31BA924D148831260062EDB5 /* WebNotificationManagerMessageReceiver.cpp in Sources */, > 31A2EC4A148997C200810D71 /* WebNotificationManagerProxy.cpp in Sources */, >diff --git a/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h b/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h >index 8051b43..fd612a3 100644 >--- a/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h >+++ b/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h >@@ -43,6 +43,7 @@ public: > virtual uint64_t identifier() const override final { return m_identifier; } > virtual uint64_t messageSenderDestinationID() override final { return m_identifier; } > >+ // IDBConnectionToServerDelegate > virtual void deleteDatabase(WebCore::IDBRequestData&) override final; > virtual void openDatabase(WebCore::IDBRequestData&) override final; > virtual void abortTransaction(WebCore::IDBResourceIdentifier&) override final; >@@ -67,10 +68,28 @@ public: > virtual void ref() override { RefCounted<WebIDBConnectionToServer>::ref(); } > virtual void deref() override { RefCounted<WebIDBConnectionToServer>::deref(); } > >+ // Messages received from DatabaseProcess >+ void didDeleteDatabase(const WebCore::IDBResultData&); >+ void didOpenDatabase(const WebCore::IDBResultData&); >+ void didAbortTransaction(const WebCore::IDBResourceIdentifier& transactionIdentifier, const WebCore::IDBError&); >+ void didCommitTransaction(const WebCore::IDBResourceIdentifier& transactionIdentifier, const WebCore::IDBError&); >+ void didCreateObjectStore(const WebCore::IDBResultData&); >+ void didDeleteObjectStore(const WebCore::IDBResultData&); >+ void didClearObjectStore(const WebCore::IDBResultData&); >+ void didCreateIndex(const WebCore::IDBResultData&); >+ void didDeleteIndex(const WebCore::IDBResultData&); >+ void didPutOrAdd(const WebCore::IDBResultData&); >+ void didGetRecord(const WebCore::IDBResultData&); >+ void didGetCount(const WebCore::IDBResultData&); >+ void didDeleteRecord(const WebCore::IDBResultData&); >+ void didOpenCursor(const WebCore::IDBResultData&); >+ void didIterateCursor(const WebCore::IDBResultData&); >+ > private: > WebIDBConnectionToServer(); > > virtual IPC::Connection* messageSenderConnection() override final; >+ void didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&); > > uint64_t m_identifier; > bool m_isOpenInServer { false }; >diff --git a/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in b/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in >new file mode 100644 >index 0000000..a8a697a >--- /dev/null >+++ b/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in >@@ -0,0 +1,43 @@ >+# Copyright (C) 2016 Apple 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 INC. 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 INC. 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. >+ >+#if ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS) >+ >+messages -> WebIDBConnectionToServer { >+ DidDeleteDatabase(WebCore::IDBResultData result) >+ DidOpenDatabase(WebCore::IDBResultData result) >+ DidAbortTransaction(WebCore::IDBResourceIdentifier transactionIdentifier, WebCore::IDBError error) >+ DidCommitTransaction(WebCore::IDBResourceIdentifier transactionIdentifier, WebCore::IDBError error) >+ DidCreateObjectStore(WebCore::IDBResultData result) >+ DidDeleteObjectStore(WebCore::IDBResultData result) >+ DidClearObjectStore(WebCore::IDBResultData result) >+ DidCreateIndex(WebCore::IDBResultData result) >+ DidDeleteIndex(WebCore::IDBResultData result) >+ DidPutOrAdd(WebCore::IDBResultData result) >+ DidGetRecord(WebCore::IDBResultData result) >+ DidGetCount(WebCore::IDBResultData result) >+ DidDeleteRecord(WebCore::IDBResultData result) >+ DidOpenCursor(WebCore::IDBResultData result) >+ DidIterateCursor(WebCore::IDBResultData result) >+} >+ >+#endif // ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
achristensen
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 154317
: 271506 |
271554
|
271557
|
271560
|
271561
|
271564