366d1dc1f33e55c6b4c93c1ef0ebe4834c3c9df6: servo: Merge #16724 - style: Re-enable font metrics querying for ch and ex units in Stylo traversal (from heycam:reenable-metrics); r=bholley
Cameron McCormack <cam@mcc.id.au> - Thu, 04 May 2017 03:46:28 -0500 - rev 573119
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
servo: Merge #16724 - style: Re-enable font metrics querying for ch and ex units in Stylo traversal (from heycam:reenable-metrics); r=bholley From https://bugzilla.mozilla.org/show_bug.cgi?id=1356103. Source-Repo: https://github.com/servo/servo Source-Revision: ca277aabe6c32f025da585b909b308336181d6e2
579a36c00c58d6175932905a8f4c2260ad2c1989: Bug 1361480 - Improve logic for size related filters; r=gasolin
Jan Odvarko <odvarko@gmail.com> - Wed, 03 May 2017 08:27:35 +0200 - rev 573118
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1361480 - Improve logic for size related filters; r=gasolin MozReview-Commit-ID: 5hA6kpG9OhA
4ec64c93ac17d3aeae1b53b39e13a982f572cb70: Bug 1361949 - Add missing 'using namespace::widget' to widget/windows/nsDragService.cpp r=jwatt
Farmer Tseng <fatseng@mozilla.com> - Thu, 04 May 2017 17:31:23 +0800 - rev 573117
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1361949 - Add missing 'using namespace::widget' to widget/windows/nsDragService.cpp r=jwatt Because ModifierKeyState is in the 'mozilla::widget' namespace, this file uses it without qualification. MozReview-Commit-ID: H6t3AqLjRwJ
9fb487252c28320a1ba42f7919fa852fbea76446: Bug 1356103 - Part 12: Allow OMT heap writes under Gecko_GetFontMetrics. r=bholley
Cameron McCormack <cam@mcc.id.au> - Sun, 30 Apr 2017 17:03:15 +0800 - rev 573116
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1356103 - Part 12: Allow OMT heap writes under Gecko_GetFontMetrics. r=bholley This isn't great, since although we know that Servo style worker threads have exclusive write access to the main thread heap due to the use of the Servo font metrics Mutex, we don't know that we're not modifying data on the heap that other style worker threads want to read from. MozReview-Commit-ID: CbSzQFkKG95
301237c659450c31674defb177895b9aabc23a42: Bug 1356103 - Part 11: Adjust text expectations. r=bholley
Cameron McCormack <cam@mcc.id.au> - Sun, 30 Apr 2017 15:20:42 +0800 - rev 573115
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1356103 - Part 11: Adjust text expectations. r=bholley MozReview-Commit-ID: 7psm1XCGQ8I
7bc3a4861a3995638bc2dada3cc8f2257b887342: Bug 1356103 - Part 10: Re-enable font metrics querying for ch and ex units in Servo traversal. r=bholley
Cameron McCormack <cam@mcc.id.au> - Thu, 04 May 2017 16:20:14 +0800 - rev 573114
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1356103 - Part 10: Re-enable font metrics querying for ch and ex units in Servo traversal. r=bholley MozReview-Commit-ID: 9rKsTyfgEIl
2f383d89184b02533e9afbfa4d614db064e0b2c6: Bug 1356103 - Part 9: Use a PostTraversalTask to deal with downloadable fonts in gfxUserFontSet. r=bholley,jfkthame
Cameron McCormack <cam@mcc.id.au> - Sun, 30 Apr 2017 14:57:25 +0800 - rev 573113
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1356103 - Part 9: Use a PostTraversalTask to deal with downloadable fonts in gfxUserFontSet. r=bholley,jfkthame Here we add a new UserFontLoadState value, STATUS_LOAD_PENDING, which represents the state just after a gfxUserFontEntry's url()-valued source would being loading, except that we can't start the load due to being on a Servo style worker thread. In that case, we defer the work of initiating the load until just after the Servo traversal is finished. URLs that can normally be loaded synchronously, such as data: URLs and script-implemented protocols marked as synchronous, must be handled asynchronously when encountered during Servo traversal, since various main-thread only work (in FontFaceSet::SyncLoadFontData) must happen. This is a user visible change from stock Gecko, but should only happen when font metrics for a data: URL font are requested due to ch/ex unit resolution when layout hasn't previously requested the font load. Hopefully nobody relies on synchronous resolution of ch/ex units with data: URLs. We unfortunately also can't pick gfxUserFontEntry objects out of the UserFontCache during Servo traversal, since validating the cache entry involves doing content policy checking, which is not thread-safe (due in part to taking strong references to nsIPrincipals). Platform fonts and ArrayBuffer-backed DOM FontFace objects continue to be handled synchronously. The PostTraversalTask does not take a strong reference to the gfxUserFontEntry object, since it is held on to by the DOM FontFace object, which itself won't go away before the PostTraversalTask is run. MozReview-Commit-ID: J9ODLsusrNV
a03112e1c9d5597e91b48d94a49d62890a33d298: Bug 1356103 - Part 8: Use PostTraversalTasks to deal with FontFaceSet's Promise and DOM event dispatch during Servo traversal. r=bholley
Cameron McCormack <cam@mcc.id.au> - Sun, 30 Apr 2017 14:55:22 +0800 - rev 573112
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1356103 - Part 8: Use PostTraversalTasks to deal with FontFaceSet's Promise and DOM event dispatch during Servo traversal. r=bholley The PostTraversalTask does not take a strong reference to the FontFaceSet object, since as a DOM object, we can't call AddRef/Release on it from the Servo style worker threads. The FontFaceSet is held on to by the nsIDocument, and only cleared during cycle collection, which should not occur between the font metrics request and the PostTraversalTask running. MozReview-Commit-ID: 5aKIg4DIQ4w
c60b4c9cbd83e774eca3014e1e0d78f67b055b62: Bug 1356103 - Part 7: Use PostTraversalTasks to deal with FontFace's Promise during Servo traversal. r=bholley
Cameron McCormack <cam@mcc.id.au> - Sun, 30 Apr 2017 14:51:29 +0800 - rev 573111
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1356103 - Part 7: Use PostTraversalTasks to deal with FontFace's Promise during Servo traversal. r=bholley The PostTraversalTask does not take a strong reference to the FontFace object, since as a DOM object, we can't call AddRef/Release on it from the Servo style worker threads. The FontFace objects that we encounter are all held on to by the FontFaceSet, and none of the work that we do during font loads should drop FontFace objects from the FontFaceSet. (That only happens under nsIDocument::FlushUserFontSet, which is only called on the main thread.) MozReview-Commit-ID: 5CdtGQYC9aL
34280baeaabe27be2c7d587b6e1875d260bdbcdf: Bug 1356103 - Part 6: Make gfxUserFontSet refcounting thread-safe. r=bholley
Cameron McCormack <cam@mcc.id.au> - Sun, 30 Apr 2017 14:48:17 +0800 - rev 573110
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1356103 - Part 6: Make gfxUserFontSet refcounting thread-safe. r=bholley As with a few other gfx* font-related classes, during font metrics calculations we end up taking strong references to gfxUserFontSet, and it would be difficult to restructure the code to not do this. MozReview-Commit-ID: L1GbZnf4825
31a0881cfb4714a43c725d114775f1b9061d81f4: Bug 1356103 - Part 5: Allow access to WeakPtr<UnscaledFont> when the Servo font metrics mutex is locked. r=lsalzman
Cameron McCormack <cam@mcc.id.au> - Sun, 30 Apr 2017 14:47:22 +0800 - rev 573109
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1356103 - Part 5: Allow access to WeakPtr<UnscaledFont> when the Servo font metrics mutex is locked. r=lsalzman We need to grab UnscaledFont objects through WeakPtrs during metrics calculations, but this only happens on Servo style worker threads while the Servo font metrics mutex is locked (and while the main thread is paused). So we use WeakPtrTraits to override the thread safety assertion to allow OMT access through the WeakPtr if the mutex is locked. Since we can end up creating UnscaledFont objects from the style worker threads too, we additionally need to allow the main thread to access them through WeakPtrs. It would be nice to avoid the dependency on layout/style/ here, but I can't see a way to do that without putting the burden of the annotation that the more permissive thread safety checks are allowed on the WeakPtr<> declarations themselves. MozReview-Commit-ID: AbHNZEhE7L8
529d037f9c3361be19480d26054b4a790c2aafdd: Bug 1356103 - Part 4: Add a mechanism for C++ functions to perform post-Servo traversal tasks. r=bholley
Cameron McCormack <cam@mcc.id.au> - Sun, 30 Apr 2017 14:45:32 +0800 - rev 573108
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1356103 - Part 4: Add a mechanism for C++ functions to perform post-Servo traversal tasks. r=bholley MozReview-Commit-ID: 5Gx1qZzQxAK
1c7831db6b0750720a5bc617cf56804525fd18f2: Bug 1356103 - Part 3: Make it easy to access the ServoStyleSet currently in traversal. r=bholley
Cameron McCormack <cam@mcc.id.au> - Sun, 30 Apr 2017 14:41:11 +0800 - rev 573107
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1356103 - Part 3: Make it easy to access the ServoStyleSet currently in traversal. r=bholley In a later patch, we'll want to queue up some tasks to run when the Servo traversal is one, and the ServoStyleSet seems like the natural place to store those tasks. We could probably find the ServoStyleSet by chasing a bunch of pointers from the task-adding call sites, but it seems simpler just to make it available directly. MozReview-Commit-ID: AJoFZEoNaGm
559f06e32df3a9412095f1000770ac915dfc3777: Bug 1356103 - Part 2: Add functions to assert the Servo font metrics mutex is locked. r=bholley
Cameron McCormack <cam@mcc.id.au> - Sun, 30 Apr 2017 13:15:42 +0800 - rev 573106
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1356103 - Part 2: Add functions to assert the Servo font metrics mutex is locked. r=bholley MozReview-Commit-ID: QtydYSYvxW
784865d234cdb3822745cdddc0e0422d94a17c04: Bug 1356103 - Part 1: Add WeakPtrTraits to allow SupportsWeakPtr classes to opt in to more permissive thread ownership assertions. r=bholley
Cameron McCormack <cam@mcc.id.au> - Sun, 30 Apr 2017 12:14:06 +0800 - rev 573105
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1356103 - Part 1: Add WeakPtrTraits to allow SupportsWeakPtr classes to opt in to more permissive thread ownership assertions. r=bholley MozReview-Commit-ID: 62pJc2N8aIo
01424585603f033bead0b84198f48fe79800a442: Merge mozilla-central to autoland
Carsten "Tomcat" Book <cbook@mozilla.com> - Thu, 04 May 2017 11:24:40 +0200 - rev 573104
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Merge mozilla-central to autoland
73696a2f5ec643bd4d503b1b858f1bbfc60b51d8: Bug 1358479 - Check if a grid fragment is valid before highlighting it; r=jdescottes
Patrick Brosset <pbrosset@mozilla.com> - Tue, 25 Apr 2017 14:16:57 +0200 - rev 573103
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1358479 - Check if a grid fragment is valid before highlighting it; r=jdescottes Grid fragments returned by the chrome-only el.getGridFragments() API may sometimes in fact be empty. When they are, the returned object still looks like a fragment, but has either no rows or no columns. So this commit simply adds a quick check on this in the css grid highlighter before attempting to highlight a grid fragment. MozReview-Commit-ID: GjsGu9hpU5G
a86584f1364d236034e7860e7f6b269cc724f3c7: Bug 1361650 - drop beforeunload timeout down to 1 second to make tab closing faster when the content process is slow, r=billm
Gijs Kruitbosch <gijskruitbosch@gmail.com> - Wed, 03 May 2017 10:07:48 +0100 - rev 573102
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1361650 - drop beforeunload timeout down to 1 second to make tab closing faster when the content process is slow, r=billm MozReview-Commit-ID: x33js5D5Yh
c612b7357d7bf83de5edd7877f4e4602966b5a1b: Bug 1347174 - per comment 10, limit the readahead size to prevent cache thrashing. r=cpearce
JW Wang <jwwang@mozilla.com> - Thu, 27 Apr 2017 10:35:08 +0800 - rev 573101
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
Bug 1347174 - per comment 10, limit the readahead size to prevent cache thrashing. r=cpearce MozReview-Commit-ID: Ellinh8JIYE
879d80dec207170dc26fd578ff98dacb1e8d2ab8: servo: Merge #16714 - style: Fix stylo's atom script (from emilio:atoms); r=heycam
Emilio Cobos Álvarez <emilio@crisal.io> - Thu, 04 May 2017 03:03:56 -0500 - rev 573100
Push 57306 by bmo:emilio+bugs@crisal.io at Fri, 05 May 2017 10:08:55 +0000
servo: Merge #16714 - style: Fix stylo's atom script (from emilio:atoms); r=heycam It's been broken since bug 1358968. Source-Repo: https://github.com/servo/servo Source-Revision: dd47b1ba6c6d0d4921c65721c9620bb227783774
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 tip