6d3811accd7605f311a83a76eb56e05c6802c531: Bug 1450617: No need to ResolveTag to disable first-line on fieldsets. r?bz draft
Emilio Cobos Álvarez <emilio@crisal.io> - Mon, 02 Apr 2018 05:52:57 +0200 - rev 776487
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Bug 1450617: No need to ResolveTag to disable first-line on fieldsets. r?bz We don't extend HTML fieldsets with XBL, and I don't think we want to start doing that now. MozReview-Commit-ID: GiltTWXUBzZ
cb6598552b9b0437858b695f93808d56b7cb53e6: Bug 1450617: Remove resolved namespace id and tag from FCItems. r?bz draft
Emilio Cobos Álvarez <emilio@crisal.io> - Tue, 03 Apr 2018 08:51:38 +0200 - rev 776486
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Bug 1450617: Remove resolved namespace id and tag from FCItems. r?bz Tag is unused, and now that the resolved XBL tag is only XUL the only checks the namespace id is used for don't need to account for it. MozReview-Commit-ID: 8IV3iF5xIs0
0cc08cd95ef5821d37768bd14567dfe67047bda0: Bug 1450617: Only allow extending from / to XUL elements. r?bz draft
Emilio Cobos Álvarez <emilio@crisal.io> - Tue, 03 Apr 2018 08:37:16 +0200 - rev 776485
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Bug 1450617: Only allow extending from / to XUL elements. r?bz MozReview-Commit-ID: JaFKQDkLGgw
944db0ad9b251c109966f1236e6603f92101a4c6: Bug 509958: Unprefix :-moz-selection. r?dbaron,xidorn draft
Emilio Cobos Álvarez <emilio@crisal.io> - Sun, 25 Mar 2018 17:31:55 +0200 - rev 776484
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Bug 509958: Unprefix :-moz-selection. r?dbaron,xidorn Our implementation is totally not what the spec says, but totally what other UAs do, see https://github.com/w3c/csswg-drafts/issues/2474. So given this is causing webcompat pain, I think we should be pragmatic and just unprefix this. We could keep serialization and getComputedStyle with ::selection working with a bit more effort, like we do for :-moz-placeholder, but I'd prefer not doing at least the serialization bit, and just alias in nsCSSPseudoElements :-moz-selection to selection too. MozReview-Commit-ID: 6lxctozRDqv
974eaa92c3b13af442ff5162e26edfcc870a9195: Bug 1339656: [css-align] Another pass of fixing align shorthand serialization. r?mats draft
Emilio Cobos Álvarez <emilio@crisal.io> - Sat, 31 Mar 2018 02:37:39 +0200 - rev 776483
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Bug 1339656: [css-align] Another pass of fixing align shorthand serialization. r?mats Hopefully the last one. This makes us serialize correctly when one of the longhands contains "unsafe", since we can indeed represent the value using the shorthand. It also fixes the test so that it tests something due to <overflow-position> was fixed to be first in bug 1430817. MozReview-Commit-ID: AnYBt6zwnPl
e3ba89c4ddfb875d26b9e22353107f4d453f46f0: Bug 1303605: Make LazyFC assertions actually hold. r?bz draft
Emilio Cobos Álvarez <emilio@crisal.io> - Thu, 29 Mar 2018 14:04:40 +0200 - rev 776482
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Bug 1303605: Make LazyFC assertions actually hold. r?bz So while removing that wallpaper I started hitting the !noPrimaryFrame assertions on XBL + HMTL stuff in display-contents-xbl-3.xbl. The code was trying to assert that we had frames constructed for all the nodes in the parent chain, but we don't bail out in the !GetContentInsertionFrameFor(aContainer) in the case that it's a children element, because they actually have no insertion frame, though their children do. Move the LazyFC check after the insertion point check. That makes the previous check work on the insertion point of the child, which makes it sound. This also fixes bug 1410020, and with it a Shadow DOM test-case that was failing because the content other slot wasn't getting properly flagged, and thus the slotted content never got a frame. The other two test failures in this test are an event dispatch failure, where the position of the target is not what the test expects (we don't account for margin and padding). Filed that as bug 1450027. Also, added a test for which we have wrong layout without these patches, and that crashes with "Called Servo_Element_IsDisplayNone" with the first applied but not this one, due to the bogus check mentioned above. MozReview-Commit-ID: 6OeaVrZhTDv
321c402d794fb2414bcbc2b84b632560f9df820e: Bug 1303605: Remove the undisplayed maps. r?bz,mats draft
Emilio Cobos Álvarez <emilio@crisal.io> - Thu, 29 Mar 2018 03:49:26 +0200 - rev 776481
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Bug 1303605: Remove the undisplayed maps. r?bz,mats This is mostly code removal, changing GetDisplayContentsStyle(..) checks by an FFI call to Servo. The tricky parts are: * MaybeCreateLazily, which I fixed to avoid setting bits under display: none stuff. This was a pre-existing problem, which was wallpapered by the sc->IsInDisplayNoneSubtree() check, which effectively made the whole assertion useless. * ContentRemoved, where we can no longer know for sure whether the element is actually display: contents if we're removing it as a response to a style change. See the comment there. That kinda sucks, but that case is relatively weird, and it's better than adding tons of complexity to handle that. * GetParentComputedStyle, which also has a comment there. Also, this function has only one caller now, so we should maybe try to remove it. The different assertions after DestroyFramesForAndRestyle are changed for a single assertion in the function itself, and the node bit used as an optimization to avoid hashtable lookups is taken back. MozReview-Commit-ID: AZm822QnhF9
a1360f358cf4c664011b0b2ea6ab3dbdb66c5a59: Bug 1420680: Remove the user font cache generation, which is also unused now. r?jfkthame draft
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 23 Mar 2018 18:09:09 +0100 - rev 776480
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Bug 1420680: Remove the user font cache generation, which is also unused now. r?jfkthame MozReview-Commit-ID: HuQg4RopOmX
c0e4f4179159af350e1ed22162bee13b37d96f6e: Bug 1420680: Remove the mechanism to buffer CSP violations. r?bz draft
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 23 Mar 2018 16:11:52 +0100 - rev 776479
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Bug 1420680: Remove the mechanism to buffer CSP violations. r?bz With the previous patch it's unused. MozReview-Commit-ID: 4EKufeNu0Jz
3cb22453a9687c92585189106a6e6e727544a667: Bug 1420680: Rework how the loadability of font-faces is computed. r?jfkthame,bz draft
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 23 Mar 2018 16:06:56 +0100 - rev 776478
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Bug 1420680: Rework how the loadability of font-faces is computed. r?jfkthame,bz This reworks bug 1440561 so that we only precompute loads that belong to our user font set, avoiding messing up with fonts in the cache that belong to other pages. The loadability of a font is precomputed in PreTraverse in the same way as we did, but only for the fonts that we may end up loading. This is stored in FontFaceSet now. Also, the principal shenanigans that this code did are reworked to be explicit about when the document principal changes in ResetToURI, instead of having a member around and a mutable variable. This makes the code easier to follow. MozReview-Commit-ID: 9ofTbaLDUF7
d75d996016dcf325c2db2ed8a47af512d07ffacd: Merge mozilla-inbound to mozilla-central. a=merge
Dorel Luca <dluca@mozilla.com> - Tue, 03 Apr 2018 07:04:18 +0300 - rev 776477
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Merge mozilla-inbound to mozilla-central. a=merge
720ffa73f567809363331c3331bf82b2f1af3c68: Bug 1450789 - Use more accurate names for structure conflict event telemetry keys. r=tcsc
Kit Cambridge <kit@yakshaving.ninja> - Mon, 02 Apr 2018 14:41:16 -0700 - rev 776476
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Bug 1450789 - Use more accurate names for structure conflict event telemetry keys. r=tcsc MozReview-Commit-ID: FCLy34YU3qK
70400746eb530da029289760b9bab836558f9824: Backed out 7 changesets (bug 1438688) for android xpcshell failures on builds/worker/workspace/build/tests/bin/components/test_necko.xpt
Dorel Luca <dluca@mozilla.com> - Tue, 03 Apr 2018 02:30:53 +0300 - rev 776475
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +0000
Backed out 7 changesets (bug 1438688) for android xpcshell failures on builds/worker/workspace/build/tests/bin/components/test_necko.xpt Backed out changeset 8786eabb61a4 (bug 1438688) Backed out changeset e05ec1e08b46 (bug 1438688) Backed out changeset 4c437ba9d984 (bug 1438688) Backed out changeset 2f243bca1af3 (bug 1438688) Backed out changeset 4da0e1839353 (bug 1438688) Backed out changeset 186f916dcc7a (bug 1438688) Backed out changeset 08b1a5f904e4 (bug 1438688)
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 776474
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +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 776473
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +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 776472
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +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 776471
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +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 776470
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +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 776469
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +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 776468
Push 104888 by bmo:emilio@crisal.io at Tue, 03 Apr 2018 07:00:14 +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
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 tip