| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 var loading = true; | 5 var loading = true; |
| 6 | 6 |
| 7 function updateSimpleSection(id, section) { | 7 function updateSimpleSection(id, section) { |
| 8 if (shownSections & section) | 8 if (shownSections & section) |
| 9 $(id).classList.remove('hidden'); | 9 $(id).classList.remove('hidden'); |
| 10 else | 10 else |
| 11 $(id).classList.add('hidden'); | 11 $(id).classList.add('hidden'); |
| 12 } | 12 } |
| 13 | 13 |
| 14 var tipCache = {}; | 14 var tipCache = {}; |
| 15 | 15 |
| 16 function tips(data) { | 16 function tips(data) { |
| 17 logEvent('received tips'); | 17 logEvent('received tips'); |
| 18 tipCache = data; | 18 tipCache = data; |
| 19 renderTip(); | 19 renderTip(); |
| 20 } | 20 } |
| 21 | 21 |
| 22 function createTip(data) { | 22 function createTip(data) { |
| 23 if (data.length) { | 23 if (data.length) { |
| 24 if (data[0].set_homepage_tip) { | 24 if (data[0].set_homepage_tip) { |
| 25 var homepageButton = document.createElement('button'); | 25 var homepageButton = document.createElement('button'); |
| 26 homepageButton.className = 'link'; | 26 homepageButton.className = 'link'; |
| 27 homepageButton.textContent = data[0].set_homepage_tip; | 27 homepageButton.textContent = data[0].set_homepage_tip; |
| 28 homepageButton.addEventListener('click', setAsHomePageLinkClicked); | 28 homepageButton.addEventListener('click', setAsHomePageLinkClicked); |
| 29 return homepageButton; | 29 return homepageButton; |
| 30 } else if (data[0].set_promo_tip) { | |
| 31 var promoMessage = document.createElement('span'); | |
| 32 promoMessage.innerHTML = data[0].set_promo_tip; | |
| 33 var promoButton = promoMessage.querySelector('button'); | |
| 34 promoButton.addEventListener('click', importBookmarksLinkClicked); | |
| 35 return promoMessage; | |
| 36 } else { | 30 } else { |
| 37 try { | 31 try { |
| 38 return parseHtmlSubset(data[0].tip_html_text); | 32 return parseHtmlSubset(data[0].tip_html_text); |
| 39 } catch (parseErr) { | 33 } catch (parseErr) { |
| 40 console.error('Error parsing tips: ' + parseErr.message); | 34 console.error('Error parsing tips: ' + parseErr.message); |
| 41 } | 35 } |
| 42 } | 36 } |
| 43 } | 37 } |
| 44 // Return an empty DF in case of failure. | 38 // Return an empty DF in case of failure. |
| 45 return document.createDocumentFragment(); | 39 return document.createDocumentFragment(); |
| (...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 var actionLink = notificationElement.querySelector('.link-color'); | 434 var actionLink = notificationElement.querySelector('.link-color'); |
| 441 // Prevent tabbing to the hidden link. | 435 // Prevent tabbing to the hidden link. |
| 442 actionLink.tabIndex = -1; | 436 actionLink.tabIndex = -1; |
| 443 // Setting tabIndex to -1 only prevents future tabbing to it. If, however, the | 437 // Setting tabIndex to -1 only prevents future tabbing to it. If, however, the |
| 444 // user switches window or a tab and then moves back to this tab the element | 438 // user switches window or a tab and then moves back to this tab the element |
| 445 // may gain focus. We therefore make sure that we blur the element so that the | 439 // may gain focus. We therefore make sure that we blur the element so that the |
| 446 // element focus is not restored when coming back to this window. | 440 // element focus is not restored when coming back to this window. |
| 447 actionLink.blur(); | 441 actionLink.blur(); |
| 448 } | 442 } |
| 449 | 443 |
| 444 function showFirstRunNotification() { |
| 445 showNotification(localStrings.getString('firstrunnotification'), |
| 446 localStrings.getString('closefirstrunnotification'), |
| 447 null, 30000); |
| 448 var notificationElement = $('notification'); |
| 449 notification.classList.add('first-run'); |
| 450 } |
| 451 |
| 450 /** | 452 /** |
| 451 * This handles the option menu. | 453 * This handles the option menu. |
| 452 * @param {Element} button The button element. | 454 * @param {Element} button The button element. |
| 453 * @param {Element} menu The menu element. | 455 * @param {Element} menu The menu element. |
| 454 * @constructor | 456 * @constructor |
| 455 */ | 457 */ |
| 456 function OptionMenu(button, menu) { | 458 function OptionMenu(button, menu) { |
| 457 this.button = button; | 459 this.button = button; |
| 458 this.menu = menu; | 460 this.menu = menu; |
| 459 this.button.onmousedown = bind(this.handleMouseDown, this); | 461 this.button.onmousedown = bind(this.handleMouseDown, this); |
| (...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 843 if (document.documentElement.getAttribute('syncispresent') == 'true') { | 845 if (document.documentElement.getAttribute('syncispresent') == 'true') { |
| 844 chrome.send('GetSyncMessage'); | 846 chrome.send('GetSyncMessage'); |
| 845 } | 847 } |
| 846 } | 848 } |
| 847 | 849 |
| 848 function setAsHomePageLinkClicked(e) { | 850 function setAsHomePageLinkClicked(e) { |
| 849 chrome.send('setHomePage'); | 851 chrome.send('setHomePage'); |
| 850 e.preventDefault(); | 852 e.preventDefault(); |
| 851 } | 853 } |
| 852 | 854 |
| 853 function importBookmarksLinkClicked(e) { | |
| 854 chrome.send('importBookmarks'); | |
| 855 e.preventDefault(); | |
| 856 } | |
| 857 | |
| 858 function onHomePageSet(data) { | 855 function onHomePageSet(data) { |
| 859 showNotification(data[0], data[1]); | 856 showNotification(data[0], data[1]); |
| 860 // Removes the "make this my home page" tip. | 857 // Removes the "make this my home page" tip. |
| 861 clearTipLine(); | 858 clearTipLine(); |
| 862 } | 859 } |
| 863 | 860 |
| 864 function hideAllMenus() { | 861 function hideAllMenus() { |
| 865 optionMenu.hide(); | 862 optionMenu.hide(); |
| 866 } | 863 } |
| 867 | 864 |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 927 mostVisited.layout(); | 924 mostVisited.layout(); |
| 928 | 925 |
| 929 loading = false; | 926 loading = false; |
| 930 | 927 |
| 931 // Remove class name in a timeout so that changes done in this JS thread are | 928 // Remove class name in a timeout so that changes done in this JS thread are |
| 932 // not animated. | 929 // not animated. |
| 933 window.setTimeout(function() { | 930 window.setTimeout(function() { |
| 934 mostVisited.ensureSmallGridCorrect(); | 931 mostVisited.ensureSmallGridCorrect(); |
| 935 document.body.classList.remove('loading'); | 932 document.body.classList.remove('loading'); |
| 936 }, 1); | 933 }, 1); |
| 934 |
| 935 // Only show the first run notification if first run. |
| 936 if (firstRun) { |
| 937 showFirstRunNotification(); |
| 938 } |
| 937 } | 939 } |
| 938 | 940 |
| 939 // Log clicked links from the tips section. | 941 // Log clicked links from the tips section. |
| 940 document.addEventListener('click', function(e) { | 942 document.addEventListener('click', function(e) { |
| 941 var tipLinks = document.querySelectorAll('#tip-line a'); | 943 var tipLinks = document.querySelectorAll('#tip-line a'); |
| 942 for (var i = 0, tipLink; tipLink = tipLinks[i]; i++) { | 944 for (var i = 0, tipLink; tipLink = tipLinks[i]; i++) { |
| 943 if (tipLink.contains(e.target)) { | 945 if (tipLink.contains(e.target)) { |
| 944 chrome.send('metrics', ['NTPTip_' + tipLink.href]); | 946 chrome.send('metrics', ['NTPTip_' + tipLink.href]); |
| 945 break; | 947 break; |
| 946 } | 948 } |
| 947 } | 949 } |
| 948 }); | 950 }); |
| OLD | NEW |