Changeset 76559 in webkit
- Timestamp:
- Jan 24, 2011 6:08:52 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 4 deleted
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r76551 r76559 1 2011-01-24 Maciej Stachowiak <mjs@apple.com> 2 3 Reviewed by Anders Carlsson. 4 5 Use designated temp directory for the database for WebKit2 6 https://bugs.webkit.org/show_bug.cgi?id=53052 7 8 Add the API necessary to support this. Database path is now 9 determined on the UI process side and passed to the Web process. 10 Reviewed by Anders Carlsson. 11 12 * GNUmakefile.am: 13 * Shared/WebProcessCreationParameters.cpp: 14 (WebKit::WebProcessCreationParameters::encode): 15 (WebKit::WebProcessCreationParameters::decode): 16 * Shared/WebProcessCreationParameters.h: 17 * UIProcess/API/C/WKContext.cpp: 18 (WKContextSetDatabaseDirectory): 19 * UIProcess/API/C/WKContextPrivate.h: 20 * UIProcess/WebContext.cpp: 21 (WebKit::WebContext::ensureWebProcess): 22 (WebKit::WebContext::databaseDirectory): 23 * UIProcess/WebContext.h: 24 (WebKit::WebContext::setDatabaseDirectory): 25 * UIProcess/mac/WebContextMac.mm: 26 (WebKit::WebContext::platformDefaultDatabaseDirectory): 27 * UIProcess/qt/WebContextQt.cpp: 28 (WebKit::WebContext::platformDefaultDatabaseDirectory): 29 * UIProcess/win/WebContextWin.cpp: 30 (WebKit::WebContext::platformDefaultDatabaseDirectory): 31 * WebKit2.pro: 32 * WebKit2.xcodeproj/project.pbxproj: 33 * WebProcess/WebCoreSupport/WebDatabaseManager.cpp: 34 (WebKit::WebDatabaseManager::initialize): 35 (WebKit::WebDatabaseManager::WebDatabaseManager): 36 * WebProcess/WebCoreSupport/WebDatabaseManager.h: 37 * WebProcess/WebCoreSupport/gtk/WebDatabaseManagerGtk.cpp: Removed. 38 * WebProcess/WebCoreSupport/mac/WebDatabaseManagerMac.mm: Removed. 39 * WebProcess/WebCoreSupport/qt/WebDatabaseManagerQt.cpp: Removed. 40 * WebProcess/WebCoreSupport/win/WebDatabaseManagerWin.cpp: Removed. 41 * WebProcess/WebProcess.cpp: 42 (WebKit::WebProcess::WebProcess): 43 (WebKit::WebProcess::initializeWebProcess): 44 * WebProcess/com.apple.WebProcess.sb: 45 * WebProcess/mac/WebProcessMac.mm: 46 (WebKit::initializeSandbox): 47 * win/WebKit2.vcproj: 48 1 49 2011-01-24 Brent Fulgham <bfulgham@webkit.org> 2 50 -
trunk/Source/WebKit2/GNUmakefile.am
r75979 r76559 324 324 Source/WebKit2/UIProcess/GenericCallback.h \ 325 325 Source/WebKit2/UIProcess/gtk/TextCheckerGtk.cpp \ 326 Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp \ 326 327 Source/WebKit2/UIProcess/gtk/WebInspectorGtk.cpp \ 327 328 Source/WebKit2/UIProcess/gtk/WebPageProxyGtk.cpp \ … … 505 506 Source/WebKit2/WebProcess/Plugins/PluginView.h \ 506 507 Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp \ 507 Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebDatabaseManagerGtk.cpp \508 508 Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebFrameNetworkingContext.h \ 509 509 Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebPopupMenuGtk.cpp \ -
trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp
r76034 r76559 47 47 encoder->encode(injectedBundlePathExtensionHandle); 48 48 encoder->encode(applicationCacheDirectory); 49 encoder->encode(databaseDirectory); 49 50 encoder->encode(urlSchemesRegistererdAsEmptyDocument); 50 51 encoder->encode(urlSchemesRegisteredAsSecure); … … 76 77 return false; 77 78 if (!decoder->decode(parameters.applicationCacheDirectory)) 79 return false; 80 if (!decoder->decode(parameters.databaseDirectory)) 78 81 return false; 79 82 if (!decoder->decode(parameters.urlSchemesRegistererdAsEmptyDocument)) -
trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h
r76034 r76559 54 54 55 55 String applicationCacheDirectory; 56 String databaseDirectory; 56 57 Vector<String> urlSchemesRegistererdAsEmptyDocument; 57 58 Vector<String> urlSchemesRegisteredAsSecure; -
trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp
r75395 r76559 177 177 toImpl(contextRef)->stopMemorySampler(); 178 178 } 179 180 void WKContextSetDatabaseDirectory(WKContextRef contextRef, WKStringRef databaseDirectory) 181 { 182 toImpl(contextRef)->setDatabaseDirectory(toImpl(databaseDirectory)->string()); 183 } -
trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h
r74283 r76559 55 55 WK_EXPORT void WKContextSetDomainRelaxationForbiddenForURLScheme(WKContextRef context, WKStringRef urlScheme); 56 56 57 // FIXME: This function is only effective if called before the Web process is launched. But 58 // we should really change this setting to be on WebPreferences and changeable at runtime. 59 WK_EXPORT void WKContextSetDatabaseDirectory(WKContextRef context, WKStringRef databaseDirectory); 60 57 61 #ifdef __cplusplus 58 62 } -
trunk/Source/WebKit2/UIProcess/WebContext.cpp
r76163 r76559 177 177 parameters.languageCode = defaultLanguage(); 178 178 parameters.applicationCacheDirectory = applicationCacheDirectory(); 179 parameters.databaseDirectory = databaseDirectory(); 179 180 parameters.clearResourceCaches = m_clearResourceCachesForNewWebProcess; 180 181 parameters.clearApplicationCache = m_clearApplicationCacheForNewWebProcess; … … 603 604 } 604 605 606 String WebContext::databaseDirectory() const 607 { 608 if (!m_overrideDatabaseDirectory.isEmpty()) 609 return m_overrideDatabaseDirectory; 610 611 return platformDefaultDatabaseDirectory(); 612 } 613 605 614 } // namespace WebKit -
trunk/Source/WebKit2/UIProcess/WebContext.h
r76163 r76559 138 138 static Statistics& statistics(); 139 139 140 void setDatabaseDirectory(const String& dir) { m_overrideDatabaseDirectory = dir; } 141 140 142 private: 141 143 WebContext(ProcessModel, const String& injectedBundlePath); … … 162 164 static void languageChanged(void* context); 163 165 void languageChanged(); 166 167 String databaseDirectory() const; 168 String platformDefaultDatabaseDirectory() const; 164 169 165 170 ProcessModel m_processModel; … … 204 209 bool m_shouldPaintNativeControls; 205 210 #endif 211 212 String m_overrideDatabaseDirectory; 206 213 }; 207 214 -
trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm
r76418 r76559 91 91 } 92 92 93 String WebContext::platformDefaultDatabaseDirectory() const 94 { 95 return [@"~/Library/WebKit/Databases" stringByStandardizingPath]; 96 } 97 93 98 } // namespace WebKit 94 99 -
trunk/Source/WebKit2/UIProcess/qt/WebContextQt.cpp
r76507 r76559 47 47 } 48 48 49 String WebContext::platformDefaultDatabaseDirectory() const 50 { 51 // FIXME: Implement. 52 return ""; 53 } 54 49 55 } // namespace WebKit -
trunk/Source/WebKit2/UIProcess/win/WebContextWin.cpp
r69037 r76559 53 53 } 54 54 55 String WebContext::platformDefaultDatabaseDirectory() const 56 { 57 return WebCore::pathByAppendingComponent(WebCore::localUserSpecificStorageDirectory(), "Databases"); 58 } 59 55 60 } // namespace WebKit 56 61 -
trunk/Source/WebKit2/WebKit2.pro
r76507 r76559 664 664 WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp \ 665 665 WebProcess/WebCoreSupport/qt/WebContextMenuClientQt.cpp \ 666 WebProcess/WebCoreSupport/qt/WebDatabaseManagerQt.cpp \667 666 WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp \ 668 667 WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp \ -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r76470 r76559 695 695 F634445D12A885E9000612D8 /* WKSecurityOrigin.h in Headers */ = {isa = PBXBuildFile; fileRef = F634445B12A885E9000612D8 /* WKSecurityOrigin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 696 696 F67DD7BA125E40D9007BDCB8 /* WKSerializedScriptValuePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F67DD7B9125E40D9007BDCB8 /* WKSerializedScriptValuePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 697 F6A25FD912ADC6BD00DC40CC /* WebDatabaseManagerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6A25FD812ADC6BD00DC40CC /* WebDatabaseManagerMac.mm */; };698 697 F6A25FDC12ADC6CC00DC40CC /* WebDatabaseManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F6A25FDA12ADC6CC00DC40CC /* WebDatabaseManager.cpp */; }; 699 698 F6A25FDD12ADC6CC00DC40CC /* WebDatabaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F6A25FDB12ADC6CC00DC40CC /* WebDatabaseManager.h */; }; … … 1458 1457 F634445B12A885E9000612D8 /* WKSecurityOrigin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKSecurityOrigin.h; sourceTree = "<group>"; }; 1459 1458 F67DD7B9125E40D9007BDCB8 /* WKSerializedScriptValuePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKSerializedScriptValuePrivate.h; sourceTree = "<group>"; }; 1460 F6A25FD812ADC6BD00DC40CC /* WebDatabaseManagerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebDatabaseManagerMac.mm; sourceTree = "<group>"; };1461 1459 F6A25FDA12ADC6CC00DC40CC /* WebDatabaseManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebDatabaseManager.cpp; sourceTree = "<group>"; }; 1462 1460 F6A25FDB12ADC6CC00DC40CC /* WebDatabaseManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDatabaseManager.h; sourceTree = "<group>"; }; … … 2280 2278 C554FFA212E4E8EA002F22C0 /* WebDragClientMac.mm */, 2281 2279 51021E9B12B16788005C033C /* WebContextMenuClientMac.mm */, 2282 F6A25FD812ADC6BD00DC40CC /* WebDatabaseManagerMac.mm */,2283 2280 C5237F5F12441CA300780472 /* WebEditorClientMac.mm */, 2284 2281 BC111ADF112F5BC200337BAB /* WebErrorsMac.mm */, … … 3482 3479 512F58FB12A88A5400629530 /* WKProtectionSpace.cpp in Sources */, 3483 3480 F634445C12A885E9000612D8 /* WKSecurityOrigin.cpp in Sources */, 3484 F6A25FD912ADC6BD00DC40CC /* WebDatabaseManagerMac.mm in Sources */,3485 3481 F6A25FDC12ADC6CC00DC40CC /* WebDatabaseManager.cpp in Sources */, 3486 3482 51021E9C12B16788005C033C /* WebContextMenuClientMac.mm in Sources */, -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.cpp
r74693 r76559 46 46 } 47 47 48 void WebDatabaseManager::initialize(const String& databaseDirectory) 49 { 50 DatabaseTracker::initializeTracker(databaseDirectory); 51 } 52 48 53 WebDatabaseManager::WebDatabaseManager() 49 54 { 50 DatabaseTracker::initializeTracker(databaseDirectory());51 55 DatabaseTracker::tracker().setClient(this); 52 56 } -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.h
r74693 r76559 44 44 public: 45 45 static WebDatabaseManager& shared(); 46 static void initialize(const String& databaseDirectory); 46 47 47 48 void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*); … … 64 65 virtual void dispatchDidModifyOrigin(WebCore::SecurityOrigin*); 65 66 virtual void dispatchDidModifyDatabase(WebCore::SecurityOrigin*, const String& databaseIdentifier); 66 67 String databaseDirectory() const;68 67 }; 69 68 -
trunk/Source/WebKit2/WebProcess/WebProcess.cpp
r75857 r76559 120 120 WebPlatformStrategies::initialize(); 121 121 #endif // USE(PLATFORM_STRATEGIES) 122 123 #if ENABLE(DATABASE)124 // Make sure the WebDatabaseManager is initialized so that the Database directory is set.125 WebDatabaseManager::shared();126 #endif127 122 } 128 123 … … 159 154 } 160 155 } 156 157 #if ENABLE(DATABASE) 158 // Make sure the WebDatabaseManager is initialized so that the Database directory is set. 159 WebDatabaseManager::initialize(parameters.databaseDirectory); 160 #endif 161 161 162 162 #if ENABLE(OFFLINE_WEB_APPLICATIONS) -
trunk/Source/WebKit2/WebProcess/com.apple.WebProcess.sb
r76391 r76559 56 56 (if (positive? (string-length (param "DARWIN_USER_TEMP_DIR"))) 57 57 (allow file* (subpath (param "DARWIN_USER_TEMP_DIR")))) 58 59 ;; Database dir 60 (if (positive? (string-length (param "WEBKIT_DATABASE_DIR"))) 61 (allow file* (subpath (param "WEBKIT_DATABASE_DIR")))) 58 62 59 63 ;; The NSURLCache directory. -
trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm
r76418 r76559 136 136 "DARWIN_USER_TEMP_DIR", (const char*)tmpRealPath, 137 137 "DARWIN_USER_CACHE_DIR", (const char*)cacheRealPath, 138 "WEBKIT_DATABASE_DIR", (const char*)parameters.databaseDirectory.data(), 138 139 "NSURL_CACHE_DIR", (const char*)parameters.nsURLCachePath.data(), 139 140 "UI_PROCESS_BUNDLE_RESOURCE_DIR", (const char*)parameters.uiProcessBundleResourcePath.data(), -
trunk/Source/WebKit2/win/WebKit2.vcproj
r76551 r76559 1402 1402 </File> 1403 1403 <File 1404 RelativePath="..\WebProcess\WebCoreSupport\win\WebDatabaseManagerWin.cpp"1405 >1406 </File>1407 <File1408 1404 RelativePath="..\WebProcess\WebCoreSupport\win\WebErrorsWin.cpp" 1409 1405 > -
trunk/Tools/ChangeLog
r76554 r76559 1 2011-01-24 Maciej Stachowiak <mjs@apple.com> 2 3 Reviewed by Anders Carlsson. 4 5 Use designated temp directory for the database for WebKit2 6 https://bugs.webkit.org/show_bug.cgi?id=53052 7 8 Adopt the new WK2 API for this. 9 10 * WebKitTestRunner/TestController.cpp: 11 (WTR::TestController::libraryPathForTesting): 12 (WTR::TestController::initialize): 13 * WebKitTestRunner/TestController.h: 14 * WebKitTestRunner/mac/TestControllerMac.mm: 15 (WTR::TestController::platformLibraryPathForTesting): 16 * WebKitTestRunner/qt/TestControllerQt.cpp: 17 (WTR::TestController::platformLibraryPathForTesting): 18 * WebKitTestRunner/win/TestControllerWin.cpp: 19 (WTR::TestController::platformLibraryPathForTesting): 20 1 21 2011-01-24 Lucas Forschler <lforschler@apple.com> 2 22 -
trunk/Tools/WebKitTestRunner/TestController.cpp
r76361 r76559 33 33 #include <WebKit2/WKContextPrivate.h> 34 34 #include <WebKit2/WKPreferencesPrivate.h> 35 #include <WebKit2/WKRetainPtr.h> 35 36 #include <wtf/PassOwnPtr.h> 36 37 … … 165 166 } 166 167 168 const char* TestController::libraryPathForTesting() 169 { 170 // FIXME: This may not be sufficient to prevent interactions/crashes 171 // when running more than one copy of DumpRenderTree. 172 // See https://bugs.webkit.org/show_bug.cgi?id=10906 173 char* dumpRenderTreeTemp = getenv("DUMPRENDERTREE_TEMP"); 174 if (dumpRenderTreeTemp) 175 return dumpRenderTreeTemp; 176 return platformLibraryPathForTesting(); 177 } 178 179 167 180 void TestController::initialize(int argc, const char* argv[]) 168 181 { … … 220 233 221 234 m_context.adopt(WKContextCreateWithInjectedBundlePath(injectedBundlePath())); 235 236 const char* path = libraryPathForTesting(); 237 if (path) { 238 Vector<char> databaseDirectory(strlen(path) + strlen("/Databases")); 239 sprintf(databaseDirectory.data(), "%s%s", path, "/Databases"); 240 WKRetainPtr<WKStringRef> databaseDirectoryWK(AdoptWK, WKStringCreateWithUTF8CString(databaseDirectory.data())); 241 WKContextSetDatabaseDirectory(m_context.get(), databaseDirectoryWK.get()); 242 } 243 222 244 platformInitializeContext(); 223 245 -
trunk/Tools/WebKitTestRunner/TestController.h
r76361 r76559 91 91 static void runModal(PlatformWebView*); 92 92 93 static const char* libraryPathForTesting(); 94 static const char* platformLibraryPathForTesting(); 95 93 96 OwnPtr<TestInvocation> m_currentInvocation; 94 97 -
trunk/Tools/WebKitTestRunner/mac/TestControllerMac.mm
r76361 r76559 72 72 } 73 73 74 const char* TestController::platformLibraryPathForTesting() 75 { 76 return [[@"~/Library/Application Support/DumpRenderTree" stringByExpandingTildeInPath] UTF8String]; 77 } 78 74 79 } // namespace WTR -
trunk/Tools/WebKitTestRunner/qt/TestControllerQt.cpp
r76361 r76559 134 134 } 135 135 136 const char* TestController::platformLibraryPathForTesting() 137 { 138 return 0; 139 } 140 136 141 #include "TestControllerQt.moc" 137 142 -
trunk/Tools/WebKitTestRunner/win/TestControllerWin.cpp
r76361 r76559 158 158 } 159 159 160 const char* TestController::platformLibraryPathForTesting() 161 { 162 return 0; 163 } 164 160 165 } // namespace WTR
Note: See TracChangeset
for help on using the changeset viewer.