Current page's scroll position is lost when transferring sessionState from one view to another. This is because we only update the current WebBackForwardListItem after navigating away. However, when the client swaps WebViews for navigating, we don't detect this as navigating away and the current WebBackForwardListItem is not updated with the current page's state (including the scroll position). This means that the information is not transferred via the sessionState and the scroll position (among other things) ends up being lost when navigating back in the new WebView.
rdar://problem/21585268
Created attachment 256186 [details] Patch
Attachment 256186 [details] did not pass style-queue: ERROR: Source/WebKit2/WebProcess/WebPage/WebPage.cpp:300: More than one command on the same line in if [whitespace/parens] [4] Total errors found: 1 in 5 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 256186 [details] Patch Clearing flags on attachment: 256186 Committed r186304: <http://trac.webkit.org/changeset/186304>
All reviewed patches have been landed. Closing bug.