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

Unified Diff: chrome/browser/chrome_to_mobile_service.h

Issue 10834203: Integrate invalidation API into ChromeToMobileService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync and rebase; merge invalidation API changes. Created 8 years, 4 months 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/chrome_to_mobile_service.h
diff --git a/chrome/browser/chrome_to_mobile_service.h b/chrome/browser/chrome_to_mobile_service.h
index bf608c0aa13844eeabcf8d3ca248ea5b31c1fda8..c35cbaa4989f79e080b26d0cc2cc17a7e21ae2b8 100644
--- a/chrome/browser/chrome_to_mobile_service.h
+++ b/chrome/browser/chrome_to_mobile_service.h
@@ -23,6 +23,9 @@
#include "content/public/browser/notification_registrar.h"
#include "googleurl/src/gurl.h"
#include "net/url_request/url_fetcher_delegate.h"
+#include "sync/notifier/invalidation_util.h"
akalin 2012/08/13 22:23:58 i think IWYU has the exception that you don't have
msw 2012/08/16 02:41:51 Done.
+#include "sync/notifier/notifications_disabled_reason.h"
+#include "sync/notifier/sync_notifier_observer.h"
class OAuth2AccessTokenFetcher;
class Browser;
@@ -40,7 +43,8 @@ class URLFetcher;
class ChromeToMobileService : public ProfileKeyedService,
public net::URLFetcherDelegate,
public content::NotificationObserver,
- public OAuth2AccessTokenConsumer {
+ public OAuth2AccessTokenConsumer,
+ public syncer::SyncNotifierObserver {
public:
class Observer {
public:
@@ -105,7 +109,7 @@ class ChromeToMobileService : public ProfileKeyedService,
virtual ~ChromeToMobileService();
// Returns true if the service has found any registered mobile devices.
- bool HasMobiles();
+ bool HasMobiles() const;
// Get the non-NULL ListValue of mobile devices from the cloud print service.
// The list is owned by PrefService, which outlives ChromeToMobileService.
@@ -153,9 +157,21 @@ class ChromeToMobileService : public ProfileKeyedService,
const base::Time& expiration_time) OVERRIDE;
virtual void OnGetTokenFailure(const GoogleServiceAuthError& error) OVERRIDE;
+ // syncer::SyncNotifierObserver implementation.
+ virtual void OnNotificationsEnabled() OVERRIDE;
+ virtual void OnNotificationsDisabled(
+ syncer::NotificationsDisabledReason reason) OVERRIDE;
+ virtual void OnIncomingNotification(
+ const syncer::ObjectIdPayloadMap& id_payloads,
+ syncer::IncomingNotificationSource source) OVERRIDE;
+
private:
friend class MockChromeToMobileService;
+ // Enable or disable Chrome To Mobile with the browsers' command controllers.
+ // The feature state is automatically derived from internal conditions.
+ void UpdateCommandState() const;
+
// Handle the attempted creation of a temporary file for snapshot generation.
// Alert the observer of failure or generate MHTML with an observer callback.
void SnapshotFileCreated(base::WeakPtr<Observer> observer,
@@ -166,7 +182,7 @@ class ChromeToMobileService : public ProfileKeyedService,
// Create a cloud print job submission request for a URL or snapshot.
net::URLFetcher* CreateRequest(const JobData& data);
- // Initialize URLFetcher requests (search and jobs submit).
+ // Initialize URLFetcher requests for listing devices and sending pages.
void InitRequest(net::URLFetcher* request);
// Submit a cloud print job request with the requisite data.
@@ -176,13 +192,9 @@ class ChromeToMobileService : public ProfileKeyedService,
// Virtual for unit test mocking.
virtual void RefreshAccessToken();
- // Request account information to limit cloud print access to existing users.
- void RequestAccountInfo();
-
// Send the cloud print URLFetcher search request.
void RequestSearch();
- void HandleAccountInfoResponse();
void HandleSearchResponse();
void HandleSubmitResponse(const net::URLFetcher* source);
@@ -190,6 +202,9 @@ class ChromeToMobileService : public ProfileKeyedService,
Profile* profile_;
+ // The sync invalidation service enabled/disabled state.
+ bool sync_invalidation_enabled_;
+
// Used to recieve TokenService notifications for GaiaOAuth2LoginRefreshToken.
content::NotificationRegistrar registrar_;
@@ -209,12 +224,9 @@ class ChromeToMobileService : public ProfileKeyedService,
scoped_ptr<OAuth2AccessTokenFetcher> access_token_fetcher_;
base::OneShotTimer<ChromeToMobileService> auth_retry_timer_;
- // The pending account information request and the cloud print access flag.
- scoped_ptr<net::URLFetcher> account_info_request_;
- bool cloud_print_accessible_;
-
- // The pending mobile device search request.
+ // The pending mobile device search request and a flag to try once accessible.
scoped_ptr<net::URLFetcher> search_request_;
+ bool request_search_when_accessible_;
DISALLOW_COPY_AND_ASSIGN(ChromeToMobileService);
};

Powered by Google App Engine
This is Rietveld 408576698