WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
Bug 172206
Pinch zoom crash: A problem occurred with this web page so it was reloaded
https://bugs.webkit.org/show_bug.cgi?id=172206
Summary
Pinch zoom crash: A problem occurred with this web page so it was reloaded
zac spitzer
Reported
2017-05-16 18:53:13 PDT
From
https://discussions.apple.com/message/31241336#message31241336
Load this page on an iPad, pinch zoom in and out a few times, the page will reliably crash and show the "A problem occurred with this web page so it was reloaded" message
http://eucomp.hu/ipad3/test.html
Attachments
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2017-05-16 20:16:07 PDT
<
rdar://problem/32239544
>
zac spitzer
Comment 2
2017-05-18 01:18:44 PDT
here's another one
https://wanaryd.com/bike-config/test.html?cc
via
http://forums.tumult.com/t/a-problem-occurred-with-this-webpage-so-it-was-reloaded/5183
zac spitzer
Comment 3
2017-05-29 21:11:23 PDT
another example
https://github.com/Leaflet/Leaflet/issues/5496
fetis
Comment 4
2017-12-15 08:37:04 PST
Hello all, I was able to reproduce this issue on apple.com The steps are next: 1. Pinch zoom in 2. Wait a bit 3. Pinch zoom out. Here are the videos of that process. I used iPad Air2 with iOS 11.1.2 Safari view
https://youtu.be/4O-05jQr6A8
WebInspector view
https://youtu.be/fSQKVhmEp4I
See how Layers memory dramatically jumps after zoom out. After that, I was able to reproduce this as standalone example
https://codepen.io/fetis/full/VyvYMY
the steps to reproduce are the same. It's enough to have only 10 images pushed to compositing layer to crash Safari. It really depends on the screen size, the same amount of images is not enough for iPhone5s. I also have the same results on the same iPad Air 2 with the latest iOS 11.2.1 In my opinion, this's a bad graphical memory management by Webkit engine. After pinch zoom out amount of memory required for Layers increases very significantly and it causes crash/page reload.
Simon Fraser (smfr)
Comment 5
2017-12-15 11:45:44 PST
http://eucomp.hu/ipad3/test.html
triggers a lot of compositing because: Frame "frame_alterlst" has position:fixed on <div> id='bodyscroll' Frame "frame_right_bottom" has position:fixed on <div> id='bodyscroll' Main frame has two frames with negative z-index
Simon Fraser (smfr)
Comment 6
2017-12-15 11:58:50 PST
https://wanaryd.com/bike-config/test.html?cc
has a lot of layers too, as does
http://leafletjs.com
because of the maps tiles.
James Alley
Comment 7
2017-12-28 13:48:53 PST
At Yahoo! we see this issue frequently within a web app I'm working on. But I can crash Safari by pinch-zooming on many other websites. Something is not as robust as it should be. I'm disappointed no one has even been assigned to this ticket.
Simon Fraser (smfr)
Comment 8
2017-12-29 08:29:09 PST
James, please file a bug at bugreport.apple.com with your test page.
Damodhar
Comment 9
2019-10-25 04:47:27 PDT
this issue will occured when we add two iframe's side by side and pinch star scrolling. <html> <body> <iframe src="
https://otonomos.com/
"></iframe> <iframe src="
https://otonomos.com/
"></iframe> </body> </html>
zac spitzer
Comment 10
2019-10-25 05:01:54 PDT
which ios/safari version and device? 13.1.2 on an iPhone XR doesn't crash for me
Damodhar
Comment 11
2019-10-25 05:09:22 PDT
os: 10.3.4
zac spitzer
Comment 12
2019-10-25 05:14:34 PDT
which device? 10.3.4 was a bug fix for older phones which don't get updated anymore
Damodhar
Comment 13
2019-10-25 05:21:24 PDT
os: 10.3.4 device :iPad 4 I have this device
Damodhar
Comment 14
2019-11-09 17:22:51 PST
I got the problem where it is their problem with canvas clearRect function. I handle the canvas and it will work
Patrick B
Comment 15
2022-03-11 07:09:54 PST
Confirmed issue still persists and is reproducible using Zac Spitzer's example from 5/29/17. URL:
https://leafletjs.com/SlavaUkraini/
Device: iPhone 13 Pro OS: iOS 15.3.1 Browser: Safari Steps to reproduce: 1. Navigate
https://leafletjs.com/SlavaUkraini/
2. Pinch to zoom into whitespace between map and text "Here we create" to the maximum zoom level 3. Scroll the page down while zoomed in until only map is in view 4. Pinch to zoom in or out 5. Page should crash Potentially related tickets:
https://bugs.webkit.org/show_bug.cgi?id=182872
https://bugs.webkit.org/show_bug.cgi?id=235594
Tomas Brambora
Comment 16
2022-04-05 18:00:44 PDT
I can confirm creating (relatively) large compositing layers crashes iOS Safari 15.3.1. In particular, creating a few large elements and then scaling them down with `transform: scale` reliably crashes the page.
Patrick B
Comment 17
2022-04-05 19:57:27 PDT
Confirmed this persists in iOS 15.4.1 (In reply to Patrick B from
comment #15
)
> Confirmed issue still persists and is reproducible using Zac Spitzer's > example from 5/29/17. > > URL:
https://leafletjs.com/SlavaUkraini/
> Device: iPhone 13 Pro > OS: iOS 15.3.1 > Browser: Safari > Steps to reproduce: > 1. Navigate
https://leafletjs.com/SlavaUkraini/
> 2. Pinch to zoom into whitespace between map and text "Here we create" to > the maximum zoom level > 3. Scroll the page down while zoomed in until only map is in view > 4. Pinch to zoom in or out > 5. Page should crash > > Potentially related tickets: >
https://bugs.webkit.org/show_bug.cgi?id=182872
>
https://bugs.webkit.org/show_bug.cgi?id=235594
cody zhao
Comment 18
2022-09-06 21:21:01 PDT
Any progress on this bug? The iOS 15.4 Safari can easily crashes when animating a layer with 1200x1200px. We are animating is "transform". This bug caused a lot of headache when user try to edit text (which will trigger the zoom in/out animation) on our text editor on iOS device.
siim
Comment 19
2022-12-15 12:33:15 PST
Any update? 5 years and still no solution... No problem with 100 eur android phone, but 1500 eur iPhone cannot handle more than basic webpage.
kyle.goines
Comment 20
2023-06-21 13:50:58 PDT
Made an account to say this bug is alive an well in 16.5 At least we need to know if this is an issue with resource overflow or something else. if possible we need at least a more descriptive error message if you choose not to fix this.
Ahmad Saleem
Comment 21
2023-06-22 07:56:57 PDT
@Simon - Could be case of we hitting zoom overflow and clamping effectiveZoom & setZoom would fix it?
https://searchfox.org/wubkat/source/Source/WebCore/rendering/style/RenderStyleSetters.h#449
https://searchfox.org/wubkat/source/Source/WebCore/rendering/style/RenderStyleSetters.h#550
More like inspiration from:
https://chromium.googlesource.com/chromium/blink/+/c1e3af3a019a048f3f3c584a75d34c89a78f674b
Not Steve
Comment 22
2023-12-27 17:36:02 PST
It is amusing to see how people here are complaining about the animation crashing issues on iOS Safari. Look how the owners are playing dumb by asking for browser/iOS version numbers; they think we are idiots. Dear owners: IT IS ALL VERSIONS... This issue has been present since day one and it's now 2024. If anyone is wondering why this isn't getting fixed, I have an answer for you: This will never get fixed because Apple does not want your animated 'websites' competing with its App Store apps. Apple wants your website to be able to show just text and images; for everything else, you will have to pay to use the App Store.
Ahmad Saleem
Comment 23
2023-12-29 09:50:36 PST
(In reply to Ahmad Saleem from
comment #21
)
> @Simon - Could be case of we hitting zoom overflow and clamping > effectiveZoom & setZoom would fix it? > >
https://searchfox.org/wubkat/source/Source/WebCore/rendering/style/
> RenderStyleSetters.h#449 > >
https://searchfox.org/wubkat/source/Source/WebCore/rendering/style/
> RenderStyleSetters.h#550 > > More like inspiration from: >
https://chromium.googlesource.com/chromium/blink/+/
> c1e3af3a019a048f3f3c584a75d34c89a78f674b
-- In this: Source/WebCore/rendering/style/RenderStyleSetters.h inline bool RenderStyle::setEffectiveZoom(float zoomLevel) { // Clamp the effective zoom value to a smaller (but hopeful still large // enough) range, to avoid overflow in derived computations. float clampedEffectiveZoom = clampTo<float>(zoomLevel, 1e-6, 1e6); if (compareEqual(m_rareInheritedData->effectiveZoom, clampedEffectiveZoom)) return false; m_rareInheritedData.access().effectiveZoom = clampedEffectiveZoom; return true; } and -- Source/WebCore/rendering/style/BasicShapes.h void setZoom(float zoom) { ASSERT(std::isfinite(zoom) && zoom > 0); m_zoom = zoom; } This compiles. I am not sure about second 'BasicShapes' change though.
siim
Comment 24
2023-12-29 10:25:48 PST
Do not waste your energy on this.
siim
Comment 25
2023-12-29 10:28:21 PST
Phones are getting more and more ("Most advanced" every year") but still crashing to black screen like windows 95. Android phone from 2017 never crashes when testing same sites.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug