[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