Commit Graph

17852 Commits

Author SHA1 Message Date
Brindusan Cristian
309ff0bd1f Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-05-25 03:08:34 +03:00
Nathan Froyd
f97057b242 Bug 1463893 - make nsThreadStartupEvent's destructor private; r=erahm
Whatever compiler bugs required this destructor to be public have
either long since been fixed, or the compilers themselves have become
obsolete.  Plus we get to fix a wrong comment and make another class
final in the process.
2018-05-24 16:44:37 -04:00
Gabriele Svelto
ebc0a715dc Bug 1464229 - Remove obsolete CPU-selection attributes when creating a new process on MacOS X; r=froydnj
MozReview-Commit-ID: DvqC9Vl8i6n

--HG--
extra : rebase_source : da4327f3d45f751032f908fa074be43b49af0086
2018-05-24 14:24:53 +02:00
Andreea Pavel
0dada2bb52 Merge inbound to mozilla-central. a=merge 2018-05-24 01:00:23 +03:00
Andrea Marchesini
7dcc1b6880 Bug 1434553 - Implement nsIInputStreamLength and nsIAsyncInputStreamLength - part 9 - necko and docShell, r=mayhemer, r=smaug 2018-05-23 07:12:36 +02:00
Andrea Marchesini
767ed01fe0 Bug 1434553 - Implement nsIInputStreamLength and nsIAsyncInputStreamLength - part 7 - nsIMultiplexInputStream exposes nsIInputStreamLength, r=froydnj, r=mayhemer 2018-05-23 07:12:35 +02:00
Andrea Marchesini
f0fb8aa183 Bug 1434553 - Implement nsIInputStreamLength and nsIAsyncInputStreamLength - part 6 - nsMIMEInputStream exposes nsIInputStreamLength, r=mayhmer 2018-05-23 07:12:35 +02:00
Andrea Marchesini
cb2d1c2cfe Bug 1434553 - Implement nsIInputStreamLength and nsIAsyncInputStreamLength - part 4 - SlicedInputStream exposes nsIInputStreamLength, r=froydnj 2018-05-23 07:12:35 +02:00
Andrea Marchesini
1b19a3a663 Bug 1434553 - Implement nsIInputStreamLength and nsIAsyncInputStreamLength - part 3 - InputStreamLengthHelper, r=froydnj 2018-05-23 07:12:35 +02:00
Andrea Marchesini
86aef1bfc6 Bug 1434553 - Implement nsIInputStreamLength and nsIAsyncInputStreamLength - part 1 - IDL, r=mayhemer, r=froydnj, r=smaug 2018-05-23 07:12:34 +02:00
Kris Maglione
54d867ef69 Bug 1456485: Part 2 - Allow extensions with the mozillaAddons permission to match restricted schemes. r=zombie
The schema handling for this is currently a bit ugly, for the sake of
simplifying uplift. In the figure, we should find a way to change the schema
pattern matching based on whether or not the extension is privileged.

MozReview-Commit-ID: CU9WR2Ika6k

--HG--
extra : rebase_source : 28e1c43cf0f0efc01b40757e4e65c4ac5d882258
2018-05-09 18:55:59 -07:00
Masayuki Nakano
9ac857639c Bug 1460509 - part 1: Declare NS_ERROR_EDITOR_DESTROYED error code and add a check method to TextEditRules whether it can keep handling edit action at a moment r=m_kato
This patch defines NS_ERROR_EDITOR_DESTROYED error code as an editor module
specific error code.

And creates TextEditRules::CanHandleEditAction() to check if the instance
can keep handling edit action.

MozReview-Commit-ID: 4qECwNBO0yz

