| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 /** | 6 /** |
| 7 * @fileoverview Rendering for iframed most visited thumbnails. | 7 * @fileoverview Rendering for iframed most visited thumbnails. |
| 8 */ | 8 */ |
| 9 | 9 |
| 10 window.addEventListener('DOMContentLoaded', function() { | 10 window.addEventListener('DOMContentLoaded', function() { |
| 11 'use strict'; | 11 'use strict'; |
| 12 | 12 |
| 13 fillMostVisited(document.location, function(params, data) { | 13 fillMostVisited(document.location, function(params, data) { |
| 14 function logEvent(eventName) { | 14 function logEvent(eventName) { |
| 15 chrome.embeddedSearch.newTabPage.logEvent(eventName); | 15 chrome.embeddedSearch.newTabPage.logEvent(eventName); |
| 16 } | 16 } |
| 17 function logImpression(tileIndex, provider) { | 17 function logMostVisitedImpression(tileIndex, provider) { |
| 18 chrome.embeddedSearch.newTabPage.logImpression(tileIndex, provider); | 18 chrome.embeddedSearch.newTabPage.logMostVisitedImpression( |
| 19 tileIndex, provider); |
| 19 } | 20 } |
| 20 function displayLink(link) { | 21 function displayLink(link) { |
| 21 document.body.appendChild(link); | 22 document.body.appendChild(link); |
| 22 window.parent.postMessage('linkDisplayed', '{{ORIGIN}}'); | 23 window.parent.postMessage('linkDisplayed', '{{ORIGIN}}'); |
| 23 } | 24 } |
| 24 function showDomainElement() { | 25 function showDomainElement() { |
| 25 var link = createMostVisitedLink( | 26 var link = createMostVisitedLink( |
| 26 params, data.url, data.title, undefined, data.ping, data.provider); | 27 params, data.url, data.title, undefined, data.provider); |
| 27 var domain = document.createElement('div'); | 28 var domain = document.createElement('div'); |
| 28 domain.textContent = data.domain; | 29 domain.textContent = data.domain; |
| 29 link.appendChild(domain); | 30 link.appendChild(domain); |
| 30 displayLink(link); | 31 displayLink(link); |
| 31 } | 32 } |
| 32 // Called on intentionally empty tiles for which the visuals are handled | 33 // Called on intentionally empty tiles for which the visuals are handled |
| 33 // externally by the page itself. | 34 // externally by the page itself. |
| 34 function showEmptyTile() { | 35 function showEmptyTile() { |
| 35 displayLink(createMostVisitedLink( | 36 displayLink(createMostVisitedLink( |
| 36 params, data.url, data.title, undefined, data.ping, data.provider)); | 37 params, data.url, data.title, undefined, data.provider)); |
| 37 } | 38 } |
| 38 // Creates and adds an image. | 39 // Creates and adds an image. |
| 39 function createThumbnail(src) { | 40 function createThumbnail(src) { |
| 40 var image = new Image(); | 41 var image = new Image(); |
| 41 image.onload = function() { | 42 image.onload = function() { |
| 42 var shadow = document.createElement('span'); | 43 var shadow = document.createElement('span'); |
| 43 shadow.classList.add('shadow'); | 44 shadow.classList.add('shadow'); |
| 44 var link = createMostVisitedLink( | 45 var link = createMostVisitedLink( |
| 45 params, data.url, data.title, undefined, data.ping, | 46 params, data.url, data.title, undefined, data.provider); |
| 46 data.provider); | |
| 47 link.appendChild(shadow); | 47 link.appendChild(shadow); |
| 48 link.appendChild(image); | 48 link.appendChild(image); |
| 49 displayLink(link); | 49 displayLink(link); |
| 50 }; | 50 }; |
| 51 image.onerror = function() { | 51 image.onerror = function() { |
| 52 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_THUMBNAIL_ERROR); | 52 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_THUMBNAIL_ERROR); |
| 53 if (data.domain) { | 53 if (data.domain) { |
| 54 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_GRAY_TILE_FALLBACK); | 54 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_GRAY_TILE_FALLBACK); |
| 55 showDomainElement(); | 55 showDomainElement(); |
| 56 } else { | 56 } else { |
| 57 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_EXTERNAL_TILE_FALLBACK); | 57 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_EXTERNAL_TILE_FALLBACK); |
| 58 showEmptyTile(); | 58 showEmptyTile(); |
| 59 } | 59 } |
| 60 }; | 60 }; |
| 61 image.src = src; | 61 image.src = src; |
| 62 } | 62 } |
| 63 | 63 |
| 64 // Log an impression if we know the position of the tile. | 64 // Log an impression if we know the position of the tile. |
| 65 if (isFinite(params.pos) && data.provider) { | 65 if (isFinite(params.pos) && data.provider) { |
| 66 logImpression(parseInt(params.pos, 10), data.provider); | 66 logMostVisitedImpression(parseInt(params.pos, 10), data.provider); |
| 67 } | 67 } |
| 68 | 68 |
| 69 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_TILE); | 69 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_TILE); |
| 70 if (data.thumbnailUrl) { | 70 if (data.thumbnailUrl) { |
| 71 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_THUMBNAIL_TILE); | 71 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_THUMBNAIL_TILE); |
| 72 createThumbnail(data.thumbnailUrl); | 72 createThumbnail(data.thumbnailUrl); |
| 73 } else if (data.domain) { | 73 } else if (data.domain) { |
| 74 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_GRAY_TILE); | 74 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_GRAY_TILE); |
| 75 showDomainElement(); | 75 showDomainElement(); |
| 76 } else { | 76 } else { |
| 77 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_EXTERNAL_TILE); | 77 logEvent(NTP_LOGGING_EVENT_TYPE.NTP_EXTERNAL_TILE); |
| 78 showEmptyTile(); | 78 showEmptyTile(); |
| 79 } | 79 } |
| 80 }); | 80 }); |
| 81 }); | 81 }); |
| OLD | NEW |