| Index: ash/wm/overview/window_selector.cc
|
| diff --git a/ash/wm/overview/window_selector.cc b/ash/wm/overview/window_selector.cc
|
| index a8aaab4cd57f36a69a3baaf395bb39016ccbcee3..f7f608750b78ce7be616dc9be42ace9d6f18e1b7 100644
|
| --- a/ash/wm/overview/window_selector.cc
|
| +++ b/ash/wm/overview/window_selector.cc
|
| @@ -95,8 +95,11 @@ WindowSelector::WindowSelector(const WindowList& windows,
|
| restore_focus_window_(aura::client::GetFocusClient(
|
| Shell::GetPrimaryRootWindow())->GetFocusedWindow()),
|
| ignore_activations_(false),
|
| + selected_grid_index_(0),
|
| overview_start_time_(base::Time::Now()),
|
| - selected_grid_index_(0) {
|
| + num_key_presses_(0),
|
| + num_items_(0),
|
| + num_closed_items_(0) {
|
| DCHECK(delegate_);
|
| Shell* shell = Shell::GetInstance();
|
| shell->OnOverviewModeStarting();
|
| @@ -105,7 +108,6 @@ WindowSelector::WindowSelector(const WindowList& windows,
|
| restore_focus_window_->AddObserver(this);
|
|
|
| const aura::Window::Windows root_windows = Shell::GetAllRootWindows();
|
| - size_t items = 0;
|
| for (aura::Window::Windows::const_iterator iter = root_windows.begin();
|
| iter != root_windows.end(); iter++) {
|
| // Observed switchable containers for newly created windows on all root
|
| @@ -119,12 +121,12 @@ WindowSelector::WindowSelector(const WindowList& windows,
|
| scoped_ptr<WindowGrid> grid(new WindowGrid(*iter, windows, this));
|
| if (grid->empty())
|
| continue;
|
| + num_items_ += grid->size();
|
| grid_list_.push_back(grid.release());
|
| - items += grid_list_.size();
|
| }
|
|
|
| DCHECK(!grid_list_.empty());
|
| - UMA_HISTOGRAM_COUNTS_100("Ash.WindowSelector.Items", items);
|
| + UMA_HISTOGRAM_COUNTS_100("Ash.WindowSelector.Items", num_items_);
|
|
|
| shell->activation_client()->AddObserver(this);
|
|
|
| @@ -169,9 +171,10 @@ WindowSelector::~WindowSelector() {
|
|
|
| shell->RemovePreTargetHandler(this);
|
| shell->GetScreen()->RemoveObserver(this);
|
| - UMA_HISTOGRAM_MEDIUM_TIMES(
|
| - "Ash.WindowSelector.TimeInOverview",
|
| - base::Time::Now() - overview_start_time_);
|
| + UMA_HISTOGRAM_MEDIUM_TIMES("Ash.WindowSelector.TimeInOverview",
|
| + base::Time::Now() - overview_start_time_);
|
| + UMA_HISTOGRAM_COUNTS_100("Ash.WindowSelector.OverviewClosedItems",
|
| + num_closed_items_);
|
|
|
| // TODO(nsatragno): Change this to OnOverviewModeEnded and move it to when
|
| // everything is done.
|
| @@ -206,21 +209,32 @@ void WindowSelector::OnKeyEvent(ui::KeyEvent* event) {
|
| CancelSelection();
|
| break;
|
| case ui::VKEY_UP:
|
| + num_key_presses_++;
|
| Move(WindowSelector::UP);
|
| break;
|
| case ui::VKEY_DOWN:
|
| + num_key_presses_++;
|
| Move(WindowSelector::DOWN);
|
| break;
|
| case ui::VKEY_RIGHT:
|
| + num_key_presses_++;
|
| Move(WindowSelector::RIGHT);
|
| break;
|
| case ui::VKEY_LEFT:
|
| + num_key_presses_++;
|
| Move(WindowSelector::LEFT);
|
| break;
|
| case ui::VKEY_RETURN:
|
| // Ignore if no item is selected.
|
| if (!grid_list_[selected_grid_index_]->is_selecting())
|
| return;
|
| + UMA_HISTOGRAM_COUNTS_100("Ash.WindowSelector.ArrowKeyPresses",
|
| + num_key_presses_);
|
| + UMA_HISTOGRAM_CUSTOM_COUNTS(
|
| + "Ash.WindowSelector.KeyPressesOverItemsRatio",
|
| + (num_key_presses_ * 100) / num_items_, 1, 300, 30);
|
| + Shell::GetInstance()->metrics()->RecordUserMetricsAction(
|
| + UMA_WINDOW_OVERVIEW_ENTER_KEY);
|
| wm::GetWindowState(grid_list_[selected_grid_index_]->
|
| SelectedWindow()->SelectionWindow())->Activate();
|
| break;
|
|
|