Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(340)

Side by Side Diff: ui/accessibility/extensions/highcontrast/popup.js

Issue 593293002: Initial checkin of accessibility extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix license issues Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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 = '&#x2318;+Shift+F11';
104 key2 = '&#x2318;+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);
OLDNEW
« no previous file with comments | « ui/accessibility/extensions/highcontrast/popup.html ('k') | ui/accessibility/extensions/longdesc/background.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698