johnson 1.2.0 → 2.0.0.pre0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.rdoc +8 -0
- data/Manifest.txt +762 -48
- data/README.rdoc +2 -1
- data/Rakefile +90 -18
- data/ext/spidermonkey/conversions.c +9 -2
- data/ext/spidermonkey/ruby_land_proxy.c +1 -1
- data/ext/spidermonkey/runtime.h +1 -1
- data/ext/tracemonkey/context.cc +125 -0
- data/ext/tracemonkey/context.h +19 -0
- data/ext/tracemonkey/conversions.cc +365 -0
- data/ext/tracemonkey/conversions.h +32 -0
- data/ext/tracemonkey/debugger.cc +234 -0
- data/ext/tracemonkey/debugger.h +10 -0
- data/ext/tracemonkey/extconf.rb +37 -0
- data/ext/tracemonkey/extensions.cc +37 -0
- data/ext/tracemonkey/extensions.h +12 -0
- data/ext/tracemonkey/global.cc +40 -0
- data/ext/tracemonkey/global.h +11 -0
- data/ext/tracemonkey/idhash.cc +16 -0
- data/ext/tracemonkey/idhash.h +8 -0
- data/ext/tracemonkey/immutable_node.cc +1199 -0
- data/ext/tracemonkey/immutable_node.cc.erb +559 -0
- data/ext/tracemonkey/immutable_node.h +22 -0
- data/ext/tracemonkey/jroot.h +215 -0
- data/ext/tracemonkey/js_land_proxy.cc +620 -0
- data/ext/tracemonkey/js_land_proxy.h +20 -0
- data/ext/tracemonkey/ruby_land_proxy.cc +618 -0
- data/ext/tracemonkey/ruby_land_proxy.h +38 -0
- data/ext/tracemonkey/runtime.cc +454 -0
- data/ext/tracemonkey/runtime.h +27 -0
- data/ext/tracemonkey/split_global.cc +392 -0
- data/ext/tracemonkey/split_global.h +11 -0
- data/ext/tracemonkey/tracemonkey.cc +23 -0
- data/ext/tracemonkey/tracemonkey.h +32 -0
- data/lib/johnson.rb +12 -4
- data/lib/johnson/error.rb +5 -0
- data/lib/johnson/js/prelude.js +16 -1
- data/lib/johnson/parser.rb +2 -1
- data/lib/johnson/runtime.rb +87 -26
- data/lib/johnson/spidermonkey/runtime.rb +7 -16
- data/lib/johnson/tracemonkey.rb +13 -0
- data/lib/johnson/tracemonkey/context.rb +10 -0
- data/lib/johnson/tracemonkey/debugger.rb +67 -0
- data/lib/johnson/tracemonkey/immutable_node.rb +282 -0
- data/lib/johnson/tracemonkey/js_land_proxy.rb +64 -0
- data/lib/johnson/tracemonkey/mutable_tree_visitor.rb +242 -0
- data/lib/johnson/tracemonkey/ruby_land_proxy.rb +17 -0
- data/lib/johnson/tracemonkey/runtime.rb +80 -0
- data/test/{johnson_test.rb → generic/johnson_test.rb} +1 -1
- data/test/{parser_test.rb → generic/parser_test.rb} +1 -1
- data/test/helper.rb +23 -4
- data/test/johnson/{browser_test.rb → generic/browser_test.rb} +1 -1
- data/test/johnson/{conversions → generic/conversions}/array_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/boolean_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/callable_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/file_test.rb +1 -1
- data/test/johnson/generic/conversions/helper.rb +1 -0
- data/test/johnson/{conversions → generic/conversions}/nil_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/number_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/regexp_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/string_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/struct_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/symbol_test.rb +1 -1
- data/test/johnson/{conversions → generic/conversions}/thread_test.rb +1 -1
- data/test/johnson/{custom_conversions_test.rb → generic/custom_conversions_test.rb} +1 -1
- data/test/johnson/generic/default_test.rb +12 -0
- data/test/johnson/{error_test.rb → generic/error_test.rb} +1 -1
- data/test/johnson/{extensions_test.rb → generic/extensions_test.rb} +1 -1
- data/test/johnson/generic/helper.rb +1 -0
- data/test/johnson/{nodes → generic/nodes}/array_literal_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/array_node_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/binary_node_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/bracket_access_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/delete_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/do_while_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/dot_accessor_test.rb +1 -1
- data/test/johnson/generic/nodes/export_test.rb +11 -0
- data/test/johnson/{nodes → generic/nodes}/for_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/function_test.rb +1 -1
- data/test/johnson/generic/nodes/helper.rb +1 -0
- data/test/johnson/{nodes → generic/nodes}/if_test.rb +16 -6
- data/test/johnson/generic/nodes/import_test.rb +15 -0
- data/test/johnson/{nodes → generic/nodes}/label_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/let_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/object_literal_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/return_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/semi_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/switch_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/ternary_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/throw_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/try_node_test.rb +36 -6
- data/test/johnson/{nodes → generic/nodes}/typeof_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/unary_node_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/void_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/while_test.rb +1 -1
- data/test/johnson/{nodes → generic/nodes}/with_test.rb +1 -1
- data/test/johnson/{prelude_test.rb → generic/prelude_test.rb} +1 -1
- data/test/johnson/{runtime_test.rb → generic/runtime_test.rb} +3 -6
- data/test/johnson/generic/version_test.rb +13 -0
- data/test/johnson/{visitors → generic/visitors}/dot_visitor_test.rb +1 -1
- data/test/johnson/{visitors → generic/visitors}/enumerating_visitor_test.rb +1 -1
- data/test/johnson/generic/visitors/helper.rb +1 -0
- data/test/johnson/spidermonkey/js_land_proxy_test.rb +1 -5
- data/test/johnson/spidermonkey/ruby_land_proxy_test.rb +11 -7
- data/test/johnson/tracemonkey/context_test.rb +21 -0
- data/test/johnson/tracemonkey/immutable_node_test.rb +34 -0
- data/test/johnson/tracemonkey/js_land_proxy_test.rb +273 -0
- data/test/johnson/tracemonkey/ruby_land_proxy_test.rb +274 -0
- data/test/johnson/tracemonkey/runtime_test.rb +41 -0
- data/test/johnson/tracemonkey/split_global_test.rb +32 -0
- data/vendor/spidermonkey/js.pkg +2 -0
- data/vendor/tracemonkey/Makefile.in +668 -0
- data/vendor/tracemonkey/Makefile.ref +483 -0
- data/vendor/tracemonkey/README.html +54 -0
- data/vendor/tracemonkey/SpiderMonkey.rsp +11 -0
- data/vendor/tracemonkey/Y.js +19 -0
- data/vendor/tracemonkey/aclocal.m4 +9 -0
- data/vendor/tracemonkey/bench.sh +5 -0
- data/vendor/tracemonkey/build/autoconf/acoutput-fast.pl +202 -0
- data/vendor/tracemonkey/build/autoconf/altoptions.m4 +154 -0
- data/vendor/tracemonkey/build/autoconf/config.guess +1537 -0
- data/vendor/tracemonkey/build/autoconf/config.sub +1595 -0
- data/vendor/tracemonkey/build/autoconf/install-sh +119 -0
- data/vendor/tracemonkey/build/autoconf/make-makefile +315 -0
- data/vendor/tracemonkey/build/autoconf/match-dir.sh +101 -0
- data/vendor/tracemonkey/build/autoconf/moznbytetype.m4 +136 -0
- data/vendor/tracemonkey/build/autoconf/nspr.m4 +82 -0
- data/vendor/tracemonkey/build/autoconf/pkg.m4 +59 -0
- data/vendor/tracemonkey/build/autoconf/update-makefile.sh +118 -0
- data/vendor/tracemonkey/build/cygwin-wrapper +75 -0
- data/vendor/tracemonkey/build/hcc +111 -0
- data/vendor/tracemonkey/build/hcpp +155 -0
- data/vendor/tracemonkey/build/unix/mddepend.pl +165 -0
- data/vendor/tracemonkey/build/unix/uniq.pl +63 -0
- data/vendor/tracemonkey/build/win32/pgomerge.py +40 -0
- data/vendor/tracemonkey/builtins.tbl +91 -0
- data/vendor/tracemonkey/call.js +13 -0
- data/vendor/tracemonkey/config.mk +206 -0
- data/vendor/tracemonkey/config/Makefile.in +106 -0
- data/vendor/tracemonkey/config/Moz/Milestone.pm +232 -0
- data/vendor/tracemonkey/config/autoconf.mk.in +362 -0
- data/vendor/tracemonkey/config/check-sync-dirs.py +103 -0
- data/vendor/tracemonkey/config/check-sync-exceptions +7 -0
- data/vendor/tracemonkey/config/config.mk +881 -0
- data/vendor/tracemonkey/config/fastcwd.pl +66 -0
- data/vendor/tracemonkey/config/gcc_hidden.h +2 -0
- data/vendor/tracemonkey/config/insure.mk +53 -0
- data/vendor/tracemonkey/config/make-system-wrappers.pl +59 -0
- data/vendor/tracemonkey/config/milestone.pl +112 -0
- data/vendor/tracemonkey/config/milestone.txt +13 -0
- data/vendor/tracemonkey/config/mkdepend/Makefile.in +84 -0
- data/vendor/tracemonkey/config/mkdepend/cppsetup.c +233 -0
- data/vendor/tracemonkey/config/mkdepend/def.h +184 -0
- data/vendor/tracemonkey/config/mkdepend/ifparser.c +551 -0
- data/vendor/tracemonkey/config/mkdepend/ifparser.h +83 -0
- data/vendor/tracemonkey/config/mkdepend/imakemdep.h +733 -0
- data/vendor/tracemonkey/config/mkdepend/include.c +337 -0
- data/vendor/tracemonkey/config/mkdepend/main.c +860 -0
- data/vendor/tracemonkey/config/mkdepend/mkdepend.man +382 -0
- data/vendor/tracemonkey/config/mkdepend/parse.c +686 -0
- data/vendor/tracemonkey/config/mkdepend/pr.c +124 -0
- data/vendor/tracemonkey/config/nfspwd.pl +50 -0
- data/vendor/tracemonkey/config/nsinstall.c +481 -0
- data/vendor/tracemonkey/config/nsinstall.py +155 -0
- data/vendor/tracemonkey/config/pathsub.c +247 -0
- data/vendor/tracemonkey/config/pathsub.h +74 -0
- data/vendor/tracemonkey/config/preprocessor.pl +671 -0
- data/vendor/tracemonkey/config/revdepth-nt.pl +48 -0
- data/vendor/tracemonkey/config/revdepth.pl +51 -0
- data/vendor/tracemonkey/config/rules.mk +2310 -0
- data/vendor/tracemonkey/config/static-checking-config.mk +21 -0
- data/vendor/tracemonkey/config/static-checking.js +92 -0
- data/vendor/tracemonkey/config/string-format.js +61 -0
- data/vendor/tracemonkey/config/system-headers +1035 -0
- data/vendor/tracemonkey/config/version.mk +85 -0
- data/vendor/tracemonkey/config/version_win.pl +442 -0
- data/vendor/tracemonkey/configure +14183 -0
- data/vendor/tracemonkey/configure.in +5363 -0
- data/vendor/tracemonkey/correct.sh +23 -0
- data/vendor/tracemonkey/correct/check-3d-morph.js +55 -0
- data/vendor/tracemonkey/correct/check-3d-raytrace.js +445 -0
- data/vendor/tracemonkey/correct/check-access-binary-trees.js +52 -0
- data/vendor/tracemonkey/correct/check-access-fannkuch.js +66 -0
- data/vendor/tracemonkey/correct/check-access-nbody.js +171 -0
- data/vendor/tracemonkey/correct/check-access-nsieve.js +40 -0
- data/vendor/tracemonkey/correct/check-bitops-3bit-bits-in-byte.js +35 -0
- data/vendor/tracemonkey/correct/check-bitops-bits-in-byte.js +24 -0
- data/vendor/tracemonkey/correct/check-bitops-bitwise-and.js +29 -0
- data/vendor/tracemonkey/correct/check-bitops-nsieve-bits.js +40 -0
- data/vendor/tracemonkey/correct/check-controlflow-recursive.js +27 -0
- data/vendor/tracemonkey/correct/check-date-format-tofte.js +302 -0
- data/vendor/tracemonkey/correct/check-date-format-xparb.js +421 -0
- data/vendor/tracemonkey/correct/check-mont.js +119 -0
- data/vendor/tracemonkey/dtoa.c +3335 -0
- data/vendor/tracemonkey/editline/Makefile.in +55 -0
- data/vendor/tracemonkey/editline/Makefile.ref +143 -0
- data/vendor/tracemonkey/editline/README +83 -0
- data/vendor/tracemonkey/editline/editline.3 +175 -0
- data/vendor/tracemonkey/editline/editline.c +1371 -0
- data/vendor/tracemonkey/editline/editline.h +135 -0
- data/vendor/tracemonkey/editline/sysunix.c +182 -0
- data/vendor/tracemonkey/editline/unix.h +82 -0
- data/vendor/tracemonkey/if.js +13 -0
- data/vendor/tracemonkey/imacro_asm.js.in +396 -0
- data/vendor/tracemonkey/imacros.c.out +1034 -0
- data/vendor/tracemonkey/imacros.jsasm +770 -0
- data/vendor/tracemonkey/javascript-trace.d +73 -0
- data/vendor/tracemonkey/jitstats.tbl +55 -0
- data/vendor/tracemonkey/js-config.h.in +82 -0
- data/vendor/tracemonkey/js-config.in +111 -0
- data/vendor/tracemonkey/js.mdp +0 -0
- data/vendor/tracemonkey/js.msg +312 -0
- data/vendor/tracemonkey/js3240.rc +79 -0
- data/vendor/tracemonkey/jsOS240.def +654 -0
- data/vendor/tracemonkey/jsapi.cpp +6005 -0
- data/vendor/tracemonkey/jsapi.h +2727 -0
- data/vendor/tracemonkey/jsarena.cpp +450 -0
- data/vendor/tracemonkey/jsarena.h +318 -0
- data/vendor/tracemonkey/jsarray.cpp +3664 -0
- data/vendor/tracemonkey/jsarray.h +238 -0
- data/vendor/tracemonkey/jsatom.cpp +1244 -0
- data/vendor/tracemonkey/jsatom.h +493 -0
- data/vendor/tracemonkey/jsbit.h +249 -0
- data/vendor/tracemonkey/jsbool.cpp +184 -0
- data/vendor/tracemonkey/jsbool.h +88 -0
- data/vendor/tracemonkey/jsbuiltins.cpp +415 -0
- data/vendor/tracemonkey/jsbuiltins.h +456 -0
- data/vendor/tracemonkey/jsclist.h +139 -0
- data/vendor/tracemonkey/jscntxt.cpp +1816 -0
- data/vendor/tracemonkey/jscntxt.h +1541 -0
- data/vendor/tracemonkey/jscompat.h +57 -0
- data/vendor/tracemonkey/jsconfig.mk +181 -0
- data/vendor/tracemonkey/jscpucfg.cpp +194 -0
- data/vendor/tracemonkey/jscpucfg.h +91 -0
- data/vendor/tracemonkey/jsdate.cpp +2465 -0
- data/vendor/tracemonkey/jsdate.h +129 -0
- data/vendor/tracemonkey/jsdbgapi.cpp +2017 -0
- data/vendor/tracemonkey/jsdbgapi.h +500 -0
- data/vendor/tracemonkey/jsdhash.cpp +876 -0
- data/vendor/tracemonkey/jsdhash.h +588 -0
- data/vendor/tracemonkey/jsdtoa.cpp +572 -0
- data/vendor/tracemonkey/jsdtoa.h +131 -0
- data/vendor/tracemonkey/jsdtracef.c +318 -0
- data/vendor/tracemonkey/jsdtracef.h +81 -0
- data/vendor/tracemonkey/jsemit.cpp +7292 -0
- data/vendor/tracemonkey/jsemit.h +802 -0
- data/vendor/tracemonkey/jsexn.cpp +1337 -0
- data/vendor/tracemonkey/jsexn.h +96 -0
- data/vendor/tracemonkey/jsfile.cpp +2747 -0
- data/vendor/tracemonkey/jsfile.h +56 -0
- data/vendor/tracemonkey/jsfile.msg +90 -0
- data/vendor/tracemonkey/jsfun.cpp +3089 -0
- data/vendor/tracemonkey/jsfun.h +366 -0
- data/vendor/tracemonkey/jsgc.cpp +3816 -0
- data/vendor/tracemonkey/jsgc.h +429 -0
- data/vendor/tracemonkey/jshash.cpp +477 -0
- data/vendor/tracemonkey/jshash.h +151 -0
- data/vendor/tracemonkey/jsify.pl +483 -0
- data/vendor/tracemonkey/jsinterp.cpp +7441 -0
- data/vendor/tracemonkey/jsinterp.h +666 -0
- data/vendor/tracemonkey/jsinvoke.cpp +42 -0
- data/vendor/tracemonkey/jsiter.cpp +1040 -0
- data/vendor/tracemonkey/jsiter.h +140 -0
- data/vendor/tracemonkey/jskeyword.tbl +124 -0
- data/vendor/tracemonkey/jskwgen.cpp +460 -0
- data/vendor/tracemonkey/jslibmath.h +69 -0
- data/vendor/tracemonkey/jslock.cpp +1512 -0
- data/vendor/tracemonkey/jslock.h +325 -0
- data/vendor/tracemonkey/jslocko.asm +60 -0
- data/vendor/tracemonkey/jslog2.cpp +111 -0
- data/vendor/tracemonkey/jslong.h +167 -0
- data/vendor/tracemonkey/jsmath.cpp +806 -0
- data/vendor/tracemonkey/jsmath.h +63 -0
- data/vendor/tracemonkey/jsnum.cpp +1374 -0
- data/vendor/tracemonkey/jsnum.h +280 -0
- data/vendor/tracemonkey/jsobj.cpp +6165 -0
- data/vendor/tracemonkey/jsobj.h +870 -0
- data/vendor/tracemonkey/json.cpp +1338 -0
- data/vendor/tracemonkey/json.h +108 -0
- data/vendor/tracemonkey/jsopcode.cpp +5484 -0
- data/vendor/tracemonkey/jsopcode.h +434 -0
- data/vendor/tracemonkey/jsopcode.tbl +591 -0
- data/vendor/tracemonkey/jsoplengen.cpp +121 -0
- data/vendor/tracemonkey/jsotypes.h +202 -0
- data/vendor/tracemonkey/jsparse.cpp +9257 -0
- data/vendor/tracemonkey/jsparse.h +900 -0
- data/vendor/tracemonkey/jsprf.cpp +1262 -0
- data/vendor/tracemonkey/jsprf.h +150 -0
- data/vendor/tracemonkey/jsproto.tbl +117 -0
- data/vendor/tracemonkey/jsprvtd.h +366 -0
- data/vendor/tracemonkey/jspubtd.h +585 -0
- data/vendor/tracemonkey/jsregexp.cpp +5051 -0
- data/vendor/tracemonkey/jsregexp.h +199 -0
- data/vendor/tracemonkey/jsreops.tbl +145 -0
- data/vendor/tracemonkey/jsscan.cpp +2040 -0
- data/vendor/tracemonkey/jsscan.h +467 -0
- data/vendor/tracemonkey/jsscope.cpp +1966 -0
- data/vendor/tracemonkey/jsscope.h +487 -0
- data/vendor/tracemonkey/jsscript.cpp +1932 -0
- data/vendor/tracemonkey/jsscript.h +345 -0
- data/vendor/tracemonkey/jsshell.msg +54 -0
- data/vendor/tracemonkey/jsstack.js +167 -0
- data/vendor/tracemonkey/jsstaticcheck.h +69 -0
- data/vendor/tracemonkey/jsstddef.h +87 -0
- data/vendor/tracemonkey/jsstdint.h +96 -0
- data/vendor/tracemonkey/jsstr.cpp +5277 -0
- data/vendor/tracemonkey/jsstr.h +702 -0
- data/vendor/tracemonkey/jstracer.cpp +10991 -0
- data/vendor/tracemonkey/jstracer.h +794 -0
- data/vendor/tracemonkey/jstypes.h +481 -0
- data/vendor/tracemonkey/jsutil.cpp +361 -0
- data/vendor/tracemonkey/jsutil.h +178 -0
- data/vendor/tracemonkey/jsversion.h +243 -0
- data/vendor/tracemonkey/jswince.asm +44 -0
- data/vendor/tracemonkey/jsxdrapi.cpp +800 -0
- data/vendor/tracemonkey/jsxdrapi.h +220 -0
- data/vendor/tracemonkey/jsxml.cpp +8327 -0
- data/vendor/tracemonkey/jsxml.h +305 -0
- data/vendor/tracemonkey/liveconnect/LiveConnect.dsp +157 -0
- data/vendor/tracemonkey/liveconnect/LiveConnectShell.dsp +120 -0
- data/vendor/tracemonkey/liveconnect/LiveConnectShell.dsw +44 -0
- data/vendor/tracemonkey/liveconnect/Makefile.in +105 -0
- data/vendor/tracemonkey/liveconnect/Makefile.ref +169 -0
- data/vendor/tracemonkey/liveconnect/README.html +712 -0
- data/vendor/tracemonkey/liveconnect/_jni/netscape_javascript_JSException.h +14 -0
- data/vendor/tracemonkey/liveconnect/_jni/netscape_javascript_JSObject.h +155 -0
- data/vendor/tracemonkey/liveconnect/classes/Makefile.in +89 -0
- data/vendor/tracemonkey/liveconnect/classes/Makefile.ref +57 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/Makefile.ref +47 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSException.java +140 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSObject.java +183 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSProxy.java +58 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSRunnable.java +70 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSUtil.java +59 -0
- data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/Makefile.ref +53 -0
- data/vendor/tracemonkey/liveconnect/config/AIX4.1.mk +45 -0
- data/vendor/tracemonkey/liveconnect/config/AIX4.2.mk +45 -0
- data/vendor/tracemonkey/liveconnect/config/AIX4.3.mk +50 -0
- data/vendor/tracemonkey/liveconnect/config/HP-UXB.10.10.mk +43 -0
- data/vendor/tracemonkey/liveconnect/config/HP-UXB.10.20.mk +43 -0
- data/vendor/tracemonkey/liveconnect/config/HP-UXB.11.00.mk +43 -0
- data/vendor/tracemonkey/liveconnect/config/IRIX6.2.mk +43 -0
- data/vendor/tracemonkey/liveconnect/config/IRIX6.3.mk +43 -0
- data/vendor/tracemonkey/liveconnect/config/IRIX6.5.mk +43 -0
- data/vendor/tracemonkey/liveconnect/config/Linux_All.mk +73 -0
- data/vendor/tracemonkey/liveconnect/config/OSF1V4.0.mk +65 -0
- data/vendor/tracemonkey/liveconnect/config/OSF1V5.0.mk +62 -0
- data/vendor/tracemonkey/liveconnect/config/SunOS5.5.1.mk +55 -0
- data/vendor/tracemonkey/liveconnect/config/SunOS5.6.mk +39 -0
- data/vendor/tracemonkey/liveconnect/config/SunOS5.7.mk +39 -0
- data/vendor/tracemonkey/liveconnect/config/SunOS5.8.mk +39 -0
- data/vendor/tracemonkey/liveconnect/config/WINNT4.0.mk +53 -0
- data/vendor/tracemonkey/liveconnect/jsj.c +886 -0
- data/vendor/tracemonkey/liveconnect/jsj.msg +98 -0
- data/vendor/tracemonkey/liveconnect/jsj_JSObject.c +1377 -0
- data/vendor/tracemonkey/liveconnect/jsj_JavaArray.c +474 -0
- data/vendor/tracemonkey/liveconnect/jsj_JavaClass.c +737 -0
- data/vendor/tracemonkey/liveconnect/jsj_JavaMember.c +191 -0
- data/vendor/tracemonkey/liveconnect/jsj_JavaObject.c +1079 -0
- data/vendor/tracemonkey/liveconnect/jsj_JavaPackage.c +569 -0
- data/vendor/tracemonkey/liveconnect/jsj_array.c +207 -0
- data/vendor/tracemonkey/liveconnect/jsj_class.c +770 -0
- data/vendor/tracemonkey/liveconnect/jsj_convert.c +902 -0
- data/vendor/tracemonkey/liveconnect/jsj_field.c +421 -0
- data/vendor/tracemonkey/liveconnect/jsj_hash.c +488 -0
- data/vendor/tracemonkey/liveconnect/jsj_hash.h +161 -0
- data/vendor/tracemonkey/liveconnect/jsj_method.c +1825 -0
- data/vendor/tracemonkey/liveconnect/jsj_nodl.c +1 -0
- data/vendor/tracemonkey/liveconnect/jsj_private.h +677 -0
- data/vendor/tracemonkey/liveconnect/jsj_simpleapi.c +219 -0
- data/vendor/tracemonkey/liveconnect/jsj_utils.c +513 -0
- data/vendor/tracemonkey/liveconnect/jsjava.h +316 -0
- data/vendor/tracemonkey/liveconnect/netscape_javascript_JSObject.h +155 -0
- data/vendor/tracemonkey/liveconnect/nsCLiveconnect.cpp +785 -0
- data/vendor/tracemonkey/liveconnect/nsCLiveconnect.h +197 -0
- data/vendor/tracemonkey/liveconnect/nsCLiveconnectFactory.cpp +118 -0
- data/vendor/tracemonkey/liveconnect/nsCLiveconnectFactory.h +76 -0
- data/vendor/tracemonkey/liveconnect/nsILiveconnect.h +197 -0
- data/vendor/tracemonkey/liveconnect/nsISecureLiveconnect.h +94 -0
- data/vendor/tracemonkey/liveconnect/nsISecurityContext.h +136 -0
- data/vendor/tracemonkey/lock_SunOS.s +119 -0
- data/vendor/tracemonkey/mandelbrot-results.js +3 -0
- data/vendor/tracemonkey/math-partial-sums.js +32 -0
- data/vendor/tracemonkey/math-trace-tests.js +507 -0
- data/vendor/tracemonkey/md5.js +289 -0
- data/vendor/tracemonkey/nanojit/Assembler.cpp +1984 -0
- data/vendor/tracemonkey/nanojit/Assembler.h +375 -0
- data/vendor/tracemonkey/nanojit/Fragmento.cpp +651 -0
- data/vendor/tracemonkey/nanojit/Fragmento.h +237 -0
- data/vendor/tracemonkey/nanojit/LIR.cpp +2314 -0
- data/vendor/tracemonkey/nanojit/LIR.h +879 -0
- data/vendor/tracemonkey/nanojit/LIRopcode.tbl +252 -0
- data/vendor/tracemonkey/nanojit/Native.h +127 -0
- data/vendor/tracemonkey/nanojit/NativeARM.cpp +1742 -0
- data/vendor/tracemonkey/nanojit/NativeARM.h +844 -0
- data/vendor/tracemonkey/nanojit/NativeSparc.cpp +1130 -0
- data/vendor/tracemonkey/nanojit/NativeSparc.h +948 -0
- data/vendor/tracemonkey/nanojit/NativeThumb.cpp +1322 -0
- data/vendor/tracemonkey/nanojit/NativeThumb.h +525 -0
- data/vendor/tracemonkey/nanojit/Nativei386.cpp +1748 -0
- data/vendor/tracemonkey/nanojit/Nativei386.h +857 -0
- data/vendor/tracemonkey/nanojit/RegAlloc.cpp +183 -0
- data/vendor/tracemonkey/nanojit/RegAlloc.h +95 -0
- data/vendor/tracemonkey/nanojit/TraceTreeDrawer.cpp +306 -0
- data/vendor/tracemonkey/nanojit/TraceTreeDrawer.h +88 -0
- data/vendor/tracemonkey/nanojit/avmplus.cpp +56 -0
- data/vendor/tracemonkey/nanojit/avmplus.h +1016 -0
- data/vendor/tracemonkey/nanojit/nanojit.h +253 -0
- data/vendor/tracemonkey/perfect.js +39 -0
- data/vendor/tracemonkey/plify_jsdhash.sed +35 -0
- data/vendor/tracemonkey/prmjtime.cpp +869 -0
- data/vendor/tracemonkey/prmjtime.h +103 -0
- data/vendor/tracemonkey/ref-config/AIX4.1.mk +65 -0
- data/vendor/tracemonkey/ref-config/AIX4.2.mk +64 -0
- data/vendor/tracemonkey/ref-config/AIX4.3.mk +65 -0
- data/vendor/tracemonkey/ref-config/Darwin.mk +85 -0
- data/vendor/tracemonkey/ref-config/Darwin1.3.mk +81 -0
- data/vendor/tracemonkey/ref-config/Darwin1.4.mk +41 -0
- data/vendor/tracemonkey/ref-config/Darwin5.2.mk +81 -0
- data/vendor/tracemonkey/ref-config/Darwin5.3.mk +81 -0
- data/vendor/tracemonkey/ref-config/Darwin64.mk +72 -0
- data/vendor/tracemonkey/ref-config/HP-UXB.10.10.mk +77 -0
- data/vendor/tracemonkey/ref-config/HP-UXB.10.20.mk +77 -0
- data/vendor/tracemonkey/ref-config/HP-UXB.11.00.mk +80 -0
- data/vendor/tracemonkey/ref-config/IRIX.mk +87 -0
- data/vendor/tracemonkey/ref-config/IRIX5.3.mk +44 -0
- data/vendor/tracemonkey/ref-config/IRIX6.1.mk +44 -0
- data/vendor/tracemonkey/ref-config/IRIX6.2.mk +44 -0
- data/vendor/tracemonkey/ref-config/IRIX6.3.mk +44 -0
- data/vendor/tracemonkey/ref-config/IRIX6.5.mk +44 -0
- data/vendor/tracemonkey/ref-config/Linux_All.mk +105 -0
- data/vendor/tracemonkey/ref-config/Mac_OS10.0.mk +82 -0
- data/vendor/tracemonkey/ref-config/OSF1V4.0.mk +72 -0
- data/vendor/tracemonkey/ref-config/OSF1V5.0.mk +69 -0
- data/vendor/tracemonkey/ref-config/SunOS4.1.4.mk +101 -0
- data/vendor/tracemonkey/ref-config/SunOS5.10.mk +50 -0
- data/vendor/tracemonkey/ref-config/SunOS5.3.mk +91 -0
- data/vendor/tracemonkey/ref-config/SunOS5.4.mk +92 -0
- data/vendor/tracemonkey/ref-config/SunOS5.5.1.mk +44 -0
- data/vendor/tracemonkey/ref-config/SunOS5.5.mk +87 -0
- data/vendor/tracemonkey/ref-config/SunOS5.6.mk +89 -0
- data/vendor/tracemonkey/ref-config/SunOS5.7.mk +44 -0
- data/vendor/tracemonkey/ref-config/SunOS5.8.mk +44 -0
- data/vendor/tracemonkey/ref-config/SunOS5.9.mk +44 -0
- data/vendor/tracemonkey/ref-config/WINNT4.0.mk +118 -0
- data/vendor/tracemonkey/ref-config/WINNT5.0.mk +118 -0
- data/vendor/tracemonkey/ref-config/WINNT5.1.mk +118 -0
- data/vendor/tracemonkey/ref-config/WINNT5.2.mk +118 -0
- data/vendor/tracemonkey/ref-config/WINNT6.0.mk +118 -0
- data/vendor/tracemonkey/ref-config/dgux.mk +64 -0
- data/vendor/tracemonkey/resource.h +15 -0
- data/vendor/tracemonkey/rules.mk +206 -0
- data/vendor/tracemonkey/shell/Makefile.in +72 -0
- data/vendor/tracemonkey/shell/js.cpp +4719 -0
- data/vendor/tracemonkey/t/3d-cube.js +337 -0
- data/vendor/tracemonkey/t/3d-morph.js +54 -0
- data/vendor/tracemonkey/t/3d-raytrace.js +441 -0
- data/vendor/tracemonkey/t/access-binary-trees.js +50 -0
- data/vendor/tracemonkey/t/access-fannkuch.js +66 -0
- data/vendor/tracemonkey/t/access-nbody.js +169 -0
- data/vendor/tracemonkey/t/access-nsieve.js +38 -0
- data/vendor/tracemonkey/t/bitops-3bit-bits-in-byte.js +32 -0
- data/vendor/tracemonkey/t/bitops-bits-in-byte.js +21 -0
- data/vendor/tracemonkey/t/bitops-bitwise-and.js +28 -0
- data/vendor/tracemonkey/t/bitops-nsieve-bits.js +32 -0
- data/vendor/tracemonkey/t/controlflow-recursive.js +25 -0
- data/vendor/tracemonkey/t/crypto-aes.js +422 -0
- data/vendor/tracemonkey/t/crypto-md5.js +286 -0
- data/vendor/tracemonkey/t/crypto-sha1.js +224 -0
- data/vendor/tracemonkey/t/date-format-tofte.js +299 -0
- data/vendor/tracemonkey/t/date-format-xparb.js +417 -0
- data/vendor/tracemonkey/t/math-cordic.js +95 -0
- data/vendor/tracemonkey/t/math-partial-sums.js +33 -0
- data/vendor/tracemonkey/t/math-spectral-norm.js +51 -0
- data/vendor/tracemonkey/t/regexp-dna.js +1712 -0
- data/vendor/tracemonkey/t/string-base64.js +135 -0
- data/vendor/tracemonkey/t/string-fasta.js +85 -0
- data/vendor/tracemonkey/t/string-tagcloud.js +265 -0
- data/vendor/tracemonkey/t/string-unpack-code.js +68 -0
- data/vendor/tracemonkey/t/string-validate-input.js +89 -0
- data/vendor/tracemonkey/time.sh +13 -0
- data/vendor/tracemonkey/trace-test.js +5564 -0
- data/vendor/tracemonkey/v8/base.js +187 -0
- data/vendor/tracemonkey/v8/crypto.js +1689 -0
- data/vendor/tracemonkey/v8/deltablue.js +880 -0
- data/vendor/tracemonkey/v8/earley-boyer.js +4682 -0
- data/vendor/tracemonkey/v8/raytrace.js +3418 -0
- data/vendor/tracemonkey/v8/richards.js +539 -0
- data/vendor/tracemonkey/v8/run-crypto.js +44 -0
- data/vendor/tracemonkey/v8/run-deltablue.js +44 -0
- data/vendor/tracemonkey/v8/run-earley-boyer.js +44 -0
- data/vendor/tracemonkey/v8/run-raytrace.js +44 -0
- data/vendor/tracemonkey/v8/run-richards.js +44 -0
- data/vendor/tracemonkey/v8/run.js +49 -0
- data/vendor/tracemonkey/vprof/readme.txt +93 -0
- data/vendor/tracemonkey/vprof/vprof.cpp +360 -0
- data/vendor/tracemonkey/vprof/vprof.h +245 -0
- data/vendor/tracemonkey/xpconnect/Makefile.in +67 -0
- data/vendor/tracemonkey/xpconnect/crashtests/117307-1.html +20 -0
- data/vendor/tracemonkey/xpconnect/crashtests/193710.html +11 -0
- data/vendor/tracemonkey/xpconnect/crashtests/290162-1.html +5 -0
- data/vendor/tracemonkey/xpconnect/crashtests/326615-1.html +16 -0
- data/vendor/tracemonkey/xpconnect/crashtests/328553-1.html +13 -0
- data/vendor/tracemonkey/xpconnect/crashtests/346258-1.html +12 -0
- data/vendor/tracemonkey/xpconnect/crashtests/346512-1-frame1.xhtml +16 -0
- data/vendor/tracemonkey/xpconnect/crashtests/346512-1-frame2.xhtml +15 -0
- data/vendor/tracemonkey/xpconnect/crashtests/346512-1.xhtml +30 -0
- data/vendor/tracemonkey/xpconnect/crashtests/382133-1.html +3 -0
- data/vendor/tracemonkey/xpconnect/crashtests/386680-1.html +22 -0
- data/vendor/tracemonkey/xpconnect/crashtests/394810-1.html +4 -0
- data/vendor/tracemonkey/xpconnect/crashtests/400349-1.html +20 -0
- data/vendor/tracemonkey/xpconnect/crashtests/403356-1.html +13 -0
- data/vendor/tracemonkey/xpconnect/crashtests/418139-1.svg +22 -0
- data/vendor/tracemonkey/xpconnect/crashtests/420513-1.html +11 -0
- data/vendor/tracemonkey/xpconnect/crashtests/453935-1.html +37 -0
- data/vendor/tracemonkey/xpconnect/crashtests/462926.html +12 -0
- data/vendor/tracemonkey/xpconnect/crashtests/468552-1.html +18 -0
- data/vendor/tracemonkey/xpconnect/crashtests/471366-1.html +12 -0
- data/vendor/tracemonkey/xpconnect/crashtests/475185-1.html +13 -0
- data/vendor/tracemonkey/xpconnect/crashtests/475291-1.html +14 -0
- data/vendor/tracemonkey/xpconnect/crashtests/503286-1.html +23 -0
- data/vendor/tracemonkey/xpconnect/crashtests/crashtests.list +21 -0
- data/vendor/tracemonkey/xpconnect/idl/Makefile.in +78 -0
- data/vendor/tracemonkey/xpconnect/idl/XPCIDispatch.idl +51 -0
- data/vendor/tracemonkey/xpconnect/idl/mozIJSSubScriptLoader.idl +64 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIActiveXSecurityPolicy.idl +67 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIDispatchSupport.idl +119 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIJSContextStack.idl +85 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIJSRuntimeService.idl +51 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIScriptError.idl +102 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIScriptableInterfaces.idl +67 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIXPCScriptNotify.idl +66 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIXPCScriptable.idl +183 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIXPCSecurityManager.idl +114 -0
- data/vendor/tracemonkey/xpconnect/idl/nsIXPConnect.idl +819 -0
- data/vendor/tracemonkey/xpconnect/idl/xpcIJSModuleLoader.idl +95 -0
- data/vendor/tracemonkey/xpconnect/idl/xpcIJSWeakReference.idl +49 -0
- data/vendor/tracemonkey/xpconnect/idl/xpccomponents.idl +254 -0
- data/vendor/tracemonkey/xpconnect/idl/xpcexception.idl +66 -0
- data/vendor/tracemonkey/xpconnect/idl/xpcjsid.idl +83 -0
- data/vendor/tracemonkey/xpconnect/loader/ISO8601DateUtils.jsm +176 -0
- data/vendor/tracemonkey/xpconnect/loader/Makefile.in +63 -0
- data/vendor/tracemonkey/xpconnect/loader/XPCOMUtils.jsm +267 -0
- data/vendor/tracemonkey/xpconnect/loader/mozJSComponentLoader.cpp +1717 -0
- data/vendor/tracemonkey/xpconnect/loader/mozJSComponentLoader.h +172 -0
- data/vendor/tracemonkey/xpconnect/loader/mozJSLoaderConstructors.h +101 -0
- data/vendor/tracemonkey/xpconnect/loader/mozJSSubScriptLoader.cpp +360 -0
- data/vendor/tracemonkey/xpconnect/loader/mozJSSubScriptLoader.h +66 -0
- data/vendor/tracemonkey/xpconnect/public/Makefile.in +54 -0
- data/vendor/tracemonkey/xpconnect/public/nsAXPCNativeCallContext.h +89 -0
- data/vendor/tracemonkey/xpconnect/public/nsAutoJSValHolder.h +168 -0
- data/vendor/tracemonkey/xpconnect/public/xpc_map_end.h +327 -0
- data/vendor/tracemonkey/xpconnect/sample/Makefile.in +71 -0
- data/vendor/tracemonkey/xpconnect/sample/README +39 -0
- data/vendor/tracemonkey/xpconnect/sample/xpcsample1.cpp +337 -0
- data/vendor/tracemonkey/xpconnect/sample/xpcsample1.idl +82 -0
- data/vendor/tracemonkey/xpconnect/sample/xpcsample1.js +21 -0
- data/vendor/tracemonkey/xpconnect/shell/Makefile.in +106 -0
- data/vendor/tracemonkey/xpconnect/shell/jsshell.msg +50 -0
- data/vendor/tracemonkey/xpconnect/shell/xpcshell.cpp +1817 -0
- data/vendor/tracemonkey/xpconnect/shell/xpcshellMacUtils.h +43 -0
- data/vendor/tracemonkey/xpconnect/shell/xpcshellMacUtils.mm +54 -0
- data/vendor/tracemonkey/xpconnect/src/Makefile.in +228 -0
- data/vendor/tracemonkey/xpconnect/src/README +3 -0
- data/vendor/tracemonkey/xpconnect/src/XPCCrossOriginWrapper.cpp +1186 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispConvert.cpp +593 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispInlines.h +667 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispInterface.cpp +383 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispObject.cpp +516 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispParamPropJSClass.cpp +223 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispParams.cpp +103 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispPrivate.h +1401 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispTearOff.cpp +547 -0
- data/vendor/tracemonkey/xpconnect/src/XPCDispTypeInfo.cpp +471 -0
- data/vendor/tracemonkey/xpconnect/src/XPCIDispatchClassInfo.cpp +139 -0
- data/vendor/tracemonkey/xpconnect/src/XPCIDispatchExtension.cpp +362 -0
- data/vendor/tracemonkey/xpconnect/src/XPCNativeWrapper.cpp +1350 -0
- data/vendor/tracemonkey/xpconnect/src/XPCNativeWrapper.h +88 -0
- data/vendor/tracemonkey/xpconnect/src/XPCSafeJSObjectWrapper.cpp +1148 -0
- data/vendor/tracemonkey/xpconnect/src/XPCSystemOnlyWrapper.cpp +718 -0
- data/vendor/tracemonkey/xpconnect/src/XPCWrapper.cpp +850 -0
- data/vendor/tracemonkey/xpconnect/src/XPCWrapper.h +394 -0
- data/vendor/tracemonkey/xpconnect/src/dom_quickstubs.qsconf +568 -0
- data/vendor/tracemonkey/xpconnect/src/nsDispatchSupport.cpp +348 -0
- data/vendor/tracemonkey/xpconnect/src/nsScriptError.cpp +201 -0
- data/vendor/tracemonkey/xpconnect/src/nsXPConnect.cpp +2609 -0
- data/vendor/tracemonkey/xpconnect/src/qsgen.py +1487 -0
- data/vendor/tracemonkey/xpconnect/src/xpc.msg +217 -0
- data/vendor/tracemonkey/xpconnect/src/xpcJSWeakReference.cpp +148 -0
- data/vendor/tracemonkey/xpconnect/src/xpcJSWeakReference.h +56 -0
- data/vendor/tracemonkey/xpconnect/src/xpccallcontext.cpp +579 -0
- data/vendor/tracemonkey/xpconnect/src/xpccomponents.cpp +4144 -0
- data/vendor/tracemonkey/xpconnect/src/xpccontext.cpp +115 -0
- data/vendor/tracemonkey/xpconnect/src/xpcconvert.cpp +2298 -0
- data/vendor/tracemonkey/xpconnect/src/xpcdebug.cpp +481 -0
- data/vendor/tracemonkey/xpconnect/src/xpcexception.cpp +502 -0
- data/vendor/tracemonkey/xpconnect/src/xpcforwards.h +114 -0
- data/vendor/tracemonkey/xpconnect/src/xpcinlines.h +772 -0
- data/vendor/tracemonkey/xpconnect/src/xpcjsid.cpp +1025 -0
- data/vendor/tracemonkey/xpconnect/src/xpcjsruntime.cpp +1342 -0
- data/vendor/tracemonkey/xpconnect/src/xpclog.cpp +128 -0
- data/vendor/tracemonkey/xpconnect/src/xpclog.h +101 -0
- data/vendor/tracemonkey/xpconnect/src/xpcmaps.cpp +761 -0
- data/vendor/tracemonkey/xpconnect/src/xpcmaps.h +713 -0
- data/vendor/tracemonkey/xpconnect/src/xpcmodule.cpp +136 -0
- data/vendor/tracemonkey/xpconnect/src/xpcprivate.h +4138 -0
- data/vendor/tracemonkey/xpconnect/src/xpcquickstubs.cpp +1128 -0
- data/vendor/tracemonkey/xpconnect/src/xpcquickstubs.h +480 -0
- data/vendor/tracemonkey/xpconnect/src/xpcruntimesvc.cpp +179 -0
- data/vendor/tracemonkey/xpconnect/src/xpcstack.cpp +342 -0
- data/vendor/tracemonkey/xpconnect/src/xpcstring.cpp +139 -0
- data/vendor/tracemonkey/xpconnect/src/xpcthreadcontext.cpp +599 -0
- data/vendor/tracemonkey/xpconnect/src/xpcthrower.cpp +399 -0
- data/vendor/tracemonkey/xpconnect/src/xpcvariant.cpp +850 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappedjs.cpp +670 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappedjsclass.cpp +2015 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednative.cpp +3482 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednativeinfo.cpp +945 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednativejsops.cpp +2003 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednativeproto.cpp +302 -0
- data/vendor/tracemonkey/xpconnect/src/xpcwrappednativescope.cpp +991 -0
- data/vendor/tracemonkey/xpconnect/tests/Makefile.in +75 -0
- data/vendor/tracemonkey/xpconnect/tests/TestXPC.cpp +785 -0
- data/vendor/tracemonkey/xpconnect/tests/chrome/Makefile.in +51 -0
- data/vendor/tracemonkey/xpconnect/tests/chrome/test_bug500931.xul +43 -0
- data/vendor/tracemonkey/xpconnect/tests/components/Makefile.in +85 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_array.cpp +388 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_attributes.cpp +305 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_calljs.cpp +135 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_child.cpp +225 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_const.cpp +76 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_domstring.cpp +118 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_echo.cpp +616 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_in.cpp +204 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_inout.cpp +171 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_module.cpp +77 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_multiple.cpp +554 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_noisy.cpp +154 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_out.cpp +335 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_overloaded.cpp +250 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_private.h +192 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_string.cpp +185 -0
- data/vendor/tracemonkey/xpconnect/tests/components/xpctest_variant.cpp +355 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/StdAfx.cpp +12 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/StdAfx.h +28 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCDispUtilities.h +28 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.cpp +86 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.def +9 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.dsp +318 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.dsw +29 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.idl +454 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.rc +145 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispSimple.cpp +44 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispSimple.h +56 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispSimple.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestArrays.cpp +221 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestArrays.h +53 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestArrays.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestMethods.cpp +699 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestMethods.h +138 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestMethods.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestNoIDispatch.cpp +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestNoIDispatch.h +41 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestNoIDispatch.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestProperties.cpp +256 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestProperties.h +88 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestProperties.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOff.cpp +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOff.h +43 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOff.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOn.cpp +29 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOn.h +45 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOn.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestWrappedJS.cpp +177 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestWrappedJS.h +50 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestWrappedJS.rgs +23 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/resource.h +36 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/Arrays/XPCIDispatchArrayTests.js +54 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/Attributes/XPCIDispatchAttributeTests.js +150 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/General/XPCIDispatchInstantiations.js +122 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/General/XPCStress.js +58 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/Methods/XPCIDispatchMethodTests.js +376 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/shell.js +377 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedJS/General/XPCIDispatchTestWrappedJS.js +76 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedJS/shell.js +377 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/exectests.cmd +1 -0
- data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/jsDriver.pl +1288 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/Makefile.in +61 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest.idl +312 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest2.idl +51 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_attributes.idl +67 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_calljs.idl +59 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_const.idl +61 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_domstring.idl +59 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_in.idl +88 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_inout.idl +86 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_multiple.idl +77 -0
- data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_out.idl +142 -0
- data/vendor/tracemonkey/xpconnect/tests/js/checkid.js +82 -0
- data/vendor/tracemonkey/xpconnect/tests/js/evaluate.js +311 -0
- data/vendor/tracemonkey/xpconnect/tests/js/exceptions-2.js +153 -0
- data/vendor/tracemonkey/xpconnect/tests/js/exceptions-3.js +194 -0
- data/vendor/tracemonkey/xpconnect/tests/js/exceptions-4.js +297 -0
- data/vendor/tracemonkey/xpconnect/tests/js/exceptions-5.js +343 -0
- data/vendor/tracemonkey/xpconnect/tests/js/exceptions.js +230 -0
- data/vendor/tracemonkey/xpconnect/tests/js/javascript.js +96 -0
- data/vendor/tracemonkey/xpconnect/tests/js/multiple-2.js +151 -0
- data/vendor/tracemonkey/xpconnect/tests/js/multiple-3.js +148 -0
- data/vendor/tracemonkey/xpconnect/tests/js/multiple-4.js +152 -0
- data/vendor/tracemonkey/xpconnect/tests/js/multiple.js +137 -0
- data/vendor/tracemonkey/xpconnect/tests/js/notscriptable.js +104 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/simpletest.js +36 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/speed.js +60 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/testxpc.js +464 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/threads.js +74 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/try.js +27 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_array.js +308 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_callcontext.js +68 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_echo.js +636 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_enum_and_sort.js +28 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_enum_constants.js +15 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_enum_create.js +200 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_exceptions.js +167 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_ids.js +135 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_observer.js +36 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_overloaded.js +14 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_primitives.js +141 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_propertybag.js +36 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_variant.js +339 -0
- data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_variant_array.js +30 -0
- data/vendor/tracemonkey/xpconnect/tests/js/readonlyattributes.js +74 -0
- data/vendor/tracemonkey/xpconnect/tests/js/readwriteattributes.js +101 -0
- data/vendor/tracemonkey/xpconnect/tests/js/scriptable.js +120 -0
- data/vendor/tracemonkey/xpconnect/tests/js/testin.js +203 -0
- data/vendor/tracemonkey/xpconnect/tests/js/xpcfun.js +234 -0
- data/vendor/tracemonkey/xpconnect/tests/js/xpctest_primitives.js +200 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/Makefile.in +66 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/bug500931_helper.html +7 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/inner.html +7 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug361111.xul +29 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug384632.html +32 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug390488.html +65 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug393269.html +46 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug396851.html +43 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug428021.html +41 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug446584.html +49 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug448587.html +31 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug462428.html +42 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug478438.html +66 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug484107.html +100 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug484459.html +36 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug500691.html +28 -0
- data/vendor/tracemonkey/xpconnect/tests/mochitest/test_wrappers.html +116 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/bogus_element_type.jsm +1 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/bogus_exports_type.jsm +1 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/bug451678_subscript.js +2 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/component_import.js +144 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/recursive_importA.jsm +44 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/recursive_importB.jsm +45 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/syntax_error.jsm +1 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_bogus_files.js +88 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_bug408412.js +51 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_bug451678.js +52 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_bug_442086.js +68 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_import.js +127 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_js_weak_references.js +63 -0
- data/vendor/tracemonkey/xpconnect/tests/unit/test_recursive_import.js +62 -0
- data/vendor/tracemonkey/xpconnect/tools/Makefile.in +49 -0
- data/vendor/tracemonkey/xpconnect/tools/idl/Makefile.in +53 -0
- data/vendor/tracemonkey/xpconnect/tools/idl/nsIXPCToolsCompiler.idl +60 -0
- data/vendor/tracemonkey/xpconnect/tools/idl/nsIXPCToolsProfiler.idl +57 -0
- data/vendor/tracemonkey/xpconnect/tools/js/CompileJSFiles.js +28 -0
- data/vendor/tracemonkey/xpconnect/tools/js/ListJSFiles.js +18 -0
- data/vendor/tracemonkey/xpconnect/tools/src/Makefile.in +76 -0
- data/vendor/tracemonkey/xpconnect/tools/src/nsXPCToolsCompiler.cpp +161 -0
- data/vendor/tracemonkey/xpconnect/tools/src/nsXPCToolsModule.cpp +65 -0
- data/vendor/tracemonkey/xpconnect/tools/src/nsXPCToolsProfiler.cpp +370 -0
- data/vendor/tracemonkey/xpconnect/tools/src/xpctools_private.h +236 -0
- metadata +782 -107
- data/test/johnson/nodes/export_test.rb +0 -9
- data/test/johnson/nodes/import_test.rb +0 -13
- data/test/johnson/version_test.rb +0 -13
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
2
|
+
*
|
|
3
|
+
* ***** BEGIN LICENSE BLOCK *****
|
|
4
|
+
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
5
|
+
*
|
|
6
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
|
7
|
+
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
8
|
+
* the License. You may obtain a copy of the License at
|
|
9
|
+
* http://www.mozilla.org/MPL/
|
|
10
|
+
*
|
|
11
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
13
|
+
* for the specific language governing rights and limitations under the
|
|
14
|
+
* License.
|
|
15
|
+
*
|
|
16
|
+
* The Original Code is Mozilla Communicator client code, released
|
|
17
|
+
* March 31, 1998.
|
|
18
|
+
*
|
|
19
|
+
* The Initial Developer of the Original Code is
|
|
20
|
+
* Netscape Communications Corporation.
|
|
21
|
+
* Portions created by the Initial Developer are Copyright (C) 2001
|
|
22
|
+
* the Initial Developer. All Rights Reserved.
|
|
23
|
+
*
|
|
24
|
+
* Contributor(s):
|
|
25
|
+
* David Bradley <bradley@netscape.com> (original author)
|
|
26
|
+
*
|
|
27
|
+
* Alternatively, the contents of this file may be used under the terms of
|
|
28
|
+
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
29
|
+
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
30
|
+
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
31
|
+
* of those above. If you wish to allow use of your version of this file only
|
|
32
|
+
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
33
|
+
* use your version of this file under the terms of the MPL, indicate your
|
|
34
|
+
* decision by deleting the provisions above and replace them with the notice
|
|
35
|
+
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
36
|
+
* the provisions above, a recipient may use your version of this file under
|
|
37
|
+
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
38
|
+
*
|
|
39
|
+
* ***** END LICENSE BLOCK ***** */
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* nsIXPCScriptNotify is an interface that is used for notifying a client
|
|
43
|
+
* that the script has been evaluated by XPConnect. if any JSContext in our
|
|
44
|
+
* JSRuntime has set the JSOPTION_PRIVATE_IS_NSISUPPORTS option and the
|
|
45
|
+
* private context supports nsIXPCScriptNotify then this method is invoked
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
#include "nsISupports.idl"
|
|
50
|
+
|
|
51
|
+
interface nsIXPConnectWrappedNative;
|
|
52
|
+
|
|
53
|
+
[uuid(b804504d-0025-4d6b-8ced-d94e41102a7f)]
|
|
54
|
+
interface nsIXPCScriptNotify : nsISupports
|
|
55
|
+
{
|
|
56
|
+
/**
|
|
57
|
+
* Method invoked when a script has been executed by XPConnect
|
|
58
|
+
*/
|
|
59
|
+
void ScriptExecuted();
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Method invoked to preserve an nsIXPConnectWrappedNative as needed
|
|
63
|
+
*/
|
|
64
|
+
void preserveWrapper(in nsIXPConnectWrappedNative wrapper);
|
|
65
|
+
};
|
|
66
|
+
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
2
|
+
*
|
|
3
|
+
* ***** BEGIN LICENSE BLOCK *****
|
|
4
|
+
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
5
|
+
*
|
|
6
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
|
7
|
+
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
8
|
+
* the License. You may obtain a copy of the License at
|
|
9
|
+
* http://www.mozilla.org/MPL/
|
|
10
|
+
*
|
|
11
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
13
|
+
* for the specific language governing rights and limitations under the
|
|
14
|
+
* License.
|
|
15
|
+
*
|
|
16
|
+
* The Original Code is Mozilla Communicator client code, released
|
|
17
|
+
* March 31, 1998.
|
|
18
|
+
*
|
|
19
|
+
* The Initial Developer of the Original Code is
|
|
20
|
+
* Netscape Communications Corporation.
|
|
21
|
+
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
22
|
+
* the Initial Developer. All Rights Reserved.
|
|
23
|
+
*
|
|
24
|
+
* Contributor(s):
|
|
25
|
+
* John Bandhauer <jband@netscape.com> (original author)
|
|
26
|
+
*
|
|
27
|
+
* Alternatively, the contents of this file may be used under the terms of
|
|
28
|
+
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
29
|
+
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
30
|
+
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
31
|
+
* of those above. If you wish to allow use of your version of this file only
|
|
32
|
+
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
33
|
+
* use your version of this file under the terms of the MPL, indicate your
|
|
34
|
+
* decision by deleting the provisions above and replace them with the notice
|
|
35
|
+
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
36
|
+
* the provisions above, a recipient may use your version of this file under
|
|
37
|
+
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
38
|
+
*
|
|
39
|
+
* ***** END LICENSE BLOCK ***** */
|
|
40
|
+
|
|
41
|
+
#include "nsISupports.idl"
|
|
42
|
+
#include "nsIXPConnect.idl"
|
|
43
|
+
|
|
44
|
+
[ptr] native JSTracerPtr(JSTracer);
|
|
45
|
+
|
|
46
|
+
%{ C++
|
|
47
|
+
#define NS_SUCCESS_I_DID_SOMETHING \
|
|
48
|
+
(NS_ERROR_GENERATE_SUCCESS(NS_ERROR_MODULE_XPCONNECT,1))
|
|
49
|
+
#define NS_SUCCESS_CHROME_ACCESS_ONLY \
|
|
50
|
+
(NS_ERROR_GENERATE_SUCCESS(NS_ERROR_MODULE_XPCONNECT,2))
|
|
51
|
+
%}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Note: This is not really an XPCOM interface. For example, callers must
|
|
55
|
+
* guarantee that they set the *_retval of the various methods that return a
|
|
56
|
+
* boolean to PR_TRUE before making the call. Implementations may skip writing
|
|
57
|
+
* to *_retval unless they want to return PR_FALSE.
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
[uuid(5d309b93-e9b4-4374-bcd5-44245c83408f)]
|
|
61
|
+
interface nsIXPCScriptable : nsISupports
|
|
62
|
+
{
|
|
63
|
+
/* bitflags used for 'flags' (only 32 bits available!) */
|
|
64
|
+
|
|
65
|
+
const PRUint32 WANT_PRECREATE = 1 << 0;
|
|
66
|
+
const PRUint32 WANT_CREATE = 1 << 1;
|
|
67
|
+
const PRUint32 WANT_POSTCREATE = 1 << 2;
|
|
68
|
+
const PRUint32 WANT_ADDPROPERTY = 1 << 3;
|
|
69
|
+
const PRUint32 WANT_DELPROPERTY = 1 << 4;
|
|
70
|
+
const PRUint32 WANT_GETPROPERTY = 1 << 5;
|
|
71
|
+
const PRUint32 WANT_SETPROPERTY = 1 << 6;
|
|
72
|
+
const PRUint32 WANT_ENUMERATE = 1 << 7;
|
|
73
|
+
const PRUint32 WANT_NEWENUMERATE = 1 << 8;
|
|
74
|
+
const PRUint32 WANT_NEWRESOLVE = 1 << 9;
|
|
75
|
+
const PRUint32 WANT_CONVERT = 1 << 10;
|
|
76
|
+
const PRUint32 WANT_FINALIZE = 1 << 11;
|
|
77
|
+
const PRUint32 WANT_CHECKACCESS = 1 << 12;
|
|
78
|
+
const PRUint32 WANT_CALL = 1 << 13;
|
|
79
|
+
const PRUint32 WANT_CONSTRUCT = 1 << 14;
|
|
80
|
+
const PRUint32 WANT_HASINSTANCE = 1 << 15;
|
|
81
|
+
const PRUint32 WANT_TRACE = 1 << 16;
|
|
82
|
+
const PRUint32 USE_JSSTUB_FOR_ADDPROPERTY = 1 << 17;
|
|
83
|
+
const PRUint32 USE_JSSTUB_FOR_DELPROPERTY = 1 << 18;
|
|
84
|
+
const PRUint32 USE_JSSTUB_FOR_SETPROPERTY = 1 << 19;
|
|
85
|
+
const PRUint32 DONT_ENUM_STATIC_PROPS = 1 << 20;
|
|
86
|
+
const PRUint32 DONT_ENUM_QUERY_INTERFACE = 1 << 21;
|
|
87
|
+
const PRUint32 DONT_ASK_INSTANCE_FOR_SCRIPTABLE = 1 << 22;
|
|
88
|
+
const PRUint32 CLASSINFO_INTERFACES_ONLY = 1 << 23;
|
|
89
|
+
const PRUint32 ALLOW_PROP_MODS_DURING_RESOLVE = 1 << 24;
|
|
90
|
+
const PRUint32 ALLOW_PROP_MODS_TO_PROTOTYPE = 1 << 25;
|
|
91
|
+
const PRUint32 DONT_SHARE_PROTOTYPE = 1 << 26;
|
|
92
|
+
const PRUint32 DONT_REFLECT_INTERFACE_NAMES = 1 << 27;
|
|
93
|
+
const PRUint32 WANT_EQUALITY = 1 << 28;
|
|
94
|
+
const PRUint32 WANT_OUTER_OBJECT = 1 << 29;
|
|
95
|
+
const PRUint32 WANT_INNER_OBJECT = 1 << 30;
|
|
96
|
+
|
|
97
|
+
// The high order bit is RESERVED for consumers of these flags.
|
|
98
|
+
// No implementor of this interface should ever return flags
|
|
99
|
+
// with this bit set.
|
|
100
|
+
const PRUint32 RESERVED = 1 << 31;
|
|
101
|
+
|
|
102
|
+
readonly attribute string className;
|
|
103
|
+
readonly attribute PRUint32 scriptableFlags;
|
|
104
|
+
|
|
105
|
+
void preCreate(in nsISupports nativeObj, in JSContextPtr cx,
|
|
106
|
+
in JSObjectPtr globalObj, out JSObjectPtr parentObj);
|
|
107
|
+
|
|
108
|
+
void create(in nsIXPConnectWrappedNative wrapper,
|
|
109
|
+
in JSContextPtr cx, in JSObjectPtr obj);
|
|
110
|
+
|
|
111
|
+
void postCreate(in nsIXPConnectWrappedNative wrapper,
|
|
112
|
+
in JSContextPtr cx, in JSObjectPtr obj);
|
|
113
|
+
|
|
114
|
+
PRBool addProperty(in nsIXPConnectWrappedNative wrapper,
|
|
115
|
+
in JSContextPtr cx, in JSObjectPtr obj, in JSVal id,
|
|
116
|
+
in JSValPtr vp);
|
|
117
|
+
|
|
118
|
+
PRBool delProperty(in nsIXPConnectWrappedNative wrapper,
|
|
119
|
+
in JSContextPtr cx, in JSObjectPtr obj, in JSVal id,
|
|
120
|
+
in JSValPtr vp);
|
|
121
|
+
|
|
122
|
+
// The returnCode should be set to NS_SUCCESS_I_DID_SOMETHING if
|
|
123
|
+
// this method does something.
|
|
124
|
+
PRBool getProperty(in nsIXPConnectWrappedNative wrapper,
|
|
125
|
+
in JSContextPtr cx, in JSObjectPtr obj, in JSVal id,
|
|
126
|
+
in JSValPtr vp);
|
|
127
|
+
|
|
128
|
+
// The returnCode should be set to NS_SUCCESS_I_DID_SOMETHING if
|
|
129
|
+
// this method does something.
|
|
130
|
+
PRBool setProperty(in nsIXPConnectWrappedNative wrapper,
|
|
131
|
+
in JSContextPtr cx, in JSObjectPtr obj, in JSVal id,
|
|
132
|
+
in JSValPtr vp);
|
|
133
|
+
|
|
134
|
+
PRBool enumerate(in nsIXPConnectWrappedNative wrapper,
|
|
135
|
+
in JSContextPtr cx, in JSObjectPtr obj);
|
|
136
|
+
|
|
137
|
+
PRBool newEnumerate(in nsIXPConnectWrappedNative wrapper,
|
|
138
|
+
in JSContextPtr cx, in JSObjectPtr obj,
|
|
139
|
+
in PRUint32 enum_op, in JSValPtr statep, out JSID idp);
|
|
140
|
+
|
|
141
|
+
PRBool newResolve(in nsIXPConnectWrappedNative wrapper,
|
|
142
|
+
in JSContextPtr cx, in JSObjectPtr obj, in JSVal id,
|
|
143
|
+
in PRUint32 flags, out JSObjectPtr objp);
|
|
144
|
+
|
|
145
|
+
PRBool convert(in nsIXPConnectWrappedNative wrapper,
|
|
146
|
+
in JSContextPtr cx, in JSObjectPtr obj,
|
|
147
|
+
in PRUint32 type, in JSValPtr vp);
|
|
148
|
+
|
|
149
|
+
void finalize(in nsIXPConnectWrappedNative wrapper,
|
|
150
|
+
in JSContextPtr cx, in JSObjectPtr obj);
|
|
151
|
+
|
|
152
|
+
PRBool checkAccess(in nsIXPConnectWrappedNative wrapper,
|
|
153
|
+
in JSContextPtr cx, in JSObjectPtr obj, in JSVal id,
|
|
154
|
+
in PRUint32 mode, in JSValPtr vp);
|
|
155
|
+
|
|
156
|
+
PRBool call(in nsIXPConnectWrappedNative wrapper,
|
|
157
|
+
in JSContextPtr cx, in JSObjectPtr obj,
|
|
158
|
+
in PRUint32 argc, in JSValPtr argv, in JSValPtr vp);
|
|
159
|
+
|
|
160
|
+
PRBool construct(in nsIXPConnectWrappedNative wrapper,
|
|
161
|
+
in JSContextPtr cx, in JSObjectPtr obj,
|
|
162
|
+
in PRUint32 argc, in JSValPtr argv, in JSValPtr vp);
|
|
163
|
+
|
|
164
|
+
PRBool hasInstance(in nsIXPConnectWrappedNative wrapper,
|
|
165
|
+
in JSContextPtr cx, in JSObjectPtr obj,
|
|
166
|
+
in JSVal val, out PRBool bp);
|
|
167
|
+
|
|
168
|
+
void trace(in nsIXPConnectWrappedNative wrapper,
|
|
169
|
+
in JSTracerPtr trc, in JSObjectPtr obj);
|
|
170
|
+
|
|
171
|
+
PRBool equality(in nsIXPConnectWrappedNative wrapper,
|
|
172
|
+
in JSContextPtr cx, in JSObjectPtr obj, in JSVal val);
|
|
173
|
+
|
|
174
|
+
JSObjectPtr outerObject(in nsIXPConnectWrappedNative wrapper,
|
|
175
|
+
in JSContextPtr cx, in JSObjectPtr obj);
|
|
176
|
+
|
|
177
|
+
JSObjectPtr innerObject(in nsIXPConnectWrappedNative wrapper,
|
|
178
|
+
in JSContextPtr cx, in JSObjectPtr obj);
|
|
179
|
+
|
|
180
|
+
// This method is called if the WANT_POSTCREATE bit is set in
|
|
181
|
+
// scriptableFlags.
|
|
182
|
+
void postCreatePrototype(in JSContextPtr cx, in JSObjectPtr proto);
|
|
183
|
+
};
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
2
|
+
*
|
|
3
|
+
* ***** BEGIN LICENSE BLOCK *****
|
|
4
|
+
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
5
|
+
*
|
|
6
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
|
7
|
+
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
8
|
+
* the License. You may obtain a copy of the License at
|
|
9
|
+
* http://www.mozilla.org/MPL/
|
|
10
|
+
*
|
|
11
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
13
|
+
* for the specific language governing rights and limitations under the
|
|
14
|
+
* License.
|
|
15
|
+
*
|
|
16
|
+
* The Original Code is Mozilla Communicator client code, released
|
|
17
|
+
* March 31, 1998.
|
|
18
|
+
*
|
|
19
|
+
* The Initial Developer of the Original Code is
|
|
20
|
+
* Netscape Communications Corporation.
|
|
21
|
+
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
22
|
+
* the Initial Developer. All Rights Reserved.
|
|
23
|
+
*
|
|
24
|
+
* Contributor(s):
|
|
25
|
+
* John Bandhauer <jband@netscape.com> (original author)
|
|
26
|
+
*
|
|
27
|
+
* Alternatively, the contents of this file may be used under the terms of
|
|
28
|
+
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
29
|
+
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
30
|
+
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
31
|
+
* of those above. If you wish to allow use of your version of this file only
|
|
32
|
+
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
33
|
+
* use your version of this file under the terms of the MPL, indicate your
|
|
34
|
+
* decision by deleting the provisions above and replace them with the notice
|
|
35
|
+
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
36
|
+
* the provisions above, a recipient may use your version of this file under
|
|
37
|
+
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
38
|
+
*
|
|
39
|
+
* ***** END LICENSE BLOCK ***** */
|
|
40
|
+
|
|
41
|
+
#include "nsISupports.idl"
|
|
42
|
+
|
|
43
|
+
[ptr] native nsAXPCNativeCallContextPtr(nsAXPCNativeCallContext);
|
|
44
|
+
|
|
45
|
+
%{ C++
|
|
46
|
+
#include "jspubtd.h"
|
|
47
|
+
|
|
48
|
+
class nsAXPCNativeCallContext;
|
|
49
|
+
%}
|
|
50
|
+
|
|
51
|
+
interface nsIClassInfo;
|
|
52
|
+
|
|
53
|
+
[ptr] native JSContextPtr(JSContext);
|
|
54
|
+
[ptr] native JSObjectPtr(JSObject);
|
|
55
|
+
native JSVal(jsval);
|
|
56
|
+
[ptr] native JSStackFramePtr(JSStackFrame);
|
|
57
|
+
|
|
58
|
+
[uuid(31431440-f1ce-11d2-985a-006008962422)]
|
|
59
|
+
interface nsIXPCSecurityManager : nsISupports
|
|
60
|
+
{
|
|
61
|
+
/**
|
|
62
|
+
* These flags are used when calling nsIXPConnect::SetSecurityManager
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
const PRUint32 HOOK_CREATE_WRAPPER = 1 << 0;
|
|
66
|
+
const PRUint32 HOOK_CREATE_INSTANCE = 1 << 1;
|
|
67
|
+
const PRUint32 HOOK_GET_SERVICE = 1 << 2;
|
|
68
|
+
const PRUint32 HOOK_CALL_METHOD = 1 << 3;
|
|
69
|
+
const PRUint32 HOOK_GET_PROPERTY = 1 << 4;
|
|
70
|
+
const PRUint32 HOOK_SET_PROPERTY = 1 << 5;
|
|
71
|
+
|
|
72
|
+
const PRUint32 HOOK_ALL = HOOK_CREATE_WRAPPER |
|
|
73
|
+
HOOK_CREATE_INSTANCE |
|
|
74
|
+
HOOK_GET_SERVICE |
|
|
75
|
+
HOOK_CALL_METHOD |
|
|
76
|
+
HOOK_GET_PROPERTY |
|
|
77
|
+
HOOK_SET_PROPERTY ;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* For each of these hooks returning NS_OK means 'let the action continue'.
|
|
81
|
+
* Returning an error code means 'veto the action'. XPConnect will return
|
|
82
|
+
* JS_FALSE to the js engine if the action is vetoed. The implementor of this
|
|
83
|
+
* interface is responsible for setting a JS exception into the JSContext
|
|
84
|
+
* if that is appropriate.
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
void CanCreateWrapper(in JSContextPtr aJSContext,
|
|
88
|
+
in nsIIDRef aIID,
|
|
89
|
+
in nsISupports aObj,
|
|
90
|
+
in nsIClassInfo aClassInfo,
|
|
91
|
+
inout voidPtr aPolicy);
|
|
92
|
+
|
|
93
|
+
void CanCreateInstance(in JSContextPtr aJSContext,
|
|
94
|
+
in nsCIDRef aCID);
|
|
95
|
+
|
|
96
|
+
void CanGetService(in JSContextPtr aJSContext,
|
|
97
|
+
in nsCIDRef aCID);
|
|
98
|
+
|
|
99
|
+
/*
|
|
100
|
+
* Used for aAction below
|
|
101
|
+
*/
|
|
102
|
+
const PRUint32 ACCESS_CALL_METHOD = 0;
|
|
103
|
+
const PRUint32 ACCESS_GET_PROPERTY = 1;
|
|
104
|
+
const PRUint32 ACCESS_SET_PROPERTY = 2;
|
|
105
|
+
|
|
106
|
+
void CanAccess(in PRUint32 aAction,
|
|
107
|
+
in nsAXPCNativeCallContextPtr aCallContext,
|
|
108
|
+
in JSContextPtr aJSContext,
|
|
109
|
+
in JSObjectPtr aJSObject,
|
|
110
|
+
in nsISupports aObj,
|
|
111
|
+
in nsIClassInfo aClassInfo,
|
|
112
|
+
in JSVal aName,
|
|
113
|
+
inout voidPtr aPolicy);
|
|
114
|
+
};
|
|
@@ -0,0 +1,819 @@
|
|
|
1
|
+
/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
2
|
+
*
|
|
3
|
+
* ***** BEGIN LICENSE BLOCK *****
|
|
4
|
+
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
5
|
+
*
|
|
6
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
|
7
|
+
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
8
|
+
* the License. You may obtain a copy of the License at
|
|
9
|
+
* http://www.mozilla.org/MPL/
|
|
10
|
+
*
|
|
11
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
13
|
+
* for the specific language governing rights and limitations under the
|
|
14
|
+
* License.
|
|
15
|
+
*
|
|
16
|
+
* The Original Code is Mozilla Communicator client code, released
|
|
17
|
+
* March 31, 1998.
|
|
18
|
+
*
|
|
19
|
+
* The Initial Developer of the Original Code is
|
|
20
|
+
* Netscape Communications Corporation.
|
|
21
|
+
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
22
|
+
* the Initial Developer. All Rights Reserved.
|
|
23
|
+
*
|
|
24
|
+
* Contributor(s):
|
|
25
|
+
* John Bandhauer <jband@netscape.com> (original author)
|
|
26
|
+
* Nate Nielsen <nielsen@memberwebs.com>
|
|
27
|
+
*
|
|
28
|
+
* Alternatively, the contents of this file may be used under the terms of
|
|
29
|
+
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
30
|
+
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
31
|
+
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
32
|
+
* of those above. If you wish to allow use of your version of this file only
|
|
33
|
+
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
34
|
+
* use your version of this file under the terms of the MPL, indicate your
|
|
35
|
+
* decision by deleting the provisions above and replace them with the notice
|
|
36
|
+
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
37
|
+
* the provisions above, a recipient may use your version of this file under
|
|
38
|
+
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
39
|
+
*
|
|
40
|
+
* ***** END LICENSE BLOCK ***** */
|
|
41
|
+
|
|
42
|
+
/* The core XPConnect public interfaces. */
|
|
43
|
+
|
|
44
|
+
#include "nsISupports.idl"
|
|
45
|
+
#include "nsIClassInfo.idl"
|
|
46
|
+
#include "xpccomponents.idl"
|
|
47
|
+
#include "xpcjsid.idl"
|
|
48
|
+
#include "xpcexception.idl"
|
|
49
|
+
#include "nsIInterfaceInfo.idl"
|
|
50
|
+
#include "nsIInterfaceInfoManager.idl"
|
|
51
|
+
#include "nsIExceptionService.idl"
|
|
52
|
+
#include "nsIVariant.idl"
|
|
53
|
+
|
|
54
|
+
%{ C++
|
|
55
|
+
#include "jspubtd.h"
|
|
56
|
+
#include "xptinfo.h"
|
|
57
|
+
#include "nsAXPCNativeCallContext.h"
|
|
58
|
+
%}
|
|
59
|
+
|
|
60
|
+
/***************************************************************************/
|
|
61
|
+
|
|
62
|
+
[ptr] native JSContextPtr(JSContext);
|
|
63
|
+
[ptr] native JSObjectPtr(JSObject);
|
|
64
|
+
[ptr] native JSValPtr(jsval);
|
|
65
|
+
native JSVal(jsval);
|
|
66
|
+
[ptr] native JSClassConstPtr(const JSClass);
|
|
67
|
+
native JSGetObjectOps(JSGetObjectOps);
|
|
68
|
+
native JSID(jsid);
|
|
69
|
+
[ptr] native voidPtrPtr(void*);
|
|
70
|
+
[ptr] native nsScriptObjectTracerPtr(nsScriptObjectTracer);
|
|
71
|
+
[ref] native nsCCTraversalCallbackRef(nsCycleCollectionTraversalCallback);
|
|
72
|
+
[ptr] native nsAXPCNativeCallContextPtr(nsAXPCNativeCallContext);
|
|
73
|
+
|
|
74
|
+
/***************************************************************************/
|
|
75
|
+
|
|
76
|
+
%{ C++
|
|
77
|
+
/***************************************************************************/
|
|
78
|
+
#define GENERATE_XPC_FAILURE(x) \
|
|
79
|
+
(NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_XPCONNECT,x))
|
|
80
|
+
|
|
81
|
+
#define NS_ERROR_XPC_NOT_ENOUGH_ARGS GENERATE_XPC_FAILURE( 1)
|
|
82
|
+
#define NS_ERROR_XPC_NEED_OUT_OBJECT GENERATE_XPC_FAILURE( 2)
|
|
83
|
+
#define NS_ERROR_XPC_CANT_SET_OUT_VAL GENERATE_XPC_FAILURE( 3)
|
|
84
|
+
#define NS_ERROR_XPC_NATIVE_RETURNED_FAILURE GENERATE_XPC_FAILURE( 4)
|
|
85
|
+
#define NS_ERROR_XPC_CANT_GET_INTERFACE_INFO GENERATE_XPC_FAILURE( 5)
|
|
86
|
+
#define NS_ERROR_XPC_CANT_GET_PARAM_IFACE_INFO GENERATE_XPC_FAILURE( 6)
|
|
87
|
+
#define NS_ERROR_XPC_CANT_GET_METHOD_INFO GENERATE_XPC_FAILURE( 7)
|
|
88
|
+
#define NS_ERROR_XPC_UNEXPECTED GENERATE_XPC_FAILURE( 8)
|
|
89
|
+
#define NS_ERROR_XPC_BAD_CONVERT_JS GENERATE_XPC_FAILURE( 9)
|
|
90
|
+
#define NS_ERROR_XPC_BAD_CONVERT_NATIVE GENERATE_XPC_FAILURE(10)
|
|
91
|
+
#define NS_ERROR_XPC_BAD_CONVERT_JS_NULL_REF GENERATE_XPC_FAILURE(11)
|
|
92
|
+
#define NS_ERROR_XPC_BAD_OP_ON_WN_PROTO GENERATE_XPC_FAILURE(12)
|
|
93
|
+
#define NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN GENERATE_XPC_FAILURE(13)
|
|
94
|
+
#define NS_ERROR_XPC_CANT_DEFINE_PROP_ON_WN GENERATE_XPC_FAILURE(14)
|
|
95
|
+
#define NS_ERROR_XPC_CANT_WATCH_WN_STATIC GENERATE_XPC_FAILURE(15)
|
|
96
|
+
#define NS_ERROR_XPC_CANT_EXPORT_WN_STATIC GENERATE_XPC_FAILURE(16)
|
|
97
|
+
#define NS_ERROR_XPC_SCRIPTABLE_CALL_FAILED GENERATE_XPC_FAILURE(17)
|
|
98
|
+
#define NS_ERROR_XPC_SCRIPTABLE_CTOR_FAILED GENERATE_XPC_FAILURE(18)
|
|
99
|
+
#define NS_ERROR_XPC_CANT_CALL_WO_SCRIPTABLE GENERATE_XPC_FAILURE(19)
|
|
100
|
+
#define NS_ERROR_XPC_CANT_CTOR_WO_SCRIPTABLE GENERATE_XPC_FAILURE(20)
|
|
101
|
+
#define NS_ERROR_XPC_CI_RETURNED_FAILURE GENERATE_XPC_FAILURE(21)
|
|
102
|
+
#define NS_ERROR_XPC_GS_RETURNED_FAILURE GENERATE_XPC_FAILURE(22)
|
|
103
|
+
#define NS_ERROR_XPC_BAD_CID GENERATE_XPC_FAILURE(23)
|
|
104
|
+
#define NS_ERROR_XPC_BAD_IID GENERATE_XPC_FAILURE(24)
|
|
105
|
+
#define NS_ERROR_XPC_CANT_CREATE_WN GENERATE_XPC_FAILURE(25)
|
|
106
|
+
#define NS_ERROR_XPC_JS_THREW_EXCEPTION GENERATE_XPC_FAILURE(26)
|
|
107
|
+
#define NS_ERROR_XPC_JS_THREW_NATIVE_OBJECT GENERATE_XPC_FAILURE(27)
|
|
108
|
+
#define NS_ERROR_XPC_JS_THREW_JS_OBJECT GENERATE_XPC_FAILURE(28)
|
|
109
|
+
#define NS_ERROR_XPC_JS_THREW_NULL GENERATE_XPC_FAILURE(29)
|
|
110
|
+
#define NS_ERROR_XPC_JS_THREW_STRING GENERATE_XPC_FAILURE(30)
|
|
111
|
+
#define NS_ERROR_XPC_JS_THREW_NUMBER GENERATE_XPC_FAILURE(31)
|
|
112
|
+
#define NS_ERROR_XPC_JAVASCRIPT_ERROR GENERATE_XPC_FAILURE(32)
|
|
113
|
+
#define NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS GENERATE_XPC_FAILURE(33)
|
|
114
|
+
#define NS_ERROR_XPC_CANT_CONVERT_PRIMITIVE_TO_ARRAY GENERATE_XPC_FAILURE(34)
|
|
115
|
+
#define NS_ERROR_XPC_CANT_CONVERT_OBJECT_TO_ARRAY GENERATE_XPC_FAILURE(35)
|
|
116
|
+
#define NS_ERROR_XPC_NOT_ENOUGH_ELEMENTS_IN_ARRAY GENERATE_XPC_FAILURE(36)
|
|
117
|
+
#define NS_ERROR_XPC_CANT_GET_ARRAY_INFO GENERATE_XPC_FAILURE(37)
|
|
118
|
+
#define NS_ERROR_XPC_NOT_ENOUGH_CHARS_IN_STRING GENERATE_XPC_FAILURE(38)
|
|
119
|
+
#define NS_ERROR_XPC_SECURITY_MANAGER_VETO GENERATE_XPC_FAILURE(39)
|
|
120
|
+
#define NS_ERROR_XPC_INTERFACE_NOT_SCRIPTABLE GENERATE_XPC_FAILURE(40)
|
|
121
|
+
#define NS_ERROR_XPC_INTERFACE_NOT_FROM_NSISUPPORTS GENERATE_XPC_FAILURE(41)
|
|
122
|
+
#define NS_ERROR_XPC_CANT_GET_JSOBJECT_OF_DOM_OBJECT GENERATE_XPC_FAILURE(42)
|
|
123
|
+
#define NS_ERROR_XPC_CANT_SET_READ_ONLY_CONSTANT GENERATE_XPC_FAILURE(43)
|
|
124
|
+
#define NS_ERROR_XPC_CANT_SET_READ_ONLY_ATTRIBUTE GENERATE_XPC_FAILURE(44)
|
|
125
|
+
#define NS_ERROR_XPC_CANT_SET_READ_ONLY_METHOD GENERATE_XPC_FAILURE(45)
|
|
126
|
+
#define NS_ERROR_XPC_CANT_ADD_PROP_TO_WRAPPED_NATIVE GENERATE_XPC_FAILURE(46)
|
|
127
|
+
#define NS_ERROR_XPC_CALL_TO_SCRIPTABLE_FAILED GENERATE_XPC_FAILURE(47)
|
|
128
|
+
#define NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED GENERATE_XPC_FAILURE(48)
|
|
129
|
+
#define NS_ERROR_XPC_BAD_ID_STRING GENERATE_XPC_FAILURE(49)
|
|
130
|
+
#define NS_ERROR_XPC_BAD_INITIALIZER_NAME GENERATE_XPC_FAILURE(50)
|
|
131
|
+
#define NS_ERROR_XPC_HAS_BEEN_SHUTDOWN GENERATE_XPC_FAILURE(51)
|
|
132
|
+
#define NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN GENERATE_XPC_FAILURE(52)
|
|
133
|
+
#define NS_ERROR_XPC_BAD_CONVERT_JS_ZERO_ISNOT_NULL GENERATE_XPC_FAILURE(53)
|
|
134
|
+
|
|
135
|
+
#ifdef XPC_IDISPATCH_SUPPORT
|
|
136
|
+
// IDispatch support related errors
|
|
137
|
+
#define NS_ERROR_XPC_COM_UNKNOWN GENERATE_XPC_FAILURE(54)
|
|
138
|
+
#define NS_ERROR_XPC_COM_ERROR GENERATE_XPC_FAILURE(55)
|
|
139
|
+
#define NS_ERROR_XPC_COM_INVALID_CLASS_ID GENERATE_XPC_FAILURE(56)
|
|
140
|
+
#define NS_ERROR_XPC_COM_CREATE_FAILED GENERATE_XPC_FAILURE(57)
|
|
141
|
+
#define NS_ERROR_XPC_IDISPATCH_NOT_ENABLED GENERATE_XPC_FAILURE(58)
|
|
142
|
+
#endif
|
|
143
|
+
// any new errors here should have an associated entry added in xpc.msg
|
|
144
|
+
/***************************************************************************/
|
|
145
|
+
%}
|
|
146
|
+
|
|
147
|
+
/***************************************************************************/
|
|
148
|
+
|
|
149
|
+
// forward declarations...
|
|
150
|
+
interface nsIXPCScriptable;
|
|
151
|
+
interface nsIXPConnect;
|
|
152
|
+
interface nsIXPConnectWrappedNative;
|
|
153
|
+
interface nsIInterfaceInfo;
|
|
154
|
+
interface nsIXPCSecurityManager;
|
|
155
|
+
interface nsIPrincipal;
|
|
156
|
+
|
|
157
|
+
%{C++
|
|
158
|
+
class nsCycleCollectionTraversalCallback;
|
|
159
|
+
class nsScriptObjectTracer;
|
|
160
|
+
%}
|
|
161
|
+
|
|
162
|
+
/***************************************************************************/
|
|
163
|
+
[uuid(8916a320-d118-11d3-8f3a-0010a4e73d9a)]
|
|
164
|
+
interface nsIXPConnectJSObjectHolder : nsISupports
|
|
165
|
+
{
|
|
166
|
+
readonly attribute JSObjectPtr JSObject;
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
[uuid(7021D99D-6344-4CC0-96E7-943ED58792B8)]
|
|
170
|
+
interface nsIXPConnectWrappedNative : nsIXPConnectJSObjectHolder
|
|
171
|
+
{
|
|
172
|
+
/* attribute 'JSObject' inherited from nsIXPConnectJSObjectHolder */
|
|
173
|
+
readonly attribute nsISupports Native;
|
|
174
|
+
readonly attribute JSObjectPtr JSObjectPrototype;
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* These are here as an aid to nsIXPCScriptable implementors
|
|
178
|
+
*/
|
|
179
|
+
|
|
180
|
+
readonly attribute nsIXPConnect XPConnect;
|
|
181
|
+
nsIInterfaceInfo FindInterfaceWithMember(in JSVal nameID);
|
|
182
|
+
nsIInterfaceInfo FindInterfaceWithName(in JSVal nameID);
|
|
183
|
+
|
|
184
|
+
void debugDump(in short depth);
|
|
185
|
+
|
|
186
|
+
void refreshPrototype();
|
|
187
|
+
/*
|
|
188
|
+
* This returns a pointer into the instance and care should be taken
|
|
189
|
+
* to make sure the pointer is not kept past the life time of the
|
|
190
|
+
* object it points into.
|
|
191
|
+
*/
|
|
192
|
+
voidPtrPtr GetSecurityInfoAddress();
|
|
193
|
+
|
|
194
|
+
/*
|
|
195
|
+
* NOTE: Add new IDL methods _before_ the C++ block below if you
|
|
196
|
+
* add them. Otherwise the vtable won't be what xpidl thinks it
|
|
197
|
+
* is, since GetObjectPrincipal() is virtual.
|
|
198
|
+
*/
|
|
199
|
+
|
|
200
|
+
%{C++
|
|
201
|
+
/**
|
|
202
|
+
* Faster access to the native object from C++. Will never return null.
|
|
203
|
+
*/
|
|
204
|
+
nsISupports* Native() const { return mIdentity; }
|
|
205
|
+
|
|
206
|
+
#ifndef XPCONNECT_STANDALONE
|
|
207
|
+
/**
|
|
208
|
+
* Get the object principal for this wrapper. Note that this may well end
|
|
209
|
+
* up being null; in that case one should seek principals elsewhere. Null
|
|
210
|
+
* here does NOT indicate system principal or no principals at all, just
|
|
211
|
+
* that this wrapper doesn't have an intrinsic one.
|
|
212
|
+
*/
|
|
213
|
+
virtual nsIPrincipal* GetObjectPrincipal() const = 0;
|
|
214
|
+
#endif
|
|
215
|
+
|
|
216
|
+
protected:
|
|
217
|
+
nsISupports *mIdentity;
|
|
218
|
+
public:
|
|
219
|
+
%}
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
%{C++
|
|
223
|
+
#include "nsCOMPtr.h"
|
|
224
|
+
|
|
225
|
+
inline
|
|
226
|
+
const nsQueryInterface
|
|
227
|
+
do_QueryWrappedNative(nsIXPConnectWrappedNative *aWrappedNative)
|
|
228
|
+
{
|
|
229
|
+
return nsQueryInterface(aWrappedNative->Native());
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
inline
|
|
233
|
+
const nsQueryInterfaceWithError
|
|
234
|
+
do_QueryWrappedNative(nsIXPConnectWrappedNative *aWrappedNative,
|
|
235
|
+
nsresult *aError)
|
|
236
|
+
|
|
237
|
+
{
|
|
238
|
+
return nsQueryInterfaceWithError(aWrappedNative->Native(), aError);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
%}
|
|
242
|
+
|
|
243
|
+
[uuid(BED52030-BCA6-11d2-BA79-00805F8A5DD7)]
|
|
244
|
+
interface nsIXPConnectWrappedJS : nsIXPConnectJSObjectHolder
|
|
245
|
+
{
|
|
246
|
+
/* attribute 'JSObject' inherited from nsIXPConnectJSObjectHolder */
|
|
247
|
+
readonly attribute nsIInterfaceInfo InterfaceInfo;
|
|
248
|
+
readonly attribute nsIIDPtr InterfaceIID;
|
|
249
|
+
|
|
250
|
+
void debugDump(in short depth);
|
|
251
|
+
|
|
252
|
+
void aggregatedQueryInterface(in nsIIDRef uuid,
|
|
253
|
+
[iid_is(uuid),retval] out nsQIResult result);
|
|
254
|
+
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
/***************************************************************************/
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* This is a sort of a placeholder interface. It is not intended to be
|
|
261
|
+
* implemented. It exists to give the nsIXPCSecurityManager an iid on
|
|
262
|
+
* which to gate a specific activity in XPConnect.
|
|
263
|
+
*
|
|
264
|
+
* That activity is...
|
|
265
|
+
*
|
|
266
|
+
* When JavaScript code uses a component that is itself implemeted in
|
|
267
|
+
* JavaScript then XPConnect will build a wrapper rather than directly
|
|
268
|
+
* expose the JSObject of the component. This allows components implemented
|
|
269
|
+
* in JavaScript to 'look' just like any other xpcom component (from the
|
|
270
|
+
* perspective of the JavaScript caller). This insulates the component from
|
|
271
|
+
* the caller and hides any properties or methods that are not part of the
|
|
272
|
+
* interface as declared in xpidl. Usually this is a good thing.
|
|
273
|
+
*
|
|
274
|
+
* However, in some cases it is useful to allow the JS caller access to the
|
|
275
|
+
* JS component's underlying implementation. In order to facilitate this
|
|
276
|
+
* XPConnect supports the 'wrappedJSObject' property. The caller code can do:
|
|
277
|
+
*
|
|
278
|
+
* // 'foo' is some xpcom component (that might be implemented in JS).
|
|
279
|
+
* try {
|
|
280
|
+
* var bar = foo.wrappedJSObject;
|
|
281
|
+
* if(bar) {
|
|
282
|
+
* // bar is the underlying JSObject. Do stuff with it here.
|
|
283
|
+
* }
|
|
284
|
+
* } catch(e) {
|
|
285
|
+
* // security exception?
|
|
286
|
+
* }
|
|
287
|
+
*
|
|
288
|
+
* Recall that 'foo' above is an XPConnect wrapper, not the underlying JS
|
|
289
|
+
* object. The property get "foo.wrappedJSObject" will only succeed if three
|
|
290
|
+
* conditions are met:
|
|
291
|
+
*
|
|
292
|
+
* 1) 'foo' really is an XPConnect wrapper around a JSObject.
|
|
293
|
+
* 2) The underlying JSObject actually implements a "wrappedJSObject"
|
|
294
|
+
* property that returns a JSObject. This is called by XPConnect. This
|
|
295
|
+
* restriction allows wrapped objects to only allow access to the underlying
|
|
296
|
+
* JSObject if they choose to do so. Ususally this just means that 'foo'
|
|
297
|
+
* would have a property tht looks like:
|
|
298
|
+
* this.wrappedJSObject = this.
|
|
299
|
+
* 3) The implemementation of nsIXPCSecurityManager (if installed) allows
|
|
300
|
+
* a property get on the interface below. Although the JSObject need not
|
|
301
|
+
* implement 'nsIXPCWrappedJSObjectGetter', XPConnect will ask the
|
|
302
|
+
* security manager if it is OK for the caller to access the only method
|
|
303
|
+
* in nsIXPCWrappedJSObjectGetter before allowing the activity. This fits
|
|
304
|
+
* in with the security manager paradigm and makes control over accessing
|
|
305
|
+
* the property on this interface the control factor for getting the
|
|
306
|
+
* underlying wrapped JSObject of a JS component from JS code.
|
|
307
|
+
*
|
|
308
|
+
* Notes:
|
|
309
|
+
*
|
|
310
|
+
* a) If 'foo' above were the underlying JSObject and not a wrapper at all,
|
|
311
|
+
* then this all just works and XPConnect is not part of the picture at all.
|
|
312
|
+
* b) One might ask why 'foo' should not just implement an interface through
|
|
313
|
+
* which callers might get at the underlying object. There are three reasons:
|
|
314
|
+
* i) XPConnect would still have to do magic since JSObject is not a
|
|
315
|
+
* scriptable type.
|
|
316
|
+
* ii) JS Components might use aggregation (like C++ objects) and have
|
|
317
|
+
* different JSObjects for different interfaces 'within' an aggregate
|
|
318
|
+
* object. But, using an additional interface only allows returning one
|
|
319
|
+
* underlying JSObject. However, this allows for the possibility that
|
|
320
|
+
* each of the aggregte JSObjects could return something different.
|
|
321
|
+
* Note that one might do: this.wrappedJSObject = someOtherObject;
|
|
322
|
+
* iii) Avoiding the explicit interface makes it easier for both the caller
|
|
323
|
+
* and the component.
|
|
324
|
+
*
|
|
325
|
+
* Anyway, some future implementation of nsIXPCSecurityManager might want
|
|
326
|
+
* do special processing on 'nsIXPCSecurityManager::CanGetProperty' when
|
|
327
|
+
* the interface id is that of nsIXPCWrappedJSObjectGetter.
|
|
328
|
+
*/
|
|
329
|
+
|
|
330
|
+
[scriptable, uuid(254bb2e0-6439-11d4-8fe0-0010a4e73d9a)]
|
|
331
|
+
interface nsIXPCWrappedJSObjectGetter : nsISupports
|
|
332
|
+
{
|
|
333
|
+
readonly attribute nsISupports neverCalled;
|
|
334
|
+
};
|
|
335
|
+
|
|
336
|
+
/***************************************************************************/
|
|
337
|
+
|
|
338
|
+
/*
|
|
339
|
+
* This interface is implemented by outside code and registered with xpconnect
|
|
340
|
+
* via nsIXPConnect::setFunctionThisTranslator.
|
|
341
|
+
*
|
|
342
|
+
* The reason this exists is to support calls to JavaScript event callbacks
|
|
343
|
+
* needed by the DOM via xpconnect from C++ code.
|
|
344
|
+
*
|
|
345
|
+
* We've added support for wrapping JS function objects as xpcom interfaces
|
|
346
|
+
* by declaring the given interface as a [function] interface. However, to
|
|
347
|
+
* support the requirements of JS event callbacks we need to call the JS
|
|
348
|
+
* function with the 'this' set as the JSObject for which the event is being
|
|
349
|
+
* fired; e.g. a form node.
|
|
350
|
+
*
|
|
351
|
+
* We've decided that for all cases we care about the appropriate 'this' object
|
|
352
|
+
* can be derived from the first param in the call to the callback. In the
|
|
353
|
+
* event handler case the first param is an event object.
|
|
354
|
+
*
|
|
355
|
+
* Though we can't change all the JS code so that it would setup its own 'this',
|
|
356
|
+
* we can add plugin 'helper' support to xpconnect. And that is what we have
|
|
357
|
+
* here.
|
|
358
|
+
*
|
|
359
|
+
* The idea is that at startup time some code that cares about this issue
|
|
360
|
+
* (e.g. the DOM helper code) can register a nsIXPCFunctionThisTranslator
|
|
361
|
+
* object with xpconnect to handle calls to [function] interfaces of a given
|
|
362
|
+
* iid. When xpconnect goes to invoke a method on a wrapped JSObject for
|
|
363
|
+
* an interface marked as [function], xpconnect will check if the first param
|
|
364
|
+
* of the method is an xpcom object pointer and if so it will check to see if a
|
|
365
|
+
* nsIXPCFunctionThisTranslator has been registered for the given iid of the
|
|
366
|
+
* interface being called. If so it will call the translator and get an
|
|
367
|
+
* interface pointer to use as the 'this' for the call. If the translator
|
|
368
|
+
* returns a non-null interface pointer (which it should then have addref'd
|
|
369
|
+
* since it is being returned as an out param), xpconnect will attempt to build
|
|
370
|
+
* a wrapper around the pointer and get a JSObject from that wrapper to use
|
|
371
|
+
* as the 'this' for the call.
|
|
372
|
+
*
|
|
373
|
+
* If a null interface pointer is returned then xpconnect will use the default
|
|
374
|
+
* 'this' - the same JSObject as the function object it is calling.
|
|
375
|
+
*
|
|
376
|
+
* The translator can also return a non-null aIIDOfResult to tell xpconnect what
|
|
377
|
+
* type of wrapper to build. If that is null then xpconnect will assume the
|
|
378
|
+
* wrapper should be for nsISupports. For objects that support flattening -
|
|
379
|
+
* i.e. expose nsIClassInfo and that interface's getInterfaces method - then
|
|
380
|
+
* a flattened wrapper will be created and no iid was really necessary.
|
|
381
|
+
*
|
|
382
|
+
* XXX aHideFirstParamFromJS is intended to allow the trimming of that first
|
|
383
|
+
* param (used to indicate 'this') from the actual call to the JS code. The JS
|
|
384
|
+
* DOM does not require this functionality and it is **NOT YET IMPLEMENTED**
|
|
385
|
+
*
|
|
386
|
+
*/
|
|
387
|
+
|
|
388
|
+
[uuid(039ef260-2a0d-11d5-90a7-0010a4e73d9a)]
|
|
389
|
+
interface nsIXPCFunctionThisTranslator : nsISupports
|
|
390
|
+
{
|
|
391
|
+
nsISupports TranslateThis(in nsISupports aInitialThis,
|
|
392
|
+
in nsIInterfaceInfo aInterfaceInfo,
|
|
393
|
+
in PRUint16 aMethodIndex,
|
|
394
|
+
out PRBool aHideFirstParamFromJS,
|
|
395
|
+
out nsIIDPtr aIIDOfResult);
|
|
396
|
+
};
|
|
397
|
+
|
|
398
|
+
/***************************************************************************/
|
|
399
|
+
|
|
400
|
+
%{ C++
|
|
401
|
+
// For use with the service manager
|
|
402
|
+
// {CB6593E0-F9B2-11d2-BDD6-000064657374}
|
|
403
|
+
#define NS_XPCONNECT_CID \
|
|
404
|
+
{ 0xcb6593e0, 0xf9b2, 0x11d2, \
|
|
405
|
+
{ 0xbd, 0xd6, 0x0, 0x0, 0x64, 0x65, 0x73, 0x74 } }
|
|
406
|
+
%}
|
|
407
|
+
|
|
408
|
+
[uuid(b2ddc328-194b-45d6-95c6-52e487438096)]
|
|
409
|
+
interface nsIXPConnect : nsISupports
|
|
410
|
+
{
|
|
411
|
+
%{ C++
|
|
412
|
+
NS_DEFINE_STATIC_CID_ACCESSOR(NS_XPCONNECT_CID)
|
|
413
|
+
%}
|
|
414
|
+
|
|
415
|
+
void
|
|
416
|
+
initClasses(in JSContextPtr aJSContext,
|
|
417
|
+
in JSObjectPtr aGlobalJSObj);
|
|
418
|
+
|
|
419
|
+
nsIXPConnectJSObjectHolder
|
|
420
|
+
initClassesWithNewWrappedGlobal(
|
|
421
|
+
in JSContextPtr aJSContext,
|
|
422
|
+
in nsISupports aCOMObj,
|
|
423
|
+
in nsIIDRef aIID,
|
|
424
|
+
in PRUint32 aFlags);
|
|
425
|
+
|
|
426
|
+
const PRUint32 INIT_JS_STANDARD_CLASSES = 1 << 0;
|
|
427
|
+
const PRUint32 FLAG_SYSTEM_GLOBAL_OBJECT = 1 << 1;
|
|
428
|
+
const PRUint32 OMIT_COMPONENTS_OBJECT = 1 << 2;
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* wrapNative will create a new JSObject or return an existing one.
|
|
432
|
+
*
|
|
433
|
+
* The JSObject is returned inside a refcounted nsIXPConnectJSObjectHolder.
|
|
434
|
+
* As long as this holder is held the JSObject will be protected from
|
|
435
|
+
* collection by JavaScript's garbage collector. It is a good idea to
|
|
436
|
+
* transfer the JSObject to some equally protected place before releasing
|
|
437
|
+
* the holder (i.e. use JS_SetProperty to make this object a property of
|
|
438
|
+
* some other JSObject).
|
|
439
|
+
*
|
|
440
|
+
* This method now correctly deals with cases where the passed in xpcom
|
|
441
|
+
* object already has an associated JSObject for the cases:
|
|
442
|
+
* 1) The xpcom object has already been wrapped for use in the same scope
|
|
443
|
+
* as an nsIXPConnectWrappedNative.
|
|
444
|
+
* 2) The xpcom object is in fact a nsIXPConnectWrappedJS and thus already
|
|
445
|
+
* has an underlying JSObject.
|
|
446
|
+
* 3) The xpcom object implements nsIScriptObjectOwner; i.e. is an idlc
|
|
447
|
+
* style DOM object for which we can call GetScriptObject to get the
|
|
448
|
+
* JSObject it uses to represent itself into JavaScript.
|
|
449
|
+
*
|
|
450
|
+
* It *might* be possible to QueryInterface the nsIXPConnectJSObjectHolder
|
|
451
|
+
* returned by the method into a nsIXPConnectWrappedNative or a
|
|
452
|
+
* nsIXPConnectWrappedJS.
|
|
453
|
+
*
|
|
454
|
+
* This method will never wrap the JSObject involved in an
|
|
455
|
+
* XPCNativeWrapper before returning.
|
|
456
|
+
*
|
|
457
|
+
* Returns:
|
|
458
|
+
* success:
|
|
459
|
+
* NS_OK
|
|
460
|
+
* failure:
|
|
461
|
+
* NS_ERROR_XPC_BAD_CONVERT_NATIVE
|
|
462
|
+
* NS_ERROR_XPC_CANT_GET_JSOBJECT_OF_DOM_OBJECT
|
|
463
|
+
* NS_ERROR_FAILURE
|
|
464
|
+
*/
|
|
465
|
+
nsIXPConnectJSObjectHolder
|
|
466
|
+
wrapNative(in JSContextPtr aJSContext,
|
|
467
|
+
in JSObjectPtr aScope,
|
|
468
|
+
in nsISupports aCOMObj,
|
|
469
|
+
in nsIIDRef aIID);
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* Same as wrapNative, but also returns the JSObject in aVal. C++ callers
|
|
473
|
+
* can pass in null for the aHolder argument, but in that case they must
|
|
474
|
+
* ensure that aVal is rooted.
|
|
475
|
+
* aIID may be null, it means the same as passing in
|
|
476
|
+
* &NS_GET_IID(nsISupports) but when passing in null certain shortcuts
|
|
477
|
+
* can be taken because we know without comparing IIDs that the caller is
|
|
478
|
+
* asking for an nsISupports wrapper.
|
|
479
|
+
*/
|
|
480
|
+
void
|
|
481
|
+
wrapNativeToJSVal(in JSContextPtr aJSContext,
|
|
482
|
+
in JSObjectPtr aScope,
|
|
483
|
+
in nsISupports aCOMObj,
|
|
484
|
+
in nsIIDPtr aIID,
|
|
485
|
+
out JSVal aVal,
|
|
486
|
+
out nsIXPConnectJSObjectHolder aHolder);
|
|
487
|
+
|
|
488
|
+
/**
|
|
489
|
+
* wrapJS will yield a new or previously existing xpcom interface pointer
|
|
490
|
+
* to represent the JSObject passed in.
|
|
491
|
+
*
|
|
492
|
+
* This method now correctly deals with cases where the passed in JSObject
|
|
493
|
+
* already has an associated xpcom interface for the cases:
|
|
494
|
+
* 1) The JSObject has already been wrapped as a nsIXPConnectWrappedJS.
|
|
495
|
+
* 2) The JSObject is in fact a nsIXPConnectWrappedNative and thus already
|
|
496
|
+
* has an underlying xpcom object.
|
|
497
|
+
* 3) The JSObject is of a jsclass which supports getting the nsISupports
|
|
498
|
+
* from the JSObject directly. This is used for idlc style objects
|
|
499
|
+
* (e.g. DOM objects).
|
|
500
|
+
*
|
|
501
|
+
* It *might* be possible to QueryInterface the resulting interface pointer
|
|
502
|
+
* to nsIXPConnectWrappedJS.
|
|
503
|
+
*
|
|
504
|
+
* Returns:
|
|
505
|
+
* success:
|
|
506
|
+
* NS_OK
|
|
507
|
+
* failure:
|
|
508
|
+
* NS_ERROR_XPC_BAD_CONVERT_JS
|
|
509
|
+
* NS_ERROR_FAILURE
|
|
510
|
+
*/
|
|
511
|
+
void
|
|
512
|
+
wrapJS(in JSContextPtr aJSContext,
|
|
513
|
+
in JSObjectPtr aJSObj,
|
|
514
|
+
in nsIIDRef aIID,
|
|
515
|
+
[iid_is(aIID),retval] out nsQIResult result);
|
|
516
|
+
|
|
517
|
+
/**
|
|
518
|
+
* This only succeeds if the JSObject is a nsIXPConnectWrappedNative.
|
|
519
|
+
* A new wrapper is *never* constructed.
|
|
520
|
+
*/
|
|
521
|
+
nsIXPConnectWrappedNative
|
|
522
|
+
getWrappedNativeOfJSObject(in JSContextPtr aJSContext,
|
|
523
|
+
in JSObjectPtr aJSObj);
|
|
524
|
+
|
|
525
|
+
void setSecurityManagerForJSContext(in JSContextPtr aJSContext,
|
|
526
|
+
in nsIXPCSecurityManager aManager,
|
|
527
|
+
in PRUint16 flags);
|
|
528
|
+
|
|
529
|
+
void getSecurityManagerForJSContext(in JSContextPtr aJSContext,
|
|
530
|
+
out nsIXPCSecurityManager aManager,
|
|
531
|
+
out PRUint16 flags);
|
|
532
|
+
|
|
533
|
+
/**
|
|
534
|
+
* The security manager to use when the current JSContext has no security
|
|
535
|
+
* manager.
|
|
536
|
+
*/
|
|
537
|
+
void setDefaultSecurityManager(in nsIXPCSecurityManager aManager,
|
|
538
|
+
in PRUint16 flags);
|
|
539
|
+
|
|
540
|
+
void getDefaultSecurityManager(out nsIXPCSecurityManager aManager,
|
|
541
|
+
out PRUint16 flags);
|
|
542
|
+
|
|
543
|
+
nsIStackFrame
|
|
544
|
+
createStackFrameLocation(in PRUint32 aLanguage,
|
|
545
|
+
in string aFilename,
|
|
546
|
+
in string aFunctionName,
|
|
547
|
+
in PRInt32 aLineNumber,
|
|
548
|
+
in nsIStackFrame aCaller);
|
|
549
|
+
|
|
550
|
+
/**
|
|
551
|
+
* Deprecated do-nothing function.
|
|
552
|
+
*/
|
|
553
|
+
void syncJSContexts();
|
|
554
|
+
|
|
555
|
+
readonly attribute nsIStackFrame CurrentJSStack;
|
|
556
|
+
readonly attribute nsAXPCNativeCallContextPtr CurrentNativeCallContext;
|
|
557
|
+
/* pass nsnull to clear pending exception */
|
|
558
|
+
attribute nsIException PendingException;
|
|
559
|
+
|
|
560
|
+
void debugDump(in short depth);
|
|
561
|
+
void debugDumpObject(in nsISupports aCOMObj, in short depth);
|
|
562
|
+
void debugDumpJSStack(in PRBool showArgs,
|
|
563
|
+
in PRBool showLocals,
|
|
564
|
+
in PRBool showThisProps);
|
|
565
|
+
void debugDumpEvalInJSStackFrame(in PRUint32 aFrameNumber,
|
|
566
|
+
in string aSourceText);
|
|
567
|
+
|
|
568
|
+
/**
|
|
569
|
+
* Set fallback JSContext to use when xpconnect can't find an appropriate
|
|
570
|
+
* context to use to execute JavaScript.
|
|
571
|
+
*
|
|
572
|
+
* NOTE: This method is DEPRECATED.
|
|
573
|
+
* Use nsIThreadJSContextStack::safeJSContext instead.
|
|
574
|
+
*/
|
|
575
|
+
void setSafeJSContextForCurrentThread(in JSContextPtr cx);
|
|
576
|
+
|
|
577
|
+
/**
|
|
578
|
+
* wrapJSAggregatedToNative is just like wrapJS except it is used in cases
|
|
579
|
+
* where the JSObject is also aggregated to some native xpcom Object.
|
|
580
|
+
* At present XBL is the only system that might want to do this.
|
|
581
|
+
*
|
|
582
|
+
* XXX write more!
|
|
583
|
+
*
|
|
584
|
+
* Returns:
|
|
585
|
+
* success:
|
|
586
|
+
* NS_OK
|
|
587
|
+
* failure:
|
|
588
|
+
* NS_ERROR_XPC_BAD_CONVERT_JS
|
|
589
|
+
* NS_ERROR_FAILURE
|
|
590
|
+
*/
|
|
591
|
+
void
|
|
592
|
+
wrapJSAggregatedToNative(in nsISupports aOuter,
|
|
593
|
+
in JSContextPtr aJSContext,
|
|
594
|
+
in JSObjectPtr aJSObj,
|
|
595
|
+
in nsIIDRef aIID,
|
|
596
|
+
[iid_is(aIID),retval] out nsQIResult result);
|
|
597
|
+
|
|
598
|
+
// Methods added since mozilla 0.6....
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* This only succeeds if the native object is already wrapped by xpconnect.
|
|
602
|
+
* A new wrapper is *never* constructed.
|
|
603
|
+
*/
|
|
604
|
+
nsIXPConnectWrappedNative
|
|
605
|
+
getWrappedNativeOfNativeObject(in JSContextPtr aJSContext,
|
|
606
|
+
in JSObjectPtr aScope,
|
|
607
|
+
in nsISupports aCOMObj,
|
|
608
|
+
in nsIIDRef aIID);
|
|
609
|
+
|
|
610
|
+
nsIXPCFunctionThisTranslator
|
|
611
|
+
getFunctionThisTranslator(in nsIIDRef aIID);
|
|
612
|
+
|
|
613
|
+
nsIXPCFunctionThisTranslator
|
|
614
|
+
setFunctionThisTranslator(in nsIIDRef aIID,
|
|
615
|
+
in nsIXPCFunctionThisTranslator aTranslator);
|
|
616
|
+
|
|
617
|
+
nsIXPConnectJSObjectHolder
|
|
618
|
+
reparentWrappedNativeIfFound(in JSContextPtr aJSContext,
|
|
619
|
+
in JSObjectPtr aScope,
|
|
620
|
+
in JSObjectPtr aNewParent,
|
|
621
|
+
in nsISupports aCOMObj);
|
|
622
|
+
void
|
|
623
|
+
reparentScopeAwareWrappers(in JSContextPtr aJSContext,
|
|
624
|
+
in JSObjectPtr aOldScope,
|
|
625
|
+
in JSObjectPtr aNewScope);
|
|
626
|
+
|
|
627
|
+
void clearAllWrappedNativeSecurityPolicies();
|
|
628
|
+
|
|
629
|
+
nsIXPConnectJSObjectHolder
|
|
630
|
+
getWrappedNativePrototype(in JSContextPtr aJSContext,
|
|
631
|
+
in JSObjectPtr aScope,
|
|
632
|
+
in nsIClassInfo aClassInfo);
|
|
633
|
+
|
|
634
|
+
void releaseJSContext(in JSContextPtr aJSContext, in PRBool noGC);
|
|
635
|
+
|
|
636
|
+
JSVal variantToJS(in JSContextPtr ctx, in JSObjectPtr scope, in nsIVariant value);
|
|
637
|
+
nsIVariant JSToVariant(in JSContextPtr ctx, in JSVal value);
|
|
638
|
+
|
|
639
|
+
/**
|
|
640
|
+
* Preconfigure XPCNativeWrapper automation so that when a scripted
|
|
641
|
+
* caller whose filename starts with filenamePrefix accesses a wrapped
|
|
642
|
+
* native that is not flagged as "system", the wrapped native will be
|
|
643
|
+
* automatically wrapped with an XPCNativeWrapper.
|
|
644
|
+
*
|
|
645
|
+
* @param aFilenamePrefix the UTF-8 filename prefix to match, which
|
|
646
|
+
* should end with a slash (/) character
|
|
647
|
+
* @param aWantNativeWrappers whether XPConnect should produce native
|
|
648
|
+
* wrappers for scripts whose paths begin
|
|
649
|
+
* with this prefix
|
|
650
|
+
*/
|
|
651
|
+
void flagSystemFilenamePrefix(in string aFilenamePrefix,
|
|
652
|
+
in PRBool aWantNativeWrappers);
|
|
653
|
+
|
|
654
|
+
/**
|
|
655
|
+
* Restore an old prototype for wrapped natives of type
|
|
656
|
+
* aClassInfo. This should be used only when restoring an old
|
|
657
|
+
* scope into a state close to where it was prior to
|
|
658
|
+
* being reinitialized.
|
|
659
|
+
*/
|
|
660
|
+
void restoreWrappedNativePrototype(in JSContextPtr aJSContext,
|
|
661
|
+
in JSObjectPtr aScope,
|
|
662
|
+
in nsIClassInfo aClassInfo,
|
|
663
|
+
in nsIXPConnectJSObjectHolder aPrototype);
|
|
664
|
+
|
|
665
|
+
/**
|
|
666
|
+
* Create a sandbox for evaluating code in isolation using
|
|
667
|
+
* evalInSandboxObject().
|
|
668
|
+
*
|
|
669
|
+
* @param cx A context to use when creating the sandbox object.
|
|
670
|
+
* @param principal The principal (or NULL to use the null principal)
|
|
671
|
+
* to use when evaluating code in this sandbox.
|
|
672
|
+
*/
|
|
673
|
+
[noscript] nsIXPConnectJSObjectHolder createSandbox(in JSContextPtr cx,
|
|
674
|
+
in nsIPrincipal principal);
|
|
675
|
+
|
|
676
|
+
/**
|
|
677
|
+
* Evaluate script in a sandbox, completely isolated from all
|
|
678
|
+
* other running scripts.
|
|
679
|
+
*
|
|
680
|
+
* @param source The source of the script to evaluate.
|
|
681
|
+
* @param cx The context to use when setting up the evaluation of
|
|
682
|
+
* the script. The actual evaluation will happen on a new
|
|
683
|
+
* temporary context.
|
|
684
|
+
* @param sandbox The sandbox object to evaluate the script in.
|
|
685
|
+
* @param returnStringOnly The only results to come out of the
|
|
686
|
+
* computation (including exceptions) will
|
|
687
|
+
* be coerced into strings created in the
|
|
688
|
+
* sandbox.
|
|
689
|
+
* @return The result of the evaluation as a jsval. If the caller
|
|
690
|
+
* intends to use the return value from this call the caller
|
|
691
|
+
* is responsible for rooting the jsval before making a call
|
|
692
|
+
* to this method.
|
|
693
|
+
*/
|
|
694
|
+
[noscript] JSVal evalInSandboxObject(in AString source, in JSContextPtr cx,
|
|
695
|
+
in nsIXPConnectJSObjectHolder sandbox,
|
|
696
|
+
in PRBool returnStringOnly);
|
|
697
|
+
|
|
698
|
+
/**
|
|
699
|
+
* Wrap a jsval in a cross origin wrapper.
|
|
700
|
+
* @param aJSContext A context to use to create objects.
|
|
701
|
+
* @param aParent The parent to create the wrapper with.
|
|
702
|
+
* @param aWrappedObj The object to wrap.
|
|
703
|
+
*/
|
|
704
|
+
[noscript] JSVal getXOWForObject(in JSContextPtr aJSContext,
|
|
705
|
+
in JSObjectPtr aParent,
|
|
706
|
+
in JSObjectPtr aWrappedObj);
|
|
707
|
+
|
|
708
|
+
/**
|
|
709
|
+
* Tells updateXOWs to clear the scope of all of the XOWs it finds.
|
|
710
|
+
*/
|
|
711
|
+
const PRUint32 XPC_XOW_CLEARSCOPE = 1;
|
|
712
|
+
|
|
713
|
+
/**
|
|
714
|
+
* Performs an operation over all of |object|'s XOWs such as clearing
|
|
715
|
+
* their scopes or updating their concept of the current principal.
|
|
716
|
+
*
|
|
717
|
+
* @param aJSContext A context to use to perform JS operations.
|
|
718
|
+
* @param aObject Which XPCWrappedNative we should find the XOWs for.
|
|
719
|
+
* @param aWay What operation to perform.
|
|
720
|
+
*/
|
|
721
|
+
[noscript] void updateXOWs(in JSContextPtr aJSContext,
|
|
722
|
+
in nsIXPConnectWrappedNative aObject,
|
|
723
|
+
in PRUint32 aWay);
|
|
724
|
+
|
|
725
|
+
/**
|
|
726
|
+
* Root JS objects held by aHolder.
|
|
727
|
+
* @param aHolder The object that hold the JS objects that should be rooted.
|
|
728
|
+
* @param aTrace The tracer for aHolder.
|
|
729
|
+
*/
|
|
730
|
+
[noscript] void addJSHolder(in voidPtr aHolder,
|
|
731
|
+
in nsScriptObjectTracerPtr aTracer);
|
|
732
|
+
|
|
733
|
+
/**
|
|
734
|
+
* Stop rooting the JS objects held by aHolder.
|
|
735
|
+
* @param aHolder The object that hold the rooted JS objects.
|
|
736
|
+
*/
|
|
737
|
+
[noscript] void removeJSHolder(in voidPtr aHolder);
|
|
738
|
+
|
|
739
|
+
/**
|
|
740
|
+
* Note aJSContext as a child to the cycle collector.
|
|
741
|
+
* @param aJSContext The JSContext to note.
|
|
742
|
+
* @param aCb The cycle collection traversal callback.
|
|
743
|
+
*/
|
|
744
|
+
[noscript,notxpcom] void noteJSContext(in JSContextPtr aJSContext,
|
|
745
|
+
in nsCCTraversalCallbackRef aCb);
|
|
746
|
+
|
|
747
|
+
/**
|
|
748
|
+
* Get the JSClass and JSGetObjectOps pointers to use for
|
|
749
|
+
* identifying JSObjects that hold nsIXPConnectWrappedNative
|
|
750
|
+
* pointers in their private date. See IS_WRAPPER_CLASS in
|
|
751
|
+
* xpcprivate.h for details.
|
|
752
|
+
*/
|
|
753
|
+
void GetXPCWrappedNativeJSClassInfo(out JSClassConstPtr clazz,
|
|
754
|
+
out JSGetObjectOps ops1,
|
|
755
|
+
out JSGetObjectOps ops2);
|
|
756
|
+
|
|
757
|
+
/**
|
|
758
|
+
* Whether or not XPConnect should report all JS exceptions when returning
|
|
759
|
+
* from JS into C++. False by default, although any value set in the
|
|
760
|
+
* MOZ_REPORT_ALL_JS_EXCEPTIONS environment variable will override the value
|
|
761
|
+
* passed here.
|
|
762
|
+
*/
|
|
763
|
+
void setReportAllJSExceptions(in boolean reportAllJSExceptions);
|
|
764
|
+
|
|
765
|
+
/**
|
|
766
|
+
* Define quick stubs on the given object, @a proto.
|
|
767
|
+
*
|
|
768
|
+
* @param cx
|
|
769
|
+
* A context. Requires request.
|
|
770
|
+
* @param proto
|
|
771
|
+
* The (newly created) prototype object for a DOM class. The JS half
|
|
772
|
+
* of an XPCWrappedNativeProto.
|
|
773
|
+
* @param flags
|
|
774
|
+
* Property flags for the quick stub properties--should be either
|
|
775
|
+
* JSPROP_ENUMERATE or 0.
|
|
776
|
+
* @param interfaceCount
|
|
777
|
+
* The number of interfaces the class implements.
|
|
778
|
+
* @param interfaceArray
|
|
779
|
+
* The interfaces the class implements; interfaceArray and
|
|
780
|
+
* interfaceCount are like what nsIClassInfo.getInterfaces returns.
|
|
781
|
+
*/
|
|
782
|
+
[noscript,notxpcom] PRBool defineDOMQuickStubs(
|
|
783
|
+
in JSContextPtr cx,
|
|
784
|
+
in JSObjectPtr proto,
|
|
785
|
+
in PRUint32 flags,
|
|
786
|
+
in PRUint32 interfaceCount,
|
|
787
|
+
[array, size_is(interfaceCount)] in nsIIDPtr interfaceArray);
|
|
788
|
+
|
|
789
|
+
/**
|
|
790
|
+
* Returns a XPCNativeWrapper, XPCSafeJSObjectWrapper, or
|
|
791
|
+
* XPCCrossOriginWrapper for the given object based on the principal, scope,
|
|
792
|
+
* and filename flags that are passed in.
|
|
793
|
+
*
|
|
794
|
+
* Note: In C++, the out jsval parameter must already be a strong GC root.
|
|
795
|
+
*
|
|
796
|
+
* @param aJSContext
|
|
797
|
+
* A JSContext.
|
|
798
|
+
* @param aObject
|
|
799
|
+
* The object to wrap.
|
|
800
|
+
* @param aScope
|
|
801
|
+
* The scope to be used in the event that we create a
|
|
802
|
+
* XPCCrossOriginWrapper. Can be null.
|
|
803
|
+
* @param aPrincipal
|
|
804
|
+
* The principal that should be used for the wrapper. If this parameter
|
|
805
|
+
* is given then aFilenameFlags will not be calculated and will be
|
|
806
|
+
* assumed to be 0 unless another value is given. If this parameter is
|
|
807
|
+
* null then aFilenameFlags will be calculated and the value of that
|
|
808
|
+
* argument will be ignored.
|
|
809
|
+
* @param aFilenameFlags
|
|
810
|
+
* The filename flags from the script that will use this wrapper. See
|
|
811
|
+
* above (aPrincipal) for details.
|
|
812
|
+
*/
|
|
813
|
+
[noscript] JSVal getWrapperForObject(
|
|
814
|
+
in JSContextPtr aJSContext,
|
|
815
|
+
in JSObjectPtr aObject,
|
|
816
|
+
in JSObjectPtr aScope,
|
|
817
|
+
in nsIPrincipal aPrincipal,
|
|
818
|
+
in unsigned long aFilenameFlags);
|
|
819
|
+
};
|