On Jun 19, 10:47 am, Boris Zbarsky <[EMAIL PROTECTED]> wrote:
> Jonathan wrote:
> > I am looking at Gecko 1.8. And in the file nsFrameFrame.cpp, I don't
> > see any nsSubDocumentFrame::BuildDisplayList.
>
> Right.  Frame display lists are a 1.9-era change.
>
> In 1.8, as I recall, the equivalent of the display list is done on the view
> tree, and the view tree is linked through the iframe (so the root view of the
> contained document is a child of the iframe's view).
>
> -Boris

Thank you.

I setup a test page with a simple iframe with text 'inner frame text'.
And then I run in a debugger and set up a break point  in
'DrawString'.

My question is from the stack track, I don't see nsSubDocumentFrame's
Paint() being called.  And can you please tell me how does Gecko paint
the iframe?

Thank you.

Breakpoint 2, nsFontMetricsPango::DrawString (this=0x8490b20,
    aString=0xbf812794 "inner frame text\017", aLength=16, aX=0,
aY=195,
    aSpacing=0x0, aContext=0x84b8b48, aSurface=0x84bf7b8)
    at /home/crane/firefox2.0.0.11/mozilla/gfx/src/gtk/
nsFontMetricsPango.cpp:1003
1003                        fprintf (fd, "draw_text %d, %d, %d, %d, %d
[%s]\n", x, y, w, h, d, text);
(gdb) bt
#0  nsFontMetricsPango::DrawString (this=0x8490b20,
    aString=0xbf812794 "inner frame text\017", aLength=16, aX=0,
aY=195,
    aSpacing=0x0, aContext=0x84b8b48, aSurface=0x84bf7b8)
    at /home/crane/firefox2.0.0.11/mozilla/gfx/src/gtk/
nsFontMetricsPango.cpp:1003
#1  0xb597e91d in nsRenderingContextGTK::DrawStringInternal
(this=0x84b8b48,
    aString=0xbf812794 "inner frame text\017", aLength=16, aX=0,
aY=195,
    aSpacing=0x0)
    at /home/crane/firefox2.0.0.11/mozilla/gfx/src/gtk/
nsRenderingContextGTK.cpp:1387
#2  0xb5995567 in nsRenderingContextImpl::DrawString (this=0x84b8b48,
    aString=0xbf812794 "inner frame text\017", aLength=16, aX=0,
aY=195,
    aSpacing=0x0)
    at /home/crane/firefox2.0.0.11/mozilla/gfx/src/shared/
nsRenderingContextImpl.cpp:899
#3  0xb5ed9ce6 in nsTextFrame::PaintAsciiText (this=0x84d9c80,
    aPresContext=0x8467f68, [EMAIL PROTECTED],
    aStyleContext=0x84d9634, [EMAIL PROTECTED], dx=0, dy=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsTextFrame.cpp:3689
#4  0xb5edbfe3 in nsTextFrame::Paint (this=0x84d9c80,
aPresContext=0x8467f68,
    [EMAIL PROTECTED], [EMAIL PROTECTED],
    aWhichLayer=eFramePaintLayer_Overlay, aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsTextFrame.cpp:1656
#5  0xb5e69e7c in nsContainerFrame::PaintChild (this=0x84d96cc,
    aPresContext=0x8467f68, [EMAIL PROTECTED],
    [EMAIL PROTECTED], aFrame=0x84d9c80,
    aWhichLayer=eFramePaintLayer_Overlay, aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsContainerFrame.cpp:286
#6  0xb5e4cdcd in nsBlockFrame::PaintChild (this=0x84d96cc,
    aPresContext=0x8467f68, [EMAIL PROTECTED],
    [EMAIL PROTECTED], aFrame=0x84d9c80,
    aWhichLayer=eFramePaintLayer_Overlay, aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/xtf/src/../../
generic/nsBlockFrame.h:286
#7  0xb5e50fc7 in PaintLine (aLineArea=<value optimized out>,
    [EMAIL PROTECTED], aLine=<value optimized out>, aDepth=0,
    [EMAIL PROTECTED], aPresContext=0x8467f68,
    [EMAIL PROTECTED],
aWhichLayer=eFramePaintLayer_Overlay,
    aFrame=0x84d96cc)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsBlockFrame.cpp:6537
#8  0xb5e5131a in nsBlockFrame::PaintChildren (this=0x84d96cc,
    aPresContext=0x8467f68, [EMAIL PROTECTED],
    [EMAIL PROTECTED], aWhichLayer=eFramePaintLayer_Overlay,
aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsBlockFrame.cpp:6606
#9  0xb5e8db1f in nsHTMLContainerFrame::PaintDecorationsAndChildren (
    this=0x84d96cc, aPresContext=0x8467f68,
[EMAIL PROTECTED],
    [EMAIL PROTECTED], aWhichLayer=eFramePaintLayer_Overlay,
aIsBlock=1,
    aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsHTMLContainerFrame.cpp:136
#10 0xb5e51686 in nsBlockFrame::Paint (this=0x84d96cc,
    aPresContext=0x8467f68, [EMAIL PROTECTED],
    [EMAIL PROTECTED], aWhichLayer=eFramePaintLayer_Overlay,
aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsBlockFrame.cpp:6430
#11 0xb5e69e7c in nsContainerFrame::PaintChild (this=0x84d9550,
    aPresContext=0x8467f68, [EMAIL PROTECTED],
    [EMAIL PROTECTED], aFrame=0x84d96cc,
    aWhichLayer=eFramePaintLayer_Overlay, aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsContainerFrame.cpp:286
#12 0xb5e4cdcd in nsBlockFrame::PaintChild (this=0x84d9550,
    aPresContext=0x8467f68, [EMAIL PROTECTED],
    [EMAIL PROTECTED], aFrame=0x84d96cc,
    aWhichLayer=eFramePaintLayer_Overlay, aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/xtf/src/../../
generic/nsBlockFrame.h:286
#13 0xb5e50fc7 in PaintLine (aLineArea=<value optimized out>,
    [EMAIL PROTECTED], aLine=<value optimized out>, aDepth=0,
    [EMAIL PROTECTED], aPresContext=0x8467f68,
    [EMAIL PROTECTED],
aWhichLayer=eFramePaintLayer_Overlay,
    aFrame=0x84d9550)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsBlockFrame.cpp:6537
#14 0xb5e5131a in nsBlockFrame::PaintChildren (this=0x84d9550,
    aPresContext=0x8467f68, [EMAIL PROTECTED],
    [EMAIL PROTECTED], aWhichLayer=eFramePaintLayer_Overlay,
aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsBlockFrame.cpp:6606
#15 0xb5e8db1f in nsHTMLContainerFrame::PaintDecorationsAndChildren (
    this=0x84d9550, aPresContext=0x8467f68,
[EMAIL PROTECTED],
    [EMAIL PROTECTED], aWhichLayer=eFramePaintLayer_Overlay,
aIsBlock=1,
    aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsHTMLContainerFrame.cpp:136
#16 0xb5e51686 in nsBlockFrame::Paint (this=0x84d9550,
    aPresContext=0x8467f68, [EMAIL PROTECTED],
    [EMAIL PROTECTED], aWhichLayer=eFramePaintLayer_Overlay,
aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsBlockFrame.cpp:6430
#17 0xb5e69e7c in nsContainerFrame::PaintChild (this=0x84ca904,
    aPresContext=0x8467f68, [EMAIL PROTECTED],
    [EMAIL PROTECTED], aFrame=0x84d9550,
    aWhichLayer=eFramePaintLayer_Overlay, aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsContainerFrame.cpp:286
#18 0xb5e67df4 in nsContainerFrame::PaintChildren (this=0x84ca904,
    aPresContext=0x8467f68, [EMAIL PROTECTED],
    [EMAIL PROTECTED], aWhichLayer=eFramePaintLayer_Overlay,
aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsContainerFrame.cpp:231
#19 0xb5e8dbcd in nsHTMLContainerFrame::Paint (this=0x84ca904,
    aPresContext=0x8467f68, [EMAIL PROTECTED],
    [EMAIL PROTECTED], aWhichLayer=eFramePaintLayer_Overlay,
aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsHTMLContainerFrame.cpp:83
#20 0xb5e8e6ea in CanvasFrame::Paint (this=0x84ca904,
aPresContext=0x8467f68,
    [EMAIL PROTECTED], [EMAIL PROTECTED],
    aWhichLayer=eFramePaintLayer_Overlay, aFlags=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/generic/
nsHTMLFrame.cpp:383
#21 0xb5e346e7 in PresShell::Paint (this=0x84c9ce0, aView=0x84da378,
    [EMAIL PROTECTED], [EMAIL PROTECTED])
    at /home/crane/firefox2.0.0.11/mozilla/layout/base/nsPresShell.cpp:
