Home | History | Annotate | Download | only in predictors
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 /**
      6  * Requests the database from the backend.
      7  */
      8 function requestAutocompleteActionPredictorDb() {
      9   chrome.send('requestAutocompleteActionPredictorDb');
     10 }
     11 
     12 /**
     13  * Callback from backend with the database contents. Sets up some globals and
     14  * calls to create the UI.
     15  * @param {Dictionary} database Information about AutocompleteActionPredictor
     16  *     including the database as a flattened list, a boolean indicating if the
     17  *     system is enabled and the current hit weight.
     18  */
     19 function updateAutocompleteActionPredictorDb(database) {
     20   console.debug('Updating Table NAP DB');
     21 
     22   var filter = $('filter');
     23   filter.disabled = false;
     24   filter.onchange = function() {
     25     updateAutocompleteActionPredictorDbView(database);
     26   };
     27 
     28   updateAutocompleteActionPredictorDbView(database);
     29 }
     30 
     31 /**
     32  * Updates the table from the database.
     33  * @param {Dictionary} database Information about AutocompleteActionPredictor
     34  *     including the database as a flattened list, a boolean indicating if the
     35  *     system is enabled and the current hit weight.
     36  */
     37 function updateAutocompleteActionPredictorDbView(database) {
     38   var databaseSection = $('databaseTableBody');
     39   var showEnabled = database.enabled && database.db;
     40 
     41   $('autocompleteActionPredictorEnabledMode').hidden = !showEnabled;
     42   $('autocompleteActionPredictorDisabledMode').hidden = showEnabled;
     43 
     44   if (!showEnabled)
     45     return;
     46 
     47   var filter = $('filter');
     48 
     49   // Clear any previous list.
     50   databaseSection.textContent = '';
     51 
     52   for (var i = 0; i < database.db.length; ++i) {
     53     var entry = database.db[i];
     54 
     55     if (!filter.checked || entry.confidence > 0) {
     56       var row = document.createElement('tr');
     57       row.className = (entry.confidence > 0.8 ? 'action-prerender' :
     58                           (entry.confidence > 0.5 ? 'action-preconnect' :
     59                               'action-none'));
     60 
     61       row.appendChild(document.createElement('td')).textContent =
     62           entry.user_text;
     63       row.appendChild(document.createElement('td')).textContent = entry.url;
     64       row.appendChild(document.createElement('td')).textContent =
     65           entry.hit_count;
     66       row.appendChild(document.createElement('td')).textContent =
     67           entry.miss_count;
     68       row.appendChild(document.createElement('td')).textContent =
     69           entry.confidence;
     70 
     71       databaseSection.appendChild(row);
     72     }
     73   }
     74   $('countBanner').textContent = 'Entries: ' + databaseSection.children.length;
     75 }
     76 
     77 document.addEventListener('DOMContentLoaded',
     78                           requestAutocompleteActionPredictorDb);
     79