diff options
-rw-r--r-- | build.py | 9 | ||||
-rw-r--r-- | chrome/content/code/editRedirect.xul.js | 15 | ||||
-rw-r--r-- | components/interfaces/nsISupports.idl | 77 | ||||
-rw-r--r-- | components/interfaces/nsrootidl.idl | 128 | ||||
-rw-r--r-- | components/interfaces/rdIRedirect.idl | 8 | ||||
-rw-r--r-- | components/interfaces/rdIRedirector.idl | 9 | ||||
-rw-r--r-- | components/interfaces/xpidl.exe | bin | 0 -> 487424 bytes |
7 files changed, 245 insertions, 1 deletions
@@ -1,10 +1,17 @@ import os, os.path, zipfile
+os.chdir(r'components\interfaces')
+for f in os.listdir('.'):
+ print f
+ if f.startswith('rdI') and f.endswith('.idl'):
+ os.system(r'xpidl -m typelib -e ..\%s %s' % (f[:-3] + 'xpt',f))
+os.chdir(r'..\..')
+
xpi = zipfile.ZipFile('redirector-2.0.xpi','w')
for (root, folders, files) in os.walk('.'):
if not '.svn' in root:
for f in files:
- if not f.endswith(('.xpi', '.bat', '.py')):
+ if f.lower().endswith(('.rdf', '.manifest', '.js', '.xpt', '.png', '.css', '.dtd', '.properties', '.xul', '.html')):
xpi.write(os.path.join(root[2:],f))
xpi.close()
diff --git a/chrome/content/code/editRedirect.xul.js b/chrome/content/code/editRedirect.xul.js index 100a7a0..578f498 100644 --- a/chrome/content/code/editRedirect.xul.js +++ b/chrome/content/code/editRedirect.xul.js @@ -38,6 +38,21 @@ var EditRedirect = { var args = window.arguments[0];
args.saved = true;
this.saveValues(args.redirect);
+
+ var oldDisabled = args.redirect.disabled;
+ args.redirect.disabled = false;
+ if (!/^\s*$/.test(args.redirect.exampleUrl)) {
+ var result = args.redirect.getMatch(args.redirect.exampleUrl);
+ if (!result.isMatch) {
+ //TODO: warn about match
+ } else {
+ var resultUrl = '';
+ var secondResult = args.redirect.getMatch(resultUrl);
+ if (secondResult.isMatch) {
+ //TODO: Warn about recursive match...
+ }
+ }
+ }
return true;
},
diff --git a/components/interfaces/nsISupports.idl b/components/interfaces/nsISupports.idl new file mode 100644 index 0000000..b1127b4 --- /dev/null +++ b/components/interfaces/nsISupports.idl @@ -0,0 +1,77 @@ +/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* ***** 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.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either of 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 ***** */ + +/** + * The mother of all xpcom interfaces. + * @status FROZEN + */ + +/* In order to get both the right typelib and the right header we force +* the 'real' output from xpidl to be commented out in the generated header +* and includes a copy of the original nsISupports.h. This is all just to deal +* with the Mac specific ": public __comobject" thing. +*/ + +#include "nsrootidl.idl" + +%{C++ +/* + * Start commenting out the C++ versions of the below in the output header + */ +#if 0 +%} + +[scriptable, uuid(00000000-0000-0000-c000-000000000046)] +interface nsISupports { + void QueryInterface(in nsIIDRef uuid, + [iid_is(uuid),retval] out nsQIResult result); + [noscript, notxpcom] nsrefcnt AddRef(); + [noscript, notxpcom] nsrefcnt Release(); +}; + +%{C++ +/* + * End commenting out the C++ versions of the above in the output header + */ +#endif +%} + + +%{C++ +#include "nsISupportsBase.h" +#include "nsISupportsUtils.h" +%} diff --git a/components/interfaces/nsrootidl.idl b/components/interfaces/nsrootidl.idl new file mode 100644 index 0000000..0538e4b --- /dev/null +++ b/components/interfaces/nsrootidl.idl @@ -0,0 +1,128 @@ +/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* ***** 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.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Dan Rosen <dr@netscape.com> + * + * Alternatively, the contents of this file may be used under the terms of + * either of 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 ***** */ + +/** + * Root idl declarations to be used by all. + * @status FROZEN + */ + +%{C++ + +#include "nscore.h" +#include "prtime.h" + +/* + * Forward declarations for new string types + */ +class nsAString; +class nsACString; + +/* + * Start commenting out the C++ versions of the below in the output header + */ +#if 0 +%} + +typedef boolean PRBool ; +typedef octet PRUint8 ; +typedef unsigned short PRUint16 ; +typedef unsigned short PRUnichar; +typedef unsigned long PRUint32 ; +typedef unsigned long long PRUint64 ; +typedef unsigned long long PRTime ; +typedef short PRInt16 ; +typedef long PRInt32 ; +typedef long long PRInt64 ; + +typedef unsigned long nsrefcnt ; +typedef unsigned long nsresult ; + +// XXX need this built into xpidl compiler so that it's really size_t or PRSize +// and it's scriptable: +typedef unsigned long size_t; + +[ptr] native voidPtr(void); +[ptr] native charPtr(char); +[ptr] native unicharPtr(PRUnichar); + +[ref, nsid] native nsIDRef(nsID); +[ref, nsid] native nsIIDRef(nsIID); +[ref, nsid] native nsCIDRef(nsCID); + +[ptr, nsid] native nsIDPtr(nsID); +[ptr, nsid] native nsIIDPtr(nsIID); +[ptr, nsid] native nsCIDPtr(nsCID); + +// NOTE: Be careful in using the following 3 types. The *Ref and *Ptr variants +// are more commonly used (and better supported). Those variants require +// nsMemory alloc'd copies when used as 'out' params while these types do not. +// However, currently these types can not be used for 'in' params. And, methods +// that use them as 'out' params *must* be declared [notxpcom] (with an explicit +// return type of nsresult). This makes such methods implicitly not scriptable. +// Use of these types in methods without a [notxpcom] declaration will cause +// the xpidl compiler to raise an error. +// See: http://bugzilla.mozilla.org/show_bug.cgi?id=93792 + +[nsid] native nsIID(nsIID); +[nsid] native nsID(nsID); +[nsid] native nsCID(nsCID); + +[ptr] native nsQIResult(void); + +[ref, domstring] native DOMString(ignored); +[ref, domstring] native DOMStringRef(ignored); +[ptr, domstring] native DOMStringPtr(ignored); + +[ref, utf8string] native AUTF8String(ignored); +[ref, utf8string] native AUTF8StringRef(ignored); +[ptr, utf8string] native AUTF8StringPtr(ignored); + +[ref, cstring] native ACString(ignored); +[ref, cstring] native ACStringRef(ignored); +[ptr, cstring] native ACStringPtr(ignored); + +[ref, astring] native AString(ignored); +[ref, astring] native AStringRef(ignored); +[ptr, astring] native AStringPtr(ignored); + +%{C++ +/* + * End commenting out the C++ versions of the above in the output header + */ +#endif +%} diff --git a/components/interfaces/rdIRedirect.idl b/components/interfaces/rdIRedirect.idl new file mode 100644 index 0000000..e1d9d1b --- /dev/null +++ b/components/interfaces/rdIRedirect.idl @@ -0,0 +1,8 @@ +/* $Id */ +#include "nsISupports.idl" + +[scriptable, uuid(12300000-0000-0000-c000-000000000046)] +interface rdIRedirect { + void test(); +}; + diff --git a/components/interfaces/rdIRedirector.idl b/components/interfaces/rdIRedirector.idl new file mode 100644 index 0000000..b36d133 --- /dev/null +++ b/components/interfaces/rdIRedirector.idl @@ -0,0 +1,9 @@ +/* $Id */ +#include "nsISupports.idl" +#include "rdIRedirect.idl" + +[scriptable, uuid(12300000-0000-0000-c000-000000000046)] +interface rdIRedirector { + void test(); +}; + diff --git a/components/interfaces/xpidl.exe b/components/interfaces/xpidl.exe Binary files differnew file mode 100644 index 0000000..cb39712 --- /dev/null +++ b/components/interfaces/xpidl.exe |