7b816219f70814c65453533c81b2d48e8abcd8bd: Bug 1454659. Remove remaining assert for empty blob images.
Jeff Muizelaar <jmuizelaar@mozilla.com> - Tue, 17 Apr 2018 20:37:07 -0400 - rev 414209
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1454659. Remove remaining assert for empty blob images.
When we removed the empty blob image assert in
bug 1451458. We ended
up just moving it to this assert. We'll drop this one as well.
e9beb8f20e0a1708093034e8740fa9506ec1e2d7: Bug 1453881: Fix Android tests that still used task generators. r=bustage
Kris Maglione <maglione.k@gmail.com> - Tue, 17 Apr 2018 17:34:18 -0700 - rev 414208
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1453881: Fix Android tests that still used task generators. r=bustage
MozReview-Commit-ID: IAWUQn8dW3d
e138e43fb405ee86f92682d3a142f79ea80ed906: Backed out changeset 8e754a50cee5 (bug 1454788) for failing Linux rusttests on a CLOSED TREE
Gurzau Raul <rgurzau@mozilla.com> - Wed, 18 Apr 2018 03:25:37 +0300 - rev 414207
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Backed out changeset 8e754a50cee5 (
bug 1454788) for failing Linux rusttests on a CLOSED TREE
97dd772529d888777e85b202a32aa7414df24491: Bug 1452299: Make browser_ext_settings_overrides_search a less-dodgy xpcshell test. r=mkaply
Kris Maglione <maglione.k@gmail.com> - Fri, 06 Apr 2018 17:34:23 -0700 - rev 414206
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1452299: Make browser_ext_settings_overrides_search a less-dodgy xpcshell test. r=mkaply
MozReview-Commit-ID: CffGpvV9vck
8e754a50cee54e4d516657e52c6fe9779df82762: Bug 1454788 - Remove in-tree generated style binding code. r=emilio
Bobby Holley <bobbyholley@gmail.com> - Tue, 17 Apr 2018 14:38:01 -0700 - rev 414205
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1454788 - Remove in-tree generated style binding code. r=emilio
MozReview-Commit-ID: 2AjKSzYEOUB
25b2e5c62dbf1c5ef699a6705fdcdd525fd35e64: Bug 1444991 - Part 5: Make some XPCOM methods more strongly typed, r=bz
Nika Layzell <nika@thelayzells.com> - Fri, 06 Apr 2018 18:32:25 -0400 - rev 414204
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1444991 - Part 5: Make some XPCOM methods more strongly typed, r=bz
This patch goes through and changes a bunch of places in our tree which mention
this bug to use the new feature, making the methods more strongly typed.
There are probably more places in tree which could be changed, but I didn't try
to find them.
667b0dbdc19019818ee3c42654ff18b2acaa36f6: Bug 1444991 - Part 4: Handle DOM Objects in XPConnect, r=mccr8
Nika Layzell <nika@thelayzells.com> - Fri, 06 Apr 2018 18:30:09 -0400 - rev 414203
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1444991 - Part 4: Handle DOM Objects in XPConnect, r=mccr8
This patch goes through the XPConnect conversion methods, and adds cases for
T_DOMOBJECT which call the Wrap, Unwrap, and Cleanup methods from the
nsXPTDOMObjectInfo objects created in the last part.
For consistency with normal interface pointers, and because it wasn't too
complex, I also added support for including T_DOMOBJECTs in XPCOM arrays.
ae4da56bcf71aeb41efdd4cd1a7a76d59cfcf1cc: Bug 1444991 - Part 3: Generate DOMObject info for xptinfo, r=mccr8
Nika Layzell <nika@thelayzells.com> - Fri, 06 Apr 2018 18:28:42 -0400 - rev 414202
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1444991 - Part 3: Generate DOMObject info for xptinfo, r=mccr8
Unlike the other lists in xptinfo, this list contains relocations. Each
DOMObject has 3 functions generated for it, `Wrap`, `Unwrap` and `Cleanup`,
which perform the necessary actions. These are stored as function pointers.
Wrap gets the DOMObject wrapper using the DOM binding code, Unwrap gets the
underlying C++ object, and addrefs it (as XPCOM methods return native types
via getter_AddRefs), and Cleanup releases a reference to the underlying
C++ object, for when the unwrapped object is used as a temporary during a call.
To generate the code, we need to have the declaration of the native C++ type
in scope, so we also emit #include-s for the headerFiles.
c59b5be67ba225f8864219c8b8d589446d1d8459: Bug 1444991 - Part 2: Parse webidl productions in xpidl, r=mccr8
Nika Layzell <nika@thelayzells.com> - Fri, 06 Apr 2018 18:22:14 -0400 - rev 414201
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1444991 - Part 2: Parse webidl productions in xpidl, r=mccr8
They are parsed into a WebIDL object, and lowered into C++, Rust, and XPT.
For C++ code, we generate a correctly namespaced forward declaration. In Rust,
the types are exposed as `*const c_void`, as we don't have WebIDL type
information there.
The XPT code generator needs to know the header filename in order to perform
correct codegen, so we also get that information.
40a027a1f2cf5318f96e97cef8a5a7a388cb0a20: Bug 1444991 - Part 1: Read webidl's Bindings.conf, and pass it into xpidl, r=mccr8
Nika Layzell <nika@thelayzells.com> - Fri, 06 Apr 2018 18:20:49 -0400 - rev 414200
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1444991 - Part 1: Read webidl's Bindings.conf, and pass it into xpidl, r=mccr8
This information is read in order to handle correctly selecting the native
type and header files for WebIDL types.
90e79480ebc68009799722ec9882df00f3ec986f: Bug 1444745 - Part 5: Update consumers of nsIInterfaceInfo to use the nsXPTInterfaceInfo directly, r=mccr8
Nika Layzell <nika@thelayzells.com> - Wed, 04 Apr 2018 18:45:44 -0400 - rev 414199
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1444745 - Part 5: Update consumers of nsIInterfaceInfo to use the nsXPTInterfaceInfo directly, r=mccr8
Due to the decision to keep the old API on nsXPTInterfaceInfo in part 4, this is
a fairly straightforward patch.
1. I had to change a couple of consumers of `IsRetval()` due to the movement of
that flag.
2. I changed all code which held a nsIInterfaceInfo to hold an `const
nsXPTInterfaceInfo*` instead.
3. I changed code which used the nsIInterfaceInfoManager to instead call the
static methods on nsXPTInterfaceInfo.
4425a51bc16542c856d9320445540d5ac5fe5ce0: Bug 1444745 - Part 4: Rewrite xptinfo, and write a new xptcodegen.py to generate the required datastructures, r=mccr8
Nika Layzell <nika@thelayzells.com> - Wed, 04 Apr 2018 18:44:45 -0400 - rev 414198
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1444745 - Part 4: Rewrite xptinfo, and write a new xptcodegen.py to generate the required datastructures, r=mccr8
This patch contains the meat of the changes here. The following summarize the changes:
1. xptinfo.h is rewritten to expose the new interface for reading the XPT data,
The nsXPTInterfaceInfo object exposes methods with the same signatures as
the methods on nsIInterfaceInfo, to make converting code which used
nsIInterfaceInfo as easy as possible, even when those methods don't have
signatures which make a ton of sense anymore. There are also a few methods
which are unnecessary (they return `true` or similar), which should be
removed over time.
Members of the data structures are made private in order to prevent reading
them directly. Code should instead call the getter methods. This should make
it easier to change their memory representation in the future. Constructing
these structs is made possible by making the structs `friend class` with the
XPTConstruct class, which is implemented by the code generator, and is able
to access the private fields.
In addition, rather than using integers with flag constants, I opted for
using C++ bitfields to store individual flags, as I found it made it easier
to both write the code generator, and reason about the layouts of the types.
I was able to shave a byte off of each nsXPTParamInfo (4 bytes -> 3 bytes)
by shoving the flags into spare bits in the nsXPTType. Unfortunately there
was not enough room for the retval flag. Fortunately, we already depend in
our code on the retval parameter being the last parameter, so I worked
around this by removing the retval flag and instead having a `hasretval`
flag on the method itself.
2. An xptinfo.cpp file is added for out-of-line definitions of more complex
methods, and the internal implementation details of the perfect hash.
Notable is the handling of xptshim interfaces. As the type is uniform, a
flag is checked when trying to read constant information, and a different
table with pointers into webidl data structures is checked when the type is
determined to be a shim.
Ideally we could remove this once we remove the remaining consumers of the
existing shim interfaces.
3. A python code generator which takes in the json XPT files generated in the
previous part, and emits a xptdata.cpp file with the data structures. I did
my best to heavily comment the code.
This code uses the friend class trick to construct the private fields of the
structs, and avoid a dependency on the ordering of fields in xptinfo.h.
The sInterfaces array's order is determined by a generated perfect hash
which is also written into the binary. This should allow for fast lookups by
IID or name of interfaces in memory. The hash function used for the perfect
hash is a simple FNV hash, as they're pretty fast.
For perfect hashing of names, another table is created which contains
indexes into the sInterfaces table. Lookup by name is less common, and this
form of lookup should still be very fast.
4. The necessary Makefiles are updated to use the new code generator, and
generate the file correctly.
a0b17dbda47e7f356e3df848488f62a6d61ebf47: Bug 1444745 - Part 3: Replace the XPT file format with a JSON based one, r=mccr8
Nika Layzell <nika@thelayzells.com> - Wed, 04 Apr 2018 18:32:40 -0400 - rev 414197
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1444745 - Part 3: Replace the XPT file format with a JSON based one, r=mccr8
This patch adds a python script based on the old typelib.py script which takes
in a parsed XPIDL file, and generates a json-based XPT file to use as a build
intermediate. I did my best to keep the generated format simple.
e6049a77ddc24cc109ac3f95800f9ea5ad33dfa2: Bug 1444745 - Part 2: Add the xptshim and xptshimfile attributes to xpidl, r=mccr8
Nika Layzell <nika@thelayzells.com> - Wed, 04 Apr 2018 18:16:21 -0400 - rev 414196
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1444745 - Part 2: Add the xptshim and xptshimfile attributes to xpidl, r=mccr8
In the previous patch, one of the files which was deleted is ShimInterfaceInfo.
This is an implementor of nsIInterfaceInfo which exists for legacy reasons, in
order to allow Components.interfaces.nsIDOM* to have the correct constants and
IIDs associated with them.
As that file was deleted, this information now has to be stored in the typelib.
To do this, the information is moved to the xptshim and xptshimfile attributes
on the relevant xpcom interfaces.
xptshim(...) means that this xpcom interface is a shim for the WebIDL interface
with the specified name.
xptshimfile(...) is for use when the webidl interface is declared in another
interface's .webidl file, (in our case, MessageManager.webidl). It contains the
name of the parent binding, such that we can #include the correct file in our
generated code.
This patch does not add the code which uses these changes, only the parsing
logic.
da98166e73a816cb3973c799e1e9c46ec2bd9dc7: Bug 1444745 - Part 1: Clear out xptinfo and typelib to make way for the this patch, r=mccr8
Nika Layzell <nika@thelayzells.com> - Wed, 04 Apr 2018 15:55:09 -0400 - rev 414195
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1444745 - Part 1: Clear out xptinfo and typelib to make way for the this patch, r=mccr8
Unfortunately, I wasn't able to figure out a way to make firefox build & run in
the intermediate stages of these commits. Because of this, I am going to just
delete most of the code which I am deleting in the first patch, as I figure that
those are somewhat uninteresting changes, and then make the other changes in the
following patches.
In total, the following things are deleted:
1. All of xpcom/typelib, except for `xpt/tools` - this directory is being
subsumed entirely into xpcom/reflect/xptinfo.
2. Most of the code in xpcom/reflect/xptinfo, it is being rewritten to avoid
allocating and contain all of the necessary data structures.
3. idl-parser's typelib.py XPT generator, as it will be replaced.
4. Most includes of files which have been deleted.
NOTE: xpcom/typelib/xpt/tools/xpt.py was not removed, as it is used by bundling
code & bundling tests, which we don't want to remove yet.
ebfd7878694738571b24e90683ff423139859775: Bug 1446693 - Include discardJitCode in AutoTraceSession for minor GC, r=jonco
Steve Fink <sfink@mozilla.com> - Thu, 05 Apr 2018 15:46:59 -0700 - rev 414194
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1446693 - Include discardJitCode in AutoTraceSession for minor GC, r=jonco
a98ad37316f62fa1a5231c59ae71677db24f689a: Bug 1453881: Fix xpcshell self-test failure. r=bustage CLOSED TREE
Kris Maglione <maglione.k@gmail.com> - Tue, 17 Apr 2018 15:53:29 -0700 - rev 414193
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1453881: Fix xpcshell self-test failure. r=bustage CLOSED TREE
MozReview-Commit-ID: CZBYSWjeVt9
786de338af8a63c33870f606fb7afb32b49798dc: Merge mozilla-central to inbound. a=merge CLOSED TREE
Csoregi Natalia <ncsoregi@mozilla.com> - Wed, 18 Apr 2018 01:39:35 +0300 - rev 414192
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Merge mozilla-central to inbound. a=merge CLOSED TREE
7f31e4da13c67dc171105e9909b6d81203e9f14a: Bug 1453881: Part 2 - Assert that task functions do not return generators. r=florian
Kris Maglione <maglione.k@gmail.com> - Thu, 12 Apr 2018 12:37:28 -0700 - rev 414191
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1453881: Part 2 - Assert that task functions do not return generators. r=florian
In older builds, task functions were allowed to return generators, which were
automatically wrapped into tasks using Task.jsm. This model is no longer
supported, so to prevent it from passing silently, we should check for and
reject uses of the old pattern.
MozReview-Commit-ID: 4cHo7pEqYJn
b05440a8fe3fbb8406354eaadfb213760c2723b3: Bug 1453881: Part 1b - Manually fix tests that await generators in async functions. r=ochameau
Kris Maglione <maglione.k@gmail.com> - Sun, 15 Apr 2018 00:30:04 -0700 - rev 414190
Push
33861 by ccoroiu@mozilla.com at Wed, 18 Apr 2018 10:50:38 +0000
Bug 1453881: Part 1b - Manually fix tests that await generators in async functions. r=ochameau
MozReview-Commit-ID: 2oetVEj7yF