"Assertion failure: !StyleText()->HasTextEmphasis()" when simultaneously changing zoom and calling canvas.drawWindow(DRAWWINDOW_DO_NOT_FLUSH)

RESOLVED FIXED in Firefox 46

Status

()

Core
Layout
--
critical
RESOLVED FIXED
2 years ago
2 years ago

People

(Reporter: Jesse Ruderman, Assigned: xidorn)

Tracking

(Blocks: 1 bug, {assertion, testcase})

Trunk
mozilla46
assertion, testcase
Points:
---

Firefox Tracking Flags

(firefox46 fixed)

Details

MozReview Requests

()

Submitter Diff Changes Open Issues Last Updated
Loading...
Error loading review requests:

Attachments

(3 attachments)

(Reporter)

Description

2 years ago
Created attachment 8702450 [details]
testcase (requires pref & extension)

Assertion failure: !StyleText()->HasTextEmphasis(), at layout/generic/nsTextFrame.cpp:6207
(Reporter)

Comment 1

2 years ago
Created attachment 8702451 [details]
stack
(Reporter)

Comment 2

2 years ago
To reproduce you'll need a Firefox profile with the pref:
    user_pref("layout.css.text-emphasis.enabled", true);
And the extension:
    https://github.com/MozillaSecurity/funfuzz/tree/master/dom/extension

Running `funfuzz/dom/automation/domInteresting.py <firefox-build> w.html` is the simplest way to get both.
(Assignee)

Comment 3

2 years ago
I don't understand this issue. Changing text-emphasis-style should triggers a reflow, which will update EmphasisMarkInfo properly and thus this assertion wouldn't be broken.

This issue means, it is valid to force a repaint without a reflow even if the style change requires? That sounds pretty dangerous in general.
Reflow is interruptible, so in the case of a long running reflow that we interrupt, you certainly can't assume that we will reflow between a style change and a paint.
(Assignee)

Comment 5

2 years ago
Oh, okay. If that's the case, I think we can just remove that assertion.
(Assignee)

Comment 6

2 years ago
I thought interruptible reflow is only for script execution. Painting with a half-reflowed frame tree still sounds crazy... Hopefully frame reconstruction and the following first reflow wouldn't be interruptible...
(Assignee)

Comment 7

2 years ago
Created attachment 8702534 [details]
MozReview Request: Bug 1235489 - Remove assertion which is breakable when reflow is interrupted.

Review commit: https://reviewboard.mozilla.org/r/29127/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/29127/
Attachment #8702534 - Flags: review?(jfkthame)
Comment on attachment 8702534 [details]
MozReview Request: Bug 1235489 - Remove assertion which is breakable when reflow is interrupted.

https://reviewboard.mozilla.org/r/29127/#review26003
Attachment #8702534 - Flags: review?(jfkthame) → review+
(Assignee)

Comment 9

2 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/e779e01003e891cbbd6919aae279359120374efd
Bug 1235489 - Remove assertion which is breakable when reflow is interrupted. r=jfkthame
(Assignee)

Updated

2 years ago
Assignee: nobody → quanxunzhen

Comment 10

2 years ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/e779e01003e8
Status: NEW → RESOLVED
Last Resolved: 2 years ago
status-firefox46: affected → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla46
You need to log in before you can comment on or make changes to this bug.