2ee160335e150f20df3471b60b5e58ce873e2ff6: Bug 1448225 - Convert StylePrefs to StaticPrefs. r=emilio
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 20 Mar 2018 10:56:37 +1100 - rev 776578
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
Bug 1448225 - Convert StylePrefs to StaticPrefs. r=emilio The new StaticPrefs machinery means that StylePrefs can be removed. Note that this approach mirrors all static prefs into Rust, but I have only updated structs.rs for the prefs that Stylo uses. On a CLOSED TREE, since a sheriff closed the tree while I was about to land this via autoland. MozReview-Commit-ID: G1SY0987WJ7
3fe0b81bd9de17b369e6f4eb189babf4b65a5203: servo: Merge #20508 - Convert StylePrefs to StaticPrefs (from nnethercote:bug-1448225); r=emilio
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 03 Apr 2018 01:54:24 -0400 - rev 776577
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
servo: Merge #20508 - Convert StylePrefs to StaticPrefs (from nnethercote:bug-1448225); r=emilio <!-- Please describe your changes on the following line: --> This is the Servo part of https://bugzilla.mozilla.org/show_bug.cgi?id=1448225. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix https://bugzilla.mozilla.org/show_bug.cgi?id=1448225 <!-- Either: --> - [ ] There are tests for these changes OR - [X] These changes do not require tests because tested on the Gecko side. <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> r? emilio Source-Repo: https://github.com/servo/servo Source-Revision: 0a3ffc0c6045eb6983273010d91a35267d8ec3fa
20614b63d378254fc8f3caecaec9b02cd7522e2c: Bug 1450859 - Remove layout.css.expensive-style-struct-assertions.enabled pref. r=emilio
Cameron McCormack <cam@mcc.id.au> - Tue, 03 Apr 2018 15:58:32 +1000 - rev 776576
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
Bug 1450859 - Remove layout.css.expensive-style-struct-assertions.enabled pref. r=emilio With the old style system removed, this pref has no effect.
fc4a2fff3c89b8691a81a8c101ca94251115f000: Bug 1450195 - Remove old-event-emitter usage from gcli; r=miker.
Nicolas Chevobbe <nchevobbe@mozilla.com> - Fri, 30 Mar 2018 09:20:11 +0200 - rev 776575
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
Bug 1450195 - Remove old-event-emitter usage from gcli; r=miker. MozReview-Commit-ID: IYAQJ4KqEet
c3b12adc84b141d795fc1c86d9c0754c3b4e4241: Bug 1441971 - Restart aborted script load for waiting XULDocument loads; r=bz
Jim Chen <nchen@mozilla.com> - Wed, 28 Feb 2018 14:46:06 -0500 - rev 776574
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
Bug 1441971 - Restart aborted script load for waiting XULDocument loads; r=bz When a particular XULDocument load is aborted, its pending script loads are aborted as well. However, there may be additional XULDocuments waiting for the same scripts to load. If we continue with the abort, all the waiting docs will end up with aborted script loads as well. This patch makes us load the script again for the waiting docs, so that one aborted doc load does not affect other docs that just happen to be waiting on the same scripts to load. MozReview-Commit-ID: FFGBjOLXCDt
5c9c6f5a4ca35835b9614a8cdb3eefda44cb585d: Bug 1448599 - fix WebRequest events for redirected channels when onBeforeRedirect is not used, r=kmag
Shane Caraveo <scaraveo@mozilla.com> - Mon, 02 Apr 2018 21:12:07 -0500 - rev 776573
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
Bug 1448599 - fix WebRequest events for redirected channels when onBeforeRedirect is not used, r=kmag If any WebRequest listener *other* than onBeforeRedirect was used, and a channel was redirected, the ChannelWrapper was not updated with the redirected channel. This broke most listeners for redirected channels and specifically an extension would never see events for the new channel. MozReview-Commit-ID: BwXToTD5LEu
102872860c7ab710800251aac7814bb5bb1168f9: 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 776572
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +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
f1dd107a1ad42d8bb46574e5f23965316991c836: Bug 1438688, part 5 - Merge XPTInterfaceDirectoryEntry and XPTInterfaceDescriptor. r=njn
Andrew McCreight <continuation@gmail.com> - Mon, 12 Mar 2018 13:36:15 -0700 - rev 776571
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +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
fe00ed08356dd3dab2f7dac4b7a000bcc7df953e: Bug 1438688, part 4 - Hoist arrays to XPTHeader. r=njn
Andrew McCreight <continuation@gmail.com> - Wed, 28 Feb 2018 15:12:07 -0800 - rev 776570
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +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
af6c0673ec6ffc38d30d95ea42caa7001cd19ef4: 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 776569
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +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
1f3b60346b7750df21c3a93a2eef0d801d77e421: Bug 1438688, part 2b - Eliminate XPTHeader data structure. r=njn
Andrew McCreight <continuation@gmail.com> - Tue, 27 Mar 2018 14:04:01 -0700 - rev 776568
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +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
e3b0f068f61e4b352072c1246609ad5c50930587: 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 776567
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +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
4f8ea03dbe4d83513bde0e4422da2a47f35bbd67: 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 776566
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +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
d0ae155862180c2655c0c84e1c5421d586cda67d: Merge mozilla-central to autoland
Dorel Luca <dluca@mozilla.com> - Tue, 03 Apr 2018 07:22:33 +0300 - rev 776565
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
Merge mozilla-central to autoland
87840a3dd71583805be28dd07f9aedaa90d32142: Bug 1449629 - Install Python 3.5 in debian-base; r=glandium
Gregory Szorc <gps@mozilla.com> - Mon, 02 Apr 2018 16:58:21 -0700 - rev 776564
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
Bug 1449629 - Install Python 3.5 in debian-base; r=glandium We want Python 3.5+ to be available everywhere so various processes can start using it. The debian-base Dockerfile is shared by Debian 7 and 9 images. Debian 9 ships with Python 3.5 and after the previous commit, we have a Python 3.5 package for Debian 7. So we simply install the "python3.5" package to get Python on all the Debian images. MozReview-Commit-ID: 9ZmoSxtHWTZ
4b89260566da163425f88bcb90aa91375934f2bb: Bug 1449629 - Install Python 3.5 in Debian 7 base image; r=glandium
Gregory Szorc <gps@mozilla.com> - Mon, 02 Apr 2018 19:27:12 -0700 - rev 776563
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
Bug 1449629 - Install Python 3.5 in Debian 7 base image; r=glandium Debian 7 ships Python 3.2 by default. That's too old for our upcoming build requirement of Python 3.5. This commit adds a Python 3.5 package for wheezy that backports the Python 3.5 from a much later Debian version. The patch was inspired by the existing patch for Python 2.7. However, it needed additional work. The changes and reasons should all be documented in the changelog file as part of the package diff we apply. I'm a bit disappointed we had to disable PGO. But it was reliably segfaulting during the build. I didn't feel like going down that rabbit hole. MozReview-Commit-ID: ABpHW1KYFQP
abb14d1d2f0cf6a205b1592301cfd8059614f53b: Bug 1449629 - Use -L when downloading OpenSSL; r=glandium
Gregory Szorc <gps@mozilla.com> - Mon, 02 Apr 2018 19:22:07 -0700 - rev 776562
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
Bug 1449629 - Use -L when downloading OpenSSL; r=glandium The URL is now being redirected to https://www.openssl.org/source/old/1.1.0/openssl-1.1.0g.tar.gz. Let's add a -L so we follow redirects automatically. MozReview-Commit-ID: AuZ98jGidzl
9ca671c7ec5bb860d67fdfe2dafdc0a6daef48f9: Bug 1446202 - 2. Don't pass pointer events to datetime inputs; r=jchen
Jim Chen <nchen@mozilla.com> - Mon, 02 Apr 2018 23:26:11 -0400 - rev 776561
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
Bug 1446202 - 2. Don't pass pointer events to datetime inputs; r=jchen Like the way we treat select fields, don't pass pointer events to date/time input fields either. MozReview-Commit-ID: Eucfbu6MizX
ae4d46495f5e78721e9cd68dc46e11b13592b875: Bug 1446202 - 1. Return correct locale string to Gecko; r=droeh
Jim Chen <nchen@mozilla.com> - Mon, 02 Apr 2018 23:25:27 -0400 - rev 776560
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
Bug 1446202 - 1. Return correct locale string to Gecko; r=droeh Locale.toString() doesn't return the correct locale format that Gecko expects, so reformat the locale string before returning. (for example, Locale.toString() returns "en_US_POSIX#Latn" whereas Gecko expects "en-Latn-US-POSIX"). The incorrect locale format was preventing intl code (and the datetime box) from initializing. MozReview-Commit-ID: JmDYkDj31pL
35f5e13e1098d838580b83f63bc3a52547ebd213: servo: Merge #20447 - NCSU Canvas Rendering Project Initial Steps (from Brody-Eastwood:master); r=jdm
Brody Eastwood <baeastwo@ncsu.edu> - Mon, 02 Apr 2018 22:24:34 -0400 - rev 776559
Push 104907 by bmo:ato@sny.no at Tue, 03 Apr 2018 10:28:20 +0000
servo: Merge #20447 - NCSU Canvas Rendering Project Initial Steps (from Brody-Eastwood:master); r=jdm <!-- Please describe your changes on the following line: --> Implements the initial steps from: https://github.com/servo/servo/wiki/Canvas-rendering-project --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [X] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Source-Repo: https://github.com/servo/servo Source-Revision: 9cd60c8e78af7b80e7578612ae442de26d1a325b
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 tip