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 { ...@@ -80,11 +80,9 @@ class AppListModelUpdater {
virtual app_list::AppListFolderItem* FindFolderItem( virtual app_list::AppListFolderItem* FindFolderItem(
const std::string& folder_id) = 0; const std::string& folder_id) = 0;
virtual bool FindItemIndexForTest(const std::string& id, size_t* index) = 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 std::map<std::string, size_t> GetIdToAppListIndexMap() = 0;
virtual size_t BadgedItemCount() = 0; virtual size_t BadgedItemCount() = 0;
// For SearchModel: // For SearchModel:
virtual bool TabletMode() = 0;
virtual bool SearchEngineIsGoogle() = 0; virtual bool SearchEngineIsGoogle() = 0;
protected: protected:
......
...@@ -52,37 +52,6 @@ ...@@ -52,37 +52,6 @@
#include "ui/keyboard/keyboard_util.h" #include "ui/keyboard/keyboard_util.h"
#include "ui/views/controls/webview/webview.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) AppListViewDelegate::AppListViewDelegate(AppListControllerDelegate* controller)
: controller_(controller), : controller_(controller),
profile_(nullptr), profile_(nullptr),
...@@ -208,11 +177,6 @@ void AppListViewDelegate::StartSearch(const base::string16& raw_query) { ...@@ -208,11 +177,6 @@ void AppListViewDelegate::StartSearch(const base::string16& raw_query) {
void AppListViewDelegate::OpenSearchResult(app_list::SearchResult* result, void AppListViewDelegate::OpenSearchResult(app_list::SearchResult* result,
int event_flags) { 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); search_controller_->OpenResult(result, event_flags);
} }
......
...@@ -181,14 +181,6 @@ bool ChromeAppListModelUpdater::FindItemIndexForTest(const std::string& id, ...@@ -181,14 +181,6 @@ bool ChromeAppListModelUpdater::FindItemIndexForTest(const std::string& id,
return model_->top_level_item_list()->FindItemIndex(id, index); 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() { bool ChromeAppListModelUpdater::SearchEngineIsGoogle() {
return search_model_->search_engine_is_google(); return search_model_->search_engine_is_google();
} }
......
...@@ -73,8 +73,6 @@ class ChromeAppListModelUpdater : public app_list::AppListModelObserver, ...@@ -73,8 +73,6 @@ class ChromeAppListModelUpdater : public app_list::AppListModelObserver,
app_list::AppListFolderItem* FindFolderItem( app_list::AppListFolderItem* FindFolderItem(
const std::string& folder_id) override; const std::string& folder_id) override;
bool FindItemIndexForTest(const std::string& id, size_t* index) override; bool FindItemIndexForTest(const std::string& id, size_t* index) override;
bool TabletMode() override;
app_list::AppListViewState StateFullscreen() override;
bool SearchEngineIsGoogle() override; bool SearchEngineIsGoogle() override;
std::map<std::string, size_t> GetIdToAppListIndexMap() override; std::map<std::string, size_t> GetIdToAppListIndexMap() override;
size_t BadgedItemCount() override; size_t BadgedItemCount() override;
......
...@@ -88,14 +88,6 @@ app_list::AppListFolderItem* FakeAppListModelUpdater::FindFolderItem( ...@@ -88,14 +88,6 @@ app_list::AppListFolderItem* FakeAppListModelUpdater::FindFolderItem(
return nullptr; return nullptr;
} }
bool FakeAppListModelUpdater::TabletMode() {
return false;
}
app_list::AppListViewState FakeAppListModelUpdater::StateFullscreen() {
return app_list::AppListViewState::CLOSED;
}
std::map<std::string, size_t> std::map<std::string, size_t>
FakeAppListModelUpdater::GetIdToAppListIndexMap() { FakeAppListModelUpdater::GetIdToAppListIndexMap() {
std::map<std::string, size_t> id_to_app_list_index; std::map<std::string, size_t> id_to_app_list_index;
......
...@@ -43,11 +43,9 @@ class FakeAppListModelUpdater : public AppListModelUpdater { ...@@ -43,11 +43,9 @@ class FakeAppListModelUpdater : public AppListModelUpdater {
app_list::AppListFolderItem* FindFolderItem( app_list::AppListFolderItem* FindFolderItem(
const std::string& folder_id) override; const std::string& folder_id) override;
bool FindItemIndexForTest(const std::string& id, size_t* index) override; bool FindItemIndexForTest(const std::string& id, size_t* index) override;
app_list::AppListViewState StateFullscreen() override;
std::map<std::string, size_t> GetIdToAppListIndexMap() override; std::map<std::string, size_t> GetIdToAppListIndexMap() override;
size_t BadgedItemCount() override; size_t BadgedItemCount() override;
// For SearchModel: // For SearchModel:
bool TabletMode() override;
bool SearchEngineIsGoogle() override; bool SearchEngineIsGoogle() override;
const std::vector<std::unique_ptr<app_list::SearchResult>>& search_results() const std::vector<std::unique_ptr<app_list::SearchResult>>& search_results()
const { const {
......
...@@ -12,6 +12,8 @@ component("app_list") { ...@@ -12,6 +12,8 @@ component("app_list") {
"app_list_export.h", "app_list_export.h",
"app_list_features.cc", "app_list_features.cc",
"app_list_features.h", "app_list_features.h",
"app_list_metrics.cc",
"app_list_metrics.h",
"app_list_switches.cc", "app_list_switches.cc",
"app_list_switches.h", "app_list_switches.h",
"app_list_util.cc", "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 @@ ...@@ -4,12 +4,15 @@
#include "ui/app_list/views/search_result_answer_card_view.h" #include "ui/app_list/views/search_result_answer_card_view.h"
#include <memory>
#include <utility>
#include <vector> #include <vector>
#include "ash/app_list/model/search/search_result_observer.h" #include "ash/app_list/model/search/search_result_observer.h"
#include "ui/accessibility/ax_node.h" #include "ui/accessibility/ax_node.h"
#include "ui/accessibility/ax_node_data.h" #include "ui/accessibility/ax_node_data.h"
#include "ui/app_list/app_list_constants.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/app_list/app_list_view_delegate.h"
#include "ui/views/background.h" #include "ui/views/background.h"
#include "ui/views/controls/button/button.h" #include "ui/views/controls/button/button.h"
...@@ -114,8 +117,11 @@ class SearchResultAnswerCardView::SearchAnswerContainerView ...@@ -114,8 +117,11 @@ class SearchResultAnswerCardView::SearchAnswerContainerView
// views::ButtonListener overrides: // views::ButtonListener overrides:
void ButtonPressed(views::Button* sender, const ui::Event& event) override { void ButtonPressed(views::Button* sender, const ui::Event& event) override {
DCHECK(sender == this); 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()); view_delegate_->OpenSearchResult(search_result_, event.flags());
}
} }
// SearchResultObserver overrides: // SearchResultObserver overrides:
......
...@@ -5,12 +5,14 @@ ...@@ -5,12 +5,14 @@
#include "ui/app_list/views/search_result_list_view.h" #include "ui/app_list/views/search_result_list_view.h"
#include <algorithm> #include <algorithm>
#include <memory>
#include <vector> #include <vector>
#include "ash/app_list/model/search/search_result.h" #include "ash/app_list/model/search/search_result.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/message_loop/message_loop.h" #include "base/message_loop/message_loop.h"
#include "base/time/time.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/app_list_view_delegate.h"
#include "ui/app_list/views/app_list_main_view.h" #include "ui/app_list/views/app_list_main_view.h"
#include "ui/app_list/views/search_result_view.h" #include "ui/app_list/views/search_result_view.h"
...@@ -163,8 +165,11 @@ int SearchResultListView::GetHeightForWidth(int w) const { ...@@ -163,8 +165,11 @@ int SearchResultListView::GetHeightForWidth(int w) const {
void SearchResultListView::SearchResultActivated(SearchResultView* view, void SearchResultListView::SearchResultActivated(SearchResultView* view,
int event_flags) { 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); view_delegate_->OpenSearchResult(view->result(), event_flags);
}
} }
void SearchResultListView::SearchResultActionActivated(SearchResultView* view, void SearchResultListView::SearchResultActionActivated(SearchResultView* view,
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "ui/accessibility/ax_node_data.h" #include "ui/accessibility/ax_node_data.h"
#include "ui/app_list/app_list_constants.h" #include "ui/app_list/app_list_constants.h"
#include "ui/app_list/app_list_features.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/app_list_view_delegate.h"
#include "ui/app_list/pagination_model.h" #include "ui/app_list/pagination_model.h"
#include "ui/app_list/vector_icons/vector_icons.h" #include "ui/app_list/vector_icons/vector_icons.h"
...@@ -258,6 +259,8 @@ void SearchResultTileItemView::ButtonPressed(views::Button* sender, ...@@ -258,6 +259,8 @@ void SearchResultTileItemView::ButtonPressed(views::Button* sender,
if (IsSuggestedAppTile()) if (IsSuggestedAppTile())
LogAppLaunch(); LogAppLaunch();
RecordSearchResultOpenSource(item_, view_delegate_->GetModel(),
view_delegate_->GetSearchModel());
view_delegate_->OpenSearchResult(item_, event.flags()); view_delegate_->OpenSearchResult(item_, event.flags());
} }
...@@ -289,6 +292,8 @@ bool SearchResultTileItemView::OnKeyPressed(const ui::KeyEvent& event) { ...@@ -289,6 +292,8 @@ bool SearchResultTileItemView::OnKeyPressed(const ui::KeyEvent& event) {
if (IsSuggestedAppTile()) if (IsSuggestedAppTile())
LogAppLaunch(); LogAppLaunch();
RecordSearchResultOpenSource(item_, view_delegate_->GetModel(),
view_delegate_->GetSearchModel());
view_delegate_->OpenSearchResult(item_, event.flags()); view_delegate_->OpenSearchResult(item_, event.flags());
return true; 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