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 @@
#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_syncable_service.h"
#include "chrome/browser/ui/app_list/search/chrome_search_result.h"
class ChromeAppListItem;
class ChromeSearchResult;
// An interface to wrap AppListModel access in browser.
class AppListModelUpdater {
......
......@@ -12,6 +12,7 @@
#include "base/strings/utf_string_conversions.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/search/chrome_search_result.h"
#include "chrome/browser/ui/ash/ash_util.h"
#include "extensions/common/constants.h"
#include "ui/base/models/menu_model.h"
......@@ -161,6 +162,8 @@ void ChromeAppListModelUpdater::UpdateSearchBox(const base::string16& text,
void ChromeAppListModelUpdater::PublishSearchResults(
std::vector<std::unique_ptr<ChromeSearchResult>> results) {
for (auto& result : results)
result->set_model_updater(this);
if (!ash_util::IsRunningInMash())
search_model_->PublishResults(ConvertToSearchResults(std::move(results)));
}
......
......@@ -28,7 +28,7 @@ class ArcPlayStoreSearchResult : public ChromeSearchResult,
public:
ArcPlayStoreSearchResult(arc::mojom::AppDiscoveryResultPtr data,
Profile* profile,
AppListControllerDelegate* list_controller_);
AppListControllerDelegate* list_controller);
~ArcPlayStoreSearchResult() override;
// ChromeSearchResult overrides:
......
......@@ -9,6 +9,7 @@
#include "ash/app_list/model/search/search_result.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
// and details text can have tagged ranges that are displayed differently from
......@@ -21,7 +22,14 @@ class ChromeSearchResult : public app_list::SearchResult {
// SearchResult. Ideally, SearchResult will be copyable.
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:
AppListModelUpdater* model_updater_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(ChromeSearchResult);
};
......
......@@ -86,7 +86,6 @@ std::unique_ptr<ChromeSearchResult> ExtensionAppResult::Duplicate() const {
copy->set_title(title());
copy->set_title_tags(title_tags());
copy->set_relevance(relevance());
return copy;
}
......
......@@ -58,6 +58,7 @@ std::unique_ptr<ChromeSearchResult> LauncherSearchResult::Duplicate() const {
extension_, icon_image_loader_);
duplicated_result->set_title(title());
duplicated_result->set_title_tags(title_tags());
duplicated_result->set_model_updater(model_updater());
return base::WrapUnique(duplicated_result);
}
......
......@@ -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_web_contents.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/launcher_search/launcher_search_provider.h"
#include "chrome/browser/ui/app_list/search/mixer.h"
......@@ -24,11 +26,6 @@
#include "ui/app_list/app_list_features.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 {
......@@ -38,7 +35,6 @@ constexpr size_t kMaxAppsGroupResults = 6;
constexpr size_t kMaxOmniboxResults = 4;
constexpr size_t kMaxWebstoreResults = 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
// 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
......@@ -48,7 +44,6 @@ constexpr size_t kMaxLauncherSearchResults = 2;
constexpr size_t kMaxPlayStoreResults = 12;
constexpr size_t kMaxAppDataResults = 6;
#endif
} // namespace
......@@ -105,7 +100,6 @@ std::unique_ptr<SearchController> CreateSearchController(
std::make_unique<LauncherSearchProvider>(profile));
}
#if defined(OS_CHROMEOS)
if (features::IsPlayStoreAppSearchEnabled()) {
// Set same boost 10.0 as apps group since Play store results are placed
// with apps.
......@@ -123,7 +117,6 @@ std::unique_ptr<SearchController> CreateSearchController(
std::make_unique<ArcAppDataSearchProvider>(
kMaxAppDataResults, profile, list_controller));
#endif
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