Граф коммитов

2417 Коммитов

Автор SHA1 Сообщение Дата
Bobby Holley eb2e873e6c 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
Bobby Holley 8676271e71 Bug 889911 - Replace mozJSLoaderErrorReporter with SystemErrorReporter and remove the former. r=mrbkap 2013-07-16 20:38:44 -07:00
Bobby Holley 55116a74ad Bug 889911 - Introduce xpc::SystemErrorReporter, roughly based on mozJSComponentLoader's error reporter. r=mrbkap 2013-07-16 20:38:44 -07:00
Ryan VanderMeulen e168631670 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 c1403cacc4 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
Bobby Holley feb75218b2 Bug 889911 - Introduce xpc::SystemErrorReporter, roughly based on mozJSComponentLoader's error reporter. r=mrbkap 2013-07-16 18:04:48 -07:00
Brian O'Keefe f4815f2203 Bug 883502 - Part 1: Move 'chromium_config.mk' includes after rules.mk. r=gps 2013-07-04 08:28:43 -04:00
Gabor Krizsanits 5cbb7ab212 Bug 874158 - Crash in GetNativeForGlobal. r=bholley 2013-07-16 15:04:28 +02:00
Boris Zbarsky 2e1a03a7a3 Bug 838146 part 10. Turn on WebIDL bindings for Navigator. r=smaug 2013-07-12 10:37:23 -04:00
Ryan VanderMeulen 0c9a0a1b98 Backed out 4 changesets (bug 889911) for Windows bustage.
Backed out changeset 5e55ddfc9dc3 (bug 889911)
Backed out changeset 5e296989dd3d (bug 889911)
Backed out changeset 6e48a408d1de (bug 889911)
Backed out changeset e4ec71ab768f (bug 889911)
2013-07-15 15:28:29 -04:00
Bobby Holley 5ceb4432cd 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-15 11:44:51 -07:00
Bobby Holley fb145e40d2 Bug 889911 - Replace mozJSLoaderErrorReporter with SystemErrorReporter and remove the former. r=mrbkap 2013-07-15 11:44:50 -07:00
Bobby Holley 9d6c49843f Bug 889911 - Introduce xpc::SystemErrorReporter, roughly based on mozJSComponentLoader's error reporter. r=mrbkap 2013-07-15 11:44:49 -07:00
Trevor Saunders f33ade0d68 bug 887483 - remove a bunch of useless assignments to FORCE_STATIC_LIB implied by LIBXUL_LIBRARY=1 r=mshal 2013-07-11 11:06:34 -04:00
Gregory Szorc 19850b9b8e Bug 891632 - Port NO_DIST_INSTALL to moz.build; r=joey
Many of the moved variables are likely not needed. moz.build should one
day validate the sandbox's output and error if "useless" variables are
present.

