Index: chrome/browser/ui/google_now/google_now_service.h |
diff --git a/chrome/browser/ui/google_now/google_now_service.h b/chrome/browser/ui/google_now/google_now_service.h |
index a48f4017a81b723cd827a26804b6c280740ce0ca..c4c316a46f91c51d3df09c9f834af6c224535530 100644 |
--- a/chrome/browser/ui/google_now/google_now_service.h |
+++ b/chrome/browser/ui/google_now/google_now_service.h |
@@ -7,6 +7,7 @@ |
#include "base/timer.h" |
#include "chrome/browser/profiles/profile_keyed_service.h" |
+#include "net/url_request/url_fetcher_delegate.h" |
class Profile; |
@@ -18,10 +19,6 @@ namespace content { |
struct Geoposition; |
} |
-namespace net { |
-class URLRequest; |
-} |
- |
// The Google Now service gets Google Now cards from the server and shows them |
// as Chrome notifications. |
// The service performs periodic updating of Google Now cards. |
@@ -29,7 +26,8 @@ class URLRequest; |
// 1. Obtaining the location of the machine (asynchronous); |
// 2. Making a server request (asynchronous); |
// 3. Showing the cards as notifications. |
-class GoogleNowService : public ProfileKeyedService { |
+class GoogleNowService : public ProfileKeyedService, |
+ public net::URLFetcherDelegate { |
public: |
// Must call Init after construction. |
explicit GoogleNowService(Profile* profile); |
@@ -54,18 +52,22 @@ class GoogleNowService : public ProfileKeyedService { |
void OnLocationObtained(const content::Geoposition& position); |
void OnLocationRequestTimeout(); |
+ // Builds a URL for a server request. |
+ static std::string BuildRequestURL(const content::Geoposition& position); |
+ |
// Starts downloading cards from the server. |
void StartServerRequest(const content::Geoposition& position); |
- void OnServerRequestCompleted(net::URLRequest* request, int num_bytes); |
// Parses server response. Returns true if the parsing was successful. |
- static bool ParseServerResponse(const net::URLRequest* request, |
- int num_bytes, |
+ static bool ParseServerResponse(const std::string& response_string, |
ServerResponse* server_response); |
// Shows Google Now cards as notifications. |
void ShowNotifications(const ServerResponse& server_response); |
+ // URLFetcherDelegate |
+ virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE; |
+ |
// The profile. |
Profile* const profile_; |
// Timer to schedule next cards update. |
@@ -75,6 +77,8 @@ class GoogleNowService : public ProfileKeyedService { |
// Weak factory for the geolocation request callback. Used to ensure |
// geolocation request callback is not run after this object is destroyed. |
base::WeakPtrFactory<GoogleNowService> geolocation_request_weak_factory_; |
+ // Fetcher for Google Now cards. |
+ scoped_ptr<net::URLFetcher> fetcher_; |
DISALLOW_COPY_AND_ASSIGN(GoogleNowService); |
}; |