Changeset 74283 in webkit


Ignore:
Timestamp:
Dec 17, 2010 11:45:12 AM (13 years ago)
Author:
mitz@apple.com
Message:

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.
Location:
trunk/WebKit2
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit2/ChangeLog

    r74282 r74283  
     12010-12-17  Dan Bernstein  <mitz@apple.com>
     2
     3        Reviewed by Darin Adler.
     4
     5        Add API for "Always Use the Complex Text Code Path"
     6        https://bugs.webkit.org/show_bug.cgi?id=51265
     7
     8        * Shared/WebProcessCreationParameters.cpp:
     9        (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Initialize shouldAlwaysUseComplexTextCodePath.
     10        (WebKit::WebProcessCreationParameters::encode): Encode shouldAlwaysUseComplexTextCodePath.
     11        (WebKit::WebProcessCreationParameters::decode): Decode shouldAlwaysUseComplexTextCodePath.
     12        * Shared/WebProcessCreationParameters.h:
     13        * UIProcess/API/C/WKContext.cpp:
     14        (_WKContextSetAlwaysUsesComplexTextCodePath): Added.
     15        * UIProcess/API/C/WKContextPrivate.h:
     16        * UIProcess/WebContext.cpp:
     17        (WebKit::WebContext::WebContext): Initialize m_alwaysUsesComplexTextCodePath.
     18        (WebKit::WebContext::ensureWebProcess): Set shouldAlwaysUseComplexTextCodePath in the creation parameters.
     19        (WebKit::WebContext::setAlwaysUsesComplexTextCodePath): Added. Sets m_alwaysUsesComplexTextCodePath and
     20        sends a message to the WebProcess.
     21        * UIProcess/WebContext.h:
     22        * WebProcess/WebProcess.cpp:
     23        (WebKit::WebProcess::initializeWebProcess): Call setAlwaysUsesComplexTextCodePath() based on the creation
     24        parameters.
     25        (WebKit::WebProcess::setAlwaysUsesComplexTextCodePath): Added.
     26        * WebProcess/WebProcess.h:
     27        * WebProcess/WebProcess.messages.in: Added SetAlwaysUsesComplexTextCodePath.
     28
    1292010-12-17  Sam Weinig  <sam@webkit.org>
    230
  • trunk/WebKit2/Shared/WebProcessCreationParameters.cpp

    r74219 r74283  
    3232WebProcessCreationParameters::WebProcessCreationParameters()
    3333    : shouldTrackVisitedLinks(false)
     34    , shouldAlwaysUseComplexTextCodePath(false)
    3435#if PLATFORM(MAC)
    3536    , nsURLCacheMemoryCapacity(0)
     
    5253    encoder->encodeEnum(cacheModel);
    5354    encoder->encode(shouldTrackVisitedLinks);
     55    encoder->encode(shouldAlwaysUseComplexTextCodePath);
    5456    encoder->encode(languageCode);
    5557#if PLATFORM(MAC)
     
    8385    if (!decoder->decode(parameters.shouldTrackVisitedLinks))
    8486        return false;
     87    if (!decoder->decode(parameters.shouldAlwaysUseComplexTextCodePath))
     88        return false;
    8589    if (!decoder->decode(parameters.languageCode))
    8690        return false;
  • trunk/WebKit2/Shared/WebProcessCreationParameters.h

    r74219 r74283  
    6666    bool clearApplicationCache;
    6767
     68    bool shouldAlwaysUseComplexTextCodePath;
     69
    6870    String languageCode;
    6971
  • trunk/WebKit2/UIProcess/API/C/WKContext.cpp

    r73816 r74283  
    117117}
    118118
     119void _WKContextSetAlwaysUsesComplexTextCodePath(WKContextRef contextRef, bool alwaysUseComplexTextCodePath)
     120{
     121    toImpl(contextRef)->setAlwaysUsesComplexTextCodePath(alwaysUseComplexTextCodePath);
     122}
     123
    119124void _WKContextSetAdditionalPluginsDirectory(WKContextRef contextRef, WKStringRef pluginsDirectory)
    120125{
  • trunk/WebKit2/UIProcess/API/C/WKContextPrivate.h

    r73816 r74283  
    4949WK_EXPORT void _WKContextRegisterURLSchemeAsEmptyDocument(WKContextRef context, WKStringRef urlScheme);
    5050
     51WK_EXPORT void _WKContextSetAlwaysUsesComplexTextCodePath(WKContextRef context, bool alwaysUseComplexTextCodePath);
     52
    5153WK_EXPORT void WKContextRegisterURLSchemeAsSecure(WKContextRef context, WKStringRef urlScheme);
    5254
  • trunk/WebKit2/UIProcess/WebContext.cpp

    r73986 r74283  
    8282    , m_injectedBundlePath(injectedBundlePath)
    8383    , m_visitedLinkProvider(this)
     84    , m_alwaysUsesComplexTextCodePath(false)
    8485    , m_cacheModel(CacheModelDocumentViewer)
    8586    , m_clearResourceCachesForNewWebProcess(false)
     
    172173    copyToVector(m_schemesToSetDomainRelaxationForbiddenFor, parameters.urlSchemesForWhichDomainRelaxationIsForbidden);
    173174
     175    parameters.shouldAlwaysUseComplexTextCodePath = m_alwaysUsesComplexTextCodePath;
     176
    174177    // Add any platform specific parameters
    175178    platformInitializeWebProcess(parameters);
     
    307310
    308311    m_pluginInfoStore.setAdditionalPluginsDirectories(directories);
     312}
     313
     314void WebContext::setAlwaysUsesComplexTextCodePath(bool alwaysUseComplexText)
     315{
     316    m_alwaysUsesComplexTextCodePath = alwaysUseComplexText;
     317
     318    if (!hasValidProcess())
     319        return;
     320
     321    m_process->send(Messages::WebProcess::SetAlwaysUsesComplexTextCodePath(alwaysUseComplexText), 0);
    309322}
    310323
  • trunk/WebKit2/UIProcess/WebContext.h

    r73986 r74283  
    9292    PluginInfoStore* pluginInfoStore() { return &m_pluginInfoStore; }
    9393    String applicationCacheDirectory();
     94
     95    void setAlwaysUsesComplexTextCodePath(bool);
    9496   
    9597    void registerURLSchemeAsEmptyDocument(const String&);
     
    174176    HashSet<String> m_schemesToSetDomainRelaxationForbiddenFor;
    175177
     178    bool m_alwaysUsesComplexTextCodePath;
     179
    176180    Vector<pair<String, RefPtr<APIObject> > > m_pendingMessagesToPostToInjectedBundle;
    177181
  • trunk/WebKit2/WebProcess/WebProcess.cpp

    r74219 r74283  
    4545#include <WebCore/ApplicationCacheStorage.h>
    4646#include <WebCore/CrossOriginPreflightResultCache.h>
     47#include <WebCore/Font.h>
    4748#include <WebCore/Language.h>
    4849#include <WebCore/Page.h>
     
    177178    if (parameters.clearApplicationCache)
    178179        clearApplicationCache();
     180
     181    if (parameters.shouldAlwaysUseComplexTextCodePath)
     182        setAlwaysUsesComplexTextCodePath(true);
    179183}
    180184
     
    197201{
    198202    SecurityOrigin::setDomainRelaxationForbiddenForURLScheme(true, urlScheme);
     203}
     204
     205void WebProcess::setAlwaysUsesComplexTextCodePath(bool alwaysUseComplexText)
     206{
     207    Font::setCodePath(alwaysUseComplexText ? Font::Complex : Font::Auto);
    199208}
    200209
  • trunk/WebKit2/WebProcess/WebProcess.h

    r73796 r74283  
    112112    void registerURLSchemeAsSecure(const String&) const;
    113113    void setDomainRelaxationForbiddenForURLScheme(const String&) const;
     114    void setAlwaysUsesComplexTextCodePath(bool);
    114115    void languageChanged(const String&) const;
    115116#if PLATFORM(WIN)
  • trunk/WebKit2/WebProcess/WebProcess.messages.in

    r74224 r74283  
    3939    RegisterURLSchemeAsSecure(WTF::String scheme)
    4040    SetDomainRelaxationForbiddenForURLScheme(WTF::String scheme)
     41    SetAlwaysUsesComplexTextCodePath(bool alwaysUseComplexText)
    4142    LanguageChanged(WTF::String language)
    4243#if PLATFORM(WIN)
Note: See TracChangeset for help on using the changeset viewer.