OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 /** | 5 /** |
6 * @fileoverview PromiseResolver is a helper class that allows creating a | 6 * @fileoverview PromiseResolver is a helper class that allows creating a |
7 * Promise that will be fulfilled (resolved or rejected) some time later. | 7 * Promise that will be fulfilled (resolved or rejected) some time later. |
8 * | 8 * |
9 * Example: | 9 * Example: |
10 * var resolver = new PromiseResolver(); | 10 * var resolver = new PromiseResolver(); |
(...skipping 14593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14604 | 14604 |
14605 /** | 14605 /** |
14606 * The indexes where a window separator should be shown. The use of a | 14606 * The indexes where a window separator should be shown. The use of a |
14607 * separate array here is necessary for window separators to appear | 14607 * separate array here is necessary for window separators to appear |
14608 * correctly in search. See http://crrev.com/2022003002 for more details. | 14608 * correctly in search. See http://crrev.com/2022003002 for more details. |
14609 * @type {!Array<number>} | 14609 * @type {!Array<number>} |
14610 */ | 14610 */ |
14611 separatorIndexes: Array, | 14611 separatorIndexes: Array, |
14612 | 14612 |
14613 // Whether the card is open. | 14613 // Whether the card is open. |
14614 cardOpen_: {type: Boolean, value: true}, | 14614 opened: Boolean, |
14615 | 14615 |
14616 searchTerm: String, | 14616 searchTerm: String, |
14617 | 14617 |
14618 // Internal identifier for the device. | 14618 // Internal identifier for the device. |
14619 sessionTag: String, | 14619 sessionTag: String, |
14620 }, | 14620 }, |
14621 | 14621 |
14622 /** | 14622 /** |
14623 * Open a single synced tab. Listens to 'click' rather than 'tap' | 14623 * Open a single synced tab. Listens to 'click' rather than 'tap' |
14624 * to determine what modifier keys were pressed. | 14624 * to determine what modifier keys were pressed. |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14656 } | 14656 } |
14657 }); | 14657 }); |
14658 }, | 14658 }, |
14659 | 14659 |
14660 /** @private */ | 14660 /** @private */ |
14661 isWindowSeparatorIndex_: function(index, separatorIndexes) { | 14661 isWindowSeparatorIndex_: function(index, separatorIndexes) { |
14662 return this.separatorIndexes.indexOf(index) != -1; | 14662 return this.separatorIndexes.indexOf(index) != -1; |
14663 }, | 14663 }, |
14664 | 14664 |
14665 /** | 14665 /** |
14666 * @param {boolean} cardOpen | 14666 * @param {boolean} opened |
14667 * @return {string} | 14667 * @return {string} |
| 14668 * @private |
14668 */ | 14669 */ |
14669 getCollapseTitle_: function(cardOpen) { | 14670 getCollapseIcon_: function(opened) { |
14670 return cardOpen ? loadTimeData.getString('collapseSessionButton') : | 14671 return opened ? 'cr:expand-less' : 'cr:expand-more'; |
14671 loadTimeData.getString('expandSessionButton'); | |
14672 }, | 14672 }, |
14673 | 14673 |
14674 /** | 14674 /** |
| 14675 * @param {boolean} opened |
| 14676 * @return {string} |
| 14677 * @private |
| 14678 */ |
| 14679 getCollapseTitle_: function(opened) { |
| 14680 return opened ? loadTimeData.getString('collapseSessionButton') : |
| 14681 loadTimeData.getString('expandSessionButton'); |
| 14682 }, |
| 14683 |
| 14684 /** |
14675 * @param {CustomEvent} e | 14685 * @param {CustomEvent} e |
14676 * @private | 14686 * @private |
14677 */ | 14687 */ |
14678 onMenuButtonTap_: function(e) { | 14688 onMenuButtonTap_: function(e) { |
14679 this.fire('toggle-menu', { | 14689 this.fire('toggle-menu', { |
14680 target: Polymer.dom(e).localTarget, | 14690 target: Polymer.dom(e).localTarget, |
14681 tag: this.sessionTag | 14691 tag: this.sessionTag |
14682 }); | 14692 }); |
14683 e.stopPropagation(); // Prevent iron-collapse. | 14693 e.stopPropagation(); // Prevent iron-collapse. |
14684 }, | 14694 }, |
14685 }); | 14695 }); |
14686 // Copyright 2016 The Chromium Authors. All rights reserved. | 14696 // Copyright 2016 The Chromium Authors. All rights reserved. |
14687 // Use of this source code is governed by a BSD-style license that can be | 14697 // Use of this source code is governed by a BSD-style license that can be |
14688 // found in the LICENSE file. | 14698 // found in the LICENSE file. |
14689 | 14699 |
14690 /** | 14700 /** |
14691 * @typedef {{device: string, | 14701 * @typedef {{device: string, |
14692 * lastUpdateTime: string, | 14702 * lastUpdateTime: string, |
| 14703 * opened: boolean, |
14693 * separatorIndexes: !Array<number>, | 14704 * separatorIndexes: !Array<number>, |
14694 * timestamp: number, | 14705 * timestamp: number, |
14695 * tabs: !Array<!ForeignSessionTab>, | 14706 * tabs: !Array<!ForeignSessionTab>, |
14696 * tag: string}} | 14707 * tag: string}} |
14697 */ | 14708 */ |
14698 var ForeignDeviceInternal; | 14709 var ForeignDeviceInternal; |
14699 | 14710 |
14700 Polymer({ | 14711 Polymer({ |
14701 is: 'history-synced-device-manager', | 14712 is: 'history-synced-device-manager', |
14702 | 14713 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14737 | 14748 |
14738 /** @private */ | 14749 /** @private */ |
14739 fetchingSyncedTabs_: { | 14750 fetchingSyncedTabs_: { |
14740 type: Boolean, | 14751 type: Boolean, |
14741 value: false, | 14752 value: false, |
14742 } | 14753 } |
14743 }, | 14754 }, |
14744 | 14755 |
14745 listeners: { | 14756 listeners: { |
14746 'toggle-menu': 'onToggleMenu_', | 14757 'toggle-menu': 'onToggleMenu_', |
| 14758 'scroll': 'onListScroll_' |
14747 }, | 14759 }, |
14748 | 14760 |
14749 /** @override */ | 14761 /** @override */ |
14750 attached: function() { | 14762 attached: function() { |
14751 // Update the sign in state. | 14763 // Update the sign in state. |
14752 chrome.send('otherDevicesInitialized'); | 14764 chrome.send('otherDevicesInitialized'); |
14753 }, | 14765 }, |
14754 | 14766 |
14755 /** | 14767 /** |
14756 * @param {!ForeignSession} session | 14768 * @param {!ForeignSession} session |
(...skipping 26 matching lines...) Expand all Loading... |
14783 windowAdded = true; | 14795 windowAdded = true; |
14784 } | 14796 } |
14785 } | 14797 } |
14786 } | 14798 } |
14787 if (windowAdded && i != session.windows.length - 1) | 14799 if (windowAdded && i != session.windows.length - 1) |
14788 separatorIndexes.push(tabs.length - 1); | 14800 separatorIndexes.push(tabs.length - 1); |
14789 } | 14801 } |
14790 return { | 14802 return { |
14791 device: session.name, | 14803 device: session.name, |
14792 lastUpdateTime: '– ' + session.modifiedTime, | 14804 lastUpdateTime: '– ' + session.modifiedTime, |
| 14805 opened: true, |
14793 separatorIndexes: separatorIndexes, | 14806 separatorIndexes: separatorIndexes, |
14794 timestamp: session.timestamp, | 14807 timestamp: session.timestamp, |
14795 tabs: tabs, | 14808 tabs: tabs, |
14796 tag: session.tag, | 14809 tag: session.tag, |
14797 }; | 14810 }; |
14798 }, | 14811 }, |
14799 | 14812 |
14800 onSignInTap_: function() { | 14813 onSignInTap_: function() { |
14801 chrome.send('startSignInFlow'); | 14814 chrome.send('startSignInFlow'); |
14802 }, | 14815 }, |
14803 | 14816 |
| 14817 onListScroll_: function() { |
| 14818 var menu = this.$.menu.getIfExists(); |
| 14819 if (menu) |
| 14820 menu.closeMenu(); |
| 14821 }, |
| 14822 |
14804 onToggleMenu_: function(e) { | 14823 onToggleMenu_: function(e) { |
14805 this.$.menu.get().then(function(menu) { | 14824 this.$.menu.get().then(function(menu) { |
14806 menu.toggleMenu(e.detail.target, e.detail.tag); | 14825 menu.toggleMenu(e.detail.target, e.detail.tag); |
14807 }); | 14826 }); |
14808 }, | 14827 }, |
14809 | 14828 |
14810 onOpenAllTap_: function() { | 14829 onOpenAllTap_: function() { |
14811 var menu = assert(this.$.menu.getIfExists()); | 14830 var menu = assert(this.$.menu.getIfExists()); |
14812 md_history.BrowserService.getInstance().openForeignSessionAllTabs( | 14831 md_history.BrowserService.getInstance().openForeignSessionAllTabs( |
14813 menu.itemData); | 14832 menu.itemData); |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14887 var updateCount = Math.min(sessionList.length, this.syncedDevices_.length); | 14906 var updateCount = Math.min(sessionList.length, this.syncedDevices_.length); |
14888 for (var i = 0; i < updateCount; i++) { | 14907 for (var i = 0; i < updateCount; i++) { |
14889 var oldDevice = this.syncedDevices_[i]; | 14908 var oldDevice = this.syncedDevices_[i]; |
14890 if (oldDevice.tag != sessionList[i].tag || | 14909 if (oldDevice.tag != sessionList[i].tag || |
14891 oldDevice.timestamp != sessionList[i].timestamp) { | 14910 oldDevice.timestamp != sessionList[i].timestamp) { |
14892 this.splice( | 14911 this.splice( |
14893 'syncedDevices_', i, 1, this.createInternalDevice_(sessionList[i])); | 14912 'syncedDevices_', i, 1, this.createInternalDevice_(sessionList[i])); |
14894 } | 14913 } |
14895 } | 14914 } |
14896 | 14915 |
14897 // Then, append any new devices. | 14916 if (sessionList.length >= this.syncedDevices_.length) { |
14898 for (var i = updateCount; i < sessionList.length; i++) { | 14917 // The list grew; append new items. |
14899 this.push('syncedDevices_', this.createInternalDevice_(sessionList[i])); | 14918 for (var i = updateCount; i < sessionList.length; i++) { |
| 14919 this.push('syncedDevices_', this.createInternalDevice_(sessionList[i])); |
| 14920 } |
| 14921 } else { |
| 14922 // The list shrank; remove deleted items. |
| 14923 this.splice( |
| 14924 'syncedDevices_', updateCount, |
| 14925 this.syncedDevices_.length - updateCount); |
14900 } | 14926 } |
14901 }, | 14927 }, |
14902 | 14928 |
14903 /** | 14929 /** |
14904 * End fetching synced tabs when sync is disabled. | 14930 * End fetching synced tabs when sync is disabled. |
14905 */ | 14931 */ |
14906 tabSyncDisabled: function() { | 14932 tabSyncDisabled: function() { |
14907 this.fetchingSyncedTabs_ = false; | 14933 this.fetchingSyncedTabs_ = false; |
14908 this.clearDisplayedSyncedDevices_(); | 14934 this.clearDisplayedSyncedDevices_(); |
14909 }, | 14935 }, |
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15339 return selectedPage; | 15365 return selectedPage; |
15340 }, | 15366 }, |
15341 | 15367 |
15342 /** @private */ | 15368 /** @private */ |
15343 closeDrawer_: function() { | 15369 closeDrawer_: function() { |
15344 var drawer = this.$$('#drawer'); | 15370 var drawer = this.$$('#drawer'); |
15345 if (drawer) | 15371 if (drawer) |
15346 drawer.close(); | 15372 drawer.close(); |
15347 }, | 15373 }, |
15348 }); | 15374 }); |
OLD | NEW |