OLD | NEW |
| (Empty) |
1 // Copyright (c) 2014 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 var key1; | |
7 var key2; | |
8 | |
9 function setRadio(name, value) { | |
10 var radios = document.querySelectorAll('input[name="' + name + '"]'); | |
11 for (var i = 0; i < radios.length; i++) { | |
12 radios[i].checked = (radios[i].value == value); | |
13 radios[i].disabled = !getEnabled(); | |
14 } | |
15 } | |
16 | |
17 function update() { | |
18 document.body.className = getEnabled() ? '' : 'disabled'; | |
19 | |
20 if (getEnabled()) { | |
21 $('title').innerText = 'High Contrast is Enabled'; | |
22 $('toggle').innerHTML = '<b>Disable</b> ' + | |
23 '<span class="kb">(' + key1 + ')</span>'; | |
24 $('subcontrols').style.display = 'block'; | |
25 } else { | |
26 $('title').innerText = 'High Contrast is Disabled'; | |
27 $('toggle').innerHTML = '<b>Enable</b> ' + | |
28 '<span class="kb">(' + key1 + ')</span>'; | |
29 $('subcontrols').style.display = 'none'; | |
30 } | |
31 | |
32 setRadio('keyaction', getKeyAction()); | |
33 if (site) { | |
34 setRadio('scheme', getSiteScheme(site)); | |
35 $('make_default').disabled = (getSiteScheme(site) == getDefaultScheme()); | |
36 } else { | |
37 setRadio('scheme', getDefaultScheme()); | |
38 } | |
39 if (getEnabled()) { | |
40 document.documentElement.setAttribute( | |
41 'hc', | |
42 site ? 'a' + getSiteScheme(site) : 'a' + getDefaultScheme()); | |
43 } else { | |
44 document.documentElement.setAttribute('hc', 'a0'); | |
45 } | |
46 chrome.extension.getBackgroundPage().updateTabs(); | |
47 } | |
48 | |
49 function onToggle() { | |
50 setEnabled(!getEnabled()); | |
51 update(); | |
52 } | |
53 | |
54 function onForget() { | |
55 resetSiteSchemes(); | |
56 update(); | |
57 } | |
58 | |
59 function onRadioChange(name, value) { | |
60 switch (name) { | |
61 case 'keyaction': | |
62 setKeyAction(value); | |
63 break; | |
64 case 'apply': | |
65 setApply(value); | |
66 break; | |
67 case 'scheme': | |
68 if (site) { | |
69 setSiteScheme(site, value); | |
70 } else { | |
71 setDefaultScheme(value); | |
72 } | |
73 break; | |
74 } | |
75 update(); | |
76 } | |
77 | |
78 function onMakeDefault() { | |
79 setDefaultScheme(getSiteScheme(site)); | |
80 update(); | |
81 } | |
82 | |
83 function addRadioListeners(name) { | |
84 var radios = document.querySelectorAll('input[name="' + name + '"]'); | |
85 for (var i = 0; i < radios.length; i++) { | |
86 radios[i].addEventListener('change', function(evt) { | |
87 onRadioChange(evt.target.name, evt.target.value); | |
88 }, false); | |
89 radios[i].addEventListener('click', function(evt) { | |
90 onRadioChange(evt.target.name, evt.target.value); | |
91 }, false); | |
92 } | |
93 } | |
94 | |
95 function init() { | |
96 addRadioListeners('keyaction'); | |
97 addRadioListeners('apply'); | |
98 addRadioListeners('scheme'); | |
99 $('toggle').addEventListener('click', onToggle, false); | |
100 $('make_default').addEventListener('click', onMakeDefault, false); | |
101 $('forget').addEventListener('click', onForget, false); | |
102 if (navigator.appVersion.indexOf('Mac') != -1) { | |
103 key1 = '⌘+Shift+F11'; | |
104 key2 = '⌘+Shift+F12'; | |
105 } else { | |
106 key1 = 'Shift+F11'; | |
107 key2 = 'Shift+F12'; | |
108 } | |
109 | |
110 chrome.windows.getLastFocused({'populate': true}, function(window) { | |
111 for (var i = 0; i < window.tabs.length; i++) { | |
112 var tab = window.tabs[i]; | |
113 if (tab.active) { | |
114 if (isDisallowedUrl(tab.url)) { | |
115 $('scheme_title').innerText = 'Default color scheme:'; | |
116 $('make_default').style.display = 'none'; | |
117 } else { | |
118 site = siteFromUrl(tab.url); | |
119 $('scheme_title').innerHTML = 'Color scheme for <b>' + site + | |
120 '</b>:<br><span class="kb">(' + key2 + ')</span>'; | |
121 $('make_default').style.display = 'block'; | |
122 } | |
123 update(); | |
124 return; | |
125 } | |
126 } | |
127 site = 'unknown site'; | |
128 update(); | |
129 }); | |
130 } | |
131 | |
132 window.addEventListener('load', init, false); | |
OLD | NEW |