diff options
author | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-27 04:13:44 +0000 |
---|---|---|
committer | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-27 04:13:44 +0000 |
commit | f20a33b7728a766b570cd86e2967f85bdad3994a (patch) | |
tree | ecc057d4cdb8b81f03f99c109a5b121f6b049509 /ceee/ie/plugin | |
parent | d73e5f53bc629a5183dcdf3b78529c43541f0b31 (diff) | |
download | chromium_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.cc | 33 | ||||
-rw-r--r-- | ceee/ie/plugin/bho/browser_helper_object.h | 2 |
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_; }; |