diff --git a/chrome/browser/extensions/api/media_galleries/media_galleries_api.cc b/chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
index 99ea596638bf30..f491887447b287 100644
--- a/chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
+++ b/chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
@@ -326,6 +326,7 @@ void MediaGalleriesEventRouter::OnScanCancelled(
void MediaGalleriesEventRouter::OnScanFinished(
const std::string& extension_id, int gallery_count,
const MediaGalleryScanResult& file_counts) {
+ media_galleries::UsageCount(media_galleries::SCAN_FINISHED);
MediaGalleries::ScanProgressDetails details;
details.type = MediaGalleries::SCAN_PROGRESS_TYPE_FINISH;
details.gallery_count.reset(new int(gallery_count));
diff --git a/chrome/browser/media_galleries/media_galleries_dialog_controller.cc b/chrome/browser/media_galleries/media_galleries_dialog_controller.cc
index bdac43a15f71db..033aa5e500c854 100644
--- a/chrome/browser/media_galleries/media_galleries_dialog_controller.cc
+++ b/chrome/browser/media_galleries/media_galleries_dialog_controller.cc
@@ -259,6 +259,7 @@ void MediaGalleriesDialogController::DidForgetGallery(
// TODO(scr): remove from new_galleries_ if it's in there. Should
// new_galleries be a set? Why don't new_galleries allow context clicking?
DCHECK(ContainsKey(known_galleries_, pref_id));
+ media_galleries::UsageCount(media_galleries::DIALOG_FORGET_GALLERY);
forgotten_gallery_ids_.insert(pref_id);
dialog_->UpdateGalleries();
}
diff --git a/chrome/browser/media_galleries/media_galleries_histograms.h b/chrome/browser/media_galleries/media_galleries_histograms.h
index a5b7d9d3f2f0c9..a13ad5ef688b6e 100644
--- a/chrome/browser/media_galleries/media_galleries_histograms.h
+++ b/chrome/browser/media_galleries/media_galleries_histograms.h
@@ -25,6 +25,11 @@ enum MediaGalleriesUsages {
START_MEDIA_SCAN,
CANCEL_MEDIA_SCAN,
ADD_SCAN_RESULTS,
+ SCAN_FINISHED,
+ ADD_SCAN_RESULTS_CANCELLED,
+ ADD_SCAN_RESULTS_ACCEPTED,
+ ADD_SCAN_RESULTS_FORGET_GALLERY,
+ DIALOG_FORGET_GALLERY,
MEDIA_GALLERIES_NUM_USAGES
};
diff --git a/chrome/browser/media_galleries/media_galleries_scan_result_dialog_controller.cc b/chrome/browser/media_galleries/media_galleries_scan_result_dialog_controller.cc
index 1cdc5bb12b665a..dc252c91d7afae 100644
--- a/chrome/browser/media_galleries/media_galleries_scan_result_dialog_controller.cc
+++ b/chrome/browser/media_galleries/media_galleries_scan_result_dialog_controller.cc
@@ -9,6 +9,7 @@
#include "base/bind.h"
#include "base/logging.h"
+#include "base/metrics/histogram.h"
#include "base/stl_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
@@ -171,6 +172,7 @@ void MediaGalleriesScanResultDialogController::DidClickOpenFolderViewer(
void MediaGalleriesScanResultDialogController::DidForgetGallery(
MediaGalleryPrefId pref_id) {
+ media_galleries::UsageCount(media_galleries::ADD_SCAN_RESULTS_FORGET_GALLERY);
results_to_remove_.insert(pref_id);
scan_results_.erase(pref_id);
dialog_->UpdateResults();
@@ -185,6 +187,9 @@ void MediaGalleriesScanResultDialogController::DialogFinished(bool accepted) {
if (accepted) {
DCHECK(preferences_);
+ media_galleries::UsageCount(media_galleries::ADD_SCAN_RESULTS_ACCEPTED);
+ int granted = 0;
+ int total = 0;
for (ScanResults::const_iterator it = scan_results_.begin();
it != scan_results_.end();
++it) {
@@ -192,13 +197,21 @@ void MediaGalleriesScanResultDialogController::DialogFinished(bool accepted) {
bool changed = preferences_->SetGalleryPermissionForExtension(
*extension_, it->first, true);
DCHECK(changed);
+ granted++;
}
+ total++;
+ }
+ if (total > 0) {
+ UMA_HISTOGRAM_PERCENTAGE("MediaGalleries.ScanGalleriesGranted",
+ (granted * 100 / total));
}
for (MediaGalleryPrefIdSet::const_iterator it = results_to_remove_.begin();
it != results_to_remove_.end();
++it) {
preferences_->ForgetGalleryById(*it);
}
+ } else {
+ media_galleries::UsageCount(media_galleries::ADD_SCAN_RESULTS_CANCELLED);
}
on_finish_.Run();
diff --git a/chrome/browser/media_galleries/media_scan_manager.cc b/chrome/browser/media_galleries/media_scan_manager.cc
index 005a15dca7a7fb..b3020d34942a5f 100644
--- a/chrome/browser/media_galleries/media_scan_manager.cc
+++ b/chrome/browser/media_galleries/media_scan_manager.cc
@@ -7,6 +7,7 @@
#include "base/file_util.h"
#include "base/files/file_enumerator.h"
#include "base/logging.h"
+#include "base/metrics/histogram.h"
#include "base/time/time.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/extension_service.h"
@@ -205,6 +206,8 @@ void AddScanResultsForProfile(
gallery.last_attach_time, file_counts.audio_count,
file_counts.image_count, file_counts.video_count);
}
+ UMA_HISTOGRAM_COUNTS_10000("MediaGalleries.ScanGalleriesPopulated",
+ unique_found_folders.size() + to_update.size());
}
// A single directory may contain many folders with media in them, without
@@ -461,6 +464,8 @@ void MediaScanManager::OnScanCompleted(
return;
}
+ UMA_HISTOGRAM_COUNTS_10000("MediaGalleries.ScanDirectoriesFound",
+ found_folders.size());
content::BrowserThread::PostTaskAndReplyWithResult(
content::BrowserThread::FILE, FROM_HERE,
base::Bind(FindContainerScanResults,
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 668bf1496e76eb..2ff86f7ad18d4e 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -7398,6 +7398,25 @@ other types of suffix sets.
+
+
+ The number of directories with media files found during a scan.
+
+
+
+
+
+ The percentage of galleries accepted (not deselected) from the scan result
+ dialog.
+
+
+
+
+
+ The number of galleries added or updated in preferences after a scan.
+
+
+
Various usage counts for media galleries.
@@ -29057,9 +29076,9 @@ other types of suffix sets.
-
-
-
+
+
+
@@ -29069,7 +29088,16 @@ other types of suffix sets.
-
+
+
+
+
+
+
+
+
+
+