| Index: ui/accessibility/extensions/colorenhancer/src/storage.js
|
| diff --git a/ui/accessibility/extensions/colorenhancer/src/storage.js b/ui/accessibility/extensions/colorenhancer/src/storage.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..77c4c37fa7a446b9cd69b3794b7fd5c8a057801d
|
| --- /dev/null
|
| +++ b/ui/accessibility/extensions/colorenhancer/src/storage.js
|
| @@ -0,0 +1,213 @@
|
| +// Copyright 2015 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.
|
| +
|
| +// TODO(wnwen): Move to chrome.storage.local, wrap calls, add JsDocs.
|
| +
|
| +var DEFAULT_DELTA = 1.0;
|
| +var LOCAL_STORAGE_TAG_DELTA = 'cvd_delta';
|
| +var LOCAL_STORAGE_TAG_SITE_DELTA = 'cvd_site_deltas';
|
| +
|
| +
|
| +function validDelta(delta) {
|
| + return delta >= 0 && delta <= 1;
|
| +}
|
| +
|
| +
|
| +function getDefaultDelta() {
|
| + var delta = localStorage[LOCAL_STORAGE_TAG_DELTA];
|
| + if (validDelta(delta)) {
|
| + return delta;
|
| + }
|
| + delta = DEFAULT_DELTA;
|
| + localStorage[LOCAL_STORAGE_TAG_DELTA] = delta;
|
| + return delta;
|
| +}
|
| +
|
| +
|
| +function setDefaultDelta(delta) {
|
| + if (!validDelta(delta)) {
|
| + delta = DEFAULT_DELTA;
|
| + }
|
| + localStorage[LOCAL_STORAGE_TAG_DELTA] = delta;
|
| +}
|
| +
|
| +
|
| +function getSiteDelta(site) {
|
| + var delta = getDefaultDelta();
|
| + try {
|
| + var siteDeltas = JSON.parse(localStorage[LOCAL_STORAGE_TAG_SITE_DELTA]);
|
| + delta = siteDeltas[site];
|
| + if (!validDelta(delta)) {
|
| + delta = getDefaultDelta();
|
| + }
|
| + } catch (e) {
|
| + delta = getDefaultDelta();
|
| + }
|
| + return delta;
|
| +}
|
| +
|
| +
|
| +function setSiteDelta(site, delta) {
|
| + if (!validDelta(delta)) {
|
| + delta = getDefaultDelta();
|
| + }
|
| + var siteDeltas = {};
|
| + try {
|
| + siteDeltas = JSON.parse(localStorage[LOCAL_STORAGE_TAG_SITE_DELTA]);
|
| + } catch (e) {
|
| + siteDeltas = {};
|
| + }
|
| + siteDeltas[site] = delta;
|
| + localStorage[LOCAL_STORAGE_TAG_SITE_DELTA] = JSON.stringify(siteDeltas);
|
| +}
|
| +
|
| +
|
| +function resetSiteDeltas() {
|
| + var siteDeltas = {};
|
| + localStorage[LOCAL_STORAGE_TAG_SITE_DELTA] = JSON.stringify(siteDeltas);
|
| +}
|
| +
|
| +
|
| +// ======= Severity setting =======
|
| +
|
| +var DEFAULT_SEVERITY = 1.0;
|
| +var LOCAL_STORAGE_TAG_SEVERITY = 'cvd_severity';
|
| +var LOCAL_STORAGE_TAG_SITE_SEVERITY = 'cvd_severities';
|
| +
|
| +
|
| +function validSeverity(severity) {
|
| + return severity >= 0 && severity <= 1;
|
| +}
|
| +
|
| +
|
| +function getDefaultSeverity() {
|
| + var severity = localStorage[LOCAL_STORAGE_TAG_SEVERITY];
|
| + if (validSeverity(severity)) {
|
| + return severity;
|
| + }
|
| + severity = DEFAULT_SEVERITY;
|
| + localStorage[LOCAL_STORAGE_TAG_SEVERITY] = severity;
|
| + return severity;
|
| +}
|
| +
|
| +
|
| +function setDefaultSeverity(severity) {
|
| + if (!validSeverity(severity)) {
|
| + severity = DEFAULT_SEVERITY;
|
| + }
|
| + localStorage[LOCAL_STORAGE_TAG_SEVERITY] = severity;
|
| +}
|
| +
|
| +
|
| +// TODO(mustaq): Remove site-specific severity setting.
|
| +function getSiteSeverity(site) {
|
| + var severity = getDefaultSeverity();
|
| + try {
|
| + var siteSeverities =
|
| + JSON.parse(localStorage[LOCAL_STORAGE_TAG_SITE_SEVERITY]);
|
| + severity = siteSeverities[site];
|
| + if (!validSeverity(severity)) {
|
| + severity = getDefaultSeverity();
|
| + }
|
| + } catch (e) {
|
| + severity = getDefaultSeverity();
|
| + }
|
| + return severity;
|
| +}
|
| +
|
| +
|
| +function setSiteSeverity(site, severity) {
|
| + if (!validSeverity(severity)) {
|
| + severity = getDefaultSeverity();
|
| + }
|
| + var siteSeverities = {};
|
| + try {
|
| + siteSeverities = JSON.parse(localStorage[LOCAL_STORAGE_TAG_SITE_SEVERITY]);
|
| + } catch (e) {
|
| + siteSeverities = {};
|
| + }
|
| + siteSeverities[site] = severity;
|
| + localStorage[LOCAL_STORAGE_TAG_SITE_SEVERITY] =
|
| + JSON.stringify(siteSeverities);
|
| +}
|
| +
|
| +
|
| +function resetSiteSeverities() {
|
| + var siteSeverities = {};
|
| + localStorage[LOCAL_STORAGE_TAG_SITE_SEVERITY] =
|
| + JSON.stringify(siteSeverities);
|
| +}
|
| +
|
| +
|
| +// ======= Type setting =======
|
| +
|
| +// TODO(wnwen): Use enums rather than strings.
|
| +var DEFAULT_TYPE = 'PROTANOMALY';
|
| +var LOCAL_STORAGE_TAG_TYPE = 'cvd_type';
|
| +
|
| +
|
| +function validType(type) {
|
| + return type === 'PROTANOMALY' ||
|
| + type === 'DEUTERANOMALY' ||
|
| + type === 'TRITANOMALY';
|
| +}
|
| +
|
| +
|
| +function getDefaultType() {
|
| + var type = localStorage[LOCAL_STORAGE_TAG_TYPE];
|
| + if (validType(type)) {
|
| + return type;
|
| + }
|
| + type = DEFAULT_TYPE;
|
| + localStorage[LOCAL_STORAGE_TAG_TYPE] = type;
|
| + return type;
|
| +}
|
| +
|
| +
|
| +function setDefaultType(type) {
|
| + if (!validType(type)) {
|
| + type = DEFAULT_TYPE;
|
| + }
|
| + localStorage[LOCAL_STORAGE_TAG_TYPE] = type;
|
| +}
|
| +
|
| +
|
| +// ======= Simulate setting =======
|
| +
|
| +var DEFAULT_SIMULATE = false;
|
| +var LOCAL_STORAGE_TAG_SIMULATE = 'cvd_simulate';
|
| +
|
| +
|
| +function validSimulate(simulate) {
|
| + return simulate == true || simulate == false;
|
| +}
|
| +
|
| +
|
| +function getDefaultSimulate() {
|
| + var simulate = localStorage[LOCAL_STORAGE_TAG_SIMULATE];
|
| +
|
| + //Make it a boolean if possible
|
| + if (simulate === 'true') {
|
| + simulate = true;
|
| + } else if (simulate === 'false') {
|
| + simulate = false;
|
| + } else {
|
| + simulate = 'undef';
|
| + }
|
| +
|
| + if (validSimulate(simulate)) {
|
| + return simulate;
|
| + }
|
| + simulate = DEFAULT_SIMULATE;
|
| + localStorage[LOCAL_STORAGE_TAG_SIMULATE] = simulate;
|
| + return simulate;
|
| +}
|
| +
|
| +
|
| +function setDefaultSimulate(simulate) {
|
| + if (!validSimulate(simulate)) {
|
| + simulate = DEFAULT_SIMULATE;
|
| + }
|
| + localStorage[LOCAL_STORAGE_TAG_SIMULATE] = simulate;
|
| +}
|
|
|