searching for reviewer(Manishearth)
8ed2557771a8cab161267b48ad662da0e4284597: Bug 1476445 - Use an acquire load for is_unique in servo_arc. r=manishearth
Bobby Holley <bobbyholley@gmail.com> - Tue, 17 Jul 2018 22:23:26 +0000 - rev 819642
Push 116603 by bmo:rcaliman@mozilla.com at Wed, 18 Jul 2018 09:50:41 +0000
Bug 1476445 - Use an acquire load for is_unique in servo_arc. r=manishearth MozReview-Commit-ID: Dv7Rql4KUgr Differential Revision: https://phabricator.services.mozilla.com/D2205
00dd151d33d3f6d7f21c7dd450ca3b81ec061249: Bug 1459367 - Convert NS_STYLE_IMAGELAYER_ATTACHMENT_* to enum class. r=manishearth
Kristen Wright <kwright@mozilla.com> - Tue, 08 May 2018 15:05:33 -0700 - rev 793921
Push 109534 by mgregan@mozilla.com at Fri, 11 May 2018 00:59:12 +0000
Bug 1459367 - Convert NS_STYLE_IMAGELAYER_ATTACHMENT_* to enum class. r=manishearth Converted NS_STYLE_IMAGELAYER_ATTATCHMENT_* vals to enum class, StyleImageLayerAttachment.
af621dc793aaeb4a787748981cde5ca2bd0709b8: Bug 1455784 - Update StyleSource to use ArcUnion. r=Manishearth
Bobby Holley <bobbyholley@gmail.com> - Fri, 20 Apr 2018 16:28:33 -0700 - rev 788169
Push 107916 by bmo:jaws@mozilla.com at Thu, 26 Apr 2018 00:14:29 +0000
Bug 1455784 - Update StyleSource to use ArcUnion. r=Manishearth MozReview-Commit-ID: AT4sud9goGV
5a517a7c8cf23646603c65da037cd6b979c84682: Bug 1455784 - ArcUnion. r=Manishearth
Bobby Holley <bobbyholley@gmail.com> - Fri, 20 Apr 2018 15:48:18 -0700 - rev 788168
Push 107916 by bmo:jaws@mozilla.com at Thu, 26 Apr 2018 00:14:29 +0000
Bug 1455784 - ArcUnion. r=Manishearth MozReview-Commit-ID: Jxp2A7cj6CV
29905fcd0df973c678d12b82173b514115d6e075: servo: Merge #20603 - Run rustfmt on selectors, servo_arc, and style (from bholley:rustfmt_style); r=Manishearth
Bobby Holley <bobbyholley@gmail.com> - Tue, 10 Apr 2018 21:00:11 -0400 - rev 780390
Push 105982 by plingurar@mozilla.com at Wed, 11 Apr 2018 10:46:01 +0000
servo: Merge #20603 - Run rustfmt on selectors, servo_arc, and style (from bholley:rustfmt_style); r=Manishearth Now that rustfmt is getting close to stable, and work on the style system has died down a bit, it seemed like an opportune time to auto-format the style crates. The first commit disables import reordering, since tidy and rustfmt don't currently agree on the correct ordering. The second commit does a bunch of manual fixups such that the output of rustfmt passes tidy. The third commit runs rustfmt on the three aforementioned crate. There are a few dozen warnings in the style crate about lines longer than 100 characters. It would be good to fix these, but I don't have time for that now. Source-Repo: https://github.com/servo/servo Source-Revision: 9a900ef019cd643bff961d7b20db6da69f3edb29
0182516b26d30a006319595eaf16ac3da6832a2f: servo: Merge #20598 - Four nondescript WebGL improvements (from servo:webgl); r=Manishearth
Anthony Ramine <n.oxyde@gmail.com> - Tue, 10 Apr 2018 04:28:40 -0400 - rev 779833
Push 105891 by bmo:jaws@mozilla.com at Tue, 10 Apr 2018 18:27:48 +0000
servo: Merge #20598 - Four nondescript WebGL improvements (from servo:webgl); r=Manishearth Source-Repo: https://github.com/servo/servo Source-Revision: ce72e526566de70ed71684ebc39a531f59c92aa5
cdf8e9c396b9d8a3a1fb77d8c72dfde43e978c3e: servo: Merge #20247 - Stop unconditionally collecting traversal statistics in nightly builds (from bholley:fix_stat_collection); r=Manishearth
Bobby Holley <bobbyholley@gmail.com> - Thu, 08 Mar 2018 15:53:11 -0500 - rev 765215
Push 102006 by bmo:ken.vandine@canonical.com at Fri, 09 Mar 2018 10:57:30 +0000
servo: Merge #20247 - Stop unconditionally collecting traversal statistics in nightly builds (from bholley:fix_stat_collection); r=Manishearth The current code also makes us panic when DUMP_STYLE_STATISTICS=1 is set. :-( Source-Repo: https://github.com/servo/servo Source-Revision: 4c797dfb5239c5e9a4014e91ed121ef9cf641ad0
0ca4ef640c8b7d1a25e0dcaf80d0410b807b64d5: servo: Merge #20210 - style: Add a comment about the weird setup for justify-items (from emilio:justify-items-kinda-sucks); r=Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Tue, 06 Mar 2018 05:29:17 -0500 - rev 763834
Push 101568 by kgupta@mozilla.com at Tue, 06 Mar 2018 19:24:58 +0000
servo: Merge #20210 - style: Add a comment about the weird setup for justify-items (from emilio:justify-items-kinda-sucks); r=Manishearth And derive ToCss while at it. Source-Repo: https://github.com/servo/servo Source-Revision: 226d9a5b0e69185b95c62e79b81044beba477654
06145412275073cce5e30b4f187f305d22e9dbff: servo: Merge #20135 - Clean up after some disk-space intensive builds (from servo:jdm-patch-13); r=Manishearth
Josh Matthews <josh@joshmatthews.net> - Tue, 27 Feb 2018 13:15:02 -0500 - rev 760870
Push 100769 by bmo:emilio@crisal.io at Wed, 28 Feb 2018 10:33:28 +0000
servo: Merge #20135 - Clean up after some disk-space intensive builds (from servo:jdm-patch-13); r=Manishearth This should help the ongoing disk usage problems. Source-Repo: https://github.com/servo/servo Source-Revision: 068c1eb9fbff43bcf089c7c27101c72ef205b0c8
9450c630e1d6477f5d8e557caadce408e399ffbf: Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r?Manishearth draft
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 16 Feb 2018 13:14:13 +0100 - rev 756806
Push 99555 by bmo:emilio@crisal.io at Sun, 18 Feb 2018 13:35:44 +0000
Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r?Manishearth MozReview-Commit-ID: 2dA5usbGQRt
51d774eb06aea89b69127555fbea3008398ef376: Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r=manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 16 Feb 2018 13:14:13 +0100 - rev 756659
Push 99527 by bmo:mcmanus@ducksong.com at Sat, 17 Feb 2018 13:11:35 +0000
Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r=manishearth MozReview-Commit-ID: 2dA5usbGQRt
30e38396a92e2dfa5d1b84fe3d7bac60135499bc: Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r?Manishearth draft
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 16 Feb 2018 13:14:13 +0100 - rev 756591
Push 99496 by bmo:emilio@crisal.io at Sat, 17 Feb 2018 00:48:38 +0000
Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r?Manishearth MozReview-Commit-ID: 2dA5usbGQRt
f59ba5133af69633a7da9b8e06b3f032dc89247a: Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r?Manishearth draft
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 16 Feb 2018 13:14:13 +0100 - rev 756434
Push 99490 by bmo:emilio@crisal.io at Sat, 17 Feb 2018 00:02:16 +0000
Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r?Manishearth MozReview-Commit-ID: 2dA5usbGQRt
c5832fb7c49fa550849e1461a06fbe465b888e09: Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r?Manishearth draft
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 16 Feb 2018 13:14:13 +0100 - rev 756255
Push 99446 by bmo:emilio@crisal.io at Fri, 16 Feb 2018 18:07:52 +0000
Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r?Manishearth MozReview-Commit-ID: 2dA5usbGQRt
5b6c75e32c7de348169703d08f3e0f1ba860be30: Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r?Manishearth draft
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 16 Feb 2018 13:14:13 +0100 - rev 756106
Push 99377 by bmo:emilio@crisal.io at Fri, 16 Feb 2018 12:15:33 +0000
Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r?Manishearth MozReview-Commit-ID: 2dA5usbGQRt
c1ea84b7d9b22460de822d7ef24c0e137bb02e43: servo: Merge #20011 - style: Tidy Stylist::compute_for_declarations (from emilio:cleanup-for-declarations-stuff); r=Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Sat, 10 Feb 2018 06:45:52 -0500 - rev 753570
Push 98602 by bmo:vivek3zero@gmail.com at Sat, 10 Feb 2018 22:19:26 +0000
servo: Merge #20011 - style: Tidy Stylist::compute_for_declarations (from emilio:cleanup-for-declarations-stuff); r=Manishearth Source-Repo: https://github.com/servo/servo Source-Revision: 0098d519030f395f94f3f82fc04b93227fdff4ec
4e655361be5a1971300c15f58ec65c81f82ba826: Bug 1423840 (attempt 2) - Rewrite the prefs parser. r=glandium,Manishearth
Nicholas Nethercote <nnethercote@mozilla.com> - Thu, 01 Feb 2018 16:21:47 +1100 - rev 750076
Push 97533 by jhofmann@mozilla.com at Thu, 01 Feb 2018 10:48:29 +0000
Bug 1423840 (attempt 2) - Rewrite the prefs parser. r=glandium,Manishearth The prefs parser has two significant problems. - It doesn't separate tokenizing from parsing. - It is implemented as a loop around a big switch on a "current state" variable. As a result, it is hard to understand and modify, slower than it could be, and in obscure cases (involving comments and whitespace) it fails to parse what should be valid input. This patch replaces it with a recursive descent parser (albeit one without any recursion!) that has separate tokenization. The new parser is easier to understand and modify, more correct, and has better error messages. It doesn't do error recovery, but that would be much easier to add than in the old parser. The new parser also runs about 1.9x faster than the existing parser. (As measured by parsing greprefs.js's contents from memory 1000 times in succession, omitting the prefs hash table construction. If the table construction is included, it's about 1.6x faster.) The new parser is slightly stricter than the old parser in a few ways. - Disconcertingly, the old parser allowed arbitrary junk between prefs (including at the start and end of the prefs file) so long as that junk didn't include any of the following chars: '/', '#', 'u', 's', 'p'. I.e. lines like these: !foo@bar&pref("prefname", true); ticky_pref("prefname", true); // missing 's' at start User_pref("prefname", true); // should be 'u' at start would all be treated the same as this: pref("prefname", true); The new parser disallows such junk because it isn't necessary and seems like an unintentional botch by the old parser. - The old parser allowed character 0x1a (SUB) between tokens and treated it like '\n'. The new parser does not allow this character. SUB was used to indicate end-of-file (*not* end-of-line) in some old operating systems such as MS-DOS, but this doesn't seem necessary today. - The old parser tolerated (with a warning) invalid escape sequences within string literals -- such as "\q" (not a valid escape) and "\x1" and "\u12" (both of which have insufficient hex digits) -- accepting them literally. The new parser does not tolerate invalid escape sequences because it doesn't seem necessary and would complicate things. - The old parser tolerated character 0x00 (NUL) within string literals; this is dangerous because C++ code that manipulates string values with embedded NULs will almost certainly consider those chars as end-of-string markers. The new parser treats NUL chars as end-of-file, to avoid this danger and because it facilitates a significant optimization (described within the code). - The old parser allowed integer literals to overflow, silently wrapping them. The new parser treats integer overflow as a parse error. This seems better, and it caught existing overflows of places.database.lastMaintenance, in testing/profiles/prefs_general.js (bug 1424030) and testing/talos/talos/config.py (bug 1434813). The first of these changes meant that a couple of existing prefs with ";;" at the end had to be changed (done in the preceding patch). The minor increase in strictness shouldn't be a problem for default pref files such as greprefs.js within the application (which we can modify), nor for app-written prefs files such as prefs.js. It could affect user-written prefs files such as user.js; the experience above suggests that integer overflow and ";;" are the most likely problems in practice. In my opinion, the risk here is acceptable. The new parser also does a better job of tracking line numbers because it (a) treats "\r\n" sequences as a single end-of-line marker, and (a) pays attention to end-of-line sequences within string literals. Finally, the patch adds thorough tests of both valid and invalid syntax. MozReview-Commit-ID: JD3beOQl4AJ
593fe6b692c74531899bf721c1e73868f56a6c8a: servo: Merge #19912 - style: Temporarily use OrderMap on Gecko (from emilio:ordermap); r=Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Wed, 31 Jan 2018 21:33:36 -0600 - rev 750070
Push 97533 by jhofmann@mozilla.com at Thu, 01 Feb 2018 10:48:29 +0000
servo: Merge #19912 - style: Temporarily use OrderMap on Gecko (from emilio:ordermap); r=Manishearth This will allow us to discard std hash map as a source of crashes. Source-Repo: https://github.com/servo/servo Source-Revision: e6d9c251d1b9770aa520bf358b79d906a00d71bb
e8b798a5205ad27d067b91210efb46df7ddab45d: Bug 1423840 - Rewrite the prefs parser. r=glandium,Manishearth
Nicholas Nethercote <nnethercote@mozilla.com> - Sun, 03 Dec 2017 00:26:36 +1100 - rev 749877
Push 97494 by bmo:gl@mozilla.com at Wed, 31 Jan 2018 23:47:33 +0000
Bug 1423840 - Rewrite the prefs parser. r=glandium,Manishearth The prefs parser has two significant problems. - It doesn't separate tokenizing from parsing. - It is implemented as a loop around a big switch on a "current state" variable. As a result, it is hard to understand and modify, slower than it could be, and in obscure cases (involving comments and whitespace) it fails to parse what should be valid input. This patch replaces it with a recursive descent parser (albeit one without any recursion!) that has separate tokenization. The new parser is easier to understand and modify, more correct, and has better error messages. It doesn't do error recovery, but that would be much easier to add than in the old parser. The new parser also runs about 1.9x faster than the existing parser. (As measured by parsing greprefs.js's contents from memory 1000 times in succession, omitting the prefs hash table construction. If the table construction is included, it's about 1.6x faster.) The new parser is slightly stricter than the old parser in a few ways. - Disconcertingly, the old parser allowed arbitrary junk between prefs (including at the start and end of the prefs file) so long as that junk didn't include any of the following chars: '/', '#', 'u', 's', 'p'. I.e. lines like these: !foo@bar&pref("prefname", true); ticky_pref("prefname", true); // missing 's' at start User_pref("prefname", true); // should be 'u' at start would all be treated the same as this: pref("prefname", true); The new parser disallows such junk because it isn't necessary and seems like an unintentional botch by the old parser. - The old parser allowed character 0x1a (SUB) between tokens and treated it like '\n'. The new parser does not allow this character. SUB was used to indicate end-of-file (*not* end-of-line) in some old operating systems such as MS-DOS, but this doesn't seem necessary today. - The old parser tolerated (with a warning) invalid escape sequences within string literals -- such as "\q" (not a valid escape) and "\x1" and "\u12" (both of which have insufficient hex digits) -- accepting them literally. The new parser does not tolerate invalid escape sequences because it doesn't seem necessary and would complicate things. - The old parser tolerated character 0x00 (NUL) within string literals; this is dangerous because C++ code that manipulates string values with embedded NULs will almost certainly consider those chars as end-of-string markers. The new parser treats NUL chars as end-of-file, to avoid this danger and because it facilitates a significant optimization (described within the code). - The old parser allowed integer literals to overflow, silently wrapping them. The new parser treats integer overflow as a parse error. This seems better, and it caught an existing overflow in testing/profiles/prefs_general.js, for places.database.lastMaintenance (see bug 1424030). The first of these changes meant that a couple of existing prefs with ";;" at the end had to be changed (done in the preceding patch). The minor increase in strictness shouldn't be a problem for default pref files such as greprefs.js within the application (which we can modify), nor for app-written prefs files such as prefs.js. It could affect user-written prefs files such as user.js; the experience above suggests that ";;" is the most likely problem in practice. In my opinion, the risk here is acceptable. The new parser also does a better job of tracking line numbers because it (a) treats "\r\n" sequences as a single end-of-line marker, and (a) pays attention to end-of-line sequences within string literals. Finally, the patch adds thorough tests of both valid and invalid syntax. MozReview-Commit-ID: 8EYWH7KxGG * * * [mq]: win-fix MozReview-Commit-ID: 91Bxjfghqfw
bc141b951a1b1aac8fefe67cb5488091cf5de43a: servo: Merge #19864 - Make some callback-related code unsafe (from nox:callbacks); r=Manishearth
Anthony Ramine <n.oxyde@gmail.com> - Thu, 25 Jan 2018 16:21:10 -0600 - rev 747448
Push 96906 by hikezoe@mozilla.com at Fri, 26 Jan 2018 01:59:31 +0000
servo: Merge #19864 - Make some callback-related code unsafe (from nox:callbacks); r=Manishearth Source-Repo: https://github.com/servo/servo Source-Revision: e9ab91d257a983a7c19cb5fada21a0359cfae95d
a984a3218ffe8ebaad26bff890bc25f00612d859: Bug 1431031: Tests for calc() on font-size on various situations. r=Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Wed, 17 Jan 2018 17:20:20 +0100 - rev 722630
Push 96191 by bmo:oriol-bugzilla@hotmail.com at Fri, 19 Jan 2018 14:03:28 +0000
Bug 1431031: Tests for calc() on font-size on various situations. r=Manishearth It makes no sense to pass a custom base size of zero in presence of rem, ex, or ch units. MozReview-Commit-ID: 7ZZwRzQKREX
110b50e49ca4064fbe78deaf0bf9fd72a45e45af: servo: Merge #19807 - style: Make the Gecko font-size calc() code do what it means to do (from emilio:calc-font-size); r=Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Thu, 18 Jan 2018 09:36:51 -0600 - rev 722461
Push 96158 by bmo:jryans@gmail.com at Fri, 19 Jan 2018 01:05:25 +0000
servo: Merge #19807 - style: Make the Gecko font-size calc() code do what it means to do (from emilio:calc-font-size); r=Manishearth It makes no sense to pass a custom base size of zero in presence of rem, ex, or ch units. Bug: 1431031 Reviewed-by: Manishearth MozReview-Commit-ID: 7ZZwRzQKREX Source-Repo: https://github.com/servo/servo Source-Revision: 671b69c0b77f9a4bd0c098cb2a2f73c95dacb954
454a058a50a3529836e097cb4e0a337137a76059: Bug 1431031: Don't use reference_font_size for resolving rem on the root element. r?Manishearth draft
Emilio Cobos Álvarez <emilio@crisal.io> - Wed, 17 Jan 2018 17:20:20 +0100 - rev 721659
Push 95916 by bmo:emilio@crisal.io at Wed, 17 Jan 2018 17:36:35 +0000
Bug 1431031: Don't use reference_font_size for resolving rem on the root element. r?Manishearth ReferenceFontSize::InheritedStyle and ReferenceFontSize::CurrentStyle are fine, because they're by definition the initial font-size on the root at that point. The font-size Calc code passes ReferenceFontSize::Custom(0) to strip out the relative part, but that has the unfortunate effect of stripping rem units on the root. Prevent that by using always the inherited style, which is always the reset style. MozReview-Commit-ID: 7ZZwRzQKREX
ba5e72e139d164b1cd0772fc6efad5963aaf7a62: Bug 1431031: Don't use reference_font_size for resolving rem on the root element. r?Manishearth draft
Emilio Cobos Álvarez <emilio@crisal.io> - Wed, 17 Jan 2018 17:20:20 +0100 - rev 721631
Push 95902 by bmo:emilio@crisal.io at Wed, 17 Jan 2018 16:37:52 +0000
Bug 1431031: Don't use reference_font_size for resolving rem on the root element. r?Manishearth ReferenceFontSize::InheritedStyle and ReferenceFontSize::CurrentStyle are fine, because they're by definition the initial font-size on the root at that point. The font-size Calc code passes ReferenceFontSize::Custom(0) to strip out the relative part, but that has the unfortunate effect of stripping rem units on the root. Prevent that by using always the inherited style, which is always the reset style. MozReview-Commit-ID: 7ZZwRzQKREX
391fd88ff3e51cedfbc65b2b0345d48ab53cad06: servo: Merge #19665 - style_derive: Support parse-time aliases (from emilio:derive-parse-alias); r=Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Sun, 31 Dec 2017 03:46:22 -0600 - rev 715133
Push 94070 by bmo:ato@sny.no at Tue, 02 Jan 2018 11:41:58 +0000
servo: Merge #19665 - style_derive: Support parse-time aliases (from emilio:derive-parse-alias); r=Manishearth This will allow #19659 to use derive on display using: #[parse(aliases = "-webkit-flex")] Flex, #[parse(aliases = "-webkit-inline-flex")] InlineFlex, And such. Source-Repo: https://github.com/servo/servo Source-Revision: 4ba795081cd1efa42ce03c996d574cfe96f68ece
2941b6b2bcece74cce8bfbcad359ad7538a278a3: servo: Merge #19576 - style: Move text-align outside of the mako file (from canaltinova:text-align); r=Manishearth,emilio
Nazım Can Altınova <canaltinova@gmail.com> - Mon, 18 Dec 2017 12:12:52 -0600 - rev 713008
Push 93528 by kgupta@mozilla.com at Tue, 19 Dec 2017 14:18:06 +0000
servo: Merge #19576 - style: Move text-align outside of the mako file (from canaltinova:text-align); r=Manishearth,emilio I will need this refactoring before my next job. I didn't actually fix the FIXME's along the way. My other PR probably will cover these. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors Source-Repo: https://github.com/servo/servo Source-Revision: a9c17970c19a993920ce1ba2ff9faebd033c52b4
c0f0e908055c1656f49b3c4a75e70f206e436a13: Bug 1423840 - Rewrite the prefs parser. r=glandium,Manishearth draft
Nicholas Nethercote <nnethercote@mozilla.com> - Sun, 03 Dec 2017 00:26:36 +1100 - rev 712632
Push 93376 by nnethercote@mozilla.com at Mon, 18 Dec 2017 05:26:12 +0000
Bug 1423840 - Rewrite the prefs parser. r=glandium,Manishearth The prefs parser has two significant problems. - It doesn't separate tokenizing from parsing. - It is implemented as a loop around a big switch on a "current state" variable. As a result, it is hard to understand and modify, slower than it could be, and in obscure cases (involving comments and whitespace) it fails to parse what should be valid input. This patch replaces it with a recursive descent parser (albeit one without any recursion!) that has separate tokenization. The new parser is easier to understand and modify, more correct, and has better error messages. It doesn't do error recovery, but that would be much easier to add than in the old parser. The new parser also runs about 1.9x faster than the existing parser. (As measured by parsing greprefs.js's contents from memory 1000 times in succession, omitting the prefs hash table construction. If the table construction is included, it's about 1.6x faster.) The new parser is slightly stricter than the old parser in a few ways. - Disconcertingly, the old parser allowed arbitrary junk between prefs (including at the start and end of the prefs file) so long as that junk didn't include any of the following chars: '/', '#', 'u', 's', 'p'. I.e. a line like this: !foo@bar&pref("prefname", true); ticky_pref("prefname", true); // missing 's' at start User_pref("prefname", true); // should be 'u' at start would be treated the same as this: pref("prefname", true); The new parser disallows such junk because it isn't necessary and seems like an unintentional botch by the old parser. - The old parser allowed character 0x1a (SUB) between tokens and treated it like '\n'. The new parser does not allow this character. SUB was used to indicate end-of-file (*not* end-of-line) in some old operating systems such as MS-DOS, but this doesn't seem necessary today. - The old parser tolerated (with a warning) invalid escape sequences within string literals -- such as "\q" (not a valid escape) and "\x1" and "\u12" (both of which have insufficient hex digits) -- accepting them literally. The new parser does not tolerates invalid escape sequences because it doesn't seem necessary and would complicate things. - The old parser tolerated character 0x00 (NUL) within string literals; this is dangerous because C++ code that manipulates string values with embedded NULs will almost certainly consider those chars as end-of-string markers. The new parser treats NUL chars as end-of-file, to avoid this danger and because it facilitates a significant optimization (described within the code). - The old parser allowed integer literals to overflow, silently wrapping them. The new parser treats integer overflow as a parse error. This seems better, and it caught an existing overflow in testing/profiles/prefs_general.js, for places.database.lastMaintenance (see bug 1424030). The first of these changes meant that a couple of existing prefs with ";;" at the end had to be changed. The minor increase in strictness shouldn't be a problem for default pref files such as greprefs.js within the application (which we can modify), nor for app-written prefs files such as prefs.js. It could affect user-written prefs files such as user.js; the experience above suggests that ";;" is the most likely problem in practice. In my opinion, the risk here is acceptable. The new parser also does a better job of tracking line numbers because it (a) treats "\r\n" sequences as a single end-of-line marker, and (a) pays attention to end-of-line sequences within string literals. Finally, the patch adds thorough tests of both valid and invalid syntax. MozReview-Commit-ID: 8EYWH7KxGG
c4cf8f4683114454167cc8db9fc352f0b634306b: servo: Merge #19578 - Allow deriving Parse on keywords (from emilio:parse-keyword); r=Manishearth,canaltinova
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 15 Dec 2017 14:55:49 -0600 - rev 712404
Push 93333 by dgottwald@mozilla.com at Sat, 16 Dec 2017 12:25:16 +0000
servo: Merge #19578 - Allow deriving Parse on keywords (from emilio:parse-keyword); r=Manishearth,canaltinova This makes patches like #19576 much easier. Source-Repo: https://github.com/servo/servo Source-Revision: e631d167bf28676e45e37f418b4282fcfba98c1e
186c240f7a8026faea7c3662ae76d55b7b8fbeac: Bug 1423840 - Rewrite the prefs parser. r=glandium,Manishearth draft
Nicholas Nethercote <nnethercote@mozilla.com> - Sun, 03 Dec 2017 00:26:36 +1100 - rev 709564
Push 92691 by nnethercote@mozilla.com at Fri, 08 Dec 2017 09:18:51 +0000
Bug 1423840 - Rewrite the prefs parser. r=glandium,Manishearth The prefs parser has two significant problems. - It doesn't separate tokenizing from parsing. - It is implemented as a loop around a big switch on a "current state" variable. As a result, it is hard to understand and modify, slower than it could be, and in obscure cases (involving comments and whitespace) it fails to parse what should be valid input. This patch replaces it with a recursive descent parser (albeit one without any recursion!) that has separate tokenization. The new parser is easier to understand and modify, more correct, and has better error messages. It doesn't do error recovery, but that would be much easier to add than in the old parser. The new parser also runs about 1.9x faster than the existing parser. (As measured by parsing greprefs.js's contents from memory 1000 times in succession, omitting the prefs hash table construction. If the table construction is included, it's about 1.6x faster.) The new parser is slightly stricter than the old parser in a few ways. - Disconcertingly, the old parser allowed arbitrary junk between prefs (including at the start and end of the prefs file) so long as that junk didn't include any of the following chars: '/', '#', 'u', 's', 'p'. I.e. a line like this: !foo@bar&pref("prefname", true); ticky_pref("prefname", true); // missing 's' at start User_pref("prefname", true); // should be 'u' at start would be treated the same as this: pref("prefname", true); The new parser disallows such junk because it isn't necessary and seems like an unintentional botch by the old parser. - The old parser allowed character 0x1a (SUB) between tokens and treated it like '\n'. The new parser does not allow this character. SUB was used to indicate end-of-file (*not* end-of-line) in some old operating systems such as MS-DOS, but this doesn't seem necessary today. - The old parser tolerated (with a warning) invalid escape sequences within string literals -- such as "\q" (not a valid escape) and "\x1" and "\u12" (both of which have insufficient hex digits) -- accepting them literally. The new parser does not tolerates invalid escape sequences because it doesn't seem necessary and would complicate things. - The old parser tolerated character 0x00 (NUL) within string literals; this is dangerous because C++ code that manipulates string values with embedded NULs will almost certainly consider those chars as end-of-string markers. The new parser treats NUL chars as end-of-file, to avoid this danger and because it facilitates a significant optimization (described within the code). - The old parser allowed integer literals to overflow, silently wrapping them. The new parser treats integer overflow as a parse error. This seems better, and it caught an existing overflow in testing/profiles/prefs_general.js, for places.database.lastMaintenance (see bug 1424030). The first of these changes meant that a couple of existing prefs with ";;" at the end had to be changed. The minor increase in strictness shouldn't be a problem for default pref files such as greprefs.js within the application (which we can modify), nor for app-written prefs files such as prefs.js. It could affect user-written prefs files such as user.js; the experience above suggests that ";;" is the most likely problem in practice. In my opinion, the risk here is acceptable. The new parser also does a better job of tracking line numbers because it (a) treats "\r\n" sequences as a single end-of-line marker, and (a) pays attention to end-of-line sequences within string literals. Finally, the patch adds thorough tests of both valid and invalid syntax. MozReview-Commit-ID: 8EYWH7KxGG
32e7d25e965361644597eb7c4972bc69ee1b48cd: Bug 1423840 - Rewrite the prefs parser. r=glandium,Manishearth draft
Nicholas Nethercote <nnethercote@mozilla.com> - Sun, 03 Dec 2017 00:26:36 +1100 - rev 708941
Push 92496 by nnethercote@mozilla.com at Thu, 07 Dec 2017 11:10:39 +0000
Bug 1423840 - Rewrite the prefs parser. r=glandium,Manishearth The prefs parser has two significant problems. - It doesn't separate tokenizing from parsing. - It is implemented as a loop around a big switch on a "current state" variable. As a result, it is hard to understand and modify, slower than it could be, and in obscure cases it fails to parse some valid input. This patch replaces it with a recursive descent parser (albeit one without any recursion!) that has separate tokenization. The new parser is easier to understand and modify, more correct, and has better error messages (including filenames). It also runs about 1.9x faster than the existing parser. (As measured by parsing greprefs.js's contents from memory 1000 times in succession, omitting the prefs hash table construction. If the table construction is included, it's about 1.6x faster.) The new parser is slightly stricter than the old parser in a few ways. - Disconcertingly, the old parser allowed arbitrary junk between prefs (including at the start and end of the prefs file) so long as that junk didn't include any of the following chars: '/', '#', 'u', 's', 'p'. I.e. a line like this: !foo@bar&pref("prefname", true); would be treated the same as this: pref("prefname", true); The new parser disallows such junk because it isn't necessary and seems like an unintentional botch by the old parser. - The old parser allowed character 0x1a (SUB) between tokens and treated it like '\n'. The new parser does not allow this character. SUB was used to indicate end-of-file (*not* end-of-line) in some old operating systems such as MS-DOS, but this doesn't seem necessary today. - The old parser tolerated (with a warning) invalid escape sequences within string literals -- such as "\q" (not a valid escape) and "\x1" and "\u12" (both of which have insufficient hex digits) -- accepting them literally. The new parser does not tolerates invalid escape sequences because it doesn't seem necessary and would complicate things. - The old parser tolerated character 0x00 (NUL) within string literals; this is dangerous because C++ code that manipulates string values with embedded NULs will almost certainly consider those chars as end-of-string markers. The new parser treats NUL chars as end-of-file, to avoid this danger and because it facilitates a significant optimization (described within the code). - The old parser allowed integer literals to overflow, silently wrapping them. The new parser treats integer overflow as a parse error. This seems better, and it caught an existing overflow in testing/profiles/prefs_general.js, for places.database.lastMaintenance. The first of these changes meant that a couple of existing prefs with ";;" at the end had to be changed. The minor increase in strictness shouldn't be a problem for default pref files such as greprefs.js within the application (which we can modify), nor for app-written prefs files such as prefs.js. It could affect user-written prefs files such as user.js; the experience above suggests that ";;" is the most likely problem in practice. In my opinion, the risk here is acceptable. The new parser should also do a better job of tracking line numbers because it (a) treats "\r\n" sequences as a single end-of-line marker, and (a) pays attention to end-of-line sequences within string literals. The patch also adds a thorough test of valid syntax. (Note that the old parser fails to correctly parse this test in a few places because it misimplemented the grammar.) I'd like to also add tests for invalid syntax but the current design makes this challenging, because parse errors trigger an error message on the web console and a NS_ERROR_FILE_CORRUPTED return value from Parse(). MozReview-Commit-ID: 8EYWH7KxGG
f1be692f514bebc65041293202932dc16f9692c6: Bug 1423840 - Rewrite the prefs parser. r=glandium,Manishearth draft
Nicholas Nethercote <nnethercote@mozilla.com> - Sun, 03 Dec 2017 00:26:36 +1100 - rev 708931
Push 92489 by nnethercote@mozilla.com at Thu, 07 Dec 2017 10:34:59 +0000
Bug 1423840 - Rewrite the prefs parser. r=glandium,Manishearth The prefs parser has two significant problems. - It doesn't separate tokenizing from parsing. - It is implemented as a loop around a big switch on a "current state" variable. As a result, it is hard to understand and modify, slower than it could be, and in obscure cases it fails to parse some valid input. This patch replaces it with a recursive descent parser (albeit one without any recursion!) that has separate tokenization. The new parser is easier to understand and modify, more correct, and has better error messages (including filenames). It also runs about 1.9x faster than the existing parser. (As measured by parsing greprefs.js's contents from memory 1000 times in succession, omitting the prefs hash table construction. If the table construction is included, it's about 1.4x faster.) The new parser is slightly stricter than the old parser in a few ways. - Disconcertingly, the old parser allowed arbitrary junk between prefs (including at the start and end of the prefs file) so long as that junk didn't include any of the following chars: '/', '#', 'u', 's', 'p'. I.e. a line like this: !foo@bar&pref("prefname", true); would be treated the same as this: pref("prefname", true); The new parser disallows such junk because it isn't necessary and seems like an unintentional botch by the old parser. - The old parser allowed character 0x1a (SUB) between tokens and treated it like '\n'. The new parser does not allow this character. SUB was used to indicate end-of-file (*not* end-of-line) in some old operating systems such as MS-DOS, but this doesn't seem necessary today. - The old parser tolerated (with a warning) invalid escape sequences within string literals -- such as "\q" (not a valid escape) and "\x1" and "\u12" (both of which have insufficient hex digits) -- accepting them literally. The new parser does not tolerates invalid escape sequences because it doesn't seem necessary and would complicate things. - The old parser tolerated character 0x00 (NUL) within string literals; this is dangerous because C++ code that manipulates string values with embedded NULs will almost certainly consider those chars as end-of-string markers. The new parser treats NUL chars as end-of-file, to avoid this danger and because it facilitates a significant optimization (described within the code). - The old parser allowed integer literals to overflow, silently wrapping them. The new parser treats integer overflow as a parse error. This seems better, and it caught an existing overflow in testing/profiles/prefs_general.js, for places.database.lastMaintenance. The first of these changes meant that a couple of existing prefs with ";;" at the end had to be changed. The minor increase in strictness shouldn't be a problem for default pref files such as greprefs.js within the application (which we can modify), nor for app-written prefs files such as prefs.js. It could affect user-written prefs files such as user.js; the experience above suggests that ";;" is the most likely problem in practice. In my opinion, the risk here is acceptable. The new parser should also do a better job of tracking line numbers because it (a) treats "\r\n" sequences as a single end-of-line marker, and (a) pays attention to end-of-line sequences within string literals. The patch also adds a thorough test of valid syntax. (Note that the old parser fails to correctly parse this test in a few places because it misimplemented the grammar.) I'd like to also add tests for invalid syntax but the current design makes this challenging, because parse errors trigger an error message on the web console and a NS_ERROR_FILE_CORRUPTED return value from Parse(). MozReview-Commit-ID: 8EYWH7KxGG
a6ab37216edee300b1c2f1b8e75f07111a2ae005: Bug 1422641: Inline Gecko_GetSMILOverrideDeclarationBlock. r?Manishearth,xidorn draft
Emilio Cobos Álvarez <emilio@crisal.io> - Mon, 04 Dec 2017 01:05:25 +0100 - rev 707713
Push 92190 by bmo:emilio@crisal.io at Tue, 05 Dec 2017 17:07:36 +0000
Bug 1422641: Inline Gecko_GetSMILOverrideDeclarationBlock. r?Manishearth,xidorn MozReview-Commit-ID: E8cM7zRZHn1
06852d04e07028e2e09ea389ad97eba7dd8047d8: Bug 1422641: Inline Gecko_GetSMILOverrideDeclarationBlock. r=Manishearth,xidorn
Emilio Cobos Álvarez <emilio@crisal.io> - Mon, 04 Dec 2017 01:05:25 +0100 - rev 707674
Push 92188 by kgupta@mozilla.com at Tue, 05 Dec 2017 16:54:08 +0000
Bug 1422641: Inline Gecko_GetSMILOverrideDeclarationBlock. r=Manishearth,xidorn MozReview-Commit-ID: E8cM7zRZHn1
cee16defbc8e99ed887b120de00a319b758a4c72: servo: Merge #19493 - style: Some stylo-chrome perf tweaks (from emilio:chrome-perf); r=xidorn,Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Tue, 05 Dec 2017 06:05:25 -0600 - rev 707670
Push 92188 by kgupta@mozilla.com at Tue, 05 Dec 2017 16:54:08 +0000
servo: Merge #19493 - style: Some stylo-chrome perf tweaks (from emilio:chrome-perf); r=xidorn,Manishearth Source-Repo: https://github.com/servo/servo Source-Revision: 8f30880d362ef54a2c6881c4927b96303ff763ef
7ae3057f16dc575a157d94df39ce2cae0c22043f: Bug 1422641: Inline Gecko_GetSMILOverrideDeclarationBlock. r?Manishearth,xidorn draft
Emilio Cobos Álvarez <emilio@crisal.io> - Mon, 04 Dec 2017 01:05:25 +0100 - rev 706877
Push 91936 by bmo:emilio@crisal.io at Mon, 04 Dec 2017 10:24:39 +0000
Bug 1422641: Inline Gecko_GetSMILOverrideDeclarationBlock. r?Manishearth,xidorn MozReview-Commit-ID: E8cM7zRZHn1
da8878b4d4a54d21416853951467ce2ef22fbc58: Bug 1422641: Inline Gecko_GetSMILOverrideDeclarationBlock. r?Manishearth,xidorn draft
Emilio Cobos Álvarez <emilio@crisal.io> - Mon, 04 Dec 2017 01:05:25 +0100 - rev 706712
Push 91890 by bmo:emilio@crisal.io at Mon, 04 Dec 2017 01:54:17 +0000
Bug 1422641: Inline Gecko_GetSMILOverrideDeclarationBlock. r?Manishearth,xidorn MozReview-Commit-ID: E8cM7zRZHn1
7e2b12a6a7e2c72f05269cf587d12b79505db395: Bug 1422641: Inline Gecko_GetSMILOverrideDeclarationBlock. r?Manishearth,xidorn draft
Emilio Cobos Álvarez <emilio@crisal.io> - Mon, 04 Dec 2017 01:05:25 +0100 - rev 706702
Push 91885 by bmo:emilio@crisal.io at Mon, 04 Dec 2017 00:07:18 +0000
Bug 1422641: Inline Gecko_GetSMILOverrideDeclarationBlock. r?Manishearth,xidorn MozReview-Commit-ID: E8cM7zRZHn1
78d7ac2ce842c4c889ed781517f66dbcc9698e4f: Bug 1408308: Integrate Servo SourceSizeList in ResponsiveImageSelector. r=Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Mon, 13 Nov 2017 06:44:12 +0100 - rev 697228
Push 88922 by bmo:emilio@crisal.io at Mon, 13 Nov 2017 15:43:25 +0000
Bug 1408308: Integrate Servo SourceSizeList in ResponsiveImageSelector. r=Manishearth MozReview-Commit-ID: DMVfE56DyYm
b59ffea83e0abe345853fa76dba4bca551464858: Bug 1408308: Integrate Servo SourceSizeList in ResponsiveImageSelector. r=Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Thu, 09 Nov 2017 15:18:08 +0100 - rev 697207
Push 88922 by bmo:emilio@crisal.io at Mon, 13 Nov 2017 15:43:25 +0000
Bug 1408308: Integrate Servo SourceSizeList in ResponsiveImageSelector. r=Manishearth This needs to dumb down the parsing in order to match what we do in Gecko and pass more tests. The remaining tests are just because of calc() in media queries and "or" media expressions. MozReview-Commit-ID: CXGdYVbojBL
6f321c024fc4e82363e9b1215891a37d8abde5de: servo: Merge #19197 - stylo: Integrate Servo SourceSizeList in ResponsiveImageSelector (from emilio:source-size-list-integration); r=Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Sun, 12 Nov 2017 21:01:34 -0600 - rev 697206
Push 88922 by bmo:emilio@crisal.io at Mon, 13 Nov 2017 15:43:25 +0000
servo: Merge #19197 - stylo: Integrate Servo SourceSizeList in ResponsiveImageSelector (from emilio:source-size-list-integration); r=Manishearth Bug: 1408308 Reviewed-by: Manishearth Source-Repo: https://github.com/servo/servo Source-Revision: 5d3a90ecce766f3dfba35e08101a74a5d73dba79
6bed71583aa9a40f73db1d8cf7d386ca793c08f5: Bug 1396057: Change tests of calc in media-queries so that the root element style has been resolved first. r=Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 10 Nov 2017 16:48:44 +0100 - rev 697094
Push 88890 by bmo:dburns@mozilla.com at Mon, 13 Nov 2017 10:27:18 +0000
Bug 1396057: Change tests of calc in media-queries so that the root element style has been resolved first. r=Manishearth This modify the tests so that the media query evaluation they're testing happens after style resolution, which would've caught a bug in rem unit evaluation inside media queries in stylo. MozReview-Commit-ID: ByaR4ZA995l
b7ebbb451e5a493673f89edb06307caefed0833a: servo: Merge #19194 - stylo: Bring back support for calc() in media-queries (from emilio:media-query-calc); r=Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Sun, 12 Nov 2017 20:06:12 -0600 - rev 697093
Push 88890 by bmo:dburns@mozilla.com at Mon, 13 Nov 2017 10:27:18 +0000
servo: Merge #19194 - stylo: Bring back support for calc() in media-queries (from emilio:media-query-calc); r=Manishearth Bug: 1396057 Reviewed-by: Manishearth Source-Repo: https://github.com/servo/servo Source-Revision: 4970b5d1544fe8f33287b01540e972a639baa689
26a70922efd74a004f2f2c5f0d1e2d35481ae554: servo: Merge #16946 - Add intermittent failure reporting to filter-intermittents (from jdm:report); r=Manishearth
Josh Matthews <josh@joshmatthews.net> - Tue, 07 Nov 2017 13:05:12 -0600 - rev 694853
Push 88276 by bmo:lchang@mozilla.com at Wed, 08 Nov 2017 12:05:35 +0000
servo: Merge #16946 - Add intermittent failure reporting to filter-intermittents (from jdm:report); r=Manishearth We need to address https://github.com/servo/saltfs/issues/671 before this can be enabled by default on the builders, but I got the pieces working locally. This collects relevant information about each recorded intermittent failure encountered during a test run and posts them to a webapp which stores them in a database for later investigation. This will allow us to track over time which intermittent test failures are the most frequent, as well as whether they only happen on a particular builder or operating system. Source-Repo: https://github.com/servo/servo Source-Revision: 693c3dcfb29ecc2aa4610aabc68ce7381bfd5d87
23558938a6c6c02c920c0df8670c0fac6a883532: Bug 1412743 - style: Avoid double-applying text-zoom for keywords. r=Manishearth, a=ritu
Emilio Cobos Álvarez <emilio@crisal.io> - Wed, 01 Nov 2017 22:57:00 -0400 - rev 694394
Push 88118 by bmo:edilee@mozilla.com at Tue, 07 Nov 2017 18:56:14 +0000
Bug 1412743 - style: Avoid double-applying text-zoom for keywords. r=Manishearth, a=ritu Source-Repo: https://github.com/servo/servo Source-Revision: c882266c8915b9f424cc4efbc860a9e417bf1326
95e8712dbf3baa0bb59d676aec75df3fbccd6240: servo: Merge #19074 - style: Avoid double-applying text-zoom for keywords (from emilio:font-size-woes); r=Manishearth
Emilio Cobos Álvarez <emilio@crisal.io> - Tue, 31 Oct 2017 15:08:24 -0500 - rev 689787
Push 87106 by bmo:emilio@crisal.io at Tue, 31 Oct 2017 23:05:35 +0000
servo: Merge #19074 - style: Avoid double-applying text-zoom for keywords (from emilio:font-size-woes); r=Manishearth Bug: 1412743 Reviewed-by: Manishearth Source-Repo: https://github.com/servo/servo Source-Revision: c882266c8915b9f424cc4efbc860a9e417bf1326
727af52a0f05e2a55513cb8f26bb2bdfeef0dd59: Bug 1412743: Avoid double-applying text-zoom for keywords. r?Manishearth draft
Emilio Cobos Álvarez <emilio@crisal.io> - Tue, 31 Oct 2017 12:07:33 +0100 - rev 689376
Push 87004 by bmo:emilio@crisal.io at Tue, 31 Oct 2017 13:41:52 +0000
Bug 1412743: Avoid double-applying text-zoom for keywords. r?Manishearth MozReview-Commit-ID: 3iOstV6RifQ
78e8b07f3e111265294a5fedb5297e55ab45e32f: Bug 1412743: Avoid double-applying text-zoom for keywords. r?Manishearth draft
Emilio Cobos Álvarez <emilio@crisal.io> - Tue, 31 Oct 2017 12:07:33 +0100 - rev 689316
Push 86991 by bmo:emilio@crisal.io at Tue, 31 Oct 2017 11:08:42 +0000
Bug 1412743: Avoid double-applying text-zoom for keywords. r?Manishearth MozReview-Commit-ID: 3iOstV6RifQ
da6b544b9891b2998db542fc881e5a9e133dd554: Bug 1412868: Remove Gecko_GetLookAndFeelSystemColor from the static analysis whitelist. r=manishearth
Brad Werth <bwerth@mozilla.com> - Mon, 30 Oct 2017 08:47:01 -0700 - rev 688995
Push 86890 by gszorc@mozilla.com at Mon, 30 Oct 2017 22:55:17 +0000
Bug 1412868: Remove Gecko_GetLookAndFeelSystemColor from the static analysis whitelist. r=manishearth MozReview-Commit-ID: 7gf3CZM3ypv
38f363ae6e486df376200b402902b380c1934820: servo: Merge #19055 - Add support for -moz-window-opacity to stylo (from upsuper:window-opacity); r=Manishearth
Xidorn Quan <me@upsuper.org> - Mon, 30 Oct 2017 00:42:45 -0500 - rev 688923
Push 86890 by gszorc@mozilla.com at Mon, 30 Oct 2017 22:55:17 +0000
servo: Merge #19055 - Add support for -moz-window-opacity to stylo (from upsuper:window-opacity); r=Manishearth Fixes [bug 1374177](https://bugzilla.mozilla.org/show_bug.cgi?id=1374177). Source-Repo: https://github.com/servo/servo Source-Revision: 17bfe5c12013a47c09e0198d029f3ded2ccbc42c
196059cada7070ab1e35db83a22b60389bd0c794: Bug 1409444 - Update rand to 0.3.17. r=manishearth a=ritu
Xidorn Quan <me@upsuper.org> - Sat, 28 Oct 2017 15:12:47 +1100 - rev 688467
Push 86742 by bmo:gasolin@mozilla.com at Mon, 30 Oct 2017 02:19:49 +0000
Bug 1409444 - Update rand to 0.3.17. r=manishearth a=ritu