| // Copyright 2016 Google Inc. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Initialize the page. |
| function init() { |
| LoadInternationalizedStrings(); |
| |
| var blacklist = document.getElementById('blacklist'); |
| var checkbox = document.getElementById('disableInApplets'); |
| var whitelist = document.getElementById('whitelist'); |
| |
| // Configure the textboxes, allowing 200 characters for JSON serialization |
| // and key length. |
| blacklist.maxlength = chrome.storage.sync.QUOTA_BYTES_PER_ITEM - 200; |
| whitelist.maxlength = chrome.storage.sync.QUOTA_BYTES_PER_ITEM - 200; |
| |
| // Set event handlers. |
| document.getElementById('done_button').onclick = function() { |
| chrome.storage.sync.set({ |
| // Split the lists into arrays at whitespace before saving. |
| blacklist: |
| document.getElementById('blacklist').value.split(/\s+/), |
| disableInApplets: document.getElementById('disableInApplets').checked, |
| whitelist: |
| document.getElementById('whitelist').value.split(/\s+/) |
| }, function() { |
| // One easy way to force an error for testing is to change "sync" to |
| // "managed" in the chrome.storage.sync.set() call above. |
| if (chrome.runtime.lastError) { |
| document.getElementById('error').textContent = |
| chrome.i18n.getMessage('errorSaving', |
| chrome.runtime.lastError.message); |
| } else { |
| window.close(); |
| } |
| }); |
| }; |
| |
| document.getElementById('cancel_button').onclick = function() { |
| window.close(); |
| }; |
| |
| document.getElementById('report_page').onclick = function() { |
| reportPage(); |
| }; |
| |
| // Load saved settings into the form fields. |
| chrome.storage.sync.get({ |
| blacklist: [], |
| disableInApplets: true, |
| whitelist: [] |
| }, function(items) { |
| blacklist.value = items.blacklist.join('\n'); |
| checkbox.checked = items.disableInApplets; |
| whitelist.value = items.whitelist.join('\n'); |
| }); |
| } |
| |
| window.addEventListener('load', init, false); |