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

mitz at apple.com mitz at apple.com
Wed Dec 22 18:46:40 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit f8ff23a1e125e1dc2de003dfbd2196c3c7a095ab
Author: mitz at apple.com <mitz at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Dec 17 19:45:12 2010 +0000

    Add API for "Always Use the Complex Text Code Path"
    https://bugs.webkit.org/show_bug.cgi?id=51265
    
    Reviewed by Darin Adler.
    
    * Shared/WebProcessCreationParameters.cpp:
    (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Initialize shouldAlwaysUseComplexTextCodePath.
    (WebKit::WebProcessCreationParameters::encode): Encode shouldAlwaysUseComplexTextCodePath.
    (WebKit::WebProcessCreationParameters::decode): Decode shouldAlwaysUseComplexTextCodePath.
    * Shared/WebProcessCreationParameters.h:
    * UIProcess/API/C/WKContext.cpp:
    (_WKContextSetAlwaysUsesComplexTextCodePath): Added.
    * UIProcess/API/C/WKContextPrivate.h:
    * UIProcess/WebContext.cpp:
    (WebKit::WebContext::WebContext): Initialize m_alwaysUsesComplexTextCodePath.
    (WebKit::WebContext::ensureWebProcess): Set shouldAlwaysUseComplexTextCodePath in the creation parameters.
    (WebKit::WebContext::setAlwaysUsesComplexTextCodePath): Added. Sets m_alwaysUsesComplexTextCodePath and
    sends a message to the WebProcess.
    * UIProcess/WebContext.h:
    * WebProcess/WebProcess.cpp:
    (WebKit::WebProcess::initializeWebProcess): Call setAlwaysUsesComplexTextCodePath() based on the creation
    parameters.
    (WebKit::WebProcess::setAlwaysUsesComplexTextCodePath): Added.
    * WebProcess/WebProcess.h:
    * WebProcess/WebProcess.messages.in: Added SetAlwaysUsesComplexTextCodePath.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74283 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 0d02ded..90b10ab 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,31 @@
+2010-12-17  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Darin Adler.
+
+        Add API for "Always Use the Complex Text Code Path"
+        https://bugs.webkit.org/show_bug.cgi?id=51265
+
+        * Shared/WebProcessCreationParameters.cpp:
+        (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Initialize shouldAlwaysUseComplexTextCodePath.
+        (WebKit::WebProcessCreationParameters::encode): Encode shouldAlwaysUseComplexTextCodePath.
+        (WebKit::WebProcessCreationParameters::decode): Decode shouldAlwaysUseComplexTextCodePath.
+        * Shared/WebProcessCreationParameters.h:
+        * UIProcess/API/C/WKContext.cpp: 
+        (_WKContextSetAlwaysUsesComplexTextCodePath): Added.
+        * UIProcess/API/C/WKContextPrivate.h:
+        * UIProcess/WebContext.cpp:
+        (WebKit::WebContext::WebContext): Initialize m_alwaysUsesComplexTextCodePath.
+        (WebKit::WebContext::ensureWebProcess): Set shouldAlwaysUseComplexTextCodePath in the creation parameters.
+        (WebKit::WebContext::setAlwaysUsesComplexTextCodePath): Added. Sets m_alwaysUsesComplexTextCodePath and
+        sends a message to the WebProcess.
+        * UIProcess/WebContext.h:
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::initializeWebProcess): Call setAlwaysUsesComplexTextCodePath() based on the creation
+        parameters.
+        (WebKit::WebProcess::setAlwaysUsesComplexTextCodePath): Added.
+        * WebProcess/WebProcess.h:
+        * WebProcess/WebProcess.messages.in: Added SetAlwaysUsesComplexTextCodePath.
+
 2010-12-17  Sam Weinig  <sam at webkit.org>
 
         Reviewed by Darin Adler.
diff --git a/WebKit2/Shared/WebProcessCreationParameters.cpp b/WebKit2/Shared/WebProcessCreationParameters.cpp
index 37ce98c..72f601d 100644
--- a/WebKit2/Shared/WebProcessCreationParameters.cpp
+++ b/WebKit2/Shared/WebProcessCreationParameters.cpp
@@ -31,6 +31,7 @@ namespace WebKit {
 
 WebProcessCreationParameters::WebProcessCreationParameters()
     : shouldTrackVisitedLinks(false)
+    , shouldAlwaysUseComplexTextCodePath(false)
 #if PLATFORM(MAC)
     , nsURLCacheMemoryCapacity(0)
     , nsURLCacheDiskCapacity(0)
@@ -51,6 +52,7 @@ void WebProcessCreationParameters::encode(CoreIPC::ArgumentEncoder* encoder) con
     encoder->encode(mimeTypesWithCustomRepresentation);
     encoder->encodeEnum(cacheModel);
     encoder->encode(shouldTrackVisitedLinks);
+    encoder->encode(shouldAlwaysUseComplexTextCodePath);
     encoder->encode(languageCode);
 #if PLATFORM(MAC)
     encoder->encode(nsURLCachePath);
@@ -82,6 +84,8 @@ bool WebProcessCreationParameters::decode(CoreIPC::ArgumentDecoder* decoder, Web
         return false;
     if (!decoder->decode(parameters.shouldTrackVisitedLinks))
         return false;
+    if (!decoder->decode(parameters.shouldAlwaysUseComplexTextCodePath))
+        return false;
     if (!decoder->decode(parameters.languageCode))
         return false;
 #if PLATFORM(MAC)
diff --git a/WebKit2/Shared/WebProcessCreationParameters.h b/WebKit2/Shared/WebProcessCreationParameters.h
index 0148c57..a5325de 100644
--- a/WebKit2/Shared/WebProcessCreationParameters.h
+++ b/WebKit2/Shared/WebProcessCreationParameters.h
@@ -65,6 +65,8 @@ struct WebProcessCreationParameters {
     bool clearResourceCaches;
     bool clearApplicationCache;
 
+    bool shouldAlwaysUseComplexTextCodePath;
+
     String languageCode;
 
 #if PLATFORM(MAC)
diff --git a/WebKit2/UIProcess/API/C/WKContext.cpp b/WebKit2/UIProcess/API/C/WKContext.cpp
index 2080ed8..7a5ec70 100644
--- a/WebKit2/UIProcess/API/C/WKContext.cpp
+++ b/WebKit2/UIProcess/API/C/WKContext.cpp
@@ -116,6 +116,11 @@ WKCacheModel WKContextGetCacheModel(WKContextRef contextRef)
     return toAPI(toImpl(contextRef)->cacheModel());
 }
 
+void _WKContextSetAlwaysUsesComplexTextCodePath(WKContextRef contextRef, bool alwaysUseComplexTextCodePath)
+{
+    toImpl(contextRef)->setAlwaysUsesComplexTextCodePath(alwaysUseComplexTextCodePath);
+}
+
 void _WKContextSetAdditionalPluginsDirectory(WKContextRef contextRef, WKStringRef pluginsDirectory)
 {
     toImpl(contextRef)->setAdditionalPluginsDirectory(toImpl(pluginsDirectory)->string());
diff --git a/WebKit2/UIProcess/API/C/WKContextPrivate.h b/WebKit2/UIProcess/API/C/WKContextPrivate.h
index 96abb82..8bcb1b6 100644
--- a/WebKit2/UIProcess/API/C/WKContextPrivate.h
+++ b/WebKit2/UIProcess/API/C/WKContextPrivate.h
@@ -48,6 +48,8 @@ WK_EXPORT void _WKContextSetAdditionalPluginsDirectory(WKContextRef context, WKS
 
 WK_EXPORT void _WKContextRegisterURLSchemeAsEmptyDocument(WKContextRef context, WKStringRef urlScheme);
 
+WK_EXPORT void _WKContextSetAlwaysUsesComplexTextCodePath(WKContextRef context, bool alwaysUseComplexTextCodePath);
+
 WK_EXPORT void WKContextRegisterURLSchemeAsSecure(WKContextRef context, WKStringRef urlScheme);
 
 WK_EXPORT void WKContextSetDomainRelaxationForbiddenForURLScheme(WKContextRef context, WKStringRef urlScheme);
diff --git a/WebKit2/UIProcess/WebContext.cpp b/WebKit2/UIProcess/WebContext.cpp
index 4db02df..7bff752 100644
--- a/WebKit2/UIProcess/WebContext.cpp
+++ b/WebKit2/UIProcess/WebContext.cpp
@@ -81,6 +81,7 @@ WebContext::WebContext(ProcessModel processModel, const String& injectedBundlePa
     , m_defaultPageGroup(WebPageGroup::create())
     , m_injectedBundlePath(injectedBundlePath)
     , m_visitedLinkProvider(this)
+    , m_alwaysUsesComplexTextCodePath(false)
     , m_cacheModel(CacheModelDocumentViewer)
     , m_clearResourceCachesForNewWebProcess(false)
     , m_clearApplicationCacheForNewWebProcess(false)
@@ -171,6 +172,8 @@ void WebContext::ensureWebProcess()
     copyToVector(m_schemesToRegisterAsSecure, parameters.urlSchemesRegisteredAsSecure);
     copyToVector(m_schemesToSetDomainRelaxationForbiddenFor, parameters.urlSchemesForWhichDomainRelaxationIsForbidden);
 
+    parameters.shouldAlwaysUseComplexTextCodePath = m_alwaysUsesComplexTextCodePath;
+
     // Add any platform specific parameters
     platformInitializeWebProcess(parameters);
 
@@ -308,6 +311,16 @@ void WebContext::setAdditionalPluginsDirectory(const String& directory)
     m_pluginInfoStore.setAdditionalPluginsDirectories(directories);
 }
 
+void WebContext::setAlwaysUsesComplexTextCodePath(bool alwaysUseComplexText)
+{
+    m_alwaysUsesComplexTextCodePath = alwaysUseComplexText;
+
+    if (!hasValidProcess())
+        return;
+
+    m_process->send(Messages::WebProcess::SetAlwaysUsesComplexTextCodePath(alwaysUseComplexText), 0);
+}
+
 void WebContext::registerURLSchemeAsEmptyDocument(const String& urlScheme)
 {
     m_schemesToRegisterAsEmptyDocument.add(urlScheme);
diff --git a/WebKit2/UIProcess/WebContext.h b/WebKit2/UIProcess/WebContext.h
index 70b42f2..860e775 100644
--- a/WebKit2/UIProcess/WebContext.h
+++ b/WebKit2/UIProcess/WebContext.h
@@ -91,6 +91,8 @@ public:
 
     PluginInfoStore* pluginInfoStore() { return &m_pluginInfoStore; }
     String applicationCacheDirectory();
+
+    void setAlwaysUsesComplexTextCodePath(bool);
     
     void registerURLSchemeAsEmptyDocument(const String&);
     void registerURLSchemeAsSecure(const String&);
@@ -173,6 +175,8 @@ private:
     HashSet<String> m_schemesToRegisterAsSecure;
     HashSet<String> m_schemesToSetDomainRelaxationForbiddenFor;
 
+    bool m_alwaysUsesComplexTextCodePath;
+
     Vector<pair<String, RefPtr<APIObject> > > m_pendingMessagesToPostToInjectedBundle;
 
     CacheModel m_cacheModel;
diff --git a/WebKit2/WebProcess/WebProcess.cpp b/WebKit2/WebProcess/WebProcess.cpp
index 7a7376e..5453742 100644
--- a/WebKit2/WebProcess/WebProcess.cpp
+++ b/WebKit2/WebProcess/WebProcess.cpp
@@ -44,6 +44,7 @@
 #include "WebProcessProxyMessages.h"
 #include <WebCore/ApplicationCacheStorage.h>
 #include <WebCore/CrossOriginPreflightResultCache.h>
+#include <WebCore/Font.h>
 #include <WebCore/Language.h>
 #include <WebCore/Page.h>
 #include <WebCore/PageGroup.h>
@@ -176,6 +177,9 @@ void WebProcess::initializeWebProcess(const WebProcessCreationParameters& parame
         clearResourceCaches();
     if (parameters.clearApplicationCache)
         clearApplicationCache();
+
+    if (parameters.shouldAlwaysUseComplexTextCodePath)
+        setAlwaysUsesComplexTextCodePath(true);
 }
 
 void WebProcess::setShouldTrackVisitedLinks(bool shouldTrackVisitedLinks)
@@ -198,6 +202,11 @@ void WebProcess::setDomainRelaxationForbiddenForURLScheme(const String& urlSchem
     SecurityOrigin::setDomainRelaxationForbiddenForURLScheme(true, urlScheme);
 }
 
+void WebProcess::setAlwaysUsesComplexTextCodePath(bool alwaysUseComplexText)
+{
+    Font::setCodePath(alwaysUseComplexText ? Font::Complex : Font::Auto);
+}
+
 void WebProcess::languageChanged(const String& language) const
 {
     overrideDefaultLanguage(language);
diff --git a/WebKit2/WebProcess/WebProcess.h b/WebKit2/WebProcess/WebProcess.h
index 9ad4a1f..d4c0074 100644
--- a/WebKit2/WebProcess/WebProcess.h
+++ b/WebKit2/WebProcess/WebProcess.h
@@ -111,6 +111,7 @@ private:
     void registerURLSchemeAsEmptyDocument(const String&);
     void registerURLSchemeAsSecure(const String&) const;
     void setDomainRelaxationForbiddenForURLScheme(const String&) const;
+    void setAlwaysUsesComplexTextCodePath(bool);
     void languageChanged(const String&) const;
 #if PLATFORM(WIN)
     void setShouldPaintNativeControls(bool);
diff --git a/WebKit2/WebProcess/WebProcess.messages.in b/WebKit2/WebProcess/WebProcess.messages.in
index 1b63496..39ad06f 100644
--- a/WebKit2/WebProcess/WebProcess.messages.in
+++ b/WebKit2/WebProcess/WebProcess.messages.in
@@ -38,6 +38,7 @@ messages -> WebProcess {
     RegisterURLSchemeAsEmptyDocument(WTF::String scheme)
     RegisterURLSchemeAsSecure(WTF::String scheme)
     SetDomainRelaxationForbiddenForURLScheme(WTF::String scheme)
+    SetAlwaysUsesComplexTextCodePath(bool alwaysUseComplexText)
     LanguageChanged(WTF::String language)
 #if PLATFORM(WIN)
     SetShouldPaintNativeControls(bool shouldPaintNativeControls)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list