summaryrefslogtreecommitdiffstats
path: root/ceee/ie/plugin
diff options
context:
space:
mode:
authorvitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-27 04:13:44 +0000
committervitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-27 04:13:44 +0000
commitf20a33b7728a766b570cd86e2967f85bdad3994a (patch)
treeecc057d4cdb8b81f03f99c109a5b121f6b049509 /ceee/ie/plugin
parentd73e5f53bc629a5183dcdf3b78529c43541f0b31 (diff)
downloadchromium_src-f20a33b7728a766b570cd86e2967f85bdad3994a.zip
chromium_src-f20a33b7728a766b570cd86e2967f85bdad3994a.tar.gz
chromium_src-f20a33b7728a766b570cd86e2967f85bdad3994a.tar.bz2
Added histograms with addons load time.
BUG=none TEST=none Review URL: http://codereview.chromium.org/5348004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67485 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ceee/ie/plugin')
-rw-r--r--ceee/ie/plugin/bho/browser_helper_object.cc33
-rw-r--r--ceee/ie/plugin/bho/browser_helper_object.h2
2 files changed, 34 insertions, 1 deletions
diff --git a/ceee/ie/plugin/bho/browser_helper_object.cc b/ceee/ie/plugin/bho/browser_helper_object.cc
index 47aa6ac..cc5e55d 100644
--- a/ceee/ie/plugin/bho/browser_helper_object.cc
+++ b/ceee/ie/plugin/bho/browser_helper_object.cc
@@ -128,12 +128,37 @@ void BrowserHelperObject::FinalRelease() {
web_browser_.Release();
}
+void BrowserHelperObject::ReportAddonLoadTime(const char* addon_name,
+ const CLSID& addon_id) {
+ int time = ie_util::GetAverageAddonLoadTimeMs(addon_id);
+ if (time == ie_util::kInvalidTime)
+ return;
+ DCHECK(ie_util::GetIeVersion() >= ie_util::IEVERSION_IE8);
+
+ std::string counter_name = "ceee/AddonLoadTime.";
+ counter_name += addon_name;
+ counter_name += ".IE";
+ switch (ie_util::GetIeVersion()) {
+ case ie_util::IEVERSION_IE8:
+ counter_name += '8';
+ break;
+ case ie_util::IEVERSION_IE9:
+ counter_name += '9';
+ break;
+ default:
+ counter_name += 'x';
+ break;
+ }
+ if (broker_rpc_.get())
+ broker_rpc_->SendUmaHistogramTimes(counter_name.c_str(), time);
+}
+
STDMETHODIMP BrowserHelperObject::SetSite(IUnknown* site) {
typedef IObjectWithSiteImpl<BrowserHelperObject> SuperSite;
// From experience, we know the site may be set multiple times.
// Let's ignore second and subsequent set or unset.
- if (site != NULL&& m_spUnkSite.p != NULL ||
+ if (site != NULL && m_spUnkSite.p != NULL ||
site == NULL && m_spUnkSite.p == NULL ) {
LOG(WARNING) << "Duplicate call to SetSite, previous site "
<< m_spUnkSite.p << " new site " << site;
@@ -143,6 +168,12 @@ STDMETHODIMP BrowserHelperObject::SetSite(IUnknown* site) {
if (NULL == site) {
mu::ScopedTimer metrics_timer("ceee/BHO.TearDown", broker_rpc_.get());
+ // TODO(vitalybuka@chromium.org): switch to sampling when we have enough
+ // users.
+ ReportAddonLoadTime("BH0", CLSID_BrowserHelperObject);
+ ReportAddonLoadTime("ChromeFrameBHO", CLSID_ChromeFrameBHO);
+ ReportAddonLoadTime("Toolband", CLSID_ToolBand);
+
// We're being torn down.
TearDown();
diff --git a/ceee/ie/plugin/bho/browser_helper_object.h b/ceee/ie/plugin/bho/browser_helper_object.h
index c568108..273b8e6 100644
--- a/ceee/ie/plugin/bho/browser_helper_object.h
+++ b/ceee/ie/plugin/bho/browser_helper_object.h
@@ -419,6 +419,8 @@ class ATL_NO_VTABLE BrowserHelperObject
HRESULT VerifyBrowserInHierarchy(IWebBrowser2* webbrowser,
IWebBrowser2* root_browser);
+ void ReportAddonLoadTime(const char* addon_name, const CLSID& addon_id);
+
typedef std::deque<Task*> DeferredCallListType;
DeferredCallListType deferred_tab_id_call_;
};