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

Side by Side Diff: ui/accessibility/extensions/colorenhancer/src/background.js

Issue 984833004: Add color enhancer as a chromium accessibility extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add docs and TODOs. Created 5 years, 9 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
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /**
6 * Adds filter script and css to all existing tabs.
7 *
8 * TODO(wnwen): Verify content scripts are not being injected multiple times.
9 */
5 function injectContentScripts() { 10 function injectContentScripts() {
6 chrome.windows.getAll({'populate': true}, function(windows) { 11 chrome.windows.getAll({'populate': true}, function(windows) {
7 for (var i = 0; i < windows.length; i++) { 12 for (var i = 0; i < windows.length; i++) {
8 var tabs = windows[i].tabs; 13 var tabs = windows[i].tabs;
9 for (var j = 0; j < tabs.length; j++) { 14 for (var j = 0; j < tabs.length; j++) {
10 var url = tabs[j].url; 15 var url = tabs[j].url;
11 if (url.indexOf('chrome') == 0 || url.indexOf('about') == 0) { 16 if (isDisallowedUrl(url)) {
12 continue; 17 continue;
13 } 18 }
14 chrome.tabs.insertCSS( 19 chrome.tabs.insertCSS(
15 tabs[j].id, 20 tabs[j].id,
16 {file: 'highcontrast.css', allFrames: true}); 21 {file: 'res/cvd.css'});
17 chrome.tabs.executeScript( 22 chrome.tabs.executeScript(
18 tabs[j].id, 23 tabs[j].id,
19 {file: 'highcontrast.js', allFrames: true}); 24 {file: 'src/cvd.js'});
20 } 25 }
21 } 26 }
22 }); 27 });
23 } 28 }
24 29
30 /**
31 * Updates all existing tabs with config values.
32 */
25 function updateTabs() { 33 function updateTabs() {
26 var msg = {
27 'enabled': getEnabled()
28 };
29 chrome.windows.getAll({'populate': true}, function(windows) { 34 chrome.windows.getAll({'populate': true}, function(windows) {
30 for (var i = 0; i < windows.length; i++) { 35 for (var i = 0; i < windows.length; i++) {
31 var tabs = windows[i].tabs; 36 var tabs = windows[i].tabs;
32 for (var j = 0; j < tabs.length; j++) { 37 for (var j = 0; j < tabs.length; j++) {
33 var url = tabs[j].url; 38 var url = tabs[j].url;
34 if (isDisallowedUrl(url)) { 39 if (isDisallowedUrl(url)) {
35 continue; 40 continue;
36 } 41 }
42 console.log('sending to ' + siteFromUrl(url) + ' ' +
kevers 2015/03/10 14:07:51 Please wrap console log in a helper function so th
Peter Wen 2015/03/10 19:00:55 Done.
43 getSiteDelta(siteFromUrl(url)) + ',' +
44 getSiteSeverity(siteFromUrl(url)));
37 var msg = { 45 var msg = {
38 'enabled': getEnabled(), 46 'delta': getSiteDelta(siteFromUrl(url)),
39 'scheme': getSiteScheme(siteFromUrl(url)) 47 'severity': getSiteSeverity(siteFromUrl(url)),
48 'type': getDefaultType(),
49 'simulate': getDefaultSimulate()
40 }; 50 };
41 chrome.tabs.sendRequest(tabs[j].id, msg); 51 chrome.tabs.sendRequest(tabs[j].id, msg);
42 } 52 }
43 } 53 }
44 }); 54 });
45 } 55 }
46 56
47 function toggleEnabled() { 57 /**
48 setEnabled(!getEnabled()); 58 * Initial extension loading.
49 updateTabs(); 59 */
50 } 60 (function initialize() {
51
52 function toggleSite(url) {
53 var site = siteFromUrl(url);
54 var scheme = getSiteScheme(site);
55 if (scheme > 0) {
56 scheme = 0;
57 } else if (getDefaultScheme() > 0) {
58 scheme = getDefaultScheme();
59 } else {
60 scheme = DEFAULT_SCHEME;
61 }
62 setSiteScheme(site, scheme);
63 updateTabs();
64 }
65
66 function init() {
67 injectContentScripts(); 61 injectContentScripts();
68 updateTabs(); 62 updateTabs();
69 63
70 chrome.extension.onRequest.addListener( 64 chrome.extension.onRequest.addListener(
71 function(request, sender, sendResponse) { 65 function(request, sender, sendResponse) {
72 if (request['toggle_global']) {
73 toggleEnabled();
74 }
75 if (request['toggle_site']) {
76 toggleSite(sender.tab ? sender.tab.url : 'www.example.com');
77 }
78 if (request['init']) { 66 if (request['init']) {
79 var scheme = getDefaultScheme(); 67 var delta = getDefaultDelta();
80 if (sender.tab) { 68 if (sender.tab) {
81 scheme = getSiteScheme(siteFromUrl(sender.tab.url)); 69 delta = getSiteDelta(siteFromUrl(sender.tab.url));
82 } 70 }
71
72 var severity = getDefaultSeverity();
73 if (sender.tab) {
74 severity = getSiteSeverity(siteFromUrl(sender.tab.url));
75 }
76
77 var type = getDefaultType();
78 var simulate = getDefaultSimulate();
79
83 var msg = { 80 var msg = {
84 'enabled': getEnabled(), 81 'delta': delta,
85 'scheme': scheme 82 'severity': severity,
83 'type': getDefaultType(),
84 'simulate': getDefaultSimulate()
86 }; 85 };
87 sendResponse(msg); 86 sendResponse(msg);
88 } 87 }
89 }); 88 });
90 89
91 document.addEventListener('storage', function(evt) { 90 document.addEventListener('storage', function(evt) {
92 updateTabs(); 91 updateTabs();
93 }, false); 92 }, false);
94 93 })();
95 if (navigator.appVersion.indexOf('Mac') != -1) {
96 chrome.browserAction.setTitle({'title': 'High Contrast (Cmd+Shift+F11)'});
97 }
98 }
99
100 init();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698