Closed Bug 507728 Opened 15 years ago Closed 11 years ago

xml file displayed improperly (it is cut on the right and at the bottom) after zooming in

Categories

(Core :: Layout, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla28

People

(Reporter: wolfhart, Assigned: MatsPalmgren_bugz)

References

Details

(Whiteboard: [good first verify])

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.0.12) Gecko/2009070609 Firefox/3.0.12
Build Identifier: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.0.12) Gecko/2009070609 Firefox/3.0.12

When re-displaying an xml file (via an xsl stylesheet) which had been zoomed in on when the file was previously displayed, Firefox cuts the page on the right and at the bottom (without scrollbars).

Reproducible: Always

Steps to Reproduce:
I have produced an example and put it on the web.

1. Go to http://wolfhart.ektopos.com/Test/test.html
2. Follow the link to test.xml
3. Zoom in (once or more often)
4. Go back one page
5. Follow the link to test.xml again
Actual Results:  
The page is displayed improperly. Firefox cuts the page on the right and at the bottom (without scrollbars). Thus, part of the page is inaccessible.

Expected Results:  
Firefox should display the page as it was first displayed.
Reporter, please retest with Firefox 3.6.12 or later in a fresh profile (http://support.mozilla.com/kb/Managing+profiles). Also update your plugins (flash, adobe reader, java, quicktime, silverlight, etc.) Go to the developer's website and download the latest version from there. If you no longer see this issue, please close this bug as RESOLVED, WORKSFORME. If you do see the bug, please post a comment.
Whiteboard: [CLOSEME 2010-12-01]
No reply, INCOMPLETE. Please retest with Firefox 3.6.12 or later and a new profile (http://support.mozilla.com/kb/Managing+profiles). If you continue to see this issue with the newest firefox and a new profile, then please comment on this bug.
Status: UNCONFIRMED → RESOLVED
Closed: 14 years ago
Resolution: --- → INCOMPLETE
(In reply to comment #2)
> No reply, INCOMPLETE. Please retest with Firefox 3.6.12 or later and a new
> profile (http://support.mozilla.com/kb/Managing+profiles). If you continue to
> see this issue with the newest firefox and a new profile, then please comment
> on this bug.

I did retest with Firefox 3.6.12 and a new profile. The problem persists. Firefox still shows the behavior indicated above.
Whiteboard: [CLOSEME 2010-12-01]
Version: unspecified → 3.6 Branch
I am now using Firefox 18.0 on Ubuntu ("Mozilla Firefox for Ubuntu canonical - 1.0") and the problem is still there. The test file is displayed incorrectly (cut at the right and at the bottom) after following the steps described above.
Status: RESOLVED → UNCONFIRMED
Resolution: INCOMPLETE → ---
This still happens.  It only happens when full-zoom is turned on, so I wonder whether it's a problem with browser-fullZoom.js.
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Mac OS X → All
Hardware: x86 → All
Version: 3.6 Branch → Trunk
browser-fullZoom.js is working correctly -- the zoom is correctly updated.  The problem is something in layout.  There's an NS_ERROR that's hit in nsEventDispatcher::Dispatch because nsContentUtils::IsSafeToRunScript returns false.  There are some reflow frames on the stack:

> Breakpoint 1, nsEventDispatcher::Dispatch (aTarget=0x11ab4e820, aPresContext=0x1141ba800, aEvent=0x7fff5fbfbc58, aDOMEvent=0x0, aEventStatus=0x0, aCallback=0x0, aTargets=0x0) at nsEventDispatcher.cpp:459
> 459	        NS_ERROR("This is unsafe! Fix the caller!");
> (gdb) bt
> #0  nsEventDispatcher::Dispatch (aTarget=0x11ab4e820, aPresContext=0x1141ba800, aEvent=0x7fff5fbfbc58, aDOMEvent=0x0, aEventStatus=0x0, aCallback=0x0, aTargets=0x0) at nsEventDispatcher.cpp:459
> #1  0x000000010410b037 in PresShell::FireBeforeResizeEvent (this=0x114290000) at nsPresShell.cpp:1924
> #2  0x000000010410aa08 in PresShell::ResizeReflowIgnoreOverride (this=0x114290000, aWidth=41680, aHeight=23240) at nsPresShell.cpp:1837
> #3  0x000000010410af78 in PresShell::ResizeReflow (this=0x114290000, aWidth=41680, aHeight=23240) at nsPresShell.cpp:1810
> #4  0x0000000103541ac2 in nsViewManager::DoSetWindowDimensions (this=0x1119381c0, aWidth=41680, aHeight=23240) at /Users/adw/mi/view/src/nsViewManager.cpp:200
> #5  0x0000000103541c2a in nsViewManager::SetWindowDimensions (this=0x1119381c0, aWidth=41680, aHeight=23240) at /Users/adw/mi/view/src/nsViewManager.cpp:220
> #6  0x00000001040d4a73 in nsPresContext::SetFullZoom (this=0x1141ba800, aZoom=1.5) at nsPresContext.cpp:1444
> #7  0x00000001040d41a4 in nsDocumentViewer::InitPresentationStuff (this=0x11a8c1700, aDoInitialReflow=false) at nsDocumentViewer.cpp:690
> #8  0x00000001040d3d9c in nsDocumentViewer::InitInternal (this=0x11a8c1700, aParentWidget=0x0, aState=0x0, aBounds=@0x11a8c17ac, aDoCreation=true, aNeedMakeCX=true, aForceSetNewDocument=false) at nsDocumentViewer.cpp:906
> #9  0x00000001040da539 in nsDocumentViewer::SetDocumentInternal (this=0x11a8c1700, aDocument=0x11378e000, aForceReuseInnerWindow=true) at nsDocumentViewer.cpp:1744
> #10 0x0000000103bfb67e in nsXMLContentSink::OnDocumentCreated (this=0x10046ed60, aResultDocument=0x11378e000) at /Users/adw/mi/content/xml/document/src/nsXMLContentSink.cpp:347
> #11 0x0000000103bfb6ef in non-virtual thunk to nsXMLContentSink::OnDocumentCreated(nsIDocument*) (this=0x10046ee20, aResultDocument=0x11378e000) at /Users/adw/mi/content/xml/document/src/nsXMLContentSink.cpp:350
> #12 0x0000000103d4e101 in txTransformNotifier::SetOutputDocument (this=0x115e38c00, aDocument=0x11378e000) at txMozillaXMLOutput.cpp:1038
> #13 0x0000000103d4dacd in txMozillaXMLOutput::createResultDocument (this=0x115e2dbc0, aName=@0x7fff5fbfcb70, aNsID=3, aSourceDocument=0x111940ad8, aLoadedAsData=false) at txMozillaXMLOutput.cpp:875
> #14 0x0000000103d4ee74 in txToDocHandlerFactory::createHandlerWith (this=0x7fff5fbfcd90, aFormat=0x7fff5fbfca60, aName=@0x7fff5fbfcb70, aNsID=3, aHandler=0x7fff5fbfca58) at txMozillaXSLTProcessor.cpp:152
> #15 0x0000000103d6fc6b in txUnknownHandler::createHandlerAndFlush (this=0x10ed3adc0, aHTMLRoot=false, aName=@0x7fff5fbfcb70, aNsID=3) at txUnknownHandler.cpp:180
> #16 0x0000000103d70107 in txUnknownHandler::startElement (this=0x10ed3adc0, aPrefix=0x0, aLocalName=0x10f66a490, aLowercaseLocalName=0x10f66a490, aNsID=3) at txUnknownHandler.cpp:135
> #17 0x0000000103d3ad26 in txCopy::execute (this=0x12129b7e0, aEs=@0x7fff5fbfcdb8) at txInstructions.cpp:346
> #18 0x0000000103d7a3b0 in txXSLTProcessor::execute (aEs=@0x7fff5fbfcdb8) at txXSLTProcessor.cpp:49
> #19 0x0000000103d52606 in txMozillaXSLTProcessor::TransformToDoc (this=0x113760d00, aResult=0x0, aCreateDataDocument=false) at txMozillaXSLTProcessor.cpp:655
> #20 0x0000000103d5ff63 in nsTransformBlockerEvent::Run (this=0x121d67440) at txMozillaXSLTProcessor.cpp:534
> #21 0x0000000101868756 in nsThread::ProcessNextEvent (this=0x10046ab70, mayWait=false, result=0x7fff5fbfd2c3) at nsThread.cpp:612

Not sure whether this belongs in Layout or XSLT.
Component: General → Layout
Product: Firefox → Core
Hrm.  So nsDocumentViewer::InitInternal definitely has an nsAutoScriptBlocker on the stack.  So any time aDoCreation is passed as true and the zoom doesn't match whats already there we should get this assert when trying to fire the beforeresize event.

That said, if I take away that nsAutoScriptBlocker, the assert goes away and the event is fired but the rendering still looks wrong.  So presumably some other part of the attempt to change the window dimensions there is failing...
Is InitPresentationStuff setting up the wrong width/height to begin with?
This fixes it for me, and pass tests so far:
https://hg.mozilla.org/try/rev/b346f6b6a04e
BTW, can we remove the non-standard MozBeforeResize event?
It appears to be unused on m-c and c-c (apart from a test):
http://mxr.mozilla.org/mozilla-central/search?string=beforeresize
http://mxr.mozilla.org/comm-central/search?string=beforeresize
> BTW, can we remove the non-standard MozBeforeResize event?

Please!  Looks like something people added for Fennec which is now dead code.
Comment on attachment 8342357 [details] [diff] [review]
fix

r=me
Attachment #8342357 - Flags: review?(bzbarsky) → review+
Assignee: nobody → matspal
https://hg.mozilla.org/mozilla-central/rev/2a664a8c6e71
Status: NEW → RESOLVED
Closed: 14 years ago11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
Whiteboard: [good first verify]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: