Title: [248471] trunk/Source
Revision
248471
Author
[email protected]
Date
2019-08-09 13:20:49 -0700 (Fri, 09 Aug 2019)

Log Message

Disable CSSOM View Scrolling API for IMDb iOS app
https://bugs.webkit.org/show_bug.cgi?id=200586
<rdar://problem/53645833>

Patch by Alex Christensen <[email protected]> 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:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (248470 => 248471)


--- trunk/Source/WebCore/ChangeLog	2019-08-09 19:51:39 UTC (rev 248470)
+++ trunk/Source/WebCore/ChangeLog	2019-08-09 20:20:49 UTC (rev 248471)
@@ -1,3 +1,18 @@
+2019-08-09  Alex Christensen  <[email protected]>
+
+        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  <[email protected]>
 
         Remove MediaStreamRegistry

Modified: trunk/Source/WebCore/platform/RuntimeApplicationChecks.h (248470 => 248471)


--- trunk/Source/WebCore/platform/RuntimeApplicationChecks.h	2019-08-09 19:51:39 UTC (rev 248470)
+++ trunk/Source/WebCore/platform/RuntimeApplicationChecks.h	2019-08-09 20:20:49 UTC (rev 248471)
@@ -43,7 +43,7 @@
 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 @@
 
 WEBCORE_EXPORT bool isMobileMail();
 WEBCORE_EXPORT bool isMobileSafari();
+WEBCORE_EXPORT bool isIMDb();
 WEBCORE_EXPORT bool isWebBookmarksD();
 WEBCORE_EXPORT bool isDumpRenderTree();
 bool isMobileStore();

Modified: trunk/Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm (248470 => 248471)


--- trunk/Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm	2019-08-09 19:51:39 UTC (rev 248470)
+++ trunk/Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm	2019-08-09 20:20:49 UTC (rev 248471)
@@ -208,6 +208,12 @@
     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);

Modified: trunk/Source/WebKit/ChangeLog (248470 => 248471)


--- trunk/Source/WebKit/ChangeLog	2019-08-09 19:51:39 UTC (rev 248470)
+++ trunk/Source/WebKit/ChangeLog	2019-08-09 20:20:49 UTC (rev 248471)
@@ -1,3 +1,19 @@
+2019-08-09  Alex Christensen  <[email protected]>
+
+        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  <[email protected]>
 
         Tapping buttons in Data Detectors lookup previews doesn't work

Modified: trunk/Source/WebKit/Shared/WebPreferences.yaml (248470 => 248471)


--- trunk/Source/WebKit/Shared/WebPreferences.yaml	2019-08-09 19:51:39 UTC (rev 248470)
+++ trunk/Source/WebKit/Shared/WebPreferences.yaml	2019-08-09 20:20:49 UTC (rev 248471)
@@ -1284,7 +1284,7 @@
 
 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

Modified: trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp (248470 => 248471)


--- trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp	2019-08-09 19:51:39 UTC (rev 248470)
+++ trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp	2019-08-09 20:20:49 UTC (rev 248471)
@@ -61,6 +61,15 @@
 #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()

Modified: trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.h (248470 => 248471)


--- trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.h	2019-08-09 19:51:39 UTC (rev 248470)
+++ trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.h	2019-08-09 20:20:49 UTC (rev 248471)
@@ -280,6 +280,7 @@
 
 bool defaultPassiveTouchListenersAsDefaultOnDocument();
 bool defaultCustomPasteboardDataEnabled();
+bool defaultCSSOMViewScrollingAPIEnabled();
 
 #if ENABLE(TEXT_AUTOSIZING)
 bool defaultTextAutosizingUsesIdempotentMode();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to