webrender: implement fieldsets with non-empty legends
Categories
(Core :: Graphics: WebRender, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox57 | --- | unaffected |
firefox58 | --- | unaffected |
firefox68 | --- | fixed |
People
(Reporter: Gankra, Assigned: Gankra, Mentored)
References
(Blocks 1 open bug)
Details
(Whiteboard: [wr-reserve] [gfx-noted])
Attachments
(2 files, 5 obsolete files)
This was left out in initial conversion as it required upstream support. We now have ClipMode::ClipOut which provides that support. Someone just needs to add the appropriate push/pop clip commands in nsDisplayFieldSetBorder::CreateWebRenderCommands (it's mostly already set up with a comment). Good bug starter bug, happy to mentor. (do we have a tag for that?)
Updated•3 years ago
|
Updated•3 years ago
|
If I could get some help on this then I would love to try and fix this! I assume the comment Alexis refers to is https://dxr.mozilla.org/mozilla-central/source/layout/forms/nsFieldSetFrame.cpp?q=nsDisplayFieldSetBorder%3A%3ACreateWebRenderCommands&redirect_type=direct#174 ?
Assignee | ||
Comment 2•3 years ago
|
||
Yes, exactly. So looking a bit closer, there's two things to do here: 1. Add API support for generating a ClipOut 2. Use that API to Push/PopClip in the code you linked. I expect (1) will involve making a version of ToComplexClipRegion ( http://searchfox.org/mozilla-central/source/gfx/webrender_bindings/WebRenderTypes.h#330 ) that takes a (non-rounded) Rect and a ClipMode. (It might end up trivial enough that you should just skip making a function and do the work directly in CreateWebRenderCommands) I think (2) should look like (very-pseudocode): region = ToComplexClipRegion(legendRect, ClipOut) aBuiler->PushClip(aBuilder->DefineClip(region)) ... result = CreateWebRenderCommandsForBorder(..) if (pushedClip) { aBuilder->PopClip() } return result Somewhere in there you should also use the aSc.ToRelativeLayoutRect to get the units right. This should be a decent example: http://searchfox.org/mozilla-central/source/layout/generic/TextDrawTarget.h#61-75
Thanks for the details! Unfortunately I will not be able to do anything tonight, but I'll sit down and work with this tomorrow. If I encounter any problems I'll let you know!
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
I started working on an implementation today and decided to divide it up like you did with (1) and (2) (if the function becomes very small I'll just manually inline it). I wanted to ask about the non-rounded Rect. I wasn't sure which one to use that work with the nsRect class from "nsDisplayFieldSetBorder::CreateWebRenderCommands". Am I right in assuming that RectTyped will work (http://searchfox.org/mozilla-central/source/gfx/2d/Rect.h#229) and is it then appropriate to use gfxRect from http://searchfox.org/mozilla-central/source/gfx/thebes/gfxRect.h#12 ?
Assignee | ||
Comment 5•3 years ago
|
||
Looking again, it looks like ToComplexClipRegion is now dead code, having been replaced by ToComplexClipRegions. This suggests to me you should just skip to doing it inline, based on the body of ToComplexClipRegions.
I mimicked the ToComplexClipRegions without the radii (I assume that it shouldn't be there). DefineClip didn't need the ComplexClipRegion, can I just pass it in directly to aBuilder.DefineClip like in the code snippet? Do I need to manually define the ClipMode::ClipOut somewhere because now I only throw the layoutRect into the DefineClip ``` bool pushedClip{false}; if (nsIFrame* legend = frame->GetLegend()) { rect = frame->VisualBorderRectRelativeToSelf() + offset; nsRect legendRect = legend->GetNormalRect() + offset; if (!legendRect.IsEmpty()) { auto appUnitsPerDevPixel = frame->PresContext()->AppUnitsPerDevPixel(); wr::ComplexClipRegion region; auto layoutRect = LayoutDeviceRect::FromAppUnits(legendRect, appUnitsPerDevPixel); aBuilder.PushClip(aBuilder.DefineClip(Nothing(), Nothing(), aSc.ToRelativeLayoutRect(layoutRect))); pushedClip = true; } } else { rect = nsRect(offset, frame->GetRect().Size()); } ``` The full change is in the patch
Assignee | ||
Comment 8•3 years ago
|
||
Ah, so the issue is that when we added the ClipOut API to webrender, we only put it on ComplexClipRegions, because we didn't want to bloat the much more common clip-rect. So you need to set the mode on the region, properly initialize it, and pass that in too.
Comment 10•3 years ago
|
||
I updated the patch and am now creating an Array with a single ComplexClipRegion that I pass into the DefineClip function. With the previous patch I thought I had to pass the ComplexClipRegion as the rect (third parameter). Perhaps I should have taken a second to read exactly what the fourth parameter was '-.-
Updated•3 years ago
|
Comment 11•3 years ago
|
||
It seems I did not add any flags to my updated patch, woops. Could you look at the patch Alexis?
Assignee | ||
Comment 12•3 years ago
|
||
Whoops, yeah sorry didn't see you updated this! Patch looks like what I was imagining. The style is a bit different from what I'm used to in our codebase. mstange, can you advise on style?
Comment 13•3 years ago
|
||
Comment on attachment 8925848 [details] [diff] [review] my.patch Review of attachment 8925848 [details] [diff] [review]: ----------------------------------------------------------------- Yes, I have some style comments. The code itself looks good! ::: layout/forms/nsFieldSetFrame.cpp @@ +167,4 @@ > auto frame = static_cast<nsFieldSetFrame*>(mFrame); > auto offset = ToReferenceFrame(); > nsRect rect; > + bool pushedClip{false}; This syntax is rarely used in our code, usually only when initializing struct fields. So I'd recommend making this "bool pushedClip = false;" instead, so that it looks less out of place. @@ +178,5 @@ > + auto layoutRect = LayoutDeviceRect::FromAppUnits(legendRect, appUnitsPerDevPixel); > + wr::ComplexClipRegion region; > + region.rect = aSc.ToRelativeLayoutRect(layoutRect); > + region.mode = wr::ClipMode::ClipOut; > + nsTArray<mozilla::wr::ComplexClipRegion> array{region}; whoa, I didn't know we had a way to add a value into an nsTArray during construction! @@ +179,5 @@ > + wr::ComplexClipRegion region; > + region.rect = aSc.ToRelativeLayoutRect(layoutRect); > + region.mode = wr::ClipMode::ClipOut; > + nsTArray<mozilla::wr::ComplexClipRegion> array{region}; > + auto clip = aBuilder.DefineClip(Nothing(), Nothing(), region.rect, &array); Let's make this "wr::ClipId" instead of "auto" to be consistent with the other users of DefineClip. @@ +188,5 @@ > } else { > rect = nsRect(offset, frame->GetRect().Size()); > } > > + auto result = nsCSSRendering::CreateWebRenderCommandsForBorder(this, And please make this auto a bool instead. Same number of characters and clearer. @@ +196,5 @@ > + aResources, > + aSc, > + aManager, > + aDisplayListBuilder); > + if (pushedClip) { aBuilder.PopClip(); } Final style comment: Please add line breaks. if (pushedClip) { aBuilder.PopClip(); }
Comment 14•3 years ago
|
||
Style fixes
Assignee | ||
Comment 15•3 years ago
|
||
Comment on attachment 8930831 [details] [diff] [review] my.patch Review of attachment 8930831 [details] [diff] [review]: ----------------------------------------------------------------- perfect!
Assignee | ||
Updated•3 years ago
|
Comment 16•3 years ago
|
||
It's probably worth adding a reftest to exercise this case (in a follow-up bug maybe) since our existing reftest suite doesn't seem to cover this.
Comment 17•3 years ago
|
||
I will be without a laptop for the next week or so. My suggestion is to, as @kats says, put the reftest in a follow-up bug. Or someone else will have to work on this bug to complete it in a timely manner.
Assignee | ||
Comment 18•3 years ago
|
||
From irc discussion, this was a misunderstanding. Because this is replacing a fallback with a proper WR implementation, it should be fine.
Comment 19•3 years ago
|
||
Yeah, my mistake. I can land this patch for you - in the future please make sure to also include the bug number in the commit message ("Bug XXXXX - commit message. r=reviewer" is the usual format).
Comment 20•3 years ago
|
||
Pushed by kgupta@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/0df37c7600d1 Implement fieldsets with non-empty legends. r=Gankro
Assignee | ||
Comment 21•3 years ago
|
||
Looks like this patch doesn't build: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=0df37c7600d1df881266a0c6269ae125cc677428&filter-classifiedState=unclassified&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&selectedJob=147156897 I think we just need to change ClipId to WrClipId?
Comment 22•3 years ago
|
||
Backed out changeset for build bustages on /builds/worker/workspace/build/src/layout/forms/nsFieldSetFrame.cpp:180:25 https://hg.mozilla.org/integration/mozilla-inbound/rev/b36f90673c60b9ca1844477714961ac14b45d388 https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=0df37c7600d1df881266a0c6269ae125cc677428 https://treeherder.mozilla.org/logviewer.html#?job_id=147156899&repo=mozilla-inbound
Comment 23•3 years ago
|
||
Henrik (or Alexis) please update the patch to correct the build bustage. Thanks! I'd do it but since this is a mentored bug you guys might as well get the full Gecko-hacking experience :)
Assignee | ||
Comment 24•3 years ago
|
||
I'll happily fix it if Henrik's fine with it (since they can't work on it for a week)
Comment 25•3 years ago
|
||
I'll have a hard time fixing it for same reason as i mentioned before so please do fix it Alexis
Comment 26•3 years ago
|
||
Deprioritized to P3 during triage - moving to Reserve Backlog.
Updated•3 years ago
|
Updated•3 years ago
|
Comment 27•3 years ago
|
||
We'll fallback so this issue isn't related to correctness.
Updated•3 years ago
|
Assignee | ||
Comment 28•3 years ago
|
||
try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=35fca1e74fb33563aaebab6bbd4efe6f8f2521b8
Assignee | ||
Comment 29•3 years ago
|
||
try2: https://treeherder.mozilla.org/#/jobs?repo=try&revision=5f1122325a341f0a99f09a04a53c2d7b237fd164 (clipout api changed a bit)
Assignee | ||
Comment 30•3 years ago
|
||
MozReview-Commit-ID: 1QqgRcSN1K3
Assignee | ||
Comment 31•3 years ago
|
||
note to sheriffs: there's multiple commits on phabricator but I only see the first in bugzilla?
Comment 32•3 years ago
|
||
Pushed by ebalazs@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/69faa23050d9 Implement non-empty legends for wr. r=jrmuizel
Comment 33•3 years ago
|
||
Comment on attachment 9003784 [details] Bug 1412179 - Implement non-empty legends for wr. r=jrmuizel Jeff Muizelaar [:jrmuizel] has approved the revision.
Comment 34•3 years ago
|
||
Backed out changeset 69faa23050d9 (Bug 1412179) for landing without first patch We landed just the 2nd patch: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=69faa23050d945c1e1a4f0e5ec0e822f2c3b7ae3&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=usercancel&filter-resultStatus=runnable
Comment 35•3 years ago
|
||
Backout by ebalazs@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/902644464343 Backed out changeset 69faa23050d9 for landing without first patch
https://phabricator.services.mozilla.com/p/Gankro/ mentions only one patch for this bug. Are the other patches on phabricator? Is https://phabricator.services.mozilla.com/D4010 the other patch? It changed bug numbers.
Comment 37•3 years ago
|
||
This should be ready to go, but I don't think we need to block the release on it.
Alexis, please upload the patch again with arc diff so proper author information (your name and email) are included.
Assignee | ||
Comment 39•3 years ago
|
||
Assignee | ||
Comment 40•3 years ago
|
||
Depends on D4963
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Comment 41•3 years ago
|
||
Comment on attachment 9006321 [details] Bug 1412179 - Implement non-empty legends for wr Jeff Muizelaar [:jrmuizel] has approved the revision.
Comment 42•3 years ago
|
||
Comment on attachment 9006322 [details] Bug 1412179 - defuzz tests that no longer fallback Jeff Muizelaar [:jrmuizel] has approved the revision.
Assignee | ||
Updated•3 years ago
|
Comment 43•3 years ago
|
||
Hi. I've tried to land this 2 times, lando returns: This diff does not have the proper author information uploaded to Phabricator. This can happen if the diff was created using the web UI, or a non standard client. The author should re-upload the diff to Phabricator using the "arc diff" command. Importing the patches returns this: https://irccloud.mozilla.com/file/2Kl01K6B/image.png Removing checkin-needed, please take a look at this.
Updated•3 years ago
|
Comment 45•3 years ago
|
||
Gankro: update phlay to the latest version and try repushing the patch. This is a bug with the old version.
Updated•3 years ago
|
Updated•3 years ago
|
Comment 47•3 years ago
|
||
Pushed by dluca@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/f22f3ce35811 Implement non-empty legends for wr r=jrmuizel
Comment 48•3 years ago
|
||
Pushed by archaeopteryx@coole-files.de: https://hg.mozilla.org/integration/autoland/rev/29b47a085757 defuzz tests that no longer fallback. r=jrmuizel CLOSED TREE
Comment 49•3 years ago
|
||
Backed out 2 changesets (bug 1412179) for breaking reftests on layout/reftests/box-shadow/fieldset.html Log: https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://queue.taskcluster.net/v1/task/JDh8fx7yR0-46akWGuvpSA/runs/0/artifacts/public/logs/live_backing.log&only_show_unexpected=1 https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://queue.taskcluster.net/v1/task/RtyH-jBjS_CEQSFGpmmb3g/runs/0/artifacts/public/logs/live_backing.log&only_show_unexpected=1 https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://queue.taskcluster.net/v1/task/LrU1vf7NSK-2ZZg_oE1kVg/runs/0/artifacts/public/logs/live_backing.log&only_show_unexpected=1 Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&revision=f22f3ce3581177d3d170bc3e7d20609057b26722 Backout: https://hg.mozilla.org/integration/autoland/rev/7102989560f2a6155025e4f083cc41427516c2b8
Assignee | ||
Comment 50•3 years ago
|
||
Wait I'm confused, you pushed only one patch, and then archaeopteryx pushed the expectation changes, but I got backed out for not having the expectation change?
After both patches landed, there was failure for layout/reftests/box-shadow/fieldset.html: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed,busted,exception&tochange=7102989560f2a6155025e4f083cc41427516c2b8&fromchange=56a508217ab7e7c28e1e5622f8dd31caa98a8706&searchStr=reftest&selectedJob=198931299 REFTEST TEST-UNEXPECTED-FAIL | file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/box-shadow/fieldset.html == file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/box-shadow/fieldset-ref.html | image comparison, max difference: 246, number of differing pixels: 42 Your patch in phabricator https://phabricator.services.mozilla.com/D4964 looks like the change which landed for that file: https://hg.mozilla.org/integration/autoland/rev/29b47a0857574c7164d03ec56c27d5c3e51f412a The expectation for the sticky-legend one had already been changed before to the new value: https://hg.mozilla.org/integration/autoland/rev/e4f3b85bc61b / bug 1488403 Part 1 has a merge conflict now, please update it. Set potential needinfos on me, my work interval is more frequent (but shorter) compared to the sheriffs. Let's get this landed.
Assignee | ||
Comment 52•2 years ago
|
||
Assignee | ||
Comment 53•2 years ago
|
||
try (need to farm fuzzy reductions): https://treeherder.mozilla.org/#/jobs?repo=try&revision=eb8d59e19d4c760159635ec7bc08c3c6a4812588
Updated•2 years ago
|
Assignee | ||
Updated•2 years ago
|
Comment 54•2 years ago
|
||
Pushed by ncsoregi@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/fd5cb917b6eb
implement fieldsets with nonempty legends. r=kats
Comment 55•2 years ago
|
||
Backed out changeset fd5cb917b6eb (bug 1412179) for Wr failures at /html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-vertical.html
Backout: https://hg.mozilla.org/integration/autoland/rev/bcf9b5a72198cb74f6fc063234652583201e4c3e
Failure push: https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedJob=240112129&revision=fd5cb917b6eb7623ee6de94d5105ac4e23c38371
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=240114849&repo=autoland&lineNumber=44081
task 2019-04-13T07:52:27.639Z] 07:52:27 INFO - TEST-START | /html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-vertical.html
[task 2019-04-13T07:52:27.646Z] 07:52:27 INFO - PID 17262 | 1555141947639 Marionette INFO Testing http://web-platform.test:8000/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-vertical.html == http://web-platform.test:8000/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-vertical-ref.html
[task 2019-04-13T07:52:27.662Z] 07:52:27 INFO - PID 17262 | JavaScript error: resource:///modules/sessionstore/SessionStore.jsm, line 2383: TypeError: tabbrowser.getTabForBrowser is not a function
[task 2019-04-13T07:52:27.662Z] 07:52:27 INFO - PID 17262 | ++DOMWINDOW == 49 (0x7f95d8af7400) [pid = 17403] [serial = 49] [outer = 0x7f95dbfcbd40]
[task 2019-04-13T07:52:28.032Z] 07:52:28 INFO - PID 17262 | JavaScript error: resource:///modules/sessionstore/SessionStore.jsm, line 2383: TypeError: tabbrowser.getTabForBrowser is not a function
[task 2019-04-13T07:52:28.039Z] 07:52:28 INFO - PID 17262 | ++DOMWINDOW == 50 (0x7f95d8af4000) [pid = 17403] [serial = 50] [outer = 0x7f95dbfcbd40]
[task 2019-04-13T07:52:28.282Z] 07:52:28 INFO - PID 17262 | 1555141948276 Marionette INFO No differences allowed
[task 2019-04-13T07:52:28.388Z] 07:52:28 INFO - TEST-UNEXPECTED-PASS | /html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-vertical.html | Testing http://web-platform.test:8000/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-vertical.html == http://web-platform.test:8000/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-vertical-ref.html
[task 2019-04-13T07:52:28.388Z] 07:52:28 INFO - REFTEST IMAGE 1 (TEST): data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAgAElEQVR4nO3dW3IbuZYFUA+wfu8oahIeU02Q/dFXXWyaZAJIPM4B1opglG1KMrYAZ2KTmapfDwAAgEl+rR4AAABwDgUEAACYRgEBAACmUUAAAIBpFBAAAGAaBQQAAJhGAQEAAKZRQAAAgGkUEAAAYBoFBAAAmEYBAQAAplFAAACAaRQQAABgGgUEAACYRgEBAACmUUAAAIBpFBAAAGCadAXk1690QwYAAP4r5G7+W8kYWUB+/fpV9PVLPw4AAPj/Qu6iV27uS/9uBQQAAOqF3EUrIAAAsKfLXfTP5UavG+6SP3+3SX/+83cf+/pn7567GufdjynxKXfp3wMAACcq2h2XbtY/FY53f/btc2vvAflWBmo+5urvLhlHyfcEAABO1a2A1JSGq015j69VejN5y+fd/VwAADhV8Y655B2F1s+9+vg7X6v271FAAABgnK4F5Nvj2+de/V014/j2eVfj+vT13328AgIAAPWqdszPN1l/eq7m67Q831JAai7T8g4IAACMM6WArL4HRAEBAIAYuhWQT3/eslGv/QlZLT/xatRPwQIAAD6r3jGXlIereyxK/h8Zn+67aP26756v+fo1Y1NEAADgPTtlAABgGgUEAACYRgEBAACmUUAAAIBpFBAAAGAaBQQAAJhGAQEAAKZRQAAAgGkUEAAAYBoFBAAAmEYBAQAAplFAAACAaRQQAABgGgUEAACYRgEBAACmUUAAAIBpFBAAAGAaBQQAAJhGAQEAAKZRQAAAgGkuC8hff/117OP379/LxyC//PLLL7/8K/IDjKKAfDn4/vPPP8vHIb/88ssvv/wr8gOMooB8OfieegKSX3755ZdffoBRFJAvB98TT0Dyyy+//PLLr4AAIykgXw6+p52A5Jdffvnll18BAUZTQL4cfE86Ackvv/zyyy+/AgLMoIB8OfiecgKSX3755ZdffgUEmOX4AvLt4HvCCUh++eWXX375FRBgptsF5NvBK/rj6uBbcgJanUF++eWXX375R+QHGOXYAvLzP5k69QQkv/zyyy+//N8eAKMcWUCe/w+3J56A5Jdffvnll//qYwFGOa6APB98TzwByS+//PLLL78CAqx0VAF5PfiedgKSX3755ZdffgUEWO2YAvLu4HvSCUh++eWXX375FRAg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
[task 2019-04-13T07:52:28.389Z] 07:52:28 INFO - REFTEST IMAGE 2 (REFERENCE): data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAgAElEQVR4nO3dW3IbuZYFUA+wfu8oahIeU02Q/dFXXWyaZAJIPM4B1opglG1KMrYAZ2KTmapfDwAAgEl+rR4AAABwDgUEAACYRgEBAACmUUAAAIBpFBAAAGAaBQQAAJhGAQEAAKZRQAAAgGkUEAAAYBoFBAAAmEYBAQAAplFAAACAaRQQAABgGgUEAACYRgEBAACmUUAAAIBpFBAAAGCadAXk1690QwYAAP4r5G7+W8kYWUB+/fpV9PVLPw4AAPj/Qu6iV27uS/9uBQQAAOqF3EUrIAAAsKfLXfTP5UavG+6SP3+3SX/+83cf+/pn7567GufdjynxKXfp3wMAACcq2h2XbtY/FY53f/btc2vvAflWBmo+5urvLhlHyfcEAABO1a2A1JSGq015j69VejN5y+fd/VwAADhV8Y655B2F1s+9+vg7X6v271FAAABgnK4F5Nvj2+de/V014/j2eVfj+vT13328AgIAAPWqdszPN1l/eq7m67Q831JAai7T8g4IAACMM6WArL4HRAEBAIAYuhWQT3/eslGv/QlZLT/xatRPwQIAAD6r3jGXlIereyxK/h8Zn+67aP26756v+fo1Y1NEAADgPTtlAABgGgUEAACYRgEBAACmUUAAAIBpFBAAAGAaBQQAAJhGAQEAAKZRQAAAgGkUEAAAYBoFBAAAmEYBAQAAplFAAACAaRQQAABgGgUEAACYRgEBAACmUUAAAIBpFBAAAGAaBQQAAJhGAQEAAKZRQAAAgGkuC8hff/117OP379/LxyC//PLLL7/8K/IDjKKAfDn4/vPPP8vHIb/88ssvv/wr8gOMooB8OfieegKSX3755ZdffoBRFJAvB98TT0Dyyy+//PLLr4AAIykgXw6+p52A5Jdffvnll18BAUZTQL4cfE86Ackvv/zyyy+/AgLMoIB8OfiecgKSX3755ZdffgUEmOX4AvLt4HvCCUh++eWXX375FRBgptsF5NvBK/rj6uBbcgJanUF++eWXX375R+QHGOXYAvLzP5k69QQkv/zyyy+//N8eAKMcWUCe/w+3J56A5Jdffvnll//qYwFGOa6APB98TzwByS+//PLLL78CAqx0VAF5PfiedgKSX3755ZdffgUEWO2YAvLu4HvSCUh++eWXX375FRAg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
[task 2019-04-13T07:52:28.392Z] 07:52:28 INFO - TEST-INFO expected FAIL | took 712ms
[task 2019-04-13T07:52:28.392Z] 07:52:28 INFO - PID 17262 | [Parent 17262, Compositor] WARNING: Possibly dropping task posted to updater thread: file /builds/worker/workspace/build/src/gfx/layers/apz/src/APZUpdater.cpp, line 424
[task 2019-04-13T07:52:28.711Z] 07:52:28 INFO - PID 17262 | 1555141948706 Marionette INFO Stopped listening on port 2828
[task 2019-04-13T07:52:29.097Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 49 (0x7f95dbfcbd40) [pid = 17403] [serial = 1] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-vertical.html]
[task 2019-04-13T07:52:29.099Z] 07:52:29 INFO - PID 17262 | --DOCSHELL 0x7f95daba6800 == 0 [pid = 17403] [id = {b37e6bd2-67e9-4ddf-9398-4248101da57b}] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-vertical.html]
[task 2019-04-13T07:52:29.175Z] 07:52:29 INFO - PID 17262 | [Parent 17262, Compositor] WARNING: Possibly dropping task posted to updater thread: file /builds/worker/workspace/build/src/gfx/layers/apz/src/APZUpdater.cpp, line 424
[task 2019-04-13T07:52:29.232Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 48 (0x7f95d8aef800) [pid = 17403] [serial = 29] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ul-type-unsupported-lower-alpha.html]
[task 2019-04-13T07:52:29.236Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 47 (0x7f95d8af1400) [pid = 17403] [serial = 30] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ul-type-unsupported-lower-roman.html]
[task 2019-04-13T07:52:29.237Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 46 (0x7f95d8c3c800) [pid = 17403] [serial = 20] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ol-type-unsupported-square.html]
[task 2019-04-13T07:52:29.237Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 45 (0x7f95dab2b800) [pid = 17403] [serial = 7] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/li-type-unsupported-upper-alpha.html]
[task 2019-04-13T07:52:29.246Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 44 (0x7f95d8af9c00) [pid = 17403] [serial = 35] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-border-gap-position-relative-ref.html]
[task 2019-04-13T07:52:29.246Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 43 (0x7f95d8afcc00) [pid = 17403] [serial = 37] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-containing-block-ref.html]
[task 2019-04-13T07:52:29.247Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 42 (0x7f95d8c3b000) [pid = 17403] [serial = 19] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ol-type-unsupported-round.html]
[task 2019-04-13T07:52:29.247Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 41 (0x7f95d8c38000) [pid = 17403] [serial = 17] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-roman.html]
[task 2019-04-13T07:52:29.247Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 40 (0x7f95dab33800) [pid = 17403] [serial = 10] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ol-type-supported-xhtml.xhtml]
[task 2019-04-13T07:52:29.248Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 39 (0x7f95dab33400) [pid = 17403] [serial = 9] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ol-type-supported-ref.html]
[task 2019-04-13T07:52:29.248Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 38 (0x7f95d8c43c00) [pid = 17403] [serial = 26] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ul-type-unsupported-ref.html]
[task 2019-04-13T07:52:29.249Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 37 (0x7f95d8c36800) [pid = 17403] [serial = 16] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-alpha.html]
[task 2019-04-13T07:52:29.249Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 36 (0x7f95d8c44c00) [pid = 17403] [serial = 27] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ul-type-unsupported-decimal.html]
[task 2019-04-13T07:52:29.249Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 35 (0x7f95dad92c00) [pid = 17403] [serial = 13] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ol-type-unsupported-circle.html]
[task 2019-04-13T07:52:29.249Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 34 (0x7f95d8c42400) [pid = 17403] [serial = 25] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ul-type-supported.html]
[task 2019-04-13T07:52:29.250Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 33 (0x7f95dab34800) [pid = 17403] [serial = 28] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ul-type-unsupported-invalid.html]
[task 2019-04-13T07:52:29.253Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 32 (0x7f95d8af2c00) [pid = 17403] [serial = 31] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ul-type-unsupported-upper-alpha.html]
[task 2019-04-13T07:52:29.253Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 31 (0x7f95d8af6000) [pid = 17403] [serial = 33] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/no-red-ref.html]
[task 2019-04-13T07:52:29.253Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 30 (0x7f95dab2d000) [pid = 17403] [serial = 8] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/li-type-unsupported-upper-roman.html]
[task 2019-04-13T07:52:29.254Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 29 (0x7f95dab36400) [pid = 17403] [serial = 11] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/lists/ol-type-supported.html]
[task 2019-04-13T07:52:29.254Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 28 (0x7f95d8afb400) [pid = 17403] [serial = 36] [outer = (nil)] [url = http://web-platform.test:8000/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-border-gap-position-relative.html]
[task 2019-04-13T07:52:29.255Z] 07:52:29 INFO - PID 17262 | --DOMWINDOW == 27 (0x7f95da784000) [pid = 17403] [serial = 3] [outer = (nil)] [url = about:blank]
Assignee | ||
Comment 56•2 years ago
|
||
one unexpected pass, and one fuzzy-if(webrender, 8, 9), which seems totally fine to land. Nice!
Assignee | ||
Updated•2 years ago
|
Comment 57•2 years ago
|
||
Pushed by ccoroiu@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/693535165c9f
implement fieldsets with nonempty legends. r=kats
Comment 58•2 years ago
|
||
bugherder |
Description
•