blob: 56891a29d79bef4a0b8bc84fec2dbd0c5709bbe9 [file] [log] [blame]
// 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.
/**
* Requests the database from the backend.
*/
function requestAutocompleteActionPredictorDb() {
chrome.send('requestAutocompleteActionPredictorDb');
}
/**
* Callback from backend with the database contents. Sets up some globals and
* calls to create the UI.
* @param {Object} database Information about AutocompleteActionPredictor
* including the database as a flattened list, a boolean indicating if the
* system is enabled and the current hit weight.
*/
function updateAutocompleteActionPredictorDb(database) {
console.debug('Updating Table NAP DB');
const filter = $('filter');
filter.disabled = false;
filter.onchange = function() {
updateAutocompleteActionPredictorDbView(database);
};
updateAutocompleteActionPredictorDbView(database);
}
/**
* Updates the table from the database.
* @param {Object} database Information about AutocompleteActionPredictor
* including the database as a flattened list, a boolean indicating if the
* system is enabled and the current hit weight.
*/
function updateAutocompleteActionPredictorDbView(database) {
const databaseSection = $('databaseTableBody');
const showEnabled = database.enabled && database.db;
$('autocompleteActionPredictorEnabledMode').hidden = !showEnabled;
$('autocompleteActionPredictorDisabledMode').hidden = showEnabled;
if (!showEnabled)
return;
const filter = $('filter');
// Clear any previous list.
databaseSection.textContent = '';
for (let i = 0; i < database.db.length; ++i) {
const entry = database.db[i];
if (!filter.checked || entry.confidence > 0) {
const row = document.createElement('tr');
row.className =
(entry.confidence > 0.8 ?
'action-prerender' :
(entry.confidence > 0.5 ? 'action-preconnect' : 'action-none'));
row.appendChild(document.createElement('td')).textContent =
entry.user_text;
row.appendChild(document.createElement('td')).textContent = entry.url;
row.appendChild(document.createElement('td')).textContent =
entry.hit_count;
row.appendChild(document.createElement('td')).textContent =
entry.miss_count;
row.appendChild(document.createElement('td')).textContent =
entry.confidence;
databaseSection.appendChild(row);
}
}
$('countBanner').textContent = 'Entries: ' + databaseSection.children.length;
}
document.addEventListener(
'DOMContentLoaded', requestAutocompleteActionPredictorDb);