PK
{-H3 chrome/UT GC GCUx PK
{-H3NAj j chrome/xforms.jarUT GC GCUx PK
K2( content/xforms/contents.rdf
PK
[D3|s5 s5 content/xforms/xforms.xml
this.delegate.widgetAttached();
this._delegate = null;
null
return "http://www.w3.org/2002/xforms";
if (!this._delegate)
this._delegate = this.QueryInterface(Components.interfaces.nsIXFormsDelegate);
return this._delegate;
var value = this.delegate.value;
return value != null ? value : "";
return true;
return true;
return false;
var ev = document.createEvent("UIEvents");
ev.initUIEvent("DOMActivate", true, true, window, 1);
this.dispatchEvent(ev);
return true;
document.getAnonymousElementByAttribute(this, "anonid", "content").textContent =
this.stringValue;
return true;
var anoncontent =
document.getAnonymousElementByAttribute(this, "anonid", "anoncontent");
if (this.delegate.hasBoundNode || this.delegate.value != null) {
anoncontent.setAttribute("style", "display:none;");
} else {
anoncontent.removeAttribute("style");
}
document.getAnonymousElementByAttribute(this, "anonid", "content").textContent =
this.stringValue;
return true;
null
if (!this._inputField) {
this._inputField =
document.getAnonymousElementByAttribute(this, "anonid", "control");
}
return this._inputField;
if (this.getAttribute("incremental") == "true") {
this.delegate.value = this.inputField.value;
}
return true;
this.inputField.value = this.stringValue;
if (this.delegate.isReadonly) {
this.inputField.setAttribute("readonly", "readonly");
} else {
this.inputField.removeAttribute("readonly");
}
return true;
this.inputField.focus();
return true;
this.inputField.setAttribute("type","checkbox");
var value = this.stringValue;
if (value == "true" || value == "1") {
this.inputField.setAttribute("checked", "checked");
} else {
this.inputField.removeAttribute("checked");
}
this.inputField.value = value;
if (this.delegate.isReadonly) {
this.inputField.setAttribute("readonly", "readonly");
} else {
this.inputField.removeAttribute("readonly");
}
this.inputField.removeAttribute("onkeypress");
return true;
if (this.getAttribute("incremental") != "false") {
if (this.inputField.checked) {
this.delegate.value = "true";
} else {
this.delegate.value = "false";
}
}
this.inputField.setAttribute("type","password");
this.inputField.value = this.stringValue;
this.inputField.readonly = this.delegate.isReadonly;
return true;
null
if (!this._controlField) {
this._controlField =
document.getAnonymousElementByAttribute(this, "anonid", "control");
}
return this._controlField;
this.controlField.readonly = this.delegate.isReadonly;
// If the value has not changed, no need to update the
// value of the control, because that makes the textarea widget
// to scroll up.
if (this.controlField.value != this.stringValue) {
this.controlField.value = this.stringValue;
}
return true;
if (this.getAttribute("incremental") == "true") {
this.delegate.value = this.controlField.value;
}
return true;
this.controlField.focus();
return true;
var control =
document.getAnonymousElementByAttribute(this, "anonid", "thebutton");
if (aDisable) {
control.setAttribute("disabled", "disabled");
} else {
control.removeAttribute("disabled");
}
document.getAnonymousElementByAttribute(this, "anonid", "thebutton").focus();
return true;
false
this._disabled = aDisable;
document.getAnonymousElementByAttribute(this, "anonid", "thespan").focus();
return true;
this.QueryInterface(Components.interfaces.nsIXFormsCaseElement).widgetAttached();
null
if (!this._container) {
this._container =
document.getAnonymousElementByAttribute(this, "anonid", "container");
}
return this._container;
if (aEnable) {
this.container.style.display = "inherit";
} else {
this.container.style.display = "none"
}
return true;
PK
[D3@Tb Tb content/xforms/select1.xml
nullnullnullnull-1nullnullfalsetrue
return this.getAttribute("selection") == "open";
if (!this._inputField) {
this._inputField =
document.getAnonymousElementByAttribute(this, "anonid", "control");
}
return this._inputField;
if (!this._dropMarker) {
this._dropMarker =
document.getAnonymousElementByAttribute(this, "anonid", "dropmarker");
}
return this._dropMarker;
if (!this._popup) {
this._popup =
document.getAnonymousElementByAttribute(this, "anonid", "popup");
}
return this._popup;
if (!this._container) {
this._container =
document.getAnonymousElementByAttribute(this, "anonid", "container");
}
return this._container;
. No need to update the value of the control
// in this case.
if (this._selected && this.popupOpen) {
this.hidePopup();
this._selected.setActive(false);
this._selected = this._tmpSelected;
this._tmpSelected = null;
if (this._selected) {
this._selected.setActive(true);
}
}
}
return true;
]]>
0) {
return aDown ? next.anonymousItemSetContent.firstChild
: next.anonymousItemSetContent.lastChild;
}
}
node = next;
}
// if we are in a choices or itemset element
var parent = aNode.parentNode;
if (parent.namespaceURI == this.XFORMS_NS &&
parent.localName == "choices") {
var sibling = aDown ? parent.nextSibling : parent.previousSibling;
if (sibling.namespaceURI == this.XFORMS_NS &&
sibling.localName == "item") {
return sibling;
}
return this.findNextSelectable(sibling, aDown);
}
if (parent.parentNode.namespaceURI == this.XFORMS_NS &&
parent.parentNode.localName == "itemset") {
var sibling2 = aDown
? parent.parentNode.nextSibling
: parent.parentNode.previousSibling;
if (sibling2.namespaceURI == this.XFORMS_NS &&
sibling2.localName == "item") {
return sibling2;
}
return this.findNextSelectable(sibling2, aDown);
}
return null;
]]>
is possible (anonymously)
// inside
var target = aEvent.originalTarget;
while (target && target != this) {
if (target.namespaceURI == this.XFORMS_NS &&
(target.localName == "item" || target.localName == "choices")) {
break;
}
target = target.parentNode;
}
if (target == this) {
return true;
}
this.hidePopup();
if (this._selected) {
this.updateInputField();
this.delegate.value =
this._selected.value;
}
this.inputField.focus();
]]>
is possible (anonymously)
// inside
var target = aEvent.originalTarget;
while (target && target != this) {
if (target.namespaceURI == this.XFORMS_NS && target.localName == "item") {
if (this._selected) {
this._selected.setActive(false);
this._selected = null;
}
var item =
target.QueryInterface(Components.interfaces.nsIXFormsItemElement);
if (item) {
item.setActive(true);
this._selected = item;
}
break;
}
target = target.parentNode;
}
]]>
this.popup.style.visibility = "hidden";
this.popupOpen = false;
0) {
w = w + 12; // Adding some 'padding' for possible scrollbar
this.inputField.setAttribute("style", "width:" + w + "px;");
this._width = w + document.getBoxObjectFor(this.dropMarker).width;
}
this.popup.style.maxHeight = "10px";
this.popup.style.left = "0px";
this.popup.style.top = "0px";
}
]]>
popupHeight) {
targetY = y - popupHeight;
} else if (belowSelect < (y - pY)) {
style = style + "max-height:" + (y - pY - adjust) + "px;";
targetY = pY + adjust;
} else {
style = style + "max-height:" + belowSelect + "px;";
}
}
style = style + "left:" + x + "px;";
style = style + "top:" + targetY + "px;";
style = style + "width:";
if (this.selectionOpen) {
style = style + w + "px;";
} else if (this._width < 0) {
style = style + "auto;"
} else {
style = style + this._width + "px;";
}
style = style + "visibility:visible;";
this.popup.setAttribute("style", style);
this.popupOpen = true;
this._tmpSelected = this._selected;
if (this._selected) {
var el = this._selected.QueryInterface(Components.interfaces.nsIDOMElement);
if ("scrollIntoView" in el) {
el.scrollIntoView(false);
}
}
} else {
this.hidePopup();
return;
}
]]>
this.inputField.focus();
return true;
null
if (!this._anonymousItemSetContent) {
this._anonymousItemSetContent =
document.getAnonymousElementByAttribute(this, "anonid", "insertion");
}
return this._anonymousItemSetContent;
null
if (!this._content) {
this._content =
document.getAnonymousElementByAttribute(this, "anonid", "content");
}
return this._content;
// this.content is null if anonymous content hasn't been created yet.
var content = this.content;
if (content) {
content.scrollIntoView(aTop);
}
PK
A;3H"^ ^ content/xforms/select.xml
null
if (!this._uiElement) {
this._uiElement =
document.getAnonymousElementByAttribute(this, "anonid", "select");
}
return this._uiElement;
this.uiElement.selectedIndex = val;
nullfalse0new Array()null
0; i--) {
this.uiElement.removeChild(this.uiElement.childNodes[i-1]);
}
// create children
var child, option;
var childNodes = this.childNodes;
// these hold an array of generated HTML controls
this._controlArraySize = 0;
this._controlArray = new Array();
for (var i = 0; i < childNodes.length; i++) {
child = childNodes[i];
// we only care about element nodes in the XForms namespace.
if (child.nodeType == child.ELEMENT_NODE &&
child.namespaceURI == this.XFORMS_NS) {
if (child.localName == "item") {
// cache the item's label/value
var itemElement =
child.QueryInterface(Components.interfaces.nsIXFormsItemElement);
var value = itemElement.value;
var label = itemElement.labelText;
this._addSelectItem(label, value, child);
// check if we should pre-select this option
this.preselectItem(value);
} else if (child.localName == "choices") {
var optGroup = this._handleChoices(child);
this.uiElement.appendChild(optGroup);
} else if (child.localName == "itemset") {
var uiElement =
child.QueryInterface(Components.interfaces.nsIXFormsItemSetUIElement);
var containers = uiElement.anonymousItemSetContent.childNodes;
for (var y = 0; y < containers.length; y++) {
if (containers[y].nodeType == containers[y].ELEMENT_NODE) {
var value = this._addItemSetItem(containers[y]);
// check if we should pre-select this option
this.preselectItem(value);
}
}
}
}
}
// check if any default values were not found
for (var index in this._defaultHash) {
if (this._defaultHash[index].hits == 0) {
// XXX: some of default values not found, we need to throw an
// xforms-out-of-range event, but only if the select is 'closed'.
// If the select is open, the missing elements should be added
// and selected per 8.1.10 in the spec.
}
}
return true;
]]>
0) {
selectedValues += " ";
}
selectedValues +=
options[i].control.QueryInterface(Components.interfaces.nsIXFormsSelectChild).value;
}
}
return selectedValues;
]]>
null
PK
R"3uqK K content/xforms/bindingex.css.descr1 {
padding-bottom: 5px;
}
.descr2 {
font-size: 0.8em;
}PK
[D3 :! ! content/xforms/bindingex.xul
PK
[D3Z % locale/en-US/xforms/xforms.properties# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is Mozilla XForms Support.
#
# The Initial Developer of the Original Code is
# IBM Corporation.
# Portions created by the Initial Developer are Copyright (C) 2005
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
# Error Messages:
missingTypeName = XForms Error (1): type (%S) missing type name
schemaProcessError = XForms Error (2): Failed to process inline schema
schemaLoadError = XForms Error (3): Failed to load schema
instanceLoadError = XForms Error (4): Failed to load instance
mipParseError = XForms Error (5): Error while parsing model item property: %S
nodesetEvaluateError = XForms Error (6): Error evaluating nodeset expression: %S
multiMIPError = XForms Error (7): Multiple defined model item property on element
idRefError = XForms Error (8): id (%S) does not refer to a %S element
indexEvalError = XForms Error (9): Error evaluating index attribute: %S
exprParseError = XForms Error (10): Error parsing XPath expression: %S
exprEvaluateError = XForms Error (11): Error evaluating XPath expression: %S
noModelError = XForms Error (12): Could not find model for element
instanceParseError = XForms Error (13): Could not parse new instance data
submitSendOrigin = XForms Error (14): Security check failed! Trying to submit data to a different domain than document
instanceLoadOrigin = XForms Error (15): Security check failed! Trying to load instance data from a different domain than document
controlBindError = XForms Error (16): Could not bind control to instance data
labelLinkLoadOrigin = XForms Error (17): Security check failed! Trying to load label data from a different domain than document
labelLink1Error = XForms Error (18): External file (%S) for Label element not found
labelLink2Error = XForms Error (19): Failed to load Label element from external file: %S
invalidSeparator = XForms Error (20): Submission separator may only be either "&" or ";", but found "%S".
instanceBindError = XForms Error (21): Submission failed trying to replace instance document '%S'. Instance document doesn't exist in same model as submission element.
instanceInstanceLoad = XForms Error (22): Instance document trying to load external instance: %S
# XForms Permission Messages:
xformsXDPermissionDialogTitle = Allowed Sites - XForms Cross Domain Access
xformsXDPermissionDialogIntro = You can specify which web sites containing XForms may submit data to other domains. Type the exact address of the site you want to allow and then press Allow.
PK
R"3XM locale/en-US/xforms/xforms.dtd
PK
R"3.Y content/xforms/xforms.css@namespace url(http://www.w3.org/2002/xforms);
@namespace html url(http://www.w3.org/1999/xhtml);
@namespace mozType url(http://www.mozilla.org/projects/xforms/2005/type);
repeat,
repeatitem,
contextcontainer,
group,
switch,
case,
select1 item,
select1 itemset,
select1 choices {
display: block;
}
contextcontainer-inline {
display: inline;
}
select item,
select itemset,
select choices {
display: none;
}
message[level="ephemeral"], hint {
background-color: InfoBackground;
color: InfoText;
padding: 2px 3px;
font: message-box;
border: 1px black solid;
visibility: hidden !important;
position: absolute !important;
}
alert {
display: none;
}
output {
-moz-binding: url('chrome://xforms/content/xforms.xml#xformswidget-output');
}
input {
-moz-binding: url('chrome://xforms/content/xforms.xml#xformswidget-input');
}
input[mozType|type="http://www.w3.org/2001/XMLSchema#boolean"] {
-moz-binding: url('chrome://xforms/content/xforms.xml#xformswidget-input-boolean');
}
secret {
-moz-binding: url('chrome://xforms/content/xforms.xml#xformswidget-secret');
}
textarea {
-moz-binding: url('chrome://xforms/content/xforms.xml#xformswidget-textarea');
}
trigger, submit {
-moz-binding: url('chrome://xforms/content/xforms.xml#xformswidget-trigger');
}
trigger[appearance="minimal"], submit[appearance="minimal"] {
-moz-binding: url('chrome://xforms/content/xforms.xml#xformswidget-trigger-minimal');
}
trigger[appearance="minimal"]:hover, submit[appearance="minimal"]:hover {
cursor: pointer;
}
label {
-moz-binding: url('chrome://xforms/content/xforms.xml#xformswidget-label');
}
select1 {
-moz-binding: url('chrome://xforms/content/select1.xml#xformswidget-select1');
}
select1 itemset,
select itemset {
-moz-binding: url('chrome://xforms/content/select1.xml#xformswidget-itemset');
}
/* Most of the select1 specific CSS is copied from forms.css */
select1 item {
-moz-binding: url('chrome://xforms/content/select1.xml#xformswidget-select1-item');
white-space : nowrap;
}
html|input.-moz-xforms-select1-dropdown {
width: 12px;
height: 1.3em;
white-space: nowrap;
position: static !important;
background-image: url("data:image/gif;base64,R0lGODlhBwAEAIAAAAAAAP%2F%2F%2FyH5BAEAAAEALAAAAAAHAAQAAAIIhA%2BBGWoNWSgAOw%3D%3D") !important;
background-repeat: no-repeat !important;
background-position: center !important;
-moz-appearance: menulist-button;
-moz-user-select: none !important;
-moz-user-focus: ignore !important;
-moz-binding: none;
vertical-align: text-top;
margin: 0px !important;
margin-top: -1px !important;
}
html|input.-moz-xforms-select1-dropdown::-moz-focus-inner {
border: 0 !important;
}
html|input.-moz-xforms-select1-dropdown:active:hover {
border-style: outset;
}
html|input.-moz-xforms-select1-input {
border: 1px dotted transparent;
margin-right: 0px;
padding: 0px;
font: -moz-list;
-moz-box-sizing: border-box;
height: 1.3em;
line-height: normal !important;
}
html|input.-moz-xforms-select1-input:focus {
border: 1px dotted black;
}
html|span.-moz-select1-container {
margin: 0px;
margin-bottom: 1px;
border-color: ThreeDFace;
background-color: -moz-Field;
color: -moz-FieldText;
font: -moz-list;
line-height: normal !important;
white-space: nowrap !important;
text-align: start;
cursor: default;
-moz-box-sizing: border-box;
-moz-appearance: menulist;
border-style: inset;
text-indent: 0;
padding-right: 0px;
overflow: hidden;
border-width: 2px;
padding-bottom: 0px;
padding-top: 1px;
}
html|div.-moz-xforms-select1-popup {
border-width: 1px;
top: 0px;
left: 0px;
border: 1px outset black !important;
background-color: -moz-Field;
font: -moz-list;
text-align: start;
visibility: hidden;
overflow-y: auto;
overflow-x: hidden;
position: absolute;
-moz-user-select: none;
z-index: 2147482647;
cursor: default;
}
item[_moz_active] {
color: HighlightText;
background: Highlight;
}
choices > label {
display: block;
font: -moz-list;
line-height: normal !important;
font-style: italic;
font-weight: bold;
font-size: inherit;
-moz-user-select: none;
text-indent: 0;
}
choices > item, choices > itemset, choices > choices{
padding-left: 20px;
font-style: normal;
font-weight: normal;
}
case {
-moz-binding: url('chrome://xforms/content/xforms.xml#xformswidget-case');
}
case > html|div.-moz-xforms-case-container {
display: inherit;
}
/* select */
select {
-moz-binding: url('chrome://xforms/content/select.xml#xformswidget-select');
}
select[appearance="full"] {
-moz-binding: url('chrome://xforms/content/select.xml#xformswidget-select-full');
}
select html|div.select-choice-label {
font: -moz-list;
font-style: italic;
font-weight: bold;
}
select html|div.select-choice-content {
padding-left: 10px;
}
PK
K2xig g content/xforms/xforms-prefs.xul
PK
3wG " content/xforms/xforms-prefs-ui.xul
%xformsDTD;
%contentDTD;
]>
PK
K2qb content/xforms/xforms-prefs.js/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is Mozilla XForms Support.
*
* The Initial Developer of the Original Code is
* IBM Corportation.
* Portions created by the Initial Developer are Copyright (C) 2005
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
function loadXFormsPermission() {
var bundlePreferences = document.getElementById("bundlePreferences");
var params = {
blockVisible: false,
sessionVisible: false,
allowVisible: true,
prefilledHost: "",
permissionType: "xforms-xd"
};
// get the localized strings
var strbundle = document.getElementById("xforms-stringbundle");
params.windowTitle = strbundle.getString("xformsXDPermissionDialogTitle");
params.introText = strbundle.getString("xformsXDPermissionDialogIntro");
document.documentElement.openWindow("Browser:Permissions",
"chrome://browser/content/preferences/permissions.xul",
"", params);
}
var XFormsLoadObserver = {
observe: function (aSubject, aTopic, aData)
{
// overlay is loaded, initialize it
document.getElementById("xforms.crossdomain.enabled").updateElements();
}
}
function XFormsUIClass() {
}
XFormsUIClass.prototype.pageLoad = function(aEvent) {
var pane = document.getElementById("paneContent");
if (pane.loaded) {
xformsUI.loadOverlay();
} else {
pane.addEventListener("paneload", xformsUI.loadOverlay, false);
}
}
XFormsUIClass.prototype.loadOverlay = function() {
document.loadOverlay("chrome://xforms/content/xforms-prefs-ui.xul", XFormsLoadObserver);
}
var xformsUI = new XFormsUIClass();
window.addEventListener("load", xformsUI.pageLoad, false);
PK
$E~2d locale/en-US/xforms/contents.rdf
PK
K2( content/xforms/contents.rdfPK
[D3|s5 s5 content/xforms/xforms.xmlPK
[D3@Tb Tb > content/xforms/select1.xmlPK
A;3H"^ ^ B content/xforms/select.xmlPK
R"3uqK K content/xforms/bindingex.cssPK
[D3 :! ! content/xforms/bindingex.xulPK
[D3Z % m locale/en-US/xforms/xforms.propertiesPK
R"3XM locale/en-US/xforms/xforms.dtdPK
R"3.Y $ content/xforms/xforms.cssPK
K2xig g 8 content/xforms/xforms-prefs.xulPK
3wG " UB content/xforms/xforms-prefs-ui.xulPK
K2qb xO content/xforms/xforms-prefs.jsPK
$E~2d \ locale/en-US/xforms/contents.rdfPK
f PK
K2j chrome.manifestUT 2{B GCUx overlay chrome://browser/content/preferences/preferences.xul chrome://xforms/content/xforms-prefs.xul
content xforms jar:chrome/xforms.jar!/content/xforms/
locale xforms en-US jar:chrome/xforms.jar!/locale/en-US/xforms/
PK
{-H3 components/UT GC GCUx PK
{-H3m!
!
% components/nsSchemaValidatorRegexp.jsUT GC GCUx const kSERVICE_CONTRACTID = "@mozilla.org/xmlextras/schemas/schemavalidatorregexp;1";
const kSERVICE_CID = Components.ID("26d69f7e-f7cf-423d-afb9-43d8a9ebf3ba");
const nsISupports = Components.interfaces.nsISupports;
function nsSchemaValidatorRegexp()
{
}
nsSchemaValidatorRegexp.prototype.runRegexp = function(aString, aRegexpString, aModifierString) {
var rv = false;
// dump("\n String is: " + aString);
// dump("\n Regexp is: " + aRegexpString);
// dump("\n Modifier is: " + aModifierString);
var myRegExp = RegExp(aRegexpString, aModifierString);
if (aString.match(myRegExp)) {
rv = true;
}
return rv;
}
nsSchemaValidatorRegexp.prototype.QueryInterface = function(iid) {
if (!iid.equals(Components.interfaces.nsISchemaValidatorRegexp) &&
!iid.equals(Components.interfaces.nsISchemaValidator) &&
!iid.equals(nsISupports))
throw Components.results.NS_ERROR_NO_INTERFACE;
return this;
}
/**
* JS XPCOM component registration goop:
*
* We set ourselves up to observe the xpcom-startup category. This provides
* us with a starting point.
*/
var nsSchemaValidatorRegexpModule = new Object();
nsSchemaValidatorRegexpModule.registerSelf =
function (compMgr, fileSpec, location, type)
{
compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
compMgr.registerFactoryLocation(kSERVICE_CID,
"nsSchemaValidatorRegexp",
kSERVICE_CONTRACTID,
fileSpec,
location,
type);
}
nsSchemaValidatorRegexpModule.getClassObject =
function (compMgr, cid, iid)
{
if (!cid.equals(kSERVICE_CID))
throw Components.results.NS_ERROR_NO_INTERFACE;
if (!iid.equals(Components.interfaces.nsIFactory))
throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
return nsSchemaValidatorRegexpFactory;
}
nsSchemaValidatorRegexpModule.canUnload =
function (compMgr)
{
return true;
}
var nsSchemaValidatorRegexpFactory = new Object();
nsSchemaValidatorRegexpFactory.createInstance =
function (outer, iid)
{
if (outer != null)
throw Components.results.NS_ERROR_NO_AGGREGATION;
if (!iid.equals(Components.interfaces.nsISchemaValidatorRegexp) &&
!iid.equals(nsISupports))
throw Components.results.NS_ERROR_NO_INTERFACE;
return new nsSchemaValidatorRegexp();
}
function NSGetModule(compMgr, fileSpec)
{
return nsSchemaValidatorRegexpModule;
}
PK
{-H3PWL L components/schemavalidation.xptUT GC GCUx XPCOM
TypeLib
L " F &֟~B=Cة
&<!oN՛F dest G <"oN՛F dest Q s(AMk\< _ qϐ|ғ. _2 *Eu0F )