| 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 // To avoid creating tons of unnecessary nodes. We assume we cannot fit more | 5 // To avoid creating tons of unnecessary nodes. We assume we cannot fit more |
| 6 // than this many items in the miniview. | 6 // than this many items in the miniview. |
| 7 var MAX_MINIVIEW_ITEMS = 15; | 7 var MAX_MINIVIEW_ITEMS = 15; |
| 8 | 8 |
| 9 // Extra spacing at the top of the layout. | 9 // Extra spacing at the top of the layout. |
| 10 var LAYOUT_SPACING_TOP = 25; | 10 var LAYOUT_SPACING_TOP = 25; |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 var gradientHeightPx = Math.min(10, Math.floor(visibleHeightPx / 2)); | 263 var gradientHeightPx = Math.min(10, Math.floor(visibleHeightPx / 2)); |
| 264 var gradientDestination = 'rgba(0,0,0,' + (gradientHeightPx / 10) + ')'; | 264 var gradientDestination = 'rgba(0,0,0,' + (gradientHeightPx / 10) + ')'; |
| 265 | 265 |
| 266 var bottomSpacing = 15; | 266 var bottomSpacing = 15; |
| 267 var first = parseFloat(maxiview.style.top) / window.innerHeight; | 267 var first = parseFloat(maxiview.style.top) / window.innerHeight; |
| 268 var second = first + gradientHeightPx / window.innerHeight; | 268 var second = first + gradientHeightPx / window.innerHeight; |
| 269 var fourth = first + (visibleHeightPx - bottomSpacing) / window.innerHeight; | 269 var fourth = first + (visibleHeightPx - bottomSpacing) / window.innerHeight; |
| 270 var third = fourth - gradientHeightPx / window.innerHeight; | 270 var third = fourth - gradientHeightPx / window.innerHeight; |
| 271 | 271 |
| 272 var gradientArguments = [ | 272 var gradientArguments = [ |
| 273 "linear", | 273 'linear', |
| 274 "0 0", | 274 '0 0', |
| 275 "0 100%", | 275 '0 100%', |
| 276 "from(transparent)", | 276 'from(transparent)', |
| 277 getColorStopString(first, "transparent"), | 277 getColorStopString(first, 'transparent'), |
| 278 getColorStopString(second, gradientDestination), | 278 getColorStopString(second, gradientDestination), |
| 279 getColorStopString(third, gradientDestination), | 279 getColorStopString(third, gradientDestination), |
| 280 getColorStopString(fourth, "transparent"), | 280 getColorStopString(fourth, 'transparent'), |
| 281 "to(transparent)" | 281 'to(transparent)' |
| 282 ]; | 282 ]; |
| 283 | 283 |
| 284 var gradient = '-webkit-gradient(' + gradientArguments.join(', ') + ')'; | 284 var gradient = '-webkit-gradient(' + gradientArguments.join(', ') + ')'; |
| 285 maxiview.style.WebkitMaskImage = gradient; | 285 maxiview.style.WebkitMaskImage = gradient; |
| 286 } | 286 } |
| 287 | 287 |
| 288 function getColorStopString(height, color) { | 288 function getColorStopString(height, color) { |
| 289 return "color-stop(" + height + ", " + color + ")"; | 289 return 'color-stop(' + height + ', ' + color + ')'; |
| 290 } | 290 } |
| 291 | 291 |
| 292 window.addEventListener('resize', handleWindowResize); | 292 window.addEventListener('resize', handleWindowResize); |
| 293 | 293 |
| 294 var sectionToElementMap; | 294 var sectionToElementMap; |
| 295 function getSectionElement(section) { | 295 function getSectionElement(section) { |
| 296 if (!sectionToElementMap) { | 296 if (!sectionToElementMap) { |
| 297 sectionToElementMap = {}; | 297 sectionToElementMap = {}; |
| 298 for (var key in Section) { | 298 for (var key in Section) { |
| 299 sectionToElementMap[Section[key]] = | 299 sectionToElementMap[Section[key]] = |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 maxiview.classList.add('hiding'); | 350 maxiview.classList.add('hiding'); |
| 351 | 351 |
| 352 var miniview = el.getElementsByClassName('miniview')[0]; | 352 var miniview = el.getElementsByClassName('miniview')[0]; |
| 353 if (miniview) | 353 if (miniview) |
| 354 updateMiniviewClipping(miniview); | 354 updateMiniviewClipping(miniview); |
| 355 } | 355 } |
| 356 } | 356 } |
| 357 } | 357 } |
| 358 | 358 |
| 359 window.addEventListener('webkitTransitionEnd', function(e) { | 359 window.addEventListener('webkitTransitionEnd', function(e) { |
| 360 if (e.target.classList.contains('hiding')) | 360 if (e.target.classList.contains('hiding')) { |
| 361 e.target.classList.add('hidden'); | 361 e.target.classList.add('hidden'); |
| 362 e.target.classList.remove('hiding'); |
| 363 } |
| 362 | 364 |
| 363 document.documentElement.setAttribute("enable-section-animations", "false"); | 365 document.documentElement.setAttribute('enable-section-animations', 'false'); |
| 364 }); | 366 }); |
| 365 | 367 |
| 366 /** | 368 /** |
| 367 * Callback when the shown sections changes in another NTP. | 369 * Callback when the shown sections changes in another NTP. |
| 368 * @param {number} newShownSections Bitmask of the shown sections. | 370 * @param {number} newShownSections Bitmask of the shown sections. |
| 369 */ | 371 */ |
| 370 function setShownSections(newShownSections) { | 372 function setShownSections(newShownSections) { |
| 371 for (var key in Section) { | 373 for (var key in Section) { |
| 372 if (newShownSections & Section[key]) | 374 if (newShownSections & Section[key]) |
| 373 showSection(Section[key]); | 375 showSection(Section[key]); |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 650 $('main').addEventListener('click', function(e) { | 652 $('main').addEventListener('click', function(e) { |
| 651 var p = e.target; | 653 var p = e.target; |
| 652 while (p && p.tagName != 'H2') { | 654 while (p && p.tagName != 'H2') { |
| 653 // In case the user clicks on a button we do not want to expand/collapse a | 655 // In case the user clicks on a button we do not want to expand/collapse a |
| 654 // section. | 656 // section. |
| 655 if (p.tagName == 'BUTTON') | 657 if (p.tagName == 'BUTTON') |
| 656 return; | 658 return; |
| 657 p = p.parentNode; | 659 p = p.parentNode; |
| 658 } | 660 } |
| 659 | 661 |
| 660 if (!p) { | 662 if (!p) |
| 661 return; | 663 return; |
| 662 } | |
| 663 | 664 |
| 664 p = p.parentNode; | 665 p = p.parentNode; |
| 665 if (!getSectionMaxiview(p)) { | 666 if (!getSectionMaxiview(p)) |
| 666 return; | 667 return; |
| 668 |
| 669 toggleSectionVisibilityAndAnimate(p.getAttribute('section')); |
| 670 }); |
| 671 |
| 672 function toggleSectionVisibilityAndAnimate(section) { |
| 673 if (!section) |
| 674 return; |
| 675 |
| 676 // We set it back in webkitTransitionEnd. |
| 677 document.documentElement.setAttribute('enable-section-animations', 'true'); |
| 678 if (shownSections & Section[section]) { |
| 679 hideSection(Section[section]); |
| 680 } else { |
| 681 for (var p in Section) { |
| 682 if (p == section) |
| 683 showSection(Section[p]); |
| 684 else |
| 685 hideSection(Section[p]); |
| 686 } |
| 667 } | 687 } |
| 668 | 688 layoutSections(); |
| 669 var section = p.getAttribute('section'); | 689 saveShownSections(); |
| 670 if (section) { | 690 } |
| 671 // We set it back in webkitTransitionEnd. | |
| 672 document.documentElement.setAttribute("enable-section-animations", "true"); | |
| 673 if (shownSections & Section[section]) { | |
| 674 hideSection(Section[section]); | |
| 675 } else { | |
| 676 for (var p in Section) { | |
| 677 if (p == section) | |
| 678 showSection(Section[p]); | |
| 679 else | |
| 680 hideSection(Section[p]); | |
| 681 } | |
| 682 } | |
| 683 layoutSections(); | |
| 684 saveShownSections(); | |
| 685 } | |
| 686 }); | |
| 687 | 691 |
| 688 function handleIfEnterKey(f) { | 692 function handleIfEnterKey(f) { |
| 689 return function(e) { | 693 return function(e) { |
| 690 if (e.keyIdentifier == 'Enter') { | 694 if (e.keyIdentifier == 'Enter') |
| 691 f(e); | 695 f(e); |
| 692 } | |
| 693 }; | 696 }; |
| 694 } | 697 } |
| 695 | 698 |
| 696 function maybeReopenTab(e) { | 699 function maybeReopenTab(e) { |
| 697 var el = findAncestor(e.target, function(el) { | 700 var el = findAncestor(e.target, function(el) { |
| 698 return el.sessionId !== undefined; | 701 return el.sessionId !== undefined; |
| 699 }); | 702 }); |
| 700 if (el) { | 703 if (el) { |
| 701 chrome.send('reopenTab', [String(el.sessionId)]); | 704 chrome.send('reopenTab', [String(el.sessionId)]); |
| 702 e.preventDefault(); | 705 e.preventDefault(); |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 935 window.setTimeout(function() { | 938 window.setTimeout(function() { |
| 936 mostVisited.ensureSmallGridCorrect(); | 939 mostVisited.ensureSmallGridCorrect(); |
| 937 document.body.classList.remove('loading'); | 940 document.body.classList.remove('loading'); |
| 938 }, 1); | 941 }, 1); |
| 939 | 942 |
| 940 // Only show the first run notification if first run. | 943 // Only show the first run notification if first run. |
| 941 if (firstRun) { | 944 if (firstRun) { |
| 942 showFirstRunNotification(); | 945 showFirstRunNotification(); |
| 943 } | 946 } |
| 944 } | 947 } |
| OLD | NEW |