Chromium Code Reviews
DescriptionRevert "Reland of [Sync] Put session tracker in charge of maintaining local state."
Reason for revert: crashing on android, spike in datatype errors across
platforms. See crbug.com/673618
Reland of [Sync] Put session tracker in charge of maintaining local state.
Previously, the session tracker was only updated when local tabs were
available in the TabModel. It was not updated with sync data from a previous
session (and as a result, we had to pass around the restored_data list
at association time in order to handle restoring placeholder tabs).
The session tracker now gets updated at startup of previous local state,
which is then used when reassociating restored tabs. This is a purely
refactoring change that should not introduce user visible changes
(although internally the data is managed in a different way).
To make this happen, InitFromSyncModel now treats local tabs and remote
tabs the same. In addition, the SyncedSessionTracker now has a
ReassociateTab method that can be called to update the tab id of a
SessionTab. To make this work, the TabNodePool has been moved into
the SyncedSessionTracker, and in general data ownership has been
simplified (with quite a few new tests added).
This is all necessary in order to enable preserving tabs from a previous
session when they're not present in the TabModel (which can happen on
Android when a custom tab is opened, but the main tabbed activity is not
loaded).
BUG=639009, 673618
Committed: https://crrev.com/159246f269b561bf931fa56a35b2704fab7dcc96
Cr-Commit-Position: refs/heads/master@{#436786}
TBR=skym@chromium.org
Committed: https://crrev.com/0b91d7171d412f61c13d6e4aeb44ebbb26e9544b
Cr-Commit-Position: refs/heads/master@{#438602}
Patch Set 1 #Messages
Total messages: 9 (6 generated)
|