Closed
Bug 106464
Opened 23 years ago
Closed 20 years ago
Cookie notification hangs browser while dragging bookmark.
Categories
(Core :: DOM: Copy & Paste and Drag & Drop, defect)
Tracking
()
VERIFIED
DUPLICATE
of bug 100180
People
(Reporter: nfagerlund, Assigned: danm.moz)
Details
(Keywords: hang)
From Bugzilla Helper: User-Agent: Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv:0.9.5) Gecko/20011011 BuildID: 2001101117 I started dragging a site's icon from the address bar to the bookmark list before the page was completely loaded. The site tried to send a cookie while I was doing that, and when the cookie permission request was displayed, it hung the browser, and I had to terminate it with ctl-alt-del. Reproducible: Didn't try Steps to Reproduce: You have to have your cookies set to require permission every time. The problem is that you have to be able to predict exactly WHEN a site will try to slip you a cookie in order to reproduce this. If you can do that, all you need to do is be dragging a site's icon through the bookmark list when the request hits. I haven't tried to artificially induce this hang, but it happened the same way two or three times on seperate sites, so I'm fairly confidant that it can be done. Actual Results: n/a Expected Results: n/a
Comment 1•23 years ago
|
||
I'm able to reproduce this very easily. 1. Set preferences to warn-before-accepting-cookie 2. Go to http://home.netscape.com 3. Immediately while the page starts loading, start dragging the icon for the current page. Keep the mouse button depressed 4. The "confirm" dialog will appear but the dialog box will be empty. Browser is hung at this point. Using the debugger to break execution at this point does not give any useful information.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Comment 2•23 years ago
|
||
Tried it again and this time I got a meaningful stack trace at the point of hang. USER32! 77e72c30() nsXULWindow::ShowModal(nsXULWindow * const 0x04d5aa40) line 264 + 31 bytes nsWebShellWindow::ShowModal(nsWebShellWindow * const 0x04d5aa40) line 1057 nsContentTreeOwner::ShowAsModal(nsContentTreeOwner * const 0x04d1f50c) line 415 nsWindowWatcher::OpenWindowJS(nsWindowWatcher * const 0x01239724, nsIDOMWindow * 0x03068b24, const char * 0x00f4e95c, const char * 0x00f4f0b8, const char * 0x00f4f094, int 1, unsigned int 1, long * 0x04d5b660, nsIDOMWindow * * 0x0012d904) line 717 nsWindowWatcher::OpenWindow(nsWindowWatcher * const 0x01239720, nsIDOMWindow * 0x03068b24, const char * 0x00f4e95c, const char * 0x00f4f0b8, const char * 0x00f4f094, nsISupports * 0x04d5b850, nsIDOMWindow * * 0x0012d904) line 453 + 48 bytes nsPromptService::DoDialog(nsPromptService * const 0x0290da24, nsIDOMWindow * 0x03068b24, nsIDialogParamBlock * 0x04d5b850, const char * 0x00f4e95c) line 629 + 77 bytes nsPromptService::ConfirmEx(nsPromptService * const 0x0290da20, nsIDOMWindow * 0x03068b24, const unsigned short * 0x04d5b8b0, const unsigned short * 0x04d5a640, unsigned int 0, const unsigned short * 0x00000000, const unsigned short * 0x00000000, const unsigned short * 0x00000000, const unsigned short * 0x04d5a5e0, int * 0x0012db40, int * 0x0012db08) line 347 + 36 bytes nsPrompt::ConfirmEx(nsPrompt * const 0x04d5b4a0, const unsigned short * 0x04d5b8b0, const unsigned short * 0x04d5a640, unsigned int 1027, const unsigned short * 0x00000000, const unsigned short * 0x00000000, const unsigned short * 0x00000000, const unsigned short * 0x04d5a5e0, int * 0x0012db40, int * 0x0012db08) line 167 permission_CheckConfirmYN(nsIPrompt * 0x04d5b4a0, unsigned short * 0x04d5a640, unsigned short * 0x04d5a5e0, int * 0x0012db40) line 100 + 54 bytes Permission_Check(nsIPrompt * 0x04d5b4a0, const char * 0x04d5b7f0, int 0, int 1, unsigned short * 0x04d5a640) line 204 + 21 bytes cookie_SetCookieString(char * 0x04d5a760, nsIPrompt * 0x04d5b4a0, const char * 0x04d5a7b0, long 0, nsIIOService * 0x0127b900) line 1168 + 28 bytes COOKIE_SetCookieStringFromHttp(char * 0x04d5a760, char * 0x00000000, nsIPrompt * 0x04d5b4a0, const char * 0x04d5a7b0, char * 0x00000000, nsIIOService * 0x0127b900) line 1362 + 25 bytes COOKIE_SetCookieString(char * 0x04d5a760, nsIPrompt * 0x04d5b4a0, const char * 0x04d5a7b0, nsIIOService * 0x0127b900) line 1262 + 25 bytes nsCookieService::SetCookieString(nsCookieService * const 0x04c65570, nsIURI * 0x04c63840, nsIPrompt * 0x04d5b4a0, const char * 0x04d5a7b0) line 191 + 29 bytes nsHTMLDocument::SetCookie(nsHTMLDocument * const 0x04cbdf04, const nsAString & {...}) line 1981 + 46 bytes XPTC_InvokeByIndex(nsISupports * 0x04cbdf04, unsigned int 59, unsigned int 1, nsXPTCVariant * 0x0012e02c) line 154 XPCWrappedNative::CallMethod(XPCCallContext & {...}, XPCWrappedNative::CallMode CALL_SETTER) line 1951 + 42 bytes XPCWrappedNative::SetAttribute(XPCCallContext & {...}) line 1821 + 14 bytes XPC_WN_GetterSetter(JSContext * 0x041dac50, JSObject * 0x03d096e0, unsigned int 1, long * 0x03f45e4c, long * 0x0012e278) line 1290 + 12 bytes js_Invoke(JSContext * 0x041dac50, unsigned int 1, unsigned int 2) line 809 + 23 bytes js_InternalInvoke(JSContext * 0x041dac50, JSObject * 0x03d096e0, long 64220192, unsigned int 0, unsigned int 1, long * 0x0012f0ac, long * 0x0012f0ac) line 901 + 20 bytes js_SetProperty(JSContext * 0x041dac50, JSObject * 0x03d096e0, long 51111136, long * 0x0012f0ac) line 2585 + 47 bytes js_Interpret(JSContext * 0x041dac50, long * 0x0012f2d8) line 2629 + 1939 bytes js_Execute(JSContext * 0x041dac50, JSObject * 0x027d5630, JSScript * 0x04d58b50, JSStackFrame * 0x00000000, unsigned int 0, long * 0x0012f2d8) line 989 + 13 bytes JS_EvaluateUCScriptForPrincipals(JSContext * 0x041dac50, JSObject * 0x027d5630, JSPrincipals * 0x04ccf3b0, const unsigned short * 0x0265ee70, unsigned int 439, const char * 0x04d5f1b0, unsigned int 1275, long * 0x0012f2d8) line 3361 + 25 bytes nsJSContext::EvaluateString(nsJSContext * const 0x041dae90, const nsAString & {...}, void * 0x027d5630, nsIPrincipal * 0x04ccf3ac, const char * 0x04d5f1b0, unsigned int 1275, const char * 0x00efd688, nsAString & {...}, int * 0x0012f344) line 642 + 85 bytes nsScriptLoader::EvaluateScript(nsScriptLoadRequest * 0x04d5f0a0, const nsAFlatString & {...}) line 576 nsScriptLoader::ProcessRequest(nsScriptLoadRequest * 0x04d5f0a0) line 483 + 22 bytes nsScriptLoader::ProcessScriptElement(nsScriptLoader * const 0x04cc9f20, nsIDOMHTMLScriptElement * 0x04d59578, nsIScriptLoaderObserver * 0x04d5957c) line 426 + 15 bytes nsHTMLScriptElement::SetDocument(nsHTMLScriptElement * const 0x04d59550, nsIDocument * 0x04cbdd40, int 0, int 1) line 158 nsGenericHTMLContainerElement::AppendChildTo(nsGenericHTMLContainerElement * const 0x04cf7e60, nsIContent * 0x04d59550, int 0, int 0) line 4163 HTMLContentSink::ProcessSCRIPTTag(const nsIParserNode & {...}) line 5110 HTMLContentSink::AddLeaf(HTMLContentSink * const 0x04ccf490, const nsIParserNode & {...}) line 3483 + 12 bytes CNavDTD::AddLeaf(const nsIParserNode * 0x0265a520) line 3767 + 22 bytes CNavDTD::HandleScriptToken(const nsIParserNode * 0x0265a520) line 2228 + 12 bytes CNavDTD::OpenContainer(const nsCParserNode * 0x0265a520, nsHTMLTag eHTMLTag_script, int 1, nsEntryStack * 0x00000000) line 3418 + 12 bytes CNavDTD::HandleDefaultStartToken(CToken * 0x03ea4f80, nsHTMLTag eHTMLTag_script, nsCParserNode * 0x0265a520) line 1302 + 20 bytes CNavDTD::HandleStartToken(CToken * 0x03ea4f80) line 1715 + 22 bytes CNavDTD::HandleToken(CNavDTD * const 0x04c759d0, CToken * 0x00000000, nsIParser * 0x04ccaef0) line 881 + 12 bytes CNavDTD::BuildModel(CNavDTD * const 0x04c759d0, nsIParser * 0x04ccaef0, nsITokenizer * 0x04c70920, nsITokenObserver * 0x00000000, nsIContentSink * 0x04ccf490) line 517 + 20 bytes nsParser::BuildModel() line 1965 + 34 bytes nsParser::ResumeParse(int 1, int 1) line 1831 + 11 bytes nsParser::ContinueParsing() line 1483 + 17 bytes nsParser::HandleParserContinueEvent() line 1543 nsParserContinueEvent::HandleEvent() line 232 HandlePLEvent(nsParserContinueEvent * 0x0506d790) line 243 PL_HandleEvent(PLEvent * 0x0506d790) line 590 + 10 bytes PL_ProcessPendingEvents(PLEventQueue * 0x00aae4f0) line 520 + 9 bytes _md_EventReceiverProc(HWND__ * 0x0050051c, unsigned int 49410, unsigned int 0, long 11199728) line 1071 + 9 bytes USER32! 77e71268() 00aae4f0()
Comment 3•23 years ago
|
||
We are looping in the following while loop at line 258 in nsXulWindow.cpp. Looks like a modal dialog bug -- reassigning to danm. while(NS_SUCCEEDED(rv) && mContinueModalLoop) { void* data; PRBool isRealEvent; PRBool processEvent; rv = appShell->GetNativeEvent(isRealEvent, data); if(NS_SUCCEEDED(rv)) { window->ModalEventFilter(isRealEvent, data, &processEvent); if(processEvent) appShell->DispatchNativeEvent(isRealEvent, data); } }
Assignee: morse → danm
Comment 4•22 years ago
|
||
*** Bug 131373 has been marked as a duplicate of this bug. ***
Comment 5•21 years ago
|
||
I believe bug 138748 is a duplicate of this. The summary of 138748 is better than this bug's though, this is not just a cookies+bookmarks problem. Any kind of confimation dialog in conjunction with any kind of drag action triggers this bug. Also check bug 138748, comment 7 for a workaround. Here's another testcase: go to http://nsa2.www.conxion.com/win2k/download.htm and while the page is loading drag the URL from location bar to Tab-bar area (dont release, or "drop"). Once loaded the page pops up a javascript confirmation, causing the deadlock.
Comment 6•20 years ago
|
||
*** Bug 138748 has been marked as a duplicate of this bug. ***
Comment 7•20 years ago
|
||
Marking as dup of older bug 100180. Please reopen if you disagree, thanks! *** This bug has been marked as a duplicate of 100180 ***
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•