Title: [242487] releases/WebKitGTK/webkit-2.24/Source
Revision
242487
Author
carlo...@webkit.org
Date
2019-03-05 09:22:52 -0800 (Tue, 05 Mar 2019)

Log Message

Merge r242281 - Serialize IndexedDB::ObjectStoreOverwriteMode as an enum
https://bugs.webkit.org/show_bug.cgi?id=195213

Reviewed by Alex Christensen.

Source/WebCore:

Add traits to enable enum IPC encoding.
No change of behavior.

* Modules/indexeddb/IndexedDB.h:

Source/WebKit:

Make use of enum trait to automatically check for correct enum value when receiving a putOrAdd message.

* NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::putOrAdd):
* NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
* NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
* Scripts/webkit/messages.py:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::putOrAdd):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog (242486 => 242487)


--- releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog	2019-03-05 17:22:44 UTC (rev 242486)
+++ releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog	2019-03-05 17:22:52 UTC (rev 242487)
@@ -1,3 +1,15 @@
+2019-03-01  Youenn Fablet  <you...@apple.com>
+
+        Serialize IndexedDB::ObjectStoreOverwriteMode as an enum
+        https://bugs.webkit.org/show_bug.cgi?id=195213
+
+        Reviewed by Alex Christensen.
+
+        Add traits to enable enum IPC encoding.
+        No change of behavior.
+
+        * Modules/indexeddb/IndexedDB.h:
+
 2019-02-28  Myles C. Maxfield  <mmaxfi...@apple.com>
 
         Use-after-move in RenderCombineText::combineTextIfNeeded()

Modified: releases/WebKitGTK/webkit-2.24/Source/WebCore/Modules/indexeddb/IndexedDB.h (242486 => 242487)


--- releases/WebKitGTK/webkit-2.24/Source/WebCore/Modules/indexeddb/IndexedDB.h	2019-03-05 17:22:44 UTC (rev 242486)
+++ releases/WebKitGTK/webkit-2.24/Source/WebCore/Modules/indexeddb/IndexedDB.h	2019-03-05 17:22:52 UTC (rev 242487)
@@ -27,6 +27,8 @@
 
 #if ENABLE(INDEXED_DATABASE)
 
+#include <wtf/EnumTraits.h>
+
 namespace WebCore {
 
 namespace IndexedDB {
@@ -106,4 +108,17 @@
 
 } // namespace WebCore
 
+namespace WTF {
+
+template<> struct EnumTraits<WebCore::IndexedDB::ObjectStoreOverwriteMode> {
+    using values = EnumValues<
+        WebCore::IndexedDB::ObjectStoreOverwriteMode,
+        WebCore::IndexedDB::ObjectStoreOverwriteMode::Overwrite,
+        WebCore::IndexedDB::ObjectStoreOverwriteMode::OverwriteForCursor,
+        WebCore::IndexedDB::ObjectStoreOverwriteMode::NoOverwrite
+    >;
+};
+
+}
+
 #endif // ENABLED(INDEXED_DATABASE)

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/ChangeLog (242486 => 242487)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/ChangeLog	2019-03-05 17:22:44 UTC (rev 242486)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/ChangeLog	2019-03-05 17:22:52 UTC (rev 242487)
@@ -1,3 +1,20 @@
+2019-03-01  Youenn Fablet  <you...@apple.com>
+
+        Serialize IndexedDB::ObjectStoreOverwriteMode as an enum
+        https://bugs.webkit.org/show_bug.cgi?id=195213
+
+        Reviewed by Alex Christensen.
+
+        Make use of enum trait to automatically check for correct enum value when receiving a putOrAdd message.
+
+        * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:
+        (WebKit::WebIDBConnectionToClient::putOrAdd):
+        * NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
+        * NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
+        * Scripts/webkit/messages.py:
+        * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
+        (WebKit::WebIDBConnectionToServer::putOrAdd):
+
 2019-02-26  Philippe Normand <pnorm...@igalia.com> and Carlos Garcia Campos  <cgar...@igalia.com>
 
         [WPE] Add API for webview background color configuration

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp (242486 => 242487)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp	2019-03-05 17:22:44 UTC (rev 242486)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp	2019-03-05 17:22:52 UTC (rev 242487)
@@ -275,18 +275,8 @@
     m_networkProcess->idbServer(m_sessionID).renameIndex(request, objectStoreIdentifier, indexIdentifier, newName);
 }
 
-void WebIDBConnectionToClient::putOrAdd(const IDBRequestData& request, const IDBKeyData& key, const IDBValue& value, unsigned overwriteMode)
+void WebIDBConnectionToClient::putOrAdd(const IDBRequestData& request, const IDBKeyData& key, const IDBValue& value, IndexedDB::ObjectStoreOverwriteMode mode)
 {
-    if (overwriteMode != static_cast<unsigned>(IndexedDB::ObjectStoreOverwriteMode::NoOverwrite)
-        && overwriteMode != static_cast<unsigned>(IndexedDB::ObjectStoreOverwriteMode::Overwrite)
-        && overwriteMode != static_cast<unsigned>(IndexedDB::ObjectStoreOverwriteMode::OverwriteForCursor)) {
-        // FIXME: This message from the WebProcess is corrupt.
-        // The Network Process should return early at this point, but can we also kill the bad WebProcess?
-        return;
-    }
-
-    IndexedDB::ObjectStoreOverwriteMode mode = static_cast<IndexedDB::ObjectStoreOverwriteMode>(overwriteMode);
-
     m_networkProcess->idbServer(m_sessionID).putOrAdd(request, key, value, mode);
 }
 

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.h (242486 => 242487)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.h	2019-03-05 17:22:44 UTC (rev 242486)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.h	2019-03-05 17:22:52 UTC (rev 242487)
@@ -30,6 +30,7 @@
 #include "MessageSender.h"
 #include "NetworkConnectionToWebProcess.h"
 #include <WebCore/IDBConnectionToClient.h>
+#include <WebCore/IndexedDB.h>
 #include <pal/SessionID.h>
 
 namespace WebCore {
@@ -105,7 +106,7 @@
     void createIndex(const WebCore::IDBRequestData&, const WebCore::IDBIndexInfo&);
     void deleteIndex(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, const String& indexName);
     void renameIndex(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName);
-    void putOrAdd(const WebCore::IDBRequestData&, const WebCore::IDBKeyData&, const WebCore::IDBValue&, unsigned overwriteMode);
+    void putOrAdd(const WebCore::IDBRequestData&, const WebCore::IDBKeyData&, const WebCore::IDBValue&, WebCore::IndexedDB::ObjectStoreOverwriteMode);
     void getRecord(const WebCore::IDBRequestData&, const WebCore::IDBGetRecordData&);
     void getAllRecords(const WebCore::IDBRequestData&, const WebCore::IDBGetAllRecordsData&);
     void getCount(const WebCore::IDBRequestData&, const WebCore::IDBKeyRangeData&);

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in (242486 => 242487)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in	2019-03-05 17:22:44 UTC (rev 242486)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in	2019-03-05 17:22:52 UTC (rev 242487)
@@ -35,7 +35,7 @@
     CreateIndex(WebCore::IDBRequestData requestData, WebCore::IDBIndexInfo info);
     DeleteIndex(WebCore::IDBRequestData requestData, uint64_t objectStoreIdentifier, String indexName);
     RenameIndex(WebCore::IDBRequestData requestData, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, String newName);
-    PutOrAdd(WebCore::IDBRequestData requestData, WebCore::IDBKeyData key, WebCore::IDBValue value, unsigned overwriteMode);
+    PutOrAdd(WebCore::IDBRequestData requestData, WebCore::IDBKeyData key, WebCore::IDBValue value, WebCore::IndexedDB::ObjectStoreOverwriteMode overwriteMode);
     GetRecord(WebCore::IDBRequestData requestData, struct WebCore::IDBGetRecordData getRecordData);
     GetAllRecords(WebCore::IDBRequestData requestData, struct WebCore::IDBGetAllRecordsData getAllRecordsData);
     GetCount(WebCore::IDBRequestData requestData, struct WebCore::IDBKeyRangeData range);

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/Scripts/webkit/messages.py (242486 => 242487)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/Scripts/webkit/messages.py	2019-03-05 17:22:44 UTC (rev 242486)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/Scripts/webkit/messages.py	2019-03-05 17:22:52 UTC (rev 242487)
@@ -410,6 +410,7 @@
         'WebCore::HasInsecureContent': ['<WebCore/FrameLoaderTypes.h>'],
         'WebCore::Highlight': ['<WebCore/InspectorOverlay.h>'],
         'WebCore::IncludeSecureCookies': ['<WebCore/CookieJar.h>'],
+        'WebCore::IndexedDB::ObjectStoreOverwriteMode': ['<WebCore/IndexedDB.h>'],
         'WebCore::InputMode': ['<WebCore/InputMode.h>'],
         'WebCore::KeyframeValueList': ['<WebCore/GraphicsLayer.h>'],
         'WebCore::KeypressCommand': ['<WebCore/KeyboardEvent.h>'],

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp (242486 => 242487)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp	2019-03-05 17:22:44 UTC (rev 242486)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp	2019-03-05 17:22:52 UTC (rev 242487)
@@ -143,7 +143,7 @@
 
 void WebIDBConnectionToServer::putOrAdd(const IDBRequestData& requestData, const IDBKeyData& keyData, const IDBValue& value, const IndexedDB::ObjectStoreOverwriteMode mode)
 {
-    send(Messages::WebIDBConnectionToClient::PutOrAdd(requestData, keyData, value, static_cast<unsigned>(mode)));
+    send(Messages::WebIDBConnectionToClient::PutOrAdd(requestData, keyData, value, mode));
 }
 
 void WebIDBConnectionToServer::getRecord(const IDBRequestData& requestData, const IDBGetRecordData& getRecordData)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to