diff options
author | creis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-02 03:16:10 +0000 |
---|---|---|
committer | creis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-02 03:16:10 +0000 |
commit | 8c38058bbf24762a85de7e9f7473be594173d40e (patch) | |
tree | 6e6f443317712f01c858a7f874a7b365208965f5 /content | |
parent | 8b21196a3d2205ae69cd3c155587168809589e72 (diff) | |
download | chromium_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.cc | 17 | ||||
-rw-r--r-- | content/renderer/render_thread_impl.cc | 8 | ||||
-rw-r--r-- | content/renderer/render_view_impl.h | 6 |
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; |