| Index: ui/accessibility/extensions/colorenhancer/src/background.js
|
| diff --git a/ui/accessibility/extensions/colorenhancer/src/background.js b/ui/accessibility/extensions/colorenhancer/src/background.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7c8a1faf176100122db6864c6a978db7fe9263fb
|
| --- /dev/null
|
| +++ b/ui/accessibility/extensions/colorenhancer/src/background.js
|
| @@ -0,0 +1,96 @@
|
| +// 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.
|
| +
|
| +/**
|
| + * Adds filter script and css to all existing tabs.
|
| + *
|
| + * TODO(wnwen): Verify content scripts are not being injected multiple times.
|
| + */
|
| +function injectContentScripts() {
|
| + chrome.windows.getAll({'populate': true}, function(windows) {
|
| + for (var i = 0; i < windows.length; i++) {
|
| + var tabs = windows[i].tabs;
|
| + for (var j = 0; j < tabs.length; j++) {
|
| + var url = tabs[j].url;
|
| + if (isDisallowedUrl(url)) {
|
| + continue;
|
| + }
|
| + chrome.tabs.insertCSS(
|
| + tabs[j].id,
|
| + {file: 'res/cvd.css'});
|
| + chrome.tabs.executeScript(
|
| + tabs[j].id,
|
| + {file: 'src/common.js'});
|
| + chrome.tabs.executeScript(
|
| + tabs[j].id,
|
| + {file: 'src/cvd.js'});
|
| + }
|
| + }
|
| + });
|
| +}
|
| +
|
| +/**
|
| + * Updates all existing tabs with config values.
|
| + */
|
| +function updateTabs() {
|
| + chrome.windows.getAll({'populate': true}, function(windows) {
|
| + for (var i = 0; i < windows.length; i++) {
|
| + var tabs = windows[i].tabs;
|
| + for (var j = 0; j < tabs.length; j++) {
|
| + var url = tabs[j].url;
|
| + if (isDisallowedUrl(url)) {
|
| + continue;
|
| + }
|
| + debugPrint('sending to ' + siteFromUrl(url) + ' ' +
|
| + getSiteDelta(siteFromUrl(url)) + ',' +
|
| + getSiteSeverity(siteFromUrl(url)));
|
| + var msg = {
|
| + 'delta': getSiteDelta(siteFromUrl(url)),
|
| + 'severity': getSiteSeverity(siteFromUrl(url)),
|
| + 'type': getDefaultType(),
|
| + 'simulate': getDefaultSimulate()
|
| + };
|
| + chrome.tabs.sendRequest(tabs[j].id, msg);
|
| + }
|
| + }
|
| + });
|
| +}
|
| +
|
| +/**
|
| + * Initial extension loading.
|
| + */
|
| +(function initialize() {
|
| + injectContentScripts();
|
| + updateTabs();
|
| +
|
| + chrome.extension.onRequest.addListener(
|
| + function(request, sender, sendResponse) {
|
| + if (request['init']) {
|
| + var delta = getDefaultDelta();
|
| + if (sender.tab) {
|
| + delta = getSiteDelta(siteFromUrl(sender.tab.url));
|
| + }
|
| +
|
| + var severity = getDefaultSeverity();
|
| + if (sender.tab) {
|
| + severity = getSiteSeverity(siteFromUrl(sender.tab.url));
|
| + }
|
| +
|
| + var type = getDefaultType();
|
| + var simulate = getDefaultSimulate();
|
| +
|
| + var msg = {
|
| + 'delta': delta,
|
| + 'severity': severity,
|
| + 'type': getDefaultType(),
|
| + 'simulate': getDefaultSimulate()
|
| + };
|
| + sendResponse(msg);
|
| + }
|
| + });
|
| +
|
| + document.addEventListener('storage', function(evt) {
|
| + updateTabs();
|
| + }, false);
|
| +})();
|
|
|