| Index: chrome/browser/history/web_history_service.h
|
| diff --git a/chrome/browser/history/web_history_service.h b/chrome/browser/history/web_history_service.h
|
| index 692efbb0c0c4cc5ca84a34bcfb079b0d8b68ae20..421ec12bbcc94a8ca2c1d1de0cb22cefc58980a6 100644
|
| --- a/chrome/browser/history/web_history_service.h
|
| +++ b/chrome/browser/history/web_history_service.h
|
| @@ -38,6 +38,18 @@ class WebHistoryService : public KeyedService {
|
| // is not yet been complete).
|
| virtual bool is_pending() = 0;
|
|
|
| + // Returns the response code received from the server, which will only be
|
| + // valid if the request succeeded.
|
| + virtual int response_code() = 0;
|
| +
|
| + // Returns the contents of the response body received from the server.
|
| + virtual const std::string& response_body() = 0;
|
| +
|
| + virtual void set_post_data(const std::string& post_data) = 0;
|
| +
|
| + // Tells the request to begin.
|
| + virtual void Start() = 0;
|
| +
|
| protected:
|
| Request();
|
| };
|
| @@ -50,9 +62,24 @@ class WebHistoryService : public KeyedService {
|
|
|
| typedef base::Callback<void(bool success)> ExpireWebHistoryCallback;
|
|
|
| + typedef base::Callback<void(bool success, bool new_enabled_value)>
|
| + AudioWebHistoryCallback;
|
| +
|
| + typedef base::Callback<void(Request*, bool success)> CompletionCallback;
|
| +
|
| explicit WebHistoryService(Profile* profile);
|
| ~WebHistoryService() override;
|
|
|
| + // This function is pulled out for testing purposes. Caller takes ownership of
|
| + // the new Request.
|
| + virtual Request* CreateRequest(const GURL& url,
|
| + const CompletionCallback& callback);
|
| +
|
| + // Extracts a JSON-encoded HTTP response into a DictionaryValue.
|
| + // If |request|'s HTTP response code indicates failure, or if the response
|
| + // body is not JSON, a null pointer is returned.
|
| + static scoped_ptr<base::DictionaryValue> ReadResponse(Request* request);
|
| +
|
| // Searches synced history for visits matching |text_query|. The timeframe to
|
| // search, along with other options, is specified in |options|. If
|
| // |text_query| is empty, all visits in the timeframe will be returned.
|
| @@ -76,7 +103,15 @@ class WebHistoryService : public KeyedService {
|
| base::Time end_time,
|
| const ExpireWebHistoryCallback& callback);
|
|
|
| - private:
|
| + // Requests whether audio history recording is enabled.
|
| + void GetAudioHistoryEnabled(const AudioWebHistoryCallback& callback);
|
| +
|
| + // Sets the state of audio history recording to |new_enabled_value|.
|
| + void SetAudioHistoryEnabled(bool new_enabled_value,
|
| + const AudioWebHistoryCallback& callback);
|
| + protected:
|
| + friend class WebHistoryServiceTest;
|
| +
|
| // Called by |request| when a web history query has completed. Unpacks the
|
| // response and calls |callback|, which is the original callback that was
|
| // passed to QueryHistory().
|
| @@ -93,6 +128,14 @@ class WebHistoryService : public KeyedService {
|
| WebHistoryService::Request* request,
|
| bool success);
|
|
|
| + // Called by |request| when a request to get or set audio history from the
|
| + // server has completed. Unpacks the response and calls |callback|, which is
|
| + // the original callback that was passed to AudioHistory().
|
| + void AudioHistoryCompletionCallback(
|
| + const WebHistoryService::AudioWebHistoryCallback& callback,
|
| + WebHistoryService::Request* request,
|
| + bool success);
|
| +
|
| Profile* profile_;
|
|
|
| // Stores the version_info token received from the server in response to
|
| @@ -104,6 +147,9 @@ class WebHistoryService : public KeyedService {
|
| // shutdown.
|
| std::set<Request*> pending_expire_requests_;
|
|
|
| + // Pending requests to be canceled if not complete by profile shutdown.
|
| + std::set<Request*> pending_audio_history_requests_;
|
| +
|
| base::WeakPtrFactory<WebHistoryService> weak_ptr_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(WebHistoryService);
|
|
|