| Differences between
and this patch
- a/Source/WebKit2/Shared/WebProcessCreationParameters.h -2 / +1 lines
Lines 57-62 struct WebProcessCreationParameters { a/Source/WebKit2/Shared/WebProcessCreationParameters.h_sec1
57
    String applicationCacheDirectory;    
57
    String applicationCacheDirectory;    
58
    String databaseDirectory;
58
    String databaseDirectory;
59
    String localStorageDirectory;
59
    String localStorageDirectory;
60
    String diskCacheDirectory;
60
61
61
    Vector<String> urlSchemesRegistererdAsEmptyDocument;
62
    Vector<String> urlSchemesRegistererdAsEmptyDocument;
62
    Vector<String> urlSchemesRegisteredAsSecure;
63
    Vector<String> urlSchemesRegisteredAsSecure;
Lines 95-101 struct WebProcessCreationParameters { a/Source/WebKit2/Shared/WebProcessCreationParameters.h_sec2
95
    pid_t presenterApplicationPid;
96
    pid_t presenterApplicationPid;
96
97
97
    // FIXME: These should be merged with CFURLCache counterparts below.
98
    // FIXME: These should be merged with CFURLCache counterparts below.
98
    String nsURLCachePath;
99
    uint64_t nsURLCacheMemoryCapacity;
99
    uint64_t nsURLCacheMemoryCapacity;
100
    uint64_t nsURLCacheDiskCapacity;
100
    uint64_t nsURLCacheDiskCapacity;
101
101
Lines 120-126 struct WebProcessCreationParameters { a/Source/WebKit2/Shared/WebProcessCreationParameters.h_sec3
120
#endif // PLATFORM(WIN)
120
#endif // PLATFORM(WIN)
121
#if PLATFORM(QT)
121
#if PLATFORM(QT)
122
    String cookieStorageDirectory;
122
    String cookieStorageDirectory;
123
    String diskCacheDirectory;
124
#endif
123
#endif
125
124
126
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
125
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
- a/Source/WebKit2/UIProcess/API/C/WKContext.cpp +5 lines
Lines 244-249 void WKContextSetLocalStorageDirectory(WKContextRef contextRef, WKStringRef loca a/Source/WebKit2/UIProcess/API/C/WKContext.cpp_sec1
244
    toImpl(contextRef)->setLocalStorageDirectory(toImpl(localStorageDirectory)->string());
244
    toImpl(contextRef)->setLocalStorageDirectory(toImpl(localStorageDirectory)->string());
245
}
245
}
246
246
247
WK_EXPORT void WKContextSetDiskCacheDirectory(WKContextRef contextRef, WKStringRef diskCacheDirectory)
248
{
249
    toImpl(contextRef)->setDiskCacheDirectory(toImpl(diskCacheDirectory)->string());
250
}
251
247
void WKContextDisableProcessTermination(WKContextRef contextRef)
252
void WKContextDisableProcessTermination(WKContextRef contextRef)
248
{
253
{
249
    toImpl(contextRef)->disableProcessTermination();
254
    toImpl(contextRef)->disableProcessTermination();
- a/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h +1 lines
Lines 62-67 WK_EXPORT void WKContextSetIconDatabasePath(WKContextRef context, WKStringRef ic a/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h_sec1
62
// we should really change these settings to be on WebPreferences and changeable at runtime.
62
// we should really change these settings to be on WebPreferences and changeable at runtime.
63
WK_EXPORT void WKContextSetDatabaseDirectory(WKContextRef context, WKStringRef databaseDirectory);
63
WK_EXPORT void WKContextSetDatabaseDirectory(WKContextRef context, WKStringRef databaseDirectory);
64
WK_EXPORT void WKContextSetLocalStorageDirectory(WKContextRef context, WKStringRef localStorageDirectory);
64
WK_EXPORT void WKContextSetLocalStorageDirectory(WKContextRef context, WKStringRef localStorageDirectory);
65
WK_EXPORT void WKContextSetDiskCacheDirectory(WKContextRef context, WKStringRef diskCacheDirectory);
65
66
66
// FIXME: This is a workaround for testing purposes only and should be removed once a better
67
// FIXME: This is a workaround for testing purposes only and should be removed once a better
67
// solution has been found for testing.
68
// solution has been found for testing.
- a/Source/WebKit2/UIProcess/WebContext.cpp +9 lines
Lines 303-308 void WebContext::ensureWebProcess() a/Source/WebKit2/UIProcess/WebContext.cpp_sec1
303
    parameters.applicationCacheDirectory = applicationCacheDirectory();
303
    parameters.applicationCacheDirectory = applicationCacheDirectory();
304
    parameters.databaseDirectory = databaseDirectory();
304
    parameters.databaseDirectory = databaseDirectory();
305
    parameters.localStorageDirectory = localStorageDirectory();
305
    parameters.localStorageDirectory = localStorageDirectory();
306
    parameters.diskCacheDirectory = diskCacheDirectory();
306
307
307
#if PLATFORM(MAC)
308
#if PLATFORM(MAC)
308
    parameters.presenterApplicationPid = getpid();
309
    parameters.presenterApplicationPid = getpid();
Lines 953-958 String WebContext::localStorageDirectory() const a/Source/WebKit2/UIProcess/WebContext.cpp_sec2
953
    return platformDefaultLocalStorageDirectory();
954
    return platformDefaultLocalStorageDirectory();
954
}
955
}
955
956
957
String WebContext::diskCacheDirectory() const
958
{
959
    if (!m_overrideDiskCacheDirectory.isEmpty())
960
        return m_overrideDiskCacheDirectory;
961
962
    return platformDefaultDiskCacheDirectory();
963
}
964
956
void WebContext::setHTTPPipeliningEnabled(bool enabled)
965
void WebContext::setHTTPPipeliningEnabled(bool enabled)
957
{
966
{
958
#if PLATFORM(MAC)
967
#if PLATFORM(MAC)
- a/Source/WebKit2/UIProcess/WebContext.h +5 lines
Lines 190-195 public: a/Source/WebKit2/UIProcess/WebContext.h_sec1
190
    void setIconDatabasePath(const String&);
190
    void setIconDatabasePath(const String&);
191
    String iconDatabasePath() const;
191
    String iconDatabasePath() const;
192
    void setLocalStorageDirectory(const String& dir) { m_overrideLocalStorageDirectory = dir; }
192
    void setLocalStorageDirectory(const String& dir) { m_overrideLocalStorageDirectory = dir; }
193
    void setDiskCacheDirectory(const String& dir) { m_overrideDiskCacheDirectory = dir; }
193
194
194
    void ensureWebProcess();
195
    void ensureWebProcess();
195
    void warmInitialProcess();
196
    void warmInitialProcess();
Lines 272-277 private: a/Source/WebKit2/UIProcess/WebContext.h_sec2
272
    String localStorageDirectory() const;
273
    String localStorageDirectory() const;
273
    String platformDefaultLocalStorageDirectory() const;
274
    String platformDefaultLocalStorageDirectory() const;
274
275
276
    String diskCacheDirectory() const;
277
    String platformDefaultDiskCacheDirectory() const;
278
275
    void handleGetPlugins(uint64_t requestID, bool refresh);
279
    void handleGetPlugins(uint64_t requestID, bool refresh);
276
    void sendDidGetPlugins(uint64_t requestID, PassOwnPtr<Vector<WebCore::PluginInfo> >);
280
    void sendDidGetPlugins(uint64_t requestID, PassOwnPtr<Vector<WebCore::PluginInfo> >);
277
281
Lines 342-347 private: a/Source/WebKit2/UIProcess/WebContext.h_sec3
342
    String m_overrideDatabaseDirectory;
346
    String m_overrideDatabaseDirectory;
343
    String m_overrideIconDatabasePath;
347
    String m_overrideIconDatabasePath;
344
    String m_overrideLocalStorageDirectory;
348
    String m_overrideLocalStorageDirectory;
349
    String m_overrideDiskCacheDirectory;
345
350
346
    bool m_processTerminationEnabled;
351
    bool m_processTerminationEnabled;
347
    
352
    
- a/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp +6 lines
Lines 46-51 void WebContext::platformInvalidateContext() a/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp_sec1
46
    notImplemented();
46
    notImplemented();
47
}
47
}
48
48
49
String WebContext::platformDefaultDiskCacheDirectory() const
50
{
51
    notImplemented();
52
    return "";
53
}
54
49
String WebContext::platformDefaultDatabaseDirectory() const
55
String WebContext::platformDefaultDatabaseDirectory() const
50
{
56
{
51
    notImplemented();
57
    notImplemented();
- a/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp +6 lines
Lines 45-50 void WebContext::platformInvalidateContext() a/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp_sec1
45
{
45
{
46
}
46
}
47
47
48
String WebContext::platformDefaultDiskCacheDirectory() const
49
{
50
    // FIXME: Implement
51
    return WTF::String();
52
}
53
48
String WebContext::platformDefaultDatabaseDirectory() const
54
String WebContext::platformDefaultDatabaseDirectory() const
49
{
55
{
50
    GOwnPtr<gchar> databaseDirectory(g_build_filename(g_get_user_data_dir(), "webkitgtk", "databases", NULL));
56
    GOwnPtr<gchar> databaseDirectory(g_build_filename(g_get_user_data_dir(), "webkitgtk", "databases", NULL));
- a/Source/WebKit2/UIProcess/mac/WebContextMac.mm -7 / +11 lines
Lines 81-94 void WebContext::platformInitializeWebProcess(WebProcessCreationParameters& para a/Source/WebKit2/UIProcess/mac/WebContextMac.mm_sec1
81
        parameters.mimeTypesWithCustomRepresentation.appendRange(mimeType.begin(), mimeType.end());
81
        parameters.mimeTypesWithCustomRepresentation.appendRange(mimeType.begin(), mimeType.end());
82
    }
82
    }
83
83
84
    RetainPtr<CFStringRef> cachePath(AdoptCF, WKCopyFoundationCacheDirectory());
84
    parameters.parentProcessName = [[NSProcessInfo processInfo] processName];
85
    if (!cachePath)
86
        cachePath = reinterpret_cast<CFStringRef>(NSHomeDirectory());
87
85
88
    NSURLCache *urlCache = [NSURLCache sharedURLCache];
86
    NSURLCache *urlCache = [NSURLCache sharedURLCache];
89
90
    parameters.parentProcessName = [[NSProcessInfo processInfo] processName];    
91
    parameters.nsURLCachePath = [(NSString *)cachePath.get() stringByStandardizingPath];
92
    parameters.nsURLCacheMemoryCapacity = [urlCache memoryCapacity];
87
    parameters.nsURLCacheMemoryCapacity = [urlCache memoryCapacity];
93
    parameters.nsURLCacheDiskCapacity = [urlCache diskCapacity];
88
    parameters.nsURLCacheDiskCapacity = [urlCache diskCapacity];
94
89
Lines 123-129 void WebContext::platformInvalidateContext() a/Source/WebKit2/UIProcess/mac/WebContextMac.mm_sec2
123
{
118
{
124
    [[NSNotificationCenter defaultCenter] removeObserver:(id)m_enhancedAccessibilityObserver.get()];
119
    [[NSNotificationCenter defaultCenter] removeObserver:(id)m_enhancedAccessibilityObserver.get()];
125
}
120
}
126
    
121
122
String WebContext::platformDefaultDiskCacheDirectory() const
123
{
124
    RetainPtr<CFStringRef> cachePath(AdoptCF, WKCopyFoundationCacheDirectory());
125
    if (!cachePath)
126
        cachePath = reinterpret_cast<CFStringRef>(NSHomeDirectory());
127
128
    return String([(NSString *)cachePath.get() stringByStandardizingPath]);
129
}
130
127
String WebContext::platformDefaultDatabaseDirectory() const
131
String WebContext::platformDefaultDatabaseDirectory() const
128
{
132
{
129
    NSString *databasesDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebDatabaseDirectoryDefaultsKey];
133
    NSString *databasesDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebDatabaseDirectoryDefaultsKey];
- a/Source/WebKit2/UIProcess/qt/WebContextQt.cpp -2 / +1 lines
Lines 44-50 namespace WebKit { a/Source/WebKit2/UIProcess/qt/WebContextQt.cpp_sec1
44
static QString s_defaultDatabaseDirectory;
44
static QString s_defaultDatabaseDirectory;
45
static QString s_defaultLocalStorageDirectory;
45
static QString s_defaultLocalStorageDirectory;
46
46
47
static String defaultDiskCacheDirectory()
47
String WebContext::platformDefaultDiskCacheDirectory() const
48
{
48
{
49
    static String s_defaultDiskCacheDirectory;
49
    static String s_defaultDiskCacheDirectory;
50
50
Lines 65-71 void WebContext::platformInitializeWebProcess(WebProcessCreationParameters& para a/Source/WebKit2/UIProcess/qt/WebContextQt.cpp_sec2
65
{
65
{
66
    qRegisterMetaType<QProcess::ExitStatus>("QProcess::ExitStatus");
66
    qRegisterMetaType<QProcess::ExitStatus>("QProcess::ExitStatus");
67
    parameters.cookieStorageDirectory = defaultDataLocation();
67
    parameters.cookieStorageDirectory = defaultDataLocation();
68
    parameters.diskCacheDirectory = defaultDiskCacheDirectory();
69
#if ENABLE(GEOLOCATION)
68
#if ENABLE(GEOLOCATION)
70
    static WebGeolocationProviderQt* location = WebGeolocationProviderQt::create(toAPI(geolocationManagerProxy()));
69
    static WebGeolocationProviderQt* location = WebGeolocationProviderQt::create(toAPI(geolocationManagerProxy()));
71
    WKGeolocationManagerSetProvider(toAPI(geolocationManagerProxy()), WebGeolocationProviderQt::provider(location));
70
    WKGeolocationManagerSetProvider(toAPI(geolocationManagerProxy()), WebGeolocationProviderQt::provider(location));
- a/Source/WebKit2/UIProcess/win/WebContextWin.cpp +5 lines
Lines 81-86 void WebContext::platformInvalidateContext() a/Source/WebKit2/UIProcess/win/WebContextWin.cpp_sec1
81
{
81
{
82
}
82
}
83
83
84
String WebContext::platformDefaultDiskCacheDirectory() const
85
{
86
    return WebCore::pathByAppendingComponent(WebCore::localUserSpecificStorageDirectory(), "cache");
87
}
88
84
String WebContext::platformDefaultDatabaseDirectory() const
89
String WebContext::platformDefaultDatabaseDirectory() const
85
{
90
{
86
    return WebCore::pathByAppendingComponent(WebCore::localUserSpecificStorageDirectory(), "Databases");
91
    return WebCore::pathByAppendingComponent(WebCore::localUserSpecificStorageDirectory(), "Databases");
- a/Source/WebKit2/WebProcess/mac/WebProcessMac.mm -3 / +3 lines
Lines 213-219 static void initializeSandbox(const WebProcessCreationParameters& parameters) a/Source/WebKit2/WebProcess/mac/WebProcessMac.mm_sec1
213
    appendReadwriteSandboxDirectory(sandboxParameters, "WEBKIT_DATABASE_DIR", parameters.databaseDirectory);
213
    appendReadwriteSandboxDirectory(sandboxParameters, "WEBKIT_DATABASE_DIR", parameters.databaseDirectory);
214
    appendReadwriteSandboxDirectory(sandboxParameters, "WEBKIT_LOCALSTORAGE_DIR", parameters.localStorageDirectory);
214
    appendReadwriteSandboxDirectory(sandboxParameters, "WEBKIT_LOCALSTORAGE_DIR", parameters.localStorageDirectory);
215
    appendReadwriteSandboxDirectory(sandboxParameters, "WEBKIT_APPLICATION_CACHE_DIR", parameters.applicationCacheDirectory);
215
    appendReadwriteSandboxDirectory(sandboxParameters, "WEBKIT_APPLICATION_CACHE_DIR", parameters.applicationCacheDirectory);
216
    appendReadwriteSandboxDirectory(sandboxParameters, "NSURL_CACHE_DIR", parameters.nsURLCachePath);
216
    appendReadwriteSandboxDirectory(sandboxParameters, "NSURL_CACHE_DIR", static_cast<NSString*>(parameters.diskCacheDirectory));
217
217
218
    sandboxParameters.append(static_cast<const char*>(0));
218
    sandboxParameters.append(static_cast<const char*>(0));
219
219
Lines 259-269 void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters a/Source/WebKit2/WebProcess/mac/WebProcessMac.mm_sec2
259
        WKSetVisibleApplicationName((CFStringRef)applicationName);
259
        WKSetVisibleApplicationName((CFStringRef)applicationName);
260
    }
260
    }
261
261
262
    if (!parameters.nsURLCachePath.isNull()) {
262
    if (!static_cast<NSString*>(parameters.diskCacheDirectory).isNull()) {
263
        NSUInteger cacheMemoryCapacity = parameters.nsURLCacheMemoryCapacity;
263
        NSUInteger cacheMemoryCapacity = parameters.nsURLCacheMemoryCapacity;
264
        NSUInteger cacheDiskCapacity = parameters.nsURLCacheDiskCapacity;
264
        NSUInteger cacheDiskCapacity = parameters.nsURLCacheDiskCapacity;
265
265
266
        RetainPtr<NSURLCache> parentProcessURLCache(AdoptNS, [[NSURLCache alloc] initWithMemoryCapacity:cacheMemoryCapacity diskCapacity:cacheDiskCapacity diskPath:parameters.nsURLCachePath]);
266
        RetainPtr<NSURLCache> parentProcessURLCache(AdoptNS, [[NSURLCache alloc] initWithMemoryCapacity:cacheMemoryCapacity diskCapacity:cacheDiskCapacity diskPath:static_cast<NSString*>(parameters.diskCacheDirectory)]);
267
        [NSURLCache setSharedURLCache:parentProcessURLCache.get()];
267
        [NSURLCache setSharedURLCache:parentProcessURLCache.get()];
268
    }
268
    }
269
269
- a/Tools/WebKitTestRunner/TestController.cpp -6 / +13 lines
Lines 305-316 void TestController::initialize(int argc, const char* argv[]) a/Tools/WebKitTestRunner/TestController.cpp_sec1
305
305
306
    m_context.adopt(WKContextCreateWithInjectedBundlePath(injectedBundlePath()));
306
    m_context.adopt(WKContextCreateWithInjectedBundlePath(injectedBundlePath()));
307
307
308
    const char* path = libraryPathForTesting();
308
    // Can we remove it?
309
    if (path) {
309
//    const char* path = libraryPathForTesting();
310
        Vector<char> databaseDirectory(strlen(path) + strlen("/Databases") + 1);
310
//    if (path) {
311
        sprintf(databaseDirectory.data(), "%s%s", path, "/Databases");
311
//        Vector<char> databaseDirectory(strlen(path) + strlen("/Databases") + 1);
312
        WKRetainPtr<WKStringRef> databaseDirectoryWK(AdoptWK, WKStringCreateWithUTF8CString(databaseDirectory.data()));
312
//        sprintf(databaseDirectory.data(), "%s%s", path, "/Databases");
313
        WKContextSetDatabaseDirectory(m_context.get(), databaseDirectoryWK.get());
313
//        WKRetainPtr<WKStringRef> databaseDirectoryWK(AdoptWK, WKStringCreateWithUTF8CString(databaseDirectory.data()));
314
//        WKContextSetDatabaseDirectory(m_context.get(), databaseDirectoryWK.get());
315
//    }
316
317
    if (char* dumpRenderTreeTemp = getenv("DUMPRENDERTREE_TEMP")) {
318
        WKContextSetDatabaseDirectory(m_context.get(), WKStringCreateWithUTF8CString(dumpRenderTreeTemp));
319
        WKContextSetLocalStorageDirectory(m_context.get(), WKStringCreateWithUTF8CString(dumpRenderTreeTemp));
320
        WKContextSetDiskCacheDirectory(m_context.get(), WKStringCreateWithUTF8CString(dumpRenderTreeTemp));
314
    }
321
    }
315
322
316
    platformInitializeContext();
323
    platformInitializeContext();

Return to Bug 89666