[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

weinig at apple.com weinig at apple.com
Wed Dec 22 18:44:28 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit aad0fb0d0ea076fdf32dae87033a0db68feb6d8f
Author: weinig at apple.com <weinig at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Dec 17 00:29:49 2010 +0000

    Move NSURLCache initialization from the ProcessLauncherMac to the centralized
    WebContext initialize WebProcess mechanism.
    
    Reviewed by Anders Carlsson.
    
    * Shared/WebProcessCreationParameters.cpp:
    (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
    (WebKit::WebProcessCreationParameters::encode):
    (WebKit::WebProcessCreationParameters::decode):
    * Shared/WebProcessCreationParameters.h:
    * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
    (WebKit::ProcessLauncher::launchProcess):
    * UIProcess/mac/WebContextMac.mm:
    (WebKit::WebContext::platformInitializeWebProcess):
    * WebProcess/WebProcess.cpp:
    (WebKit::WebProcess::initializeWebProcess):
    * WebProcess/mac/WebProcessMac.mm:
    (WebKit::WebProcess::platformInitializeWebProcess):
    * WebProcess/mac/WebProcessMainMac.mm:
    (WebKit::WebProcessMain):
    * WebProcess/win/WebProcessWin.cpp:
    (WebKit::WebProcess::platformInitializeWebProcess):
    (WebKit::WebProcess::setShouldPaintNativeControls):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74219 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 96fb7c9..debe6e7 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,29 @@
+2010-12-16  Sam Weinig  <sam at webkit.org>
+
+        Reviewed by Anders Carlsson.
+
+        Move NSURLCache initialization from the ProcessLauncherMac to the centralized
+        WebContext initialize WebProcess mechanism.
+
+        * Shared/WebProcessCreationParameters.cpp:
+        (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
+        (WebKit::WebProcessCreationParameters::encode):
+        (WebKit::WebProcessCreationParameters::decode):
+        * Shared/WebProcessCreationParameters.h:
+        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+        (WebKit::ProcessLauncher::launchProcess):
+        * UIProcess/mac/WebContextMac.mm:
+        (WebKit::WebContext::platformInitializeWebProcess):
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::initializeWebProcess):
+        * WebProcess/mac/WebProcessMac.mm:
+        (WebKit::WebProcess::platformInitializeWebProcess):
+        * WebProcess/mac/WebProcessMainMac.mm:
+        (WebKit::WebProcessMain):
+        * WebProcess/win/WebProcessWin.cpp:
+        (WebKit::WebProcess::platformInitializeWebProcess):
+        (WebKit::WebProcess::setShouldPaintNativeControls):
+
 2010-12-16  Anders Carlsson  <andersca at apple.com>
 
         Reviewed by Dan Bernstein.
diff --git a/WebKit2/Shared/WebProcessCreationParameters.cpp b/WebKit2/Shared/WebProcessCreationParameters.cpp
index 8b20d5b..37ce98c 100644
--- a/WebKit2/Shared/WebProcessCreationParameters.cpp
+++ b/WebKit2/Shared/WebProcessCreationParameters.cpp
@@ -31,7 +31,10 @@ namespace WebKit {
 
 WebProcessCreationParameters::WebProcessCreationParameters()
     : shouldTrackVisitedLinks(false)
-#if PLATFORM(WIN)
+#if PLATFORM(MAC)
+    , nsURLCacheMemoryCapacity(0)
+    , nsURLCacheDiskCapacity(0)
+#elif PLATFORM(WIN)
     , shouldPaintNativeControls(false)
 #endif
 {
@@ -41,17 +44,18 @@ void WebProcessCreationParameters::encode(CoreIPC::ArgumentEncoder* encoder) con
 {
     encoder->encode(injectedBundlePath);
     encoder->encode(injectedBundlePathExtensionHandle);
-
     encoder->encode(applicationCacheDirectory);
     encoder->encode(urlSchemesRegistererdAsEmptyDocument);
     encoder->encode(urlSchemesRegisteredAsSecure);
     encoder->encode(urlSchemesForWhichDomainRelaxationIsForbidden);
     encoder->encode(mimeTypesWithCustomRepresentation);
-    encoder->encode(static_cast<uint32_t>(cacheModel));
+    encoder->encodeEnum(cacheModel);
     encoder->encode(shouldTrackVisitedLinks);
     encoder->encode(languageCode);
-
 #if PLATFORM(MAC)
+    encoder->encode(nsURLCachePath);
+    encoder->encode(nsURLCacheMemoryCapacity);
+    encoder->encode(nsURLCacheDiskCapacity);
     encoder->encode(acceleratedCompositingPort);
 #elif PLATFORM(WIN)
     encoder->encode(shouldPaintNativeControls);
@@ -64,7 +68,6 @@ bool WebProcessCreationParameters::decode(CoreIPC::ArgumentDecoder* decoder, Web
         return false;
     if (!decoder->decode(parameters.injectedBundlePathExtensionHandle))
         return false;
-
     if (!decoder->decode(parameters.applicationCacheDirectory))
         return false;
     if (!decoder->decode(parameters.urlSchemesRegistererdAsEmptyDocument))
@@ -75,18 +78,19 @@ bool WebProcessCreationParameters::decode(CoreIPC::ArgumentDecoder* decoder, Web
         return false;
     if (!decoder->decode(parameters.mimeTypesWithCustomRepresentation))
         return false;
-
-    uint32_t cacheModel;
-    if (!decoder->decode(cacheModel))
+    if (!decoder->decodeEnum(parameters.cacheModel))
         return false;
-    parameters.cacheModel = static_cast<CacheModel>(cacheModel);
-
     if (!decoder->decode(parameters.shouldTrackVisitedLinks))
         return false;
     if (!decoder->decode(parameters.languageCode))
         return false;
-
 #if PLATFORM(MAC)
+    if (!decoder->decode(parameters.nsURLCachePath))
+        return false;
+    if (!decoder->decode(parameters.nsURLCacheMemoryCapacity))
+        return false;
+    if (!decoder->decode(parameters.nsURLCacheDiskCapacity))
+        return false;
     if (!decoder->decode(parameters.acceleratedCompositingPort))
         return false;
 #elif PLATFORM(WIN)
diff --git a/WebKit2/Shared/WebProcessCreationParameters.h b/WebKit2/Shared/WebProcessCreationParameters.h
index f490f9f..0148c57 100644
--- a/WebKit2/Shared/WebProcessCreationParameters.h
+++ b/WebKit2/Shared/WebProcessCreationParameters.h
@@ -68,6 +68,9 @@ struct WebProcessCreationParameters {
     String languageCode;
 
 #if PLATFORM(MAC)
+    String nsURLCachePath;
+    uint64_t nsURLCacheMemoryCapacity;
+    uint64_t nsURLCacheDiskCapacity;
     CoreIPC::MachPort acceleratedCompositingPort;
 #elif PLATFORM(WIN)
     bool shouldPaintNativeControls;
diff --git a/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm b/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm
index e05f8e3..c285bae 100644
--- a/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm
+++ b/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm
@@ -225,17 +225,8 @@ void ProcessLauncher::launchProcess()
     // Make a unique, per pid, per process launcher web process service name.
     CString serviceName = String::format("com.apple.WebKit.WebProcess-%d-%p", getpid(), this).utf8();
 
-    RetainPtr<CFStringRef> cachePath(AdoptCF, WKCopyFoundationCacheDirectory());
-    if (!cachePath)
-        cachePath = reinterpret_cast<CFStringRef>(NSHomeDirectory());
-
-    NSURLCache *urlCache = [NSURLCache sharedURLCache];
-    CString cacheMemoryCapacity = String::number([urlCache memoryCapacity]).utf8();
-    CString cacheDiskCapacity = String::number([urlCache diskCapacity]).utf8();
-
     const char* path = [webProcessAppExecutablePath fileSystemRepresentation];
-    const char* args[] = { path, bundlePath, "-type", processTypeAsString(m_launchOptions.processType), "-servicename", serviceName.data(), "-parentprocessname", processName(),
-        "-cachepath", [(NSString *)cachePath.get() UTF8String], "-cachememorycapacity", cacheMemoryCapacity.data(), "-cachediskcapacity", cacheDiskCapacity.data(), 0 };
+    const char* args[] = { path, bundlePath, "-type", processTypeAsString(m_launchOptions.processType), "-servicename", serviceName.data(), "-parentprocessname", processName(), 0 };
 
     // Register ourselves.
     kern_return_t kr = bootstrap_register2(bootstrap_port, const_cast<char*>(serviceName.data()), listeningPort, 0);
diff --git a/WebKit2/UIProcess/mac/WebContextMac.mm b/WebKit2/UIProcess/mac/WebContextMac.mm
index f04fa5f..d44a62b 100644
--- a/WebKit2/UIProcess/mac/WebContextMac.mm
+++ b/WebKit2/UIProcess/mac/WebContextMac.mm
@@ -68,6 +68,15 @@ void WebContext::platformInitializeWebProcess(WebProcessCreationParameters& para
     HashSet<String, CaseFoldingHash> mimeType = pdfAndPostScriptMIMETypes();
     parameters.mimeTypesWithCustomRepresentation.appendRange(mimeType.begin(), mimeType.end());
 
+    RetainPtr<CFStringRef> cachePath(AdoptCF, WKCopyFoundationCacheDirectory());
+    if (!cachePath)
+        cachePath = reinterpret_cast<CFStringRef>(NSHomeDirectory());
+
+    NSURLCache *urlCache = [NSURLCache sharedURLCache];
+    parameters.nsURLCachePath = cachePath.get();
+    parameters.nsURLCacheMemoryCapacity = [urlCache memoryCapacity];
+    parameters.nsURLCacheDiskCapacity = [urlCache diskCapacity];
+
 #if USE(ACCELERATED_COMPOSITING) && HAVE(HOSTED_CORE_ANIMATION)
     mach_port_t renderServerPort = WKInitializeRenderServer();
     if (renderServerPort != MACH_PORT_NULL)
diff --git a/WebKit2/WebProcess/WebProcess.cpp b/WebKit2/WebProcess/WebProcess.cpp
index c1a8137..7a7376e 100644
--- a/WebKit2/WebProcess/WebProcess.cpp
+++ b/WebKit2/WebProcess/WebProcess.cpp
@@ -132,6 +132,8 @@ void WebProcess::initializeWebProcess(const WebProcessCreationParameters& parame
 {
     ASSERT(m_pageMap.isEmpty());
 
+    platformInitializeWebProcess(parameters, arguments);
+
     RefPtr<APIObject> injectedBundleInitializationUserData;
     InjectedBundleUserMessageDecoder messageDecoder(injectedBundleInitializationUserData);
     if (!arguments->decode(messageDecoder))
@@ -174,15 +176,6 @@ void WebProcess::initializeWebProcess(const WebProcessCreationParameters& parame
         clearResourceCaches();
     if (parameters.clearApplicationCache)
         clearApplicationCache();
-
-#if USE(ACCELERATED_COMPOSITING) && PLATFORM(MAC)
-    m_compositingRenderServerPort = parameters.acceleratedCompositingPort.port();
-#endif
-#if PLATFORM(WIN)
-    setShouldPaintNativeControls(parameters.shouldPaintNativeControls);
-#endif
-
-    platformInitializeWebProcess(parameters, arguments);
 }
 
 void WebProcess::setShouldTrackVisitedLinks(bool shouldTrackVisitedLinks)
@@ -402,15 +395,6 @@ void WebProcess::calculateCacheSizes(CacheModel cacheModel, uint64_t memorySize,
     };
 }
 
-#if PLATFORM(WIN)
-void WebProcess::setShouldPaintNativeControls(bool shouldPaintNativeControls)
-{
-#if USE(SAFARI_THEME)
-    Settings::setShouldPaintNativeControls(shouldPaintNativeControls);
-#endif
-}
-#endif
-
 WebPage* WebProcess::webPage(uint64_t pageID) const
 {
     return m_pageMap.get(pageID).get();
diff --git a/WebKit2/WebProcess/mac/WebProcessMac.mm b/WebKit2/WebProcess/mac/WebProcessMac.mm
index 0cabeb2..ff0e75e 100644
--- a/WebKit2/WebProcess/mac/WebProcessMac.mm
+++ b/WebKit2/WebProcess/mac/WebProcessMac.mm
@@ -25,6 +25,7 @@
 
 #include "WebProcess.h"
 
+#include "WebProcessCreationParameters.h"
 #include <WebCore/MemoryCache.h>
 #include <WebCore/PageCache.h>
 #include <WebKitSystemInterface.h>
@@ -101,8 +102,20 @@ void WebProcess::platformClearResourceCaches()
     [[NSURLCache sharedURLCache] removeAllCachedResponses];
 }
 
-void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters&, CoreIPC::ArgumentDecoder*)
+void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters& parameters, CoreIPC::ArgumentDecoder*)
 {
+    if (!parameters.nsURLCachePath.isNull()) {
+        NSUInteger cacheMemoryCapacity = parameters.nsURLCacheMemoryCapacity;
+        NSUInteger cacheDiskCapacity = parameters.nsURLCacheDiskCapacity;
+
+        CString utf8CachePath = parameters.nsURLCachePath.utf8();
+        NSString *nsCachePath = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:utf8CachePath.data() length:utf8CachePath.length()];
+
+        RetainPtr<NSURLCache> parentProcessURLCache(AdoptNS, [[NSURLCache alloc] initWithMemoryCapacity:cacheMemoryCapacity diskCapacity:cacheDiskCapacity diskPath:nsCachePath]);
+        [NSURLCache setSharedURLCache:parentProcessURLCache.get()];
+    }
+
+    m_compositingRenderServerPort = parameters.acceleratedCompositingPort.port();
 }
 
 void WebProcess::platformShutdown()
diff --git a/WebKit2/WebProcess/mac/WebProcessMainMac.mm b/WebKit2/WebProcess/mac/WebProcessMainMac.mm
index e71d364..2f455f4 100644
--- a/WebKit2/WebProcess/mac/WebProcessMainMac.mm
+++ b/WebKit2/WebProcess/mac/WebProcessMainMac.mm
@@ -125,18 +125,6 @@ int WebProcessMain(const CommandLine& commandLine)
         WKSetVisibleApplicationName((CFStringRef)applicationName);
     }
 
-    String cachePath = commandLine["cachepath"];
-    if (!cachePath.isNull()) {
-        NSUInteger cacheMemoryCapacity = commandLine["cachememorycapacity"].toUInt();
-        NSUInteger cacheDiskCapacity = commandLine["cachediskcapacity"].toUInt();
-
-        CString utf8CachePath = cachePath.utf8();
-        NSString *nsCachePath = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:utf8CachePath.data() length:utf8CachePath.length()];
-
-        RetainPtr<NSURLCache> parentProcessURLCache(AdoptNS, [[NSURLCache alloc] initWithMemoryCapacity:cacheMemoryCapacity diskCapacity:cacheDiskCapacity diskPath:nsCachePath]);
-        [NSURLCache setSharedURLCache:parentProcessURLCache.get()];
-    }
-
     // Create the connection.
     WebProcess::shared().initialize(serverPort, RunLoop::main());
 
diff --git a/WebKit2/WebProcess/win/WebProcessWin.cpp b/WebKit2/WebProcess/win/WebProcessWin.cpp
index e3ac8d4..780af0b 100644
--- a/WebKit2/WebProcess/win/WebProcessWin.cpp
+++ b/WebKit2/WebProcess/win/WebProcessWin.cpp
@@ -25,9 +25,11 @@
 
 #include "WebProcess.h"
 
-#include <WebCore/MemoryCache.h>
+#include "WebProcessCreationParameters.h"
 #include <WebCore/FileSystem.h>
+#include <WebCore/MemoryCache.h>
 #include <WebCore/PageCache.h>
+#include <WebCore/Settings.h>
 #include <wtf/text/WTFString.h>
 
 #if USE(CFNETWORK)
@@ -102,12 +104,20 @@ void WebProcess::platformClearResourceCaches()
 #endif
 }
 
-void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters&, CoreIPC::ArgumentDecoder*)
+void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters& parameters, CoreIPC::ArgumentDecoder*)
 {
+    setShouldPaintNativeControls(parameters.shouldPaintNativeControls);
 }
 
 void WebProcess::platformShutdown()
 {
 }
 
+void WebProcess::setShouldPaintNativeControls(bool shouldPaintNativeControls)
+{
+#if USE(SAFARI_THEME)
+    Settings::setShouldPaintNativeControls(shouldPaintNativeControls);
+#endif
+}
+
 } // namespace WebKit

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list