Commit Graph

15678 Commits

Author SHA1 Message Date
Gerald Squelart
5c95a7141e Bug 1332779 - InvokeAsync's MethodCall constructor should take forwarding refs instead of lvalues - r=jwwang
The aArgs parameter pack was already Forward'ed inside the constructor, so
maybe the '&&' was forgotten?

MozReview-Commit-ID: 7yg07axhZnp

--HG--
extra : rebase_source : dccd3ea5f0f1b6cadfe6bbc86c8ad34cb7f2c99e
2017-01-21 12:04:54 +11:00
Phil Ringnalda
74f10163fe Merge m-i to m-c, a=merge 2017-01-21 15:24:42 -08:00
Phil Ringnalda
72dfd3bd3f Merge m-c to m-i 2017-01-20 19:16:11 -08:00
Phil Ringnalda
68b37a46e8 Merge m-i to m-c, a=merge 2017-01-20 19:00:04 -08:00
Mike Hommey
ce74ceac47 Bug 1330533 - Remove XRE_LibFuzzerGetFuncs. r=decoder
Now that XRE_LibFuzzerGetFuncs is not used from outside libxul, it can
be inlined in LibFuzzerRunner::Run, simplifying things a little more.

--HG--
extra : rebase_source : 7a09f37444bf02983b232c964d85e7a866221f48
2017-01-12 16:02:50 +09:00
Mike Hommey
7523430127 Bug 1330533 - Use FuzzerDriver directly instead of wrapping it in a libfuzzer_main function. r=decoder
Going further from the previous changes, all libfuzzer_main really does
is call the init function, and then proceed to call the fuzzer driver
with the testing function.

So instead of calling that function for it to do all that, the
LibFuzzerRunner can just call the init function itself, and then
call the fuzzer driver with the testing function.

--HG--
extra : rebase_source : 2eb1a2ae763ef21827471cd32addceacefc1ac5d
2017-01-12 14:44:18 +09:00
Mike Hommey
92c5bff388 Bug 1330533 - Remove argc/argv arguments to XRE_LibFuzzerSetMain. r=decoder
The function given to XRE_LibFuzzerSetMain is called from somewhere that
does have access to argc/argv already, so we can avoid passing them
to XRE_LibFuzzerSetMain.

This actually might fix subtle issues with argc/argv not really matching
reality when calling the LibFuzzerMain function in the current code:
some arguments are handled before the call, and both argc and argv are
modified from within XRE_main, but the values stored for the
LibFuzzerMain call still are the original ones.

Argv being a pointer, and it not being reallocated, the value stored for
the LibFuzzerMain call points to the changed one, but argc, being an
integer, is not modified accordingly.

In fact, it's actually worse, because while the Gecko code doesn't
reallocate argv, gtk_main might. So if some GTK flag is passed on the
command line, there's also a possibility that the LibFuzzerMain function
will do a use-after-free.

So all in all, it's just better to use the set of modified argc/argv
from XRE_main instead of storing them from main().

--HG--
extra : rebase_source : 92b89909eab0fc2f67ce372b959bb0e3ed12cd2b
2017-01-12 11:59:37 +09:00
Mark Banner
16e6d381ac Bug 503613 - Remove old 'tail =' lines from xpcshell.ini files; r=gps
MozReview-Commit-ID: 62Hp5ISxowJ

--HG--
extra : rebase_source : daa8efb3409031fea553f4fd0c9d0746e38dc308
extra : histedit_source : b4c23aacf678ba0d0ac9c09191a7c494ead11a08
2017-01-18 10:30:39 +00:00
Nicholas Nethercote
12647a7223 Bug 1332577 (part 7) - Rename mozilla_get_pseudo_stack() as profiler_get_pseudo_stack(). r=mstange.
This makes it consistent with other profiler functions.

