Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Side by Side Diff: chrome/browser/resources/local_ntp/most_visited_thumbnail.js

Issue 178253008: Redoing Issue 36073011: Allowing file:/// in Instant Extended's Most Visited links. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove unused consts. Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698