Changeset 129097 in webkit


Ignore:
Timestamp:
Sep 19, 2012 11:55:54 PM (12 years ago)
Author:
mitz@apple.com
Message:

Source/WebCore: WebCore part of adding a setting and API for disabling screen font substitution
https://bugs.webkit.org/show_bug.cgi?id=97168

Reviewed by Tim Horton.

  • WebCore.exp.in: Added an entry for Settings::setScreenFontSubstitutionEnabled.
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::collectMatchingRulesForList): Changed to use printer fonts if
screen font substitution is not enabled.

  • page/Settings.cpp:

(WebCore::Settings::Settings): Added initializer for new m_screenFontSubstitutionEnabled
member variable. The initial value is true, matching existing behavior.
(WebCore::Settings::setScreenFontSubstitutionEnabled): Added this setter, which updated the
member variable and forces a style recalc in all pages using this Settings.

  • page/Settings.h:

(Settings): Added m_screenFontSubstitutionEnabled boolean member variable.
(WebCore::Settings::screenFontSubstitutionEnabled): Added this getter.

Source/WebKit/mac: WebKit/mac part of adding a setting and API for disabling screen font substitution
https://bugs.webkit.org/show_bug.cgi?id=97168

Reviewed by Tim Horton.

  • WebView/WebPreferenceKeysPrivate.h: Defined WebKitScreenFontSubstitutionEnabledKey.
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Added a default value of YES for the new preference key.
(-[WebPreferences setScreenFontSubstitutionEnabled:]): Added this setter.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Added a call to Settings::setScreenFontSubstitutionEnabled
to push the preference down to Settings.

Source/WebKit2: WebKit2 part of adding a setting and API for disabling screen font substitution
https://bugs.webkit.org/show_bug.cgi?id=97168

Reviewed by Tim Horton.

  • Shared/WebPreferencesStore.h:

(WebKit): Defined ScreenFontSubstitutionEnabled key with a default value of true.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetScreenFontSubstitutionEnabled): Added this setter.
(WKPreferencesGetScreenFontSubstitutionEnabled): Added this getter.

  • UIProcess/API/C/WKPreferencesPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences): Added a call to Settings::setScreenFontSubstitutionEnabled
to push the preference into Settings.

