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
5var DEFAULT_SCHEME = 3;
6var MAX_SCHEME = 5;
7
8function $(id) {
9  return document.getElementById(id);
10}
11
12function getEnabled() {
13  var result = localStorage['enabled'];
14  if (result === 'true' || result === 'false') {
15    return (result === 'true');
16  }
17  localStorage['enabled'] = 'true';
18  return true;
19}
20
21function setEnabled(enabled) {
22  localStorage['enabled'] = enabled;
23}
24
25function getKeyAction() {
26  var keyAction = localStorage['keyaction'];
27  if (keyAction == 'global' || keyAction == 'site') {
28    return keyAction;
29  }
30  keyAction = 'global';
31  localStorage['keyaction'] = keyAction;
32  return keyAction;
33}
34
35function setKeyAction(keyAction) {
36  if (keyAction != 'global' && keyAction != 'site') {
37    keyAction = 'global';
38  }
39  localStorage['keyaction'] = keyAction;
40}
41
42function getDefaultScheme() {
43  var scheme = localStorage['scheme'];
44  if (scheme >= 0 && scheme <= MAX_SCHEME) {
45    return scheme;
46  }
47  scheme = DEFAULT_SCHEME;
48  localStorage['scheme'] = scheme;
49  return scheme;
50}
51
52function setDefaultScheme(scheme) {
53  if (!(scheme >= 0 && scheme <= MAX_SCHEME)) {
54    scheme = DEFAULT_SCHEME;
55  }
56  localStorage['scheme'] = scheme;
57}
58
59function getSiteScheme(site) {
60  var scheme = getDefaultScheme();
61  try {
62    var siteSchemes = JSON.parse(localStorage['siteschemes']);
63    scheme = siteSchemes[site];
64    if (!(scheme >= 0 && scheme <= MAX_SCHEME)) {
65      scheme = getDefaultScheme();
66    }
67  } catch (e) {
68    scheme = getDefaultScheme();
69  }
70  return scheme;
71}
72
73function setSiteScheme(site, scheme) {
74  if (!(scheme >= 0 && scheme <= MAX_SCHEME)) {
75    scheme = getDefaultScheme();
76  }
77  var siteSchemes = {};
78  try {
79    siteSchemes = JSON.parse(localStorage['siteschemes']);
80    siteSchemes['www.example.com'] = getDefaultScheme();
81  } catch (e) {
82    siteSchemes = {};
83  }
84  siteSchemes[site] = scheme;
85  localStorage['siteschemes'] = JSON.stringify(siteSchemes);
86}
87
88function resetSiteSchemes() {
89  var siteSchemes = {};
90  localStorage['siteschemes'] = JSON.stringify(siteSchemes);
91}
92
93function siteFromUrl(url) {
94  var a = document.createElement('a');
95  a.href = url;
96  return a.hostname;
97}
98
99function isDisallowedUrl(url) {
100  return url.indexOf('chrome') == 0 || url.indexOf('about') == 0;
101}
102