Commit a22eb8ca authored by Jiaquan He's avatar Jiaquan He Committed by Commit Bot

app_list: move some uma out of chrome.

StateFullscreen and TabletMode is no longer needed in chrome.

Bug: 733662
Change-Id: Ib25f89745e989042e321c597fe62ded72bc0cffa
Reviewed-on: https://chromium-review.googlesource.com/884376
Commit-Queue: Jiaquan He <hejq@google.com>
Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531734}
parent c3627e8a
......@@ -80,11 +80,9 @@ class AppListModelUpdater {
virtual app_list::AppListFolderItem* FindFolderItem(
const std::string& folder_id) = 0;
virtual bool FindItemIndexForTest(const std::string& id, size_t* index) = 0;
virtual app_list::AppListViewState StateFullscreen() = 0;
virtual std::map<std::string, size_t> GetIdToAppListIndexMap() = 0;
virtual size_t BadgedItemCount() = 0;
// For SearchModel:
virtual bool TabletMode() = 0;
virtual bool SearchEngineIsGoogle() = 0;
protected:
......
......@@ -52,37 +52,6 @@
#include "ui/keyboard/keyboard_util.h"
#include "ui/views/controls/webview/webview.h"
namespace {
// The UMA histogram that logs which state search results are opened from.
const char kAppListSearchResultOpenSourceHistogram[] =
"Apps.AppListSearchResultOpenedSource";
// The different sources from which a search result is displayed. These values
// are written to logs. New enum values can be added, but existing enums must
// never be renumbered or deleted and reused.
enum ApplistSearchResultOpenedSource {
kHalfClamshell = 0,
kFullscreenClamshell = 1,
kFullscreenTablet = 2,
kMaxApplistSearchResultOpenedSource = 3,
};
void RecordHistogram(bool is_tablet_mode, app_list::AppListViewState state) {
ApplistSearchResultOpenedSource source;
if (is_tablet_mode) {
source = kFullscreenTablet;
} else {
source = state == app_list::AppListViewState::HALF ? kHalfClamshell
: kFullscreenClamshell;
}
UMA_HISTOGRAM_ENUMERATION(kAppListSearchResultOpenSourceHistogram, source,
kMaxApplistSearchResultOpenedSource);
}
} // namespace
AppListViewDelegate::AppListViewDelegate(AppListControllerDelegate* controller)
: controller_(controller),
profile_(nullptr),
......@@ -208,11 +177,6 @@ void AppListViewDelegate::StartSearch(const base::string16& raw_query) {
void AppListViewDelegate::OpenSearchResult(app_list::SearchResult* result,
int event_flags) {
// Record the search metric if the SearchResult is not a suggested app.
if (result->display_type() != app_list::SearchResult::DISPLAY_RECOMMENDATION)
RecordHistogram(model_updater_->TabletMode(),
model_updater_->StateFullscreen());
search_controller_->OpenResult(result, event_flags);
}
......
......@@ -181,14 +181,6 @@ bool ChromeAppListModelUpdater::FindItemIndexForTest(const std::string& id,
return model_->top_level_item_list()->FindItemIndex(id, index);
}
bool ChromeAppListModelUpdater::TabletMode() {
return search_model_->tablet_mode();
}
app_list::AppListViewState ChromeAppListModelUpdater::StateFullscreen() {
return model_->state_fullscreen();
}
bool ChromeAppListModelUpdater::SearchEngineIsGoogle() {
return search_model_->search_engine_is_google();
}
......
......@@ -73,8 +73,6 @@ class ChromeAppListModelUpdater : public app_list::AppListModelObserver,
app_list::AppListFolderItem* FindFolderItem(
const std::string& folder_id) override;
bool FindItemIndexForTest(const std::string& id, size_t* index) override;
bool TabletMode() override;
app_list::AppListViewState StateFullscreen() override;
bool SearchEngineIsGoogle() override;
std::map<std::string, size_t> GetIdToAppListIndexMap() override;
size_t BadgedItemCount() override;
......
......@@ -88,14 +88,6 @@ app_list::AppListFolderItem* FakeAppListModelUpdater::FindFolderItem(
return nullptr;
}
bool FakeAppListModelUpdater::TabletMode() {
return false;
}
app_list::AppListViewState FakeAppListModelUpdater::StateFullscreen() {
return app_list::AppListViewState::CLOSED;
}
std::map<std::string, size_t>
FakeAppListModelUpdater::GetIdToAppListIndexMap() {
std::map<std::string, size_t> id_to_app_list_index;
......
......@@ -43,11 +43,9 @@ class FakeAppListModelUpdater : public AppListModelUpdater {
app_list::AppListFolderItem* FindFolderItem(
const std::string& folder_id) override;
bool FindItemIndexForTest(const std::string& id, size_t* index) override;
app_list::AppListViewState StateFullscreen() override;
std::map<std::string, size_t> GetIdToAppListIndexMap() override;
size_t BadgedItemCount() override;
// For SearchModel:
bool TabletMode() override;
bool SearchEngineIsGoogle() override;
const std::vector<std::unique_ptr<app_list::SearchResult>>& search_results()
const {
......
......@@ -12,6 +12,8 @@ component("app_list") {
"app_list_export.h",
"app_list_features.cc",
"app_list_features.h",
"app_list_metrics.cc",
"app_list_metrics.h",
"app_list_switches.cc",
"app_list_switches.h",
"app_list_util.cc",
......
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/app_list/app_list_metrics.h"
#include "ash/app_list/model/app_list_model.h"
#include "ash/app_list/model/search/search_model.h"
#include "ash/app_list/model/search/search_result.h"
#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
namespace app_list {
// The UMA histogram that logs which state search results are opened from.
constexpr char kAppListSearchResultOpenSourceHistogram[] =
"Apps.AppListSearchResultOpenedSource";
// The different sources from which a search result is displayed. These values
// are written to logs. New enum values can be added, but existing enums must
// never be renumbered or deleted and reused.
enum class ApplistSearchResultOpenedSource {
kHalfClamshell = 0,
kFullscreenClamshell = 1,
kFullscreenTablet = 2,
kMaxApplistSearchResultOpenedSource = 3,
};
APP_LIST_EXPORT void RecordSearchResultOpenSource(
const SearchResult* result,
const AppListModel* model,
const SearchModel* search_model) {
// Record the search metric if the SearchResult is not a suggested app.
if (result->display_type() == SearchResult::DISPLAY_RECOMMENDATION)
return;
ApplistSearchResultOpenedSource source;
AppListViewState state = model->state_fullscreen();
if (search_model->tablet_mode()) {
source = ApplistSearchResultOpenedSource::kFullscreenTablet;
} else {
source = state == AppListViewState::HALF
? ApplistSearchResultOpenedSource::kHalfClamshell
: ApplistSearchResultOpenedSource::kFullscreenClamshell;
}
UMA_HISTOGRAM_ENUMERATION(
kAppListSearchResultOpenSourceHistogram, source,
ApplistSearchResultOpenedSource::kMaxApplistSearchResultOpenedSource);
}
} // namespace app_list
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_APP_LIST_APP_LIST_METRICS_H_
#define UI_APP_LIST_APP_LIST_METRICS_H_
#include "ui/app_list/app_list_export.h"
namespace app_list {
class AppListModel;
class SearchModel;
class SearchResult;
APP_LIST_EXPORT void RecordSearchResultOpenSource(
const SearchResult* result,
const AppListModel* model,
const SearchModel* search_model);
} // namespace app_list
#endif // UI_APP_LIST_APP_LIST_METRICS_H_
......@@ -4,12 +4,15 @@
#include "ui/app_list/views/search_result_answer_card_view.h"
#include <memory>
#include <utility>
#include <vector>
#include "ash/app_list/model/search/search_result_observer.h"
#include "ui/accessibility/ax_node.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/app_list/app_list_constants.h"
#include "ui/app_list/app_list_metrics.h"
#include "ui/app_list/app_list_view_delegate.h"
#include "ui/views/background.h"
#include "ui/views/controls/button/button.h"
......@@ -114,8 +117,11 @@ class SearchResultAnswerCardView::SearchAnswerContainerView
// views::ButtonListener overrides:
void ButtonPressed(views::Button* sender, const ui::Event& event) override {
DCHECK(sender == this);
if (search_result_)
if (search_result_) {
RecordSearchResultOpenSource(search_result_, view_delegate_->GetModel(),
view_delegate_->GetSearchModel());
view_delegate_->OpenSearchResult(search_result_, event.flags());
}
}
// SearchResultObserver overrides:
......
......@@ -5,12 +5,14 @@
#include "ui/app_list/views/search_result_list_view.h"
#include <algorithm>
#include <memory>
#include <vector>
#include "ash/app_list/model/search/search_result.h"
#include "base/bind.h"
#include "base/message_loop/message_loop.h"
#include "base/time/time.h"
#include "ui/app_list/app_list_metrics.h"
#include "ui/app_list/app_list_view_delegate.h"
#include "ui/app_list/views/app_list_main_view.h"
#include "ui/app_list/views/search_result_view.h"
......@@ -163,8 +165,11 @@ int SearchResultListView::GetHeightForWidth(int w) const {
void SearchResultListView::SearchResultActivated(SearchResultView* view,
int event_flags) {
if (view_delegate_ && view->result())
if (view_delegate_ && view->result()) {
RecordSearchResultOpenSource(view->result(), view_delegate_->GetModel(),
view_delegate_->GetSearchModel());
view_delegate_->OpenSearchResult(view->result(), event_flags);
}
}
void SearchResultListView::SearchResultActionActivated(SearchResultView* view,
......
......@@ -13,6 +13,7 @@
#include "ui/accessibility/ax_node_data.h"
#include "ui/app_list/app_list_constants.h"
#include "ui/app_list/app_list_features.h"
#include "ui/app_list/app_list_metrics.h"
#include "ui/app_list/app_list_view_delegate.h"
#include "ui/app_list/pagination_model.h"
#include "ui/app_list/vector_icons/vector_icons.h"
......@@ -258,6 +259,8 @@ void SearchResultTileItemView::ButtonPressed(views::Button* sender,
if (IsSuggestedAppTile())
LogAppLaunch();
RecordSearchResultOpenSource(item_, view_delegate_->GetModel(),
view_delegate_->GetSearchModel());
view_delegate_->OpenSearchResult(item_, event.flags());
}
......@@ -289,6 +292,8 @@ bool SearchResultTileItemView::OnKeyPressed(const ui::KeyEvent& event) {
if (IsSuggestedAppTile())
LogAppLaunch();
RecordSearchResultOpenSource(item_, view_delegate_->GetModel(),
view_delegate_->GetSearchModel());
view_delegate_->OpenSearchResult(item_, event.flags());
return true;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment