Closed Bug 20691 Opened 25 years ago Closed 25 years ago

[dogfood] View source just opens toolbar-less window with the HTML rendering

Categories

(Core :: Layout, defect, P1)

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: petter.sundlof, Assigned: waterson)

References

Details

(Whiteboard: [PDT+] fix ready)

Attachments

(1 file)

View Source doesn't work in 1999120208, M12.

It opens a window with the rendered HTML page.
I've also encountered this bug in Win32 Build ID 1999120608.
Also, the window view source opens occasionally crashes the browser, but this
effect isn't completely reproducible.
I'm getting a crash on view source 1999120608.
http://www.mozilla.org/ is a reliable crash source page. Although I don't think
it matters where you go.
I meant to say on WinNT 1999120608.
Assignee: chofmann → rickg
Summary: View source just opens toolbar-less window with the HTML rendering → [dogfood] View source just opens toolbar-less window with the HTML rendering
see it on win95 as well with the 12/7 build.  this might be a
dup of any already known problem.  over to rickg.

Incident ID 1996525
nsStr::Truncate [d:\builds\seamonkey\mozilla\xpcom\ds\nsStr.cpp, line 294]
nsString::Assign [d:\builds\seamonkey\mozilla\xpcom\ds\nsString2.cpp, line 1005]
nsWebShell::DoLoadURL [d:\builds\seamonkey\mozilla\webshell\src\nsWebShell.cpp,
line 1774]
nsWebShell::LoadURI [d:\builds\seamonkey\mozilla\webshell\src\nsWebShell.cpp,
line 1936]
nsWebShell::LoadURL [d:\builds\seamonkey\mozilla\webshell\src\nsWebShell.cpp,
line 2114]
nsWebShell::LoadURL [d:\builds\seamonkey\mozilla\webshell\src\nsWebShell.cpp,
line 1584]
nsHTMLFrameInnerFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\document\src\nsFrameFrame.cpp, line
879]
nsContainerFrame::ReflowChild
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line
628]
nsHTMLFrameOuterFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\document\src\nsFrameFrame.cpp, line
372]
nsBoxFrame::FlowChildAt
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1128]
nsBoxFrame::FlowChildren
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 673]
nsBoxFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 569]
nsBoxFrame::FlowChildAt
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1128]
nsBoxFrame::FlowChildren
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 673]
nsBoxFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 569]
nsBoxFrame::FlowChildAt
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1128]
nsBoxFrame::FlowChildren
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 673]
nsBoxFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 569]
nsBoxFrame::FlowChildAt
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1128]
nsBoxFrame::FlowChildren
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 673]
nsBoxFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 569]
nsContainerFrame::ReflowChild
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line
628]
RootFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsHTMLFrame.cpp, line 334]
nsContainerFrame::ReflowChild
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line
628]
ViewportFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsViewportFrame.cpp, line 527]
nsHTMLReflowCommand::Dispatch
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsHTMLReflowCommand.cpp, line
145]
PresShell::ProcessReflowCommands
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 1765]
PresShell::ExitReflowLock
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 821]
PresShell::AttributeChanged
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 2192]
nsXULDocument::AttributeChanged
[d:\builds\seamonkey\mozilla\rdf\content\src\nsXULDocument.cpp, line 1317]
nsGenericHTMLElement::UnsetAttribute
[d:\builds\seamonkey\mozilla\layout\html\content\src\nsGenericHTMLElement.cpp,
line 846]
nsHTMLIFrameElement::UnsetAttribute
[d:\builds\seamonkey\mozilla\layout\html\content\src\nsHTMLIFrameElement.cpp,
line 92]
nsGenericElement::RemoveAttribute
[d:\builds\seamonkey\mozilla\layout\base\src\nsGenericElement.cpp, line 442]
nsHTMLOptionElement::RemoveAttribute
[d:\builds\seamonkey\mozilla\layout\html\content\src\nsHTMLOptionElement.cpp,
line 86]
ElementRemoveAttribute
[d:\builds\seamonkey\mozilla\dom\src\coreDOM\nsJSElement.cpp, line 313]
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 666]
js_Interpret [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2227]
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 686]
js_Interpret [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2227]
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 686]
js_InternalCall [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 759]
JS_CallFunctionValue [d:\builds\seamonkey\mozilla\js\src\jsapi.c, line 2754]
nsJSContext::CallFunctionObject
[d:\builds\seamonkey\mozilla\dom\src\base\nsJSEnvironment.cpp, line 550]
nsJSDOMEventListener::HandleEvent
[d:\builds\seamonkey\mozilla\dom\src\events\nsJSDOMEventListener.cpp, line 87]
nsEventListenerManager::HandleEventSubType
[d:\builds\seamonkey\mozilla\layout\events\src\nsEventListenerManager.cpp, line
635]
nsEventListenerManager::HandleEvent
[d:\builds\seamonkey\mozilla\layout\events\src\nsEventListenerManager.cpp, line
1185]
GlobalWindowImpl::HandleDOMEvent
[d:\builds\seamonkey\mozilla\dom\src\base\nsGlobalWindow.cpp, line 2973]
nsWebShell::OnEndDocumentLoad
[d:\builds\seamonkey\mozilla\webshell\src\nsWebShell.cpp, line 3003]
nsDocLoaderImpl::FireOnEndDocumentLoad
[d:\builds\seamonkey\mozilla\webshell\src\nsDocLoader.cpp, line 1079]
nsDocLoaderImpl::DocLoaderIsEmpty
[d:\builds\seamonkey\mozilla\webshell\src\nsDocLoader.cpp, line 981]
nsDocLoaderImpl::DocLoaderIsEmpty
[d:\builds\seamonkey\mozilla\webshell\src\nsDocLoader.cpp, line 984]
nsDocLoaderImpl::OnStopRequest
[d:\builds\seamonkey\mozilla\webshell\src\nsDocLoader.cpp, line 920]
nsLoadGroup::RemoveChannel
[d:\builds\seamonkey\mozilla\netwerk\base\src\nsLoadGroup.cpp, line 541]
nsInputStreamChannel::OnStopRequest
[d:\builds\seamonkey\mozilla\netwerk\base\src\nsInputStreamChannel.cpp, line
354]
nsOnStopRequestEvent::HandleEvent
[d:\builds\seamonkey\mozilla\netwerk\base\src\nsAsyncStreamListener.cpp, line
279]
nsStreamListenerEvent::HandlePLEvent
[d:\builds\seamonkey\mozilla\netwerk\base\src\nsAsyncStreamListener.cpp, line
94]
PL_HandleEvent [plevent.c, line 523]
_md_EventReceiverProc [plevent.c, line 951]
KERNEL32.DLL + 0x35d9 (0xbff735d9)
0x08730016
0xff540070
Assignee: rickg → rpotts
Whiteboard: [PDT+]
Reassigning to rickp on the assumption that its the same problem as last time.
Component: other → HTML Element
QA Contact: leger → petersen
Setting QA Contact.
*** Bug 21123 has been marked as a duplicate of this bug. ***
Status: NEW → ASSIGNED
Whiteboard: [PDT+] → [PDT+] 12/10/99
Sure I'll take a look at it...  But it doesn't have anything to do with me :-)

