884742db27967213b57d081b49671d1b8348f60e: Bug 1446477 - Add policy for security.enterprise_roots.enabled. r=Felipe
Michael Kaply <mozilla@kaply.com> - Mon, 02 Apr 2018 14:28:23 -0500 - rev 411400
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1446477 - Add policy for security.enterprise_roots.enabled. r=Felipe MozReview-Commit-ID: 9c3lcCRVKDx
8786eabb61a41e1b83b69bf8f1f30d135184c404: Bug 1438688, part 6 - Compile XPT information to C++ at build time. r=glandium,njn
Andrew McCreight <continuation@gmail.com> - Mon, 12 Mar 2018 10:30:35 -0700 - rev 411399
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1438688, part 6 - Compile XPT information to C++ at build time. r=glandium,njn This patch handles the actual generation of the static data structures used to represent XPT information. XPT files are generated in the same way as they are now, but they are used only as an intermediate representation to speed up incremental compilation rather than something used by Firefox itself. Instead of linking XPTs into a single big XPT file at packaging time, they are linked into a single big C++ file at build time, that defines the various static consts in XPTHeader. In xpt.py, every data structure that can get written to disk gets an additional code_gen() method that returns a representation of that data structure as C++ source code. CodeGenData aggregates this information together, handling deduplication and the final source code generation. The ctors are needed for XPTConstValue to statically initialize the different union cases without resorting to designated initializers, which are part of C99, not C++. Designated initializers appear to be supported in C++ code by Clang and GCC, but not MSVC. The ctors must be constexpr to ensure they are actually statically initialized so they can be shared between Firefox processes. I also removed an unnecessary "union" in XPTConstDescriptor. Together, these patches reduce the amount of memory reported by xpti-working-set from about 860,000 bytes to about 200,000 bytes. The remaining memory is used for xptiInterface and xptiTypelibGuts (which are thin wrappers around the XPT interfaces and header) and hash tables to speed up looking up interfaces by name or IID. That could potentially be eliminated from dynamic allocations in follow up work. These patches did not affect memory reporting because XPT arenas are still used by the remaining XPTI data structures. MozReview-Commit-ID: Jvi9ByCPa6H
e05ec1e08b46732b5552a48fe48d32108f9cca4c: Bug 1438688, part 5 - Merge XPTInterfaceDirectoryEntry and XPTInterfaceDescriptor. r=njn
Andrew McCreight <continuation@gmail.com> - Mon, 12 Mar 2018 13:36:15 -0700 - rev 411398
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1438688, part 5 - Merge XPTInterfaceDirectoryEntry and XPTInterfaceDescriptor. r=njn With fully linked XPT data, there is exactly one directory entry per descriptor, plus one per unresolved interface. There are 1200 of the former and 40 of the latter. By merging them, we save a 32 bit int per directory entry, at the cost of 11 bytes per unresolved interface. This will make VerifyAndAddEntryIfNew slightly slower because it has to do an nsID equality check rather than a null check, but I can't imagine that will matter. My main goal for this patch is to reduce the size of the executable, to avoid a regression with my static XPT information patches, but it should reduce memory a little bit, too. MozReview-Commit-ID: L35YdOuAyF4
4c437ba9d9841597038e36a6244f428b8cf01816: Bug 1438688, part 4 - Hoist arrays to XPTHeader. r=njn
Andrew McCreight <continuation@gmail.com> - Wed, 28 Feb 2018 15:12:07 -0800 - rev 411397
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1438688, part 4 - Hoist arrays to XPTHeader. r=njn To allow XPT information to be shared between processes, it needs to not contain any pointers, because they cause relocations. I've eliminated pointers by hoisting all of the variable length data structures to XPTHeader, into a single array for each type of data. These data structures now use an index into these arrays to find their first element. Strings are similar, but they are mashed into a single giant string, including embedded null terminators. Modifying the accessor methods to support this is easy, because there is only a single global instance of each of these arrays in XPTHeader. MozReview-Commit-ID: 5rgwaEBvDYl
2f243bca1af344ee781aaa616147016b26d74693: Bug 1438688, part 3 - Remove XPT files from the packaging process. r=glandium
Andrew McCreight <continuation@gmail.com> - Mon, 05 Mar 2018 14:27:29 -0800 - rev 411396
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1438688, part 3 - Remove XPT files from the packaging process. r=glandium Now that XPT files are not loaded from files at runtime, code for packaging XPT files can be removed. This means that a couple of test XPIDL interfaces will get shipped in builds to users that weren't before, but I don't think that matters much. This also puts XPT files into the local objdir for the XPIDL makefile, instead of dist/bin, because they are no longer part of the distribution. MozReview-Commit-ID: 7gWj8KWUun3
4da0e1839353bcfbd378ecf842b102a2641682c6: Bug 1438688, part 2b - Eliminate XPTHeader data structure. r=njn
Andrew McCreight <continuation@gmail.com> - Tue, 27 Mar 2018 14:04:01 -0700 - rev 411395
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1438688, part 2b - Eliminate XPTHeader data structure. r=njn Now that there is only one XPTHeader, we can devolve the fields in it to avoid some indirection. The biggest part here is getting rid of the mHeader field on xptiTypelibGuts. The array is [] instead of * to avoid a relocation, by ensuring that XPTHeader::kInterfaceDirectory as well as the data it points to cannot be changed. MozReview-Commit-ID: AzvNTNZKkfi
186f916dcc7aabfea7981702c47c666338fcf869: Bug 1438688, part 2 - Load XPT information from a static variable instead of a file. r=njn
Andrew McCreight <continuation@gmail.com> - Wed, 28 Feb 2018 12:51:39 -0800 - rev 411394
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1438688, part 2 - Load XPT information from a static variable instead of a file. r=njn This patch removes C++ code related to reading in XPT information from files. (Code related to packaging XPT files will be removed in the next patch.) This includes code in the manifest parser, in addition to the actual code for parsing files. XPT information is now loaded directly from a single static data structure, XPTHeader::kHeader, which will be automatically generated at compile time from .idl files (via .xpt files). Note that the script to do that is not added until part 6 of this patch series, so linking will fail on parts 2 through 5. I inlined XPTInterfaceInfoManager::RegisterXPTHeader into the ctor, because that is the only caller. It feels like the lock there should not be needed any more, but I left it alone for now. The forward declaration of XPTArena in xptiprivate.h is needed because it was being bootlegged via xpt_xdr.h. Some of the data structures in reflect/xptinfo/ (which wrap the xpt_struct.h data structures) are still allocated using XPTArena. Hopefully we can get rid of that in followup work. I also deleted a lot of comments in xpt_struct.h that talk about the on-disk format. I also deleted checking of the major version number, because that should not matter when the XPT information is baked into the executable. MozReview-Commit-ID: 6NJdaCWRBhU
08b1a5f904e447b46dd1f93551f01f8f10c87239: Bug 1438688, part 1 - Add methods for accessing arrays in xpt_struct.h. r=njn
Andrew McCreight <continuation@gmail.com> - Wed, 28 Feb 2018 10:07:45 -0800 - rev 411393
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1438688, part 1 - Add methods for accessing arrays in xpt_struct.h. r=njn This lets us hide later changes to how these arrays are stored. There should be no behavioral change. Some methods in xpt_struct.h are declared inline at the end of the header due to the order that classes are declared in the header. MozReview-Commit-ID: KAxUKn3sDOD
05b85c67123d3bdfb4a6c5186b05083e468e44c7: Merge mozilla-central to autoland
Dorel Luca <dluca@mozilla.com> - Tue, 03 Apr 2018 01:12:17 +0300 - rev 411392
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Merge mozilla-central to autoland
3dcf849314cef1cd37d7c700baa1444502268c35: Bug 1447607 - Correctly init and update ElfLoader::Singleton::lastError r=glandium
James Willcox <snorp@snorp.net> - Fri, 30 Mar 2018 09:57:43 -0500 - rev 411391
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1447607 - Correctly init and update ElfLoader::Singleton::lastError r=glandium MozReview-Commit-ID: r1bclXdt4V
8fbafbc46da259a054dd00feb93abc20e3140c56: Bug 1448200 - Handle the creation of the spellchecker more gracefully. r=Felipe
Blake Kaplan <mrbkap@gmail.com> - Fri, 30 Mar 2018 16:15:11 -0700 - rev 411390
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1448200 - Handle the creation of the spellchecker more gracefully. r=Felipe If the user right-clicks on an input field and that click causes us to create a spellchecker, then it won't be initialized in time to show the context menu. Handle that case more gracefully by passing that state up to the parent. MozReview-Commit-ID: 1hjxloq2OLp
173ac8b5a196d1159acb4ed4f1ddf52f28de50ba: Bug 1446482 - Add policy for integrated auth prefs. r=Felipe
Michael Kaply <mozilla@kaply.com> - Mon, 02 Apr 2018 16:09:11 -0500 - rev 411389
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1446482 - Add policy for integrated auth prefs. r=Felipe MozReview-Commit-ID: 3V7EBSiVK4A
55602e9462ae04c0023339cda4b10ffa40d481c3: Bug 1298008 Part 6: Update a devtools test that checks the computed values of auto margins in the box model. r=gl
Brad Werth <bwerth@mozilla.com> - Mon, 02 Apr 2018 09:01:34 -0700 - rev 411388
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1298008 Part 6: Update a devtools test that checks the computed values of auto margins in the box model. r=gl MozReview-Commit-ID: KBR8GkynhzV
3b3b14692cc451d37e33ef468871dbc26604f349: Bug 1298008 Part 5: Change a web-platform test that checks getComputedStyle to PASS. r=dholbert
Brad Werth <bwerth@mozilla.com> - Fri, 30 Mar 2018 18:27:27 -0700 - rev 411387
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1298008 Part 5: Change a web-platform test that checks getComputedStyle to PASS. r=dholbert MozReview-Commit-ID: DL2IZcxZydE
c37ba131291e3bc58bc64a5d188a45f28da58f05: Bug 1298008 Part 4: Add a web-platform test of getBoxQuads on block and flex boxes with auto margins. r=dholbert
Brad Werth <bwerth@mozilla.com> - Wed, 28 Mar 2018 14:46:11 -0700 - rev 411386
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1298008 Part 4: Add a web-platform test of getBoxQuads on block and flex boxes with auto margins. r=dholbert MozReview-Commit-ID: Hrw3rt1Lohq
3dd522fee1eaf538a0c736d0babc074a0b5508ed: Bug 1298008 Part 3: Update ReflowInput::CalculateBlockSideMargins to store computed values in the UsedMargin property. r=dholbert
Brad Werth <bwerth@mozilla.com> - Fri, 23 Mar 2018 12:09:48 -0700 - rev 411385
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1298008 Part 3: Update ReflowInput::CalculateBlockSideMargins to store computed values in the UsedMargin property. r=dholbert MozReview-Commit-ID: 74u7rFkiVln
94c0105f79d00f1309e413346c533752e522471d: Bug 1298008 Part 2: Make nsFlexContainer update UsedMargin property after final reflow. r=dholbert
Brad Werth <bwerth@mozilla.com> - Thu, 08 Mar 2018 17:35:47 -0800 - rev 411384
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1298008 Part 2: Make nsFlexContainer update UsedMargin property after final reflow. r=dholbert MozReview-Commit-ID: HV4uhJqWjfj
f8977bb0471f9702c8de13c625d517ae65f629a2: Bug 1298008 Part 1: Update GeometryUtils::GetBoxRectForFrame to use GetMarginRectRelativeToSelf for margin boxes. r=dholbert
Brad Werth <bwerth@mozilla.com> - Mon, 22 Jan 2018 15:12:37 -0800 - rev 411383
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
Bug 1298008 Part 1: Update GeometryUtils::GetBoxRectForFrame to use GetMarginRectRelativeToSelf for margin boxes. r=dholbert MozReview-Commit-ID: HpOi0TnqEgw
2ac2b364cf5d83c6a336622cbda6b3ddb5f1e799: servo: Merge #20501 - style: Use a more consistent style for parsing functions (from emilio:parsing-style); r=nox
Emilio Cobos Álvarez <emilio@crisal.io> - Mon, 02 Apr 2018 13:36:01 -0400 - rev 411382
Push 101643 by dluca@mozilla.com at Tue, 03 Apr 2018 04:25:27 +0000
servo: Merge #20501 - style: Use a more consistent style for parsing functions (from emilio:parsing-style); r=nox Source-Repo: https://github.com/servo/servo Source-Revision: a208d4246cf0e02a1a22196f26692bd29fb35011
9111840008a1707bfabc031a66612436d71135b0: Bug 1449395 - Remove nsStaticAtomSetup. r=froydnj
Nicholas Nethercote <nnethercote@mozilla.com> - Thu, 29 Mar 2018 11:48:18 +1100 - rev 411381
Push 101642 by nnethercote@mozilla.com at Tue, 03 Apr 2018 03:24:27 +0000
Bug 1449395 - Remove nsStaticAtomSetup. r=froydnj Each nsStaticAtomSetup contains a pointer to a static atom, and also a pointer to the canonical pointer to that static atom. Which is pretty weird! The notable thing thing about it is that these structs are in an array, and that gives us the only way to iterate over all static atoms in a single class, for registration and lookups. But thanks to various other recent changes to the implementation of static atoms, we can now put the static atoms themselves into an array, which can be iterated over. So this patch does that. With that done, nsStaticAtomSetup is no longer necessary. According to the `size` utility, on Linux64 this reduces the size of libxul.so by the following amounts: > text: 62008 bytes > data: 20992 bytes > bss: 21040 bytes > total: 104040 bytes - The bss reduction is one word per atom, because the canonical static atom pointers (e.g. nsGkAtoms::foo) have moved from .bss to .data, because they're now initialized at compile time instead of runtime. - The data reduction is one word per atom, because we remove two words per atom for the nsStaticAtomSetup removal, but gain one word per atom from the previous bullet point. - I'm not sure about the text reduction. It's three words per atom. Maybe because there is one less relocation per atom? Other notable things in the patch: - nsICSSAnonBoxPseudo and nsICSSPseudoElement now inherit from nsStaticAtom, not nsAtom, because that's more precise. - Each static atoms array now has an enum associated with it, which is used in various ways. - In the big comment about the macros at the top of nsStaticAtom.h, the pre- and post-expansion forms are now shown interleaved. The interleaving reduces duplication and makes the comment much easier to read and maintain. The comment also has an introduction that explains the constraints and goals of the implementation. - The SUBCLASS macro variations are gone. There are few enough users of these macros now that always passing the atom type has become simpler. MozReview-Commit-ID: 1GmfKidLjaU
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 tip