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

Unified 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, 3 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 side-by-side diff with in-line comments
Download patch
Index: ui/accessibility/extensions/highcontrast/popup.js
diff --git a/ui/accessibility/extensions/highcontrast/popup.js b/ui/accessibility/extensions/highcontrast/popup.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1f5f40aae5fa0cfeceaaa837913948594d1afcc
--- /dev/null
+++ b/ui/accessibility/extensions/highcontrast/popup.js
@@ -0,0 +1,132 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+var site;
+var key1;
+var key2;
+
+function setRadio(name, value) {
+ var radios = document.querySelectorAll('input[name="' + name + '"]');
+ for (var i = 0; i < radios.length; i++) {
+ radios[i].checked = (radios[i].value == value);
+ radios[i].disabled = !getEnabled();
+ }
+}
+
+function update() {
+ document.body.className = getEnabled() ? '' : 'disabled';
+
+ if (getEnabled()) {
+ $('title').innerText = 'High Contrast is Enabled';
+ $('toggle').innerHTML = '<b>Disable</b> ' +
+ '<span class="kb">(' + key1 + ')</span>';
+ $('subcontrols').style.display = 'block';
+ } else {
+ $('title').innerText = 'High Contrast is Disabled';
+ $('toggle').innerHTML = '<b>Enable</b> ' +
+ '<span class="kb">(' + key1 + ')</span>';
+ $('subcontrols').style.display = 'none';
+ }
+
+ setRadio('keyaction', getKeyAction());
+ if (site) {
+ setRadio('scheme', getSiteScheme(site));
+ $('make_default').disabled = (getSiteScheme(site) == getDefaultScheme());
+ } else {
+ setRadio('scheme', getDefaultScheme());
+ }
+ if (getEnabled()) {
+ document.documentElement.setAttribute(
+ 'hc',
+ site ? 'a' + getSiteScheme(site) : 'a' + getDefaultScheme());
+ } else {
+ document.documentElement.setAttribute('hc', 'a0');
+ }
+ chrome.extension.getBackgroundPage().updateTabs();
+}
+
+function onToggle() {
+ setEnabled(!getEnabled());
+ update();
+}
+
+function onForget() {
+ resetSiteSchemes();
+ update();
+}
+
+function onRadioChange(name, value) {
+ switch (name) {
+ case 'keyaction':
+ setKeyAction(value);
+ break;
+ case 'apply':
+ setApply(value);
+ break;
+ case 'scheme':
+ if (site) {
+ setSiteScheme(site, value);
+ } else {
+ setDefaultScheme(value);
+ }
+ break;
+ }
+ update();
+}
+
+function onMakeDefault() {
+ setDefaultScheme(getSiteScheme(site));
+ update();
+}
+
+function addRadioListeners(name) {
+ var radios = document.querySelectorAll('input[name="' + name + '"]');
+ for (var i = 0; i < radios.length; i++) {
+ radios[i].addEventListener('change', function(evt) {
+ onRadioChange(evt.target.name, evt.target.value);
+ }, false);
+ radios[i].addEventListener('click', function(evt) {
+ onRadioChange(evt.target.name, evt.target.value);
+ }, false);
+ }
+}
+
+function init() {
+ addRadioListeners('keyaction');
+ addRadioListeners('apply');
+ addRadioListeners('scheme');
+ $('toggle').addEventListener('click', onToggle, false);
+ $('make_default').addEventListener('click', onMakeDefault, false);
+ $('forget').addEventListener('click', onForget, false);
+ if (navigator.appVersion.indexOf('Mac') != -1) {
+ key1 = '&#x2318;+Shift+F11';
+ key2 = '&#x2318;+Shift+F12';
+ } else {
+ key1 = 'Shift+F11';
+ key2 = 'Shift+F12';
+ }
+
+ chrome.windows.getLastFocused({'populate': true}, function(window) {
+ for (var i = 0; i < window.tabs.length; i++) {
+ var tab = window.tabs[i];
+ if (tab.active) {
+ if (isDisallowedUrl(tab.url)) {
+ $('scheme_title').innerText = 'Default color scheme:';
+ $('make_default').style.display = 'none';
+ } else {
+ site = siteFromUrl(tab.url);
+ $('scheme_title').innerHTML = 'Color scheme for <b>' + site +
+ '</b>:<br><span class="kb">(' + key2 + ')</span>';
+ $('make_default').style.display = 'block';
+ }
+ update();
+ return;
+ }
+ }
+ site = 'unknown site';
+ update();
+ });
+}
+
+window.addEventListener('load', init, false);
« 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