Actually, the webView's parent is scrollview. I think that we can just tell the parent to disable elasticity on veiwWillAppear, or in many other areas. There is a custom ScrollView.h in the source tree. But there also is this class called ScrollableArea.h. So we might have to override a different class to fix this for Safari.
Here's some info from the release notes (my emphasis in bold):
2011-10-10 Andreas Kling <kling@webkit.org>
Shrink RenderLayer and ScrollableArea.
https://bugs.webkit.org/show_bug.cgi?id=69759
Reviewed by Antti Koivisto.
Rearrange the members of RenderLayer and its base class ScrollableArea
to maximize struct packing, shrinking RenderLayer by one CPU word on
32-bit (and two on 64-bit.)
This reduces memory consumption by 134 kB (on 64-bit) when loading the
full HTML5 spec.
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::verticalScrollElasticity):
(WebCore::ScrollableArea::horizontalScrollElasticity):