Closed Bug 472909 Opened 11 years ago Closed 11 years ago

small-caps is busted (assertions fail, text doesn't appear)

Categories

(Core :: Layout: Text and Fonts, defect, P3, major)

defect

Tracking

()

VERIFIED FIXED
mozilla1.9.2a1

People

(Reporter: jruderman, Assigned: roc)

References

(Blocks 1 open bug, )

Details

(4 keywords)

Attachments

(3 files)

Attached file testcase
This testcase appears blank (it should show a small-caps 'A') and triggers assertion failures:

###!!! ASSERTION: invalid array index: 'i < Length()', file ../../../dist/include/xpcom/nsTArray.h, line 317

###!!! ASSERTION: Hmm, something went wrong, aOffset should have been found: 'mGlyphRuns[start].mCharacterOffset <= aOffset', file /Users/jruderman/central/gfx/thebes/src/gfxFont.cpp, line 2174

I think this is a regression on mozilla-central from the last day or so.
I can confirm that, but on linux x86_64.

My last homemade working version was based on changeset : http://hg.mozilla.org/mozilla-central/rev/222b23e8e64b ; Wed Jan 07 23:48:28 2009 -0500 (at Wed Jan 07 23:48:28 2009 -0500)

I made another homemade build some 28 hours later, and small caps display was busted.

 http://hg.mozilla.org/mozilla-central/rev/4fc89aa2ffec ; Fri Jan 09 10:19:48 2009 -0800 (at Fri Jan 09 10:19:48 2009 -0800)

I will try to look at tinderbox builds from late wednesday to see which change is guilty.
Bug is present in the first friday build.

I got it with a build based on changeset 8ce077e0d2db.

Bug was introduced here :

diff
browse	8ce077e0d2db
2009-01-09 10:32 +0200	Simon Montagu - Update the GEOSTD8 to Unicode decoder. Bug 472746, r=Masatoshi Kimura <VYV03354@nifty.ne.jp>
diff
browse	6128896b6f98
2009-01-08 23:42 -0800	Robert Strong - Bug 324758 - Updater should use brand name string and not hardcode Firefox. r=ted.mielczarek
diff
browse	177e11abd9d9
2009-01-08 22:25 -0800	Robert Strong - Bug 399153 - Software update should support unicode strings for the UI. r=bsmedberg, r=ehsan
diff
browse	1a4e256b6894
2009-01-08 16:52 -0800	Jeff Walden - Bug 469509 - runtests.py.in : don't print leak lines for classes that aren't leaked. r=ted
diff
browse	599fc0933fd8
2009-01-09 13:33 +1300	Taras Glek - Bug 471479. Cache webNavigation and contentWindow in the browser widget. r=gavin
diff
browse	5300ca58f128
2009-01-09 13:30 +1300	Michael Ventnor - Bug 472488. Need to pass correct directory as part of filename in gtk_file_chooser_set_filename. r+sr=roc
diff
browse	320763cc1e6a
2009-01-09 13:29 +1300	Michael Ventnor - Bug 472410. Don't adjust selection colors if the background is a -moz-appearance that we can't know anything about. r+sr=roc
diff
browse	17b08b9bae0c
2009-01-09 13:28 +1300	Zack Weinberg - Bug 456219. Fix clipping to padding-rect with rounded corners. r+sr=roc
diff
browse	6b858b6ab162
2009-01-09 13:26 +1300	Jeff Schiller - Bug 435209. Fix logic errors in nsSVGPathSegList::ReplaceItem. r=longsonr,sr=roc
diff
browse	b6a4a9673190
2009-01-09 13:23 +1300	Robert O'Callahan - Bug 430332. Defer nsTransformingTextRun::RebuildTextRun until the linebreaker has completely set up the break and capitalization data on the transformed text run. r=smontagu
diff
browse	ef3871089bd7
2009-01-09 13:13 +1300	Robert O'Callahan - Bug 440149. Don't break after empty text at the start of the line, even if we're past the available width. r=smontagu
diff
browse	a9f6f29f6fe5
2009-01-09 13:12 +1300	Robert O'Callahan - Bug 462593. Add nsPtrHashKey<T> to XPCOM. r=bsmedberg
diff
browse	1da6da73561c
2009-01-09 13:11 +1300	Robert O'Callahan - Bug 467481. Don't reorder the children of listboxbody frames using their ordinals. r+sr=bzbarsky
diff
browse	e62d412d6251
2008-12-19 17:38 -0800	Blake Kaplan - Add a crashtest for bug 460706. r=sicking
diff
browse	89847884d010
2009-01-08 13:50 -0800	L. David Baron - Make reftest test for assertions on individual tests. (Temporarily disabled until tinderboxes set up and manifests annotated.) (Bug 472557) r=Waldo
diff
browse	3317170b582b
2009-01-08 13:50 -0800	L. David Baron - Expose the number of assertions since process start from XPCOM. (Bug 472557) r=bsmedberg
diff
browse	ecb728cdc141
2009-01-08 23:36 +0200	Olli Pettay - Bug 472312, change NS_ERROR to NS_WARNING for now
diff
browse	bb88ba74fb0c
2009-01-08 22:17 +0100	Mats Palmgren - DEBUG: Make nsBlockFrame::List really print the overflow lines. b=472193 r+sr=roc
diff
browse	bfb2d513344d
2009-01-08 22:17 +0100	Uri Bernstein - Set mMaintainRange to null when there is no selection. b=470212 r=mats sr=roc
diff
browse	cab8b946ee86
2009-01-08 15:17 -0500	Shawn Wilsher - Bug 429827 - Download manager does not warn when its download location does not exist or is write protected
diff
browse	324aa9789a12
2009-01-08 22:16 +0200	Olli Pettay - Bug 472312, r+sr=bz
diff
browse	c934f4c5af22
2009-01-08 14:58 -0500	Boris Zbarsky - Backout merge
diff
browse	d77eef73aeb6
2009-01-08 14:58 -0500	Boris Zbarsky - Backed out changeset b73e063a3f99 (bug 464838)
diff
browse	2e8178964532
2009-01-08 13:52 -0500	Ted Mielczarek - bug 467271 - JS not being PGOed on win32. r=bsmedberg
diff
browse	3da64152f578
2009-01-08 13:51 -0500	Ted Mielczarek - bug 471188 - stop calling 'make install' for spidermonkey. r=bsmedberg,jimb
diff
browse	b73e063a3f99
2009-01-08 13:08 -0500	Patrick McManus - Bug 464838. Try to resolve performance issues in DNS prefetch by putting elements, not URIS, in the queue, and deferring URI creation to pageload complete (or a timer, if we're not in pageload). r+sr=bzbarsky
diff
browse	4de172f0d8b8
2009-01-08 11:51 -0500	Shawn Wilsher - Bug 471685 - Upgrade to SQLite 3.6.7
diff
browse	c569a8f91c0e
2009-01-08 11:51 -0500	Shawn Wilsher - Bug 471685 - Upgrade to SQLite 3.6.7
diff
browse	54b5c634212e
2008-11-26 14:39 -0500	Benjamin Smedberg - Bug 463289 - nsNativeModuleLoader doesn't protect its internal data structures, and is accessed on multiple threads (symptom is RECURSION_LEVEL assertions in pldhash.c). This patch is the simple-but-slow path: proxy all non-main-thread requests to the main thread. This is probably sufficient because asking for modules is a relatively rare activity: the component manager caches the factory objects after a lookup, r=brendan
diff
browse	c227e9c0e264
2009-01-08 10:44 -0500	Benjamin Smedberg - Bug 472461 part 2 - jsgc crashes with !JS_TRACER, r=jorendorff for immediate bustage fix, and I'll get ex-post-facto review from Igor
diff
browse	7a3b82cd9ee6
2009-01-08 10:43 -0500	Benjamin Smedberg - Bug 472461 part 1 - jsgc.cpp fails to compile with !JS_TRACER, initial patch by Igor, r=jorendorff with nits fixed by bsmedberg
diff
browse	5b6ee66cccc0
2009-01-08 23:19 +1300	Robert O'Callahan - Backout bug 456219 ... Mac tests still fail
diff
browse	582c495906ec
2009-01-08 23:19 +1300	Robert O'Callahan - Backed out changeset 5041ce453104
diff
browse	28488df9e75e
2009-01-08 21:44 +1300	Matthew Gregan - Bug 471590. Update wave-decoder Pause to handle possible asynchyronous loading. r=doublec,sr=roc
diff
browse	9dc0f31ca488
2009-01-08 21:43 +1300	Taras Glek - Bug 471087. Kill nsIDKey. r=bsmedberg
diff
browse	fc85349c89b4
2009-01-08 21:41 +1300	Sergey Yanovich - Bug 462497. Don't reacquire a monitor in nsComponentManagerImpl::HashContractID that we already hold. r=bsmedberg
diff
browse	48e090c98118
2009-01-08 21:16 +1300	Michael Ventnor - Bug 427488. Enable use of provided default filename for file open dialogs in GTK. r+sr=roc
diff
browse	9891b174d871
2009-01-08 21:12 +1300	Michael Ventnor - Bug 469880. Support a libnotify-based implementation of nsIAlertsService for GTK. r+sr=roc,r=ted
diff
browse	5041ce453104
2009-01-08 21:10 +1300	Zack Weinberg - Bug 456219. Fix clipping to padding-rect with rounded corners. r+sr=roc
diff
browse	b4d826e10c0c
2009-01-08 21:07 +1300	Robert O'Callahan - Bug 425981. Make first-letter frame wrapping build its own frame constructor state to ensure it's for the correct place in the frame tree. r+sr=bzbarsky
diff
browse	be51e923473c
2009-01-08 17:36 +0900	John Daggett - change crashtest for 472237 to use local font

Sorry the "bad" copy/paste, but it could help.

At least, it give a list ;)
Here is  what I get on OS X (more or less the same as the above):
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=28488df9e75e&tochange=1c4fdd5a9b17

I suspect this one:
b6a4a9673190	Robert O'Callahan — Bug 430332. Defer nsTransformingTextRun::RebuildTextRun until the linebreaker has completely set up the break and capitalization data on the transformed text run. r=smontagu
Blocks: 430332
Flags: blocking1.9.1?
OS: Mac OS X → All
Hardware: x86 → All
KCD makes extensive use of small caps and is busted by this bug; screenshot attached.

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090112 Minefield/3.2a1pre ID:20090112031615
Blocks: 473172
Duplicate of this bug: 473276
Assignee: nobody → jdaggett
Status: NEW → ASSIGNED
Priority: -- → P3
Assignee: jdaggett → nobody
Component: Layout: Text → GFX: Thebes
QA Contact: layout.fonts-and-text → thebes
Attached patch fixSplinter Review
We now need to call FinishSettingProperties on the temporary transformed textruns we create.

The reftest isn't great --- in the future we'll probably want to change our small-caps implementation to use Opentype small-caps features, which could break this test --- but we should probably do this for now to make sure what we have doesn't break.
Assignee: nobody → roc
Attachment #356865 - Flags: review?(smontagu)
Whiteboard: [needs review]
Attachment #356865 - Flags: review?(smontagu) → review+
Whiteboard: [needs review] → [needs landing]
Flags: in-testsuite?
Component: GFX: Thebes → Layout: Text
Flags: blocking1.9.2?
Flags: blocking1.9.1?
Flags: blocking1.9.1+
QA Contact: thebes → layout.fonts-and-text
Duplicate of this bug: 473690
Pushed http://hg.mozilla.org/mozilla-central/rev/55e7016fb7b2
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Flags: in-testsuite? → in-testsuite+
Resolution: --- → FIXED
Whiteboard: [needs landing] → [needs 191 landing]
Duplicate of this bug: 474098
Verified with:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090117 Minefield/3.2a1pre Ubiquity/0.1.5 ID:20090117033728

Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090118 Minefield/3.2a1pre ID:20090118020617

Roc, was any other patch checked into 1.9.1? I'm wondering because this bug cannot be seen on 1.9.1 with builds on Windows and OS X.
Status: RESOLVED → VERIFIED
Target Milestone: --- → mozilla1.9.2a1
(In reply to comment #10)
> Roc, was any other patch checked into 1.9.1? I'm wondering because this bug
> cannot be seen on 1.9.1 with builds on Windows and OS X.

The patch that caused the regression has not been checked in to 1.9.1 yet, but it needs to be.
FWIW: This patch can't land on 1.9.1 until bug 430332 (the regression source) lands, and *that* bug can't land on 1.9.1 until bug 470272 is fixed, per reasoning in bug 430332 comment 56.
(In reply to comment #12)
> and *that* bug can't land on 1.9.1 until bug 470272 is fixed

Just kidding -- that's no longer true, per bug 430332 comment 58.  I'll push fixes for both bug 430332 and this bug in a minute.
Pushed to 1.9.1 branch on roc's behalf:
http://hg.mozilla.org/releases/mozilla-1.9.1/rev/caa730fd7f6e
Keywords: fixed1.9.1
Whiteboard: [needs 191 landing]
Verified on 1.9.1 with:

Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1b3pre) Gecko/20090201 Shiretoko/3.1b3pre ID:20090201033606

Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20090201 Shiretoko/3.1b3pre Ubiquity/0.1.5 ID:20090201020520
You need to log in before you can comment on or make changes to this bug.