REGRESSION (245006): can't scroll in "read more" view in Eventbrite app
authorantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 11 Sep 2019 17:29:25 +0000 (17:29 +0000)
committerantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 11 Sep 2019 17:29:25 +0000 (17:29 +0000)
https://bugs.webkit.org/show_bug.cgi?id=201683
<rdar://problem/54582602>

Reviewed by Simon Fraser.

Source/WebCore:

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

Source/WebKit:

Content <body> has 'overflow:hidden'.

* UIProcess/Cocoa/VersionChecks.h:
* UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::hasScrollableMainFrame const):

Fix by adding an app specific LinkedOnOrAfter quirk that always allows main frame scrolling.

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

Source/WebCore/ChangeLog
Source/WebCore/platform/RuntimeApplicationChecks.h
Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm
Source/WebKit/ChangeLog
Source/WebKit/UIProcess/Cocoa/VersionChecks.h
Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp

index d62fba3..42b3990 100644 (file)
@@ -1,3 +1,15 @@
+2019-09-11  Antti Koivisto  <antti@apple.com>
+
+        REGRESSION (245006): can't scroll in "read more" view in Eventbrite app
+        https://bugs.webkit.org/show_bug.cgi?id=201683
+        <rdar://problem/54582602>
+
+        Reviewed by Simon Fraser.
+
+        * platform/RuntimeApplicationChecks.h:
+        * platform/cocoa/RuntimeApplicationChecksCocoa.mm:
+        (WebCore::IOSApplication::isEventbrite):
+
 2019-09-11  Ryan Haddad  <ryanhaddad@apple.com>
 
         Unreviewed, rolling out r249758.
index dde7405..de9658e 100644 (file)
@@ -96,6 +96,7 @@ bool isMoviStarPlus();
 WEBCORE_EXPORT bool isFirefox();
 WEBCORE_EXPORT bool isAppleApplication();
 WEBCORE_EXPORT bool isEvernote();
+WEBCORE_EXPORT bool isEventbrite();
 
 } // IOSApplication
 
index 8a11e67..eed6192 100644 (file)
@@ -318,6 +318,12 @@ bool IOSApplication::isEvernote()
     return isEvernote;
 }
 
+bool IOSApplication::isEventbrite()
+{
+    static bool isEventbrite = applicationBundleIsEqualTo("com.eventbrite.attendee"_s);
+    return isEventbrite;
+}
+
 #endif
 
 } // namespace WebCore
index 66b121a..5ffd4e6 100644 (file)
@@ -1,3 +1,19 @@
+2019-09-11  Antti Koivisto  <antti@apple.com>
+
+        REGRESSION (245006): can't scroll in "read more" view in Eventbrite app
+        https://bugs.webkit.org/show_bug.cgi?id=201683
+        <rdar://problem/54582602>
+
+        Reviewed by Simon Fraser.
+
+        Content <body> has 'overflow:hidden'.
+
+        * UIProcess/Cocoa/VersionChecks.h:
+        * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
+        (WebKit::RemoteScrollingCoordinatorProxy::hasScrollableMainFrame const):
+
+        Fix by adding an app specific LinkedOnOrAfter quirk that always allows main frame scrolling.
+
 2019-09-11  Alex Christensen  <achristensen@webkit.org>
 
         Remove unnecessary abstractions around WebsiteDataStore
index dbe9f3a..e5bca5f 100644 (file)
@@ -79,6 +79,7 @@ enum class SDKVersion : uint32_t {
     FirstWithModernCompabilityModeByDefault = DYLD_IOS_VERSION_FIRST_WITH_MODERN_COMPATIBILITY_MODE_BY_DEFAULT,
     FirstThatHasUIContextMenuInteraction = DYLD_IOS_VERSION_13_0,
     FirstWhereWKContentViewDoesNotOverrideKeyCommands = DYLD_IOS_VERSION_13_0,
+    FirstThatSupportsOverflowHiddenOnMainFrame = DYLD_IOS_VERSION_13_0,
 #elif PLATFORM(MAC)
     FirstWithNetworkCache = DYLD_MACOSX_VERSION_10_11,
     FirstWithExceptionsForDuplicateCompletionHandlerCalls = DYLD_MACOSX_VERSION_10_13,
index 02ab4bb..0aceb03 100644 (file)
 #include "RemoteScrollingCoordinator.h"
 #include "RemoteScrollingCoordinatorMessages.h"
 #include "RemoteScrollingCoordinatorTransaction.h"
+#include "VersionChecks.h"
 #include "WebPageProxy.h"
 #include "WebProcessProxy.h"
+#include <WebCore/RuntimeApplicationChecks.h>
 #include <WebCore/ScrollingStateFrameScrollingNode.h>
 #include <WebCore/ScrollingStateOverflowScrollingNode.h>
 #include <WebCore/ScrollingStatePositionedNode.h>
@@ -247,6 +249,11 @@ bool RemoteScrollingCoordinatorProxy::hasScrollableMainFrame() const
     if (!rootNode)
         return false;
 
+#if PLATFORM(IOS_FAMILY)
+    if (WebCore::IOSApplication::isEventbrite() && !linkedOnOrAfter(WebKit::SDKVersion::FirstThatSupportsOverflowHiddenOnMainFrame))
+        return true;
+#endif
+
     return rootNode->canHaveScrollbars() || rootNode->visualViewportIsSmallerThanLayoutViewport();
 }