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 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 sectionsToWaitFor++; | 130 sectionsToWaitFor++; |
131 if (loadTimeData.getBoolean('showApps')) { | 131 if (loadTimeData.getBoolean('showApps')) { |
132 sectionsToWaitFor++; | 132 sectionsToWaitFor++; |
133 if (loadTimeData.getBoolean('showAppLauncherPromo')) { | 133 if (loadTimeData.getBoolean('showAppLauncherPromo')) { |
134 $('app-launcher-promo-close-button').addEventListener('click', | 134 $('app-launcher-promo-close-button').addEventListener('click', |
135 function() { chrome.send('stopShowingAppLauncherPromo'); }); | 135 function() { chrome.send('stopShowingAppLauncherPromo'); }); |
136 $('apps-promo-learn-more').addEventListener('click', | 136 $('apps-promo-learn-more').addEventListener('click', |
137 function() { chrome.send('onLearnMore'); }); | 137 function() { chrome.send('onLearnMore'); }); |
138 } | 138 } |
139 } | 139 } |
140 if (loadTimeData.getBoolean('isDiscoveryInNTPEnabled')) | |
141 sectionsToWaitFor++; | |
142 measureNavDots(); | 140 measureNavDots(); |
143 | 141 |
144 // Load the current theme colors. | 142 // Load the current theme colors. |
145 themeChanged(); | 143 themeChanged(); |
146 | 144 |
147 newTabView = new NewTabView(); | 145 newTabView = new NewTabView(); |
148 | 146 |
149 notificationContainer = getRequiredElement('notification-container'); | 147 notificationContainer = getRequiredElement('notification-container'); |
150 notificationContainer.addEventListener( | 148 notificationContainer.addEventListener( |
151 'webkitTransitionEnd', onNotificationTransitionEnd); | 149 'webkitTransitionEnd', onNotificationTransitionEnd); |
(...skipping 12 matching lines...) Expand all Loading... |
164 // Move the footer into the most visited page if we are in "bare minimum" | 162 // Move the footer into the most visited page if we are in "bare minimum" |
165 // mode. | 163 // mode. |
166 if (document.body.classList.contains('bare-minimum')) | 164 if (document.body.classList.contains('bare-minimum')) |
167 mostVisited.appendFooter(getRequiredElement('footer')); | 165 mostVisited.appendFooter(getRequiredElement('footer')); |
168 newTabView.appendTilePage(mostVisited, | 166 newTabView.appendTilePage(mostVisited, |
169 loadTimeData.getString('mostvisited'), | 167 loadTimeData.getString('mostvisited'), |
170 false); | 168 false); |
171 chrome.send('getMostVisited'); | 169 chrome.send('getMostVisited'); |
172 } | 170 } |
173 | 171 |
174 if (loadTimeData.getBoolean('isDiscoveryInNTPEnabled')) { | |
175 var suggestionsScript = document.createElement('script'); | |
176 suggestionsScript.src = 'suggestions_page.js'; | |
177 suggestionsScript.onload = function() { | |
178 newTabView.appendTilePage(new ntp.SuggestionsPage(), | |
179 loadTimeData.getString('suggestions'), | |
180 false, | |
181 (newTabView.appsPages.length > 0) ? | |
182 newTabView.appsPages[0] : null); | |
183 chrome.send('getSuggestions'); | |
184 cr.dispatchSimpleEvent(document, 'sectionready', true, true); | |
185 }; | |
186 document.querySelector('head').appendChild(suggestionsScript); | |
187 } | |
188 | |
189 if (!loadTimeData.getBoolean('showWebStoreIcon')) { | 172 if (!loadTimeData.getBoolean('showWebStoreIcon')) { |
190 var webStoreIcon = $('chrome-web-store-link'); | 173 var webStoreIcon = $('chrome-web-store-link'); |
191 // Not all versions of the NTP have a footer, so this may not exist. | 174 // Not all versions of the NTP have a footer, so this may not exist. |
192 if (webStoreIcon) | 175 if (webStoreIcon) |
193 webStoreIcon.hidden = true; | 176 webStoreIcon.hidden = true; |
194 } else { | 177 } else { |
195 var webStoreLink = loadTimeData.getString('webStoreLink'); | 178 var webStoreLink = loadTimeData.getString('webStoreLink'); |
196 var url = appendParam(webStoreLink, 'utm_source', 'chrome-ntp-launcher'); | 179 var url = appendParam(webStoreLink, 'utm_source', 'chrome-ntp-launcher'); |
197 $('chrome-web-store-link').href = url; | 180 $('chrome-web-store-link').href = url; |
198 $('chrome-web-store-link').addEventListener('click', | 181 $('chrome-web-store-link').addEventListener('click', |
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
540 | 523 |
541 /** | 524 /** |
542 * @param {Array<PageData>} data | 525 * @param {Array<PageData>} data |
543 * @param {boolean} hasBlacklistedUrls | 526 * @param {boolean} hasBlacklistedUrls |
544 */ | 527 */ |
545 function setMostVisitedPages(data, hasBlacklistedUrls) { | 528 function setMostVisitedPages(data, hasBlacklistedUrls) { |
546 newTabView.mostVisitedPage.data = data; | 529 newTabView.mostVisitedPage.data = data; |
547 cr.dispatchSimpleEvent(document, 'sectionready', true, true); | 530 cr.dispatchSimpleEvent(document, 'sectionready', true, true); |
548 } | 531 } |
549 | 532 |
550 function setSuggestionsPages(data, hasBlacklistedUrls) { | |
551 newTabView.suggestionsPage.data = data; | |
552 } | |
553 | |
554 /** | 533 /** |
555 * Set the dominant color for a node. This will be called in response to | 534 * Set the dominant color for a node. This will be called in response to |
556 * getFaviconDominantColor. The node represented by |id| better have a setter | 535 * getFaviconDominantColor. The node represented by |id| better have a setter |
557 * for stripeColor. | 536 * for stripeColor. |
558 * @param {string} id The ID of a node. | 537 * @param {string} id The ID of a node. |
559 * @param {string} color The color represented as a CSS string. | 538 * @param {string} color The color represented as a CSS string. |
560 */ | 539 */ |
561 function setFaviconDominantColor(id, color) { | 540 function setFaviconDominantColor(id, color) { |
562 var node = $(id); | 541 var node = $(id); |
563 if (node) | 542 if (node) |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
752 getCardSlider: getCardSlider, | 731 getCardSlider: getCardSlider, |
753 onLoad: onLoad, | 732 onLoad: onLoad, |
754 leaveRearrangeMode: leaveRearrangeMode, | 733 leaveRearrangeMode: leaveRearrangeMode, |
755 logTimeToClick: logTimeToClick, | 734 logTimeToClick: logTimeToClick, |
756 NtpFollowAction: NtpFollowAction, | 735 NtpFollowAction: NtpFollowAction, |
757 saveAppPageName: saveAppPageName, | 736 saveAppPageName: saveAppPageName, |
758 setAppToBeHighlighted: setAppToBeHighlighted, | 737 setAppToBeHighlighted: setAppToBeHighlighted, |
759 setBookmarkBarAttached: setBookmarkBarAttached, | 738 setBookmarkBarAttached: setBookmarkBarAttached, |
760 setForeignSessions: setForeignSessions, | 739 setForeignSessions: setForeignSessions, |
761 setMostVisitedPages: setMostVisitedPages, | 740 setMostVisitedPages: setMostVisitedPages, |
762 setSuggestionsPages: setSuggestionsPages, | |
763 setFaviconDominantColor: setFaviconDominantColor, | 741 setFaviconDominantColor: setFaviconDominantColor, |
764 showNotification: showNotification, | 742 showNotification: showNotification, |
765 themeChanged: themeChanged, | 743 themeChanged: themeChanged, |
766 updateLogin: updateLogin | 744 updateLogin: updateLogin |
767 }; | 745 }; |
768 }); | 746 }); |
769 | 747 |
770 document.addEventListener('DOMContentLoaded', ntp.onLoad); | 748 document.addEventListener('DOMContentLoaded', ntp.onLoad); |
771 | 749 |
772 var toCssPx = cr.ui.toCssPx; | 750 var toCssPx = cr.ui.toCssPx; |
OLD | NEW |