| Index: chrome/browser/intents/web_intents_reporting.cc
|
| diff --git a/chrome/browser/intents/web_intents_reporting.cc b/chrome/browser/intents/web_intents_reporting.cc
|
| deleted file mode 100644
|
| index c780724ab4cc6f67226cceb474240f21bc76a98e..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/intents/web_intents_reporting.cc
|
| +++ /dev/null
|
| @@ -1,167 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "web_intents_reporting.h"
|
| -
|
| -#include "base/metrics/histogram.h"
|
| -#include "base/string_util.h"
|
| -#include "chrome/browser/intents/web_intents_util.h"
|
| -#include "net/base/mime_util.h"
|
| -#include "webkit/glue/web_intent_data.h"
|
| -
|
| -namespace web_intents {
|
| -namespace {
|
| -
|
| -struct TypeMapping {
|
| - const char* name;
|
| - const TypeId id;
|
| -};
|
| -
|
| -const TypeMapping kTypeMap[] = {
|
| - { "application", TYPE_ID_APPLICATION },
|
| - { "audio", TYPE_ID_AUDIO },
|
| - { "example", TYPE_ID_EXAMPLE },
|
| - { "image", TYPE_ID_IMAGE },
|
| - { "message", TYPE_ID_MESSAGE },
|
| - { "model", TYPE_ID_MODEL },
|
| - { "multipart", TYPE_ID_MULTIPART },
|
| - { "text", TYPE_ID_TEXT },
|
| - { "video", TYPE_ID_VIDEO },
|
| -};
|
| -
|
| -// The number of buckets for the histogram of the duration of time spent in a
|
| -// service.
|
| -const int kServiceActiveTimeNumBuckets = 10;
|
| -
|
| -// The lower bound on the tracked duration of time spent in a service.
|
| -// This bound is in seconds.
|
| -const int kServiceActiveDurationMinSeconds = 1;
|
| -
|
| -// The upper bound on the tracked duration of time spent in a service.
|
| -// This bound is in seconds.
|
| -const int kServiceActiveDurationMaxSeconds = 3600;
|
| -
|
| -// UMA bucket range for custom histograms.
|
| -//
|
| -// TODO(rouslan): Remove this once we've migrated to sparse histograms. See
|
| -// http://crbug.com/153891 before changing anything.
|
| -std::vector<int> GetUmaBucketsCustomRange() {
|
| - // Please update these numbers if you add more actions or types.
|
| - const int kNumActions = 7;
|
| - const int kNumTypes = 10;
|
| - std::vector<int> range;
|
| - for (int i = 1; i <= kNumActions; i++) {
|
| - for (int j = 1; j <= kNumTypes; j++) {
|
| - range.push_back(i << 8 | j);
|
| - }
|
| - }
|
| - return range;
|
| -}
|
| -
|
| -// Returns the ActionMapping for |action| if one exists, or NULL.
|
| -TypeId ToTypeId(const string16& type) {
|
| - const std::string iana_type = net::GetIANAMediaType(UTF16ToASCII(type));
|
| - for (size_t i = 0; i < arraysize(kTypeMap); ++i) {
|
| - if (iana_type == kTypeMap[i].name) {
|
| - return kTypeMap[i].id;
|
| - }
|
| - }
|
| - return TYPE_ID_CUSTOM;
|
| -}
|
| -
|
| -// Records the number of services installed at the time the picker
|
| -// is shown to the user. Drops the size into one of several buckets.
|
| -void RecordInstalledServiceCount(const UMABucket bucket, size_t installed) {
|
| - if (installed == 0) {
|
| - UMA_HISTOGRAM_CUSTOM_ENUMERATION("WebIntents.Service.NumInstalled.0.v0",
|
| - bucket, GetUmaBucketsCustomRange());
|
| - } else if (installed >= 1 && installed <= 4) {
|
| - UMA_HISTOGRAM_CUSTOM_ENUMERATION("WebIntents.Service.NumInstalled.1-4.v0",
|
| - bucket, GetUmaBucketsCustomRange());
|
| - } else if (installed >= 5 && installed <= 8) {
|
| - UMA_HISTOGRAM_CUSTOM_ENUMERATION("WebIntents.Service.NumInstalled.5-8.v0",
|
| - bucket, GetUmaBucketsCustomRange());
|
| - } else {
|
| - UMA_HISTOGRAM_CUSTOM_ENUMERATION("WebIntents.Service.NumInstalled.9+.v0",
|
| - bucket, GetUmaBucketsCustomRange());
|
| - }
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -UMABucket ToUMABucket(const string16& action, const string16& type) {
|
| - ActionId action_id = ToActionId(action);
|
| - TypeId type_id = ToTypeId(type);
|
| - short bucket_id = (action_id << 8) | type_id;
|
| - DCHECK(bucket_id > 256);
|
| - return static_cast<UMABucket>(bucket_id);
|
| -}
|
| -
|
| -void RecordIntentsDispatchDisabled() {
|
| - UMA_HISTOGRAM_COUNTS("WebIntents.DispatchDisabled", 1);
|
| -}
|
| -
|
| -void RecordIntentDispatchRequested() {
|
| - UMA_HISTOGRAM_COUNTS("WebIntents.Dispatch", 1);
|
| -}
|
| -
|
| -void RecordIntentDispatched(const UMABucket bucket) {
|
| - UMA_HISTOGRAM_CUSTOM_ENUMERATION("WebIntents.IntentDispatched.v0",
|
| - bucket, GetUmaBucketsCustomRange());
|
| -}
|
| -
|
| -void RecordPickerShow(const UMABucket bucket, size_t installed) {
|
| - UMA_HISTOGRAM_CUSTOM_ENUMERATION("WebIntents.Picker.Show.v0",
|
| - bucket, GetUmaBucketsCustomRange());
|
| - RecordInstalledServiceCount(bucket, installed);
|
| -}
|
| -
|
| -void RecordPickerCancel(const UMABucket bucket) {
|
| - UMA_HISTOGRAM_CUSTOM_ENUMERATION("WebIntents.Picker.Cancel.v0",
|
| - bucket, GetUmaBucketsCustomRange());
|
| -}
|
| -
|
| -void RecordServiceInvoke(const UMABucket bucket) {
|
| - UMA_HISTOGRAM_CUSTOM_ENUMERATION("WebIntents.Service.Invoked.v0",
|
| - bucket, GetUmaBucketsCustomRange());
|
| -}
|
| -
|
| -void RecordChooseAnotherService(const UMABucket bucket) {
|
| - UMA_HISTOGRAM_CUSTOM_ENUMERATION("WebIntents.Service.ChooseAnother.v0",
|
| - bucket, GetUmaBucketsCustomRange());
|
| -}
|
| -
|
| -void RecordCWSExtensionInstalled(const UMABucket bucket) {
|
| - UMA_HISTOGRAM_CUSTOM_ENUMERATION("WebIntents.Service.CWSInstall.v0",
|
| - bucket, GetUmaBucketsCustomRange());
|
| -}
|
| -
|
| -void RecordServiceActiveDuration(
|
| - webkit_glue::WebIntentReplyType reply_type,
|
| - const base::TimeDelta& duration) {
|
| - switch (reply_type) {
|
| - case webkit_glue::WEB_INTENT_REPLY_SUCCESS:
|
| - UMA_HISTOGRAM_CUSTOM_TIMES("WebIntents.Service.ActiveDuration.Success",
|
| - duration,
|
| - base::TimeDelta::FromSeconds(kServiceActiveDurationMinSeconds),
|
| - base::TimeDelta::FromSeconds(kServiceActiveDurationMaxSeconds),
|
| - kServiceActiveTimeNumBuckets);
|
| - break;
|
| - case webkit_glue::WEB_INTENT_REPLY_INVALID:
|
| - case webkit_glue::WEB_INTENT_REPLY_FAILURE:
|
| - case webkit_glue::WEB_INTENT_PICKER_CANCELLED:
|
| - case webkit_glue::WEB_INTENT_SERVICE_CONTENTS_CLOSED:
|
| - UMA_HISTOGRAM_CUSTOM_TIMES("WebIntents.Service.ActiveDuration.Failure",
|
| - duration,
|
| - base::TimeDelta::FromSeconds(kServiceActiveDurationMinSeconds),
|
| - base::TimeDelta::FromSeconds(kServiceActiveDurationMaxSeconds),
|
| - kServiceActiveTimeNumBuckets);
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| - break;
|
| - }
|
| -}
|
| -
|
| -} // namespace web_intents
|
|
|