--HG--
extra : rebase_source : a925a9b6840d4d06e2792b9fe276e062288b0806
2018-04-24 15:23:01 +09:00
Mike Hommey
29211f60da Bug 1463036 - Use HAVE_ARM_NEON instead of BUILD_ARM_NEON for nsUTF8UtilsNEON.cpp. r=chmanchester
There is a subtle difference between the two, and the conditions used in
nsUTF8Utils.h correspond to HAVE_ARM_NEON, not BUILD_ARM_NEON.
2018-05-23 07:17:05 +09:00
Emilio Cobos Álvarez
f47a8a463b Bug 1451256: Make toolbarpaletteitem always use box layout. r=dholbert
It doesn't really need the button magic.

MozReview-Commit-ID: 390aozlyYZa
2018-05-22 21:55:01 +02:00
Kris Maglione
8340513b0c Bug 1463287: Add QueryInterface helper macro for concrete class types. r=bz
Using concrete class types with static IIDs in QueryInterface methods is a
pretty common pattern which isn't supported by any existing helper macros.
That's lead to separate ad-hoc implementations, with varying degrees of
dodginess, being scattered around the tree.

This patch adds a helper macro with a canonical (and safe) implementation, and
updates existing ad-hoc users to use it.

MozReview-Commit-ID: HaTGF7MN5Cv

--HG--
extra : rebase_source : ace930129d85960d22bc3048ca3bb19bbbd4a63e
extra : histedit_source : 03a87f746d957789d41381e4e1bfcc4fd7eebaf2%2C9c5bae9feeeef7721105db67be0f83e0ded66bb7
2018-05-21 16:33:18 -07:00
Kris Maglione
6b12d08f7d Bug 1462937: Update callers to use nsIFile::GetDirectoryEntries as a nsIDirectoryEnumerator. r=froydnj
MozReview-Commit-ID: Iv4T1MVAF5

--HG--
extra : rebase_source : 1c518883d082884db7f9323a5acc20361228c26b
extra : histedit_source : 70a73c23d1199d3bfbb5379c78930401166c094b
2018-05-19 20:17:45 -07:00
Noemi Erli
d08fe5245d Backed out 2 changesets (bug 1460561) for failures in toolkit/components/extensions/test/mochitest/test_ext_webrequest_upload.html on a CLOSED TREE
Backed out changeset dc358abeba45 (bug 1460561)
Backed out changeset eea17fb77684 (bug 1460561)
2018-05-24 11:58:48 +03:00
Andrea Marchesini
95fd40defd Bug 1460561 - nsMultiplexInputStream should behave correctly when NS_InputStreamIsBuffered() is used - gtests, r=froydnj 2018-05-24 07:52:31 +02:00
Andrea Marchesini
4d94837722 Bug 1460561 - nsMultiplexInputStream should behave correctly when NS_InputStreamIsBuffered() is used, r=michal 2018-05-24 07:51:53 +02:00
Randell Jesup
27aae0dbeb Bug 1425930: Handle Broadcast()->Notify() calling RemoveObserver() r=froyd 2018-05-21 15:30:35 -04:00
Andreea Pavel
229a6df6d4 Backed out changeset 9d111a95cfbb (bug 1425930) for build bustages at ../testing/xpcshell/selftest.py::XPCShellTestsTests::testAddTaskSki on a CLOSED TREE 2018-05-21 18:01:29 +03:00
Randell Jesup
ae19cc881a Bug 1425930: Handle Broadcast()->Notify() calling RemoveObserver() r=froyd 2018-05-21 10:35:08 -04:00
Coroiu Cristina
7917fae007 Backed out changeset 4dce0b1b22af (bug 1425930) for causing build bustage on a CLOSED TREE 2018-05-20 23:16:12 +03:00
Randell Jesup
ceedbeadd3 Bug 1425930 - Handle Broadcast()->Notify() calling RemoveObserver(). r=froyd
--HG--
extra : rebase_source : 87dc3560125bbb6c77215777753c9fbc2a34e7f6
2018-05-18 11:15:30 -04:00
Kris Maglione
5ad7ba0bf1 Bug 1462483: Part 1 - Explicitly return a nsIDirectoryEnumerator from nsIFile::GetDirectoryEntries. r=froydnj
All of our GetDirectoryEntries implementations return a
nsIDirectoryEnumerator, and a lot of relies on this, and explicitly QIs to it.
That gets a bit ugly, and in JS code, a bit expensive. We should just return a
directory enumerator directly if that's part of the API contract.

