Commit Graph

178 Commits

Author SHA1 Message Date
Mike Hommey
142254abfa Bug 1332523 - Make the Bootstrap API entry point the same for both dependent and standalone linkage. r=bsmedberg 2017-01-13 07:29:56 +09:00
Mike Hommey
b365aff82e Bug 1306327 - Use the new XRE Bootstrap API in Desktop Firefox. r=bsmedberg
This just wraps all the XRE method calls to go through the Bootstrap API
instead of relying on the XPCOM glue methods.
2016-12-16 11:10:02 +09:00
Bob Owen
a3e759646e Bug 1035125 Part 9: Link Chromium sandbox into firefox.exe instead of having a separate DLL. r=aklotz,glandium
MozReview-Commit-ID: 1vgDPjpcwz3
2016-05-15 16:41:40 +01:00
Bob Owen
f8d0bcd85c Bug 1035125 Part 1: Back out changeset 1910714b56c6 and associated subsequent changes. r=bsmedberg
The original changeset that is being backed out had comment:
Bug 1023941 - Part 5: Loader hook to redirect the missing import.

The changes made in bug 1023941 were to work around the fact that with VS2013, msvcr120.dll imports kernel32!GetLogicalProcessorInformation, which is not available on Windows XP SP2.
In VS2015, the GetLogicalProcessorInformation requirement has moved into concrt140.dll (concurrency runtime), which we don't use.
So, now that our build infra is building with VS2015, we can remove the hooking and static runtime linking required to get the VS2013 fix to work.

In addition we need to do that to be able us to link the Chromium sandbox code into firefox.exe and get it to build and run with both VS2015 and VS2013.

MozReview-Commit-ID: 1tlXaYJ8dHH
2016-05-15 16:23:56 +01:00
Bill McCloskey
e8495048c4 Bug 1189125 - Allow xpcshell to use GTK (r=karlt) 2015-08-14 15:51:19 -07:00
David Major
d88bc86150 Bug 1023941 - Part 5: Loader hook to redirect the missing import. r=bsmedberg 2014-08-28 14:53:38 +12:00
Birunthan Mohanathas
56da97da22 Bug 866289 - Make mode lines consistent in js/xpconnect/ for 4 space indented files. r=Ms2ger 2014-04-03 07:58:00 -04:00
Mike Hommey
72dee7489a Bug 944935 - Cleanup some useless AC_CHECK_FUNCS tests in configure.in. r=gps
- HAVE_RANDOM is not checked at all.
- HAVE_STRERROR is not checked in code built using the defines from the main
  configure.
- HAVE_LCHOWN is only checked in nsinstall.c, which means the test is also wrong
  since it's checking for the target instead of the host. Also, lchown is only
  used of the -o and -g options of nsinstall, which, as far as I know, we don't
  use (and if we were, that would fail with nsinstall.py, which explicitly rejects
  them).
- HAVE_FCHMOD is only checked in nsinstall.c, so same as above about the
  correctness of the check. If it's not available, nsinstall.c falls back to
  chmod, which is fine enough for our use.
- HAVE_SNPRINTF is not checked.
- HAVE_MEMMOVE is checked in parser/expat/lib/xmlparse.c, but it's also
  unconditionally defined in expat_config.h which is included from that file.
- HAVE_SETBUF is checked in a couple files, but setbuf is C89 and C99, I think
  it's safe to assume all compilers we support are C89 and C99. Interestingly,
  windows does have it, but since we skip this check on windows, we don't use it.
- HAVE_ISATTY, same as HAVE_SETBUF, except it's POSIX instead of C89/C99.
- HAVE_FLOCKFILE is not checked at all.
- HAVE_STRTOK_R is not checked.
- HAVE_FT_SELECT_SIZE is not checked.
- HAVE_DLADDR is not checked under js/src.
- HAVE_GETPAGESIZE is not checked under js/src (it is in libffi, but ffi uses
  its own configure)
- HAVE_LSTAT64, HAVE_STAT64, HAVE_STATVFS, HAVE_STATVFS64, HAVE_TRUNCATE64 are
  not checked under js/src.
