4

This question What do the nomodeset, quiet and splash kernel parameters mean? contains a link in a comment to https://www.kernel.org/doc/Documentation/kernel-parameters.txt

When viewing that question in the StackExchange iOS app on an iPad mini or an iPhone 4S, clicking on the link immediately crashes the App. For me this is 100% repeatable on both devices.

Both devices are running the latest iOS version (9.2) and the latest StackExchange app (1.4.2).

Curiously, viewing THIS post in the iOS app and tapping the link above DOES NOT crash the app. I added the link to this post as a comment to try to reproduce the issue here on Meta. The result is that it DOES NOT crash when tapping the link either in the body of this question or in the comment.

So, to summarize:

  1. The post in askubuntu contains the dodgy link in a comment
  2. Tapping the link from within the iOS app while viewing the post in AskUbuntu instantly crashes the app. The screen goes black and then displays the home screen
  3. The same dodgy link in THIS post does not crash the app when tapped, either in the post body or in a comment
  • The dodgy link as a comment: kernel.org/doc/Documentation/kernel-parameters.txt – Ex Umbris Jan 6 '16 at 0:17
  • 3
    This link crashes the app. The problem seems to be with links that start with //, i.e. protocol relative urls. – Fernando Matsumoto Jan 6 '16 at 0:42
  • @FernandoMatsumoto Excellent! Your link DOES crash the ios app. – Ex Umbris Jan 6 '16 at 0:44
  • Ah, I missed that it was protocol-relative. Thanks for the help pinning this down. – Ex Umbris Jan 6 '16 at 0:47
  • I just added support for site relative links in comments, I'll validate this too. – Brian Nickel Jan 7 '16 at 19:02
1

This will be fixed in 1.4.3.5.

The problem is that protocol relative URLs (and relative URLs) in comments were handled by DTCoreText without a base URL, resulting in URLs without a scheme. When handed to SFSafariViewController, the app crashed with "The specified URL has an unsupported scheme. Only HTTP and HTTPS URLs are supported"

I had actually attempted to fix this last week by passing the post URL as NSBaseURLDocumentOption but I was A) rendering the HTML without a base URL when doing the height calculation and B) caching that value without considering the baseURL, so even though I passed the URL when displaying the comment, it still had a null base URL.

Fix includes:

  1. Always passing the base URL.
  2. Using a different cache key for each base URL.
  3. Not crashing on invalid URLs.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .