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 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 // max-width is used because if we run out of space, the nav dots will be | 366 // max-width is used because if we run out of space, the nav dots will be |
367 // shrunk. | 367 // shrunk. |
368 styleElement.textContent = '.dot { max-width: ' + pxWidth + 'px; }'; | 368 styleElement.textContent = '.dot { max-width: ' + pxWidth + 'px; }'; |
369 document.querySelector('head').appendChild(styleElement); | 369 document.querySelector('head').appendChild(styleElement); |
370 } | 370 } |
371 | 371 |
372 /** | 372 /** |
373 * Layout the footer so that the nav dots stay centered. | 373 * Layout the footer so that the nav dots stay centered. |
374 */ | 374 */ |
375 function layoutFooter() { | 375 function layoutFooter() { |
| 376 // We need the image to be loaded. |
| 377 var logo = $('logo-img'); |
| 378 var logoImg = logo.querySelector('img'); |
| 379 if (!logoImg.complete) { |
| 380 logoImg.onload = layoutFooter; |
| 381 return; |
| 382 } |
| 383 |
376 var menu = $('footer-menu-container'); | 384 var menu = $('footer-menu-container'); |
377 var logo = $('logo-img'); | 385 if (menu.clientWidth > logoImg.width) |
378 if (menu.clientWidth > logo.clientWidth) | |
379 logo.style.WebkitFlex = '0 1 ' + menu.clientWidth + 'px'; | 386 logo.style.WebkitFlex = '0 1 ' + menu.clientWidth + 'px'; |
380 else | 387 else |
381 menu.style.WebkitFlex = '0 1 ' + logo.clientWidth + 'px'; | 388 menu.style.WebkitFlex = '0 1 ' + logoImg.width + 'px'; |
382 } | 389 } |
383 | 390 |
384 function themeChanged(opt_hasAttribution) { | 391 function themeChanged(opt_hasAttribution) { |
385 $('themecss').href = 'chrome://theme/css/new_tab_theme.css?' + Date.now(); | 392 $('themecss').href = 'chrome://theme/css/new_tab_theme.css?' + Date.now(); |
386 | 393 |
387 if (typeof opt_hasAttribution != 'undefined') { | 394 if (typeof opt_hasAttribution != 'undefined') { |
388 document.documentElement.setAttribute('hasattribution', | 395 document.documentElement.setAttribute('hasattribution', |
389 opt_hasAttribution); | 396 opt_hasAttribution); |
390 } | 397 } |
391 | 398 |
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
705 setFaviconDominantColor: setFaviconDominantColor, | 712 setFaviconDominantColor: setFaviconDominantColor, |
706 showNotification: showNotification, | 713 showNotification: showNotification, |
707 themeChanged: themeChanged, | 714 themeChanged: themeChanged, |
708 updateLogin: updateLogin | 715 updateLogin: updateLogin |
709 }; | 716 }; |
710 }); | 717 }); |
711 | 718 |
712 document.addEventListener('DOMContentLoaded', ntp.onLoad); | 719 document.addEventListener('DOMContentLoaded', ntp.onLoad); |
713 | 720 |
714 var toCssPx = cr.ui.toCssPx; | 721 var toCssPx = cr.ui.toCssPx; |
OLD | NEW |