--HG--
extra : rebase_source : 1e52acdc448691b8859bb147a0c70b198b432fe2
2017-01-20 15:07:05 +11:00
Nathan Froyd
28f29930ef Bug 1324894 - use standard Monitor APIs rather than PR_Interrupt in BackgroundHangMonitor; r=darchons
Using PR_Interrupt here makes life difficult for other things, such as
moving away from NSPR synchronization primitives.
2017-01-20 16:38:12 -05:00
Nathan Froyd
1eb20054a8 Bug 1332648 - remove bogus string radix/case #defines; r=erahm
Nothing uses these defines, so we should remove them lest anybody get
confused.  I would have also removed kAutoDetect (who would want to do
this?!), but kAutoDetect is used in one place in the tree, and I didn't
want to hold up the deletion of these two items with trying to fix that
one place.
2017-01-20 16:37:35 -05:00
Boris Zbarsky
e0b13280b1 Bug 1332531. Improve the documentation for cycle collector skippability bits. r=smaug,mccr8 2017-01-20 12:59:15 -05:00
Randell Jesup
422acb55ec Bug 1332167: Unix major() and minor() return unsigned r=froydnj 2017-01-20 10:38:43 -05:00
Carsten "Tomcat" Book
709bd29d0a merge mozilla-inbound to mozilla-central a=merge 2017-01-19 16:05:22 +01:00
Boris Zbarsky
bdfd8efaa4 Bug 1330759 part 6. Make the null-termination asserts in nsStringBuffer::ToString into diagnostic asserts. r=froydnj 2017-01-18 22:20:15 -05:00
Boris Zbarsky
1ae3af9b2c Bug 1330759 part 5. Back out the nsTSubstring changes we made in bug 1324430, because they can lead to non-null-terminated nsStrings. r=froydnj 2017-01-18 22:20:15 -05:00
Benjamin Smedberg
c7352a6657 Bug 1306329 - Stop exporting XPCOM and XUL symbols. r=glandium
--HG--
extra : rebase_source : 482177f9c1026e527cff9f23b36a5076fa6d07a5
2016-12-02 12:55:34 -05:00
Kris Maglione
729b7a2019 Bug 1273251: Part 3 - Allow CallbackObject to contain a null callable. r=peterv
MozReview-Commit-ID: FCXVHouhG3I

--HG--
extra : rebase_source : f3e9325559d40bcb4017ec2505f435275d4fea7f
2016-11-14 21:25:37 -08:00
Wes Kocher
d4ced30f67 Backed out 4 changesets (bug 1306329) for 3000+ hazards a=backout
Backed out changeset 1c2f51ce3faf (bug 1306329)
Backed out changeset 6bb17b9a62d8 (bug 1306329)
Backed out changeset 377ca1419f1a (bug 1306329)
Backed out changeset ad4e531c7070 (bug 1306329)

MozReview-Commit-ID: KJAxdyJeJ6J
2017-01-17 17:55:24 -08:00
Benjamin Smedberg
d616a7ec44 Bug 1306329 - Stop exporting XPCOM and XUL symbols. r=glandium
--HG--
extra : rebase_source : 8c700498470b42279197f316d553154b1f2ed235
2016-12-02 12:55:34 -05:00
Benjamin Smedberg
11e200c0c5 Bug 1306329 - Don't build the dependent XPCOM glue. r=glandium
--HG--
extra : rebase_source : 918474e0f4c831db5ce2f3070414f928fa489ddb
2016-10-26 13:55:51 -04:00
Benjamin Smedberg
3caf6299aa Bug 1306329 - Don't build the dependent XPCOM glue. r=glandium
--HG--
extra : rebase_source : 918474e0f4c831db5ce2f3070414f928fa489ddb
2016-10-26 13:55:51 -04:00
Mike Hommey
6da931c3c8 Bug 1306327 - Remove everything related to frozen functions from the XPCOM glue. r=bsmedberg
Now that nothing is using those functions, we can remove them and limit
the scope of the standalone glue to initialize the new Bootstrap API.

--HG--
extra : rebase_source : b73845a207f8d6e632c46d089a00b7a67e1648fc
2017-01-10 17:12:43 +09:00
Mike Hommey
2330dcf840 Bug 1306327 - Move reading application.ini to XRE_main. r=bsmedberg
Reading application.ini involves using nsCOMPtr<nsIFile>, and that can
only happen through the XPCOM glue, which we eventually want to get rid
of.