The original stack trace shows the crash in nsStr.  In my build, I'm crashing in
an nsCOMPtr assignment because the webshell has been deleted :-(

I have a feeling that there is a reference counting bug due to using nsCOMPtrs
as in/out parameters, but that's just a guess...
Assignee: rpotts → waterson
Status: ASSIGNED → NEW
Ok...  It looks like this crash has to do with the XUL cache...  I'm reassinging
it to waterson :-)
View Source works as of 1208-08. Mac OS, 8.6
Target Milestone: M12
Setting TFV to M12 to put it on radar.
Status: NEW → ASSIGNED
view page source on mozilla.org still crashes for me on 12/8/16 win32 builds.

ncident ID 2076497
nsStr::Truncate [d:\builds\seamonkey\mozilla\xpcom\ds\nsStr.cpp, line 294]
nsString::Assign [d:\builds\seamonkey\mozilla\xpcom\ds\nsString2.cpp, line 1005]
nsWebShell::DoLoadURL [d:\builds\seamonkey\mozilla\webshell\src\nsWebShell.cpp,
line 1792]
nsWebShell::LoadURI [d:\builds\seamonkey\mozilla\webshell\src\nsWebShell.cpp,
line 1954]
nsWebShell::LoadURL [d:\builds\seamonkey\mozilla\webshell\src\nsWebShell.cpp,
line 2132]
nsWebShell::LoadURL [d:\builds\seamonkey\mozilla\webshell\src\nsWebShell.cpp,
line 1602]
nsHTMLFrameInnerFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\document\src\nsFrameFrame.cpp, line
879]
nsContainerFrame::ReflowChild
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line
644]
nsHTMLFrameOuterFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\document\src\nsFrameFrame.cpp, line
372]
nsBoxFrame::FlowChildAt
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1128]
nsBoxFrame::FlowChildren
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 673]
nsBoxFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 569]
nsBoxFrame::FlowChildAt
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1128]
nsBoxFrame::FlowChildren
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 673]
nsBoxFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 569]
nsBoxFrame::FlowChildAt
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1128]
nsBoxFrame::FlowChildren
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 673]
nsBoxFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 569]
nsBoxFrame::FlowChildAt
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1128]
nsBoxFrame::FlowChildren
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 673]
nsBoxFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 569]
nsContainerFrame::ReflowChild
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line
644]
RootFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsHTMLFrame.cpp, line 334]
nsContainerFrame::ReflowChild
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line
644]
ViewportFrame::Reflow
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsViewportFrame.cpp, line 527]
nsHTMLReflowCommand::Dispatch
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsHTMLReflowCommand.cpp, line
145]
PresShell::ProcessReflowCommands
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 1765]
PresShell::ExitReflowLock
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 821]
PresShell::AttributeChanged
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 2192]
nsXULDocument::AttributeChanged
[d:\builds\seamonkey\mozilla\rdf\content\src\nsXULDocument.cpp, line 1318]
nsGenericHTMLElement::UnsetAttribute
[d:\builds\seamonkey\mozilla\layout\html\content\src\nsGenericHTMLElement.cpp,
line 846]
nsHTMLFrameElement::UnsetAttribute
[d:\builds\seamonkey\mozilla\layout\html\content\src\nsHTMLFrameElement.cpp,
line 84]
nsGenericElement::RemoveAttribute
[d:\builds\seamonkey\mozilla\layout\base\src\nsGenericElement.cpp, line 442]
nsHTMLAnchorElement::RemoveAttribute
[d:\builds\seamonkey\mozilla\layout\html\content\src\nsHTMLAnchorElement.cpp,
line 74]
ElementRemoveAttribute
[d:\builds\seamonkey\mozilla\dom\src\coreDOM\nsJSElement.cpp, line 313]
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 666]
js_Interpret [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2227]
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 686]
js_Interpret [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2227]
js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 686]
js_InternalCall [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 759]
JS_CallFunctionValue [d:\builds\seamonkey\mozilla\js\src\jsapi.c, line 2754]
nsJSContext::CallEventHandler
[d:\builds\seamonkey\mozilla\dom\src\base\nsJSEnvironment.cpp, line 551]
nsJSDOMEventListener::HandleEvent
[d:\builds\seamonkey\mozilla\dom\src\events\nsJSDOMEventListener.cpp, line 87]
nsEventListenerManager::HandleEventSubType
[d:\builds\seamonkey\mozilla\layout\events\src\nsEventListenerManager.cpp, line
654]
nsEventListenerManager::HandleEvent
[d:\builds\seamonkey\mozilla\layout\events\src\nsEventListenerManager.cpp, line
1204]
GlobalWindowImpl::HandleDOMEvent
[d:\builds\seamonkey\mozilla\dom\src\base\nsGlobalWindow.cpp, line 2974]
nsWebShell::OnEndDocumentLoad
[d:\builds\seamonkey\mozilla\webshell\src\nsWebShell.cpp, line 3021]
nsDocLoaderImpl::FireOnEndDocumentLoad
[d:\builds\seamonkey\mozilla\webshell\src\nsDocLoader.cpp, line 1079]
nsDocLoaderImpl::DocLoaderIsEmpty
[d:\builds\seamonkey\mozilla\webshell\src\nsDocLoader.cpp, line 981]
nsDocLoaderImpl::DocLoaderIsEmpty
[d:\builds\seamonkey\mozilla\webshell\src\nsDocLoader.cpp, line 984]
nsDocLoaderImpl::OnStopRequest
[d:\builds\seamonkey\mozilla\webshell\src\nsDocLoader.cpp, line 920]
nsLoadGroup::RemoveChannel
[d:\builds\seamonkey\mozilla\netwerk\base\src\nsLoadGroup.cpp, line 541]
nsInputStreamChannel::OnStopRequest
[d:\builds\seamonkey\mozilla\netwerk\base\src\nsInputStreamChannel.cpp, line
354]
nsOnStopRequestEvent::HandleEvent
[d:\builds\seamonkey\mozilla\netwerk\base\src\nsAsyncStreamListener.cpp, line
279]
nsStreamListenerEvent::HandlePLEvent
[d:\builds\seamonkey\mozilla\netwerk\base\src\nsAsyncStreamListener.cpp, line
94]
PL_HandleEvent [plevent.c, line 523]
_md_EventReceiverProc [plevent.c, line 951]
KERNEL32.DLL + 0x35d9 (0xbff735d9)
0x08730016
0xff540070
Priority: P3 → P1
FWIW, on Linux there is no crash (works fine) doing a view source on
http://www.mozilla.org when the sidebar is closed. When the sidebar is open,
different story - a crash occurs. Using 12/08 build.
For both this bug and 20171, the nsWebShell that gets destroyed
prematurely is the one that is calling nsWebShell::DoLoadURL()
for chrome://related/content/related-panel.xul
*** Bug 9337 has been marked as a duplicate of this bug. ***
OS: Mac System 8.6 → All
Hardware: Macintosh → All
since bug 9337 is a dup of this, i've changed the platform to all, as paulmac,
sujay and i have seen it occur on windows, mac and linux (as of the 19991208
builds). our basic recipe is:

