Closed Bug 595215 Opened 11 years ago Closed 11 years ago

Crash loading oprah.com on android [ @FontEntry::CreateFontEntry]

Categories

(Core :: Graphics, defect)

ARM
Android
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
fennec 2.0b1+ ---

People

(Reporter: aakashd, Assigned: cjones)

References

()

Details

(Whiteboard: [Fennec2.0bTestday])

Attachments

(2 files)

Build Id:
Mozilla/5.0 (X11; U; Linux armv71; Nokia N900; en-US; rv:2.0b6pre) Gecko/20100910 Namoroka/4.0b6pre Fennec/2.0b1pre

and

Mozilla/5.0 (Android; Linux armv71; Nokia N900; en-US; rv:2.0b6pre) Gecko/20100910 Namoroka/4.0b6pre Fennec/2.0b1pre

and

Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:2.0b6pre) Gecko/20100910 Namoroka/4.0b6pre Fennec/2.0b1pre

Steps to Reproduce:
1. Go to www.oprah.com and wait for the page to load
2. Try a fast vertical pan 

Actual Results:
The pan will slow down and stop abruptly once the pan gets to the end of the tile

Expected Results:
I should be able to pan normally through the page.
Whiteboard: [Fennec2.0bTestday]
I get a crash in the content process when loading http://ophrah.com in today's Android nightly.  I could not reproduce the crash in my desktop build.
I can easily repro a crash on this page on a galaxy s, sometimes before any content is painted.  My kingdom for a backtrace!
Attached file Backtrace
Great success!

I'm going to morph this bug into "crashing on oprah".
Component: Panning/Zooming → Graphics
OS: All → Android
Product: Fennec → Core
QA Contact: pan-zoom → thebes
Hardware: All → ARM
Summary: Panning on oprah.com slows down when going from tile to tile → Crash loading oprah.com on android [ @FontEntry::CreateFontEntry]
We're getting calling into here

/* static */ FontEntry*
FontEntry::CreateFontEntryFromFace(FT_Face aFace, const PRUint8 *aFontData) {
    static cairo_user_data_key_t key;

    if (!aFace->family_name) {
        FT_Done_Face(aFace);
        return nsnull;
    }

with a |face|

(gdb) p face
$2 = (FT_FaceRec_ *) 0x410a4c00
(gdb) p *face
$3 = {
  num_faces = 1, 
  face_index = 0, 
  face_flags = 2137, 
  style_flags = 1, 
  num_glyphs = 252, 
  family_name = 0x0,

and getting back nsnull.  I'm not sure whose fault this is.
Also relevant

(gdb) p/c aProxyEntry.mFamily
$15 = 32 ' '

I'm just going to cook up a head-in-the-sand null-check patch, which we'll want anyway.  Dunno if there's another bug being exposed here.
I feel a little guilty writing a patch like this without knowing if there's a deeper problem.  Please advise.  (r? --> karlt on vlad's advice.)
Assignee: nobody → jones.chris.g
Attachment #477808 - Flags: review?(karlt)
Comment on attachment 477808 [details] [diff] [review]
Check for a null FontEntry here

This looks fine to patch up the current design.

The real problem is in the design, as the family name and other attributes should come from aProxyEntry.  Probably, the FT_Face and the cairo font face are the only members of the FontEntry that should come from the face.
Attachment #477808 - Flags: review?(karlt) → review+
Filed bug 598846 for the design change.
tracking-fennec: --- → ?
tracking-fennec: ? → 2.0b1+
http://hg.mozilla.org/mozilla-central/rev/e52f5e198ddc
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.