Index: components/suggestions/suggestions_service_impl.h |
diff --git a/components/suggestions/suggestions_service.h b/components/suggestions/suggestions_service_impl.h |
similarity index 68% |
copy from components/suggestions/suggestions_service.h |
copy to components/suggestions/suggestions_service_impl.h |
index 5b118e11d2a62c80503d63e46b964bf57d0ecd97..fe304719c37c9efc0d5d4b1792a635e609cf0fd5 100644 |
--- a/components/suggestions/suggestions_service.h |
+++ b/components/suggestions/suggestions_service_impl.h |
@@ -1,9 +1,9 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Copyright 2016 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 COMPONENTS_SUGGESTIONS_SUGGESTIONS_SERVICE_H_ |
-#define COMPONENTS_SUGGESTIONS_SUGGESTIONS_SERVICE_H_ |
+#ifndef COMPONENTS_SUGGESTIONS_SUGGESTIONS_SERVICE_IMPL_H_ |
+#define COMPONENTS_SUGGESTIONS_SUGGESTIONS_SERVICE_IMPL_H_ |
#include <stdint.h> |
@@ -15,11 +15,12 @@ |
#include "base/gtest_prod_util.h" |
#include "base/macros.h" |
#include "base/memory/weak_ptr.h" |
+#include "base/optional.h" |
#include "base/scoped_observer.h" |
#include "base/threading/thread_checker.h" |
#include "base/time/time.h" |
-#include "components/keyed_service/core/keyed_service.h" |
#include "components/suggestions/proto/suggestions.pb.h" |
+#include "components/suggestions/suggestions_service.h" |
#include "components/sync/driver/sync_service_observer.h" |
#include "net/url_request/url_fetcher_delegate.h" |
#include "url/gurl.h" |
@@ -27,10 +28,6 @@ |
class OAuth2TokenService; |
class SigninManagerBase; |
-namespace gfx { |
-class Image; |
-} // namespce gfx |
- |
namespace net { |
class URLRequestContextGetter; |
} // namespace net |
@@ -49,59 +46,34 @@ class BlacklistStore; |
class ImageManager; |
class SuggestionsStore; |
-// An interface to fetch server suggestions asynchronously. |
-class SuggestionsService : public KeyedService, |
- public net::URLFetcherDelegate, |
- public syncer::SyncServiceObserver { |
+// Actual (non-test) implementation of the SuggestionsService interface. |
+class SuggestionsServiceImpl : public SuggestionsService, |
+ public net::URLFetcherDelegate, |
+ public syncer::SyncServiceObserver { |
public: |
- using ResponseCallback = base::Callback<void(const SuggestionsProfile&)>; |
- using BitmapCallback = base::Callback<void(const GURL&, const gfx::Image&)>; |
- |
- using ResponseCallbackList = |
- base::CallbackList<void(const SuggestionsProfile&)>; |
- |
- SuggestionsService(const SigninManagerBase* signin_manager, |
- OAuth2TokenService* token_service, |
- syncer::SyncService* sync_service, |
- net::URLRequestContextGetter* url_request_context, |
- std::unique_ptr<SuggestionsStore> suggestions_store, |
- std::unique_ptr<ImageManager> thumbnail_manager, |
- std::unique_ptr<BlacklistStore> blacklist_store); |
- ~SuggestionsService() override; |
- |
- // Initiates a network request for suggestions if sync state allows and there |
- // is no pending request. Returns true iff sync state allowed for a request, |
- // whether a new request was actually sent or not. |
- bool FetchSuggestionsData(); |
- |
- // Returns the current set of suggestions from the cache. |
- SuggestionsProfile GetSuggestionsDataFromCache() const; |
- |
- // Adds a callback that is called when the suggestions are updated. |
+ SuggestionsServiceImpl(const SigninManagerBase* signin_manager, |
+ OAuth2TokenService* token_service, |
+ syncer::SyncService* sync_service, |
+ net::URLRequestContextGetter* url_request_context, |
+ std::unique_ptr<SuggestionsStore> suggestions_store, |
+ std::unique_ptr<ImageManager> thumbnail_manager, |
+ std::unique_ptr<BlacklistStore> blacklist_store); |
+ ~SuggestionsServiceImpl() override; |
+ |
+ // SuggestionsService implementation. |
+ bool FetchSuggestionsData() override; |
+ base::Optional<SuggestionsProfile> GetSuggestionsDataFromCache() |
+ const override; |
std::unique_ptr<ResponseCallbackList::Subscription> AddCallback( |
- const ResponseCallback& callback) WARN_UNUSED_RESULT; |
- |
- // Retrieves stored thumbnail for website |url| asynchronously. Calls |
- // |callback| with Bitmap pointer if found, and NULL otherwise. |
- void GetPageThumbnail(const GURL& url, const BitmapCallback& callback); |
- |
- // A version of |GetPageThumbnail| that explicitly supplies the download URL |
- // for the thumbnail. Replaces any pre-existing thumbnail URL with the |
- // supplied one. |
+ const ResponseCallback& callback) override WARN_UNUSED_RESULT; |
+ void GetPageThumbnail(const GURL& url, |
+ const BitmapCallback& callback) override; |
void GetPageThumbnailWithURL(const GURL& url, |
const GURL& thumbnail_url, |
- const BitmapCallback& callback); |
- |
- // Adds a URL to the blacklist cache, returning true on success or false on |
- // failure. The URL will eventually be uploaded to the server. |
- bool BlacklistURL(const GURL& candidate_url); |
- |
- // Removes a URL from the local blacklist, returning true on success or false |
- // on failure. |
- bool UndoBlacklistURL(const GURL& url); |
- |
- // Removes all URLs from the blacklist. |
- void ClearBlacklist(); |
+ const BitmapCallback& callback) override; |
+ bool BlacklistURL(const GURL& candidate_url) override; |
+ bool UndoBlacklistURL(const GURL& url) override; |
+ void ClearBlacklist() override; |
// Determines which URL a blacklist request was for, irrespective of the |
// request's status. Returns false if |request| is not a blacklist request. |
@@ -183,8 +155,7 @@ class SuggestionsService : public KeyedService, |
// Test seams. |
base::TimeDelta blacklist_delay() const { return scheduling_delay_; } |
- void set_blacklist_delay(base::TimeDelta delay) { |
- scheduling_delay_ = delay; } |
+ void set_blacklist_delay(base::TimeDelta delay) { scheduling_delay_ = delay; } |
base::ThreadChecker thread_checker_; |
@@ -222,11 +193,11 @@ class SuggestionsService : public KeyedService, |
ResponseCallbackList callback_list_; |
// For callbacks may be run after destruction. |
- base::WeakPtrFactory<SuggestionsService> weak_ptr_factory_; |
+ base::WeakPtrFactory<SuggestionsServiceImpl> weak_ptr_factory_; |
- DISALLOW_COPY_AND_ASSIGN(SuggestionsService); |
+ DISALLOW_COPY_AND_ASSIGN(SuggestionsServiceImpl); |
}; |
} // namespace suggestions |
-#endif // COMPONENTS_SUGGESTIONS_SUGGESTIONS_SERVICE_H_ |
+#endif // COMPONENTS_SUGGESTIONS_SUGGESTIONS_SERVICE_IMPL_H_ |