Closed Bug 1684050 Opened 3 years ago Closed 3 years ago

Intermittent build dependent TEST-UNEXPECTED-PASS | /html/canvas/element/path-objects/2d.path.isPointInStroke.scaleddashes.html | isPointInStroke() should return correct results on dashed paths at high scale factors

Categories

(Core :: Graphics: Canvas2D, defect, P2)

defect

Tracking

()

VERIFIED FIXED
86 Branch
Tracking Status
thunderbird_esr78 --- unaffected
firefox-esr78 --- unaffected
firefox84 --- unaffected
firefox85 --- wontfix
firefox86 + verified

People

(Reporter: ccoroiu, Assigned: bobowen)

References

(Regression)

Details

(Keywords: intermittent-failure, regression, Whiteboard: [stockwell unknown])

Attachments

(1 file, 1 obsolete file)

Assignee: nobody → csabou
Status: NEW → ASSIGNED

Similar to bug 1663703. Lee, please take a look in the new year.

Status: ASSIGNED → NEW
Component: DOM: Core & HTML → Canvas: 2D
Flags: needinfo?(james) → needinfo?(lsalzman)
See Also: → 1663703
Summary: Perma TEST-UNEXPECTED-PASS | /html/canvas/element/path-objects/2d.path.isPointInStroke.scaleddashes.html | isPointInStroke() should return correct results on dashed paths at high scale factors - expected FAIL when Gecko 86 merges to Beta on 2021-01-25 → Perma build dependent TEST-UNEXPECTED-PASS | /html/canvas/element/path-objects/2d.path.isPointInStroke.scaleddashes.html | isPointInStroke() should return correct results on dashed paths at high scale factors - when Gecko 86 merges to Beta on 2021-01-25
Attachment #9194707 - Attachment is obsolete: true
Assignee: csabou → nobody
Severity: -- → S3
Flags: needinfo?(bobowencode)
Priority: -- → P3

Changing the priority to p2 as the bug is tracked by a release manager for the current nightly.
See What Do You Triage for more information

Priority: P3 → P2

This already fails for 85 late betas (8/8 on Windows 10 x64 Shippable).

Summary: Perma build dependent TEST-UNEXPECTED-PASS | /html/canvas/element/path-objects/2d.path.isPointInStroke.scaleddashes.html | isPointInStroke() should return correct results on dashed paths at high scale factors - when Gecko 86 merges to Beta on 2021-01-25 → Intermittent build dependent TEST-UNEXPECTED-PASS | /html/canvas/element/path-objects/2d.path.isPointInStroke.scaleddashes.html | isPointInStroke() should return correct results on dashed paths at high scale factors

Bob, does this look like something that was essentially fixed by bug 1663703, and for which we should just remove the meta file?

Flags: needinfo?(lsalzman)

(In reply to Lee Salzman [:lsalzman] from comment #7)

Bob, does this look like something that was essentially fixed by bug 1663703, and for which we should just remove the meta file?

I thought so, which is why it fell off my radar before Christmas, but actually, this seems to be broken with remote canvas enabled and working with it disabled.
The patch from bug 1663703, doesn't affect it, so I think this requires a bit more investigation.

Assignee: nobody → bobowencode
Status: NEW → ASSIGNED
Flags: needinfo?(bobowencode)

Looks like this might have been fixed on chromium by (where the test was added):
https://chromium-review.googlesource.com/c/chromium/src/+/2112955

I think that this is the important bit for us [1].

Certainly if I change [2] to the following it seems to fix it:

  float strokePrecision = sqrtf(std::max(
      (aTransform._11 * aTransform._11) + (aTransform._12 * aTransform._12),
      (aTransform._21 * aTransform._21) + (aTransform._22 * aTransform._22)));

  SkPath strokePath;
  paint.getFillPath(mPath, &strokePath, nullptr, strokePrecision);

lsalzman - what do you think?

[1] https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/platform/graphics/path.cc;l=87-98;drc=7ccffaf0933ccc647c744bf66971bcf5f33a676a
[2] https://searchfox.org/mozilla-central/rev/07342ce09126c513540c1c343476e026cfa907bf/gfx/2d/PathSkia.cpp#141-142

Flags: needinfo?(lsalzman)

This uses SkDraw::ComputeResScaleForStroking to ensure we exactly match the resolution scale
that is chosen for drawing the stroked path inside the guts of Skia. This should ensure these
two don't get out of sync.

Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5d7c420165e9
choose appropriate stroke res scale for PathSkia::StrokeContainsPoint. r=bobowen
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 86 Branch
Flags: needinfo?(lsalzman)
Has Regression Range: --- → yes
Keywords: regression
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: