15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cr.define('options', function() {
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  //////////////////////////////////////////////////////////////////////////////
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // ContentSettingsRadio class:
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Define a constructor that uses an input element as its underlying element.
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  var ContentSettingsRadio = cr.ui.define('input');
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ContentSettingsRadio.prototype = {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    __proto__: HTMLInputElement.prototype,
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Initialization function for the cr.ui framework.
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    decorate: function() {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.type = 'radio';
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      var self = this;
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.addEventListener('change',
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          function(e) {
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            chrome.send('setContentFilter', [this.name, this.value]);
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          });
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * Whether the content setting is controlled by something else than the user's
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * settings (either 'policy' or 'extension').
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  cr.defineProperty(ContentSettingsRadio, 'controlledBy', cr.PropertyKind.ATTR);
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  //////////////////////////////////////////////////////////////////////////////
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // HandlersEnabledRadio class:
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Define a constructor that uses an input element as its underlying element.
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  var HandlersEnabledRadio = cr.ui.define('input');
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HandlersEnabledRadio.prototype = {
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    __proto__: HTMLInputElement.prototype,
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Initialization function for the cr.ui framework.
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    decorate: function() {
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.type = 'radio';
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      var self = this;
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      this.addEventListener('change',
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          function(e) {
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            chrome.send('setHandlersEnabled', [this.value == 'allow']);
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          });
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Export
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return {
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ContentSettingsRadio: ContentSettingsRadio,
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    HandlersEnabledRadio: HandlersEnabledRadio
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)});
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67