Commit 03640fa2 authored by Jiaquan He's avatar Jiaquan He Committed by Commit Bot

app_list: pass a pointer to the model updater into every search result.

This commit is a preflight CL for app list search migration. It passes
into every search result a pointer to the model updater, so that changes
to search results can be synced to Ash.

Bug: 733662
Change-Id: I6ff93636248e48ed0d012da512e440b8511a9d22
Reviewed-on: https://chromium-review.googlesource.com/999295
Commit-Queue: Jiaquan He <hejq@google.com>
Reviewed-by: default avatarIstiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551085}
parent a36f6418
...@@ -16,9 +16,9 @@ ...@@ -16,9 +16,9 @@
#include "base/strings/string16.h" #include "base/strings/string16.h"
#include "chrome/browser/ui/app_list/app_list_model_updater_delegate.h" #include "chrome/browser/ui/app_list/app_list_model_updater_delegate.h"
#include "chrome/browser/ui/app_list/app_list_syncable_service.h" #include "chrome/browser/ui/app_list/app_list_syncable_service.h"
#include "chrome/browser/ui/app_list/search/chrome_search_result.h"
class ChromeAppListItem; class ChromeAppListItem;
class ChromeSearchResult;
// An interface to wrap AppListModel access in browser. // An interface to wrap AppListModel access in browser.
class AppListModelUpdater { class AppListModelUpdater {
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "chrome/browser/ui/app_list/app_list_service_impl.h" #include "chrome/browser/ui/app_list/app_list_service_impl.h"
#include "chrome/browser/ui/app_list/chrome_app_list_item.h" #include "chrome/browser/ui/app_list/chrome_app_list_item.h"
#include "chrome/browser/ui/app_list/search/chrome_search_result.h"
#include "chrome/browser/ui/ash/ash_util.h" #include "chrome/browser/ui/ash/ash_util.h"
#include "extensions/common/constants.h" #include "extensions/common/constants.h"
#include "ui/base/models/menu_model.h" #include "ui/base/models/menu_model.h"
...@@ -161,6 +162,8 @@ void ChromeAppListModelUpdater::UpdateSearchBox(const base::string16& text, ...@@ -161,6 +162,8 @@ void ChromeAppListModelUpdater::UpdateSearchBox(const base::string16& text,
void ChromeAppListModelUpdater::PublishSearchResults( void ChromeAppListModelUpdater::PublishSearchResults(
std::vector<std::unique_ptr<ChromeSearchResult>> results) { std::vector<std::unique_ptr<ChromeSearchResult>> results) {
for (auto& result : results)
result->set_model_updater(this);
if (!ash_util::IsRunningInMash()) if (!ash_util::IsRunningInMash())
search_model_->PublishResults(ConvertToSearchResults(std::move(results))); search_model_->PublishResults(ConvertToSearchResults(std::move(results)));
} }
......
...@@ -28,7 +28,7 @@ class ArcPlayStoreSearchResult : public ChromeSearchResult, ...@@ -28,7 +28,7 @@ class ArcPlayStoreSearchResult : public ChromeSearchResult,
public: public:
ArcPlayStoreSearchResult(arc::mojom::AppDiscoveryResultPtr data, ArcPlayStoreSearchResult(arc::mojom::AppDiscoveryResultPtr data,
Profile* profile, Profile* profile,
AppListControllerDelegate* list_controller_); AppListControllerDelegate* list_controller);
~ArcPlayStoreSearchResult() override; ~ArcPlayStoreSearchResult() override;
// ChromeSearchResult overrides: // ChromeSearchResult overrides:
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "ash/app_list/model/search/search_result.h" #include "ash/app_list/model/search/search_result.h"
#include "base/macros.h" #include "base/macros.h"
#include "chrome/browser/ui/app_list/app_list_model_updater.h"
// ChromeSearchResult consists of an icon, title text and details text. Title // ChromeSearchResult consists of an icon, title text and details text. Title
// and details text can have tagged ranges that are displayed differently from // and details text can have tagged ranges that are displayed differently from
...@@ -21,7 +22,14 @@ class ChromeSearchResult : public app_list::SearchResult { ...@@ -21,7 +22,14 @@ class ChromeSearchResult : public app_list::SearchResult {
// SearchResult. Ideally, SearchResult will be copyable. // SearchResult. Ideally, SearchResult will be copyable.
virtual std::unique_ptr<ChromeSearchResult> Duplicate() const = 0; virtual std::unique_ptr<ChromeSearchResult> Duplicate() const = 0;
void set_model_updater(AppListModelUpdater* model_updater) {
model_updater_ = model_updater;
}
AppListModelUpdater* model_updater() const { return model_updater_; }
private: private:
AppListModelUpdater* model_updater_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(ChromeSearchResult); DISALLOW_COPY_AND_ASSIGN(ChromeSearchResult);
}; };
......
...@@ -86,7 +86,6 @@ std::unique_ptr<ChromeSearchResult> ExtensionAppResult::Duplicate() const { ...@@ -86,7 +86,6 @@ std::unique_ptr<ChromeSearchResult> ExtensionAppResult::Duplicate() const {
copy->set_title(title()); copy->set_title(title());
copy->set_title_tags(title_tags()); copy->set_title_tags(title_tags());
copy->set_relevance(relevance()); copy->set_relevance(relevance());
return copy; return copy;
} }
......
...@@ -58,6 +58,7 @@ std::unique_ptr<ChromeSearchResult> LauncherSearchResult::Duplicate() const { ...@@ -58,6 +58,7 @@ std::unique_ptr<ChromeSearchResult> LauncherSearchResult::Duplicate() const {
extension_, icon_image_loader_); extension_, icon_image_loader_);
duplicated_result->set_title(title()); duplicated_result->set_title(title());
duplicated_result->set_title_tags(title_tags()); duplicated_result->set_title_tags(title_tags());
duplicated_result->set_model_updater(model_updater());
return base::WrapUnique(duplicated_result); return base::WrapUnique(duplicated_result);
} }
......
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
#include "chrome/browser/ui/app_list/search/answer_card/answer_card_search_provider.h" #include "chrome/browser/ui/app_list/search/answer_card/answer_card_search_provider.h"
#include "chrome/browser/ui/app_list/search/answer_card/answer_card_web_contents.h" #include "chrome/browser/ui/app_list/search/answer_card/answer_card_web_contents.h"
#include "chrome/browser/ui/app_list/search/app_search_provider.h" #include "chrome/browser/ui/app_list/search/app_search_provider.h"
#include "chrome/browser/ui/app_list/search/arc/arc_app_data_search_provider.h"
#include "chrome/browser/ui/app_list/search/arc/arc_playstore_search_provider.h"
#include "chrome/browser/ui/app_list/search/history_factory.h" #include "chrome/browser/ui/app_list/search/history_factory.h"
#include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_provider.h" #include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_provider.h"
#include "chrome/browser/ui/app_list/search/mixer.h" #include "chrome/browser/ui/app_list/search/mixer.h"
...@@ -24,11 +26,6 @@ ...@@ -24,11 +26,6 @@
#include "ui/app_list/app_list_features.h" #include "ui/app_list/app_list_features.h"
#include "ui/app_list/app_list_switches.h" #include "ui/app_list/app_list_switches.h"
#if defined(OS_CHROMEOS)
#include "chrome/browser/ui/app_list/search/arc/arc_app_data_search_provider.h"
#include "chrome/browser/ui/app_list/search/arc/arc_playstore_search_provider.h"
#endif
namespace app_list { namespace app_list {
namespace { namespace {
...@@ -38,7 +35,6 @@ constexpr size_t kMaxAppsGroupResults = 6; ...@@ -38,7 +35,6 @@ constexpr size_t kMaxAppsGroupResults = 6;
constexpr size_t kMaxOmniboxResults = 4; constexpr size_t kMaxOmniboxResults = 4;
constexpr size_t kMaxWebstoreResults = 2; constexpr size_t kMaxWebstoreResults = 2;
constexpr size_t kMaxLauncherSearchResults = 2; constexpr size_t kMaxLauncherSearchResults = 2;
#if defined(OS_CHROMEOS)
// We show up to 6 Play Store results. However, part of Play Store results may // We show up to 6 Play Store results. However, part of Play Store results may
// be filtered out because they may correspond to already installed Web apps. So // be filtered out because they may correspond to already installed Web apps. So
// we request twice as many Play Store apps as we can show. Note that this still // we request twice as many Play Store apps as we can show. Note that this still
...@@ -48,7 +44,6 @@ constexpr size_t kMaxLauncherSearchResults = 2; ...@@ -48,7 +44,6 @@ constexpr size_t kMaxLauncherSearchResults = 2;
constexpr size_t kMaxPlayStoreResults = 12; constexpr size_t kMaxPlayStoreResults = 12;
constexpr size_t kMaxAppDataResults = 6; constexpr size_t kMaxAppDataResults = 6;
#endif
} // namespace } // namespace
...@@ -105,7 +100,6 @@ std::unique_ptr<SearchController> CreateSearchController( ...@@ -105,7 +100,6 @@ std::unique_ptr<SearchController> CreateSearchController(
std::make_unique<LauncherSearchProvider>(profile)); std::make_unique<LauncherSearchProvider>(profile));
} }
#if defined(OS_CHROMEOS)
if (features::IsPlayStoreAppSearchEnabled()) { if (features::IsPlayStoreAppSearchEnabled()) {
// Set same boost 10.0 as apps group since Play store results are placed // Set same boost 10.0 as apps group since Play store results are placed
// with apps. // with apps.
...@@ -123,7 +117,6 @@ std::unique_ptr<SearchController> CreateSearchController( ...@@ -123,7 +117,6 @@ std::unique_ptr<SearchController> CreateSearchController(
std::make_unique<ArcAppDataSearchProvider>( std::make_unique<ArcAppDataSearchProvider>(
kMaxAppDataResults, profile, list_controller)); kMaxAppDataResults, profile, list_controller));
#endif
return controller; return controller;
} }
......
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