Closed Bug 77344 Opened 24 years ago Closed 23 years ago

[Xlib] Xlib-toolkit Mozilla crashes when printing

Categories

(Core :: XUL, defect)

All
Linux
defect
Not set
major

Tracking

()

RESOLVED FIXED
mozilla0.9.4

People

(Reporter: roland.mainz, Assigned: roland.mainz)

References

()

Details

(Keywords: crash, Whiteboard: want for mozilla 0.9.4)

Attachments

(7 files)

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...
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
Attached patch Patch for 2001-04-23-cvs (deleted) — Splinter Review
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
Added example URL to demonstrate crash. Note that fix only works _after_ checkin of fixes for bug 71587.
Attached patch Better patch for 2001-04-23-cvs (deleted) — Splinter Review
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...)
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
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 ?
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
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
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
Attached patch Patch for 2001-07-26-08-trunk (deleted) — Splinter Review
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
r=timeless branch only.
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_.
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)
Requesting sr=
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?
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... ;-(
Oughtn't you add some commentary that says this is temporary? sr=waterson if you do that.
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
Requesting a=drivers@mozilla.org blizzard ?
Per IRC comment by blizzard: a=blizzard for branch&trunk ---- CC:'ing mkaply for checkin, please...
Target Milestone: mozilla0.9.3 → mozilla0.9.4
Missed 0.9.3... still waiting for checkin... ;-(
Whiteboard: want for mozilla 0.9.3 → want for mozilla 0.9.4
Fix checked in.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Blocks: 79119
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.

Attachment

General

Creator:
Created:
Updated:
Size: