Title: [159728] trunk/Source/WebKit2
Revision
159728
Author
beid...@apple.com
Date
2013-11-22 23:11:28 -0800 (Fri, 22 Nov 2013)

Log Message

Add DatabaseProcessCreationParameters, starting with the database path.
https://bugs.webkit.org/show_bug.cgi?id=124804

Reviewed by Dean Jackson and Benjamin Poulain.

* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::initializeDatabaseProcess):
* DatabaseProcess/DatabaseProcess.h:
(WebKit::DatabaseProcess::indexedDatabaseDirectory):
* DatabaseProcess/DatabaseProcess.messages.in:

* Shared/Databases/DatabaseProcessCreationParameters.cpp: Added.
(WebKit::DatabaseProcessCreationParameters::DatabaseProcessCreationParameters):
(WebKit::DatabaseProcessCreationParameters::encode):
(WebKit::DatabaseProcessCreationParameters::decode):
* Shared/Databases/DatabaseProcessCreationParameters.h: Added.

* UIProcess/WebContext.cpp:
(WebKit::WebContext::ensureDatabaseProcess):

* WebKit2.xcodeproj/project.pbxproj:
* Scripts/webkit2/messages.py:
(struct_or_class):

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (159727 => 159728)


--- trunk/Source/WebKit2/ChangeLog	2013-11-23 06:03:11 UTC (rev 159727)
+++ trunk/Source/WebKit2/ChangeLog	2013-11-23 07:11:28 UTC (rev 159728)
@@ -1,3 +1,29 @@
+2013-11-22  Brady Eidson  <beid...@apple.com>
+
+        Add DatabaseProcessCreationParameters, starting with the database path.
+        https://bugs.webkit.org/show_bug.cgi?id=124804
+
+        Reviewed by Dean Jackson and Benjamin Poulain.
+
+        * DatabaseProcess/DatabaseProcess.cpp:
+        (WebKit::DatabaseProcess::initializeDatabaseProcess):
+        * DatabaseProcess/DatabaseProcess.h:
+        (WebKit::DatabaseProcess::indexedDatabaseDirectory):
+        * DatabaseProcess/DatabaseProcess.messages.in:
+
+        * Shared/Databases/DatabaseProcessCreationParameters.cpp: Added.
+        (WebKit::DatabaseProcessCreationParameters::DatabaseProcessCreationParameters):
+        (WebKit::DatabaseProcessCreationParameters::encode):
+        (WebKit::DatabaseProcessCreationParameters::decode):
+        * Shared/Databases/DatabaseProcessCreationParameters.h: Added.
+
+        * UIProcess/WebContext.cpp:
+        (WebKit::WebContext::ensureDatabaseProcess):
+
+        * WebKit2.xcodeproj/project.pbxproj:
+        * Scripts/webkit2/messages.py:
+        (struct_or_class):
+
 2013-11-22  Ryuan Choi  <ryuan.c...@samsung.com>
 
         [EFL] Build break after r159724

Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp (159727 => 159728)


--- trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp	2013-11-23 06:03:11 UTC (rev 159727)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp	2013-11-23 07:11:28 UTC (rev 159728)
@@ -26,6 +26,7 @@
 #include "config.h"
 #include "DatabaseProcess.h"
 
+#include "DatabaseProcessCreationParameters.h"
 #include "DatabaseProcessProxyMessages.h"
 #include "DatabaseToWebProcessConnection.h"
 
@@ -67,6 +68,11 @@
     RunLoop::current()->stop();
 }
 
+void DatabaseProcess::initializeDatabaseProcess(const DatabaseProcessCreationParameters& parameters)
+{
+    m_indexedDatabaseDirectory = parameters.indexedDatabaseDirectory;
+}
+
 void DatabaseProcess::createDatabaseToWebProcessConnection()
 {
 #if PLATFORM(MAC)

Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h (159727 => 159728)


--- trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h	2013-11-23 06:03:11 UTC (rev 159727)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h	2013-11-23 07:11:28 UTC (rev 159728)
@@ -41,6 +41,8 @@
 public:
     static DatabaseProcess& shared();
 
+    const String& indexedDatabaseDirectory() const { return m_indexedDatabaseDirectory; }
+
 private:
     DatabaseProcess();
     ~DatabaseProcess();
@@ -58,9 +60,12 @@
     virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::StringReference messageReceiverName, CoreIPC::StringReference messageName) OVERRIDE;
 
     // Message Handlers
+    void initializeDatabaseProcess(const DatabaseProcessCreationParameters&);
     void createDatabaseToWebProcessConnection();
 
     Vector<RefPtr<DatabaseToWebProcessConnection>> m_databaseToWebProcessConnections;
+
+    String m_indexedDatabaseDirectory;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.messages.in (159727 => 159728)


--- trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.messages.in	2013-11-23 06:03:11 UTC (rev 159727)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.messages.in	2013-11-23 07:11:28 UTC (rev 159728)
@@ -23,6 +23,9 @@
 #if ENABLE(DATABASE_PROCESS)
 
 messages -> DatabaseProcess {
+    # Initializes the DatabaseProcess with the correct parameters
+    InitializeDatabaseProcess(WebKit::DatabaseProcessCreationParameters processCreationParameters)
+
     # Creates a connection for communication with a WebProcess
     CreateDatabaseToWebProcessConnection()
 }

Modified: trunk/Source/WebKit2/Scripts/webkit2/messages.py (159727 => 159728)


--- trunk/Source/WebKit2/Scripts/webkit2/messages.py	2013-11-23 06:03:11 UTC (rev 159727)
+++ trunk/Source/WebKit2/Scripts/webkit2/messages.py	2013-11-23 07:11:28 UTC (rev 159728)
@@ -202,6 +202,7 @@
         'WebKit::AttributedString',
         'WebKit::ColorSpaceData',
         'WebKit::ContextMenuState',
+        'WebKit::DatabaseProcessCreationParameters',
         'WebKit::DictionaryPopupInfo',
         'WebKit::DrawingAreaInfo',
         'WebKit::EditorState',

Copied: trunk/Source/WebKit2/Shared/Databases/DatabaseProcessCreationParameters.cpp (from rev 159727, trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h) (0 => 159728)


--- trunk/Source/WebKit2/Shared/Databases/DatabaseProcessCreationParameters.cpp	                        (rev 0)
+++ trunk/Source/WebKit2/Shared/Databases/DatabaseProcessCreationParameters.cpp	2013-11-23 07:11:28 UTC (rev 159728)
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2013 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.
+ */
+
+#include "config.h"
+#include "DatabaseProcessCreationParameters.h"
+
+#if ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS)
+
+#include "ArgumentCoders.h"
+
+namespace WebKit {
+
+DatabaseProcessCreationParameters::DatabaseProcessCreationParameters()
+{
+}
+
+void DatabaseProcessCreationParameters::encode(CoreIPC::ArgumentEncoder& encoder) const
+{
+    encoder << indexedDatabaseDirectory;
+}
+
+bool DatabaseProcessCreationParameters::decode(CoreIPC::ArgumentDecoder& decoder, DatabaseProcessCreationParameters& result)
+{
+    if (!decoder.decode(result.indexedDatabaseDirectory))
+        return false;
+
+    return true;
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS)

Added: trunk/Source/WebKit2/Shared/Databases/DatabaseProcessCreationParameters.h (0 => 159728)


--- trunk/Source/WebKit2/Shared/Databases/DatabaseProcessCreationParameters.h	                        (rev 0)
+++ trunk/Source/WebKit2/Shared/Databases/DatabaseProcessCreationParameters.h	2013-11-23 07:11:28 UTC (rev 159728)
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2013 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. ``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 COMPUTER, INC. OR
+ * 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 DatabaseProcessCreationParameters_h
+#define DatabaseProcessCreationParameters_h
+
+#include <wtf/text/WTFString.h>
+
+#if ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS)
+
+namespace CoreIPC {
+class ArgumentDecoder;
+class ArgumentEncoder;
+}
+
+namespace WebKit {
+
+struct DatabaseProcessCreationParameters {
+    DatabaseProcessCreationParameters();
+
+    void encode(CoreIPC::ArgumentEncoder&) const;
+    static bool decode(CoreIPC::ArgumentDecoder&, DatabaseProcessCreationParameters&);
+
+    String indexedDatabaseDirectory;
+};
+
+} // namespace WebKit
+
+#endif // ENABLE(INDEXED_DATABASE) && ENABLE(DATABASE_PROCESS)
+#endif // DatabaseProcessCreationParameters_h

Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (159727 => 159728)


--- trunk/Source/WebKit2/UIProcess/WebContext.cpp	2013-11-23 06:03:11 UTC (rev 159727)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp	2013-11-23 07:11:28 UTC (rev 159728)
@@ -74,6 +74,11 @@
 #include "WebNetworkInfoManagerProxy.h"
 #endif
 
+#if ENABLE(DATABASE_PROCESS)
+#include "DatabaseProcessCreationParameters.h"
+#include "DatabaseProcessMessages.h"
+#endif
+
 #if ENABLE(NETWORK_PROCESS)
 #include "NetworkProcessCreationParameters.h"
 #include "NetworkProcessMessages.h"
@@ -419,6 +424,16 @@
         return;
 
     m_databaseProcess = DatabaseProcessProxy::create(this);
+
+    DatabaseProcessCreationParameters parameters;
+
+    // Indexed databases exist in a subdirectory of the "database directory path."
+    // Currently, the top level of that directory contains entities related to WebSQL databases.
+    // We should fix this, and move WebSQL into a subdirectory (https://bugs.webkit.org/show_bug.cgi?id=124807)
+    // In the meantime, an entity name prefixed with three underscores will not conflict with any WebSQL entities.
+    parameters.indexedDatabaseDirectory = pathByAppendingComponent(databaseDirectory(), "___IndexedDB");
+
+    m_databaseProcess->send(Messages::DatabaseProcess::InitializeDatabaseProcess(parameters), 0);
 }
 
 void WebContext::getDatabaseProcessConnection(PassRefPtr<Messages::WebProcessProxy::GetDatabaseProcessConnection::DelayedReply> reply)

Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (159727 => 159728)