MozReview-Commit-ID: IUeEB1Ih1Wu

--HG--
extra : rebase_source : 6fffb2d4b0f83db1fd270423a195379acef0dfe4
2018-05-17 15:06:48 -07:00
Adam Gashlin
cdb01305b3 Bug 603903 - Part 1: add RegisterApplicationRestart r=jimm
MozReview-Commit-ID: Eb389ih7CIn

--HG--
extra : rebase_source : b8657950fb08b899528d3ac3720a31769b3e14ba
2018-05-15 15:37:45 -07:00
Bogdan Tara
3287e1104c Merge inbound to mozilla-central. a=merge 2018-05-18 01:04:08 +03:00
Jan de Mooij
969bbf2190 Bug 1461938 part 1 - Store JS::Realm* instead of JSCompartment* in JSContext. r=luke
--HG--
extra : rebase_source : 7af7e5854bdbe0d750a13e0e8c70a71c2c5f88c3
2018-05-17 18:02:40 +02:00
Cosmin Sabou
30476522a7 Merge mozilla-central to inbound. a=merge 2018-05-17 18:36:08 +03:00
Cosmin Sabou
da499aac68 Merge inbound to mozilla-central. a=merge 2018-05-17 18:28:27 +03:00
Jan de Mooij
575aec161b Bug 1461677 - Rename compartment to realm in the memory reporting code. r=njn 2018-05-17 16:15:18 +02:00
Raymond FOrbes
bcb2d49204 Bug 1460929 - code coverage no longer use _exit on exit r=marco
MozReview-Commit-ID: HtI4hC97dOK

--HG--
extra : rebase_source : 95dccf7e490f9c873a181a7024e4145d55c02185
2018-05-11 15:53:22 -07:00
Cosmin Sabou
b1f0577d88 Merge mozilla-central to autoland. a=merge 2018-05-17 18:29:40 +03:00
Jan de Mooij
c7a435f1ca Bug 1461605 part 2 - Rename JS_{Enter,Leave}Compartment -> JS::{Enter,Leave}Realm. r=luke 2018-05-17 11:00:21 +02:00
Jan de Mooij
17f3983d0f Bug 1461605 part 1 - Rename CompartmentOptions to RealmOptions. r=luke,bz 2018-05-17 10:59:45 +02:00
Adam Gashlin
22530d5691 Bug 1451366: Part 1 - Wait after launch from update and restart, r=mhowell, jimm 2018-05-14 14:43:36 -07:00
Dorel Luca
7285fe0e8b Merge mozilla-central to autoland
--HG--
extra : rebase_source : 28cf949fe5cbd372058adac2d3a9d6e66902e6e3
2018-05-16 00:58:05 +03:00
Nathan Froyd
33635829ac Bug 1459721 - part 7 - remove dist_idl install manifest; r=chmanchester
We no longer need to install the IDL files to the objdir for
processing. \o/
2018-05-15 10:05:23 -04:00
Marco Bonardo
c67bc6cc9a Bug 1430023 - Get rid of some remaining localstore.rdf code. r=mossop
MozReview-Commit-ID: LqqSsb2h1Yv

--HG--
extra : rebase_source : 1a89abfbe75e17ed4be3a9fa52eef2d1db9f99bd
2018-05-09 10:49:35 +02:00
Nika Layzell
3043db4105 Bug 1457972 - Part 10: Make sure to allocate ExtendedVal inline, r=froydnj 2018-05-14 17:55:57 -04:00
Nika Layzell
ca0a0c7f42 Bug 1457972 - Part 6: Ensure the extended types list has some basic types with known indexes, r=mccr8
Currently XPCVariant has some code for working with arrays of a series of basic
types. I want to unify and simplify code which works with nsXPTTypes to always
take the topmost level type (rather than passing in an array element type when
working with an array).

