11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright (c) 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivar DEFAULT_SCHEME = 3; 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivar MAX_SCHEME = 5; 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifunction $(id) { 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return document.getElementById(id); 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifunction getEnabled() { 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var result = localStorage['enabled']; 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (result === 'true' || result === 'false') { 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return (result === 'true'); 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci localStorage['enabled'] = 'true'; 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return true; 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifunction setEnabled(enabled) { 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci localStorage['enabled'] = enabled; 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifunction getKeyAction() { 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var keyAction = localStorage['keyaction']; 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (keyAction == 'global' || keyAction == 'site') { 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return keyAction; 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci keyAction = 'global'; 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci localStorage['keyaction'] = keyAction; 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return keyAction; 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifunction setKeyAction(keyAction) { 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (keyAction != 'global' && keyAction != 'site') { 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci keyAction = 'global'; 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci localStorage['keyaction'] = keyAction; 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifunction getDefaultScheme() { 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var scheme = localStorage['scheme']; 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (scheme >= 0 && scheme <= MAX_SCHEME) { 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return scheme; 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scheme = DEFAULT_SCHEME; 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci localStorage['scheme'] = scheme; 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return scheme; 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifunction setDefaultScheme(scheme) { 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (!(scheme >= 0 && scheme <= MAX_SCHEME)) { 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scheme = DEFAULT_SCHEME; 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci localStorage['scheme'] = scheme; 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifunction getSiteScheme(site) { 601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var scheme = getDefaultScheme(); 611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci try { 621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var siteSchemes = JSON.parse(localStorage['siteschemes']); 631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scheme = siteSchemes[site]; 641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (!(scheme >= 0 && scheme <= MAX_SCHEME)) { 651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scheme = getDefaultScheme(); 661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } catch (e) { 681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scheme = getDefaultScheme(); 691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return scheme; 711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifunction setSiteScheme(site, scheme) { 741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (!(scheme >= 0 && scheme <= MAX_SCHEME)) { 751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scheme = getDefaultScheme(); 761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var siteSchemes = {}; 781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci try { 791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci siteSchemes = JSON.parse(localStorage['siteschemes']); 801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci siteSchemes['www.example.com'] = getDefaultScheme(); 811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } catch (e) { 821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci siteSchemes = {}; 831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci siteSchemes[site] = scheme; 851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci localStorage['siteschemes'] = JSON.stringify(siteSchemes); 861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifunction resetSiteSchemes() { 891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var siteSchemes = {}; 901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci localStorage['siteschemes'] = JSON.stringify(siteSchemes); 911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifunction siteFromUrl(url) { 941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var a = document.createElement('a'); 951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci a.href = url; 961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return a.hostname; 971320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 981320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 991320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifunction isDisallowedUrl(url) { 1001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return url.indexOf('chrome') == 0 || url.indexOf('about') == 0; 1011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 102