So, while keeping the command line argument/environment variable
handling in nsBrowserApp, we move the actually parsing of the file to
XRE_main, where things can be handled without the XPCOM glue.

--HG--
extra : rebase_source : 487960a671476d4edae4f568c37efa6563ef4dff
2017-01-10 16:43:23 +09:00
Mike Hommey
bebd095c4c Bug 1306327 - Use the new XRE Bootstrap API in Firefox for Android. r=bsmedberg
Here, we also modify APKOpen to use the XPCOM glue loading process
instead of custom symbol resolution, so that the Bootstrap API can be
used in a more straightforward manner.

--HG--
extra : rebase_source : 55037ba30ca66a090b73923a3ce8df5b054bf47a
2016-12-17 06:48:01 +09:00
Mike Hommey
5f3d2e8810 Bug 1306327 - Add a new XRE Bootstrap API that wraps all the XRE methods. r=bsmedberg
This is the first step towards changing how nsBrowserApp and other current
XPCOM glue users start up Gecko.

The goal here is to expose the same API via a single object with a
VTable instead of the current XPCOM glue machinery. Instead of creating
an entirely new API and changing everything to use it, we go forward
with smaller steps for a more comprehensible transition.

--HG--
extra : rebase_source : c2cf90ab3bb812b9ea75c70c9766f1a47ea50828
2016-12-15 16:46:18 +09:00
Mike Hommey
17436e8731 Bug 1306327 - Remove NS_XRE_DLL_BLOCKLIST_ENABLED. r=bsmedberg
Instead of having nsBrowserApp.cpp set a flag in XREAppData to indicate
whether the DLL blocklist properly initialized, just have XRE code ask
the blocklist itself.

--HG--
extra : rebase_source : e872853481acce68b325909e476d009aec878701
2017-01-10 09:10:36 +09:00
Mike Hommey
af19e1f051 Bug 1306327 - Remove the flags argument to XRE_main. r=bsmedberg
This hasn't been used since the removal of the Metro code in bug
1039866, close to two years ago.

--HG--
extra : rebase_source : 58ec1ce63e4231c8006cafd3424675f14ddbf9f1
2017-01-10 14:15:50 +09:00
Mike Hommey
a92655a398 Bug 1306327 - Remove XPCOMGlueEnablePreload. r=froydnj
Back in bug 632404, when the function was added, preloading was
conditional. But after some A/B testing, the conclusion in bug 771745
was that we would just do preloading unconditionally.

Which means in practice, we don't need to have a function to enable it
manually anymore, since we're always enabling it.

--HG--
extra : rebase_source : c76307c13c057e87e1fe4564b82113fbfa20d382
2016-12-15 17:37:53 +09:00
Hiroyuki Ikezoe
a4cf573971 Bug 1330824 - Add truncate for nsAString and nsACString. r=mystor
MozReview-Commit-ID: 2ND5ra3buxI
2017-01-14 15:02:14 +09:00
Ben Kelly
10f39e4fd9 Bug 1331038 Make nsPipe handle OOM conditions gracefully. r=froydnj 2017-01-13 17:11:01 -08:00
JW Wang
84387b56fe Bug 1328130. Part 3 - remove unused functions and fix comments. r=gerald
MozReview-Commit-ID: JURmHasmhOU

--HG--
extra : rebase_source : f2113e74e5abb0d57b2c70eb7b47b5d6c2829a3d
extra : intermediate-source : 88255f6011134a455b3bee888ebee256209f8e56
extra : source : 5371fe5d527981419953fae96d5cc80d6d15b413
2017-01-11 23:52:24 +08:00
JW Wang
4f5754ca55 Bug 1328130. Part 2 - remove MozPromiseRequestHolder::Begin(). r=gerald
MozReview-Commit-ID: JL27n0Era6E

