| 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..2a73361fdef0d90c39705c9da4586965852e6da6 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 (sessionList.length >= this.syncedDevices_.length) {
|
| + // 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);
|
| }
|
| },
|
|
|
|
|