OLD | NEW |
(Empty) | |
| 1 // Copyright 2015 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 var site; |
| 6 |
| 7 |
| 8 /** |
| 9 * Update the popup controls based on settings for this site or the default. |
| 10 */ |
| 11 function update() { |
| 12 if (site) { |
| 13 debugPrint('updated site ' + site + ' to ' + |
| 14 getSiteDelta(site) + ',' + getSiteSeverity(site)); |
| 15 $('delta').value = getSiteDelta(site); |
| 16 $('severity').value = getSiteSeverity(site); |
| 17 } else { |
| 18 debugPrint('updated site ' + site + ' to ' + |
| 19 getDefaultDelta() + ',' + getDefaultSeverity()); |
| 20 $('delta').value = getDefaultDelta(); |
| 21 $('severity').value = getDefaultSeverity(); |
| 22 } |
| 23 |
| 24 debugPrint('updated site ' + site + ' type ' + getDefaultType()); |
| 25 $('type').value = getDefaultType(); |
| 26 |
| 27 // TODO(mustaq): Finish simulate feature. |
| 28 //debugPrint('updated site ' + site + ' simulate ' + getDefaultSimulate()); |
| 29 //$('simulate').checked = getDefaultSimulate(); |
| 30 |
| 31 chrome.extension.getBackgroundPage().updateTabs(); |
| 32 } |
| 33 |
| 34 |
| 35 /** |
| 36 * Callback for color rotation slider. |
| 37 * |
| 38 * @param {number} value Parsed value of slider element. |
| 39 */ |
| 40 function onDeltaChange(value) { |
| 41 debugPrint('delta changing to ' + value + ' for site ' + site); |
| 42 if (site) { |
| 43 setSiteDelta(site, value); |
| 44 } |
| 45 setDefaultDelta(value); |
| 46 update(); |
| 47 } |
| 48 |
| 49 |
| 50 /** |
| 51 * Callback for severity slider. |
| 52 * |
| 53 * @param {number} value Parsed value of slider element. |
| 54 */ |
| 55 function onSeverityChange(value) { |
| 56 debugPrint('severity changing to ' + value + ' for site ' + site); |
| 57 if (site) { |
| 58 setSiteSeverity(site, value); |
| 59 } |
| 60 setDefaultSeverity(value); |
| 61 update(); |
| 62 } |
| 63 |
| 64 |
| 65 /** |
| 66 * Callback for changing color deficiency type. |
| 67 * |
| 68 * @param {string} value Value of dropdown element. |
| 69 */ |
| 70 function onTypeChange(value) { |
| 71 debugPrint('type changing to ' + value + ' for site ' + site); |
| 72 setDefaultType(value); |
| 73 update(); |
| 74 } |
| 75 |
| 76 |
| 77 /** |
| 78 * TODO(mustaq): JsDoc. |
| 79 */ |
| 80 function onSimulateChange(value) { |
| 81 debugPrint('simulate changing to ' + value + ' for site ' + site); |
| 82 setDefaultSimulate(value); |
| 83 update(); |
| 84 } |
| 85 |
| 86 |
| 87 /** |
| 88 * Reset all stored per-site and default values. |
| 89 */ |
| 90 function onReset() { |
| 91 debugPrint('resetting sites'); |
| 92 resetSiteDeltas(); |
| 93 resetSiteSeverities(); |
| 94 update(); |
| 95 } |
| 96 |
| 97 |
| 98 /** |
| 99 * Attach event handlers to controls and update the filter config values for the |
| 100 * currently visible tab. |
| 101 */ |
| 102 function initialize() { |
| 103 $('delta').addEventListener('input', function() { |
| 104 onDeltaChange(parseFloat(this.value)); |
| 105 }); |
| 106 $('severity').addEventListener('input', function() { |
| 107 onSeverityChange(parseFloat(this.value)); |
| 108 }); |
| 109 $('type').addEventListener('input', function() { |
| 110 onTypeChange(this.value); |
| 111 }); |
| 112 // TODO(mustaq): Finish simulate feature. |
| 113 //$('simulate').addEventListener('change', function() { |
| 114 // onSimulateChange(!this.checked); |
| 115 //}); |
| 116 $('resetall').addEventListener('click', function() { |
| 117 onReset(); |
| 118 }); |
| 119 |
| 120 chrome.windows.getLastFocused({'populate': true}, function(window) { |
| 121 for (var i = 0; i < window.tabs.length; i++) { |
| 122 var tab = window.tabs[i]; |
| 123 if (tab.active) { |
| 124 site = siteFromUrl(tab.url); |
| 125 debugPrint('active tab update ' + site); |
| 126 update(); |
| 127 return; |
| 128 } |
| 129 } |
| 130 site = 'unknown site'; |
| 131 update(); |
| 132 }); |
| 133 } |
| 134 |
| 135 // TODO(wnwen): Use Promise instead, more reliable. |
| 136 window.addEventListener('load', initialize, false); |
OLD | NEW |