Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1880)

Unified Diff: chrome/browser/history/web_history_service.h

Issue 687803004: [Hotword] Implement audio history pref accessing and setting. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more compile errors on other platforms Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
sky 2014/11/19 01:02:41 We don't use unix_hacker_style for virtual methods
rpetterson 2014/11/19 02:04:56 I was following the pre-existing style (see is_pen
sky 2014/11/19 16:02:43 Yes, but if you want to fix up the other feel free
+
+ // 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,
sky 2014/11/19 01:02:41 Can this and the next be protected?
rpetterson 2014/11/19 02:04:56 Done.
+ 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_;
sky 2014/11/19 01:02:41 Style guide says no protected fields.
rpetterson 2014/11/19 02:04:56 Done.
// 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);

Powered by Google App Engine
This is Rietveld 408576698