| Index: content/renderer/render_view.cc
|
| diff --git a/content/renderer/render_view.cc b/content/renderer/render_view.cc
|
| index 972349f99357ff3f7c6cac7319e352f3c04c2599..6f3d7c99c578a8eff9014ce14eeabbfe90f42a6f 100644
|
| --- a/content/renderer/render_view.cc
|
| +++ b/content/renderer/render_view.cc
|
| @@ -703,6 +703,8 @@ bool RenderView::OnMessageReceived(const IPC::Message& message) {
|
| #endif
|
| IPC_MESSAGE_HANDLER(ViewMsg_UpdateRemoteAccessClientFirewallTraversal,
|
| OnUpdateRemoteAccessClientFirewallTraversal)
|
| + IPC_MESSAGE_HANDLER(ViewMsg_OffsetAndPruneHistory,
|
| + OnOffsetAndPruneHistory)
|
| // Have the super handle all other messages.
|
| IPC_MESSAGE_UNHANDLED(handled = RenderWidget::OnMessageReceived(message))
|
| IPC_END_MESSAGE_MAP()
|
| @@ -1017,6 +1019,22 @@ void RenderView::OnScrollFocusedEditableNodeIntoView() {
|
| }
|
| }
|
|
|
| +void RenderView::OnOffsetAndPruneHistory(int offset) {
|
| + int current_page_id = -1;
|
| + if (history_list_offset_ >= 0) {
|
| + current_page_id = history_page_ids_[history_list_offset_];
|
| + }
|
| +
|
| + history_list_offset_ = offset;
|
| + history_list_length_ = offset + 1;
|
| + if (history_list_length_ >= 0)
|
| + history_page_ids_.resize(history_list_length_, -1);
|
| + // Older entries also need to be invalidated.
|
| + for (int i = 0; i < history_list_offset_; ++i)
|
| + history_page_ids_[i] = -1;
|
| + history_page_ids_[history_list_offset_] = current_page_id;
|
| +}
|
| +
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| // Tell the embedding application that the URL of the active page has changed
|
|
|