Index: content/browser/renderer_host/render_view_host_impl.cc |
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc |
index 608c6e5feabd8d118e68666e258e14c2f5e2751e..69a74297b2f52acc41778eef3cd8a4ea09dfef5a 100644 |
--- a/content/browser/renderer_host/render_view_host_impl.cc |
+++ b/content/browser/renderer_host/render_view_host_impl.cc |
@@ -11,12 +11,14 @@ |
#include "base/callback.h" |
#include "base/command_line.h" |
+#include "base/debug/crash_logging.h" |
#include "base/debug/trace_event.h" |
#include "base/i18n/rtl.h" |
#include "base/json/json_reader.h" |
#include "base/message_loop/message_loop.h" |
#include "base/metrics/histogram.h" |
#include "base/stl_util.h" |
+#include "base/strings/string_number_conversions.h" |
#include "base/strings/string_util.h" |
#include "base/strings/utf_string_conversions.h" |
#include "base/sys_info.h" |
@@ -186,6 +188,7 @@ RenderViewHostImpl::RenderViewHostImpl( |
instance_(static_cast<SiteInstanceImpl*>(instance)), |
waiting_for_drag_context_response_(false), |
enabled_bindings_(0), |
+ page_id_(-1), |
main_frame_routing_id_(main_frame_routing_id), |
run_modal_reply_msg_(NULL), |
run_modal_opener_id_(MSG_ROUTING_NONE), |
@@ -1052,6 +1055,13 @@ void RenderViewHostImpl::OnRenderProcessGone(int status, int exit_code) { |
} |
void RenderViewHostImpl::OnUpdateState(int32 page_id, const PageState& state) { |
+ if (page_id_ != page_id) { |
+ base::debug::SetCrashKeyValue( |
+ "url1", GetMainFrame()->GetLastCommittedURL().possibly_invalid_spec()); |
+ base::debug::SetCrashKeyValue("id1", base::IntToString(page_id_)); |
+ base::debug::SetCrashKeyValue("id2", base::IntToString(page_id)); |
+ CHECK(false); |
+ } |
// Without this check, the renderer can trick the browser into using |
// filenames it can't access in a future session restore. |
if (!CanAccessFilesOfPageState(state)) { |
@@ -1059,12 +1069,18 @@ void RenderViewHostImpl::OnUpdateState(int32 page_id, const PageState& state) { |
return; |
} |
- delegate_->UpdateState(this, page_id, state); |
+ delegate_->UpdateState(this, page_id_, state); |
} |
void RenderViewHostImpl::OnUpdateTargetURL(int32 page_id, const GURL& url) { |
+ if (page_id_ != page_id) { |
+ base::debug::SetCrashKeyValue("url1", url.possibly_invalid_spec()); |
+ base::debug::SetCrashKeyValue("id1", base::IntToString(page_id_)); |
+ base::debug::SetCrashKeyValue("id2", base::IntToString(page_id)); |
+ CHECK(false); |
+ } |
if (IsRVHStateActive(rvh_state_)) |
- delegate_->UpdateTargetURL(page_id, url); |
+ delegate_->UpdateTargetURL(page_id_, url); |
// Send a notification back to the renderer that we are ready to |
// receive more target urls. |