After upgrading to Xcode 15.2 or above(Till Xcode 16.2), users are unable to open Site B (HTTP URL) from Site A (HTTP URL) within our Browser app when loaded in WKWebView. Clicking the link to Site B results in a spinning wheel, but the site does not load. This issue is not present when the app is built with Xcode 15.0.1.
Additionally: Users are connected to a VPN, which is required to access the sites. Site A and Site B are on different domains (cross-domain request).
Expected Behavior: Clicking the link to Site B should successfully load the site with user information passed from Site A.
Current Behavior: Clicking the link results in a spinning wheel, but Site B does not load inside WKWebView.
Technical Details:
- Both Site A and Site B use HTTP (not HTTPS).
- Site A and Site B have different domains (cross-domain request).
- Do not use location.href for transitions. Instead, we temporarily set about:blank in an iframe and then submit data via a form to the target system’s URL within the iframe.
- This approach worked in Xcode 15.0.1 but fails in Xcode 15.2 or above.
- Users are connected to a VPN, which is required to access the sites.
- WKWebview is not receiving navigation delegate callback for Site B
Steps to Reproduce:
- Ensure the device is connected to a VPN.
- Open the app (using WKWebView) built with Xcode 15.2 or above.
- Load Site A (HTTP) within the app in WKWebView.
- Click the link to Site B (HTTP), which should open in an iframe.
- Observe that a spinning wheel appears, but Site B does not load.
Environment:
- Xcode Versions Affected: 15.2 or above (issue present), 15.0.1 (no issue)
- iOS Version: All iOS versions
- Devices: iPad
Questions: Has there been any change in WKWebView’s handling of HTTP URLs or VPN-related network traffic in Xcode 15.2? Are there any new security policies, iframe restrictions, or VPN-related changes in this version that might be affecting this behavior?
Request for Assistance: Can you confirm if this is a known issue or an intended change? Are there any workarounds available?