- HAVE_SBRK is not checked under js/src. Moreover,
  js/src/assembler/wtf/Platform.h defines it depending on the platform.
- HAVE_SNPRINTF is not checked under js/src.
- HAVE_HYPOT is not checked under js/src.
- HAVE__UNWIND_BACKTRACE is not checked under js/src.
2013-12-11 10:57:53 +09:00
Birunthan Mohanathas
c04d0ff563 Bug 713082 - Part 1: Remove unnecessary Util.h includes. r=Waldo 2013-12-08 21:52:33 -05:00
David Major
f3ff22e118 Bug 932100 - Part 2: Move DLL blocklist code to mozglue. r=bsmedberg, r=glandium 2013-11-12 08:31:32 -05:00
Benjamin Smedberg
cc3f631d41 Bug 920695 part A - move xpcshell code into libxul and make the xpcshell binary just a stub, r=bholley 2013-09-30 16:09:28 -04:00
Dan Gohman
3434ead5d8 Bug 918023 - SpiderMonkey: Const-qualify various static variables. r=njn 2013-09-24 08:21:22 -07:00
Ryan VanderMeulen
af14eac203 Backed out changeset 2c3d1c9241d7 (bug 918023) for Windows debug TestEndian failures.
CLOSED TREE
2013-09-24 14:09:15 -04:00
Dan Gohman
9d738eeddb Bug 918023 - SpiderMonkey: Const-qualify various static variables. r=njn 2013-09-24 08:21:22 -07:00
Jon Coppeard
a244bdc9f4 Bug 918373 - GC: Handlify various public APIs r=sfink r=bholley r=smaug 2013-09-20 10:22:59 +01:00
Bobby Holley
c5888085db Bug 905926 - Remove workaround in xpcshell. r=billm 2013-09-17 09:46:33 -07:00
Ehsan Akhgari
c732a71986 Bug 917267 - Remove some unneeded code in xpconnect; r=bholley 2013-09-17 12:38:56 -04:00
Dan Gohman
94cd9b8531 Bug 910823 - Constify static js::Class/JSClass instances. r=waldo 2013-09-11 05:49:05 -07:00
Ehsan Akhgari
41784ed79f Bug 913851 - Minimize the #includes in js/xpconnect; r=bholley
X-Git-Commit-ID: 78e6843063b303780a7dd2695dd2824a0a9c9a3c
2013-09-09 23:14:10 +02:00
Bobby Holley
8e8d8cc03c Bug 905364 - Force the SafeJSContext to fire up in xpcshell. r=bz 2013-09-06 11:35:12 -07:00
Nicholas Nethercote
e3c49dd223 Bug 909597 (part 2) - Rename jsdbgapi.{h,cpp} as {js,vm}OldDebugAPI.{h,cpp}. r=luke. 2013-08-26 19:05:20 -07:00
Ted Mielczarek
28da71de00 bug 842728 - init Breakpad from C++ in xpcshell, remove ability to init from script. r=bholley,gps 2013-08-15 14:48:12 -04:00
Phil Ringnalda
f52eb1b949 Back out c39d60483813 (bug 905364) for xpcshell and b2g desktop bustage 2013-08-16 22:38:48 -07:00
Bobby Holley
dd777f6a02 Bug 905364 - Stop using the SafeJSContext in nsScriptSecurityManager::Init. r=mrbkap
With this patch, I've confirmed that we instantiate the SafeJSContext much later
in startup, during nsAppStartupNotifier::Observe (which ends up invoking an
XPCWrappedJS). As such, this should solve a number of our startup ordering woes.
2013-08-16 20:28:17 -07:00
Ms2ger
a5a300481d Bug 903849 - Use MOZ_ASSERT consistently in XPConnect; r=bholley 2013-08-14 09:00:34 +02:00
Bobby Holley
99e1b4f2b7 Bug 901364 - Make operation callbacks runtime-wide. r=mrbkap 2013-08-12 12:54:50 -07:00
Nicholas Nethercote
f7d6f07d24 Bug 898914 (part 1) - Remove JSBool. 2013-08-08 15:53:04 -07:00
Nicholas Nethercote
966f6b5ff2 Bug 901750 - Change return type of |JSNative| from |JSBool| to |bool|. code=nnethercote,jandem. r=luke,bz. 2013-08-02 00:41:57 -07:00
Mihnea Dobrescu-Balaur
8ae5619c37 Bug 899857 - Make xpcshell default to a plugins directory only if -p is not specified. r=ted 2013-08-02 15:07:54 -07:00
Kyle Huey
3ff91f48c2 Bug 845545: Part 2 - Refactor context creation callbacks. r=bholley,mccr8 2013-08-03 16:55:39 -07:00
Bobby Holley
0df174a07e Bug 899245 - Rename JS_GetGlobalForScopeChain to JS::CurrentGlobalOrNull. r=luke
This was done with perl/grep.
2013-07-29 16:45:27 -07:00
Bobby Holley
e745188d66 Bug 870043 - Add a way to simulate the JSRuntime activity callback from xpcshell. r=mrbkap
The JS engine fires this callback when the request count drops to zero, and we
use it determine when we should hibernate the watchdog thread. But since the
request count never drops to zero for nested event loops, the watchdog never
runs in those cases. And since our xpcshell harness runs tests in a nested event
loop, this means we can't test watchdog hibernation from xpcshell. And we don't
want to test it in mochitests, because the non-determinism of timer CCs and GCs
are likely to be problematic.

