After filing an initial bug and reaching out to some Apple developers, Apple has been able to
reproduce the problems causing these crashes in Safari, here is the list of bugs filed which
reproduce the cryptic error message "A problem occurred with this webpage so it was reloaded"
Out of memory crash with MapBox-gl-js
Camera/Canvas file input crash: A Problem Occurred with this Webpage so it was Reloaded
Pinch zoom crash: A problem occurred with this web page so it was reloaded
Page that allocates and destroys canvas elements in a loop gets jettisoned on iOS
It does somewhat concern me that after trawling thru github, I found lots of developers battling these
problems but nobody had bothered to report the issue back to the webkit bug tracker (radar is simply
a black hole from the late 20th century).
By default iOS has reporting analytics turned off, which may be the reason why these kind of
problems have been occurring for years without being resolved.
The crash logs on iOS for these bugs indicate it's an out of memory, aka Memory leak/GC problem,
but they only include a list of processes and doesn't even seem to include the url of the page which
triggered the crash.
Maybe does Apple get more detailed crash reports, but from an outside perspective it seems they
don't and it's their users and web developers who are suffering as a result.
Thursday, June 01, 2017
Safari: A problem occurred with this webpage so it was reloaded (Update)
Thursday, May 18, 2017
Mobile Safari: A problem occurred with this webpage so it was reloaded
This is one of the most frustrating and cryptic error messages thrown on the web today.
There are legions of articles which suggest playing with various setting on iOS,
but in reality don't bother with them.
Basically this message means Safari crashed (like Chrome Aw Snap, but without any
extra information or the ability to provide feedback),
One of the most likely cause for this to happen is when Mobile Safari runs out of memory,
in my current case it relates to a crash after attempting to take a photo from <input type="file"> and resizing via canvas
You can find crash logs under Settings -> Privacy -> Analytics -> Analytics Data (iOS 10)
As far as bug reporting goes, Apple operates their own event horizon with their radar system, but you can try a few of these public resources, http://www.openradar.me, https://bugs.webkit.org/
Meanwhile, other major browsers make developers life easier with a more open approach:
- Chrome's public bug tracker, their developers actively engage with bug reports
- EdgeHTML issue tracker, they are also very responsive, you can report IE11 problems too but unless it's a security problem, they will reject it as won't fix.
- Firefox Bugzilla, depending on the problem you might get some response
Friday, October 23, 2015
Glyphicons showing up as Emoji in Safari
With the latest version of Safari 9 (iOS 9.1), I encountered a problem with Glyphicons (with bootstrap 3.3.5) showing up as Emoji.
It only happens intermittently when offline using an appcache.
Meanwhile, I also had Font Awesome Icons on the same page which were working fine.
I found a few Stack Overflow posts
How to prevent Unicode characters from rendering as emoji in HTML from JavaScript?
How to prevent Bootstrap's glyphicon rendering to emoji (Opera, FF)?
and a closed bootstrap bug
Bootstrap v3.1.1: Wrong glyphicons on iPad
But none of them had any solution which worked, but then doing some further research, I then discovered that Bootstrap v4 is dropping Glyphicons
So, the solution I'm using is to get ready for Bootstrap v4 and just dump Glyphicons entirely
UPDATE: Turns out it was a PBKAC, I didn't have a .woff entry in the appache manifest, as glorious IE6 (Safari) doesn't support woff2 yet
Monday, October 19, 2015
Safari - Web SQL - 14 unable to open database file [SOLVED]
Just a quick post, if you ever encounter "14 unable to open database file" in Safari, it's probably due to Safari apparently not properly Garbage Collecting db handles from openDatabase calls.
The solution is simply to re-use your database connections via a connection pool, as is common practice in many other application servers.
Apparently this got a bit better with Safari 8, Safari 7 was much worse.
I solved this myself after reading this issue https://github.com/pouchdb/pouchdb/issues/1068