Title: [248348] branches/safari-608.1-branch/Source
Revision
248348
Author
[email protected]
Date
2019-08-06 23:52:28 -0700 (Tue, 06 Aug 2019)

Log Message

Cherry-pick r247793. rdar://problem/54017899

    Regression(r247400): Unable to log into AIB Mobile Banking App
    https://bugs.webkit.org/show_bug.cgi?id=200094
    <rdar://problem/52519818>

    Reviewed by Brent Fulgham.

    In r247400, a change was made to only set the 'app has universal sandbox access' flag
    only when issueing the sandbox extension for / actually succeeded (it usually fails
    in practice). Previously, AIB Mobile Banking app was relying on this behavior to
    trigger a load for file:///login which is outside their container. However, now that
    the 'app has universal sandbox access' flag is no longer set, it trips our security
    checks and the load gets ignored.

    To address the issue, apply only the 'app has universal sandbox access' flag fix with
    a linked-on-after check.

    * UIProcess/Cocoa/VersionChecks.h:
    * UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

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

Modified Paths

Diff

Modified: branches/safari-608.1-branch/Source/WTF/wtf/spi/darwin/dyldSPI.h (248347 => 248348)


--- branches/safari-608.1-branch/Source/WTF/wtf/spi/darwin/dyldSPI.h	2019-08-07 06:52:25 UTC (rev 248347)
+++ branches/safari-608.1-branch/Source/WTF/wtf/spi/darwin/dyldSPI.h	2019-08-07 06:52:28 UTC (rev 248348)
@@ -53,6 +53,10 @@
 #define DYLD_MACOSX_VERSION_10_14 0x000A0E00
 #endif
 
+#ifndef DYLD_MACOSX_VERSION_10_15
+#define DYLD_MACOSX_VERSION_10_15 0x000A0F00
+#endif
+
 #else
 
 #define DYLD_IOS_VERSION_3_0 0x00030000
@@ -71,6 +75,7 @@
 #define DYLD_MACOSX_VERSION_10_12 0x000A0C00
 #define DYLD_MACOSX_VERSION_10_13 0x000A0D00
 #define DYLD_MACOSX_VERSION_10_14 0x000A0E00
+#define DYLD_MACOSX_VERSION_10_15 0x000A0F00
 
 #endif
 

Modified: branches/safari-608.1-branch/Source/WebKit/ChangeLog (248347 => 248348)


--- branches/safari-608.1-branch/Source/WebKit/ChangeLog	2019-08-07 06:52:25 UTC (rev 248347)
+++ branches/safari-608.1-branch/Source/WebKit/ChangeLog	2019-08-07 06:52:28 UTC (rev 248348)
@@ -1,5 +1,54 @@
 2019-08-06  Kocsen Chung  <[email protected]>
 
