| Index: chrome/browser/search/suggestions/suggestions_service.h
|
| diff --git a/chrome/browser/search/suggestions/suggestions_service.h b/chrome/browser/search/suggestions/suggestions_service.h
|
| deleted file mode 100644
|
| index 635ae5d1cbac5a625f830f86398b4527564593cf..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/search/suggestions/suggestions_service.h
|
| +++ /dev/null
|
| @@ -1,185 +0,0 @@
|
| -// Copyright 2014 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_SEARCH_SUGGESTIONS_SUGGESTIONS_SERVICE_H_
|
| -#define CHROME_BROWSER_SEARCH_SUGGESTIONS_SUGGESTIONS_SERVICE_H_
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/callback.h"
|
| -#include "base/cancelable_callback.h"
|
| -#include "base/gtest_prod_util.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/time/time.h"
|
| -#include "chrome/browser/search/suggestions/image_manager.h"
|
| -#include "chrome/browser/search/suggestions/proto/suggestions.pb.h"
|
| -#include "components/keyed_service/core/keyed_service.h"
|
| -#include "net/url_request/url_fetcher_delegate.h"
|
| -#include "ui/gfx/image/image_skia.h"
|
| -#include "url/gurl.h"
|
| -
|
| -namespace net {
|
| -class URLRequestContextGetter;
|
| -} // namespace net
|
| -
|
| -namespace user_prefs {
|
| -class PrefRegistrySyncable;
|
| -} // namespace user_prefs
|
| -
|
| -namespace suggestions {
|
| -
|
| -class BlacklistStore;
|
| -class SuggestionsStore;
|
| -
|
| -extern const char kSuggestionsFieldTrialName[];
|
| -extern const char kSuggestionsFieldTrialURLParam[];
|
| -extern const char kSuggestionsFieldTrialCommonParamsParam[];
|
| -extern const char kSuggestionsFieldTrialBlacklistPathParam[];
|
| -extern const char kSuggestionsFieldTrialBlacklistUrlParam[];
|
| -extern const char kSuggestionsFieldTrialStateParam[];
|
| -extern const char kSuggestionsFieldTrialControlParam[];
|
| -extern const char kSuggestionsFieldTrialStateEnabled[];
|
| -
|
| -// An interface to fetch server suggestions asynchronously.
|
| -class SuggestionsService : public KeyedService, public net::URLFetcherDelegate {
|
| - public:
|
| - typedef base::Callback<void(const SuggestionsProfile&)> ResponseCallback;
|
| -
|
| - SuggestionsService(net::URLRequestContextGetter* url_request_context,
|
| - scoped_ptr<SuggestionsStore> suggestions_store,
|
| - scoped_ptr<ImageManager> thumbnail_manager,
|
| - scoped_ptr<BlacklistStore> blacklist_store);
|
| - virtual ~SuggestionsService();
|
| -
|
| - // Whether this service is enabled.
|
| - static bool IsEnabled();
|
| -
|
| - // Whether the user is part of a control group.
|
| - static bool IsControlGroup();
|
| -
|
| - // Request suggestions data, which will be passed to |callback|. Initiates a
|
| - // fetch request unless a pending one exists. To prevent multiple requests,
|
| - // we place all |callback|s in a queue and update them simultaneously when
|
| - // fetch request completes. Also posts a task to execute OnRequestTimeout
|
| - // if the request hasn't completed in a given amount of time.
|
| - void FetchSuggestionsData(ResponseCallback callback);
|
| -
|
| - // Similar to FetchSuggestionsData but doesn't post a task to execute
|
| - // OnDelaySinceFetch.
|
| - void FetchSuggestionsDataNoTimeout(ResponseCallback callback);
|
| -
|
| - // Retrieves stored thumbnail for website |url| asynchronously. Calls
|
| - // |callback| with Bitmap pointer if found, and NULL otherwise.
|
| - void GetPageThumbnail(
|
| - const GURL& url,
|
| - base::Callback<void(const GURL&, const SkBitmap*)> callback);
|
| -
|
| - // Issue a blacklist request. If there is already a blacklist request
|
| - // in flight, the new blacklist request is ignored.
|
| - void BlacklistURL(const GURL& candidate_url,
|
| - const ResponseCallback& callback);
|
| -
|
| - // Determines which URL a blacklist request was for, irrespective of the
|
| - // request's status. Returns false if |request| is not a blacklist request.
|
| - static bool GetBlacklistedUrl(const net::URLFetcher& request, GURL* url);
|
| -
|
| - // Register SuggestionsService related prefs in the Profile prefs.
|
| - static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
|
| -
|
| - private:
|
| - FRIEND_TEST_ALL_PREFIXES(SuggestionsServiceTest, BlacklistURLFails);
|
| - FRIEND_TEST_ALL_PREFIXES(SuggestionsServiceTest, FetchSuggestionsData);
|
| - FRIEND_TEST_ALL_PREFIXES(SuggestionsServiceTest, UpdateBlacklistDelay);
|
| -
|
| - // Issue a request.
|
| - void IssueRequest(const GURL& url);
|
| -
|
| - // Creates a request to the suggestions service, properly setting headers.
|
| - net::URLFetcher* CreateSuggestionsRequest(const GURL& url);
|
| -
|
| - // Called to service the requestors if the issued suggestions request has
|
| - // not completed in a given amount of time.
|
| - virtual void OnRequestTimeout();
|
| -
|
| - // net::URLFetcherDelegate implementation.
|
| - // Called when fetch request completes. Parses the received suggestions data,
|
| - // and dispatches them to callbacks stored in queue.
|
| - virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE;
|
| -
|
| - // KeyedService implementation.
|
| - virtual void Shutdown() OVERRIDE;
|
| -
|
| - // Load the cached suggestions and service the requestors with them.
|
| - void ServeFromCache();
|
| -
|
| - // Apply the local blacklist to |suggestions|, then serve the requestors.
|
| - void FilterAndServe(SuggestionsProfile* suggestions);
|
| -
|
| - // Schedule a blacklisting request if the local blacklist isn't empty.
|
| - // |last_request_successful| is used for exponentially backing off when
|
| - // requests fail.
|
| - void ScheduleBlacklistUpload(bool last_request_successful);
|
| -
|
| - // If the local blacklist isn't empty, pick a URL from it and issue a
|
| - // blacklist request for it.
|
| - void UploadOneFromBlacklist();
|
| -
|
| - // Updates |blacklist_delay_sec_| based on the success of the last request.
|
| - void UpdateBlacklistDelay(bool last_request_successful);
|
| -
|
| - // Test seams.
|
| - int blacklist_delay() const { return blacklist_delay_sec_; }
|
| - void set_blacklist_delay(int delay) { blacklist_delay_sec_ = delay; }
|
| -
|
| - // The cache for the suggestions.
|
| - scoped_ptr<SuggestionsStore> suggestions_store_;
|
| -
|
| - // The local cache for temporary blacklist, until uploaded to the server.
|
| - scoped_ptr<BlacklistStore> blacklist_store_;
|
| -
|
| - // Contains the current suggestions fetch request. Will only have a value
|
| - // while a request is pending, and will be reset by |OnURLFetchComplete|.
|
| - scoped_ptr<net::URLFetcher> pending_request_;
|
| -
|
| - // A closure that is run on a timeout from issuing the suggestions fetch
|
| - // request, if the request hasn't completed.
|
| - scoped_ptr<base::CancelableClosure> pending_timeout_closure_;
|
| -
|
| - // The start time of the previous suggestions request. This is used to measure
|
| - // the latency of requests. Initially zero.
|
| - base::TimeTicks last_request_started_time_;
|
| -
|
| - // The URL to fetch suggestions data from.
|
| - GURL suggestions_url_;
|
| -
|
| - // Prefix for building the blacklisting URL.
|
| - std::string blacklist_url_prefix_;
|
| -
|
| - // Queue of callbacks. These are flushed when fetch request completes.
|
| - std::vector<ResponseCallback> waiting_requestors_;
|
| -
|
| - // Used to obtain server thumbnails, if available.
|
| - scoped_ptr<ImageManager> thumbnail_manager_;
|
| -
|
| - net::URLRequestContextGetter* url_request_context_;
|
| -
|
| - // Delay used when scheduling a blacklisting task.
|
| - int blacklist_delay_sec_;
|
| -
|
| - // For callbacks may be run after destruction.
|
| - base::WeakPtrFactory<SuggestionsService> weak_ptr_factory_;
|
| -
|
| - // Timeout (in ms) before serving requestors after a fetch suggestions request
|
| - // has been issued.
|
| - int request_timeout_ms_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(SuggestionsService);
|
| -};
|
| -
|
| -} // namespace suggestions
|
| -
|
| -#endif // CHROME_BROWSER_SEARCH_SUGGESTIONS_SUGGESTIONS_SERVICE_H_
|
|
|