| Index: chrome/browser/sync/sessions2/sessions_sync_manager.h
|
| diff --git a/chrome/browser/sync/sessions2/sessions_sync_manager.h b/chrome/browser/sync/sessions2/sessions_sync_manager.h
|
| index 22bb936222907f066584c9b7de89ad106085fd22..88bb884ffc1b28f4dde308c632d45d59c2581ae0 100644
|
| --- a/chrome/browser/sync/sessions2/sessions_sync_manager.h
|
| +++ b/chrome/browser/sync/sessions2/sessions_sync_manager.h
|
| @@ -20,6 +20,7 @@
|
| #include "chrome/browser/sync/glue/favicon_cache.h"
|
| #include "chrome/browser/sync/glue/synced_session.h"
|
| #include "chrome/browser/sync/glue/synced_session_tracker.h"
|
| +#include "chrome/browser/sync/open_tabs_ui_delegate.h"
|
| #include "chrome/browser/sync/sessions2/tab_node_pool2.h"
|
| #include "chrome/browser/sync/sync_prefs.h"
|
| #include "sync/api/syncable_service.h"
|
| @@ -46,7 +47,8 @@ class SyncedWindowDelegate;
|
|
|
| // Contains all logic for associating the Chrome sessions model and
|
| // the sync sessions model.
|
| -class SessionsSyncManager : public syncer::SyncableService {
|
| +class SessionsSyncManager : public syncer::SyncableService,
|
| + public OpenTabsUIDelegate {
|
| public:
|
| // Isolates SessionsSyncManager from having to depend on sync internals.
|
| class SyncInternalApiDelegate {
|
| @@ -56,11 +58,10 @@ class SessionsSyncManager : public syncer::SyncableService {
|
| virtual scoped_ptr<DeviceInfo> GetLocalDeviceInfo() const = 0;
|
|
|
| // Used for creation of the machine tag for this local session.
|
| - virtual std::string GetCacheGuid() const = 0;
|
| + virtual std::string GetLocalSyncCacheGUID() const = 0;
|
| };
|
|
|
| SessionsSyncManager(Profile* profile,
|
| - scoped_ptr<SyncPrefs> sync_prefs,
|
| SyncInternalApiDelegate* delegate);
|
| virtual ~SessionsSyncManager();
|
|
|
| @@ -88,17 +89,6 @@ class SessionsSyncManager : public syncer::SyncableService {
|
| return current_machine_tag_;
|
| }
|
|
|
| - // Builds a list of all foreign sessions. Caller does NOT own SyncedSession
|
| - // objects.
|
| - // Returns true if foreign sessions were found, false otherwise.
|
| - bool GetAllForeignSessions(std::vector<const SyncedSession*>* sessions);
|
| -
|
| - // If a valid favicon for the page at |url| is found, fills |favicon_png| with
|
| - // the png-encoded image and returns true. Else, returns false.
|
| - bool GetSyncedFaviconForPageURL(
|
| - const std::string& page_url,
|
| - scoped_refptr<base::RefCountedMemory>* favicon_png) const;
|
| -
|
| // syncer::SyncableService implementation.
|
| virtual syncer::SyncMergeResult MergeDataAndStartSyncing(
|
| syncer::ModelType type,
|
| @@ -118,6 +108,22 @@ class SessionsSyncManager : public syncer::SyncableService {
|
| // Return the favicon url of the current tab, even if it's pending.
|
| static GURL GetCurrentFaviconURL(const SyncedTabDelegate& tab_delegate);
|
|
|
| + FaviconCache* GetFaviconCache();
|
| +
|
| + // OpenTabsUIDelegate implementation.
|
| + virtual bool GetSyncedFaviconForPageURL(
|
| + const std::string& pageurl,
|
| + scoped_refptr<base::RefCountedMemory>* favicon_png) const OVERRIDE;
|
| + virtual bool GetAllForeignSessions(
|
| + std::vector<const SyncedSession*>* sessions) OVERRIDE;
|
| + virtual bool GetForeignSession(
|
| + const std::string& tag,
|
| + std::vector<const SessionWindow*>* windows) OVERRIDE;
|
| + virtual bool GetForeignTab(const std::string& tag,
|
| + const SessionID::id_type tab_id,
|
| + const SessionTab** tab) OVERRIDE;
|
| + virtual void DeleteForeignSession(const std::string& tag) OVERRIDE;
|
| +
|
| private:
|
| // Keep all the links to local tab data in one place. A tab_node_id and tab
|
| // must be passed at creation. The tab_node_id is not mutable, although
|
| @@ -200,8 +206,8 @@ class SessionsSyncManager : public syncer::SyncableService {
|
| // |change_output| *must* be provided as a link to the SyncChange pipeline
|
| // that exists in the caller's context. This function will append necessary
|
| // changes for processing later.
|
| - void DeleteForeignSession(const std::string& tag,
|
| - syncer::SyncChangeList* change_output);
|
| + void DeleteForeignSessionInternal(const std::string& tag,
|
| + syncer::SyncChangeList* change_output);
|
|
|
| // Used to populate a session header from the session specifics header
|
| // provided.
|
| @@ -283,7 +289,7 @@ class SessionsSyncManager : public syncer::SyncableService {
|
| // Pool of used/available sync nodes associated with local tabs.
|
| TabNodePool2 local_tab_pool_;
|
|
|
| - scoped_ptr<SyncPrefs> sync_prefs_;
|
| + SyncPrefs sync_prefs_;
|
|
|
| const Profile* const profile_;
|
|
|
|
|