Disable CSSOM View Scrolling API for IMDb iOS app
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 9 Aug 2019 20:20:49 +0000 (20:20 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 9 Aug 2019 20:20:49 +0000 (20:20 +0000)
https://bugs.webkit.org/show_bug.cgi?id=200586
<rdar://problem/53645833>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-08-09
Reviewed by Simon Fraser.

Source/WebCore:

They are calling scrollHeight on the HTML element and it is running new code introduced in r235806
Disable this new feature until they update their app to use the iOS13 SDK.

* platform/RuntimeApplicationChecks.h:
* platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::IOSApplication::isIMDb):

Source/WebKit:

Change the CSSOMViewScrollingAPIEnabled default value to be off for the IMDb app's WKWebViews.
I manually verified this is effective in those WKWebViews but no other WKWebViews and that it fixes the radar.

* Shared/WebPreferences.yaml:
* Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultCSSOMViewScrollingAPIEnabled):
* Shared/WebPreferencesDefaultValues.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248471 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/RuntimeApplicationChecks.h
Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm
Source/WebKit/ChangeLog
Source/WebKit/Shared/WebPreferences.yaml
Source/WebKit/Shared/WebPreferencesDefaultValues.cpp
Source/WebKit/Shared/WebPreferencesDefaultValues.h

index 4385280..1081b30 100644 (file)
@@ -1,3 +1,18 @@
+2019-08-09  Alex Christensen  <achristensen@webkit.org>
+
+        Disable CSSOM View Scrolling API for IMDb iOS app
+        https://bugs.webkit.org/show_bug.cgi?id=200586
+        <rdar://problem/53645833>
+
+        Reviewed by Simon Fraser.
+
+        They are calling scrollHeight on the HTML element and it is running new code introduced in r235806
+        Disable this new feature until they update their app to use the iOS13 SDK.
+
+        * platform/RuntimeApplicationChecks.h:
+        * platform/cocoa/RuntimeApplicationChecksCocoa.mm:
+        (WebCore::IOSApplication::isIMDb):
+
 2019-08-09  Youenn Fablet  <youenn@apple.com>
 
         Remove MediaStreamRegistry
index 351f102..4ce6021 100644 (file)
@@ -43,7 +43,7 @@ inline bool isInWebProcess() { return true; }
 bool isInWebProcess();
 
 WEBCORE_EXPORT void setApplicationSDKVersion(uint32_t);
-uint32_t applicationSDKVersion();
+WEBCORE_EXPORT uint32_t applicationSDKVersion();
 
 WEBCORE_EXPORT void setApplicationBundleIdentifier(const String&);
 String applicationBundleIdentifier();
@@ -78,6 +78,7 @@ namespace IOSApplication {
 
 WEBCORE_EXPORT bool isMobileMail();
 WEBCORE_EXPORT bool isMobileSafari();
+WEBCORE_EXPORT bool isIMDb();
 WEBCORE_EXPORT bool isWebBookmarksD();
 WEBCORE_EXPORT bool isDumpRenderTree();
 bool isMobileStore();
index bcec3d5..53855df 100644 (file)
@@ -208,6 +208,12 @@ bool IOSApplication::isMobileSafari()
     return isMobileSafari;
 }
 
+bool IOSApplication::isIMDb()
+{
+    static bool isIMDb = applicationBundleIsEqualTo("com.imdb.imdb"_s);
+    return isIMDb;
+}
+
 bool IOSApplication::isWebBookmarksD()
 {
     static bool isWebBookmarksD = applicationBundleIsEqualTo("com.apple.webbookmarksd"_s);
index 4a42821..db7e684 100644 (file)
@@ -1,3 +1,19 @@
+2019-08-09  Alex Christensen  <achristensen@webkit.org>
+
+        Disable CSSOM View Scrolling API for IMDb iOS app
+        https://bugs.webkit.org/show_bug.cgi?id=200586
+        <rdar://problem/53645833>
+
+        Reviewed by Simon Fraser.
+
+        Change the CSSOMViewScrollingAPIEnabled default value to be off for the IMDb app's WKWebViews.
+        I manually verified this is effective in those WKWebViews but no other WKWebViews and that it fixes the radar.
+
+        * Shared/WebPreferences.yaml:
+        * Shared/WebPreferencesDefaultValues.cpp:
+        (WebKit::defaultCSSOMViewScrollingAPIEnabled):
+        * Shared/WebPreferencesDefaultValues.h:
+
 2019-08-09  Tim Horton  <timothy_horton@apple.com>
 
         Tapping buttons in Data Detectors lookup previews doesn't work
index 03a8ea3..2bb9af1 100644 (file)
@@ -1284,7 +1284,7 @@ SyntheticEditingCommandsEnabled:
 
 CSSOMViewScrollingAPIEnabled:
   type: bool
-  defaultValue: true
+  defaultValue: defaultCSSOMViewScrollingAPIEnabled()
   humanReadableName: "CSSOM View Scrolling API"
   humanReadableDescription: "Implement standard behavior for scrollLeft, scrollTop, scrollWidth, scrollHeight, scrollTo, scrollBy and scrollingElement."
   category: internal
index 171def9..5a49327 100644 (file)
@@ -61,6 +61,15 @@ bool defaultCustomPasteboardDataEnabled()
 #endif
 }
 
+bool defaultCSSOMViewScrollingAPIEnabled()
+{
+#if PLATFORM(IOS_FAMILY)
+    if (WebCore::IOSApplication::isIMDb() && applicationSDKVersion() < DYLD_IOS_VERSION_13_0)
+        return false;
+#endif
+    return true;
+}
+
 #if ENABLE(TEXT_AUTOSIZING) && !PLATFORM(IOS_FAMILY)
 
 bool defaultTextAutosizingUsesIdempotentMode()
index ab7c42c..a390e35 100644 (file)
@@ -280,6 +280,7 @@ namespace WebKit {
 
 bool defaultPassiveTouchListenersAsDefaultOnDocument();
 bool defaultCustomPasteboardDataEnabled();
+bool defaultCSSOMViewScrollingAPIEnabled();
 
 #if ENABLE(TEXT_AUTOSIZING)
 bool defaultTextAutosizingUsesIdempotentMode();