Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: chrome/browser/extensions/file_manager_util.cc

Issue 7465017: Adding UMA stats support for file open events. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 #include "chrome/browser/extensions/file_manager_util.h" 4 #include "chrome/browser/extensions/file_manager_util.h"
5 5
6 #include "base/json/json_writer.h" 6 #include "base/json/json_writer.h"
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/metrics/histogram.h"
8 #include "base/string_util.h" 9 #include "base/string_util.h"
9 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
10 #include "base/values.h" 11 #include "base/values.h"
11 #include "chrome/browser/chromeos/media/media_player.h" 12 #include "chrome/browser/chromeos/media/media_player.h"
12 #include "chrome/browser/platform_util.h" 13 #include "chrome/browser/platform_util.h"
13 #include "chrome/browser/profiles/profile.h" 14 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/ui/browser.h" 15 #include "chrome/browser/ui/browser.h"
15 #include "chrome/browser/ui/browser_list.h" 16 #include "chrome/browser/ui/browser_list.h"
16 #include "content/browser/browser_thread.h" 17 #include "content/browser/browser_thread.h"
17 #include "content/browser/user_metrics.h" 18 #include "content/browser/user_metrics.h"
(...skipping 23 matching lines...) Expand all
41 #if defined(GOOGLE_CHROME_BUILD) 42 #if defined(GOOGLE_CHROME_BUILD)
42 ".3gp", ".avi", ".mp3", ".mp4", ".m4v", ".mov", ".m4a", 43 ".3gp", ".avi", ".mp3", ".mp4", ".m4v", ".mov", ".m4a",
43 #endif 44 #endif
44 ".flac", ".ogm", ".ogv", ".ogx", ".ogg", ".oga", ".wav", ".webm", 45 ".flac", ".ogm", ".ogv", ".ogx", ".ogg", ".oga", ".wav", ".webm",
45 /* TODO(zelidrag): Add unsupported ones as we enable them: 46 /* TODO(zelidrag): Add unsupported ones as we enable them:
46 ".mkv", ".divx", ".xvid", ".wmv", ".asf", ".mpeg", ".mpg", 47 ".mkv", ".divx", ".xvid", ".wmv", ".asf", ".mpeg", ".mpg",
47 ".wma", ".aiff", 48 ".wma", ".aiff",
48 */ 49 */
49 }; 50 };
50 51
52 // List of all extensions we want to be shown in histogram that keep track of
53 // files that were unsuccessfully tried to be opened.
54 // The list has to be synced with histogram values.
55 const char* kUMATrackingExtensions[] = {
56 ".doc", ".docx", ".ppt", ".pptx", ".xls", ".xlsx", ".csv", ".zip", ".rar",
57 ".asf", ".wma", ".wmv", ".mov", ".avi", ".mp4", ".mpg", ".log", ".rtf",
58 ".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.
59 };
60
51 bool IsSupportedBrowserExtension(const char* ext) { 61 bool IsSupportedBrowserExtension(const char* ext) {
52 for (size_t i = 0; i < arraysize(kBrowserSupportedExtensions); i++) { 62 for (size_t i = 0; i < arraysize(kBrowserSupportedExtensions); i++) {
53 if (base::strcasecmp(ext, kBrowserSupportedExtensions[i]) == 0) { 63 if (base::strcasecmp(ext, kBrowserSupportedExtensions[i]) == 0) {
54 return true; 64 return true;
55 } 65 }
56 } 66 }
57 return false; 67 return false;
58 } 68 }
59 69
60 bool IsSupportedAVExtension(const char* ext) { 70 bool IsSupportedAVExtension(const char* ext) {
61 for (size_t i = 0; i < arraysize(kAVExtensions); i++) { 71 for (size_t i = 0; i < arraysize(kAVExtensions); i++) {
62 if (base::strcasecmp(ext, kAVExtensions[i]) == 0) { 72 if (base::strcasecmp(ext, kAVExtensions[i]) == 0) {
63 return true; 73 return true;
64 } 74 }
65 } 75 }
66 return false; 76 return false;
67 } 77 }
68 78
79 // Returns index |ext| has in the |array|. If there is no |ext| in |array|, last
80 // element's index is return (last element should have irrelevant value).
81 int UMAExtensionIndex(const char *ext,
82 const char** array,
83 size_t array_size) {
84 for (size_t i = 0; i < array_size; i++) {
85 if (base::strcasecmp(ext, array[i]) == 0) {
86 return i;
87 }
88 }
89 return array_size - 1;
90 }
91
69 // static 92 // static
70 GURL FileManagerUtil::GetFileBrowserUrl() { 93 GURL FileManagerUtil::GetFileBrowserUrl() {
71 return GURL(kBaseFileBrowserUrl); 94 return GURL(kBaseFileBrowserUrl);
72 } 95 }
73 96
74 // static 97 // static
75 GURL FileManagerUtil::GetMediaPlayerUrl() { 98 GURL FileManagerUtil::GetMediaPlayerUrl() {
76 return GURL(kMediaPlayerUrl); 99 return GURL(kMediaPlayerUrl);
77 } 100 }
78 101
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 if (!browser) 181 if (!browser)
159 return; 182 return;
160 MediaPlayer* mediaplayer = MediaPlayer::GetInstance(); 183 MediaPlayer* mediaplayer = MediaPlayer::GetInstance();
161 if (enqueue) 184 if (enqueue)
162 mediaplayer->EnqueueMediaFile(browser->profile(), full_path, NULL); 185 mediaplayer->EnqueueMediaFile(browser->profile(), full_path, NULL);
163 else 186 else
164 mediaplayer->ForcePlayMediaFile(browser->profile(), full_path, NULL); 187 mediaplayer->ForcePlayMediaFile(browser->profile(), full_path, NULL);
165 return; 188 return;
166 } 189 }
167 190
168 // Unknown file type. Show an error message. 191 // Unknown file type. Record UMA and show an error message.
192 size_t extension_index = UMAExtensionIndex(ext.data(),
193 kUMATrackingExtensions,
194 arraysize(kUMATrackingExtensions));
195 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
196 extension_index,
197 arraysize(kUMATrackingExtensions) - 1);
198
169 BrowserThread::PostTask( 199 BrowserThread::PostTask(
170 BrowserThread::UI, FROM_HERE, 200 BrowserThread::UI, FROM_HERE,
171 NewRunnableFunction( 201 NewRunnableFunction(
172 &platform_util::SimpleErrorBox, 202 &platform_util::SimpleErrorBox,
173 static_cast<gfx::NativeWindow>(NULL), 203 static_cast<gfx::NativeWindow>(NULL),
174 l10n_util::GetStringUTF16(IDS_FILEBROWSER_ERROR_TITLE), 204 l10n_util::GetStringUTF16(IDS_FILEBROWSER_ERROR_TITLE),
175 l10n_util::GetStringFUTF16(IDS_FILEBROWSER_ERROR_UNKNOWN_FILE_TYPE, 205 l10n_util::GetStringFUTF16(IDS_FILEBROWSER_ERROR_UNKNOWN_FILE_TYPE,
176 UTF8ToUTF16(full_path.BaseName().value())) 206 UTF8ToUTF16(full_path.BaseName().value()))
177 )); 207 ));
178 } 208 }
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 case SelectFileDialog::SELECT_OPEN_MULTI_FILE: 278 case SelectFileDialog::SELECT_OPEN_MULTI_FILE:
249 type_str = "open-multi-file"; 279 type_str = "open-multi-file";
250 break; 280 break;
251 281
252 default: 282 default:
253 NOTREACHED(); 283 NOTREACHED();
254 } 284 }
255 285
256 return type_str; 286 return type_str;
257 } 287 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698