+        Cherry-pick r247793. rdar://problem/54017899
+
+    Regression(r247400): Unable to log into AIB Mobile Banking App
+    https://bugs.webkit.org/show_bug.cgi?id=200094
+    <rdar://problem/52519818>
+    
+    Reviewed by Brent Fulgham.
+    
+    In r247400, a change was made to only set the 'app has universal sandbox access' flag
+    only when issueing the sandbox extension for / actually succeeded (it usually fails
+    in practice). Previously, AIB Mobile Banking app was relying on this behavior to
+    trigger a load for file:///login which is outside their container. However, now that
+    the 'app has universal sandbox access' flag is no longer set, it trips our security
+    checks and the load gets ignored.
+    
+    To address the issue, apply only the 'app has universal sandbox access' flag fix with
+    a linked-on-after check.
+    
+    * UIProcess/Cocoa/VersionChecks.h:
+    * UIProcess/WebPageProxy.cpp:
+    (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247793 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2019-07-24  Chris Dumez  <[email protected]>
+
+            Regression(r247400): Unable to log into AIB Mobile Banking App
+            https://bugs.webkit.org/show_bug.cgi?id=200094
+            <rdar://problem/52519818>
+
+            Reviewed by Brent Fulgham.
+
+            In r247400, a change was made to only set the 'app has universal sandbox access' flag
+            only when issueing the sandbox extension for / actually succeeded (it usually fails
+            in practice). Previously, AIB Mobile Banking app was relying on this behavior to
+            trigger a load for file:///login which is outside their container. However, now that
+            the 'app has universal sandbox access' flag is no longer set, it trips our security
+            checks and the load gets ignored.
+
+            To address the issue, apply only the 'app has universal sandbox access' flag fix with
+            a linked-on-after check.
+
+            * UIProcess/Cocoa/VersionChecks.h:
+            * UIProcess/WebPageProxy.cpp:
+            (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
+
+2019-08-06  Kocsen Chung  <[email protected]>
+
         Cherry-pick r247679. rdar://problem/54017903
 
     [iOS] [WebKit2] Add limited support for -isPosition:atBoundary:inDirection: in WKContentView

Modified: branches/safari-608.1-branch/Source/WebKit/UIProcess/Cocoa/VersionChecks.h (248347 => 248348)


--- branches/safari-608.1-branch/Source/WebKit/UIProcess/Cocoa/VersionChecks.h	2019-08-07 06:52:25 UTC (rev 248347)
+++ branches/safari-608.1-branch/Source/WebKit/UIProcess/Cocoa/VersionChecks.h	2019-08-07 06:52:28 UTC (rev 248348)
@@ -40,17 +40,24 @@
 #define DYLD_MACOS_VERSION_FIRST_WHERE_DOWNLOAD_ATTRIBUTE_DOES_NOT_OVERRIDE_NAVIGATION_DELEGATE 0
 #endif
 
+#if PLATFORM(IOS_FAMILY)
 #ifndef DYLD_IOS_VERSION_FIRST_WITH_EXCEPTIONS_FOR_RELATED_WEBVIEWS_USING_DIFFERENT_DATA_STORES
 #define DYLD_IOS_VERSION_FIRST_WITH_EXCEPTIONS_FOR_RELATED_WEBVIEWS_USING_DIFFERENT_DATA_STORES 0
 #endif
-#ifndef DYLD_MACOS_VERSION_FIRST_WITH_EXCEPTIONS_FOR_RELATED_WEBVIEWS_USING_DIFFERENT_DATA_STORES
-#define DYLD_MACOS_VERSION_FIRST_WITH_EXCEPTIONS_FOR_RELATED_WEBVIEWS_USING_DIFFERENT_DATA_STORES 0
-#endif
 
 #ifndef DYLD_IOS_VERSION_FIRST_WITH_DEVICE_ORIENTATION_AND_MOTION_PERMISSION_API
 #define DYLD_IOS_VERSION_FIRST_WITH_DEVICE_ORIENTATION_AND_MOTION_PERMISSION_API 0
 #endif
+#endif // PLATFORM(IOS_FAMILY)
 
+#if PLATFORM(MAC)
+#ifndef DYLD_MACOS_VERSION_FIRST_WITH_EXCEPTIONS_FOR_RELATED_WEBVIEWS_USING_DIFFERENT_DATA_STORES
+#define DYLD_MACOS_VERSION_FIRST_WITH_EXCEPTIONS_FOR_RELATED_WEBVIEWS_USING_DIFFERENT_DATA_STORES 0
+#endif
+#endif
+
+
+
 namespace WebKit {
 
 enum class SDKVersion : uint32_t {
@@ -65,6 +72,7 @@
     FirstWhereScrollViewContentInsetsAreNotObscuringInsets = DYLD_IOS_VERSION_12_0,
     FirstWhereUIScrollViewDoesNotApplyKeyboardInsetsUnconditionally = DYLD_IOS_VERSION_12_0,
     FirstWithMainThreadReleaseAssertionInWebPageProxy = DYLD_IOS_VERSION_12_0,
+    FirstWithoutUnconditionalUniversalSandboxExtension = DYLD_IOS_VERSION_13_0,
     FirstWithLazyGestureRecognizerInstallation = DYLD_IOS_VERSION_FIRST_WITH_LAZY_GESTURE_RECOGNIZER_INSTALLATION,
     FirstWithProcessSwapOnCrossSiteNavigation = DYLD_IOS_VERSION_FIRST_WITH_PROCESS_SWAP_ON_CROSS_SITE_NAVIGATION,
     FirstWithSnapshotAfterScreenUpdates = DYLD_IOS_VERSION_FIRST_WITH_SNAPSHOT_AFTER_SCREEN_UPDATES,
@@ -80,6 +88,7 @@
     FirstWithDropToNavigateDisallowedByDefault = DYLD_MACOSX_VERSION_10_13,
     FirstWithExpiredOnlyReloadBehavior = DYLD_MACOSX_VERSION_10_13,
     FirstWithMainThreadReleaseAssertionInWebPageProxy = DYLD_MACOSX_VERSION_10_14,
+    FirstWithoutUnconditionalUniversalSandboxExtension = DYLD_MACOSX_VERSION_10_15,
     FirstWithSnapshotAfterScreenUpdates = DYLD_MACOS_VERSION_FIRST_WITH_SNAPSHOT_AFTER_SCREEN_UPDATES,
     FirstWithExceptionsForRelatedWebViewsUsingDifferentDataStores = DYLD_MACOS_VERSION_FIRST_WITH_EXCEPTIONS_FOR_RELATED_WEBVIEWS_USING_DIFFERENT_DATA_STORES,
 #endif

Modified: branches/safari-608.1-branch/Source/WebKit/UIProcess/WebPageProxy.cpp (248347 => 248348)


--- branches/safari-608.1-branch/Source/WebKit/UIProcess/WebPageProxy.cpp	2019-08-07 06:52:25 UTC (rev 248347)
+++ branches/safari-608.1-branch/Source/WebKit/UIProcess/WebPageProxy.cpp	2019-08-07 06:52:28 UTC (rev 248348)
@@ -195,6 +195,7 @@
 #include "RemoteLayerTreeScrollingPerformanceData.h"
 #include "TouchBarMenuData.h"
 #include "TouchBarMenuItemData.h"
+#include "VersionChecks.h"
 #include "VideoFullscreenManagerProxy.h"
 #include "VideoFullscreenManagerProxyMessages.h"
 #include <WebCore/RunLoopObserver.h>
@@ -1063,6 +1064,11 @@
         return;
     }
 
+#if PLATFORM(COCOA)
+    if (!linkedOnOrAfter(SDKVersion::FirstWithoutUnconditionalUniversalSandboxExtension))
+        willAcquireUniversalFileReadSandboxExtension(process);
+#endif
+
     // We failed to issue an universal file read access sandbox, fall back to issuing one for the base URL instead.
     auto baseURL = URL(URL(), url.baseAsString());
     auto basePath = baseURL.fileSystemPath();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to