Index: chrome/browser/resources/instant/instant.js |
diff --git a/chrome/browser/resources/instant/instant.js b/chrome/browser/resources/instant/instant.js |
index e874fca872930bca9d6cb42b3d137646a918353c..26963fa5dfebe6f63bf6fd296fcacebf638e837b 100644 |
--- a/chrome/browser/resources/instant/instant.js |
+++ b/chrome/browser/resources/instant/instant.js |
@@ -2,188 +2,62 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-// Redefine '$' here rather than including 'cr.js', since this is |
-// the only function needed. This allows this file to be loaded |
-// in a browser directly for layout and some testing purposes. |
+// Redefine '$' here rather than including util.js, since this is the only |
+// function needed. |
var $ = function(id) { return document.getElementById(id); }; |
/** |
- * WebUI for configuring instant.* preference values used by |
- * Chrome's instant search system. |
+ * WebUI for displaying Instant debug event information. |
*/ |
var instantConfig = (function() { |
'use strict'; |
- /** List of fields used to dynamically build form. **/ |
- var FIELDS = [ |
- { |
- key: 'instant_ui.zero_suggest_url_prefix', |
- label: 'Prefix URL for the experimental Instant ZeroSuggest provider', |
- type: 'string', |
- size: 40, |
- units: '', |
- default: '' |
- }, |
- ]; |
- |
/** |
- * Returns a DOM element of the given type and class name. |
+ * Request debug events; results arrive asynchronously via setDebugEvents(). |
*/ |
- function createElementWithClass(elementType, className) { |
- var element = document.createElement(elementType); |
- element.className = className; |
- return element; |
+ function getDebugEvents() { |
+ chrome.send('getDebugEvents'); |
} |
/** |
- * Dynamically builds web-form based on FIELDS list. |
- * @return {string} The form's HTML. |
+ * Handles callback from getDebugEvents(). |
+ * @param {Array} events A list of debug events. |
*/ |
- function buildForm() { |
- var buf = []; |
- |
- for (var i = 0; i < FIELDS.length; i++) { |
- var field = FIELDS[i]; |
- |
- var row = createElementWithClass('div', 'row'); |
- row.id = ''; |
+ function setDebugEvents(events) { |
+ var debugEvents = $('debug-events'); |
- var label = createElementWithClass('label', 'row-label'); |
- label.setAttribute('for', field.key); |
- label.textContent = field.label; |
- row.appendChild(label); |
+ for (var i = 0; i < events.length; ++i) { |
+ var event = document.createElement('p'); |
- var input = createElementWithClass('input', 'row-input'); |
- input.type = field.type; |
- input.id = field.key; |
- input.title = "Default Value: " + field.default; |
- if (field.size) input.size = field.size; |
- input.min = field.min || 0; |
- if (field.max) input.max = field.max; |
- if (field.step) input.step = field.step; |
- row.appendChild(input); |
+ var time = document.createElement('span'); |
+ time.className = 'time'; |
+ time.textContent = events[i].time; |
+ event.appendChild(time); |
- var units = createElementWithClass('div', 'row-units'); |
- if (field.units) units.innerHTML = field.units; |
- row.appendChild(units); |
- |
- $('instant-form').appendChild(row); |
- } |
- } |
+ var text = document.createElement('span'); |
+ text.textContent = events[i].text; |
+ event.appendChild(text); |
- /** |
- * Initialize the form by adding 'onChange' listeners to all fields. |
- */ |
- function initForm() { |
- for (var i = 0; i < FIELDS.length; i++) { |
- var field = FIELDS[i]; |
- $(field.key).onchange = (function(key) { |
- setPreferenceValue(key); |
- }).bind(null, field.key); |
+ debugEvents.appendChild(event); |
} |
} |
/** |
- * Request a preference setting's value. |
- * This method is asynchronous; the result is provided by a call to |
- * getPreferenceValueResult. |
- * @param {string} prefName The name of the preference value being requested. |
- */ |
- function getPreferenceValue(prefName) { |
- chrome.send('getPreferenceValue', [prefName]); |
- } |
- |
- /** |
- * Handle callback from call to getPreferenceValue. |
- * @param {string} prefName The name of the requested preference value. |
- * @param {value} value The current value associated with prefName. |
- */ |
- function getPreferenceValueResult(prefName, value) { |
- if ($(prefName).type == 'checkbox') |
- $(prefName).checked = value; |
- else |
- $(prefName).value = value; |
- } |
- |
- /** |
- * Set a preference setting's value stored in the element with prefName. |
- * @param {string} prefName The name of the preference value being set. |
+ * Resets the list of debug events. |
*/ |
- function setPreferenceValue(prefName) { |
- var value; |
- if ($(prefName).type == 'checkbox') |
- value = $(prefName).checked; |
- else if ($(prefName).type == 'number') |
- value = parseFloat($(prefName).value); |
- else |
- value = $(prefName).value; |
- chrome.send('setPreferenceValue', [prefName, value]); |
+ function clearDebugEvents() { |
+ $('debug-events').innerHTML = ''; |
+ chrome.send('clearDebugEvents'); |
} |
- /** |
- * Saves data back into Chrome preferences. |
- */ |
- function onSave() { |
- for (var i = 0; i < FIELDS.length; i++) { |
- var field = FIELDS[i]; |
- setPreferenceValue(field.key); |
- } |
- return false; |
- } |
- |
- /** |
- * Request debug info. |
- * The method is asynchronous, results being provided via getDebugInfoResult. |
- */ |
- function getDebugInfo() { |
- chrome.send('getDebugInfo'); |
- } |
- |
- /** |
- * Handles callback from getDebugInfo. |
- * @param {Object} info The debug info. |
- */ |
- function getDebugInfoResult(info) { |
- for (var i = 0; i < info.entries.length; ++i) { |
- var entry = info.entries[i]; |
- var row = createElementWithClass('p', 'debug'); |
- row.appendChild(createElementWithClass('span', 'timestamp')).textContent = |
- entry.time; |
- row.appendChild(document.createElement('span')).textContent = entry.text; |
- $('instant-debug-info').appendChild(row); |
- } |
- } |
- |
- /** |
- * Resets list of debug events. |
- */ |
- function clearDebugInfo() { |
- $('instant-debug-info').innerHTML = ''; |
- chrome.send('clearDebugInfo'); |
- } |
- |
- function loadForm() { |
- for (var i = 0; i < FIELDS.length; i++) |
- getPreferenceValue(FIELDS[i].key); |
- } |
- |
- /** |
- * Build and initialize the configuration form. |
- */ |
function initialize() { |
- buildForm(); |
- loadForm(); |
- initForm(); |
- getDebugInfo(); |
- |
- $('save-button').onclick = onSave.bind(this); |
- $('clear-button').onclick = clearDebugInfo.bind(this); |
+ $('clear-debug-events').onclick = clearDebugEvents.bind(this); |
+ getDebugEvents(); |
} |
return { |
initialize: initialize, |
- getDebugInfoResult: getDebugInfoResult, |
- getPreferenceValueResult: getPreferenceValueResult |
+ setDebugEvents: setDebugEvents, |
}; |
})(); |