Chromium Code Reviews| Index: chrome/browser/resources/ntp4/most_visited_page.js |
| =================================================================== |
| --- chrome/browser/resources/ntp4/most_visited_page.js (revision 133667) |
| +++ chrome/browser/resources/ntp4/most_visited_page.js (working copy) |
| @@ -8,6 +8,16 @@ |
| var TilePage = ntp.TilePage; |
| /** |
| + * See description for these values in ntp_stats.h. |
| + * @enum {number} |
| + */ |
| + var NtpFollowAction = { |
|
Evan Stade
2012/04/24 20:29:44
this doesn't need to be defined twice, put it in n
macourteau
2012/04/26 19:10:14
Done.
|
| + CLICKED_TILE: 11, |
| + CLICKED_OTHER_NTP_PANE: 12, |
| + OTHER: 13 |
| + }; |
| + |
| + /** |
| * A counter for generating unique tile IDs. |
| */ |
| var tileID = 0; |
| @@ -141,6 +151,8 @@ |
| // Records the index of this tile. |
| chrome.send('metricsHandler:recordInHistogram', |
| ['NewTabPage.MostVisited', this.index, 8]); |
| + chrome.send('mostVisitedAction', |
| + [NtpFollowAction.CLICKED_TILE]); |
| } |
| }, |
| @@ -289,6 +301,9 @@ |
| this.classList.add('most-visited-page'); |
| this.data_ = null; |
| this.mostVisitedTiles_ = this.getElementsByClassName('most-visited real'); |
| + |
| + this.addEventListener('carddeselected', this.handleCardDeselected_); |
| + this.addEventListener('cardselected', this.handleCardSelected_); |
| }, |
| /** |
| @@ -317,6 +332,29 @@ |
| }, |
| /** |
| + * Handles the 'card deselected' event (i.e. the user clicked to another |
| + * pane). |
| + * @param {Event} e The CardChanged event. |
| + */ |
| + handleCardDeselected_: function(e) { |
| + if (!document.documentElement.classList.contains('starting-up')) { |
| + chrome.send('mostVisitedAction', |
| + [NtpFollowAction.CLICKED_OTHER_NTP_PANE]); |
| + } |
| + }, |
| + |
| + /** |
| + * Handles the 'card selected' event (i.e. the user clicked to select the |
| + * Most Visited pane). |
| + * @param {Event} e The CardChanged event. |
| + */ |
| + handleCardSelected_: function(e) { |
| + if (!document.documentElement.classList.contains('starting-up')) { |
| + chrome.send('mostVisitedSelected'); |
| + } |
| + }, |
| + |
| + /** |
| * Array of most visited data objects. |
| * @type {Array} |
| */ |
| @@ -348,6 +386,19 @@ |
| }; |
| /** |
| + * Executed once the NTP has loaded. Checks if the Most Visited pane is |
| + * shown or not. |
| + */ |
| + MostVisitedPage.onLoaded = function() { |
| + if (ntp.getCardSlider() && ntp.getCardSlider().currentCardValue) { |
| + if (ntp.getCardSlider().currentCardValue.classList |
| + .contains('most-visited-page')) { |
| + chrome.send('mostVisitedSelected'); |
| + } |
| + } |
| + } |
| + |
| + /** |
| * We've gotten additional Most Visited data. Update our old data with the |
| * new data. The ordering of the new data is not important, except when a |
| * page is pinned. Thus we try to minimize re-ordering. |
| @@ -424,3 +475,5 @@ |
| refreshData: refreshData, |
| }; |
| }); |
| + |
| +document.addEventListener('ntploaded', ntp.MostVisitedPage.onLoaded); |