Really, we should consider finding a way to integrate nested event loops into
the activity callback mechanism, and should probably get a bug on file. But such
a task is out of scope for this bug, so we just add a way to fake it.
2013-07-24 15:33:32 -07:00
Bobby Holley
dcad140069 Bug 870043 - Add support for scripted operation callbacks in XPCShell. r=mrbkap 2013-07-24 15:33:31 -07:00
Bobby Holley
ffac366450 Bug 889911 - Switch xpcshell to SystemErrorReporter with a little bit of special magic. r=mrbkap
XPCShell currently overrides all the JSContexts whose creation it observes with
its own custom error reporter. This reporter does all sorts of funny things which
we try to clean up for the most part. But there are a few very intricate
considerations at play.

First, the old xpcshell error reporter does some mumbo jumbo with the
XPCCallContext stack to try to guess whether some other code might catch the
exception. This is total garbage on a number of fronts, particularly because
the XPCCallContext stack has no concept of saved frame chains, nested event
loops, sandbox boundaries, origin boundaries, or any of the myriad of
complicating factors that determine whether or not an exception will propagate.

So we get rid of it. But this causes some crazy debugger tests to fail, because
they rely on an exception from uriloader/exthandler/nsHandlerService.js getting
squelched, and can't handle anybody reporting errors to the console service at
the particular moment of contortionism when the exception is raised. So we need
to introduce an explicit mechanism to disable the error reporter here to keep
things running.

Second, we have to be very careful about tracking the return status of the
xpcshell binary. The old code would simply flag an error code if the error
handler was invoked, and we can mostly continue to do that. But there are some
complications. See the comments.

Finally, we don't anything analogous in XPCShellEnvironment, because I have
patches in bug 889714 to remove its state-dependence on the error reporter.
I'll switch it to SystemErrorReporter in that bug.
2013-07-16 20:38:44 -07:00
Ryan VanderMeulen
bca12c75d5 Backed out 10 changesets (bug 889911, bug 889714) due to merge conflicts on a CLOSED TREE.
Backed out changeset 1a1a536121da (bug 889714)
Backed out changeset 2cd88ef9eea5 (bug 889714)
Backed out changeset 489723887eca (bug 889714)
Backed out changeset 2b38ce22cf97 (bug 889714)
Backed out changeset 87b0a59a5d51 (bug 889714)
Backed out changeset 13229bab2ba4 (bug 889714)
Backed out changeset 234bd6d1fbed (bug 889714)
Backed out changeset 4f5f62284917 (bug 889714)
Backed out changeset 18537c4436c7 (bug 889911)
Backed out changeset ca7060ab1588 (bug 889911)
2013-07-16 21:16:31 -04:00
Bobby Holley
692e2c345a Bug 889911 - Switch xpcshell to SystemErrorReporter with a little bit of special magic. r=mrbkap
XPCShell currently overrides all the JSContexts whose creation it observes with
its own custom error reporter. This reporter does all sorts of funny things which
we try to clean up for the most part. But there are a few very intricate
considerations at play.

