| 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 /** | 5 /** |
| 6 * @fileoverview New tab page | 6 * @fileoverview New tab page |
| 7 * This is the main code for the new tab page used by touch-enabled Chrome | 7 * This is the main code for the new tab page used by touch-enabled Chrome |
| 8 * browsers. For now this is still a prototype. | 8 * browsers. For now this is still a prototype. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 */ | 49 */ |
| 50 var loginBubble; | 50 var loginBubble; |
| 51 | 51 |
| 52 /** | 52 /** |
| 53 * true if |loginBubble| should be shown. | 53 * true if |loginBubble| should be shown. |
| 54 * @type {boolean} | 54 * @type {boolean} |
| 55 */ | 55 */ |
| 56 var shouldShowLoginBubble = false; | 56 var shouldShowLoginBubble = false; |
| 57 | 57 |
| 58 /** | 58 /** |
| 59 * The 'other-sessions-menu-button' element. | |
| 60 * @type {!ntp.OtherSessionsMenuButton|undefined} | |
| 61 */ | |
| 62 var otherSessionsButton; | |
| 63 | |
| 64 /** | |
| 65 * The time when all sections are ready. | 59 * The time when all sections are ready. |
| 66 * @type {number|undefined} | 60 * @type {number|undefined} |
| 67 * @private | 61 * @private |
| 68 */ | 62 */ |
| 69 var startTime; | 63 var startTime; |
| 70 | 64 |
| 71 /** | 65 /** |
| 72 * The time in milliseconds for most transitions. This should match what's | 66 * The time in milliseconds for most transitions. This should match what's |
| 73 * in new_tab.css. Unfortunately there's no better way to try to time | 67 * in new_tab.css. Unfortunately there's no better way to try to time |
| 74 * something to occur until after a transition has completed. | 68 * something to occur until after a transition has completed. |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 | 135 |
| 142 // Load the current theme colors. | 136 // Load the current theme colors. |
| 143 themeChanged(); | 137 themeChanged(); |
| 144 | 138 |
| 145 newTabView = new NewTabView(); | 139 newTabView = new NewTabView(); |
| 146 | 140 |
| 147 notificationContainer = getRequiredElement('notification-container'); | 141 notificationContainer = getRequiredElement('notification-container'); |
| 148 notificationContainer.addEventListener( | 142 notificationContainer.addEventListener( |
| 149 'webkitTransitionEnd', onNotificationTransitionEnd); | 143 'webkitTransitionEnd', onNotificationTransitionEnd); |
| 150 | 144 |
| 151 if (loadTimeData.getBoolean('showOtherSessionsMenu')) { | |
| 152 otherSessionsButton = /** @type {!ntp.OtherSessionsMenuButton} */( | |
| 153 getRequiredElement('other-sessions-menu-button')); | |
| 154 cr.ui.decorate(otherSessionsButton, ntp.OtherSessionsMenuButton); | |
| 155 otherSessionsButton.initialize(loadTimeData.getBoolean('isUserSignedIn')); | |
| 156 } else { | |
| 157 getRequiredElement('other-sessions-menu-button').hidden = true; | |
| 158 } | |
| 159 | |
| 160 if (loadTimeData.getBoolean('showMostvisited')) { | 145 if (loadTimeData.getBoolean('showMostvisited')) { |
| 161 var mostVisited = new ntp.MostVisitedPage(); | 146 var mostVisited = new ntp.MostVisitedPage(); |
| 162 // Move the footer into the most visited page if we are in "bare minimum" | 147 // Move the footer into the most visited page if we are in "bare minimum" |
| 163 // mode. | 148 // mode. |
| 164 if (document.body.classList.contains('bare-minimum')) | 149 if (document.body.classList.contains('bare-minimum')) |
| 165 mostVisited.appendFooter(getRequiredElement('footer')); | 150 mostVisited.appendFooter(getRequiredElement('footer')); |
| 166 newTabView.appendTilePage(mostVisited, | 151 newTabView.appendTilePage(mostVisited, |
| 167 loadTimeData.getString('mostvisited'), | 152 loadTimeData.getString('mostvisited'), |
| 168 false); | 153 false); |
| 169 chrome.send('getMostVisited'); | 154 chrome.send('getMostVisited'); |
| (...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 568 headerContainer.style.backgroundImage = iconURL ? url(iconURL) : 'none'; | 553 headerContainer.style.backgroundImage = iconURL ? url(iconURL) : 'none'; |
| 569 } | 554 } |
| 570 | 555 |
| 571 if (shouldShowLoginBubble) { | 556 if (shouldShowLoginBubble) { |
| 572 window.setTimeout(loginBubble.show.bind(loginBubble), 0); | 557 window.setTimeout(loginBubble.show.bind(loginBubble), 0); |
| 573 chrome.send('loginMessageSeen'); | 558 chrome.send('loginMessageSeen'); |
| 574 shouldShowLoginBubble = false; | 559 shouldShowLoginBubble = false; |
| 575 } else if (loginBubble) { | 560 } else if (loginBubble) { |
| 576 loginBubble.reposition(); | 561 loginBubble.reposition(); |
| 577 } | 562 } |
| 578 if (otherSessionsButton) { | |
| 579 otherSessionsButton.updateSignInState(isUserSignedIn); | |
| 580 layoutFooter(); | |
| 581 } | |
| 582 } | 563 } |
| 583 | 564 |
| 584 /** | 565 /** |
| 585 * Show the sync login UI. | 566 * Show the sync login UI. |
| 586 * @param {Event} e The click event. | 567 * @param {Event} e The click event. |
| 587 */ | 568 */ |
| 588 function showSyncLoginUI(e) { | 569 function showSyncLoginUI(e) { |
| 589 var rect = e.currentTarget.getBoundingClientRect(); | 570 var rect = e.currentTarget.getBoundingClientRect(); |
| 590 chrome.send('showSyncLoginUI', | 571 chrome.send('showSyncLoginUI', |
| 591 [rect.left, rect.top, rect.width, rect.height]); | 572 [rect.left, rect.top, rect.width, rect.height]); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 657 } | 638 } |
| 658 | 639 |
| 659 /** | 640 /** |
| 660 * Called whenever tiles should be re-arranging themselves out of the way | 641 * Called whenever tiles should be re-arranging themselves out of the way |
| 661 * of a moving or insert tile. | 642 * of a moving or insert tile. |
| 662 */ | 643 */ |
| 663 function enterRearrangeMode() { | 644 function enterRearrangeMode() { |
| 664 newTabView.enterRearrangeMode(); | 645 newTabView.enterRearrangeMode(); |
| 665 } | 646 } |
| 666 | 647 |
| 667 function setForeignSessions(sessionList, isTabSyncEnabled) { | |
| 668 if (otherSessionsButton) { | |
| 669 otherSessionsButton.setForeignSessions(sessionList, isTabSyncEnabled); | |
| 670 layoutFooter(); | |
| 671 } | |
| 672 } | |
| 673 | |
| 674 /** | 648 /** |
| 675 * Callback invoked by chrome with the apps available. | 649 * Callback invoked by chrome with the apps available. |
| 676 * | 650 * |
| 677 * Note that calls to this function can occur at any time, not just in | 651 * Note that calls to this function can occur at any time, not just in |
| 678 * response to a getApps request. For example, when a user | 652 * response to a getApps request. For example, when a user |
| 679 * installs/uninstalls an app on another synchronized devices. | 653 * installs/uninstalls an app on another synchronized devices. |
| 680 * @param {Object} data An object with all the data on available | 654 * @param {Object} data An object with all the data on available |
| 681 * applications. | 655 * applications. |
| 682 */ | 656 */ |
| 683 function getAppsCallback(data) { | 657 function getAppsCallback(data) { |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 729 getAppsCallback: getAppsCallback, | 703 getAppsCallback: getAppsCallback, |
| 730 getAppsPageIndex: getAppsPageIndex, | 704 getAppsPageIndex: getAppsPageIndex, |
| 731 getCardSlider: getCardSlider, | 705 getCardSlider: getCardSlider, |
| 732 onLoad: onLoad, | 706 onLoad: onLoad, |
| 733 leaveRearrangeMode: leaveRearrangeMode, | 707 leaveRearrangeMode: leaveRearrangeMode, |
| 734 logTimeToClick: logTimeToClick, | 708 logTimeToClick: logTimeToClick, |
| 735 NtpFollowAction: NtpFollowAction, | 709 NtpFollowAction: NtpFollowAction, |
| 736 saveAppPageName: saveAppPageName, | 710 saveAppPageName: saveAppPageName, |
| 737 setAppToBeHighlighted: setAppToBeHighlighted, | 711 setAppToBeHighlighted: setAppToBeHighlighted, |
| 738 setBookmarkBarAttached: setBookmarkBarAttached, | 712 setBookmarkBarAttached: setBookmarkBarAttached, |
| 739 setForeignSessions: setForeignSessions, | |
| 740 setMostVisitedPages: setMostVisitedPages, | 713 setMostVisitedPages: setMostVisitedPages, |
| 741 setFaviconDominantColor: setFaviconDominantColor, | 714 setFaviconDominantColor: setFaviconDominantColor, |
| 742 showNotification: showNotification, | 715 showNotification: showNotification, |
| 743 themeChanged: themeChanged, | 716 themeChanged: themeChanged, |
| 744 updateLogin: updateLogin | 717 updateLogin: updateLogin |
| 745 }; | 718 }; |
| 746 }); | 719 }); |
| 747 | 720 |
| 748 document.addEventListener('DOMContentLoaded', ntp.onLoad); | 721 document.addEventListener('DOMContentLoaded', ntp.onLoad); |
| 749 | 722 |
| 750 var toCssPx = cr.ui.toCssPx; | 723 var toCssPx = cr.ui.toCssPx; |
| OLD | NEW |