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

Side by Side Diff: chrome/browser/resources/options/chromeos/proxy_options.js

Issue 7003007: Apply content-security-policy to the HTML options page. This is a (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 7 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 cr.define('options', function() {
6
7 var OptionsPage = options.OptionsPage;
8 var Preferences = options.Preferences;
9
10 /////////////////////////////////////////////////////////////////////////////
11 // ProxyOptions class:
12
13 /**
14 * Encapsulated handling of ChromeOS proxy options page.
15 * @constructor
16 */
17 function ProxyOptions(model) {
18 OptionsPage.call(this, 'proxy', localStrings.getString('proxyPage'),
19 'proxyPage');
20 }
21
22 cr.addSingletonGetter(ProxyOptions);
23
24 /**
25 * UI pref change handler.
26 */
27 function handlePrefUpdate(e) {
28 ProxyOptions.getInstance().updateControls();
29 }
30
31 /**
32 * Monitor pref change of given element.
33 */
34 function observePrefsUI(el) {
35 Preferences.getInstance().addEventListener(el.pref, handlePrefUpdate);
36 }
37
38 ProxyOptions.prototype = {
39 // Inherit ProxyOptions from OptionsPage.
40 __proto__: OptionsPage.prototype,
41
42 /**
43 * Initializes ProxyOptions page.
44 */
45 initializePage: function() {
46 // Call base class implementation to starts preference initialization.
47 OptionsPage.prototype.initializePage.call(this);
48
49 // Set up ignored page.
50 options.proxyexceptions.ProxyExceptions.decorate($('ignoredHostList'));
51
52 this.addEventListener('visibleChange', this.handleVisibleChange_);
53 $('removeHost').addEventListener('click', this.handleRemoveExceptions_);
54 $('addHost').addEventListener('click', this.handleAddException_);
55 $('directProxy').addEventListener('click', this.disableManual_);
56 $('manualProxy').addEventListener('click', this.enableManual_);
57 $('autoProxy').addEventListener('click', this.disableManual_);
58 $('proxyAllProtocols').addEventListener('click', this.toggleSingle_);
59
60 observePrefsUI($('directProxy'));
61 observePrefsUI($('manualProxy'));
62 observePrefsUI($('autoProxy'));
63 observePrefsUI($('proxyAllProtocols'));
64 },
65
66 proxyListInitalized_: false,
67
68 /**
69 * Update controls state.
70 * @public
71 */
72 updateControls: function() {
73 this.toggleSingle_();
74 if ($('manualProxy').checked) {
75 this.enableManual_();
76 } else {
77 this.disableManual_();
78 }
79 if (!this.proxyListInitalized_ && this.visible) {
80 this.proxyListInitalized_ = true;
81 $('ignoredHostList').redraw();
82 }
83 },
84
85 /**
86 * Handler for OptionsPage's visible property change event.
87 * @private
88 * @param {Event} e Property change event.
89 */
90 handleVisibleChange_: function(e) {
91 this.updateControls();
92 },
93
94 /**
95 * Handler for when the user clicks on the checkbox to allow a
96 * single proxy usage.
97 * @private
98 * @param {Event} e Click Event.
99 */
100 toggleSingle_: function(e) {
101 if($('proxyAllProtocols').value) {
102 $('multiProxy').style.display = 'none';
103 $('singleProxy').style.display = 'block';
104 } else {
105 $('multiProxy').style.display = 'block';
106 $('singleProxy').style.display = 'none';
107 }
108 },
109
110 /**
111 * Handler for selecting a radio button that will disable the manual
112 * controls.
113 * @private
114 * @param {Event} e Click event.
115 */
116 disableManual_: function(e) {
117 $('proxyAllProtocols').disabled = true;
118 $('proxyHostName').disabled = true;
119 $('proxyHostPort').disabled = true;
120 $('proxyHostSingleName').disabled = true;
121 $('proxyHostSinglePort').disabled = true;
122 $('secureProxyHostName').disabled = true;
123 $('secureProxyPort').disabled = true;
124 $('ftpProxy').disabled = true;
125 $('ftpProxyPort').disabled = true;
126 $('socksHost').disabled = true;
127 $('socksPort').disabled = true;
128 $('newHost').disabled = true;
129 $('removeHost').disabled = true;
130 $('addHost').disabled = true;
131 $('advancedConfig').style.display = 'none';
132 },
133
134 /**
135 * Handler for selecting a radio button that will enable the manual
136 * controls.
137 * @private
138 * @param {Event} e Click event.
139 */
140 enableManual_: function(e) {
141 $('proxyAllProtocols').disabled = false;
142 $('proxyHostName').disabled = false;
143 $('proxyHostPort').disabled = false;
144 $('proxyHostSingleName').disabled = false;
145 $('proxyHostSinglePort').disabled = false;
146 $('secureProxyHostName').disabled = false;
147 $('secureProxyPort').disabled = false;
148 $('ftpProxy').disabled = false;
149 $('ftpProxyPort').disabled = false;
150 $('socksHost').disabled = false;
151 $('socksPort').disabled = false;
152 $('newHost').disabled = false;
153 $('removeHost').disabled = false;
154 $('addHost').disabled = false;
155 $('advancedConfig').style.display = '-webkit-box';
156 $('ignoredHostList').redraw();
157 },
158
159 /**
160 * Handler for "add" event fired from userNameEdit.
161 * @private
162 * @param {Event} e Add event fired from userNameEdit.
163 */
164 handleAddException_: function(e) {
165 var exception = $('newHost').value;
166 $('newHost').value = '';
167
168 exception = exception.trim();
169 if (exception)
170 $('ignoredHostList').addException(exception);
171 },
172
173 /**
174 * Handler for when the remove button is clicked
175 * @private
176 */
177 handleRemoveExceptions_: function(e) {
178 var selectedItems = $('ignoredHostList').selectedItems;
179 for (var x = 0; x < selectedItems.length; x++) {
180 $('ignoredHostList').removeException(selectedItems[x]);
181 }
182 }
183 };
184
185 // Export
186 return {
187 ProxyOptions: ProxyOptions
188 };
189
190 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698