--HG--
extra : rebase_source : e6de76db3fb35b110370497f4060ea1c3f527f23
extra : intermediate-source : 5bc39a45ef042b895a5abda59cc0796e8cfb4be3
extra : source : a7f7faded7b112e8a971ca96b091a9a22214a2bb
2017-01-11 16:33:29 +08:00
JW Wang
bc040ae51e Bug 1328130. Part 1 - add ->Track(). r=gerald
MozReview-Commit-ID: FW7Urv6nyOS

--HG--
extra : rebase_source : 256576fa8b1e5bb6587e280512619f5d7e74a0cc
extra : intermediate-source : 82d0eea2d53edd8d538bc2d0fd0116046fb489b7
extra : source : 9f4301a98b836ec5fc4ca9e49e6a32f0232b71e5
2017-01-11 15:38:37 +08:00
Carsten "Tomcat" Book
3ad97e202a merge mozilla-inbound to mozilla-central a=merge 2017-01-12 10:14:43 +01:00
Eric Rahm
acbdb31633 Bug 1322735 - Remove OBSERVE_LATE_WRITES define. r=glandium
OBSERVE_LATE_WRITES is now always defined, we can just remove it.

MozReview-Commit-ID: El6RnzZnXBN

--HG--
extra : rebase_source : 95fe63562b88c61ee5915e28a3a8b89c985042db
2016-12-20 15:29:05 -08:00
Eric Rahm
87cfbc1b65 Bug 1322735 - Remove MOZ_STACKWALKING define. r=glandium
With frame pointer omission disabled we should always have usable stacks on Windows. This allows us to remove the MOZ_STACKWALKING define as it will always be enabled.

MozReview-Commit-ID: 54xs3Hf1r4P

--HG--
extra : rebase_source : dfaf13fb4c2185985f4f074c338ccf1fef8f3c94
2016-12-20 15:11:36 -08:00
John David Anglin
0beeba79e1 Bug 1325495 - xpcom: Save %r26 in arg0 stack slot on hppa with gcc. r=froydnj
In the 32-bit parisc runtime, the first four non floating-point
arguments are passed in registers (%r26, %r25, %r24 and %r23).
The remaining arguments are passed on the stack. There are four
reserved slots on the stack that the callee can use to save the
first four argument registers if the callee desires.

The StubN functions are special in that arguments are not explicitly
declared. %r26 is used for the "self" pointer. The call to SharedStub(n)
loads n into %r26 and clobbers the "self" pointer in %r26. The hppa
SharedStub implementation expects to find the "self" pointer on the
stack in the slot reserved for StubN. However, gcc doesn't copy any
arguments to the stack as no arguments are declared for StubN. Even
if it did, there's no guarantee that we could force gcc to save the
argument on the stack as that's more expensive than copying to a
free register. Thus, we need to copy %r26 to the stack slot manually.
2017-01-12 06:37:13 +09:00
John Paul Adrian Glaubitz
fde7f4bca8 Bug 1275204 - Use OpenBSD/sparc64 xptcall stubs on Linux/sparc64. r=froydnj 2017-01-11 16:04:34 +09:00
Nicholas Nethercote
949658eb73 Bug 1329857 - Remove NS_METHOD and NS_CALLBACK. r=froydnj.
Bug 1295053 removed most uses of NS_METHOD and NS_CALLBACK, but one use was
unintentionally left behind (in the XPIDL parser) and another has since crept
in (in MediaDrmCDMProxy.h).

So this patch removes NS_METHOD and NS_CALLBACK. NS_METHOD_(nsresult) and
NS_CALLBACK_(nsresult, T) can still be used for the same purpose, but those
alternatives are less likely to be used unintentionally.

