Commit 856df74d authored by Jia's avatar Jia Committed by Commit Bot

[cros search service] Remove LocalSearchServiceProxy

This is the last part in changing the impl to c++ directly.
For easier review
1. Diff between base and patch 1:
- change names of factory .h and .cc files

2. Diff between patch 1 and patch 2:
- change Factory class name
- delete proxy class
- implement LocalSearchService as a KeyedService, which is
returned by the factory

Bug: 1064424,1018613
Change-Id: I0c5a69088f991be3dbe827e15f28706504cc2170
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2162521Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Jia Meng <jiameng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#762542}
parent cfdcce33
......@@ -1317,10 +1317,8 @@ source_set("chromeos") {
"local_search_service/index.h",
"local_search_service/local_search_service.cc",
"local_search_service/local_search_service.h",
"local_search_service/local_search_service_proxy.cc",
"local_search_service/local_search_service_proxy.h",
"local_search_service/local_search_service_proxy_factory.cc",
"local_search_service/local_search_service_proxy_factory.h",
"local_search_service/local_search_service_factory.cc",
"local_search_service/local_search_service_factory.h",
"locale_change_guard.cc",
"locale_change_guard.h",
"lock_screen_apps/app_manager.h",
......@@ -2985,7 +2983,6 @@ source_set("unit_tests") {
"kerberos/kerberos_credentials_manager_test.cc",
"kerberos/kerberos_ticket_expiry_notification_test.cc",
"local_search_service/index_unittest.cc",
"local_search_service/local_search_service_proxy_unittest.cc",
"local_search_service/local_search_service_unittest.cc",
"local_search_service/test_utils.cc",
"local_search_service/test_utils.h",
......
......@@ -9,6 +9,7 @@
#include <memory>
#include "base/macros.h"
#include "components/keyed_service/core/keyed_service.h"
namespace local_search_service {
......@@ -18,10 +19,10 @@ enum class IndexId { kCrosSettings = 0 };
// LocalSearchService creates and owns content-specific Indices. Clients can
// call it |GetIndex| method to get an Index for a given index id.
class LocalSearchService {
class LocalSearchService : public KeyedService {
public:
LocalSearchService();
~LocalSearchService();
~LocalSearchService() override;
LocalSearchService(const LocalSearchService&) = delete;
LocalSearchService& operator=(const LocalSearchService&) = delete;
......
......@@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/chromeos/local_search_service/local_search_service_proxy_factory.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service_factory.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service_proxy.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service.h"
#include "chrome/browser/profiles/profile.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h"
......@@ -14,25 +14,24 @@
namespace local_search_service {
LocalSearchServiceProxy* LocalSearchServiceProxyFactory::GetForProfile(
Profile* profile) {
return static_cast<LocalSearchServiceProxy*>(
LocalSearchServiceProxyFactory::GetInstance()
->GetServiceForBrowserContext(profile, true /* create */));
LocalSearchService* LocalSearchServiceFactory::GetForProfile(Profile* profile) {
return static_cast<LocalSearchService*>(
LocalSearchServiceFactory::GetInstance()->GetServiceForBrowserContext(
profile, true /* create */));
}
LocalSearchServiceProxyFactory* LocalSearchServiceProxyFactory::GetInstance() {
return base::Singleton<LocalSearchServiceProxyFactory>::get();
LocalSearchServiceFactory* LocalSearchServiceFactory::GetInstance() {
return base::Singleton<LocalSearchServiceFactory>::get();
}
LocalSearchServiceProxyFactory::LocalSearchServiceProxyFactory()
LocalSearchServiceFactory::LocalSearchServiceFactory()
: BrowserContextKeyedServiceFactory(
"LocalSearchServiceProxy",
"LocalSearchService",
BrowserContextDependencyManager::GetInstance()) {}
LocalSearchServiceProxyFactory::~LocalSearchServiceProxyFactory() = default;
LocalSearchServiceFactory::~LocalSearchServiceFactory() = default;
content::BrowserContext* LocalSearchServiceProxyFactory::GetBrowserContextToUse(
content::BrowserContext* LocalSearchServiceFactory::GetBrowserContextToUse(
content::BrowserContext* context) const {
Profile* const profile = Profile::FromBrowserContext(context);
if (!profile || profile->IsSystemProfile()) {
......@@ -54,9 +53,10 @@ content::BrowserContext* LocalSearchServiceProxyFactory::GetBrowserContextToUse(
return context;
}
KeyedService* LocalSearchServiceProxyFactory::BuildServiceInstanceFor(
KeyedService* LocalSearchServiceFactory::BuildServiceInstanceFor(
content::BrowserContext* context) const {
return new LocalSearchServiceProxy(Profile::FromBrowserContext(context));
// Profile isn't needed.
return new LocalSearchService();
}
} // namespace local_search_service
......@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_PROXY_FACTORY_H_
#define CHROME_BROWSER_CHROMEOS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_PROXY_FACTORY_H_
#ifndef CHROME_BROWSER_CHROMEOS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_FACTORY_H_
#define CHROME_BROWSER_CHROMEOS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_FACTORY_H_
#include "base/macros.h"
#include "base/memory/singleton.h"
......@@ -13,25 +13,23 @@ class Profile;
namespace local_search_service {
class LocalSearchServiceProxy;
class LocalSearchService;
class LocalSearchServiceProxyFactory
: public BrowserContextKeyedServiceFactory {
class LocalSearchServiceFactory : public BrowserContextKeyedServiceFactory {
public:
static LocalSearchServiceProxy* GetForProfile(Profile* profile);
static LocalSearchService* GetForProfile(Profile* profile);
static LocalSearchServiceProxyFactory* GetInstance();
static LocalSearchServiceFactory* GetInstance();
private:
friend struct base::DefaultSingletonTraits<LocalSearchServiceProxyFactory>;
friend struct base::DefaultSingletonTraits<LocalSearchServiceFactory>;
LocalSearchServiceProxyFactory();
~LocalSearchServiceProxyFactory() override;
LocalSearchServiceFactory();
~LocalSearchServiceFactory() override;
LocalSearchServiceProxyFactory(const LocalSearchServiceProxyFactory&) =
LocalSearchServiceFactory(const LocalSearchServiceFactory&) = delete;
LocalSearchServiceFactory& operator=(const LocalSearchServiceFactory&) =
delete;
LocalSearchServiceProxyFactory& operator=(
const LocalSearchServiceProxyFactory&) = delete;
// BrowserContextKeyedServiceFactory overrides.
content::BrowserContext* GetBrowserContextToUse(
......@@ -42,4 +40,4 @@ class LocalSearchServiceProxyFactory
} // namespace local_search_service
#endif // CHROME_BROWSER_CHROMEOS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_PROXY_FACTORY_H_
#endif // CHROME_BROWSER_CHROMEOS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_FACTORY_H_
// Copyright 2019 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 "chrome/browser/chromeos/local_search_service/local_search_service_proxy.h"
#include "base/threading/thread_task_runner_handle.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service.h"
namespace local_search_service {
LocalSearchServiceProxy::LocalSearchServiceProxy(Profile* profile) {}
LocalSearchServiceProxy::~LocalSearchServiceProxy() = default;
LocalSearchService* LocalSearchServiceProxy::GetLocalSearchService() {
if (!local_search_service_) {
local_search_service_ = std::make_unique<LocalSearchService>();
}
return local_search_service_.get();
}
} // namespace local_search_service
// Copyright 2019 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 CHROME_BROWSER_CHROMEOS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_PROXY_H_
#define CHROME_BROWSER_CHROMEOS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_PROXY_H_
#include <memory>
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "components/keyed_service/core/keyed_service.h"
class Profile;
namespace local_search_service {
class LocalSearchService;
// TODO(jiameng): the next cl will remove this class completely because the
// factory will return LocalSearchService (that will be a KeyedService).
class LocalSearchServiceProxy : public KeyedService {
public:
// Profile isn't required, hence can be nullptr in tests.
explicit LocalSearchServiceProxy(Profile* profile);
~LocalSearchServiceProxy() override;
LocalSearchServiceProxy(const LocalSearchServiceProxy&) = delete;
LocalSearchServiceProxy& operator=(const LocalSearchServiceProxy&) = delete;
LocalSearchService* GetLocalSearchService();
private:
std::unique_ptr<LocalSearchService> local_search_service_;
base::WeakPtrFactory<LocalSearchServiceProxy> weak_ptr_factory_{this};
};
} // namespace local_search_service
#endif // CHROME_BROWSER_CHROMEOS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_PROXY_H_
// Copyright 2019 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 <map>
#include <string>
#include <utility>
#include <vector>
#include "chrome/browser/chromeos/local_search_service/index.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service_proxy.h"
#include "chrome/browser/chromeos/local_search_service/test_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace local_search_service {
class LocalSearchServiceProxyTest : public testing::Test {};
TEST_F(LocalSearchServiceProxyTest, Basic) {
LocalSearchServiceProxy service_proxy(nullptr);
LocalSearchService* const service = service_proxy.GetLocalSearchService();
DCHECK(service);
Index* const index = service->GetIndex(IndexId::kCrosSettings);
DCHECK(index);
EXPECT_EQ(index->GetSize(), 0u);
// Register the following data to the search index, the map is id to
// search-tags.
const std::map<std::string, std::vector<std::string>> data_to_register = {
{"id1", {"tag1a", "tag1b"}}, {"id2", {"tag2a", "tag2b"}}};
std::vector<Data> data = CreateTestData(data_to_register);
EXPECT_EQ(data.size(), 2u);
index->AddOrUpdate(data);
EXPECT_EQ(index->GetSize(), 2u);
}
} // namespace local_search_service
......@@ -5,8 +5,7 @@
#include "chrome/browser/ui/webui/settings/chromeos/os_settings_localized_strings_provider_factory.h"
#include "chrome/browser/chromeos/kerberos/kerberos_credentials_manager_factory.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service_proxy.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service_proxy_factory.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service_factory.h"
#include "chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.h"
#include "chrome/browser/profiles/incognito_helpers.h"
#include "chrome/browser/profiles/profile.h"
......@@ -38,8 +37,7 @@ OsSettingsLocalizedStringsProviderFactory::
: BrowserContextKeyedServiceFactory(
"OsSettingsLocalizedStringsProvider",
BrowserContextDependencyManager::GetInstance()) {
DependsOn(
local_search_service::LocalSearchServiceProxyFactory::GetInstance());
DependsOn(local_search_service::LocalSearchServiceFactory::GetInstance());
DependsOn(multidevice_setup::MultiDeviceSetupClientFactory::GetInstance());
DependsOn(ProfileSyncServiceFactory::GetInstance());
DependsOn(SupervisedUserServiceFactory::GetInstance());
......@@ -56,9 +54,7 @@ OsSettingsLocalizedStringsProviderFactory::BuildServiceInstanceFor(
Profile* profile = Profile::FromBrowserContext(context);
return new OsSettingsLocalizedStringsProvider(
profile,
local_search_service::LocalSearchServiceProxyFactory::GetForProfile(
profile)
->GetLocalSearchService(),
local_search_service::LocalSearchServiceFactory::GetForProfile(profile),
multidevice_setup::MultiDeviceSetupClientFactory::GetForProfile(profile),
ProfileSyncServiceFactory::GetForProfile(profile),
SupervisedUserServiceFactory::GetForProfile(profile),
......
......@@ -7,8 +7,7 @@
#include "base/run_loop.h"
#include "chrome/browser/chromeos/local_search_service/index.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service_proxy.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service_proxy_factory.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service_factory.h"
#include "chrome/browser/ui/webui/settings/chromeos/os_settings_localized_strings_provider_factory.h"
#include "chrome/browser/ui/webui/settings/chromeos/search/search_concept.h"
#include "chrome/common/webui_url_constants.h"
......@@ -42,9 +41,7 @@ class OsSettingsLocalizedStringsProviderTest : public testing::Test {
OsSettingsLocalizedStringsProviderFactory::GetForProfile(profile);
index_ =
local_search_service::LocalSearchServiceProxyFactory::GetForProfile(
profile)
->GetLocalSearchService()
local_search_service::LocalSearchServiceFactory::GetForProfile(profile)
->GetIndex(local_search_service::IndexId::kCrosSettings);
// Allow asynchronous networking code to complete (networking functionality
......
......@@ -4,8 +4,7 @@
#include "chrome/browser/ui/webui/settings/chromeos/search/search_handler_factory.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service_proxy.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service_proxy_factory.h"
#include "chrome/browser/chromeos/local_search_service/local_search_service_factory.h"
#include "chrome/browser/profiles/incognito_helpers.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/settings/chromeos/os_settings_localized_strings_provider_factory.h"
......@@ -31,8 +30,7 @@ SearchHandlerFactory::SearchHandlerFactory()
: BrowserContextKeyedServiceFactory(
"SearchHandler",
BrowserContextDependencyManager::GetInstance()) {
DependsOn(
local_search_service::LocalSearchServiceProxyFactory::GetInstance());
DependsOn(local_search_service::LocalSearchServiceFactory::GetInstance());
DependsOn(OsSettingsLocalizedStringsProviderFactory::GetInstance());
}
......@@ -43,9 +41,8 @@ KeyedService* SearchHandlerFactory::BuildServiceInstanceFor(
Profile* profile = Profile::FromBrowserContext(context);
return new SearchHandler(
OsSettingsLocalizedStringsProviderFactory::GetForProfile(profile),
local_search_service::LocalSearchServiceProxyFactory::GetForProfile(
Profile::FromBrowserContext(profile))
->GetLocalSearchService());
local_search_service::LocalSearchServiceFactory::GetForProfile(
Profile::FromBrowserContext(profile)));
}
bool SearchHandlerFactory::ServiceIsNULLWhileTesting() const {
......
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