return { __proto__: this.ownerDocument. getAnonymousElementByAttribute(this, "anonid", "slider"), set readonly() { // XXX: bug 343523 }, get start() { return this.min; }, set start(aValue) { this.min = aValue; }, get end() { return this.max; }, set end(aValue) { this.max = aValue; } }; // Call widgetAttached() after timeout to let slider widget to be // loaded. this.ownerDocument.defaultView.setTimeout( function(aDelegate) { aDelegate.widgetAttached(); }, 0, this.delegate); // The change event is generated by the slider widget defined in // "widgets-xhtml.xml". var changeHandler = { range: this, handleEvent: function(aEvent) { this.range.updateInstanceData(true); } }; this.control.addEventListener("ValueChange", changeHandler, false); this.updateInstanceData(false);