Bug 870622 - Unexpected Unix error when filename is not defined. Typechecking for |writeAtomic| function. r=yoric
Bug 872504 - Update xml files missed by bug 833625. r=mleibovic
Bug 865320 - Move the logic for deciding when to doing a merging CC into the cycle collector. r=smaug
Bug 866429 - Simplify shutdown cycle collections. r=smaug
Bug 52500 - Allow styling <input type='file'> like any other form control. r=bz

--HG--
rename : layout/reftests/forms/input-file-width-clip-ref.html => layout/reftests/forms/input/file/input-file-width-clip-ref.html
rename : layout/reftests/forms/input-file-width-clip-1.html => layout/reftests/forms/input/file/input-file-width-clip.html
Bug 860941 - Remove mArgumentsLast. r=jst

I'm not sure what it used to do, but it sure doesn't do a damn thing now.
Bug 860941 - Add an explicit flag to track modal content windows. r=jst

Tracking this with CHROME_MODAL is problematic, because that gets inherited by
any dependent windows opened by the modal content window, which may or may not
be modal content windows themselves. Thankfully, we have a few free bits lying
around.
Bug 860941 - Clarify shutdown invariants in ~nsGlobalWindow. r=jst

While the mArguments invariant should hold for _outers_, it doesn't necessarily
hold for inners, so this assertion fires reliably in automation. If mCleanedUp
is true then mArguments is definitely null, so let's disentangle this from
mArguments and be clearer about the invariants we expect.
Bug 860941 - Remove unnecessary argument cleanup in nsGlobalWindow::DetachFromDocShell. r=jst

This function proceeds to invoke CleanUp(), which also cleans this stuff up.
Bug 860941 - Separate the handling of |dialogArguments| and |arguments|, and use IDL for the |dialogArguments| getter. r=jst

This patch is bigger than I'd like it to be, but there are a lot of interlocked
dependencies and I eventually decided it was easier to just lump it together.

The semantics of |showModalDialog|/|window.dialogArguments| (an web-exposed
HTML5 feature) and |openDialog|/|window.arguments| (a XUL-proprietary feature)
are quite different. The former is essentially a security-checked JSVal, while
the latter gets converted into an array. We handled them together in the old
world, which led to a lot of confusion and muddled semantics. This patch
separates them.

This patch also eschews the roundabout resolve hook for dialogArguments in favor
of returning them directly from the XPIDL getter. This better matches the
behavior in the spec, especially because it allows dialogArguments to live on
the outer as they're supposed to, rather than the first inner that happens to
end up in the docshell. All in all, this should make this all very
straightforward to convert WebIDL when the time comes.

The current spec on the origin checks here is pretty fictional, so I've filed
https://www.w3.org/Bugs/Public/show_bug.cgi?id=21932 to fix it. This patch
should more or less preserve the current security behavior.
Bug 860941 - Make dialogArguments default to |undefined| rather than |null|. r=jst

This is correct by my reading of the spec. Quoting:

The dialogArguments IDL attribute, on getting, must check whether its browsing
context's active document's origin is the same as the dialog arguments' origin.
If it is, then the browsing context's dialog arguments must be returned
unchanged. Otherwise, if the dialog arguments are an object, then the empty
string must be returned, and if the dialog arguments are not an object, then
the stringification of the dialog arguments must be returned.
Bug 860941 - Use DialogValueHolder for returnValue. r=jst

The spec currently has returnValue as a DOMString, but this doesn't match
reality given my testing. I filed [1] to fix it.

Note that nsGlobalModalWindow is already set up to CC mReturnValue. Since
we're swapping in another CC-ed container class, we don't need to make any
changes here.

[1] https://www.w3.org/Bugs/Public/show_bug.cgi?id=21771
Bug 860941 - Stop clearing return values on navigation. r=jst

Since this stuff is a property on the browsing context, this only makes sense
as a security check. But now that we're using a DialogValueHolder, the origin
checks are taken care of. So we can kill this off.
Bug 860941 - Tests. r=jst

We augment the existing showModalDialog tests with test coverage for
dialogArguments and returnValue.
Bug 860941 - Remove assertion annotations for the now-removed mArguments assertion. r=jst
Bug 872772 - Fix up lost Xray waivers when wrapping into the content compartment. r=gabor
Bug 872772 - Tests. r=gabor
Bug 860957 - Support for invoking non-recursive targets during partial tree builds; r=glandium
Bug 848530 - Check for moz.build traversal at top of build; r=glandium

One of the first actions an invoked Makefile now does is check to see if
*any* moz.build file or Makefile.in is out of date. If so, config.status
is executed to rebuild the build backend.

Since we always perform this check as part of a build, we no longer need
special handling for out of date moz.build files during traversals. This
results in the removal of a significant amount of code!

Another upside of the change is that if a moz.build file is modified
during building, we don't (potentially) modify the build backend from
under the in-progress build. Thus the only race condition that remains
is if a moz.build is mutated during moz.build reading. This window (a
few seconds) is significantly shorter than the time of a full build
(minutes).

This patch should also enable us to remove empty Makefile.in files
without requiring a clobber.