OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_SYNC_GLUE_SESSION_MODEL_ASSOCIATOR_H_ | 5 #ifndef CHROME_BROWSER_SYNC_GLUE_SESSION_MODEL_ASSOCIATOR_H_ |
6 #define CHROME_BROWSER_SYNC_GLUE_SESSION_MODEL_ASSOCIATOR_H_ | 6 #define CHROME_BROWSER_SYNC_GLUE_SESSION_MODEL_ASSOCIATOR_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 #include <set> | 10 #include <set> |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 // Resync local window information. Updates the local sessions header node | 112 // Resync local window information. Updates the local sessions header node |
113 // with the status of open windows and the order of tabs they contain. Should | 113 // with the status of open windows and the order of tabs they contain. Should |
114 // only be called for changes that affect a window, not a change within a | 114 // only be called for changes that affect a window, not a change within a |
115 // single tab. | 115 // single tab. |
116 // | 116 // |
117 // If |reload_tabs| is true, will also resync all tabs (same as calling | 117 // If |reload_tabs| is true, will also resync all tabs (same as calling |
118 // AssociateTabs with a vector of all tabs). | 118 // AssociateTabs with a vector of all tabs). |
119 // |error| gets set if any association error occurred. | 119 // |error| gets set if any association error occurred. |
120 // Returns: false if the local session's sync nodes were deleted and | 120 // Returns: false if the local session's sync nodes were deleted and |
121 // reassociation is necessary, true otherwise. | 121 // reassociation is necessary, true otherwise. |
122 bool AssociateWindows(bool reload_tabs, SyncError* error); | 122 bool AssociateWindows(bool reload_tabs, csync::SyncError* error); |
123 | 123 |
124 // Loads and reassociates the local tabs referenced in |tabs|. | 124 // Loads and reassociates the local tabs referenced in |tabs|. |
125 // |error| gets set if any association error occurred. | 125 // |error| gets set if any association error occurred. |
126 // Returns: false if the local session's sync nodes were deleted and | 126 // Returns: false if the local session's sync nodes were deleted and |
127 // reassociation is necessary, true otherwise. | 127 // reassociation is necessary, true otherwise. |
128 bool AssociateTabs(const std::vector<SyncedTabDelegate*>& tabs, | 128 bool AssociateTabs(const std::vector<SyncedTabDelegate*>& tabs, |
129 SyncError* error); | 129 csync::SyncError* error); |
130 | 130 |
131 // Reassociates a single tab with the sync model. Will check if the tab | 131 // Reassociates a single tab with the sync model. Will check if the tab |
132 // already is associated with a sync node and allocate one if necessary. | 132 // already is associated with a sync node and allocate one if necessary. |
133 // |error| gets set if any association error occurred. | 133 // |error| gets set if any association error occurred. |
134 // Returns: false if the local session's sync nodes were deleted and | 134 // Returns: false if the local session's sync nodes were deleted and |
135 // reassociation is necessary, true otherwise. | 135 // reassociation is necessary, true otherwise. |
136 bool AssociateTab(const SyncedTabDelegate& tab, | 136 bool AssociateTab(const SyncedTabDelegate& tab, |
137 SyncError* error); | 137 csync::SyncError* error); |
138 | 138 |
139 // Load any foreign session info stored in sync db and update the sync db | 139 // Load any foreign session info stored in sync db and update the sync db |
140 // with local client data. Processes/reuses any sync nodes owned by this | 140 // with local client data. Processes/reuses any sync nodes owned by this |
141 // client and creates any further sync nodes needed to store local header and | 141 // client and creates any further sync nodes needed to store local header and |
142 // tab info. | 142 // tab info. |
143 virtual SyncError AssociateModels() OVERRIDE; | 143 virtual csync::SyncError AssociateModels() OVERRIDE; |
144 | 144 |
145 // Initializes the given sync node from the given chrome node id. | 145 // Initializes the given sync node from the given chrome node id. |
146 // Returns false if no sync node was found for the given chrome node id or | 146 // Returns false if no sync node was found for the given chrome node id or |
147 // if the initialization of sync node fails. | 147 // if the initialization of sync node fails. |
148 virtual bool InitSyncNodeFromChromeId(const std::string& id, | 148 virtual bool InitSyncNodeFromChromeId(const std::string& id, |
149 csync::BaseNode* sync_node); | 149 csync::BaseNode* sync_node); |
150 | 150 |
151 // Clear local sync data buffers. Does not delete sync nodes to avoid | 151 // Clear local sync data buffers. Does not delete sync nodes to avoid |
152 // tombstones. TODO(zea): way to eventually delete orphaned nodes. | 152 // tombstones. TODO(zea): way to eventually delete orphaned nodes. |
153 virtual SyncError DisassociateModels() OVERRIDE; | 153 virtual csync::SyncError DisassociateModels() OVERRIDE; |
154 | 154 |
155 // Returns the tag used to uniquely identify this machine's session in the | 155 // Returns the tag used to uniquely identify this machine's session in the |
156 // sync model. | 156 // sync model. |
157 const std::string& GetCurrentMachineTag() const { | 157 const std::string& GetCurrentMachineTag() const { |
158 DCHECK(!current_machine_tag_.empty()); | 158 DCHECK(!current_machine_tag_.empty()); |
159 return current_machine_tag_; | 159 return current_machine_tag_; |
160 } | 160 } |
161 | 161 |
162 // Load and associate window and tab data for a foreign session. | 162 // Load and associate window and tab data for a foreign session. |
163 void AssociateForeignSpecifics(const sync_pb::SessionSpecifics& specifics, | 163 void AssociateForeignSpecifics(const sync_pb::SessionSpecifics& specifics, |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 | 388 |
389 // Initializes the tag corresponding to this machine. | 389 // Initializes the tag corresponding to this machine. |
390 void InitializeCurrentMachineTag(csync::WriteTransaction* trans); | 390 void InitializeCurrentMachineTag(csync::WriteTransaction* trans); |
391 | 391 |
392 // Initializes the user visible name for this session | 392 // Initializes the user visible name for this session |
393 void InitializeCurrentSessionName(); | 393 void InitializeCurrentSessionName(); |
394 | 394 |
395 // Updates the server data based upon the current client session. If no node | 395 // Updates the server data based upon the current client session. If no node |
396 // corresponding to this machine exists in the sync model, one is created. | 396 // corresponding to this machine exists in the sync model, one is created. |
397 // Returns true on success, false if association failed. | 397 // Returns true on success, false if association failed. |
398 bool UpdateSyncModelDataFromClient(SyncError* error); | 398 bool UpdateSyncModelDataFromClient(csync::SyncError* error); |
399 | 399 |
400 // Pulls the current sync model from the sync database and returns true upon | 400 // Pulls the current sync model from the sync database and returns true upon |
401 // update of the client model. Will associate any foreign sessions as well as | 401 // update of the client model. Will associate any foreign sessions as well as |
402 // keep track of any local tab nodes, adding them to our free tab node pool. | 402 // keep track of any local tab nodes, adding them to our free tab node pool. |
403 bool UpdateAssociationsFromSyncModel(const csync::ReadNode& root, | 403 bool UpdateAssociationsFromSyncModel(const csync::ReadNode& root, |
404 csync::WriteTransaction* trans, | 404 csync::WriteTransaction* trans, |
405 SyncError* error); | 405 csync::SyncError* error); |
406 | 406 |
407 // Fills a tab sync node with data from a WebContents object. Updates | 407 // Fills a tab sync node with data from a WebContents object. Updates |
408 // |tab_link| with the current url if it's valid and triggers a favicon | 408 // |tab_link| with the current url if it's valid and triggers a favicon |
409 // load if the url has changed. | 409 // load if the url has changed. |
410 // Returns true on success, false if we need to reassociate due to corruption. | 410 // Returns true on success, false if we need to reassociate due to corruption. |
411 bool WriteTabContentsToSyncModel(TabLink* tab_link, | 411 bool WriteTabContentsToSyncModel(TabLink* tab_link, |
412 SyncError* error); | 412 csync::SyncError* error); |
413 | 413 |
414 // Decrements the favicon usage counters for the favicon used by |page_url|. | 414 // Decrements the favicon usage counters for the favicon used by |page_url|. |
415 // Deletes the favicon and associated pages from the favicon usage maps | 415 // Deletes the favicon and associated pages from the favicon usage maps |
416 // if no page is found to be referring to the favicon anymore. | 416 // if no page is found to be referring to the favicon anymore. |
417 void DecrementAndCleanFaviconForURL(const std::string& page_url); | 417 void DecrementAndCleanFaviconForURL(const std::string& page_url); |
418 | 418 |
419 // Helper method to build sync's tab specifics from a newly modified | 419 // Helper method to build sync's tab specifics from a newly modified |
420 // tab, window, and the locally stored previous tab data. After completing, | 420 // tab, window, and the locally stored previous tab data. After completing, |
421 // |prev_tab| will be updated to reflect the current data, |sync_tab| will | 421 // |prev_tab| will be updated to reflect the current data, |sync_tab| will |
422 // be filled with the tab data (preserving old timestamps as necessary), and | 422 // be filled with the tab data (preserving old timestamps as necessary), and |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
559 std::map<std::string, linked_ptr<SyncedFaviconInfo> > synced_favicons_; | 559 std::map<std::string, linked_ptr<SyncedFaviconInfo> > synced_favicons_; |
560 // Map of page URL -> favicon url. | 560 // Map of page URL -> favicon url. |
561 std::map<std::string, std::string> synced_favicon_pages_; | 561 std::map<std::string, std::string> synced_favicon_pages_; |
562 | 562 |
563 DISALLOW_COPY_AND_ASSIGN(SessionModelAssociator); | 563 DISALLOW_COPY_AND_ASSIGN(SessionModelAssociator); |
564 }; | 564 }; |
565 | 565 |
566 } // namespace browser_sync | 566 } // namespace browser_sync |
567 | 567 |
568 #endif // CHROME_BROWSER_SYNC_GLUE_SESSION_MODEL_ASSOCIATOR_H_ | 568 #endif // CHROME_BROWSER_SYNC_GLUE_SESSION_MODEL_ASSOCIATOR_H_ |
OLD | NEW |