--HG--
extra : rebase_source : a50fc7b2a64a36d1ca9beda81bc0edb8f2ec1934
2017-01-10 14:08:43 +11:00
Nathan Froyd
ec503a0996 Bug 1329718 - remove nsISupportsVoid and associated machinery; r=erahm
Nothing uses it, it's virtually impossible to use from script, and there
are better ways to pass a |void*| around in C++.
2017-01-10 16:31:48 -05:00
Nathan Froyd
0ac6ef352e Bug 1298676 - part 2 - add an AutoIOInterposerDisable RAII class; r=aklotz
This will ensure the I/O Interposer is re-enabled after temporarily
disabling it.
2017-01-10 16:31:25 -05:00
Nathan Froyd
9d007ffa3e Bug 1298676 - part 1 - add IOInterposer::Enable(); r=aklotz
In some parts of the crash reporter, we need to disable I/O
interposition, then turn it back on.  We didn't have a function for
re-enabling the I/O interposer...until now.
2017-01-10 16:31:25 -05:00
Carsten "Tomcat" Book
89882dc5f4 merge mozilla-inbound to mozilla-central a=merge 2017-01-10 12:11:31 +01:00
Gerald Squelart
86723427e8 Bug 1329319 - gtest for issue with NewRunnableMethod on a non-refcounted base class method - r=froydnj
This test alone would fail to even build without the previous patch,
demonstrating the issue at hand, where the method-pointer from the base class
forces NewRunnableMethod to store a pointer to that base class in a RefPtr,
which is not possible when that base class is not ref-counted.

MozReview-Commit-ID: 9XaQ8SwMqVo

--HG--
extra : rebase_source : 3ba0e13fb76ef2c5969084334c2f11e3f445d11f
2017-01-09 11:09:59 +11:00
Gerald Squelart
1cc4e2c254 Bug 1329319 - Allow NewRunnableMethod to method of a non-refcounted base class - r=froydnj
This is done by storing the object pointer based on the exact pointee type,
instead of as hinted by the method-pointer, which could be a non-refcounted
base class.

The stored pointer type is statically-checked to be derived from (or the same
as) the class type from the method-pointer, to prevent misuses.

One change had to be done in TrackBuffersManager, as it was passing another
type and relying on implicit pointer conversions. A simple `.get()` to pass
the raw pointer type (to be stored in a RefPtr) fixed that one issue.

MozReview-Commit-ID: 4kH0XdjB5Rk

--HG--
extra : rebase_source : 40ad68820cfce469ecda272f430062f05dfcd09f
2017-01-10 10:49:08 +11:00
Kate McKinley
edae411c07 Bug 1313595 - Lower HSTS priming timeout r=mayhemer
MozReview-Commit-ID: 5wOqtYM1MfD

--HG--
extra : rebase_source : 78cb81a9223c80b93b2c574846111eb3bad91c03
2016-12-08 11:07:55 -10:00
Wes Kocher
b0df943433 Backed out 2 changesets (bug 1329319) because it will not build a=backout
Backed out changeset ae96a44e6a8f (bug 1329319)
Backed out changeset a75ecabf7129 (bug 1329319)

MozReview-Commit-ID: HQ3on7jlZXN
2017-01-09 15:46:42 -08:00
Gerald Squelart
53855b51b8 Bug 1329319 - gtest for issue with NewRunnableMethod on a non-refcounted base class method - r=froydnj
This test alone would fail to even build without the previous patch,
demonstrating the issue at hand, where the method-pointer from the base class
forces NewRunnableMethod to store a pointer to that base class in a RefPtr,
which is not possible when that base class is not ref-counted.

MozReview-Commit-ID: 9XaQ8SwMqVo

--HG--
extra : rebase_source : 5c752e1a16af8e8f976853396228abff2c76c43c
2017-01-09 11:09:59 +11:00
Gerald Squelart
189314d9cf Bug 1329319 - Allow NewRunnableMethod to method of a non-refcounted base class - r=froydnj
This is done by storing the object pointer based on the exact pointee type,
instead of as hinted by the method-pointer, which could be a non-refcounted
base class.

The stored pointer type is statically-checked to be derived from (or the same
as) the class type from the method-pointer, to prevent misuses.

One change had to be done in TrackBuffersManager, as it was passing another
type and relying on implicit pointer conversions. A simple `.get()` to pass
the raw pointer type (to be stored in a RefPtr) fixed that one issue.

MozReview-Commit-ID: 4kH0XdjB5Rk

--HG--
extra : rebase_source : 3eb7fa3cb1873f71b4d5e7118d2dc48f6fdf2874
2017-01-09 11:11:16 +11:00