[Xlib] Xlib-toolkit Mozilla crashes when printing

RESOLVED FIXED in mozilla0.9.4

Status

()

Core
XUL
--
major
RESOLVED FIXED
17 years ago
17 years ago

People

(Reporter: Roland Mainz, Assigned: Roland Mainz)

Tracking

({crash})

Trunk
mozilla0.9.4
All
Linux
crash
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: want for mozilla 0.9.4, URL)

Attachments

(7 attachments)

(Assignee)

Description

17 years ago
Xlib-toolkit Mozilla build from 2001-04-23 CVS snapshot+patches from bug 71587
crashes in Xlib-toolkit when printing via Xprint:
-- snip --
/content/printdialog.xul
WEBSHELL- = 6
Reading libgfxxprt.so
Reading libXp.so.1
SetupPrintContext(aSpec)
XpuGetPrinter: looking for 'ps001'
XpuGetPrinter2: probing display ':1' for 'ps001'
XpuCheckExtension: XpQueryVersion ':1.0' 1 0
XpSetContext(mPDisplay, mPContext)
XpuGetOneLongAttribute: 'default-printer-resolution' got '300'
XpuGetOneLongAttribute: result 300
t@1 (l@1) signal SEGV (no mapping at the fault address) in XMoveResizeWindow at
0xfdd2734c
0xfdd2734c: XMoveResizeWindow+0x0004:   ld      [%i0 + 0x4d0], %o0
Current function is nsScrollbar::LayoutBar
  428     XMoveResizeWindow(mDisplay, mBar,
(/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: t@1
  [1] XMoveResizeWindow(0x0, 0x0, 0x0, 0x0, 0x1, 0x1), at 0xfdd2734c
=>[2] nsScrollbar::LayoutBar(this = 0xfdb108), line 428 in "nsScrollBar.cpp"
  [3] nsScrollbar::Show(this = 0xfdb108, bState = 1), line 291 in
"nsScrollBar.cpp"
  [4] nsView::SetVisibility(this = 0xa29fa8, aVisibility =
nsViewVisibility_kShow), line 684 in "nsView.cpp"
  [5] nsView::CreateWidget(this = 0xa29fa8, aWindowIID = STRUCT, aWidgetInitData
= 0xffbea4d0, aNative = (nil), aEnableDragDrop = 0), line 964 in "nsView.cpp"
  [6] nsScrollingView::CreateScrollControls(this = 0xab1b18, aNative = (nil)),
line 865 in "nsScrollingView.cpp"
  [7] nsScrollFrame::CreateScrollingView(this = 0xa835f4, aPresContext =
0x771a88), line 449 in "nsScrollFrame.cpp"
  [8] nsScrollFrame::Init(this = 0xa835f4, aPresContext = 0x771a88, aContent =
0xcbf770, aParent = 0xa83510, aStyleContext = 0xb71390, aPrevInFlow = (nil)),
line 90 in "nsScrollFrame.cpp"
  [9] nsListControlFrame::Init(this = 0xa835f4, aPresContext = 0x771a88,
aContent = 0xcbf770, aParent = 0xa83510, aContext = 0xb71390, aPrevInFlow =
(nil)), line 1537 in "nsListControlFrame.cpp"
  [10] nsCSSFrameConstructor::InitAndRestoreFrame(this = 0xf78e08, aPresContext
= 0x771a88, aState = CLASS, aContent = 0xcbf770, aParentFrame = 0xa83510,
aStyleContext = 0xb71390, aPrevInFlow = (nil), aNewFrame = 0xa835f4), line 6727
in "nsCSSFrameConstructor.cpp"
  [11] nsCSSFrameConstructor::InitializeSelectFrame(this = 0xf78e08, aPresShell
= 0xf31118, aPresContext = 0x771a88, aState = CLASS, scrollFrame = 0xa835f4,
scrolledFrame = 0xa836dc, aContent = 0xcbf770, aParentFrame = 0xa83510,
aStyleContext = 0xb71390, aIsAbsolutelyPositioned = 0, aIsFixedPositioned = 0,
aCreateBlock = 1), line 4340 in "nsCSSFrameConstructor.cpp"
  [12] nsCSSFrameConstructor::ConstructSelectFrame(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0xcbf770,
aParentFrame = 0xa83488, aTag = 0x253bf0, aStyleContext = 0x893850, aNewFrame =
(nil), aProcessChildren = 0, aIsAbsolutelyPositioned = 0,
aFrameHasBeenInitialized = 0, aIsFixedPositioned = 0, aFrameItems = STRUCT),
line 4222 in "nsCSSFrameConstructor.cpp"
  [13] nsCSSFrameConstructor::ConstructFrameByTag(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0xcbf770,
aParentFrame = 0xa83488, aTag = 0x253bf0, aNameSpaceID = 3, aStyleContext =
0x893850, aFrameItems = STRUCT), line 4769 in "nsCSSFrameConstructor.cpp"
  [14] nsCSSFrameConstructor::ConstructFrameInternal(this = 0xf78e08, aPresShell
= 0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0xcbf770,
aParentFrame = 0xa83488, aTag = 0x253bf0, aNameSpaceID = 3, aStyleContext =
0x893850, aFrameItems = STRUCT, aXBLBaseTag = 0), line 7245 in
"nsCSSFrameConstructor.cpp"
  [15] nsCSSFrameConstructor::ConstructFrame(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0xcbf770,
aParentFrame = 0xa83488, aFrameItems = STRUCT), line 7147 in
"nsCSSFrameConstructor.cpp"
  [16] nsCSSFrameConstructor::ProcessChildren(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0xcbf628, aFrame =
0xa83488, aCanHaveGeneratedContent = 1, aFrameItems = STRUCT, aParentIsBlock =
1, aTableCreator = (nil)), line 11292 in "nsCSSFrameConstructor.cpp"
  [17] nsCSSFrameConstructor::ConstructTableCellFrame(this = 0xf78e08,
aPresShell = 0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent =
0xcbf628, aParentFrameIn = 0xa83084, aStyleContext = 0x8fa218, aTableCreator =
STRUCT, aIsPseudo = 0, aChildItems = STRUCT, aNewCellOuterFrame = 0xa8342c,
aNewCellInnerFrame = 0xa83488, aIsPseudoParent = 0), line 2949 in
"nsCSSFrameConstructor.cpp"
  [18] nsCSSFrameConstructor::TableProcessChild(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aChildContent = CLASS,
aParentFrame = 0xa83084, aParentFrameType = 0x276940, aParentStyleContext =
0x6b2338, aTableCreator = STRUCT, aChildItems = STRUCT, aCaption = (nil)), line
3212 in "nsCSSFrameConstructor.cpp"
  [19] nsCSSFrameConstructor::TableProcessChildren(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0xda1988,
aParentFrame = 0xa83084, aTableCreator = STRUCT, aChildItems = STRUCT, aCaption
= (nil)), line 3123 in "nsCSSFrameConstructor.cpp"
  [20] nsCSSFrameConstructor::ConstructTableRowFrame(this = 0xf78e08, aPresShell
= 0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0xda1988,
aParentFrameIn = 0xa83048, aStyleContext = 0x6b2338, aTableCreator = STRUCT,
aIsPseudo = 0, aChildItems = STRUCT, aNewFrame = 0xa83084, aIsPseudoParent = 0),
line 2820 in "nsCSSFrameConstructor.cpp"
  [21] nsCSSFrameConstructor::TableProcessChild(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aChildContent = CLASS,
aParentFrame = 0xa83048, aParentFrameType = 0x276900, aParentStyleContext =
0x6f2178, aTableCreator = STRUCT, aChildItems = STRUCT, aCaption = (nil)), line
3198 in "nsCSSFrameConstructor.cpp"
  [22] nsCSSFrameConstructor::TableProcessChildren(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0xda1948,
aParentFrame = 0xa83048, aTableCreator = STRUCT, aChildItems = STRUCT, aCaption
= (nil)), line 3123 in "nsCSSFrameConstructor.cpp"
  [23] nsCSSFrameConstructor::ConstructTableRowGroupFrame(this = 0xf78e08,
aPresShell = 0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent =
0xda1948, aParentFrameIn = 0xa82fe0, aStyleContext = 0x6f2178, aTableCreator =
STRUCT, aIsPseudo = 0, aChildItems = STRUCT, aNewFrame = 0xa83048,
aIsPseudoParent = 0), line 2711 in "nsCSSFrameConstructor.cpp"
  [24] nsCSSFrameConstructor::TableProcessChild(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aChildContent = CLASS,
aParentFrame = 0xa82fe0, aParentFrameType = 0x276898, aParentStyleContext =
0x3a2070, aTableCreator = STRUCT, aChildItems = STRUCT, aCaption = (nil)), line
3192 in "nsCSSFrameConstructor.cpp"
  [25] nsCSSFrameConstructor::TableProcessChildren(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0xda1880,
aParentFrame = 0xa82fe0, aTableCreator = STRUCT, aChildItems = STRUCT, aCaption
= (nil)), line 3123 in "nsCSSFrameConstructor.cpp"
  [26] nsCSSFrameConstructor::ConstructTableFrame(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0xda1880,
aParentFrameIn = 0xa3364c, aStyleContext = 0x3a2070, aTableCreator = STRUCT,
aIsPseudo = 0, aChildItems = STRUCT, aNewOuterFrame = 0xa82354, aNewInnerFrame =
0xa82fe0, aIsPseudoParent = 0), line 2592 in "nsCSSFrameConstructor.cpp"
  [27] nsCSSFrameConstructor::ConstructFrameByDisplayType(this = 0xf78e08,
aPresShell = 0xf31118, aPresContext = 0x771a88, aState = CLASS, aDisplay =
0xfa0404, aContent = 0xda1880, aParentFrame = 0xa3364c, aStyleContext =
0x3a2070, aFrameItems = STRUCT), line 6548 in "nsCSSFrameConstructor.cpp"
  [28] nsCSSFrameConstructor::ConstructFrameInternal(this = 0xf78e08, aPresShell
= 0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0xda1880,
aParentFrame = 0xa3364c, aTag = 0x274c48, aNameSpaceID = 3, aStyleContext =
0x3a2070, aFrameItems = STRUCT, aXBLBaseTag = 0), line 7288 in
"nsCSSFrameConstructor.cpp"
  [29] nsCSSFrameConstructor::ConstructFrame(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0xda1880,
aParentFrame = 0xa3364c, aFrameItems = STRUCT), line 7147 in
"nsCSSFrameConstructor.cpp"
  [30] nsCSSFrameConstructor::ProcessBlockChildren(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0x72e770, aFrame =
0xa3364c, aCanHaveGeneratedContent = 1, aFrameItems = STRUCT, aParentIsBlock =
1), line 12450 in "nsCSSFrameConstructor.cpp"
  [31] nsCSSFrameConstructor::ConstructBlock(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aDisplay = 0xb14cbc, aContent
= 0x72e770, aParentFrame = 0xa335c4, aStyleContext = 0x84ac70, aNewFrame =
0xa3364c), line 12398 in "nsCSSFrameConstructor.cpp"
  [32] nsCSSFrameConstructor::ConstructFrameByDisplayType(this = 0xf78e08,
aPresShell = 0xf31118, aPresContext = 0x771a88, aState = CLASS, aDisplay =
0xb14cbc, aContent = 0x72e770, aParentFrame = 0xa335c4, aStyleContext =
0x84ac70, aFrameItems = STRUCT), line 6501 in "nsCSSFrameConstructor.cpp"
  [33] nsCSSFrameConstructor::ConstructFrameInternal(this = 0xf78e08, aPresShell
= 0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0x72e770,
aParentFrame = 0xa335c4, aTag = 0x14f110, aNameSpaceID = 3, aStyleContext =
0x84ac70, aFrameItems = STRUCT, aXBLBaseTag = 0), line 7288 in
"nsCSSFrameConstructor.cpp"
  [34] nsCSSFrameConstructor::ConstructFrame(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0x72e770,
aParentFrame = 0xa335c4, aFrameItems = STRUCT), line 7147 in
"nsCSSFrameConstructor.cpp"
  [35] nsCSSFrameConstructor::ProcessChildren(this = 0xf78e08, aPresShell =
0xf31118, aPresContext = 0x771a88, aState = CLASS, aContent = 0x8556d8, aFrame =
0xa335c4, aCanHaveGeneratedContent = 1, aFrameItems = STRUCT, aParentIsBlock =
1, aTableCreator = (nil)), line 11292 in "nsCSSFrameConstructor.cpp"
  [36] nsCSSFrameConstructor::ConstructDocElementFrame(this = 0xf78e08,
aPresShell = 0xf31118, aPresContext = 0x771a88, aState = CLASS, aDocElement =
0x8556d8, aParentFrame = 0xa33554, aParentStyleContext = 0xd4e4b8, aNewFrame =
0xa335c4), line 3533 in "nsCSSFrameConstructor.cpp"
  [37] nsCSSFrameConstructor::ContentInserted(this = 0xf78e08, aPresContext =
0x771a88, aContainer = (nil), aChild = 0x8556d8, aIndexInContainer = 0,
aFrameState = (nil)), line 8461 in "nsCSSFrameConstructor.cpp"
  [38] StyleSetImpl::ContentInserted(this = ???, aPresContext = ???, aContainer
= ???, aChild = ???, aIndexInContainer = ???) (optimized), at 0xfd0be840 (line
~1248) in "nsStyleSet.cpp"
  [39] PresShell::InitialReflow(this = 0xf31118, aWidth = 5592, aHeight = 8057),
line 2501 in "nsPresShell.cpp"
  [40] DocumentViewerImpl::Print(this = ???, aSilent = ???, aFile = ???,
aPrintListener = ???) (optimized), at 0xfd057b44 (line ~4291) in
"nsDocumentViewer.cpp"
  [41] GlobalWindowImpl::Print(this = ???) (optimized), at 0xfe0ea544 (line
~1748) in "nsGlobalWindow.cpp"
  [42] WindowInternalPrint(cx = ???, obj = ???, argc = ???, argv = ???, rval =
???) (optimized), at 0xfe0d5768 (line ~3550) in "nsJSWindow.cpp"
  [43] js_Invoke(cx = ???, argc = ???, flags = ???) (optimized), at 0xff0c4920
(line ~813) in "jsinterp.c"
  [44] js_Interpret(cx = ???, result = ???) (optimized), at 0xff0d02b8 (line
~2706) in "jsinterp.c"
  [45] js_Invoke(cx = ???, argc = ???, flags = ???) (optimized), at 0xff0c4994
(line ~830) in "jsinterp.c"
  [46] js_InternalInvoke(cx = ???, obj = ???, fval = ???, flags = ???, argc =
???, argv = ???, rval = ???) (optimized), at 0xff0c4bf8 (line ~902) in
"jsinterp.c"
  [47] JS_CallFunctionValue(cx = ???, obj = ???, fval = ???, argc = ???, argv =
???, rval = ???) (optimized), at 0xff09d5e0 (line ~3334) in "jsapi.c"
  [48] nsJSContext::CallEventHandler(this = ???, aTarget = ???, aHandler = ???,
argc = ???, argv = ???, aBoolResult = ???, aReverseReturnResult = ???)
(optimized), at 0xfe0c8a40 (line ~939) in "nsJSEnvironment.cpp"
  [49] nsJSEventListener::HandleEvent(this = ???, aEvent = ???) (optimized), at
0xfe1346e4 (line ~149) in "nsJSEventListener.cpp"
  [50] nsEventListenerManager::HandleEventSubType(this = ???, aListenerStruct =
???, aDOMEvent = ???, aCurrentTarget = ???, aSubType = ???, aPhaseFlags = ???)
(optimized), at 0xfcd703ac (line ~1033) in "nsEventListenerManager.cpp"
  [51] nsEventListenerManager::HandleEvent(this = ???, aPresContext = ???,
aEvent = ???, aDOMEvent = ???, aCurrentTarget = ???, aFlags = ???, aEventStatus
= ???) (optimized), at 0xfcd7286c (line ~1953) in "nsEventListenerManager.cpp"
  [52] nsXULElement::HandleDOMEvent(this = ???, aPresContext = ???, aEvent =
???, aDOMEvent = ???, aFlags = ???, aEventStatus = ???) (optimized), at
0xfcf2fd90 (line ~3729) in "nsXULElement.cpp"
  [53] PresShell::HandleDOMEventWithTarget(this = 0x384258, aTargetContent =
0x4cc698, aEvent = 0xffbee690, aStatus = 0xffbee6d8), line 5452 in
"nsPresShell.cpp"
  [54] nsMenuFrame::Execute(this = ???) (optimized), at 0xfc8942a4 (line ~1418)
in "nsMenuFrame.cpp"
  [55] nsMenuFrame::HandleEvent(this = ???, aPresContext = ???, aEvent = ???,
aEventStatus = ???) (optimized), at 0xfc890b74 (line ~397) in "nsMenuFrame.cpp"
  [56] PresShell::HandleEventInternal(this = 0x384258, aEvent = 0xffbeeed8,
aView = 0xf410f8, aFlags = 1U, aStatus = 0xffbeece0), line 5420 in
"nsPresShell.cpp"
  [57] PresShell::HandleEvent(this = 0x384258, aView = 0xf410f8, aEvent =
0xffbeeed8, aEventStatus = 0xffbeece0, aForceHandle = 0, aHandled = 1), line
5332 in "nsPresShell.cpp"
  [58] nsView::HandleEvent(this = 0xf410f8, event = 0xffbeeed8, aEventFlags =
8U, aStatus = 0xffbeece0, aForceHandle = 0, aHandled = 1), line 364 in
"nsView.cpp"
  [59] nsView::HandleEvent(this = 0xf32928, event = 0xffbeeed8, aEventFlags =
8U, aStatus = 0xffbeece0, aForceHandle = 0, aHandled = 1), line 348 in
"nsView.cpp"
  [60] nsView::HandleEvent(this = 0xf35b78, event = 0xffbeeed8, aEventFlags =
8U, aStatus = 0xffbeece0, aForceHandle = 0, aHandled = 1), line 348 in
"nsView.cpp"
  [61] nsView::HandleEvent(this = 0x38c8b8, event = 0xffbeeed8, aEventFlags =
28U, aStatus = 0xffbeece0, aForceHandle = 1, aHandled = 1), line 348 in
"nsView.cpp"
  [62] nsViewManager::DispatchEvent(this = ???, aEvent = ???, aStatus = ???)
(optimized), at 0xfcb15704 (line ~2032) in "nsViewManager.cpp"
  [63] HandleEvent(aEvent = 0xffbeeed8), line 67 in "nsView.cpp"
  [64] nsWidget::DispatchEvent(this = 0xf329b0, aEvent = 0xffbeeed8, aStatus =
nsEventStatus_eIgnore), line 1276 in "nsWidget.cpp"
  [65] nsWidget::DispatchWindowEvent(this = 0xf329b0, aEvent = STRUCT), line
1184 in "nsWidget.cpp"
  [66] nsWidget::DispatchMouseEvent(this = 0xf329b0, aEvent = STRUCT), line 1143
in "nsWidget.cpp"
  [67] nsAppShell::HandleButtonEvent(event = ???, aWidget = ???) (optimized), at
0xfdf0fdfc (line ~773) in "nsAppShell.cpp"
  [68] nsAppShell::DispatchXEvent(event = ???) (optimized), at 0xfdf0f724 (line
~628) in "nsAppShell.cpp"
  [69] nsAppShell::Run(this = ???) (optimized), at 0xfdf0f0e4 (line ~448) in
"nsAppShell.cpp"
  [70] nsAppShellService::Run(this = ???) (optimized), at 0xfdf99914 (line ~407)
in "nsAppShellService.cpp"
  [71] main1(argc = ???, argv = ???, nativeApp = ???) (optimized), at 0x16658
(line ~1015) in "nsAppRunner.cpp"
  [72] main(argc = ???, argv = ???) (optimized), at 0x170dc (line ~1312) in
"nsAppRunner.cpp"
-- snip --

Looking at mozilla/widget/src/xlib/nsScrollBar.cpp:
-- snip --
void nsScrollbar::LayoutBar(void)
{
  XMoveResizeWindow(mDisplay, mBar,
                    mBarBounds.x, mBarBounds.y,
                    mBarBounds.width, mBarBounds.height);
}
-- snip --

mDisplay is simply NULL which causes this havoc...
...assigning bug to myself as fix looks easy...
(Assignee)

Comment 1

17 years ago
Accepting bug CC'ing Xlib folks and "want for mozilla 0.9" assuming I get a fix
in the next hour...
Status: NEW → ASSIGNED
Whiteboard: want for mozilla 0.9
(Assignee)

Comment 2

17 years ago
Created attachment 31999 [details] [diff] [review]
Patch for 2001-04-23-cvs
(Assignee)

Comment 3

17 years ago
Added patch.
Patch simply added some if( mDisplay != nsnull ) { /* ... */ } and kills tabs in
touched sources.

Need r=, sr=, a=
Keywords: patch
Target Milestone: --- → mozilla0.9
(Assignee)

Comment 4

17 years ago
Added example URL to demonstrate crash.
Note that fix only works _after_ checkin of fixes for bug 71587.
(Assignee)

Comment 5

17 years ago
Created attachment 32004 [details] [diff] [review]
Better patch for 2001-04-23-cvs
(Assignee)

Comment 6

17 years ago
Created attachment 32005 [details] [diff] [review]
Better patch for 2001-04-23-cvs (gdiff -u -w) REVIEW ONLY !!
Is this problem really caused by the fact that
nsDeviceContextXP::SupportsNativeWidgets returns PR_FALSE?  I'm not sure what it
should return, since it's used differently from other device contexts. 
nsDeviceContextPS::SupportsNativeWidgets returns PR_FALSE too, though... but
nsView::CreateWidget looks like it tries to do weird things when
SupportsNativeWidgets is false (it doesn't call |Create| on the widget, but
assumes it will work without it -- this is weird if the widget is actually
associated with xlib rather than xprint -- I'm not sure what really should be
going on here...)
(Assignee)

Comment 8

17 years ago
dbaron, you're right... hacking nsDeviceContextXP::SupportsNativeWidgets() to
return PR_TRUE solves this issue, too - making my patches unneccesary.
But If nsDeviceContextXP::SupportsNativeWidgets() returns PR_TRUE the example
URL for this bug doesn't get printed anymore.

The GTK+-toolkit gives some "hints" when printing via Xprint and hacking 
nsDeviceContextXP::SupportsNativeWidgets() to return PR_TRUE:
-- snip --
Disabling View Source StyleSheet
Enabling Quirk StyleSheet
Document
http://www.cinema.de/kinotimer/stadtchk/1,1645,,00.html?Filmid=&Ortsname=giessen
loaded successfully
1[3c860]: WARNING: dependent window created without a parent, file
../../../../../src/2001-04-23-cvs/mozilla/xpfe/bootstrap/nsWindowCreator.cpp,
line 94
WARNING: dependent window created without a parent, file
../../../../../src/2001-04-23-cvs/mozilla/xpfe/bootstrap/nsWindowCreator.cpp,
line 94
WEBSHELL+ = 7
Disabling View Source StyleSheet
/content/printdialog.xul
nsWidget::~nsWidget() of toplevel: 46 widgets still exist.
WEBSHELL- = 6
1[3c860]: nsXPrintContext::nsXPrintContext()
1[3c860]: nsXPrintContext::Init()
SetupPrintContext(aSpec)
1[3c860]: nsXPrintContext::SetupPrintContext()
1[3c860]: nsXPrintContext::SetupPrintContext: borders top=0.000000,
bottom=0.000000, left=0.000000, right=0.000000
XpuGetPrinter: looking for 'ps001'
XpuGetPrinter2: probing display ':1' for 'ps001'
XpuCheckExtension: XpQueryVersion ':1.0' 1 0
XpSetContext(mPDisplay, mPContext)
XpuGetOneLongAttribute: 'default-printer-resolution' got '300'
XpuGetOneLongAttribute: result 300
1[3c860]: print resolution 300
1[3c860]: nsXPrintContext::SetupWindow: x=75 y=75 width=2330 height=3357
1[3c860]: nsXPrintContext::GetPrintResolution()
window moved to offscreen position
window moved to offscreen position
window moved to offscreen position
window moved to offscreen position
window moved to offscreen position
window moved to offscreen position
window moved to offscreen position
window moved to offscreen position
window moved to offscreen position
window moved to offscreen position
window moved to offscreen position
window moved to offscreen position
Enabling Quirk StyleSheet
window moved to offscreen position
window moved to offscreen position
Enabling Quirk StyleSheet
Enabling Quirk StyleSheet
1[3c860]: nsXPrintContext::BeginDocument()
1[3c860]: nsXPrintContext::BeginDocument: document title: 'Cinema'
XpuCheckSupported: XpGetOneAttribute(job-attributes-supported) returned
'job-name job-owner notification-profile xp-spooler-command-options '
XpuCheckSupported: probing 'job-name'=='job-name'
XpStartJob(mPDisplay, XPSpool)
XpuWaitForPrintNotify(mPDisplay, XPStartJobNotify)
XpStartPage(mPDisplay, mDrawable)
XpuWaitForPrintNotify(mPDisplay, XPStartPageNotify)
XpEndPage(mPDisplay)
XpuWaitForPrintNotify(mPDisplay, XPEndPageNotify)
XpEndJob(mPDisplay)
XpuWaitForPrintNotify(mPDisplay, XPEndJobNotify)
1[3c860]: nsXPrintContext::~nsXPrintContext()
/kinotimer/stadtchk/1,1645,,00.html?Filmid=&Ortsname=giessen
-- snip --

"window moved to offscreen position" doesn't appear when
nsDeviceContextXP::SupportsNativeWidgets() returns PR_FALSE...

dbaron, blizzard... any ideas ?

----

Retargeting bug to 0.9.1... ;-((((((
Whiteboard: want for mozilla 0.9 → want for mozilla 0.9.1
Target Milestone: mozilla0.9 → mozilla0.9.1
(Assignee)

Comment 9

17 years ago
Created attachment 32016 [details]
Xprint output when nsDeviceContextXP::SupportsNativeWidgets() returns PR_TRUE
(Assignee)

Comment 10

17 years ago
Created attachment 32017 [details]
Xprint output when nsDeviceContextXP::SupportsNativeWidgets() returns PR_TRUE
(Assignee)

Comment 11

17 years ago
Issue nailed-down.
Returning PR_TRUE for nsDeviceContextXP::SupportsNativeWidgets() is problamatic
as source uses this return value to determinate whether the device is
"scrollable" or a "paging device". See
http://lxr.mozilla.org/mozilla/source/layout/html/style/src/nsCSSFrameConstructor.cpp#3765
-- snip --
3763     if (dc) {
3764       PRBool  supportsWidgets;
3765       if (NS_SUCCEEDED(dc->SupportsNativeWidgets(supportsWidgets))) {
3766         isScrollable = supportsWidgets;
3767       }
-- snip --

The real fix is to implement a new method nsIDeviceContext::IsPagedDevice() (see
mozilla/gfx/public/nsIDeviceContext.h), impl. nsDeviceContextXP::IsPagedDevice()
- to indicate that this device supports pages or need scrollbars (or we same
that method "IsScrollable()").

blizzard... what's your opinion ?
(Assignee)

Comment 12

17 years ago
Retargeting to 0.9.2 - without checkin of patches in bug 78548 Xprint behaves
incorrectly.
Depends on: 78548
Whiteboard: want for mozilla 0.9.1 → want for mozilla 0.9.2
Target Milestone: mozilla0.9.1 → mozilla0.9.2
(Assignee)

Comment 13

17 years ago
Tons of changes, tons of fixes, but this bug is still not dead... ;-(

Retargeting to 0.9.3, CC:'ing pocemit...
Whiteboard: want for mozilla 0.9.2 → want for mozilla 0.9.3
Target Milestone: mozilla0.9.2 → mozilla0.9.3
(Assignee)

Comment 14

17 years ago
Retargeting to milestone 0.9.4... ;-(
Whiteboard: want for mozilla 0.9.3 → want for mozilla 0.9.4
Target Milestone: mozilla0.9.3 → mozilla0.9.4
(Assignee)

Comment 15

17 years ago
Created attachment 43775 [details] [diff] [review]
Patch for 2001-07-26-08-trunk
(Assignee)

Comment 16

17 years ago
Filed new patch, back to 0.9.3. This is a "must have" for 0.9.3 to get printing
working in Xlib-port.
I know that this patch is only a workaround - but it is better than crashing...

Requesting r=/sr= for this bug, please...
Keywords: crash, review
Summary: Xlib-toolkit Mozilla crashes when printing with Xprint → Xlib-toolkit Mozilla crashes when printing
Whiteboard: want for mozilla 0.9.4 → want for mozilla 0.9.3
Target Milestone: mozilla0.9.4 → mozilla0.9.3

Comment 17

17 years ago
r=timeless branch only.
(Assignee)

Comment 18

17 years ago
Recently I filed bug 91773 to get a better solution for this stuff, but I'd like
to get rid of the crashers of possible...
Additionally I am going to file a RFE to get a new API to determinate whether
the device context is for a framebuffer or printer device...

Requesting r= for branch and _trunk_.

Comment 19

17 years ago
ok, after a bit of discussion and w/ the reference to the new bug i'm 
comfortable w/ this for branch and trunk since it sounds like it'll be a while 
before a better fix comes along. r=timeless (093+trunk)
(Assignee)

Comment 20

17 years ago
Requesting sr=

Comment 21

17 years ago
I'm confused. You said you discovered the real problem (``The real fix is to
implement a new method [...] to indicate that this device supports pages or need
[sic] scrollbars''), yet this patch looks nothing like that. Can we not just do
the Right Thing?
(Assignee)

Comment 22

17 years ago
waterson:
The patch here is only a workaround to get rid of the crashes... printing just
works fine then.

The real solution is far more difficult... that's why I filed bug 91773 ... no
chanche to ship that monster with 0.9.3... ;-(

Comment 23

17 years ago
Oughtn't you add some commentary that says this is temporary? sr=waterson if you
do that.
(Assignee)

Comment 24

17 years ago
Created attachment 44095 [details] [diff] [review]
New patch for 2001-07-27-08-trunk to match sr=waterson
(Assignee)

Comment 25

17 years ago
waterson:
I am not sure whether that |if (mDisplay)| is mandatory or if I am simply
hacking the symptoms of the issue. I am not sure.

Hacking DeviceContextImpl::SupportsNativeWidgets() to return PR_TRUE would help
Xprint (because it works on a real Xserver (=Xprt, the X print server)) but not
PostScript printing - which crashes, too). But that would require to create a
new API to get rid of the problem that "someone" misused
DeviceContextImpl::SupportsNativeWidgets() to check whether this is a printer
device nor not (who wrote that xx@@XX !?).

This patch helps... and may be a final solution... or only a workaround. 
I am going to investigate this. That's why I filed bug 91773 - to crawl far
deeper into the mouth of the Xlib-port dragon and clean-up the whole damn
Xlib-port widget support. Maybe be issue goes away. If not - than this patch is
the final solution... :-)
Blocks: 91773
(Assignee)

Comment 26

17 years ago
Requesting a=drivers@mozilla.org

blizzard ?
(Assignee)

Comment 27

17 years ago
Per IRC comment by blizzard:
a=blizzard for branch&trunk

----

CC:'ing mkaply for checkin, please...
(Assignee)

Updated

17 years ago
Target Milestone: mozilla0.9.3 → mozilla0.9.4
(Assignee)

Comment 28

17 years ago
Missed 0.9.3... still waiting for checkin... ;-(
(Assignee)

Updated

17 years ago
Whiteboard: want for mozilla 0.9.3 → want for mozilla 0.9.4

Comment 29

17 years ago
Fix checked in.
Status: ASSIGNED → RESOLVED
Last Resolved: 17 years ago
Resolution: --- → FIXED

Updated

17 years ago
Blocks: 79119
(Assignee)

Updated

17 years ago
Summary: Xlib-toolkit Mozilla crashes when printing → [Xlib] Xlib-toolkit Mozilla crashes when printing
You need to log in before you can comment on or make changes to this bug.