Closed Bug 14774 Opened 25 years ago Closed 25 years ago

Too many OnEndDocumentLoad notifications; Composer can't cope with <iframe> tags

Categories

(Core :: DOM: Editor, defect, P1)

defect

Tracking

()

VERIFIED WORKSFORME

People

(Reporter: sfraser_bugs, Assigned: sfraser_bugs)

References

()

Details

(Keywords: testcase, Whiteboard: [TESTCASE])

Attachments

(1 file)

Load the page given in the URL in apprunner, and do 'Edit page'. When bug 14640 is fixed, you'll see that the page continually reloads. We're getting continual OnEndDocumentLoad notifications; and the loading process never stops.
On a 'normal' page, we're getting 5 OnEndDocumentLoad notifications, instead of the usual 2, on the editor page.
Assignee: warren → rpotts
Rick should look at this one.
Assignee: rpotts → sfraser
This seems to be a general problem when editing pages with framesets. As you can see from the stack trace below, the call to nsEditorShell::PrepareDocumentForEditing(...) ultimately causes a Reflow(...) which seems to force the HTML frame to load its document *again*. So, the infinite OnEndDocumentLoad(...) notifications are a byproduct of the continous loading of the Frameset... Here is the stack trace: ======================== nsLoadGroup::AddChannel(nsLoadGroup * const 0x03589630, nsIChannel * 0x03588920, nsISupports * 0x00000000) line 516 nsHTTPChannel::Open() line 567 nsHTTPChannel::AsyncRead(nsHTTPChannel * const 0x03588920, unsigned int 0x00000000, int 0xffffffff, nsISupports * 0x00000000, nsIStreamListener * 0x03588b10) line 250 + 8 bytes nsDocumentBindInfo::Bind(nsIURI * 0x03589080, nsILoadGroup * 0x03589630, nsIInputStream * 0x00000000, const unsigned short * 0x00000000) line 1178 + 45 bytes nsDocLoaderImpl::LoadDocument(nsDocLoaderImpl * const 0x035896a0, nsIURI * 0x03589080, const char * 0x002cbdd4, nsIContentViewerContainer * 0x03589be0, nsIInputStream * 0x00000000, nsISupports * 0x00000000, nsIStreamObserver * 0x03589df0, unsigned int 0x00000000, const unsigned int 0x00000000, const unsigned short * 0x00000000) line 541 + 32 bytes nsWebShell::DoLoadURL(nsIURI * 0x03589080, const char * 0x002cbdd4, nsIInputStream * 0x00000000, unsigned int 0x00000000, const unsigned int 0x00000000, const unsigned short * 0x00000000) line 2119 + 67 bytes nsWebShell::LoadURI(nsWebShell * const 0x03589be0, nsIURI * 0x03589080, const char * 0x002cbdd4, nsIInputStream * 0x00000000, int 0x00000001, unsigned int 0x00000000, const unsigned int 0x00000000, nsISupports * 0x00000000, const unsigned short * 0x00000000) line 2235 + 32 bytes nsWebShell::LoadURL(nsWebShell * const 0x03589be0, const unsigned short * 0x03589a30, const char * 0x002cbdd4, nsIInputStream * 0x00000000, int 0x00000001, unsigned int 0x00000000, const unsigned int 0x00000000, nsISupports * 0x00000000, const unsigned short * 0x00000000) line 2333 + 52 bytes nsWebShell::LoadURL(nsWebShell * const 0x03589be0, const unsigned short * 0x03589a30, nsIInputStream * 0x00000000, int 0x00000001, unsigned int 0x00000000, const unsigned int 0x00000000, nsISupports * 0x00000000, const unsigned short * 0x00000000) line 1928 nsHTMLFrameInnerFrame::Reflow(nsHTMLFrameInnerFrame * const 0x03589e84, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x02e5ee70) line 945 + 46 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x03589e80, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x02e5ee70) line 372 + 28 bytes nsHTMLFrameOuterFrame::Reflow(nsHTMLFrameOuterFrame * const 0x03589fb4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x02e5ee70) line 394 nsContainerFrame::ReflowChild(nsIFrame * 0x03589fb0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x02e5ee70) line 372 + 28 bytes nsHTMLFramesetFrame::ReflowPlaceChild(nsIFrame * 0x03589fb0, nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsPoint & {...}, nsSize & {...}, nsPoint * 0x0012e500) line 782 nsHTMLFramesetFrame::Reflow(nsHTMLFramesetFrame * const 0x0358ef44, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1165 nsLineLayout::ReflowFrame(nsIFrame * 0x0358ef40, nsIFrame * * 0x0012f170, unsigned int & 0x00000000) line 898 nsBlockFrame::ReflowInlineFrame(nsBlockReflowState & {...}, nsLineLayout & {...}, nsLineBox * 0x0358ee80, nsIFrame * 0x0358ef40, unsigned char * 0x0012e79c) line 3318 + 26 bytes nsBlockFrame::DoReflowInlineFrames(nsBlockReflowState & {...}, nsLineLayout & {...}, nsLineBox * 0x0358ee80, int * 0x0012f064, unsigned char * 0x0012ef3c) line 3208 + 28 bytes nsBlockFrame::DoReflowInlineFramesAuto(nsBlockReflowState & {...}, nsLineBox * 0x0358ee80, int * 0x0012f064, unsigned char * 0x0012ef3c) line 3155 + 34 bytes nsBlockFrame::ReflowInlineFrames(nsBlockReflowState & {...}, nsLineBox * 0x0358ee80, int * 0x0012f064) line 3103 + 24 bytes nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x0358ee80, int * 0x0012f064, int 0x00000000) line 2363 + 20 bytes nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2112 + 24 bytes nsBlockFrame::Reflow(nsBlockFrame * const 0x0358bdd4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1309 + 18 bytes nsAreaFrame::Reflow(nsAreaFrame * const 0x0358bdd4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 401 + 25 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x0358bdd0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 372 + 28 bytes RootFrame::Reflow(RootFrame * const 0x034b24b4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 330 nsContainerFrame::ReflowChild(nsIFrame * 0x034b24b0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 372 + 28 bytes ViewportFrame::Reflow(ViewportFrame * const 0x034b2c14, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 516 nsHTMLReflowCommand::Dispatch(nsHTMLReflowCommand * const 0x0358f1d0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsSize & {...}, nsIRenderingContext & {...}) line 141 PresShell::ProcessReflowCommands(PresShell * const 0x03476ce0) line 1301 PresShell::ExitReflowLock(PresShell * const 0x03476ce0) line 616 PresShell::ReconstructFrames() line 1791 PresShell::StyleSheetAdded(PresShell * const 0x03476ce8, nsIDocument * 0x0342fb50, nsIStyleSheet * 0x035a55b0) line 1799 nsDocument::AddStyleSheet(nsIStyleSheet * 0x035a55b0) line 1340 AddStyleSheetTxn::Do(AddStyleSheetTxn * const 0x0358c740) line 86 nsTransactionItem::Do() line 102 + 18 bytes nsTransactionManager::BeginTransaction(nsITransaction * 0x0358c740) line 1038 + 11 bytes nsTransactionManager::Do(nsTransactionManager * const 0x035a4910, nsITransaction * 0x0358c740) line 134 + 18 bytes nsEditor::Do(nsEditor * const 0x035a4b00, nsITransaction * 0x0358c740) line 342 + 30 bytes nsHTMLEditor::AddStyleSheet(nsHTMLEditor * const 0x035a4b54, nsICSSStyleSheet * 0x035a55b0) line 2679 + 20 bytes nsHTMLEditor::ReplaceStyleSheet(nsHTMLEditor * const 0x035a4b00, nsICSSStyleSheet * 0x035a55b0) line 3590 + 20 bytes nsHTMLEditor::ApplyStyleSheetToPresShellDocument(nsICSSStyleSheet * 0x035a55b0, void * 0x035a4b00) line 3607 + 19 bytes nsHTMLEditor::ApplyStyleSheet(nsHTMLEditor * const 0x035a4b54, const nsString & {...}) line 2752 + 16 bytes nsHTMLEditorLog::ApplyStyleSheet(nsHTMLEditorLog * const 0x035a4b54, const nsString & {...}) line 587 + 13 bytes nsEditorShell::ApplyStyleSheet(nsEditorShell * const 0x03494ee0, const unsigned short * 0x0012fa4c) line 601 + 39 bytes nsEditorShell::PrepareDocumentForEditing(nsEditorShell * const 0x03494ee0, nsIURI * 0x035728b0) line 829 nsEditorShell::OnEndDocumentLoad(nsEditorShell * const 0x03494ee8, nsIDocumentLoader * 0x035746b0, nsIChannel * 0x03570480, unsigned int 0x00000000, nsIDocumentLoaderObserver * 0x03571ba4) line 3083 + 28 bytes nsWebShell::OnEndDocumentLoad(nsWebShell * const 0x03571ba4, nsIDocumentLoader * 0x035746b0, nsIChannel * 0x03570480, unsigned int 0x00000000, nsIDocumentLoaderObserver * 0x03571ba4) line 3439 nsDocLoaderImpl::FireOnEndDocumentLoad(nsDocLoaderImpl * 0x035746b0, nsIChannel * 0x03570480, unsigned int 0x00000000) line 885 nsDocLoaderImpl::OnStopRequest(nsDocLoaderImpl * const 0x035746b4, nsIChannel * 0x03570480, nsISupports * 0x00000000, unsigned int 0x00000000, const unsigned short * 0x00000000) line 768 nsLoadGroup::RemoveChannel(nsLoadGroup * const 0x03574640, nsIChannel * 0x03570480, nsISupports * 0x00000000, unsigned int 0x00000000, const unsigned short * 0x00000000) line 597 + 39 bytes nsHTTPChannel::ResponseCompleted(nsIChannel * 0x03570890, unsigned int 0x00000000) line 755 nsHTTPResponseListener::OnStopRequest(nsHTTPResponseListener * const 0x0351a2f0, nsIChannel * 0x03570890, nsISupports * 0x03570480, unsigned int 0x00000000, const unsigned short * 0x00000000) line 264 nsOnStopRequestEvent::HandleEvent(nsOnStopRequestEvent * const 0x03518a50) line 283 nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x03518a00) line 152 + 12 bytes PL_HandleEvent(PLEvent * 0x03518a00) line 541 + 10 bytes PL_ProcessPendingEvents(PLEventQueue * 0x00d0b890) line 500 + 9 bytes _md_EventReceiverProc(HWND__ * 0x033a036e, unsigned int 0x0000c058, unsigned int 0x00000000, long 0x00d0b890) line 970 + 9 bytes USER32! 77e71268() 00d0b890()
Target Milestone: M14
setting to M14, this one can wait until after dogfood push
Status: NEW → ASSIGNED
Not sure what status is on this now. A good test is to 'Edit page' on the URL above.
Bulk move of all Necko (to be deleted component) bugs to new Networking component.
*** Bug 14640 has been marked as a duplicate of this bug. ***
Seeing as Bug 14640 has been marked as a dupe of this bug, I'm going to reupload the testcase I lovingly crafted here. Bug 14640 also has some interesting discussion about this problem. In fact, Bug 14640 had all the fields in the entry set correctly, including the dependencies. Why was the dupe resolved this way round rather than the other? I wonder if I can claim double for the BugAThon? ;-) Also, are we supposed to be using Status [TESTCASE] or keyword testcase now? Gerv
Blocks: 17907, 24854
Severity: normal → critical
Component: Networking → Editor
Keywords: testcase
OS: Mac System 8.5 → All
Priority: P3 → P1
Summary: Too many OnEndDocumentLoad notifcations → Too many OnEndDocumentLoad notifications; Composer can't cope with <iframe> tags
Whiteboard: [TESTCASE]
assigning this to Kin for debugging
Assignee: sfraser → kin
Status: ASSIGNED → NEW
Assigning to sfraser@netscape.com. Moving to M15.
Target Milestone: M14 → M15
Confirmed still a problem in W95 2000021615. Gerv
Whoops, forgot to assign to sfraser@netscape.com on last entry.
Assignee: kin → sfraser
Cc myself.
Not working in 20000323, but WORKSFORME in 20000324. It's been fixed :-) Gerv
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → WORKSFORME
setting sujay as QA contact
QA Contact: tever → sujay
verified in 4/3 build.
Status: RESOLVED → VERIFIED
No longer blocks: 17907
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: