Title: [186828] trunk/Source/WebCore
Revision
186828
Author
[email protected]
Date
2015-07-14 19:12:16 -0700 (Tue, 14 Jul 2015)

Log Message

Don't persist history item tree for subframes across reloads.
<https://webkit.org/b/146937>
<rdar://problem/19925709>

Reviewed by Brady Eidson.

Throw away the subframe history items when reloading a page. This ensures that we
don't accumulate outdated frame metadata when subframes change name across page loads.
Since the history item tree is encoded in the UA session state and gets serialized to
disk, it's important that we don't let it grow unbounded.

* loader/HistoryController.cpp:
(WebCore::HistoryController::updateForReload):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (186827 => 186828)


--- trunk/Source/WebCore/ChangeLog	2015-07-15 00:23:41 UTC (rev 186827)
+++ trunk/Source/WebCore/ChangeLog	2015-07-15 02:12:16 UTC (rev 186828)
@@ -1,3 +1,19 @@
+2015-07-14  Andreas Kling  <[email protected]>
+
+        Don't persist history item tree for subframes across reloads.
+        <https://webkit.org/b/146937>
+        <rdar://problem/19925709>
+
+        Reviewed by Brady Eidson.
+
+        Throw away the subframe history items when reloading a page. This ensures that we
+        don't accumulate outdated frame metadata when subframes change name across page loads.
+        Since the history item tree is encoded in the UA session state and gets serialized to
+        disk, it's important that we don't let it grow unbounded.
+
+        * loader/HistoryController.cpp:
+        (WebCore::HistoryController::updateForReload):
+
 2015-07-14  Antti Koivisto  <[email protected]>
 
         REGRESSION (r177876): store.apple.com profile and cart icons are missing

Modified: trunk/Source/WebCore/loader/HistoryController.cpp (186827 => 186828)


--- trunk/Source/WebCore/loader/HistoryController.cpp	2015-07-15 00:23:41 UTC (rev 186827)
+++ trunk/Source/WebCore/loader/HistoryController.cpp	2015-07-15 02:12:16 UTC (rev 186828)
@@ -342,6 +342,9 @@
     
         if (m_frame.loader().loadType() == FrameLoadType::Reload || m_frame.loader().loadType() == FrameLoadType::ReloadFromOrigin)
             saveScrollPositionAndViewStateToItem(m_currentItem.get());
+
+        // Rebuild the history item tree when reloading as trying to re-associate everything is too error-prone.
+        m_currentItem->clearChildren();
     }
 
     // When reloading the page, we may end up redirecting to a different URL
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to