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

Side by Side Diff: chrome/browser/resources/options/chromeos/proxy_rules_list.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.proxyexceptions', function() {
6 const List = cr.ui.List;
7 const ListItem = cr.ui.ListItem;
8 const ArrayDataModel = cr.ui.ArrayDataModel;
9
10 /**
11 * Creates a new exception list.
12 * @param {Object=} opt_propertyBag Optional properties.
13 * @constructor
14 * @extends {cr.ui.List}
15 */
16 var ProxyExceptions = cr.ui.define('list');
17
18 ProxyExceptions.prototype = {
19 __proto__: List.prototype,
20
21 pref: 'cros.session.proxy.ignorelist',
22
23 /** @inheritDoc */
24 decorate: function() {
25 List.prototype.decorate.call(this);
26
27 // HACK(arv): http://crbug.com/40902
28 window.addEventListener('resize', this.redraw.bind(this));
29
30 this.addEventListener('click', this.handleClick_);
31
32 var self = this;
33
34 // Listens to pref changes.
35 Preferences.getInstance().addEventListener(this.pref,
36 function(event) {
37 self.load_(event.value);
38 });
39 },
40
41 createItem: function(exception) {
42 return new ProxyExceptionsItem(exception);
43 },
44
45 /**
46 * Adds given exception to model and update backend.
47 * @param {Object} exception A exception to be added to exception list.
48 */
49 addException: function(exception) {
50 this.dataModel.push(exception);
51 this.updateBackend_();
52 },
53
54 /**
55 * Removes given exception from model and update backend.
56 */
57 removeException: function(exception) {
58 var dataModel = this.dataModel;
59
60 var index = dataModel.indexOf(exception);
61 if (index >= 0) {
62 dataModel.splice(index, 1);
63 this.updateBackend_();
64 }
65 },
66
67 /**
68 * Handles the clicks on the list and triggers exception removal if the
69 * click is on the remove exception button.
70 * @private
71 * @param {!Event} e The click event object.
72 */
73 handleClick_: function(e) {
74 // Handle left button click
75 if (e.button == 0) {
76 var el = e.target;
77 if (el.className == 'remove-exception-button') {
78 this.removeException(el.parentNode.exception);
79 }
80 }
81 },
82
83 /**
84 * Loads given exception list.
85 * @param {Array} exceptions An array of exception object.
86 */
87 load_: function(exceptions) {
88 this.dataModel = new ArrayDataModel(exceptions);
89 },
90
91 /**
92 * Updates backend.
93 */
94 updateBackend_: function() {
95 Preferences.setListPref(this.pref, this.dataModel.slice());
96 }
97 };
98
99 /**
100 * Creates a new exception list item.
101 * @param exception The exception account this represents.
102 * @constructor
103 * @extends {cr.ui.ListItem}
104 */
105 function ProxyExceptionsItem(exception) {
106 var el = cr.doc.createElement('div');
107 el.exception = exception;
108 ProxyExceptionsItem.decorate(el);
109 return el;
110 }
111
112 /**
113 * Decorates an element as a exception account item.
114 * @param {!HTMLElement} el The element to decorate.
115 */
116 ProxyExceptionsItem.decorate = function(el) {
117 el.__proto__ = ProxyExceptionsItem.prototype;
118 el.decorate();
119 };
120
121 ProxyExceptionsItem.prototype = {
122 __proto__: ListItem.prototype,
123
124 /** @inheritDoc */
125 decorate: function() {
126 ListItem.prototype.decorate.call(this);
127 this.className = 'exception-list-item';
128
129 var labelException = this.ownerDocument.createElement('span');
130 labelException.className = '';
131 labelException.textContent = this.exception;
132 this.appendChild(labelException);
133 }
134 };
135
136 return {
137 ProxyExceptions: ProxyExceptions
138 };
139 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698