diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-11 02:23:44 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-11 02:23:44 +0000 |
commit | 897b2627d88109e5280e20b6658d702b43468617 (patch) | |
tree | 76271ef33d000294ba9ce7b6d2b6e1aec94da610 /chrome_frame/bho.cc | |
parent | 943d8120c51e2ed0146d85a15298d7fa30f316e0 (diff) | |
download | chromium_src-897b2627d88109e5280e20b6658d702b43468617.zip chromium_src-897b2627d88109e5280e20b6658d702b43468617.tar.gz chromium_src-897b2627d88109e5280e20b6658d702b43468617.tar.bz2 |
Add support for uploading UMA metrics data from ChromeFrame. Added support for tracking chrome frame crash metrics via
2 new counters which track successful navigations and crashes. These counters are persisted in the registry under
HKCU\Software\Google\ChromeFrameMetrics.
Any other histogram data like AutomationServer launch time, IE versions etc are simply dropped if IE is shutdown before
they are sent out. The metrics data is uploaded on similar lines as Chrome.
Bug=46057
Review URL: http://codereview.chromium.org/2714003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49493 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/bho.cc')
-rw-r--r-- | chrome_frame/bho.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/chrome_frame/bho.cc b/chrome_frame/bho.cc index 6cdb0a6..3033b9a 100644 --- a/chrome_frame/bho.cc +++ b/chrome_frame/bho.cc @@ -14,8 +14,10 @@ #include "base/scoped_variant_win.h" #include "base/string_util.h" #include "chrome_tab.h" // NOLINT +#include "chrome_frame/crash_metrics.h" #include "chrome_frame/extra_system_apis.h" #include "chrome_frame/http_negotiate.h" +#include "chrome_frame/metrics_service.h" #include "chrome_frame/protocol_sink_wrap.h" #include "chrome_frame/urlmon_moniker.h" #include "chrome_frame/utils.h" @@ -48,6 +50,13 @@ _ATL_FUNC_INFO Bho::kNavigateComplete2Info = { } }; +_ATL_FUNC_INFO Bho::kDocumentCompleteInfo = { + CC_STDCALL, VT_EMPTY, 2, { + VT_DISPATCH, + VT_VARIANT | VT_BYREF + } +}; + Bho::Bho() { } @@ -84,6 +93,7 @@ STDMETHODIMP Bho::SetSite(IUnknown* site) { // information for a URL. AddRef(); RegisterThreadInstance(); + MetricsService::Start(); } else { UnregisterThreadInstance(); Release(); @@ -134,6 +144,23 @@ STDMETHODIMP_(void) Bho::NavigateComplete2(IDispatch* dispatch, VARIANT* url) { DLOG(INFO) << __FUNCTION__; } +STDMETHODIMP_(void) Bho::DocumentComplete(IDispatch* dispatch, VARIANT* url) { + DLOG(INFO) << __FUNCTION__; + + ScopedComPtr<IWebBrowser2> web_browser2; + if (dispatch) + web_browser2.QueryFrom(dispatch); + + if (web_browser2) { + VARIANT_BOOL is_top_level = VARIANT_FALSE; + web_browser2->get_TopLevelContainer(&is_top_level); + if (is_top_level) { + CrashMetricsReporter::GetInstance()->IncrementMetric( + CrashMetricsReporter::NAVIGATION_COUNT); + } + } +} + namespace { // See comments in Bho::OnHttpEquiv for details. |