First, the old xpcshell error reporter does some mumbo jumbo with the
XPCCallContext stack to try to guess whether some other code might catch the
exception. This is total garbage on a number of fronts, particularly because
the XPCCallContext stack has no concept of saved frame chains, nested event
loops, sandbox boundaries, origin boundaries, or any of the myriad of
complicating factors that determine whether or not an exception will propagate.

So we get rid of it. But this causes some crazy debugger tests to fail, because
they rely on an exception from uriloader/exthandler/nsHandlerService.js getting
squelched, and can't handle anybody reporting errors to the console service at
the particular moment of contortionism when the exception is raised. So we need
to introduce an explicit mechanism to disable the error reporter here to keep
things running.

Second, we have to be very careful about tracking the return status of the
xpcshell binary. The old code would simply flag an error code if the error
handler was invoked, and we can mostly continue to do that. But there are some
complications. See the comments.

Finally, we don't anything analogous in XPCShellEnvironment, because I have
patches in bug 889714 to remove its state-dependence on the error reporter.
I'll switch it to SystemErrorReporter in that bug.
2013-07-16 18:04:49 -07:00
David Anderson
0fb025f184 Rewrite CPOWs to use one actor per process (bug 853209, r=billm,bholley,smaug). 2013-07-03 00:24:32 -07:00
Bobby Holley
3897f057e6 Bug 880917 - Add an API to mutate the version on the compartment and use it from the shells. r=luke 2013-06-29 09:11:19 -06:00
Bobby Holley
ae48528424 Bug 880917 - Convert JS_SetVersion API consumers to per-compartment versions. r=luke 2013-06-29 09:11:18 -06:00
Bobby Holley
e2e92e3a29 Bug 880917 - Generalize JS_NewGlobalObject API to take CompartmentOptions. r=luke
This will be useful for versioning, as well as JIT options and all the other
stuff that eventually needs to move out of the JSContext.
2013-06-29 09:11:17 -06:00
Jan Varga
25bc314d58 Bug 884936 - Add Blob/File support to xpcshell. r=bent 2013-06-21 17:15:46 +02:00
Jon Coppeard
00ee61515b Bug 885310 - 2 Rename JSHandleFoo in js directory r=bholley 2013-06-21 14:12:46 +01:00
Jon Coppeard
9ead066471 Bug 884371 - Remove JSMutableHandleXXX from the js directory r=bholley 2013-06-19 11:32:27 +01:00
Benjamin Peterson
b97a128e7f Bug 823978 - Rename JSOPTION_STRICT to JSOPTION_EXTRA_WARNINGS. r=Waldo 2013-06-11 12:49:11 -07:00
Ryan VanderMeulen
05d0234247 Backed out changeset 1df122edcf0d (bug 823978) for bustage (again).
CLOSED TREE (again)
2013-06-11 15:27:46 -04:00
Benjamin Peterson
8192b95a4d Bug 823978 - Rename JSOPTION_STRICT to JSOPTION_EXTRA_WARNINGS. r=Waldo 2013-06-11 11:30:18 -07:00
Ryan VanderMeulen
44c3c3cd0e Backed out changeset 7e69e102a432 (bug 823978) for bustage.
CLOSED TREE
2013-06-11 14:28:17 -04:00
Benjamin Peterson
c2652ce2ee Bug 823978 - Rename JSOPTION_STRICT to JSOPTION_EXTRA_WARNINGS. r=Waldo 2013-06-11 10:55:21 -07:00
Terrence Cole
c421d37e8e Bug 880392 - Fix use-after free with exact rooting in XPCShell; r=sfink 2013-06-07 11:34:57 -07:00
Bobby Holley
1bbae1b409 Bug 877478 - Remove SetSecurityManagerForJSContext and related APIs. r=mrbkap
The only consumers here were the shells, which we've now fixed.
2013-06-04 19:56:43 -07:00