Changeset 228697 in webkit


Ignore:
Timestamp:
Feb 19, 2018 10:47:30 AM (6 years ago)
Author:
timothy_horton@apple.com
Message:

Increase text autosizing constants for extra zoom mode
https://bugs.webkit.org/show_bug.cgi?id=182919
<rdar://problem/37671259>

Reviewed by Wenson Hsieh.

  • page/Settings.yaml:
  • page/SettingsBase.cpp:

(WebCore::SettingsBase::defaultMinimumZoomFontSize):
(WebCore::SettingsBase::defaultOneLineTextMultiplierCoefficient):
(WebCore::SettingsBase::defaultMultiLineTextMultiplierCoefficient):
(WebCore::SettingsBase::defaultMaxTextAutosizingScaleIncrease):

  • page/SettingsBase.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::oneLineTextMultiplier):
(WebCore::textMultiplier):
(WebCore::RenderBlockFlow::adjustComputedFontSizes):

  • rendering/TextAutoSizing.cpp:

(WebCore::TextAutoSizingValue::adjustTextNodeSizes):
Make autosizing constants settings, and change their default values.

Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r228694 r228697  
     12018-02-19  Tim Horton  <timothy_horton@apple.com>
     2
     3        Increase text autosizing constants for extra zoom mode
     4        https://bugs.webkit.org/show_bug.cgi?id=182919
     5        <rdar://problem/37671259>
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        * page/Settings.yaml:
     10        * page/SettingsBase.cpp:
     11        (WebCore::SettingsBase::defaultMinimumZoomFontSize):
     12        (WebCore::SettingsBase::defaultOneLineTextMultiplierCoefficient):
     13        (WebCore::SettingsBase::defaultMultiLineTextMultiplierCoefficient):
     14        (WebCore::SettingsBase::defaultMaxTextAutosizingScaleIncrease):
     15        * page/SettingsBase.h:
     16        * rendering/RenderBlockFlow.cpp:
     17        (WebCore::oneLineTextMultiplier):
     18        (WebCore::textMultiplier):
     19        (WebCore::RenderBlockFlow::adjustComputedFontSizes):
     20        * rendering/TextAutoSizing.cpp:
     21        (WebCore::TextAutoSizingValue::adjustTextNodeSizes):
     22        Make autosizing constants settings, and change their default values.
     23
    1242018-02-17  Antoine Quint  <graouts@apple.com>
    225
  • trunk/Source/WebCore/page/Settings.yaml

    r228486 r228697  
    712712  conditional: TOUCH_EVENTS
    713713
     714oneLineTextMultiplierCoefficient:
     715  type: float
     716  initial: defaultOneLineTextMultiplierCoefficient()
     717  conditional: TEXT_AUTOSIZING
     718
     719multiLineTextMultiplierCoefficient:
     720  type: float
     721  initial: defaultMultiLineTextMultiplierCoefficient()
     722  conditional: TEXT_AUTOSIZING
     723
     724maxTextAutosizingScaleIncrease:
     725  type: float
     726  initial: defaultMaxTextAutosizingScaleIncrease()
     727  conditional: TEXT_AUTOSIZING
     728
    714729mediaCapabilitiesEnabled:
    715730  initial: false
  • trunk/Source/WebCore/page/SettingsBase.cpp

    r223728 r228697  
    8080float SettingsBase::defaultMinimumZoomFontSize()
    8181{
     82#if ENABLE(EXTRA_ZOOM_MODE)
     83    return 30;
     84#else
    8285    return 15;
     86#endif
    8387}
    8488
     
    8993}
    9094#endif
     95
     96float SettingsBase::defaultOneLineTextMultiplierCoefficient()
     97{
     98#if ENABLE(EXTRA_ZOOM_MODE)
     99    return 2.23125f;
     100#else
     101    return 1.7f;
     102#endif
     103}
     104
     105float SettingsBase::defaultMultiLineTextMultiplierCoefficient()
     106{
     107#if ENABLE(EXTRA_ZOOM_MODE)
     108    return 2.48125f;
     109#else
     110    return 1.95f;
     111#endif
     112}
     113
     114float SettingsBase::defaultMaxTextAutosizingScaleIncrease()
     115{
     116#if ENABLE(EXTRA_ZOOM_MODE)
     117    return 5.0f;
     118#else
     119    return 1.7f;
     120#endif
     121}
    91122
    92123#if !PLATFORM(COCOA)
  • trunk/Source/WebCore/page/SettingsBase.h

    r228218 r228697  
    115115    WEBCORE_EXPORT static bool defaultTextAutosizingEnabled();
    116116    WEBCORE_EXPORT static float defaultMinimumZoomFontSize();
     117    WEBCORE_EXPORT static float defaultOneLineTextMultiplierCoefficient();
     118    WEBCORE_EXPORT static float defaultMultiLineTextMultiplierCoefficient();
     119    WEBCORE_EXPORT static float defaultMaxTextAutosizingScaleIncrease();
    117120
    118121    static const unsigned defaultMaximumHTMLParserDOMTreeDepth = 512;
  • trunk/Source/WebCore/rendering/RenderBlockFlow.cpp

    r228595 r228697  
    37253725}
    37263726
    3727 //  For now, we auto size single lines of text the same as multiple lines.
    3728 //  We've been experimenting with low values for single lines of text.
    3729 static inline float oneLineTextMultiplier(float specifiedSize)
    3730 {
    3731     return std::max((1.0f / log10f(specifiedSize) * 1.7f), 1.0f);
    3732 }
    3733 
    3734 static inline float textMultiplier(float specifiedSize)
    3735 {
    3736     return std::max((1.0f / log10f(specifiedSize) * 1.95f), 1.0f);
     3727// For now, we auto size single lines of text the same as multiple lines.
     3728// We've been experimenting with low values for single lines of text.
     3729static inline float oneLineTextMultiplier(RenderObject& renderer, float specifiedSize)
     3730{
     3731    const float coefficient = renderer.settings().oneLineTextMultiplierCoefficient();
     3732    return std::max((1.0f / log10f(specifiedSize) * coefficient), 1.0f);
     3733}
     3734
     3735static inline float textMultiplier(RenderObject& renderer, float specifiedSize)
     3736{
     3737    const float coefficient = renderer.settings().multiLineTextMultiplierCoefficient();
     3738    return std::max((1.0f / log10f(specifiedSize) * coefficient), 1.0f);
    37373739}
    37383740
     
    37883790                m_widthForTextAutosizing = actualWidth;
    37893791
    3790             float lineTextMultiplier = lineCount == ONE_LINE ? oneLineTextMultiplier(specifiedSize) : textMultiplier(specifiedSize);
     3792            float lineTextMultiplier = lineCount == ONE_LINE ? oneLineTextMultiplier(text, specifiedSize) : textMultiplier(text, specifiedSize);
    37913793            float candidateNewSize = roundf(std::min(minFontSize, specifiedSize * lineTextMultiplier));
    37923794            if (candidateNewSize > specifiedSize && candidateNewSize != fontDescription.computedSize() && text.textNode() && oldStyle.textSizeAdjust().isAuto())
  • trunk/Source/WebCore/rendering/TextAutoSizing.cpp

    r226179 r228697  
    3838#include "RenderTextFragment.h"
    3939#include "RenderTreeBuilder.h"
     40#include "Settings.h"
    4041#include "StyleResolver.h"
    4142
     
    6869    m_autoSizedNodes.add(&node);
    6970}
    70 
    71 static const float maxScaleIncrease = 1.7f;
    7271
    7372auto TextAutoSizingValue::adjustTextNodeSizes() -> StillHasNodes
     
    109108
    110109        float specifiedSize = renderer.style().fontDescription().specifiedSize();
     110        float maxScaleIncrease = renderer.settings().maxTextAutosizingScaleIncrease();
    111111        float scaleChange = averageSize / specifiedSize;
    112112        if (scaleChange > maxScaleIncrease && firstPass) {
Note: See TracChangeset for help on using the changeset viewer.