1. make sure sidebar is open
2. View > Page Source
result: source win opens...then mozilla crashes.
expected: source should display w/o crashes
I believe that the crash is related re-entrancy and the XUL Cache, which was
turned on in its full glory last week. Disabling it (Edit->Preferences; Debug;
Disable XUL Cache) will make the problem go away, even with the sidebar on.
[adding email thread...]

Chris Waterson said...

You are right, we could optimize the "view source" window by not having
it be a
full-blown toolbarless navigator.xul; however, the problem is
something to do
with the brutal sharing stuff that I turned on towards
the end of last week.

Turn off the XUL cache, and you will no longer see the crash, even with
sidebar
enabled. (Edit->Preferences; Debug; Disable XUL Cache)

chris


aaronr@us.ibm.com wrote:
>
> Sorry, I don't know if this is the type of discussion that should go in the
>
bug report, something that should go on a newsgroup or something that
> should
go in a note like this.  Please let me know for future reference.  I
> don't
want to bother more people than is really necessary so I didn't put
> it in the
bug.
>
> Anyway, the whole problem with this view->page source problem is that we
> are
putting a sidebar into the "view source" window, right?  Isn't the
> right
answer not to put a sidebar into the "view source" window at all?  If
> you do
"view source" from a browser window that doesn't have a sidebar and
> thus
generate a view souce window that doesn't have a sidebar, then things
> work
fine.  If you then try to put a sidebar into the "view source" window,
> nothing
happens (though the menu does accurately track the check mark
> toggle).  I
guess that I am old fashioned, but I think the view source
> window should be a
kiosk window like in 4.x.
>
> That's my two cents.  I'll leave the solution to you guys and I'll go help
>
out on another bug.
Attached patch proposed fixSplinter Review
Whiteboard: [PDT+] 12/10/99 → [PDT+] fix ready
The attached fix moves document contruction onto a callback. The problem that
we were seeing is that the nsHTMLInnerFrame wasn't re-entrant. Its Reflow()
method created a webshell and called LoadURL() on that webshell. This had the
side effect of destroying the webshell the frame had just created!

Although we could hack the inner frame to ensure that re-entrancy like this was
allowed, the safest fix seemed to be to make the nsCachedChromeChannel behave
like other channels. We separate OnStartLoad() and OnStopLoad() so that a stack
unwind is guaranteed to happen between the two.

saari, hyatt: the only people that I can think of that would be affected by
this are you. Will this screw up your XUL key loading magic?
*** Bug 21283 has been marked as a duplicate of this bug. ***
*** Bug 20961 has been marked as a duplicate of this bug. ***
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
*** Bug 21306 has been marked as a duplicate of this bug. ***
View page source works fine. But, on Windows and Linux, the view page source
window shows the regular browser menu and chrome icons (navigator, mail,
composer..). That's supposed to be a kiosk window right...? It's not major
issue. But I wanted to know if there is a separate opened to track that issue.
Let me know what shows up now is decied to be OK..then I will mark the bug
verified.
Used Dec 14th's commercial build (for the above comments).
Status: RESOLVED → VERIFIED
The original problem has been fixed. The menus appearing in the source window is
new and should be written up as a new problem.
SPAM. HTML Element component deprecated, changing component to Layout. See bug
88132 for details.
Component: HTML Element → Layout
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: