Index: ash/touch/touch_uma.cc |
diff --git a/ash/touch/touch_uma.cc b/ash/touch/touch_uma.cc |
index 729a6e4e6f8d487c29da77ec0832508816db217f..ed66bb2b9133b9f6433eaba369c06f7f30ba5be8 100644 |
--- a/ash/touch/touch_uma.cc |
+++ b/ash/touch/touch_uma.cc |
@@ -30,6 +30,9 @@ enum GestureActionType { |
GESTURE_DESKTOP_PINCH, |
GESTURE_WEBPAGE_PINCH, |
GESTURE_WEBPAGE_SCROLL, |
+ GESTURE_WEBPAGE_TAP, |
+ GESTURE_TABSTRIP_TAP, |
+ GESTURE_BEZEL_DOWN, |
// NOTE: Add new action types only immediately above this line. Also, make sure |
// the enum list in tools/histogram/histograms.xml is updated with any change in |
// here. |
@@ -98,6 +101,8 @@ GestureActionType FindGestureActionType(aura::Window* window, |
if (!window || window->GetRootWindow() == window) { |
if (event.type() == ui::ET_GESTURE_SCROLL_BEGIN) |
return GESTURE_BEZEL_SCROLL; |
+ if (event.type() == ui::ET_GESTURE_BEGIN) |
+ return GESTURE_BEZEL_DOWN; |
return GESTURE_UNKNOWN; |
} |
@@ -118,6 +123,8 @@ GestureActionType FindGestureActionType(aura::Window* window, |
return GESTURE_WEBPAGE_PINCH; |
if (event.type() == ui::ET_GESTURE_SCROLL_BEGIN) |
return GESTURE_WEBPAGE_SCROLL; |
+ if (event.type() == ui::ET_GESTURE_TAP) |
+ return GESTURE_WEBPAGE_TAP; |
return GESTURE_UNKNOWN; |
} |
@@ -139,6 +146,8 @@ GestureActionType FindGestureActionType(aura::Window* window, |
return GESTURE_TABSTRIP_SCROLL; |
if (event.type() == ui::ET_GESTURE_PINCH_BEGIN) |
return GESTURE_TABSTRIP_PINCH; |
+ if (event.type() == ui::ET_GESTURE_TAP) |
+ return GESTURE_TABSTRIP_TAP; |
return GESTURE_UNKNOWN; |
} |
@@ -273,10 +282,10 @@ void TouchUMA::RecordTouchEvent(aura::Window* target, |
} |
// Record the location of the touch points. |
- const int kBucketCount = 100; |
+ const int kBucketCountForLocation = 100; |
const gfx::Rect bounds = target->GetRootWindow()->bounds(); |
- const int bucket_size_x = bounds.width() / kBucketCount; |
- const int bucket_size_y = bounds.height() / kBucketCount; |
+ const int bucket_size_x = bounds.width() / kBucketCountForLocation; |
+ const int bucket_size_y = bounds.height() / kBucketCountForLocation; |
gfx::Point position = event.root_location(); |
@@ -299,19 +308,18 @@ void TouchUMA::RecordTouchEvent(aura::Window* target, |
#else |
position = ui::EventLocationFromNative(event.native_event()); |
#endif |
+ position = position.Scale(1. / target->layer()->device_scale_factor()); |
Ilya Sherman
2012/08/14 18:54:01
nit: I'm not 100% sure of this, but I think Chromi
sadrul
2012/08/14 19:57:05
It looks like we use "1." in other places in the c
|
} |
position.set_x(std::min(bounds.width() - 1, std::max(0, position.x()))); |
position.set_y(std::min(bounds.height() - 1, std::max(0, position.y()))); |
- STATIC_HISTOGRAM_POINTER_BLOCK("Ash.TouchPositionX", |
- Add(position.x() / bucket_size_x), |
- base::LinearHistogram::FactoryGet("Ash.TouchPositionX", 1, kBucketCount, |
- kBucketCount + 1, base::Histogram::kUmaTargetedHistogramFlag)); |
- STATIC_HISTOGRAM_POINTER_BLOCK("Ash.TouchPositionY", |
- Add(position.y() / bucket_size_y), |
- base::LinearHistogram::FactoryGet("Ash.TouchPositionY", 1, kBucketCount, |
- kBucketCount + 1, base::Histogram::kUmaTargetedHistogramFlag)); |
+ UMA_HISTOGRAM_CUSTOM_COUNTS("Ash.TouchPositionX", |
+ position.x() / bucket_size_x, |
+ 0, kBucketCountForLocation, kBucketCountForLocation + 1); |
+ UMA_HISTOGRAM_CUSTOM_COUNTS("Ash.TouchPositionY", |
+ position.y() / bucket_size_y, |
+ 0, kBucketCountForLocation, kBucketCountForLocation + 1); |
if (event.type() == ui::ET_TOUCH_PRESSED) { |
Shell::GetInstance()->delegate()->RecordUserMetricsAction( |
@@ -336,9 +344,8 @@ void TouchUMA::RecordTouchEvent(aura::Window* target, |
// Record the number of touch-points currently active for the window. |
const int kMaxTouchPoints = 10; |
UMA_HISTOGRAM_CUSTOM_COUNTS("Ash.ActiveTouchPoints", |
- std::min(static_cast<int>(details->last_start_time_.size()), |
- kMaxTouchPoints), |
- 1, kMaxTouchPoints, kMaxTouchPoints); |
+ details->last_start_time_.size(), |
+ 1, kMaxTouchPoints, kMaxTouchPoints + 1); |
Ilya Sherman
2012/08/14 18:54:01
Note that this change will probably cause one of t
sadrul
2012/08/14 19:57:05
Thanks for the heads-up. I think at this point, th
|
} else if (event.type() == ui::ET_TOUCH_RELEASED) { |
if (details->last_start_time_.count(event.touch_id())) { |
base::TimeDelta duration = event.time_stamp() - |