// 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 {Dictionary} 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'); var filter = $('filter'); filter.disabled = false; filter.onchange = function() { updateAutocompleteActionPredictorDbView(database); }; updateAutocompleteActionPredictorDbView(database); } /** * Updates the table from the database. * @param {Dictionary} 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) { var databaseSection = $('databaseTableBody'); var showEnabled = database.enabled && database.db; $('autocompleteActionPredictorEnabledMode').hidden = !showEnabled; $('autocompleteActionPredictorDisabledMode').hidden = showEnabled; if (!showEnabled) return; var filter = $('filter'); // Clear any previous list. databaseSection.textContent = ''; for (var i = 0; i < database.db.length; ++i) { var entry = database.db[i]; if (!filter.checked || entry.confidence > 0) { var 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);