Location:
trunk/Source
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r129095 r129097  
     12012-09-19  Dan Bernstein  <mitz@apple.com>
     2
     3        WebCore part of adding a setting and API for disabling screen font substitution
     4        https://bugs.webkit.org/show_bug.cgi?id=97168
     5
     6        Reviewed by Tim Horton.
     7
     8        * WebCore.exp.in: Added an entry for Settings::setScreenFontSubstitutionEnabled.
     9        * css/StyleResolver.cpp:
     10        (WebCore::StyleResolver::collectMatchingRulesForList): Changed to use printer fonts if
     11        screen font substitution is not enabled.
     12        * page/Settings.cpp:
     13        (WebCore::Settings::Settings): Added initializer for new m_screenFontSubstitutionEnabled
     14        member variable. The initial value is true, matching existing behavior.
     15        (WebCore::Settings::setScreenFontSubstitutionEnabled): Added this setter, which updated the
     16        member variable and forces a style recalc in all pages using this Settings.
     17        * page/Settings.h:
     18        (Settings): Added m_screenFontSubstitutionEnabled boolean member variable.
     19        (WebCore::Settings::screenFontSubstitutionEnabled): Added this getter.
     20
    1212012-09-19  Yoshifumi Inoue  <yosin@chromium.org>
    222
  • trunk/Source/WebCore/WebCore.exp.in

    r128989 r129097  
    915915__ZN7WebCore8Settings32setAcceleratedCompositingEnabledEb
    916916__ZN7WebCore8Settings32setNeedsAdobeFrameReloadingQuirkEb
     917__ZN7WebCore8Settings32setScreenFontSubstitutionEnabledEb
    917918__ZN7WebCore8Settings32setShowsToolTipOverTruncatedTextEb
    918919__ZN7WebCore8Settings33setDownloadableBinaryFontsEnabledEb
  • trunk/Source/WebCore/css/StyleResolver.cpp

    r128762 r129097  
    17131713
    17141714    FontDescription fontDescription;
    1715     fontDescription.setUsePrinterFont(document->printing());
    17161715    fontDescription.setScript(localeToScriptCodeForFontSelection(documentStyle->locale()));
    17171716    if (Settings* settings = document->settings()) {
     1717        fontDescription.setUsePrinterFont(document->printing() || !settings->screenFontSubstitutionEnabled());
    17181718        fontDescription.setRenderingMode(settings->fontRenderingMode());
    17191719        const AtomicString& standardFont = settings->standardFontFamily(fontDescription.script());
     
    17281728        bool useSVGZoomRules = document->isSVGDocument();
    17291729        fontDescription.setComputedSize(StyleResolver::getComputedSizeFromSpecifiedSize(document, documentStyle.get(), fontDescription.isAbsoluteSize(), size, useSVGZoomRules));
    1730     }
     1730    } else
     1731        fontDescription.setUsePrinterFont(document->printing());
    17311732
    17321733    documentStyle->setFontDescription(fontDescription);
     
    37293730                    return;
    37303731                fontDescription.setRenderingMode(settings->fontRenderingMode());
    3731                 fontDescription.setUsePrinterFont(m_checker.document()->printing());
     3732                fontDescription.setUsePrinterFont(m_checker.document()->printing() || !settings->screenFontSubstitutionEnabled());
    37323733
    37333734                // Handle the zoom factor.
     
    46104611    fontDescription.setGenericFamily(FontDescription::StandardFamily);
    46114612    fontDescription.setRenderingMode(settings->fontRenderingMode());
    4612     fontDescription.setUsePrinterFont(m_checker.document()->printing());
     4613    fontDescription.setUsePrinterFont(m_checker.document()->printing() || !settings->screenFontSubstitutionEnabled());
    46134614    const AtomicString& standardFontFamily = documentSettings()->standardFontFamily();
    46144615    if (!standardFontFamily.isEmpty()) {
  • trunk/Source/WebCore/page/Settings.cpp

    r128963 r129097  
    131131    , m_defaultFontSize(0)
    132132    , m_defaultFixedFontSize(0)
     133    , m_screenFontSubstitutionEnabled(true)
    133134    , m_validationMessageTimerMagnification(50)
    134135    , m_minimumAccelerated2dCanvasSize(257 * 256)
     
    419420}
    420421
     422void Settings::setScreenFontSubstitutionEnabled(bool screenFontSubstitutionEnabled)
     423{
     424    if (m_screenFontSubstitutionEnabled == screenFontSubstitutionEnabled)
     425        return;
     426
     427    m_screenFontSubstitutionEnabled = screenFontSubstitutionEnabled;
     428    m_page->setNeedsRecalcStyleInAllFrames();
     429}
     430
    421431#if ENABLE(TEXT_AUTOSIZING)
    422432void Settings::setTextAutosizingEnabled(bool textAutosizingEnabled)
  • trunk/Source/WebCore/page/Settings.h

    r128963 r129097  
    109109        int defaultFixedFontSize() const { return m_defaultFixedFontSize; }
    110110
     111        void setScreenFontSubstitutionEnabled(bool);
     112        bool screenFontSubstitutionEnabled() const { return m_screenFontSubstitutionEnabled; }
     113
    111114#if ENABLE(TEXT_AUTOSIZING)
    112115        void setTextAutosizingEnabled(bool);
     
    656659        int m_defaultFontSize;
    657660        int m_defaultFixedFontSize;
     661        bool m_screenFontSubstitutionEnabled;
    658662        int m_validationMessageTimerMagnification;
    659663        int m_minimumAccelerated2dCanvasSize;
  • trunk/Source/WebKit/mac/ChangeLog

    r128839 r129097  
     12012-09-19  Dan Bernstein  <mitz@apple.com>
     2
     3        WebKit/mac part of adding a setting and API for disabling screen font substitution
     4        https://bugs.webkit.org/show_bug.cgi?id=97168
     5
     6        Reviewed by Tim Horton.
     7
     8        * WebView/WebPreferenceKeysPrivate.h: Defined WebKitScreenFontSubstitutionEnabledKey.
     9        * WebView/WebPreferences.mm:
     10        (+[WebPreferences initialize]): Added a default value of YES for the new preference key.
     11        (-[WebPreferences setScreenFontSubstitutionEnabled:]): Added this setter.
     12        * WebView/WebPreferencesPrivate.h:
     13        * WebView/WebView.mm:
     14        (-[WebView _preferencesChanged:]): Added a call to Settings::setScreenFontSubstitutionEnabled
     15        to push the preference down to Settings.
     16
    1172012-09-17  Dan Bernstein  <mitz@apple.com>
    218
  • trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h

    r123775 r129097  
    126126#define WebKitRequestAnimationFrameEnabledPreferenceKey @"WebKitRequestAnimationFrameEnabled"
    127127#define WebKitDiagnosticLoggingEnabledKey @"WebKitDiagnosticLoggingEnabled"
     128#define WebKitScreenFontSubstitutionEnabledKey @"WebKitScreenFontSubstitutionEnabled"
    128129
    129130// These are private both because callers should be using the cover methods and because the
  • trunk/Source/WebKit/mac/WebView/WebPreferences.mm

    r123775 r129097  
    400400        [NSNumber numberWithBool:NO],   WebKitWantsBalancedSetDefersLoadingBehaviorKey,
    401401        [NSNumber numberWithBool:NO],   WebKitDiagnosticLoggingEnabledKey,
     402        [NSNumber numberWithBool:YES],  WebKitScreenFontSubstitutionEnabledKey,
    402403
    403404        [NSNumber numberWithLongLong:ApplicationCacheStorage::noQuota()], WebKitApplicationCacheTotalQuota,
     
    17401741}
    17411742
     1743- (BOOL)screenFontSubstitutionEnabled
     1744{
     1745    return [self _boolValueForKey:WebKitScreenFontSubstitutionEnabledKey];
     1746}
     1747
     1748- (void)setScreenFontSubstitutionEnabled:(BOOL)enabled
     1749{
     1750    [self _setBoolValue:enabled forKey:WebKitScreenFontSubstitutionEnabledKey];
     1751}
     1752
    17421753@end
    17431754
  • trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h

    r123775 r129097  
    306306- (void)setDiagnosticLoggingEnabled:(BOOL)enabled;
    307307
     308- (BOOL)screenFontSubstitutionEnabled;
     309- (void)setScreenFontSubstitutionEnabled:(BOOL)enabled;
     310
    308311@end
  • trunk/Source/WebKit/mac/WebView/WebView.mm

    r128839 r129097  
    14311431    settings->setFantasyFontFamily([preferences fantasyFontFamily]);
    14321432    settings->setFixedFontFamily([preferences fixedFontFamily]);
     1433    settings->setScreenFontSubstitutionEnabled([preferences screenFontSubstitutionEnabled]);
    14331434    settings->setForceFTPDirectoryListings([preferences _forceFTPDirectoryListings]);
    14341435    settings->setFTPDirectoryTemplatePath([preferences _ftpDirectoryTemplatePath]);
  • trunk/Source/WebKit2/ChangeLog

    r129096 r129097  
     12012-09-19  Dan Bernstein  <mitz@apple.com>
     2
     3        WebKit2 part of adding a setting and API for disabling screen font substitution
     4        https://bugs.webkit.org/show_bug.cgi?id=97168
     5
     6        Reviewed by Tim Horton.
     7
     8        * Shared/WebPreferencesStore.h:
     9        (WebKit): Defined ScreenFontSubstitutionEnabled key with a default value of true.
     10        * UIProcess/API/C/WKPreferences.cpp:
     11        (WKPreferencesSetScreenFontSubstitutionEnabled): Added this setter.
     12        (WKPreferencesGetScreenFontSubstitutionEnabled): Added this getter.
     13        * UIProcess/API/C/WKPreferencesPrivate.h:
     14        * WebProcess/WebPage/WebPage.cpp:
     15        (WebKit::WebPage::updatePreferences): Added a call to Settings::setScreenFontSubstitutionEnabled
     16        to push the preference into Settings.
     17
    1182012-09-19  Jinwoo Song  <jinwoo7.song@samsung.com>
    219
  • trunk/Source/WebKit2/Shared/WebPreferencesStore.h

    r128030 r129097  
    129129    macro(StorageBlockingPolicy, storageBlockingPolicy, UInt32, uint32_t, 0) \
    130130    macro(ScrollAnimatorEnabled, scrollAnimatorEnabled, Bool, bool, DEFAULT_WEBKIT_SCROLL_ANIMATOR_ENABLED) \
     131    macro(ScreenFontSubstitutionEnabled, screenFontSubstitutionEnabled, Bool, bool, true) \
    131132    \
    132133
  • trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp

    r129096 r129097  
    289289}
    290290
     291void WKPreferencesSetScreenFontSubstitutionEnabled(WKPreferencesRef preferencesRef, bool enabled)
     292{
     293    toImpl(preferencesRef)->setScreenFontSubstitutionEnabled(enabled);
     294}
     295
     296bool WKPreferencesGetScreenFontSubstitutionEnabled(WKPreferencesRef preferencesRef)
     297{
     298    return toImpl(preferencesRef)->screenFontSubstitutionEnabled();
     299}
     300
    291301void WKPreferencesSetEditableLinkBehavior(WKPreferencesRef preferencesRef, WKEditableLinkBehavior wkBehavior)
    292302{
  • trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h

    r128030 r129097  
    216216WK_EXPORT bool WKPreferencesGetScrollingPerformanceLoggingEnabled(WKPreferencesRef preferencesRef);
    217217
     218// Defaults to true
     219WK_EXPORT void WKPreferencesSetScreenFontSubstitutionEnabled(WKPreferencesRef preferences, bool enabled);
     220WK_EXPORT bool WKPreferencesGetScreenFontSubstitutionEnabled(WKPreferencesRef preferences);
     221
    218222WK_EXPORT void WKPreferencesResetTestRunnerOverrides(WKPreferencesRef preferencesRef);
    219223
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r129096 r129097  
    20572057    settings->setDefaultFontSize(store.getUInt32ValueForKey(WebPreferencesKey::defaultFontSizeKey()));
    20582058    settings->setDefaultFixedFontSize(store.getUInt32ValueForKey(WebPreferencesKey::defaultFixedFontSizeKey()));
     2059    settings->setScreenFontSubstitutionEnabled(store.getBoolValueForKey(WebPreferencesKey::screenFontSubstitutionEnabledKey()));
    20592060    settings->setLayoutFallbackWidth(store.getUInt32ValueForKey(WebPreferencesKey::layoutFallbackWidthKey()));
    20602061    settings->setDeviceWidth(store.getUInt32ValueForKey(WebPreferencesKey::deviceWidthKey()));
Note: See TracChangeset for help on using the changeset viewer.