This is pretty easy for most of XPConnect, but XPCVariant occasionally needs to
perform calls on made-up array types, which isn't compatible with the current
implementation. Fortunately, it only needs a very small set of array types. This
patch adds a set of simple types (mostly the arithmetic types and
TD_INTERFACE_IS_TYPE for interfaces) to the extra types array unconditionally
with a known index, for XPCVariant.

An other option I was considering was to consider the value `0xff` in the data
byte on nsXPTType to be a flag which indicates that the array element type is
actually the type immediately following the current nsXPTType object in memory,
but that was incompatible with many of the existing nsXPTType consumers which
copy the nsXPTType objects around (e.g. onto the stack), rather than always
using them by reference, so I decided it was not a good approach to take.
2018-05-14 17:55:56 -04:00
Nika Layzell
e2240ec5a2 Bug 1457972 - Part 4: Remove dipper types, r=mccr8
In XPConnect, native values are passed around within nsXPTCMiniVariant objects.
an [nsXPTCMiniVariant] contains 64-bits of data in a union type.

nsXPTCMiniVariant values are created by the platform-specific glue code and
passed into XPConnect proper when calling from C++ into JS.

When calling from JS into C++, we instead create nsXPTCVariant objects and pass
them into the glue code. These objects have extra information in addition to the
nsXPTCMiniVariant: namely they also have a `type` field with the type stored in
the variant, space for flags, and a `ptr` field which is passed over IPC instead
of the inner nsXPTCMiniVariant when a flag (`PTR_IS_DATA`) is set.

The JSValue type in XPConnect is always passed as a pointer to a JSValue object,
both for in parameters and out parameters. This is handled by making the JSValue
type be unconditionally flagged as [`IsIndirect()`] This flag is also used for
all types of outparameters.

When the `IsIndirect()` flag is set, it means that the actual data is stored in
the nsXPTCVariant's val field, and it sets the flag to tell the glue code to
instead pass the `ptr` field (which is always pointing to the `val` field for
[legacy reasons]) into the C++ code.

In contrast "dipper" is a different and super weird flag. Currently only the
string class types (nsACString & nsAString) are marked as "dipper". A "dipper"
type is always passed as an "in" type (and thus always passed "directly"), even
when it's actually an out parameter.

XPConnect treats these types as though they are pointer types (nsAString*). This
means that there is no space in the nsXPTCVariant to store the actual nsAString
types when passing from JS into C++, so these values have to be allocated by a
different mechanism (in the current code, there is a size 2 buffer for each
string type in the context and once that buffer is exceeded, we heap allocate
the nsString values).

In effect, the current state looks something like this:
+------------+---------------------+---------------------+
| type       | out (xpt/native)    | in (xpt/native)     |
+------------+---------------------+---------------------+
| TD_INT32   | indirect (int32_t*) | direct (int32_t)    |
+------------+---------------------+---------------------+
| TD_JSVAL   | indirect (JSValue*) | indirect (JSValue*) |
+------------+---------------------+---------------------+
| TD_ASTRING | direct (nsAString*) | direct (nsAString*) |
+------------+---------------------+---------------------+

This patch ensures there is enough space in the nsXPTCVariant to fit the
nsString value, and switches string class types to being unconditionally
indirect instead of using the dipper system. This allows us to delete a ton of
dipper-specific code, and unify the indirect and string class codepaths.

This only affects the size of nsXPTCVariant objects, and does not affect
nsXPTCMiniVariant objects. nsXPTCVariant objects are never allocated by the
platform-specific binding code, rather, they are allocated in an AutoTArray on
the stack as part of the CallMethodHelper object.

The size increase is a total of 1 word, so 4 bytes in 32-bit builds, and 8 bytes
in 64-bit builds, which is ignorable for stack allocated objects.