--HG--
extra : rebase_source : 3abdea056c18d00ede8c15b37db60532eca58630
2013-07-10 12:08:21 -07:00
Ryan VanderMeulen 03e73d9988 Backed out changeset b7d6458d2a3c (bug 887483) for apparently causing Android robocop-2 failures. 2013-07-10 13:51:28 -04:00
Trevor Saunders 63ed0e9589 bug 887483 - rm a bunch of useless assignments to FORCE_STATIC_LIB r=mshal 2013-06-25 14:29:26 -04:00
Ryan VanderMeulen d806e1e244 Merge m-c to inbound. 2013-07-10 09:45:16 -04:00
Olli Pettay b002b30b2a bug 789919, (snow-white) make addref/release of CCable objects faster by removing indirect refcnt increase/decrease, r=mccr8, test changes r=ehsan
--HG--
extra : rebase_source : 2a3b22425c14d6daedc91d62a652c34431acd2fb
2013-07-09 13:30:58 -04:00
Peter Van der Beken 343818a218 Bug 734503 - Add new DOM binding for TouchList; r=jst. 2013-07-10 11:53:53 +02:00
Bobby Holley ce5879ea33 Bug 867486 - Remove |Components| from content sandboxes. r=gabor 2013-07-08 10:05:31 -07:00
Joey Armstrong 38ca368790 bug 870407: cleanup bug. r=mshal 2013-07-08 11:53:00 -04:00
Randy Lin 1163c249a3 Bug 803414 - Part 0: Add RecordErrorEvent. r=smaug 2013-06-20 14:06:39 +08:00
Ehsan Akhgari fd1d2f2354 Bug 890382 - Implement a Web IDL event constructor for IDBVersionChangeEvent; r=smaug 2013-07-05 13:57:28 -04:00
Masatoshi Kimura 133cedaf8b Bug 889148 - Remove legacy QS/classinfo bits from events even more. r=smaug, peterv 2013-07-05 07:53:59 +09:00
Bobby Holley a2697cd423 Bug 860085 - Remove XPCCallContext refcounting optimization. r=gabor
We only use XPCCallContext for reflector calls now, at which point an AddRef
is totally insignificant. Using an auto pointer here lets us clean up some
code, and makes the XPCCallContext destructor start to look pretty sane. :-)
2013-07-03 11:05:20 -06:00
Bobby Holley 6aa989b495 Bug 860085 - Remove nsIXPConnect::ReleaseJSContext. r=gabor 2013-07-03 11:05:19 -06:00
Bobby Holley 919587b427 Bug 860085 - Stop using XPConnect::ReleaseJSContext in nsJSEnvironment::DestroyJSContext. r=gabor,mccr8
We now have the invariant that any in-use cx must be pushed onto the JSContext
stack with one of our stack-scoped automatic nsCxPusher classes. These classes
hold a strong ref to the nsIScriptContext associated with the JSContext they
push (if any). This means that, if this cx is in use, we will always have at
least one strong reference to the nsJSContext coming from the stack, meaning
that neither the destructor nor the Unlink() implementation will be called.
So we don't need to do any deferred destruction of the cx anymore.
2013-07-03 11:05:19 -06:00
Bobby Holley 6c10fadc89 Bug 860085 - Make XPCJSContextStack manipulators private to enforce that we go through the RAII classes. r=gabor
With this change, we can be very, very sure that we never push an nsJSContext
without instantiating an AutoCxPusher on the stack.
2013-07-03 11:05:19 -06:00
Bobby Holley fbb5534815 Bug 860085 - Remove unused AutoPopJSContext. r=gabor 2013-07-03 11:05:19 -06:00
Bobby Holley 9316537b6d Bug 860085 - Rename xpc::{Push,Pop}JSContext and make them assert against DOM JSContexts. r=gabor 2013-07-03 11:05:18 -06:00
Bobby Holley e11487b445 Bug 860085 - Use an AutoPushJSContext in XPCCallContext instead of doing it manually. r=gabor 2013-07-03 11:05:18 -06:00
Kyle Huey ab927a2cc9 Bug 885866: Separate deferred finalization from XPConnect so we can use it off the main thread. r=mccr8, peterv, bsmedberg, jorendorff 2013-07-09 07:28:15 -07:00
David Anderson 71e7bc4fc9 Rewrite CPOWs to use one actor per process (bug 853209, r=billm,bholley,smaug). 2013-07-03 00:24:32 -07:00
Bobby Holley e9b6ede2ec Bug 888104 - Fix xpcshell linkage error on windows. r=me CLOSED TREE 2013-07-02 16:34:33 -06:00
Joey Armstrong 53426849e7 bug 870407: move CMMSRCS to mozbuild (file batch #3). r=mshal 2013-07-02 17:09:08 -04:00
Bobby Holley 18fac862c5 Bug 888104 - Reimplement Auto*JSContext in terms of AutoCxPusher. r=gabor 2013-07-02 14:39:03 -06:00
Bobby Holley d21616e1f1 Bug 888104 - Introduce AutoCxPusher and reimplement nsCxPusher in terms of it. r=gabor 2013-07-02 14:39:03 -06:00
Bobby Holley a53d0adad4 Bug 888104 - Move nsCxPusher's mScx grabbing code into the common helper method. r=gabor
This function is called by Push and PushNull, so with the added null check this
is equivalent. This facilitates the refactoring in the next patch.
2013-07-02 14:39:02 -06:00
Mike Shal 884dee0b5a Bug 880245 - Move EXTRA_JS_MODULES to moz.build (batch #4); r=joey 2013-07-01 11:34:30 -04:00
Jeff Walden 6f242a6502 Bug 888106 - Add too-much-recursion detection to isExtensible tests, and make the isExtensible hook capable of failing. r=bholley, r=ejpbruel
--HG--
extra : rebase_source : fe7345322f87dd214aa5122ea8704750e8b2375a
2013-06-28 14:01:09 -07:00
Terrence Cole 9ecda8d7ad Bug 878160 - GC: post barrier weak references in the browser - part 2 browser r=terrence r=billm
--HG--
extra : rebase_source : a1856a7dce28da5086f6fbeaeda15596193aa7ad
2013-06-05 16:40:02 -07:00
Ms2ger 12bdf91609 Bug 888579 - Remove some code that handled WN Nodes; r=bholley 2013-07-01 09:14:36 +02:00
Ms2ger a2f191d90a Bug 887909 - Convert IDBFileHandle to WebIDL; r=janv 2013-07-01 09:02:37 +02:00
Bobby Holley 439ae70017 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 05ff64f03e Bug 880917 - Remove XPConnect version munging test. r=luke
This test calls the version() shell command, and expects it to work like an
override, rather than the dumb compartment-mutator that I'm turning it into.
Let's just kill the test.
2013-06-29 09:11:18 -06:00
Bobby Holley 306f8a67ea Bug 880917 - Convert JS_SetVersion API consumers to per-compartment versions. r=luke 2013-06-29 09:11:18 -06:00
Bobby Holley fbb93f2c02 Bug 880917 - Add support for "latest" as a version to evalInSandbox, and use it for sjs files. r=luke
Sandboxes always default to JSVERSION_DEFAULT in the browser. But XPCShell sets
up a ContextCallback that does JS_SetVersion(cx, JSVERSION_LATEST) on every
context that gets created, including the ephemerial Sandbox JSContexts. Since
httpd.js runs in xpcshell and evaluates SJS in a sandbox, we've (somewhat
accidentally) supported JSVERSION_LATEST in SJS, which certain SJS files have
taken advantage of. Let's continue to support it explicitly.
2013-06-29 09:11:18 -06:00
Bobby Holley 270f94dd2f 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
Justin Lebar 3da6ed220e Bug 820686 - Follow-up: s/MOZ_ASSUME_NOT_REACHED/MOZ_ASSUME_UNREACHABLE/. rs=waldo
I'd meant to do this, but I only got as far as the comment in mfbt.  Oops!

--HG--
extra : rebase_source : 3cfe3ef1bf401eb7d9a10fcabcfb39008e9553a4
2013-06-28 19:20:12 -07:00