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

Side by Side Diff: chrome/browser/resources/google_now/cards.js

Issue 211663004: Cards Clicked Metrics (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use the new sparse histogram support. 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 'use strict'; 5 'use strict';
6 6
7 /** 7 /**
8 * Show/hide trigger in a card. 8 * Show/hide trigger in a card.
9 * 9 *
10 * @typedef {{ 10 * @typedef {{
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 * Notification as sent by the server. 53 * Notification as sent by the server.
54 * 54 *
55 * @typedef {{ 55 * @typedef {{
56 * notificationId: NotificationId, 56 * notificationId: NotificationId,
57 * chromeNotificationId: ChromeNotificationId, 57 * chromeNotificationId: ChromeNotificationId,
58 * trigger: Trigger, 58 * trigger: Trigger,
59 * chromeNotificationOptions: Object, 59 * chromeNotificationOptions: Object,
60 * actionUrls: (ActionUrls|undefined), 60 * actionUrls: (ActionUrls|undefined),
61 * dismissal: Object, 61 * dismissal: Object,
62 * locationBased: (boolean|undefined), 62 * locationBased: (boolean|undefined),
63 * groupName: string 63 * groupName: string,
64 * cardTypeId: (number|undefined)
64 * }} 65 * }}
65 */ 66 */
66 var ReceivedNotification; 67 var ReceivedNotification;
67 68
68 /** 69 /**
69 * Received notification in a self-sufficient form that doesn't require group's 70 * Received notification in a self-sufficient form that doesn't require group's
70 * timestamp to calculate show and hide times. 71 * timestamp to calculate show and hide times.
71 * 72 *
72 * @typedef {{ 73 * @typedef {{
73 * receivedNotification: ReceivedNotification, 74 * receivedNotification: ReceivedNotification,
(...skipping 10 matching lines...) Expand all
84 */ 85 */
85 var CombinedCard; 86 var CombinedCard;
86 87
87 /** 88 /**
88 * Data entry that we store for every Chrome notification. 89 * Data entry that we store for every Chrome notification.
89 * |timestamp| is the time when corresponding Chrome notification was created or 90 * |timestamp| is the time when corresponding Chrome notification was created or
90 * updated last time by cardSet.update(). 91 * updated last time by cardSet.update().
91 * 92 *
92 * @typedef {{ 93 * @typedef {{
93 * actionUrls: (ActionUrls|undefined), 94 * actionUrls: (ActionUrls|undefined),
95 * cardTypeId: (number|undefined),
94 * timestamp: number, 96 * timestamp: number,
95 * combinedCard: CombinedCard 97 * combinedCard: CombinedCard
96 * }} 98 * }}
97 * 99 *
98 */ 100 */
99 var NotificationDataEntry; 101 var NotificationDataEntry;
100 102
101 /** 103 /**
102 * Names for tasks that can be created by the this file. 104 * Names for tasks that can be created by the this file.
103 */ 105 */
104 var UPDATE_CARD_TASK_NAME = 'update-card'; 106 var UPDATE_CARD_TASK_NAME = 'update-card';
105 107
106 /** 108 /**
107 * Builds an object to manage notification card set. 109 * Builds an object to manage notification card set.
108 * @return {Object} Card set interface. 110 * @return {Object} Card set interface.
109 */ 111 */
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 // If we expect more events, create an alarm for the next one. 241 // If we expect more events, create an alarm for the next one.
240 chrome.alarms.create(alarmPrefix + cardId, {when: nextEventTime}); 242 chrome.alarms.create(alarmPrefix + cardId, {when: nextEventTime});
241 243
242 // The trick with stringify/parse is to create a copy of action URLs, 244 // The trick with stringify/parse is to create a copy of action URLs,
243 // otherwise notifications data with 2 pointers to the same object won't 245 // otherwise notifications data with 2 pointers to the same object won't
244 // be stored correctly to chrome.storage. 246 // be stored correctly to chrome.storage.
245 var winningActionUrls = winningCard && 247 var winningActionUrls = winningCard &&
246 winningCard.receivedNotification.actionUrls && 248 winningCard.receivedNotification.actionUrls &&
247 JSON.parse(JSON.stringify( 249 JSON.parse(JSON.stringify(
248 winningCard.receivedNotification.actionUrls)); 250 winningCard.receivedNotification.actionUrls));
249 251 var winningCardTypeId = winningCard &&
252 winningCard.receivedNotification.cardTypeId;
250 return { 253 return {
251 actionUrls: winningActionUrls, 254 actionUrls: winningActionUrls,
255 cardTypeId: winningCardTypeId,
252 timestamp: now, 256 timestamp: now,
253 combinedCard: combinedCard 257 combinedCard: combinedCard
254 }; 258 };
255 } else { 259 } else {
256 // If there are no more events, we are done with this card. Note that all 260 // If there are no more events, we are done with this card. Note that all
257 // received notifications have hideTime. 261 // received notifications have hideTime.
258 verify(!winningCard, 'No events left, but card is shown.'); 262 verify(!winningCard, 'No events left, but card is shown.');
259 clearCardFromGroups(cardId, notificationGroups); 263 clearCardFromGroups(cardId, notificationGroups);
260 return undefined; 264 return undefined;
261 } 265 }
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 }); 360 });
357 }); 361 });
358 } 362 }
359 }); 363 });
360 364
361 return { 365 return {
362 update: update, 366 update: update,
363 onDismissal: onDismissal 367 onDismissal: onDismissal
364 }; 368 };
365 } 369 }
OLDNEW
« no previous file with comments | « chrome/browser/resources/google_now/background_unittest.gtestjs ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698