summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sessions/session_service.cc
diff options
context:
space:
mode:
authortim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-10 18:13:12 +0000
committertim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-10 18:13:12 +0000
commit70eb8ed90fcea370e567666632ee225d95caee0b (patch)
tree43559a0fd3e85d01daa5225f63ce6a2dd3ad5e5c /chrome/browser/sessions/session_service.cc
parent33b7c47777e2b88e6a876cc48a562f03d5dddae4 (diff)
downloadchromium_src-70eb8ed90fcea370e567666632ee225d95caee0b.zip
chromium_src-70eb8ed90fcea370e567666632ee225d95caee0b.tar.gz
chromium_src-70eb8ed90fcea370e567666632ee225d95caee0b.tar.bz2
Add histogram coverage of session service Save() operations, namely the time between successive Save() operations.
BUG=none TEST=about:histograms Review URL: http://codereview.chromium.org/2732005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49420 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sessions/session_service.cc')
-rw-r--r--chrome/browser/sessions/session_service.cc33
1 files changed, 33 insertions, 0 deletions
diff --git a/chrome/browser/sessions/session_service.cc b/chrome/browser/sessions/session_service.cc
index ca5f183..da7508b 100644
--- a/chrome/browser/sessions/session_service.cc
+++ b/chrome/browser/sessions/session_service.cc
@@ -428,6 +428,14 @@ SessionService::Handle SessionService::GetCurrentSession(
}
}
+void SessionService::Save() {
+ bool had_commands = !pending_commands().empty();
+ BaseSessionService::Save();
+ if (had_commands)
+ RecordSaveHistogramData();
+}
+
+
void SessionService::Init() {
// Register for the notifications we're interested in.
registrar_.Add(this, NotificationType::TAB_PARENTED,
@@ -1309,3 +1317,28 @@ Browser::Type SessionService::BrowserTypeForWindowType(
return Browser::TYPE_NORMAL;
}
}
+
+void SessionService::RecordSaveHistogramData() {
+ if (!last_save_time_.is_null()) {
+ base::TimeDelta delta = base::TimeTicks::Now() - last_save_time_;
+ // We're interested in frequent updates, and group all periods longer than
+ // 10 minutes together.
+ UMA_HISTOGRAM_CUSTOM_TIMES("SessionRestore.SavePeriod",
+ delta,
+ // 2500ms is the default save delay for coaelescing. This parameter
+ // only impacts histogram creation, and not steady-state sampling.
+ base::TimeDelta::FromMilliseconds(2500),
+ base::TimeDelta::FromMinutes(10),
+ 50);
+
+ if (delta >= base::TimeDelta::FromMinutes(10)) {
+ UMA_HISTOGRAM_CUSTOM_TIMES("SessionRestore.LongSavePeriod",
+ delta,
+ base::TimeDelta::FromMinutes(10),
+ base::TimeDelta::FromHours(8),
+ 50);
+ }
+ }
+
+ last_save_time_ = base::TimeTicks::Now();
+}