Chromium Code Reviews| Index: chrome/browser/resources/md_history/synced_device_manager.js |
| diff --git a/chrome/browser/resources/md_history/synced_device_manager.js b/chrome/browser/resources/md_history/synced_device_manager.js |
| index 12e67fddbe540238b32f22538bf1542ee2947b2d..c473e77017735c61dd765c97ed27fb352587aed2 100644 |
| --- a/chrome/browser/resources/md_history/synced_device_manager.js |
| +++ b/chrome/browser/resources/md_history/synced_device_manager.js |
| @@ -5,6 +5,7 @@ |
| /** |
| * @typedef {{device: string, |
| * lastUpdateTime: string, |
| + * opened: boolean, |
| * separatorIndexes: !Array<number>, |
| * timestamp: number, |
| * tabs: !Array<!ForeignSessionTab>, |
| @@ -59,6 +60,7 @@ Polymer({ |
| listeners: { |
| 'toggle-menu': 'onToggleMenu_', |
| + 'scroll': 'onListScroll_' |
| }, |
| /** @override */ |
| @@ -105,6 +107,7 @@ Polymer({ |
| return { |
| device: session.name, |
| lastUpdateTime: '– ' + session.modifiedTime, |
| + opened: true, |
| separatorIndexes: separatorIndexes, |
| timestamp: session.timestamp, |
| tabs: tabs, |
| @@ -116,6 +119,12 @@ Polymer({ |
| chrome.send('startSignInFlow'); |
| }, |
| + onListScroll_: function() { |
| + var menu = this.$.menu.getIfExists(); |
| + if (menu) |
| + menu.closeMenu(); |
| + }, |
| + |
| onToggleMenu_: function(e) { |
| this.$.menu.get().then(function(menu) { |
| menu.toggleMenu(e.detail.target, e.detail.tag); |
| @@ -209,9 +218,16 @@ Polymer({ |
| } |
| } |
| - // Then, append any new devices. |
| - for (var i = updateCount; i < sessionList.length; i++) { |
| - this.push('syncedDevices_', this.createInternalDevice_(sessionList[i])); |
| + if (updateCount == this.syncedDevices_.length) { |
|
calamity
2016/08/19 04:02:37
nit: sessionList.length >= this.syncedDevices_.len
tsergeant
2016/08/19 04:48:29
Good point, done.
|
| + // The list grew; append new items. |
| + for (var i = updateCount; i < sessionList.length; i++) { |
| + this.push('syncedDevices_', this.createInternalDevice_(sessionList[i])); |
| + } |
| + } else { |
| + // The list shrank; remove deleted items. |
| + this.splice( |
| + 'syncedDevices_', updateCount, |
| + this.syncedDevices_.length - updateCount); |
| } |
| }, |