[nsXPTCMiniVariant]: https://searchfox.org/mozilla-central/rev/eb6c5214a63e20a3fff455e92c876287a8d2e188/xpcom/reflect/xptcall/xptcall.h#20-47
[`IsIndirect()`]: https://searchfox.org/mozilla-central/rev/c0d81882c7941c4ff13a50603e37095cdab0d1ea/xpcom/reflect/xptinfo/xptinfo.h#371
[legacy reasons]: https://searchfox.org/mozilla-central/rev/eb6c5214a63e20a3fff455e92c876287a8d2e188/xpcom/reflect/xptcall/xptcall.h#66-79
2018-05-14 17:55:55 -04:00
Nika Layzell
8fd69eedbf Bug 1457972 - Part 3: Remove unnecessary #includes of xptinfo headers, r=mccr8
We are going to want to include some "gecko internal" types in more places in
the codebase, and we have unused includes of some of these headers in non-libxul
files.

This patch just cleans up these unnecssary includes.
2018-05-14 17:55:55 -04:00
Nika Layzell
f20e777cdb Bug 1457972 - Part 2: Remove unused code paths in xpconnect, r=mccr8
Thanks to the changes in the previous patch, we had some unused code which we
can get rid of. This patch just cleans stuff up a bit.
2018-05-14 17:55:54 -04:00
Nika Layzell
73efb8abf3 Bug 1457972 - Part 1: Unify xpconnect cleanup codepaths, r=mccr8
It used to be that in XPConnect there were many different pieces of code for
each place where we may need to clean up some untyped values based on their
nsXPTType information. This was a mess, and meant that every time you needed to
add a new data type you'd have to find every one of these places and add support
for your new type to them.

In fact, this was bad enough that it appears that I missed some places when
adding my webidl support! Which means that in some edge cases we may clean up
one of these values incorrectly D:!

This patch adds a new unified method which performs the cleanup by looking at a
nsXPTType object. The idea is that this function takes a void* which is actually
a T* where T is a value of the nsXPTType parmaeter. It clears the value behind
the pointer to a valid state such that free-ing the memory would not cause any
leaks. e.g. it free(...)s owned pointers and sets the pointer to `nullptr`, and
truncates nsA[C]String values such that they reference the static empty string.

I also modify every one of these custom cleanup codepaths to instead call into
this unified cleanup method.

This also involved some simplification of helper methods in order to make the
implementation cleaner.
2018-05-14 17:55:54 -04:00
Nika Layzell
2d188849ae Bug 1455217 - Part 3: Use the new xpidl Promise type instead of nsISupports, r=bz 2018-05-14 17:55:54 -04:00
Nika Layzell
c9d0fe3dd2 Bug 1455217 - Part 1: Add an explicit Promise type to xpidl, r=mccr8
This type is fairly simple on the idl parsing side of things. I handle it in the
same way that special types such as ns[C]String, nsid, and jsval are handled, by
using a special native type.

The logic for converting the value between C++ and JS follows the existing logic
from the nsISupports <=> JS Promise conversions.
2018-05-14 17:55:53 -04:00
Nika Layzell
e5e1512c1e Bug 1454568 - Support [infallible] on interfaces and domobjects in xpidl, r=froydnj 2018-05-14 17:55:53 -04:00
Peter Van der Beken
50df99ec11 Bug 1453011 - Remove CONTENT_NODE. r=bz.
--HG--
extra : rebase_source : 1d28f42d3272e0ca3d171efae511d291ce5af8d3
2018-04-16 12:58:55 +02:00
Gabriele Svelto
5a541b79f4 Bug 1451005 - Add low commit-space event counts to the memory reporter; r=njn
MozReview-Commit-ID: 1jZwxj427tg

--HG--
extra : rebase_source : 5c5b674ef3094778c0e6aeb8d4abad146604be53
2018-05-16 13:58:10 +02:00