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

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

Issue 1061263004: Fixes wrong inheritance of PrefSelect. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed review comments. Created 5 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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', function() { 5 cr.define('options', function() {
6 var Preferences = options.Preferences; 6 var Preferences = options.Preferences;
7 7
8 /** 8 /**
9 * Allows an element to be disabled for several reasons. 9 * Allows an element to be disabled for several reasons.
10 * The element is disabled if at least one reason is true, and the reasons 10 * The element is disabled if at least one reason is true, and the reasons
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 }; 383 };
384 384
385 ///////////////////////////////////////////////////////////////////////////// 385 /////////////////////////////////////////////////////////////////////////////
386 // PrefSelect class: 386 // PrefSelect class:
387 387
388 // Define a constructor that uses a select element as its underlying element. 388 // Define a constructor that uses a select element as its underlying element.
389 var PrefSelect = cr.ui.define('select'); 389 var PrefSelect = cr.ui.define('select');
390 390
391 PrefSelect.prototype = { 391 PrefSelect.prototype = {
392 // Set up the prototype chain 392 // Set up the prototype chain
393 __proto__: PrefInputElement.prototype, 393 __proto__: HTMLSelectElement.prototype,
394
395 /** @override */
396 decorate: PrefInputElement.prototype.decorate,
397
398 /** @override */
399 handleChange: PrefInputElement.prototype.handleChange,
394 400
395 /** 401 /**
396 * Update the associated pref when when the user selects an item. 402 * Update the associated pref when when the user selects an item.
397 * @override 403 * @override
398 */ 404 */
399 updatePrefFromState: function() { 405 updatePrefFromState: function() {
400 var value = this.options[this.selectedIndex].value; 406 var value = this.options[this.selectedIndex].value;
401 switch (this.dataType) { 407 switch (this.dataType) {
402 case 'number': 408 case 'number':
403 Preferences.setIntegerPref(this.pref, value, 409 Preferences.setIntegerPref(this.pref, value,
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 if (!found) 448 if (!found)
443 this.selectedIndex = 0; 449 this.selectedIndex = 0;
444 450
445 // The "onchange" event automatically fires when the user makes a manual 451 // The "onchange" event automatically fires when the user makes a manual
446 // change. It should never be fired for a programmatic change. However, 452 // change. It should never be fired for a programmatic change. However,
447 // these two lines were here already and it is hard to tell who may be 453 // these two lines were here already and it is hard to tell who may be
448 // relying on them. 454 // relying on them.
449 if (this.onchange) 455 if (this.onchange)
450 this.onchange(event); 456 this.onchange(event);
451 }, 457 },
458
459 /** @override */
460 setDisabled: PrefInputElement.prototype.setDisabled,
461
462 /** @override */
463 customChangeHandler: PrefInputElement.prototype.customChangeHandler,
464
465 /** @override */
466 customPrefChangeHandler: PrefInputElement.prototype.customPrefChangeHandler,
452 }; 467 };
453 468
469 /**
470 * The name of the associated preference.
471 */
472 cr.defineProperty(PrefSelect, 'pref', cr.PropertyKind.ATTR);
473
474 /**
475 * The data type of the associated preference, only relevant for derived
476 * classes that support different data types.
477 */
478 cr.defineProperty(PrefSelect, 'dataType', cr.PropertyKind.ATTR);
479
480 /**
481 * Whether this input element is part of a dialog. If so, changes take effect
482 * in the settings UI immediately but are only actually committed when the
483 * user confirms the dialog. If the user cancels the dialog instead, the
484 * changes are rolled back in the settings UI and never committed.
485 */
486 cr.defineProperty(PrefSelect, 'dialogPref', cr.PropertyKind.BOOL_ATTR);
487
488 /**
489 * Whether the associated preference is controlled by a source other than the
490 * user's setting (can be 'policy', 'extension', 'recommended' or unset).
491 */
492 cr.defineProperty(PrefSelect, 'controlledBy', cr.PropertyKind.ATTR);
493
494 /**
495 * The user metric string.
496 */
497 cr.defineProperty(PrefSelect, 'metric', cr.PropertyKind.ATTR);
498
454 ///////////////////////////////////////////////////////////////////////////// 499 /////////////////////////////////////////////////////////////////////////////
455 // PrefTextField class: 500 // PrefTextField class:
456 501
457 // Define a constructor that uses an input element as its underlying element. 502 // Define a constructor that uses an input element as its underlying element.
458 var PrefTextField = cr.ui.define('input'); 503 var PrefTextField = cr.ui.define('input');
459 504
460 PrefTextField.prototype = { 505 PrefTextField.prototype = {
461 // Set up the prototype chain 506 // Set up the prototype chain
462 __proto__: PrefInputElement.prototype, 507 __proto__: PrefInputElement.prototype,
463 508
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 PrefInputElement: PrefInputElement, 630 PrefInputElement: PrefInputElement,
586 PrefNumber: PrefNumber, 631 PrefNumber: PrefNumber,
587 PrefRadio: PrefRadio, 632 PrefRadio: PrefRadio,
588 PrefRange: PrefRange, 633 PrefRange: PrefRange,
589 PrefSelect: PrefSelect, 634 PrefSelect: PrefSelect,
590 PrefTextField: PrefTextField, 635 PrefTextField: PrefTextField,
591 PrefPortNumber: PrefPortNumber, 636 PrefPortNumber: PrefPortNumber,
592 PrefButton: PrefButton 637 PrefButton: PrefButton
593 }; 638 };
594 }); 639 });
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698