Index: content/browser/web_contents/web_contents_impl.cc |
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
index 2e6a5f7556dd8378d2b796a9d676fa9c9ce0472c..a53df71f9cc9964116934877c2a7f6e400b11b0f 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -3646,8 +3646,7 @@ void WebContentsImpl::UpdateState(RenderViewHost* rvh, |
// TODO(nasko): This should go through RenderFrameHost. |
// TODO(creis): We can't update state for cross-process subframes until we |
// have FrameNavigationEntries. Once we do, this should be a DCHECK. |
- if (rvh->GetDelegate()->GetAsWebContents() != this) |
- return; |
+ CHECK_EQ(rvh->GetDelegate()->GetAsWebContents(), this); |
// We must be prepared to handle state updates for any page, these occur |
// when the user is scrolling and entering form data, as well as when we're |
@@ -3657,10 +3656,14 @@ void WebContentsImpl::UpdateState(RenderViewHost* rvh, |
int entry_index = controller_.GetEntryIndexWithPageID( |
rvh->GetSiteInstance(), page_id); |
- if (entry_index < 0) |
- return; |
+ CHECK_GE(entry_index, 0); |
NavigationEntry* entry = controller_.GetEntryAtIndex(entry_index); |
+ // Re http://crbug.com/369661, page id is going away. This function should |
+ // only ever be called for the current entry. When this is verified, this |
+ // function can be greatly simplified. |
+ CHECK_EQ(entry, controller_.GetLastCommittedEntry()); |
+ |
if (page_state == entry->GetPageState()) |
return; // Nothing to update. |
entry->SetPageState(page_state); |