Index: Source/web/FrameLoaderClientImpl.cpp |
diff --git a/Source/web/FrameLoaderClientImpl.cpp b/Source/web/FrameLoaderClientImpl.cpp |
index f76882975b9aa0a6081406973539e328c9e50581..6c140aa0bd0ff00c4c91ee7bdf67d1302037428f 100644 |
--- a/Source/web/FrameLoaderClientImpl.cpp |
+++ b/Source/web/FrameLoaderClientImpl.cpp |
@@ -540,9 +540,9 @@ bool FrameLoaderClientImpl::navigateBackForward(int offset) const |
return false; |
ASSERT(offset); |
- offset = std::min(offset, webview->client()->historyForwardListCount()); |
- offset = std::max(offset, -webview->client()->historyBackListCount()); |
- if (!offset) |
+ if (offset > webview->client()->historyForwardListCount()) |
+ return false; |
+ if (offset < -webview->client()->historyBackListCount()) |
return false; |
webview->client()->navigateBackForwardSoon(offset); |
return true; |
@@ -866,4 +866,12 @@ void FrameLoaderClientImpl::dispatchDidChangeManifest() |
m_webFrame->client()->didChangeManifest(m_webFrame); |
} |
+unsigned FrameLoaderClientImpl::backForwardLength() |
+{ |
+ WebViewImpl* webview = m_webFrame->viewImpl(); |
+ if (!webview || !webview->client()) |
+ return 0; |
+ return webview->client()->historyBackListCount() + 1 + webview->client()->historyForwardListCount(); |
+} |
+ |
} // namespace blink |