Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 /** | |
| 2 * Convert a state and time into a nice styled chunk of HTML. | |
| 3 */ | |
| 4 function renderState(state, time) { | |
| 5 var now = new Date().getTime(); | |
| 6 var diff = Math.round((time.getTime() - now) / 1000); | |
| 7 var str = (diff == 0) ? | |
| 8 "now" : | |
| 9 Math.abs(diff) + " seconds " + (diff > 0 ? "from now" : "ago"); | |
| 10 var col = (state == "active") ? | |
| 11 "#009900" : | |
| 12 "#990000"; | |
| 13 return "<b style='color: " + col + "'>" + state + "</b> " + str; | |
| 14 }; | |
| 15 | |
| 16 /** | |
| 17 * Creates DOM and injects a rendered state into the page. | |
| 18 */ | |
| 19 function renderItem(state, time, parent) { | |
| 20 var dom_item = document.createElement('li'); | |
| 21 dom_item.innerHTML = renderState(state, time); | |
| 22 parent.appendChild(dom_item); | |
| 23 }; | |
| 24 | |
| 25 // Store previous state so we can show deltas. This is important | |
| 26 // because the API currently doesn't fire idle messages, and we'd | |
| 27 // like to keep track of last time we went idle. | |
| 28 var laststate = null; | |
| 29 var laststatetime = null; | |
| 30 | |
| 31 /** | |
| 32 * Checks the current state of the browser. | |
| 33 */ | |
| 34 function checkState() { | |
| 35 threshold = parseInt(document.querySelector('#idle-threshold').value); | |
| 36 var dom_threshold = document.querySelector('#idle-set-threshold'); | |
| 37 dom_threshold.innerText = threshold; | |
| 38 | |
| 39 // Request the state based off of the user-supplied threshold. | |
| 40 chrome.idle.queryState(threshold, function(state) { | |
| 41 var time = new Date(); | |
| 42 if (laststate != state) { | |
| 43 laststate = state; | |
| 44 laststatetime = time; | |
| 45 } | |
| 46 | |
| 47 // Keep rendering results so we get a nice "seconds elapsed" view. | |
| 48 var dom_result = document.querySelector('#idle-state'); | |
| 49 dom_result.innerHTML = renderState(state, time); | |
| 50 var dom_laststate = document.querySelector('#idle-laststate'); | |
| 51 dom_laststate.innerHTML = renderState(laststate, laststatetime); | |
| 52 }); | |
| 53 }; | |
| 54 | |
| 55 // Check every second (even though this is overkill - minimum idle | |
| 56 // threshold is 15 seconds) so that the numbers appear to be counting up. | |
| 57 checkState(); | |
| 58 window.setInterval(checkState, 1000); | |
|
Mike West
2012/01/27 16:06:32
You'll need to pull these out into a DOMContentLoa
| |
| 59 | |
| 60 var dom_history = document.querySelector('#idle-history'); | |
| 61 | |
| 62 /** | |
| 63 * Render the data gathered by the background page - should show a log | |
| 64 * of "active" states. No events are fired upon idle. | |
| 65 */ | |
| 66 function renderHistory() { | |
| 67 dom_history.innerHTML = ""; | |
| 68 var history_log = chrome.extension.getBackgroundPage().history_log; | |
| 69 for (var i = 0; i < history_log.length; i++) { | |
| 70 var data = history_log[i]; | |
| 71 renderItem(data['state'], data['time'], dom_history); | |
| 72 } | |
| 73 }; | |
| 74 | |
| 75 // Check every second (see above). | |
| 76 renderHistory(); | |
| 77 window.setInterval(renderHistory, 1000); | |
|
Mike West
2012/01/27 16:06:32
These too.
| |
| OLD | NEW |