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

Unified Diff: chrome/browser/media_gallery/media_device_notifications_chromeos.cc

Issue 10830003: Extract and dispatch device uuid in media device attached notification message. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address review comments. Created 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media_gallery/media_device_notifications_chromeos.cc
diff --git a/chrome/browser/media_gallery/media_device_notifications_chromeos.cc b/chrome/browser/media_gallery/media_device_notifications_chromeos.cc
index ae45d1563fb26fa80438c33ca086cd80a1332b80..970a6c0cc21fd6f5fbc368e6e6a2f8546930e40f 100644
--- a/chrome/browser/media_gallery/media_device_notifications_chromeos.cc
+++ b/chrome/browser/media_gallery/media_device_notifications_chromeos.cc
@@ -8,6 +8,7 @@
#include "base/file_path.h"
#include "base/logging.h"
+#include "base/metrics/histogram.h"
#include "base/stl_util.h"
#include "base/string_number_conversions.h"
#include "base/utf_string_conversions.h"
@@ -16,10 +17,21 @@
namespace chromeos {
+namespace {
+
+std::string GetDeviceUuid(const std::string& source_path) {
+ // Get the media device uuid if exists.
+ const disks::DiskMountManager::DiskMap& disks =
+ disks::DiskMountManager::GetInstance()->disks();
+ disks::DiskMountManager::DiskMap::const_iterator it = disks.find(source_path);
+ return it == disks.end() ? std::string() : it->second->fs_uuid();
+}
+
+} // namespace
+
using content::BrowserThread;
-MediaDeviceNotifications::MediaDeviceNotifications()
- : current_device_id_(0) {
+MediaDeviceNotifications::MediaDeviceNotifications() {
DCHECK(disks::DiskMountManager::GetInstance());
disks::DiskMountManager::GetInstance()->AddObserver(this);
}
@@ -101,7 +113,21 @@ void MediaDeviceNotifications::AddMountedPathOnUIThread(
NOTREACHED();
return;
}
- const std::string device_id_str = base::IntToString(current_device_id_++);
+
+ // Get the media device uuid if exists.
+ std::string device_id_str = GetDeviceUuid(mount_info.source_path);
+
+ // Keep track of device uuid, to see how often we receive empty uuid values.
+ static base::Histogram* media_device_uuid_available(NULL);
jar (doing other things) 2012/07/27 17:48:48 Why didn't you use the UMA_HISTOGRAM_BOOLEAN() mac
kmadhusu 2012/07/27 18:30:31 I saw a couple of sample code doing this. So I tho
+ if (!media_device_uuid_available) {
+ media_device_uuid_available = base::BooleanHistogram::FactoryGet(
+ "MediaDeviceNotification.device_uuid_available",
+ base::Histogram::kUmaTargetedHistogramFlag);
+ }
+ media_device_uuid_available->AddBoolean(!device_id_str.empty());
+ if (device_id_str.empty())
+ return;
+
mount_map_.insert(std::make_pair(mount_info.mount_path, device_id_str));
base::SystemMonitor::Get()->ProcessMediaDeviceAttached(
device_id_str,
« no previous file with comments | « chrome/browser/media_gallery/media_device_notifications_chromeos.h ('k') | chromeos/dbus/cros_disks_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698