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

Side by Side Diff: chrome/browser/resources/options/content_settings_exceptions_area.js

Issue 1963203002: [Chrome Settings UI] Show overruled User Exceptions as strike-through. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Change 'Behavior' colunm text sizing to fix alignment. Created 4 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. 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 cr.define('options.contentSettings', function() { 5 cr.define('options.contentSettings', function() {
6 /** @const */ var ControlledSettingIndicator = 6 /** @const */ var ControlledSettingIndicator =
7 options.ControlledSettingIndicator; 7 options.ControlledSettingIndicator;
8 /** @const */ var InlineEditableItemList = options.InlineEditableItemList; 8 /** @const */ var InlineEditableItemList = options.InlineEditableItemList;
9 /** @const */ var InlineEditableItem = options.InlineEditableItem; 9 /** @const */ var InlineEditableItem = options.InlineEditableItem;
10 /** @const */ var ArrayDataModel = cr.ui.ArrayDataModel; 10 /** @const */ var ArrayDataModel = cr.ui.ArrayDataModel;
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 this.dataItem.source : null; 198 this.dataItem.source : null;
199 199
200 if (controlledBy) { 200 if (controlledBy) {
201 this.setAttribute('controlled-by', controlledBy); 201 this.setAttribute('controlled-by', controlledBy);
202 this.deletable = false; 202 this.deletable = false;
203 this.editable = false; 203 this.editable = false;
204 } 204 }
205 205
206 if (controlledBy == 'policy' || controlledBy == 'extension') { 206 if (controlledBy == 'policy' || controlledBy == 'extension') {
207 this.querySelector('.row-delete-button').hidden = true; 207 this.querySelector('.row-delete-button').hidden = true;
208 var indicator = new ControlledSettingIndicator(); 208 var indicator = new ControlledSettingIndicator();
Bernhard Bauer 2016/05/19 14:20:40 This appears to duplicate the code you added. Coul
huangs 2016/05/20 15:16:46 Done.
209 indicator.setAttribute('content-exception', this.contentType); 209 indicator.setAttribute('content-exception', this.contentType);
210 // Create a synthetic pref change event decorated as 210 // Create a synthetic pref change event decorated as
211 // CoreOptionsHandler::CreateValueForPref() does. 211 // CoreOptionsHandler::CreateValueForPref() does.
212 var event = new Event(this.contentType); 212 var event = new Event(this.contentType);
213 event.value = { controlledBy: controlledBy }; 213 event.value = { controlledBy: controlledBy };
214 indicator.handlePrefChange(event); 214 indicator.handlePrefChange(event);
215 this.appendChild(indicator); 215 this.appendChild(indicator);
216 } 216 }
217 217
218 // If the exception comes from a hosted app, display the name and the 218 // If the exception comes from a hosted app, display the name and the
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 */ 338 */
339 updateEditables: function() { 339 updateEditables: function() {
340 this.resetInput(); 340 this.resetInput();
341 341
342 var settingOption = 342 var settingOption =
343 this.select.querySelector('[value=\'' + this.setting + '\']'); 343 this.select.querySelector('[value=\'' + this.setting + '\']');
344 if (settingOption) 344 if (settingOption)
345 settingOption.selected = true; 345 settingOption.selected = true;
346 }, 346 },
347 347
348 /**
349 * Updates UI to indicate that the exception was overruled by a source.
350 *
351 * @param {string} overruledBy The source that overrules the exception.
352 */
353 setOverruledBy: function(overruledBy) {
354 this.classList.toggle('overruled', !!overruledBy);
355 var textElt = this.querySelector('.exception-pattern .static-text');
356 textElt.setAttribute('title',
357 loadTimeData.getString('exceptionDisabledByPolicy'));
358
359 var indicator = new ControlledSettingIndicator();
360 indicator.setAttribute('content-exception', this.contentType);
361 // Create a synthetic pref change event decorated as
362 // CoreOptionsHandler::CreateValueForPref() does.
363 var event = new Event(this.contentType);
364 event.value = { controlledBy: overruledBy };
365 indicator.handlePrefChange(event);
366 this.appendChild(indicator);
Bernhard Bauer 2016/05/18 09:55:13 What happens if this is called multiple times (e.g
huangs 2016/05/18 13:52:49 If content settings change then the entire list ge
367 },
368
348 /** @override */ 369 /** @override */
349 get currentInputIsValid() { 370 get currentInputIsValid() {
350 return this.inputValidityKnown && this.inputIsValid; 371 return this.inputValidityKnown && this.inputIsValid;
351 }, 372 },
352 373
353 /** @override */ 374 /** @override */
354 get hasBeenEdited() { 375 get hasBeenEdited() {
355 var livePattern = this.input.value; 376 var livePattern = this.input.value;
356 var liveSetting = this.select.value; 377 var liveSetting = this.select.value;
357 return livePattern != this.pattern || liveSetting != this.setting; 378 return livePattern != this.pattern || liveSetting != this.setting;
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 entry); 534 entry);
514 } else { 535 } else {
515 var addRowItem = new ExceptionsAddRowListItem(this.contentType, 536 var addRowItem = new ExceptionsAddRowListItem(this.contentType,
516 this.mode); 537 this.mode);
517 addRowItem.deletable = false; 538 addRowItem.deletable = false;
518 return addRowItem; 539 return addRowItem;
519 } 540 }
520 }, 541 },
521 542
522 /** 543 /**
544 * Updates UI to indicate that user exceptions were overruled by a source.
545 *
546 * @param {string} overruledBy The source that overrules user exceptions.
547 */
548 setOverruledBy: function(overruledBy) {
549 for (var index = 0; index < this.dataModel.length; ++index) {
550 var item = this.getListItemByIndex(index);
551 if (item.dataItem.source == 'preference') {
Bernhard Bauer 2016/05/18 09:55:13 Doesn't this mean that any preference rule is mark
huangs 2016/05/18 13:52:49 The "overruled" concept only applies to Policy Def
Bernhard Bauer 2016/05/19 14:20:40 I don't really want to get into a product discussi
huangs 2016/05/20 15:16:46 I think treating default as "super wildcard except
Bernhard Bauer 2016/05/23 13:34:11 I'm not sure what you are trying to say. This UI w
huangs 2016/05/24 05:02:00 By "bug" do you mean: (1) Code is not doing what
Bernhard Bauer 2016/05/24 16:54:34 Yes, that's what I mean.
552 item.setOverruledBy(overruledBy);
553 }
554 }
555 },
556
557 /**
523 * Sets the exceptions in the js model. 558 * Sets the exceptions in the js model.
524 * 559 *
525 * @param {Array<options.Exception>} entries A list of dictionaries of 560 * @param {Array<options.Exception>} entries A list of dictionaries of
526 * values, each dictionary represents an exception. 561 * values, each dictionary represents an exception.
527 */ 562 */
528 setExceptions: function(entries) { 563 setExceptions: function(entries) {
529 var deleteCount = this.dataModel.length; 564 var deleteCount = this.dataModel.length;
530 565
531 if (this.isEditable()) { 566 if (this.isEditable()) {
532 // We don't want to remove the Add New Exception row. 567 // We don't want to remove the Add New Exception row.
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
696 } 731 }
697 }; 732 };
698 733
699 return { 734 return {
700 ExceptionsListItem: ExceptionsListItem, 735 ExceptionsListItem: ExceptionsListItem,
701 ExceptionsAddRowListItem: ExceptionsAddRowListItem, 736 ExceptionsAddRowListItem: ExceptionsAddRowListItem,
702 ExceptionsList: ExceptionsList, 737 ExceptionsList: ExceptionsList,
703 ContentSettingsExceptionsArea: ContentSettingsExceptionsArea, 738 ContentSettingsExceptionsArea: ContentSettingsExceptionsArea,
704 }; 739 };
705 }); 740 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698