Instead of trying to have the UI process figure out when to take navigation snapshots by itself, provide some help from the Web process (let the UI process know whenever we're going to change which back-forward item is "current") so that we can take snapshots at the right time when pushState happens, and so that we can bottleneck snapshotting down to just two places (instead of 5). <rdar://problem/17464515>
Created attachment 235134 [details] patch
Comment on attachment 235134 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=235134&action=review > Source/WebCore/loader/HistoryController.cpp:882 > + m_frame.loader().client().willChangeCurrentHistoryItem(); Do we need to call this if we end up changing just the provisional item?
Comment on attachment 235134 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=235134&action=review >> Source/WebCore/loader/HistoryController.cpp:882 >> + m_frame.loader().client().willChangeCurrentHistoryItem(); > > Do we need to call this if we end up changing just the provisional item? No, good point. Thanks!
http://trac.webkit.org/changeset/171239
Looks like this caused a PLT regression on all platforms.