Changeset 261940 in webkit


Ignore:
Timestamp:
May 20, 2020 12:19:39 PM (4 years ago)
Author:
mmaxfield@apple.com
Message:

Source/WebCore:
[iPadOS] -webkit-text-size-adjust:percentage doesn't work
https://bugs.webkit.org/show_bug.cgi?id=212122
<rdar://problem/54560875>

Reviewed by Wenson Hsieh.

We've gotten many bug reports that -webkit-text-size-adjust:X% no longer works in
WebKit on iPads. We don't want to just start honoring the value, because our
testing indicates that, with desktop-class browsing on iPad, more sites work better
when we don't honor percentages. However, if Safari is using the mobile content mode,
or if a native app has local content, it should be possible to get the old behavior
of honoring percentages.

This patch adds a new Setting, idempotentModeAutosizingOnlyHonorsPercentages, which
is hooked up to the desktop-class browsing feature. When
WebPageProxy::effectiveContentModeAfterAdjustingPolicies() determines that the
WebContentMode::Mobile mode should be used, it sets the new setting, which
causes idempotent text autosizing mode to have the same behavior that WKWebViews
on iPadOS used to have: -w-t-s-a:auto and -w-t-s-a:none have no effect, but
-w-t-s-a:X% is honored. This affects both Safari and WKWebView apps.

If a native app wants the old behavior, they can set
WKWebpagePreferences.preferredContentMode = WKContentModeMobile to force the old
iPad behavior. It's expected that apps with legacy content would be doing this
anyway.

Tests: fast/text-autosizing/ios/idempotentmode/idempotent-percentage.html

TestWebKitAPI.PreferredContentMode.IdempotentModeAutosizingOnlyHonorsPercentages

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::applyPoliciesToSettings):

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::setIdempotentModeAutosizingOnlyHonorsPercentages):
(WebCore::DocumentLoader::idempotentModeAutosizingOnlyHonorsPercentages const):

  • page/Settings.yaml:
  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustmentForTextAutosizing):

  • style/StyleBuilderCustom.h:

(WebCore::Style::computeBaseSpecifiedFontSize):

  • style/StyleBuilderState.cpp:

(WebCore::Style::BuilderState::updateFontForTextSizeAdjust):

Source/WebKit:
[iPadOS] -webkit-text-size-adjust:percentage doesn't work in native apps
https://bugs.webkit.org/show_bug.cgi?id=212122
<rdar://problem/54560875>

Reviewed by Wenson Hsieh.

  • Shared/WebsitePoliciesData.cpp:

(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):
(WebKit::WebsitePoliciesData::applyToDocumentLoader):

  • Shared/WebsitePoliciesData.h:
  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::copy const):
(API::WebsitePolicies::data):

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

Tools:
[iPadOS] -webkit-text-size-adjust:percentage doesn't work in native apps
https://bugs.webkit.org/show_bug.cgi?id=212122
<rdar://problem/54560875>

Reviewed by Wenson Hsieh.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/idempotent-mode-autosizing-only-honors-percentages.html: Added.
  • TestWebKitAPI/ios/PreferredContentMode.mm:

LayoutTests:
[iPadOS] -webkit-text-size-adjust:percentage doesn't work in native apps
https://bugs.webkit.org/show_bug.cgi?id=212122
<rdar://problem/54560875>

Reviewed by Wenson Hsieh.

Update existing idempotent autosizing tests to force desktop mode.
Also add idempotent-percentage.html which doesn't force any mode.

  • fast/text-autosizing/ios/idempotentmode/css-exposure.html:
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html:
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidate-special-cases.html:
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html:
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-identity.html:
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-reaches-stable-state.html:
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing.html:
  • fast/text-autosizing/ios/idempotentmode/idempotent-percentage-expected.txt: Added.
  • fast/text-autosizing/ios/idempotentmode/idempotent-percentage.html: Added.
  • fast/text-autosizing/ios/idempotentmode/line-height-boosting.html:
  • fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html:
