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
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 tip