Index: chrome/browser/resources/suggestions_internals/suggestions_internals.js |
diff --git a/chrome/browser/resources/suggestions_internals/suggestions_internals.js b/chrome/browser/resources/suggestions_internals/suggestions_internals.js |
deleted file mode 100644 |
index 63a9acea713a64b2cd65d47c5f194fbf04fbd18d..0000000000000000000000000000000000000000 |
--- a/chrome/browser/resources/suggestions_internals/suggestions_internals.js |
+++ /dev/null |
@@ -1,186 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-/** |
- * Javascript for suggestions_internals.html, served from |
- * chrome://suggestions-internals/. This is used to debug suggestions ranking. |
- * When loaded, the page will show the current set of suggestions, along with a |
- * large set of information (e.g. all the signals that were taken into |
- * consideration for deciding which pages were selected to be shown to the user) |
- * that will aid in debugging and optimizing the algorithms. |
- */ |
-cr.define('suggestionsInternals', function() { |
- 'use strict'; |
- |
- /** |
- * Register our event handlers. |
- */ |
- function initialize() { |
- $('suggestions-form').addEventListener('submit', onRefreshClicked); |
- $('show-discarded').addEventListener('change', refresh); |
- refresh(); |
- } |
- |
- /** |
- * Called when the 'Refresh' button is clicked. Reloads the suggestions data. |
- */ |
- function onRefreshClicked(event) { |
- refresh(); |
- event.preventDefault(); |
- } |
- |
- /** |
- * Reloads the suggestions data by sending a 'getSuggestions' message to |
- * Chrome. The C++ code is then expected to call 'setSuggestions' when there |
- * are suggestions ready. |
- */ |
- function refresh() { |
- chrome.send('getSuggestions'); |
- } |
- |
- /** |
- * A list of columns that we do not want to display. |
- * @type {Array<string>} |
- * @const |
- */ |
- var IGNORED_COLUMNS = [ |
- 'direction' |
- ]; |
- |
- /** |
- * A list specifying the name of the first columns to be displayed. If |
- * present, they will be displayed in this order, followed by the remaining |
- * columns. |
- * @type {Array<string>} |
- * @const |
- */ |
- var PREFERRED_COLUMN_ORDER = [ |
- 'title', |
- 'url', |
- 'score' |
- ]; |
- |
- function setBooleanColumn(column, value) { |
- if (value) { |
- column.innerText = 'Y'; |
- column.classList.add('boolean-property-true'); |
- } else { |
- column.innerText = 'N'; |
- column.classList.add('boolean-property-false'); |
- } |
- } |
- |
- /** |
- * Called by Chrome code, with a ranked list of suggestions. The columns |
- * to be displayed are calculated automatically from the properties of the |
- * elements in the list, such that all properties have a column. |
- */ |
- function setSuggestions(list) { |
- // Build a list of all the columns that will be displayed. |
- var columns = []; |
- list.forEach(function(entry) { |
- for (var column in entry) { |
- if (typeof entry[column] == 'object') { |
- // Expand one level deep |
- for (var subColumn in entry[column]) { |
- var path = column + '.' + subColumn; |
- if (columns.indexOf(path) < 0) |
- columns.push(path); |
- } |
- } else if (columns.indexOf(column) < 0) { |
- columns.push(column); |
- } |
- } |
- }); |
- |
- // Remove columns that we don't want to display. |
- columns = columns.filter(function(column) { |
- return IGNORED_COLUMNS.indexOf(column) < 0; |
- }); |
- |
- // Move the preferred columns to the start of the column list. |
- for (var i = PREFERRED_COLUMN_ORDER.length - 1; i >= 0; i--) { |
- var index = columns.indexOf(PREFERRED_COLUMN_ORDER[i]); |
- if (index >= 0) |
- columns.unshift(columns.splice(index, 1)[0]); |
- } |
- |
- // Special columns. |
- columns.unshift('favicon'); |
- columns.unshift('screenshot'); |
- columns.unshift('rank'); |
- |
- // Erase whatever is currently being displayed. |
- var output = $('suggestions-debug-text'); |
- output.innerHTML = ''; |
- |
- // Create the container table and add the header row. |
- var table = document.createElement('table'); |
- table.className = 'suggestions-debug-table'; |
- var header = document.createElement('tr'); |
- columns.forEach(function(entry) { |
- var column = document.createElement('th'); |
- column.innerText = entry; |
- header.appendChild(column); |
- }); |
- table.appendChild(header); |
- |
- // Add all the suggestions to the table. |
- var rank = 1; |
- list.forEach(function(entry) { |
- var row = document.createElement('tr'); |
- columns.forEach(function(columnName) { |
- var column = document.createElement('td'); |
- // Expand the path and find the data if it's there. |
- var path = columnName.split('.'); |
- var data = entry; |
- for (var i = 0; i < path.length; ++i) { |
- if (data && data.hasOwnProperty(path[i])) |
- data = data[path[i]]; |
- else |
- data = undefined; |
- } |
- // Only add the column if the current suggestion has this property |
- // (otherwise, leave the cell empty). |
- if (typeof(data) != 'undefined') { |
- if (typeof(data) == 'boolean') { |
- setBooleanColumn(column, data); |
- } else if (/^https?:\/\/.+$/.test(data)) { |
- // If the text is a URL, make it an anchor element. |
- var anchor = document.createElement('a'); |
- anchor.href = data; |
- anchor.innerText = data; |
- column.appendChild(anchor); |
- } else { |
- column.innerText = data; |
- } |
- } else if (columnName == 'rank') { |
- column.innerText = rank++; |
- } else if (columnName == 'screenshot') { |
- var thumbnailUrl = 'chrome://thumb/' + entry.url; |
- var img = document.createElement('img'); |
- img.onload = function() { setBooleanColumn(column, true); }; |
- img.onerror = function() { setBooleanColumn(column, false); }; |
- img.src = thumbnailUrl; |
- } else if (columnName == 'favicon') { |
- var faviconUrl = 'chrome://favicon/size/16@1x/' + entry.url; |
- column.style.backgroundImage = url(faviconUrl); |
- column.style.backgroundRepeat = 'no-repeat'; |
- column.style.backgroundPosition = 'center center'; |
- } |
- row.appendChild(column); |
- }); |
- table.appendChild(row); |
- }); |
- |
- output.appendChild(table); |
- } |
- |
- return { |
- initialize: initialize, |
- setSuggestions: setSuggestions |
- }; |
-}); |
- |
-document.addEventListener('DOMContentLoaded', suggestionsInternals.initialize); |