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

Side by Side Diff: go-back-with-backspace/pages/options.js

Issue 2400303003: Update UI and catch executeScript errors now shown in Canary (Closed)
Patch Set: Fix global-replace bug Created 4 years, 1 month 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 2016 Google Inc. All rights reserved. 1 // Copyright 2016 Google Inc. 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 // Disable the whitelist field when it's not relevant.
6 function updateEnabledInputs() {
7 var checkbox = document.getElementById('disableInApplets');
8 document.getElementById('whitelist').disabled = !checkbox.checked;
Devlin 2016/11/01 15:12:15 Suggestion: at the top of this file (or in common.
9 }
10
5 // Initialize the page. 11 // Initialize the page.
6 function init() { 12 function init() {
7 LoadInternationalizedStrings(); 13 loadInternationalizedStrings();
8 14
9 var blacklist = document.getElementById('blacklist'); 15 var blacklist = document.getElementById('blacklist');
10 var checkbox = document.getElementById('disableInApplets'); 16 var checkbox = document.getElementById('disableInApplets');
11 var whitelist = document.getElementById('whitelist'); 17 var whitelist = document.getElementById('whitelist');
12 18
13 // Configure the textboxes, allowing 200 characters for JSON serialization 19 // Configure the textboxes, allowing 200 characters for JSON serialization
14 // and key length. 20 // and key length.
15 blacklist.maxlength = chrome.storage.sync.QUOTA_BYTES_PER_ITEM - 200; 21 blacklist.maxlength = chrome.storage.sync.QUOTA_BYTES_PER_ITEM - 200;
16 whitelist.maxlength = chrome.storage.sync.QUOTA_BYTES_PER_ITEM - 200; 22 whitelist.maxlength = chrome.storage.sync.QUOTA_BYTES_PER_ITEM - 200;
17 23
18 // Set event handlers. 24 // Set event handlers.
19 document.getElementById('done_button').onclick = function() { 25 document.getElementById('done-button').onclick = function() {
20 chrome.storage.sync.set({ 26 chrome.storage.sync.set({
21 // Split the lists into arrays at whitespace before saving. 27 // Split the lists into arrays at whitespace before saving.
22 blacklist: 28 blacklist:
23 document.getElementById('blacklist').value.split(/\s+/), 29 document.getElementById('blacklist').value.split(/\s+/),
Devlin 2016/11/01 15:12:15 Should we validate these are urls?
Pam (message me for reviews) 2016/11/01 21:29:03 Is there a handy, robust way to do that?
Devlin 2016/11/05 04:56:09 One way would be to try to construct an URL object
Pam (message me for reviews) 2016/11/16 19:23:24 Thinking about it, what I'd like to do is check th
24 disableInApplets: document.getElementById('disableInApplets').checked, 30 disableInApplets: document.getElementById('disableInApplets').checked,
25 whitelist: 31 whitelist:
26 document.getElementById('whitelist').value.split(/\s+/) 32 document.getElementById('whitelist').value.split(/\s+/)
27 }, function() { 33 }, function() {
28 // One easy way to force an error for testing is to change "sync" to 34 // One easy way to force an error for testing is to change "sync" to
29 // "managed" in the chrome.storage.sync.set() call above. 35 // "managed" in the chrome.storage.sync.set() call above.
30 if (chrome.runtime.lastError) { 36 if (chrome.runtime.lastError) {
31 document.getElementById('error').textContent = 37 document.getElementById('error').textContent =
32 chrome.i18n.getMessage('errorSaving', 38 chrome.i18n.getMessage('errorSaving',
33 chrome.runtime.lastError.message); 39 chrome.runtime.lastError.message);
34 } else { 40 } else {
35 window.close(); 41 window.close();
36 } 42 }
37 }); 43 });
38 }; 44 };
39 45
40 document.getElementById('cancel_button').onclick = function() { 46 checkbox.onchange = updateEnabledInputs;
47
48 document.getElementById('cancel-button').onclick = function() {
Devlin 2016/11/01 15:12:15 $('cancel-button').onclick = window.close;
41 window.close(); 49 window.close();
42 }; 50 };
43 51
44 document.getElementById('report_page').onclick = function() { 52 document.getElementById('feedback-link').onclick = function() {
Devlin 2016/11/01 15:12:15 $('feedback-link').onclick = sendFeedback;
Pam (message me for reviews) 2016/11/01 21:29:03 This one doesn't work, because sendFeedback takes
45 reportPage(); 53 sendFeedback();
46 }; 54 };
47 55
48 // Load saved settings into the form fields. 56 // Load saved settings into the form fields.
49 chrome.storage.sync.get({ 57 chrome.storage.sync.get({
50 blacklist: [], 58 blacklist: [],
51 disableInApplets: true, 59 disableInApplets: true,
52 whitelist: [] 60 whitelist: []
53 }, function(items) { 61 }, function(items) {
54 blacklist.value = items.blacklist.join('\n'); 62 blacklist.value = items.blacklist.join('\n');
55 checkbox.checked = items.disableInApplets; 63 checkbox.checked = items.disableInApplets;
56 whitelist.value = items.whitelist.join('\n'); 64 whitelist.value = items.whitelist.join('\n');
65
66 updateEnabledInputs();
57 }); 67 });
58 } 68 }
59 69
60 window.addEventListener('load', init, false); 70 window.addEventListener('load', init, false);
Devlin 2016/11/01 15:12:15 useCapture defaults to false.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698