5970
#22 0xb61ad09f in nsView::Paint (this=0x84da378, [EMAIL PROTECTED],
    [EMAIL PROTECTED], aPaintFlags=0, [EMAIL PROTECTED])
    at /home/crane/firefox2.0.0.11/mozilla/view/src/nsView.cpp:314
#23 0xb61b06e2 in nsViewManager::RenderDisplayListElement
(this=0x844e548,
    element=0x84b9458, aRC=0x84b8b48)
    at /home/crane/firefox2.0.0.11/mozilla/view/src/nsViewManager.cpp:
1458
#24 0xb61b6ed0 in nsViewManager::RenderViews (this=0x844e548,
    aRootView=0x844e5c8, [EMAIL PROTECTED], [EMAIL PROTECTED],
    aRCSurface=0x84bf7b8, [EMAIL PROTECTED])
    at /home/crane/firefox2.0.0.11/mozilla/view/src/nsViewManager.cpp:
1373
#25 0xb61b78ca in nsViewManager::RenderOffscreen (this=0x844e548,
    aView=0x844e5c8, [EMAIL PROTECTED], aUntrusted=0,
    aIgnoreViewportScrolling=1, aBackgroundColor=4294967295,
    aRenderedContext=0xbf8136ec)
    at /home/crane/firefox2.0.0.11/mozilla/view/src/nsViewManager.cpp:
3576
#26 0xb6091fc5 in nsCanvasRenderingContext2D::DrawWindow
(this=0x84786b8,
    aWindow=0x844e8f8, aX=0, aY=0, aW=800, aH=600,
[EMAIL PROTECTED])
    at /home/crane/firefox2.0.0.11/mozilla/content/canvas/src/
nsCanvasRenderingContext2D.cpp:2721
#27 0xb62173b3 in DesktopViewIDOMEventListener::HandleEvent
(this=0x844e8e0,
    aEvent=0x844a1c4)
    at /home/crane/firefox2.0.0.11/mozilla/dom/src/base/
DesktopViewIDOMEventListener.cpp:245
#28 0xb609921f in nsEventListenerManager::HandleEventSubType
(this=0x8466920,
    aListenerStruct=0x84c0bf0, aListener=0x844e8e0,
aDOMEvent=0x844a1c4,
    aCurrentTarget=0x836bd60, aSubType=1, aPhaseFlags=7)
    at /home/crane/firefox2.0.0.11/mozilla/content/events/src/
nsEventListenerManager.cpp:1655
#29 0xb6099b1f in nsEventListenerManager::HandleEvent
(this=0x8466920,
    aPresContext=0x0, aEvent=0xbf813bf4, aDOMEvent=0xbf813b90,
    aCurrentTarget=0x836bd60, aFlags=7, aEventStatus=0xbf813ba8)
    at /home/crane/firefox2.0.0.11/mozilla/content/events/src/
nsEventListenerManager.cpp:1759
#30 0xb61ddcfc in nsGlobalWindow::HandleDOMEvent (this=0x844e8f8,
    aPresContext=0x0, aEvent=0xbf813bf4, aDOMEvent=0xbf813b90,
aFlags=7,
    aEventStatus=0xbf813ba8)
    at /home/crane/firefox2.0.0.11/mozilla/dom/src/base/
nsGlobalWindow.cpp:1759
#31 0xb602d856 in nsDocument::DispatchEventToWindow (this=0x8436f88,
    aEvent=0xbf813bf4)
    at /home/crane/firefox2.0.0.11/mozilla/content/base/src/
nsDocument.cpp:5095
#32 0xb602db74 in nsDocument::OnPageShow (this=0x8436f88,
aPersisted=0)
    at /home/crane/firefox2.0.0.11/mozilla/content/base/src/
nsDocument.cpp:5125
#33 0xb5e15916 in DocumentViewerImpl::LoadComplete (this=0x8437e20,
aStatus=0)
    at /home/crane/firefox2.0.0.11/mozilla/layout/base/
nsDocumentViewer.cpp:1042
#34 0xb647e694 in nsDocShell::EndPageLoad (this=0x8364408,
    aProgress=0x836441c, aChannel=0x83c9830, aStatus=0)
    at /home/crane/firefox2.0.0.11/mozilla/docshell/base/
nsDocShell.cpp:4866
#35 0xb649fdeb in nsWebShell::EndPageLoad (this=0x8364408,
    aProgress=0x836441c, channel=0x83c9830, aStatus=0)
    at /home/crane/firefox2.0.0.11/mozilla/docshell/base/
nsWebShell.cpp:668

_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout

Reply via email to