Closed
Bug 942690
Opened 11 years ago
Closed 11 years ago
Loading whatwg.org HTML Living Standard logs many nsTextFrame NS_ASSERTION failures
Categories
(Core :: Layout: Text and Fonts, defect, P4)
Tracking
()
RESOLVED
FIXED
mozilla29
People
(Reporter: cpeterson, Assigned: smontagu)
References
()
Details
(Keywords: assertion, regression)
Attachments
(2 files)
(deleted),
text/html
|
Details | |
(deleted),
patch
|
roc
:
feedback+
|
Details | Diff | Splinter Review |
Loading the HTML Living Standard page in a debug build of Firefox, logs many nsTextFrame assertion failures:
http://www.whatwg.org/specs/web-apps/current-work/
[40533] ###!!! ASSERTION: negative length: 'GetContentEnd() - mContentOffset >= 0', file mozilla/central/layout/generic/nsTextFrame.h, line 437
[40533] ###!!! ASSERTION: negative length: 'GetContentEnd() - mContentOffset >= 0', file mozilla/central/layout/generic/nsTextFrame.h, line 437
[40533] ###!!! ASSERTION: negative length: 'GetContentEnd() - mContentOffset >= 0', file mozilla/central/layout/generic/nsTextFrame.h, line 437
[40533] ###!!! ASSERTION: negative length: 'GetContentEnd() - mContentOffset >= 0', file mozilla/central/layout/generic/nsTextFrame.h, line 437
[40533] ###!!! ASSERTION: integer overflow: 'mMaxTextLength < UINT32_MAX - aFrame->GetContentLength()', file mozilla/central/layout/generic/nsTextFrame.cpp, line 1550
[40533] ###!!! ASSERTION: Should have been cleared: 'mBreakSinks.IsEmpty()', file mozilla/central/layout/generic/nsTextFrame.cpp, line 903
[40533] ###!!! ASSERTION: Should have been cleared: 'mMappedFlows.IsEmpty()', file mozilla/central/layout/generic/nsTextFrame.cpp, line 906
[40533] ###!!! ASSERTION: Should have Reset() before destruction!: 'mCurrentWord.Length() == 0', file mozilla/central/content/base/src/nsLineBreaker.cpp, line 25
Reporter | ||
Comment 2•11 years ago
|
||
I believe this is a regression because I can reproduce these assertions in a Nightly 28 debug build (2013-11-25-mozilla-central-debug), but NOT a Aurora 27 debug build (2013-11-24-mozilla-aurora-debug).
Keywords: regression,
regressionwindow-wanted
Reporter | ||
Comment 3•11 years ago
|
||
I bisected Nightly 28 debug builds and the regression build is 2013-11-19. Here is the pushlog from 11-18 to 11-19:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=d58ab6f6ca0a&tochange=ba9ecdea3a90
Could these nsTextFrame assertion failures be a regression from layering bug 919144?
Keywords: regressionwindow-wanted
Comment 4•11 years ago
|
||
I'd be more inclined to suspect one of these bidi-related patches:
bdf16bdfce5a Simon Montagu — Optimize bidi resolution on blocks without mixed-direction text. Bug 646359, r=roc
ec7b5c159c31 Simon Montagu — Bug 936935: Mark lines dirty more accurately in Bidi resolution, r=roc
(though even if the culprit is one of these, it's entirely possible it's just exposing a pre-existing bug.)
Any chance you could bisect inbound builds, to narrow things down further?
Reporter | ||
Comment 5•11 years ago
|
||
I bisected inbound builds to this regression range, which includes smontagu's bidi patches:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=6f5bbe846139&tochange=bdf16bdfce5a
Assignee | ||
Comment 6•11 years ago
|
||
Assignee: nobody → smontagu
Assignee | ||
Comment 7•11 years ago
|
||
This rolls back the change that caused the assertions in the first place, but it's possible that we want to fix it differently. The semantics of NS_FRAME_IS_BIDI are a bit vague: in theory it's supposed to mean "this frame has a bidi continuation or is a bidi continuation, but nsTextFrame::GetInFlowContentLength uses it to mean "this frame might have a bidi continuation somewhere in its continuation chain". It might improve performance to have another flag that really means that, and set it more precisely
Attachment #8338524 -
Flags: feedback?(roc)
Attachment #8338524 -
Flags: feedback?(roc) → feedback+
Assignee | ||
Comment 9•11 years ago
|
||
Sorry to be annoying, but I was hesitating between two or three different options and I'm not sure what you mean by "feedback+".
Do you think we should just check in attachment 8338524 [details] [diff] [review] and move on, or might it be worth having a better way for nsTextFrame::GetInFlowContentLength to know whether to check bidi continuations than what we currently do (or did before bug 646359), i.e. set NS_FRAME_IS_BIDI on every frame that goes through bidi resolution?
The former.
Assignee | ||
Comment 11•11 years ago
|
||
Flags: in-testsuite+
Comment 12•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla29
Updated•9 years ago
|
Keywords: testcase-wanted
You need to log in
before you can comment on or make changes to this bug.
Description
•