Location:
trunk
Files:
3 added
26 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r261938 r261940  
     12020-05-20  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        [iPadOS] -webkit-text-size-adjust:percentage doesn't work in native apps
     4        https://bugs.webkit.org/show_bug.cgi?id=212122
     5        <rdar://problem/54560875>
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        Update existing idempotent autosizing tests to force desktop mode.
     10        Also add idempotent-percentage.html which doesn't force any mode.
     11
     12        * fast/text-autosizing/ios/idempotentmode/css-exposure.html:
     13        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html:
     14        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidate-special-cases.html:
     15        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html:
     16        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-identity.html:
     17        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-reaches-stable-state.html:
     18        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing.html:
     19        * fast/text-autosizing/ios/idempotentmode/idempotent-percentage-expected.txt: Added.
     20        * fast/text-autosizing/ios/idempotentmode/idempotent-percentage.html: Added.
     21        * fast/text-autosizing/ios/idempotentmode/line-height-boosting.html:
     22        * fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html:
     23
    1242020-05-20  Ryan Haddad  <ryanhaddad@apple.com>
    225
  • trunk/LayoutTests/fast/text-autosizing/ios/idempotentmode/css-exposure.html

    r245838 r261940  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ contentMode=desktop ] -->
    22<html>
    33<head>
  • trunk/LayoutTests/fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html

    r246781 r261940  
    1 <!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true contentMode=mobile ] -->
     1<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true contentMode=desktop ] -->
    22<html>
    33<head>
  • trunk/LayoutTests/fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidate-special-cases.html

    r248112 r261940  
    1 <!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true ] -->
     1<!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true contentMode=desktop ] -->
    22<html>
    33<head>
  • trunk/LayoutTests/fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html

    r247484 r261940  
    1 <!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true ] -->
     1<!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true contentMode=desktop ] -->
    22<html>
    33<head>
  • trunk/LayoutTests/fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-identity.html

    r244682 r261940  
    1 <!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true ] -->
     1<!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true contentMode=desktop ] -->
    22<html>
    33<head>
  • trunk/LayoutTests/fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-reaches-stable-state.html

    r260147 r261940  
    1 <!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true ] -->
     1<!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true contentMode=desktop ] -->
    22<html>
    33<head>
  • trunk/LayoutTests/fast/text-autosizing/ios/idempotentmode/idempotent-autosizing.html

    r244682 r261940  
    1 <!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true ] -->
     1<!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true contentMode=desktop ] -->
    22<html>
    33<head>
  • trunk/LayoutTests/fast/text-autosizing/ios/idempotentmode/line-height-boosting.html

    r249686 r261940  
    1 <!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true ] -->
     1<!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true contentMode=desktop ] -->
    22<html>
    33<head>
  • trunk/LayoutTests/fast/text-autosizing/ios/idempotentmode/viewport-change-relayout.html

    r257651 r261940  
    1 <!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true ] -->
     1<!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true contentMode=desktop ] -->
    22<html>
    33<head>
  • trunk/Source/WebCore/ChangeLog

    r261939 r261940  
     12020-05-20  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        [iPadOS] -webkit-text-size-adjust:percentage doesn't work
     4        https://bugs.webkit.org/show_bug.cgi?id=212122
     5        <rdar://problem/54560875>
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        We've gotten many bug reports that -webkit-text-size-adjust:X% no longer works in
     10        WebKit on iPads. We don't want to just start honoring the value, because our
     11        testing indicates that, with desktop-class browsing on iPad, more sites work better
     12        when we don't honor percentages. However, if Safari is using the mobile content mode,
     13        or if a native app has local content, it should be possible to get the old behavior
     14        of honoring percentages.
     15
     16        This patch adds a new Setting, idempotentModeAutosizingOnlyHonorsPercentages, which
     17        is hooked up to the desktop-class browsing feature. When
     18        WebPageProxy::effectiveContentModeAfterAdjustingPolicies() determines that the
     19        WebContentMode::Mobile mode should be used, it sets the new setting, which
     20        causes idempotent text autosizing mode to have the same behavior that WKWebViews
     21        on iPadOS used to have: -w-t-s-a:auto and -w-t-s-a:none have no effect, but
     22        -w-t-s-a:X% is honored. This affects both Safari and WKWebView apps.
     23
     24        If a native app wants the old behavior, they can set
     25        WKWebpagePreferences.preferredContentMode = WKContentModeMobile to force the old
     26        iPad behavior. It's expected that apps with legacy content would be doing this
     27        anyway.
     28
     29        Tests: fast/text-autosizing/ios/idempotentmode/idempotent-percentage.html
     30               TestWebKitAPI.PreferredContentMode.IdempotentModeAutosizingOnlyHonorsPercentages
     31
     32        * loader/DocumentLoader.cpp:
     33        (WebCore::DocumentLoader::applyPoliciesToSettings):
     34        * loader/DocumentLoader.h:
     35        (WebCore::DocumentLoader::setIdempotentModeAutosizingOnlyHonorsPercentages):
     36        (WebCore::DocumentLoader::idempotentModeAutosizingOnlyHonorsPercentages const):
     37        * page/Settings.yaml:
     38        * style/StyleAdjuster.cpp:
     39        (WebCore::Style::Adjuster::adjustmentForTextAutosizing):
     40        * style/StyleBuilderCustom.h:
     41        (WebCore::Style::computeBaseSpecifiedFontSize):
     42        * style/StyleBuilderState.cpp:
     43        (WebCore::Style::BuilderState::updateFontForTextSizeAdjust):
     44
    1452020-05-20  ChangSeok Oh  <changseok@webkit.org>
    246
  • trunk/Source/WebCore/loader/DocumentLoader.cpp

    r261597 r261940  
    12401240    m_frame->settings().setMediaSourceEnabled(m_mediaSourcePolicy == MediaSourcePolicy::Default ? Settings::platformDefaultMediaSourceEnabled() : m_mediaSourcePolicy == MediaSourcePolicy::Enable);
    12411241#endif
     1242#if ENABLE(TEXT_AUTOSIZING)
     1243    m_frame->settings().setIdempotentModeAutosizingOnlyHonorsPercentages(m_idempotentModeAutosizingOnlyHonorsPercentages);
     1244#endif
    12421245}
    12431246
  • trunk/Source/WebCore/loader/DocumentLoader.h

    r261640 r261940  
    415415    bool allowContentChangeObserverQuirk() const { return m_allowContentChangeObserverQuirk; }
    416416
     417    void setIdempotentModeAutosizingOnlyHonorsPercentages(bool idempotentModeAutosizingOnlyHonorsPercentages) { m_idempotentModeAutosizingOnlyHonorsPercentages = idempotentModeAutosizingOnlyHonorsPercentages; }
     418    bool idempotentModeAutosizingOnlyHonorsPercentages() const { return m_idempotentModeAutosizingOnlyHonorsPercentages; }
     419
    417420#if ENABLE(SERVICE_WORKER)
    418421    WEBCORE_EXPORT bool setControllingServiceWorkerRegistration(ServiceWorkerRegistrationData&&);
     
    631634    String m_customUserAgentAsSiteSpecificQuirks;
    632635    bool m_allowContentChangeObserverQuirk { false };
     636    bool m_idempotentModeAutosizingOnlyHonorsPercentages { false };
    633637    String m_customNavigatorPlatform;
    634638    bool m_userContentExtensionsEnabled { true };
  • trunk/Source/WebCore/page/Settings.yaml

    r260753 r261940  
    472472  onChange: setNeedsRecalcStyleInAllFrames
    473473  conditional: TEXT_AUTOSIZING
     474idempotentModeAutosizingOnlyHonorsPercentages:
     475  initial: false
     476  onChange: setNeedsRecalcStyleInAllFrames
     477  conditional: TEXT_AUTOSIZING
    474478
    475479subpixelAntialiasedLayerTextEnabled:
  • trunk/Source/WebCore/style/StyleAdjuster.cpp

    r261820 r261940  
    638638
    639639    auto& document = element.document();
    640     if (!document.settings().textAutosizingEnabled() || !document.settings().textAutosizingUsesIdempotentMode())
     640    if (!document.settings().textAutosizingEnabled()
     641        || !document.settings().textAutosizingUsesIdempotentMode()
     642        || document.settings().idempotentModeAutosizingOnlyHonorsPercentages())
    641643        return adjustmentForTextAutosizing;
    642644
  • trunk/Source/WebCore/style/StyleBuilderCustom.h

    r259703 r261940  
    622622        result *= frame->textZoomFactor();
    623623    result *= style.effectiveZoom();
    624     if (percentageAutosizingEnabled && !document.settings().textAutosizingUsesIdempotentMode())
     624    if (percentageAutosizingEnabled
     625        && (!document.settings().textAutosizingUsesIdempotentMode() || document.settings().idempotentModeAutosizingOnlyHonorsPercentages()))
    625626        result *= style.textSizeAdjust().multiplier();
    626627    return result;
  • trunk/Source/WebCore/style/StyleBuilderState.cpp

    r260707 r261940  
    376376    if (m_style.textSizeAdjust().isAuto()
    377377        || !document().settings().textAutosizingEnabled()
    378         || (document().settings().textAutosizingUsesIdempotentMode() && !m_style.textSizeAdjust().isNone()))
     378        || (document().settings().textAutosizingUsesIdempotentMode()
     379            && !m_style.textSizeAdjust().isNone()
     380            && !document().settings().idempotentModeAutosizingOnlyHonorsPercentages()))
    379381        return;
    380382
  • trunk/Source/WebKit/ChangeLog

    r261935 r261940  
     12020-05-20  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        [iPadOS] -webkit-text-size-adjust:percentage doesn't work in native apps
     4        https://bugs.webkit.org/show_bug.cgi?id=212122
     5        <rdar://problem/54560875>
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        * Shared/WebsitePoliciesData.cpp:
     10        (WebKit::WebsitePoliciesData::encode const):
     11        (WebKit::WebsitePoliciesData::decode):
     12        (WebKit::WebsitePoliciesData::applyToDocumentLoader):
     13        * Shared/WebsitePoliciesData.h:
     14        * UIProcess/API/APIWebsitePolicies.cpp:
     15        (API::WebsitePolicies::copy const):
     16        (API::WebsitePolicies::data):
     17        * UIProcess/API/APIWebsitePolicies.h:
     18        * UIProcess/ios/WebPageProxyIOS.mm:
     19        (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):
     20
    1212020-05-20  Kate Cheney  <katherine_cheney@apple.com>
    222
  • trunk/Source/WebKit/Shared/WebsitePoliciesData.cpp

    r261640 r261940  
    5555    encoder << allowsContentJavaScript;
    5656    encoder << mouseEventPolicy;
     57    encoder << idempotentModeAutosizingOnlyHonorsPercentages;
    5758}
    5859
     
    139140    decoder >> mouseEventPolicy;
    140141    if (!mouseEventPolicy)
     142        return WTF::nullopt;
     143
     144    Optional<bool> idempotentModeAutosizingOnlyHonorsPercentages;
     145    decoder >> idempotentModeAutosizingOnlyHonorsPercentages;
     146    if (!idempotentModeAutosizingOnlyHonorsPercentages)
    141147        return WTF::nullopt;
    142148
     
    160166        WTFMove(*allowsContentJavaScript),
    161167        WTFMove(*mouseEventPolicy),
     168        WTFMove(*idempotentModeAutosizingOnlyHonorsPercentages),
    162169    } };
    163170}
     
    282289
    283290    documentLoader.setAllowContentChangeObserverQuirk(websitePolicies.allowContentChangeObserverQuirk);
     291    documentLoader.setIdempotentModeAutosizingOnlyHonorsPercentages(websitePolicies.idempotentModeAutosizingOnlyHonorsPercentages);
    284292
    285293    auto* frame = documentLoader.frame();
  • trunk/Source/WebKit/Shared/WebsitePoliciesData.h

    r261640 r261940  
    7171    WebCore::AllowsContentJavaScript allowsContentJavaScript { WebCore::AllowsContentJavaScript::Yes };
    7272    WebCore::MouseEventPolicy mouseEventPolicy { WebCore::MouseEventPolicy::Default };
     73    bool idempotentModeAutosizingOnlyHonorsPercentages { false };
    7374
    7475    void encode(IPC::Encoder&) const;
  • trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp

    r261640 r261940  
    5757    policies->setWebsiteDataStore(m_websiteDataStore.get());
    5858    policies->setUserContentController(m_userContentController.get());
     59    policies->setIdempotentModeAutosizingOnlyHonorsPercentages(m_idempotentModeAutosizingOnlyHonorsPercentages);
    5960   
    6061    Vector<WebCore::HTTPHeaderField> legacyCustomHeaderFields;
     
    117118        m_allowContentChangeObserverQuirk,
    118119        m_allowsContentJavaScript,
    119         m_mouseEventPolicy
     120        m_mouseEventPolicy,
     121        m_idempotentModeAutosizingOnlyHonorsPercentages
    120122    };
    121123}
  • trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.h

    r261640 r261940  
    129129    void setMouseEventPolicy(WebCore::MouseEventPolicy policy) { m_mouseEventPolicy = policy; }
    130130
     131    bool idempotentModeAutosizingOnlyHonorsPercentages() const { return m_idempotentModeAutosizingOnlyHonorsPercentages; }
     132    void setIdempotentModeAutosizingOnlyHonorsPercentages(bool idempotentModeAutosizingOnlyHonorsPercentages) { m_idempotentModeAutosizingOnlyHonorsPercentages = idempotentModeAutosizingOnlyHonorsPercentages; }
     133
    131134private:
    132135    bool m_contentBlockersEnabled { true };
     
    154157    WebCore::AllowsContentJavaScript m_allowsContentJavaScript { WebCore::AllowsContentJavaScript::Yes };
    155158    WebCore::MouseEventPolicy m_mouseEventPolicy { WebCore::MouseEventPolicy::Default };
     159    bool m_idempotentModeAutosizingOnlyHonorsPercentages { false };
    156160};
    157161
  • trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm

    r261776 r261940  
    15121512    if (!useDesktopBrowsingMode) {
    15131513        policies.setAllowContentChangeObserverQuirk(true);
     1514        policies.setIdempotentModeAutosizingOnlyHonorsPercentages(true);
    15141515        return WebContentMode::Mobile;
    15151516    }
  • trunk/Tools/ChangeLog

    r261925 r261940  
     12020-05-20  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        [iPadOS] -webkit-text-size-adjust:percentage doesn't work in native apps
     4        https://bugs.webkit.org/show_bug.cgi?id=212122
     5        <rdar://problem/54560875>
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     10        * TestWebKitAPI/Tests/WebKit/idempotent-mode-autosizing-only-honors-percentages.html: Added.
     11        * TestWebKitAPI/ios/PreferredContentMode.mm:
     12
    1132020-05-20  Lauro Moura  <lmoura@igalia.com>
    214
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r261897 r261940  
    110110                1C9EB8411E380DA1005C6442 /* ComplexTextController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C9EB8401E380DA1005C6442 /* ComplexTextController.cpp */; };
    111111                1CACADA1230620AE0007D54C /* WKWebViewOpaque.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1CACADA0230620AD0007D54C /* WKWebViewOpaque.mm */; };
     112                1CC80CEA2474F249004DC489 /* idempotent-mode-autosizing-only-honors-percentages.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 1CC80CE92474F1F7004DC489 /* idempotent-mode-autosizing-only-honors-percentages.html */; };
    112113                1CE6FAC32320267C00E48F6E /* rich-color-filtered.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 1CE6FAC12320264F00E48F6E /* rich-color-filtered.html */; };
    113114                1CF59AE221E68925006E37EC /* ForceLightAppearanceInBundle_Bundle.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1CF59AE021E68925006E37EC /* ForceLightAppearanceInBundle_Bundle.mm */; };
     
    13701371                                937B569E23CD23DB002AE640 /* IDBObjectStoreInfoUpgrade.sqlite3 in Copy Resources */,
    13711372                                93BCBC8423CC6F4400CA2221 /* IDBObjectStoreInfoUpgradeToV2.html in Copy Resources */,
     1373                                1CC80CEA2474F249004DC489 /* idempotent-mode-autosizing-only-honors-percentages.html in Copy Resources */,
    13721374                                F41AB9A41EF4696B0083FA08 /* image-and-contenteditable.html in Copy Resources */,
    13731375                                F4E0A2B42122402B00AF7C7F /* image-and-file-upload.html in Copy Resources */,
     
    16931695                1CACADA0230620AD0007D54C /* WKWebViewOpaque.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebViewOpaque.mm; sourceTree = "<group>"; };
    16941696                1CB9BC371A67482300FE5678 /* WeakPtr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WeakPtr.cpp; sourceTree = "<group>"; };
     1697                1CC80CE92474F1F7004DC489 /* idempotent-mode-autosizing-only-honors-percentages.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "idempotent-mode-autosizing-only-honors-percentages.html"; sourceTree = "<group>"; };
    16951698                1CE6FAC12320264F00E48F6E /* rich-color-filtered.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "rich-color-filtered.html"; sourceTree = "<group>"; };
    16961699                1CF0D3781BBF2F3D00B4EF54 /* WKRetainPtr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKRetainPtr.cpp; sourceTree = "<group>"; };
     
    41074110                                4A410F4D19AF7BEF002EBAC5 /* getUserMediaAudioVideoCapture.html */,
    41084111                                BCBD372E125ABBE600D2C29F /* icon.png */,
     4112                                1CC80CE92474F1F7004DC489 /* idempotent-mode-autosizing-only-honors-percentages.html */,
    41094113                                CE3524F51B142BBB0028A7C5 /* input-focus-blur.html */,
    41104114                                C9B4AD2B1ECA6F7600F5FEA0 /* js-autoplay-audio.html */,
     
    47014705                                7C8BFF7123C0107A00C009B3 /* HexNumber.cpp in Sources */,
    47024706                                7C83DEE01D0A590C00FEBCF3 /* IntegerToStringConversion.cpp in Sources */,
    4703                                 FE2BCDC72470FDA300DEC33B /* StdLibExtras.cpp in Sources */,
    47044707                                53FCDE6B229EFFB900598ECF /* IsoHeap.cpp in Sources */,
    47054708                                7CEB62AB223609DE0069CBB0 /* IteratorRange.cpp in Sources */,
     
    47414744                                7C83DF2A1D0A590C00FEBCF3 /* SHA1.cpp in Sources */,
    47424745                                E373D7911F2CF35200C6FAAF /* Signals.cpp in Sources */,
     4746                                FE2BCDC72470FDA300DEC33B /* StdLibExtras.cpp in Sources */,
    47434747                                7C83DF321D0A590C00FEBCF3 /* StringBuilder.cpp in Sources */,
    47444748                                7CD4C26E1E2C0E6E00929470 /* StringConcatenate.cpp in Sources */,
  • trunk/Tools/TestWebKitAPI/ios/PreferredContentMode.mm

    r260449 r261940  
    436436}
    437437
     438TEST(PreferredContentMode, IdempotentModeAutosizingOnlyHonorsPercentages)
     439{
     440    IPadUserInterfaceSwizzler iPadUserInterface;
     441    {
     442        auto [webView, delegate] = setUpWebViewForPreferredContentModeTesting<WKWebView>(WKContentModeMobile);
     443        [webView loadTestPageNamed:@"idempotent-mode-autosizing-only-honors-percentages" andExpectEffectiveContentMode:WKContentModeMobile withPolicyDecisionHandler:nil];
     444        EXPECT_EQ(static_cast<NSNumber *>([webView objectByEvaluatingJavaScript:@"run1()"]).intValue, 12);
     445        EXPECT_EQ(static_cast<NSNumber *>([webView objectByEvaluatingJavaScript:@"run2()"]).intValue, 6);
     446        EXPECT_EQ(static_cast<NSNumber *>([webView objectByEvaluatingJavaScript:@"run3()"]).intValue, 6);
     447        EXPECT_EQ(static_cast<NSNumber *>([webView objectByEvaluatingJavaScript:@"run4()"]).intValue, 12);
     448    }
     449}
     450
    438451} // namespace TestWebKitAPI
    439452
Note: See TracChangeset for help on using the changeset viewer.