summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorcreis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-02 03:16:10 +0000
committercreis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-02 03:16:10 +0000
commit8c38058bbf24762a85de7e9f7473be594173d40e (patch)
tree6e6f443317712f01c858a7f874a7b365208965f5 /content
parent8b21196a3d2205ae69cd3c155587168809589e72 (diff)
downloadchromium_src-8c38058bbf24762a85de7e9f7473be594173d40e.zip
chromium_src-8c38058bbf24762a85de7e9f7473be594173d40e.tar.gz
chromium_src-8c38058bbf24762a85de7e9f7473be594173d40e.tar.bz2
Get additional crash data to narrow down renderer kills.
BUG=102408 TEST=More data in OnTempCrashWithData dumps. Review URL: http://codereview.chromium.org/8776017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112625 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/tab_contents/navigation_controller.cc17
-rw-r--r--content/renderer/render_thread_impl.cc8
-rw-r--r--content/renderer/render_view_impl.h6
3 files changed, 25 insertions, 6 deletions
diff --git a/content/browser/tab_contents/navigation_controller.cc b/content/browser/tab_contents/navigation_controller.cc
index 40935b2..383a1ec 100644
--- a/content/browser/tab_contents/navigation_controller.cc
+++ b/content/browser/tab_contents/navigation_controller.cc
@@ -675,8 +675,8 @@ content::NavigationType NavigationController::ClassifyNavigation(
UserMetrics::RecordAction(UserMetricsAction("BadMessageTerminate_NC"));
// Temporary code so we can get more information. Format:
- // http://url/foo.html#page1#max3#frame1#ids:2,x,3
- std::string temp = params.url.spec();;
+ // http://url/foo.html#page1#max3#frame1#ids:2_Nx,1_1x,3_2
+ std::string temp = params.url.spec();
temp.append("#page");
temp.append(base::IntToString(params.page_id));
temp.append("#max");
@@ -685,10 +685,17 @@ content::NavigationType NavigationController::ClassifyNavigation(
temp.append(base::IntToString(params.frame_id));
temp.append("#ids");
for (int i = 0; i < static_cast<int>(entries_.size()); ++i) {
- // Append all same-process page_ids (with placeholders for out of process)
- if (entries_[i]->site_instance() == tab_contents_->GetSiteInstance())
- temp.append(base::IntToString(entries_[i]->page_id()));
+ // Append entry metadata (e.g., 3_7x):
+ // 3: page_id
+ // 7: SiteInstance ID, or N for null
+ // x: appended if not from the current SiteInstance
+ temp.append(base::IntToString(entries_[i]->page_id()));
+ temp.append("_");
+ if (entries_[i]->site_instance())
+ temp.append(base::IntToString(entries_[i]->site_instance()->id()));
else
+ temp.append("N");
+ if (entries_[i]->site_instance() != tab_contents_->GetSiteInstance())
temp.append("x");
temp.append(",");
}
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index 7fdb883..64ce001 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -17,6 +17,7 @@
#include "base/metrics/histogram.h"
#include "base/metrics/stats_table.h"
#include "base/shared_memory.h"
+#include "base/string_number_conversions.h" // Temporary
#include "base/task.h"
#include "base/threading/thread_local.h"
#include "base/values.h"
@@ -839,7 +840,12 @@ void RenderThreadImpl::OnNetworkStateChanged(bool online) {
}
void RenderThreadImpl::OnTempCrashWithData(const GURL& data) {
- content::GetContentClient()->SetActiveURL(data);
+ // Append next_page_id_ to the data from the browser.
+ std::string temp = data.spec();
+ temp.append("#next");
+ temp.append(base::IntToString(RenderViewImpl::next_page_id()));
+
+ content::GetContentClient()->SetActiveURL(GURL(temp));
CHECK(false);
}
diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h
index ab56088..b6db69f 100644
--- a/content/renderer/render_view_impl.h
+++ b/content/renderer/render_view_impl.h
@@ -178,6 +178,12 @@ class RenderViewImpl : public RenderWidget,
// Sets the "next page id" counter.
static void SetNextPageID(int32 next_page_id);
+ // TODO(creis): Remove when we no longer need
+ // RenderThreadImpl::OnTempCrashWithData.
+ static int32 next_page_id() {
+ return next_page_id_;
+ }
+
// May return NULL when the view is closing.
CONTENT_EXPORT WebKit::WebView* webview() const;