Chromium Code Reviews| Index: chrome/browser/extensions/file_manager_util.cc |
| =================================================================== |
| --- chrome/browser/extensions/file_manager_util.cc (revision 93828) |
| +++ chrome/browser/extensions/file_manager_util.cc (working copy) |
| @@ -5,6 +5,7 @@ |
| #include "base/json/json_writer.h" |
| #include "base/logging.h" |
| +#include "base/metrics/histogram.h" |
| #include "base/string_util.h" |
| #include "base/utf_string_conversions.h" |
| #include "base/values.h" |
| @@ -48,6 +49,15 @@ |
| */ |
| }; |
| +// List of all extensions we want to be shown in histogram that keep track of |
| +// files that were unsuccessfully tried to be opened. |
| +// The list has to be synced with histogram values. |
| +const char* kUMATrackingExtensions[] = { |
| + ".doc", ".docx", ".ppt", ".pptx", ".xls", ".xlsx", ".csv", ".zip", ".rar", |
| + ".asf", ".wma", ".wmv", ".mov", ".avi", ".mp4", ".mpg", ".log", ".rtf", |
| + ".odf", ".odp", ".ods", ".odt", ".pdf", "other" |
|
zel
2011/08/01 01:39:49
let's make "other" being the first one on the list
tbarzic
2011/08/02 18:05:54
Done.
|
| +}; |
| + |
| bool IsSupportedBrowserExtension(const char* ext) { |
| for (size_t i = 0; i < arraysize(kBrowserSupportedExtensions); i++) { |
| if (base::strcasecmp(ext, kBrowserSupportedExtensions[i]) == 0) { |
| @@ -66,6 +76,19 @@ |
| return false; |
| } |
| +// Returns index |ext| has in the |array|. If there is no |ext| in |array|, last |
| +// element's index is return (last element should have irrelevant value). |
| +int UMAExtensionIndex(const char *ext, |
| + const char** array, |
| + size_t array_size) { |
| + for (size_t i = 0; i < array_size; i++) { |
| + if (base::strcasecmp(ext, array[i]) == 0) { |
| + return i; |
| + } |
| + } |
| + return array_size - 1; |
| +} |
| + |
| // static |
| GURL FileManagerUtil::GetFileBrowserUrl() { |
| return GURL(kBaseFileBrowserUrl); |
| @@ -165,7 +188,14 @@ |
| return; |
| } |
| - // Unknown file type. Show an error message. |
| + // Unknown file type. Record UMA and show an error message. |
| + size_t extension_index = UMAExtensionIndex(ext.data(), |
| + kUMATrackingExtensions, |
| + arraysize(kUMATrackingExtensions)); |
| + UMA_HISTOGRAM_ENUMERATION("FileBrowser.OpeningFileType", |
|
zel
2011/08/01 01:39:49
you need to add this to histogram.xml file as well
tbarzic
2011/08/02 18:05:54
I know
|
| + extension_index, |
| + arraysize(kUMATrackingExtensions) - 1); |
| + |
| BrowserThread::PostTask( |
| BrowserThread::UI, FROM_HERE, |
| NewRunnableFunction( |