I have a web app that's triggering what appears to be an iOS8 bug in Safari, and I'm looking for clues into what's setting it off and how to work around it.
The bug is characterized by "A problem occurred with this webpage so it was reloaded" appearing at the top of the page after the user has spent enough time navigating in Safari. It looks like something is crashing behind the scenes, and Safari is simply doing a really good job of gracefully recovering. Reading the crash log revealed this:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x00000000
Triggered by Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 JavaScriptCore 0x2d4291d4 0x2d24a000 + 1962452
1 JavaScriptCore 0x2d50e166 0x2d24a000 + 2900326
2 JavaScriptCore 0x2d2bc88c 0x2d24a000 + 469132
...
Research hinted that instances of translate3d
and keyframe
in the CSS files might be to blame. While getting rid of them seemed to make the bug less likely to recur, the bug nevertheless still exists. Likewise, reducing the size of the (very, very large) CSS file associated with the pages most likely to trigger the bug seemed to help but not make it go away.
My company handles a bunch of mobile-optimized commerce-oriented web apps, and this is the only one that seems to be running afoul of this bug; I have no idea what's making this particular app such an angry little special snowflake, but I'd like to figure it out and correct it. Does anybody have any ideas about what might be triggering the bug and how we can work around it?