summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorchase@chromium.org <chase@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-12 01:02:01 +0000
committerchase@chromium.org <chase@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-12 01:02:01 +0000
commit180d0acbeadc434f7a855442e5f4a2c7bcc89d5a (patch)
treedcd83a199567dad52f67a313edb3139b67956aa6 /chrome
parentfac41f0f15d55fae67d6a1a149585c1682cc9bf9 (diff)
downloadchromium_src-180d0acbeadc434f7a855442e5f4a2c7bcc89d5a.zip
chromium_src-180d0acbeadc434f7a855442e5f4a2c7bcc89d5a.tar.gz
chromium_src-180d0acbeadc434f7a855442e5f4a2c7bcc89d5a.tar.bz2
Add a RWH_TabSwitchPaintDuration histogram.
The RWH_TabSwitchPaintDuration histogram calculates the amount of time it took after a particular view was selected for it to be fully painted. Previous versions of this patch included modifications to the tab switching test. Those are blocked on setting up a new builder for accurate measurement and are now removed from this CL. BUG=4104 TEST=none Commit: http://src.chromium.org/viewvc/chrome?view=rev&revision=31632 Revert: http://src.chromium.org/viewvc/chrome?view=rev&revision=31645 Commit: http://src.chromium.org/viewvc/chrome?view=rev&revision=31679 Revert: http://src.chromium.org/viewvc/chrome?view=rev&revision=31683 Review URL: http://codereview.chromium.org/378038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31747 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_gtk.cc11
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_gtk.h3
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_mac.h3
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_mac.mm11
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_win.cc11
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_win.h3
6 files changed, 42 insertions, 0 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc
index b54aba3..b19cb46 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc
+++ b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc
@@ -376,6 +376,8 @@ void RenderWidgetHostViewGtk::DidBecomeSelected() {
if (!is_hidden_)
return;
+ if (tab_switch_paint_time_.is_null())
+ tab_switch_paint_time_ = base::TimeTicks::Now();
is_hidden_ = false;
host_->WasRestored();
}
@@ -595,6 +597,15 @@ void RenderWidgetHostViewGtk::Paint(const gfx::Rect& damage_rect) {
// time the backing store is NULL...
whiteout_start_time_ = base::TimeTicks();
}
+ if (!tab_switch_paint_time_.is_null()) {
+ base::TimeDelta tab_switch_paint_duration = base::TimeTicks::Now() -
+ tab_switch_paint_time_;
+ UMA_HISTOGRAM_TIMES("MPArch.RWH_TabSwitchPaintDuration",
+ tab_switch_paint_duration);
+ // Reset tab_switch_paint_time_ to 0 so future tab selections are
+ // recorded.
+ tab_switch_paint_time_ = base::TimeTicks();
+ }
} else {
if (window)
gdk_window_clear(window);
diff --git a/chrome/browser/renderer_host/render_widget_host_view_gtk.h b/chrome/browser/renderer_host/render_widget_host_view_gtk.h
index c246581..94f4f1a 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_gtk.h
+++ b/chrome/browser/renderer_host/render_widget_host_view_gtk.h
@@ -120,6 +120,9 @@ class RenderWidgetHostViewGtk : public RenderWidgetHostView {
// value returns true for is_null() if we are not recording whiteout times.
base::TimeTicks whiteout_start_time_;
+ // The time it took after this view was selected for it to be fully painted.
+ base::TimeTicks tab_switch_paint_time_;
+
// Variables used only for popups --------------------------------------------
// Our parent widget.
RenderWidgetHostView* parent_host_view_;
diff --git a/chrome/browser/renderer_host/render_widget_host_view_mac.h b/chrome/browser/renderer_host/render_widget_host_view_mac.h
index 9d6ffbb..67c8abf 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_mac.h
+++ b/chrome/browser/renderer_host/render_widget_host_view_mac.h
@@ -140,6 +140,9 @@ class RenderWidgetHostViewMac : public RenderWidgetHostView {
// value returns true for is_null() if we are not recording whiteout times.
base::TimeTicks whiteout_start_time_;
+ // The time it took after this view was selected for it to be fully painted.
+ base::TimeTicks tab_switch_paint_time_;
+
// Variables used by our implementaion of the NSTextInput protocol.
// An input method of Mac calls the methods of this protocol not only to
// notify an application of its status, but also to retrieve the status of
diff --git a/chrome/browser/renderer_host/render_widget_host_view_mac.mm b/chrome/browser/renderer_host/render_widget_host_view_mac.mm
index 82720be..d043a52 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/chrome/browser/renderer_host/render_widget_host_view_mac.mm
@@ -118,6 +118,8 @@ void RenderWidgetHostViewMac::DidBecomeSelected() {
if (!is_hidden_)
return;
+ if (tab_switch_paint_time_.is_null())
+ tab_switch_paint_time_ = base::TimeTicks::Now();
is_hidden_ = false;
render_widget_host_->WasRestored();
}
@@ -823,6 +825,15 @@ void RenderWidgetHostViewMac::SetBackground(const SkBitmap& background) {
// time the backing store is NULL...
renderWidgetHostView_->whiteout_start_time_ = base::TimeTicks();
}
+ if (!renderWidgetHostView_->tab_switch_paint_time_.is_null()) {
+ base::TimeDelta tab_switch_paint_duration = base::TimeTicks::Now() -
+ renderWidgetHostView_->tab_switch_paint_time_;
+ UMA_HISTOGRAM_TIMES("MPArch.RWH_TabSwitchPaintDuration",
+ tab_switch_paint_duration);
+ // Reset tab_switch_paint_time_ to 0 so future tab selections are
+ // recorded.
+ renderWidgetHostView_->tab_switch_paint_time_ = base::TimeTicks();
+ }
} else {
[[NSColor whiteColor] set];
NSRectFill(dirtyRect);
diff --git a/chrome/browser/renderer_host/render_widget_host_view_win.cc b/chrome/browser/renderer_host/render_widget_host_view_win.cc
index f97d249..d01c410 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_win.cc
+++ b/chrome/browser/renderer_host/render_widget_host_view_win.cc
@@ -255,6 +255,8 @@ void RenderWidgetHostViewWin::DidBecomeSelected() {
if (!is_hidden_)
return;
+ if (tab_switch_paint_time_.is_null())
+ tab_switch_paint_time_ = TimeTicks::Now();
is_hidden_ = false;
EnsureTooltip();
render_widget_host_->WasRestored();
@@ -793,6 +795,15 @@ void RenderWidgetHostViewWin::OnPaint(HDC dc) {
// time the backing store is NULL...
whiteout_start_time_ = TimeTicks();
}
+ if (!tab_switch_paint_time_.is_null()) {
+ TimeDelta tab_switch_paint_duration = TimeTicks::Now() -
+ tab_switch_paint_time_;
+ UMA_HISTOGRAM_TIMES("MPArch.RWH_TabSwitchPaintDuration",
+ tab_switch_paint_duration);
+ // Reset tab_switch_paint_time_ to 0 so future tab selections are
+ // recorded.
+ tab_switch_paint_time_ = TimeTicks();
+ }
} else {
DrawBackground(paint_dc.m_ps.rcPaint, &paint_dc);
if (whiteout_start_time_.is_null())
diff --git a/chrome/browser/renderer_host/render_widget_host_view_win.h b/chrome/browser/renderer_host/render_widget_host_view_win.h
index 68db850..4601ec2 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_win.h
+++ b/chrome/browser/renderer_host/render_widget_host_view_win.h
@@ -290,6 +290,9 @@ class RenderWidgetHostViewWin :
// until that bug is fixed.
bool renderer_accessible_;
+ // The time it took after this view was selected for it to be fully painted.
+ base::TimeTicks tab_switch_paint_time_;
+
DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewWin);
};