Chromium Code Reviews| Index: Source/core/loader/HistoryController.cpp |
| diff --git a/Source/core/loader/HistoryController.cpp b/Source/core/loader/HistoryController.cpp |
| index 1b6f4316ca463a46e3aa112be06bf61af7f8c66b..66c6c1ac426a52bac218d902b7f7fb4beb61818c 100644 |
| --- a/Source/core/loader/HistoryController.cpp |
| +++ b/Source/core/loader/HistoryController.cpp |
| @@ -308,7 +308,7 @@ void HistoryController::updateForReload() |
| // 1) Back/forward: The m_currentItem is part of this mechanism. |
| // 2) Global history: Handled by the client. |
| // |
| -void HistoryController::updateForStandardLoad(HistoryUpdateType updateType) |
| +void HistoryController::updateForStandardLoad() |
| { |
| LOG(History, "WebCoreHistory: Updating History for Standard Load in frame %s", m_frame->loader()->documentLoader()->url().string().ascii().data()); |
| @@ -317,10 +317,8 @@ void HistoryController::updateForStandardLoad(HistoryUpdateType updateType) |
| const KURL& historyURL = frameLoader->documentLoader()->urlForHistory(); |
| if (!frameLoader->documentLoader()->isClientRedirect()) { |
| - if (!historyURL.isEmpty()) { |
| - if (updateType != UpdateAllExceptBackForwardList) |
| - updateBackForwardListClippedAtTarget(true); |
| - } |
| + if (!historyURL.isEmpty()) |
| + updateBackForwardListClippedAtTarget(true); |
| } else { |
| // The client redirect replaces the current history item. |
| updateCurrentItem(); |
| @@ -375,7 +373,7 @@ void HistoryController::updateForCommit() |
| FrameLoadType type = frameLoader->loadType(); |
| if (isBackForwardLoadType(type) |
| || isReplaceLoadTypeWithProvisionalItem(type) |
| - || (isReloadTypeWithProvisionalItem(type) && !frameLoader->provisionalDocumentLoader()->unreachableURL().isEmpty())) { |
| + || (isReloadTypeWithProvisionalItem(type) && !frameLoader->documentLoader()->unreachableURL().isEmpty())) { |
|
Nate Chapin
2013/05/01 21:38:34
This used to be called just before the provisional
abarth-chromium
2013/05/06 17:09:42
Makes sense.
|
| // Once committed, we want to use current item for saving DocState, and |
| // the provisional item for restoring state. |
| // Note previousItem must be set before we close the URL, which will |
| @@ -393,6 +391,28 @@ void HistoryController::updateForCommit() |
| ASSERT(page); |
| page->mainFrame()->loader()->history()->recursiveUpdateForCommit(); |
| } |
| + |
| + switch (type) { |
| + case FrameLoadTypeForward: |
| + case FrameLoadTypeBack: |
| + case FrameLoadTypeIndexedBackForward: |
| + updateForBackForwardNavigation(); |
| + return; |
| + case FrameLoadTypeReload: |
| + case FrameLoadTypeReloadFromOrigin: |
| + case FrameLoadTypeSame: |
| + case FrameLoadTypeReplace: |
| + updateForReload(); |
| + return; |
| + case FrameLoadTypeStandard: |
| + updateForStandardLoad(); |
| + return; |
| + case FrameLoadTypeRedirectWithLockedBackForwardList: |
| + updateForRedirectWithLockedBackForwardList(); |
| + return; |
| + default: |
| + ASSERT_NOT_REACHED(); |
| + } |
| } |
| bool HistoryController::isReplaceLoadTypeWithProvisionalItem(FrameLoadType type) |