--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj	2013-11-23 06:03:11 UTC (rev 159727)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj	2013-11-23 07:11:28 UTC (rev 159728)
@@ -537,6 +537,8 @@
 		51578B831209ECEF00A37C4A /* WebData.h in Headers */ = {isa = PBXBuildFile; fileRef = 51578B821209ECEF00A37C4A /* WebData.h */; };
 		515E7727183DD6F60007203F /* AsyncRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 515E7725183DD6F60007203F /* AsyncRequest.cpp */; };
 		515E7728183DD6F60007203F /* AsyncRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 515E7726183DD6F60007203F /* AsyncRequest.h */; };
+		515E772B184008B90007203F /* DatabaseProcessCreationParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 515E7729184008B90007203F /* DatabaseProcessCreationParameters.cpp */; };
+		515E772C184008B90007203F /* DatabaseProcessCreationParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 515E772A184008B90007203F /* DatabaseProcessCreationParameters.h */; };
 		5160BFE113381DF900918999 /* Logging.mac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5160BFE013381DF900918999 /* Logging.mac.mm */; };
 		516319921628980A00E22F00 /* NetworkProcessProxyMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 516319911628980A00E22F00 /* NetworkProcessProxyMac.mm */; };
 		5163199416289A6000E22F00 /* NetworkProcessMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51ACC9341628064800342550 /* NetworkProcessMessageReceiver.cpp */; };
@@ -2065,6 +2067,8 @@
 		51578B821209ECEF00A37C4A /* WebData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebData.h; sourceTree = "<group>"; };
 		515E7725183DD6F60007203F /* AsyncRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AsyncRequest.cpp; sourceTree = "<group>"; };
 		515E7726183DD6F60007203F /* AsyncRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AsyncRequest.h; sourceTree = "<group>"; };
+		515E7729184008B90007203F /* DatabaseProcessCreationParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DatabaseProcessCreationParameters.cpp; sourceTree = "<group>"; };
+		515E772A184008B90007203F /* DatabaseProcessCreationParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatabaseProcessCreationParameters.h; sourceTree = "<group>"; };
 		5160BFE013381DF900918999 /* Logging.mac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Logging.mac.mm; sourceTree = "<group>"; };
 		516319911628980A00E22F00 /* NetworkProcessProxyMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = NetworkProcessProxyMac.mm; path = mac/NetworkProcessProxyMac.mm; sourceTree = "<group>"; };
 		5167EE9E170377BF007681CA /* DiskCacheMonitor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiskCacheMonitor.h; sourceTree = "<group>"; };
@@ -4032,6 +4036,8 @@
 			isa = PBXGroup;
 			children = (
 				51E351C3180F2C8A00E53BE9 /* IndexedDB */,
+				515E7729184008B90007203F /* DatabaseProcessCreationParameters.cpp */,
+				515E772A184008B90007203F /* DatabaseProcessCreationParameters.h */,
 			);
 			path = Databases;
 			sourceTree = "<group>";
@@ -5779,6 +5785,7 @@
 				330934501315B94D0097A7BC /* WebCookieManager.h in Headers */,
 				330934481315B9220097A7BC /* WebCookieManagerMessages.h in Headers */,
 				330934561315B9750097A7BC /* WebCookieManagerProxy.h in Headers */,
+				515E772C184008B90007203F /* DatabaseProcessCreationParameters.h in Headers */,
 				33AA1067131F060000D4A575 /* WebCookieManagerProxyClient.h in Headers */,
 				3309344A1315B9220097A7BC /* WebCookieManagerProxyMessages.h in Headers */,
 				BC1DD7B2114DC396005ADAF3 /* WebCoreArgumentCoders.h in Headers */,
@@ -7037,6 +7044,7 @@
 				E18E6917169B667B009B6670 /* SecItemShimProxyMessageReceiver.cpp in Sources */,
 				33152975130D0CB200ED2483 /* SecurityOriginData.cpp in Sources */,
 				518D2CCA12D51DFB003BB93B /* SessionState.cpp in Sources */,
+				515E772B184008B90007203F /* DatabaseProcessCreationParameters.cpp in Sources */,
 				1A6420E412DCE2FF00CAAE2C /* ShareableBitmap.cpp in Sources */,
 				C01A260112662F2100C9ED55 /* ShareableBitmapCG.cpp in Sources */,
 				51217460164C20E30037A5C1 /* ShareableResource.cpp in Sources */,
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to