Bug 14773 - REGRESSION (r24630): ASSERT_NOT_REACHED in DOMHTMLInputElement::name on Windows
Summary: REGRESSION (r24630): ASSERT_NOT_REACHED in DOMHTMLInputElement::name on Windows
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit API (show other bugs)
Version: 523.x (Safari 3)
Hardware: PC Windows XP
: P1 Major
Assignee: Adam Roben (:aroben)
URL:
Keywords: PlatformOnly, Regression
: 14785 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-07-26 22:11 PDT by Matt Lilek
Modified: 2007-07-27 09:26 PDT (History)
3 users (show)

See Also:


Attachments
user.dmp (29.85 KB, application/octet-stream)
2007-07-26 23:20 PDT, Matt Lilek
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Lilek 2007-07-26 22:11:34 PDT
r24630 caused any change to the address bar (whether manual or automatically on startup) in Safari 3.0.2 Beta on Windows to hit the ASSERT_NOT_REACHED in DOMHTMLInputElement::name.

<http://trac.webkit.org/projects/webkit/changeset/24630>
<http://trac.webkit.org/projects/webkit/browser/trunk/WebKit/win/DOMHTMLClasses.cpp?rev=24630#L1023>
Comment 1 Matt Lilek 2007-07-26 23:15:52 PDT
 	WebKit_debug.dll!DOMHTMLInputElement::name(wchar_t * * __formal=0x0012d394)  Line 1023 + 0x19 bytes	C++
 	Safari.exe!004c1ebd() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for Safari.exe]	
 	Safari.exe!004baf63() 	
 	Safari.exe!004bab5f() 	
 	Safari.exe!004048f8() 	
 	user32.dll!7e418724() 	
 	user32.dll!7e418806() 	
 	user32.dll!7e41b88b() 	
 	user32.dll!7e41b8f3() 	
 	Safari.exe!004c1c4b() 	
>	WebKit_debug.dll!WebEditorClient::textDidChangeInTextField(WebCore::Element * e=0x016f3b60)  Line 342 + 0x2d bytes	C++
 	WebKit_debug.dll!WebCore::Frame::textDidChangeInTextField(WebCore::Element * e=0x016f3b60)  Line 1014 + 0x31 bytes	C++
 	WebKit_debug.dll!WebCore::RenderTextControl::subtreeHasChanged()  Line 530	C++
 	WebKit_debug.dll!WebCore::HTMLTextFieldInnerTextElement::defaultEventHandler(WebCore::Event * evt=0x016f7e10)  Line 67	C++
 	WebKit_debug.dll!WebCore::EventTargetNode::dispatchGenericEvent(WTF::PassRefPtr<WebCore::Event> e={...}, int & __formal=-858993460, bool tempEvent=true)  Line 269 + 0x38 bytes	C++
 	WebKit_debug.dll!WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event> e={...}, int & ec=-858993460, bool tempEvent=true, WebCore::EventTarget * target=0x016f52f4)  Line 308 + 0x1a bytes	C++
 	WebKit_debug.dll!WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event> e={...}, int & ec=-858993460, bool tempEvent=true)  Line 292 + 0x43 bytes	C++
 	WebKit_debug.dll!WebCore::dispatchEditableContentChangedEvents(const WebCore::EditCommand & command={...})  Line 771	C++
 	WebKit_debug.dll!WebCore::Editor::appliedEditing(WTF::PassRefPtr<WebCore::EditCommand> cmd={...})  Line 777 + 0xe bytes	C++
 	WebKit_debug.dll!WebCore::EditCommand::apply()  Line 102	C++
 	WebKit_debug.dll!WebCore::applyCommand(WTF::PassRefPtr<WebCore::EditCommand> command={...})  Line 227	C++
 	WebKit_debug.dll!WebCore::TypingCommand::insertText(WebCore::Document * document=0x016ee5f0, const WebCore::String & text={...}, const WebCore::Selection & selectionForInsertion={...}, bool selectInsertedText=false)  Line 151 + 0x14 bytes	C++
 	WebKit_debug.dll!WebCore::Editor::insertTextWithoutSendingTextEvent(const WebCore::String & text={...}, bool selectInsertedText=false, WebCore::Event * triggeringEvent=0x016f5588)  Line 1426 + 0x20 bytes	C++
 	WebKit_debug.dll!WebCore::EventHandler::defaultTextInputEventHandler(WebCore::TextEvent * event=0x016f5588)  Line 1694 + 0x1b bytes	C++
 	WebKit_debug.dll!WebCore::EventTargetNode::defaultEventHandler(WebCore::Event * event=0x016f5588)  Line 606	C++
 	WebKit_debug.dll!WebCore::HTMLInputElement::defaultEventHandler(WebCore::Event * evt=0x016f5588)  Line 1140	C++
 	WebKit_debug.dll!WebCore::EventTargetNode::dispatchGenericEvent(WTF::PassRefPtr<WebCore::Event> e={...}, int & __formal=-858993460, bool tempEvent=true)  Line 267 + 0x38 bytes	C++
 	WebKit_debug.dll!WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event> e={...}, int & ec=-858993460, bool tempEvent=true, WebCore::EventTarget * target=0x016f3b8c)  Line 308 + 0x1a bytes	C++
 	WebKit_debug.dll!WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event> e={...}, int & ec=-858993460, bool tempEvent=true)  Line 292 + 0x43 bytes	C++
 	WebKit_debug.dll!WebCore::EventHandler::handleTextInputEvent(const WebCore::String & text={...}, WebCore::Event * underlyingEvent=0x016f6040, bool isLineBreak=false, bool isBackTab=false)  Line 1654 + 0x2b bytes	C++
 	WebKit_debug.dll!WebCore::Editor::insertText(const WebCore::String & text={...}, WebCore::Event * triggeringEvent=0x016f6040)  Line 1392	C++
 	WebKit_debug.dll!WebView::handleEditingKeyboardEvent(WebCore::KeyboardEvent * evt=0x016f6040)  Line 983 + 0x27 bytes	C++
 	WebKit_debug.dll!WebEditorClient::handleKeypress(WebCore::KeyboardEvent * evt=0x016f6040)  Line 596 + 0xf bytes	C++
 	WebKit_debug.dll!WebCore::Editor::handleKeypress(WebCore::KeyboardEvent * event=0x016f6040)  Line 114 + 0x13 bytes	C++
 	WebKit_debug.dll!WebCore::EventHandler::defaultKeyboardEventHandler(WebCore::KeyboardEvent * event=0x016f6040)  Line 1446	C++
 	WebKit_debug.dll!WebCore::EventTargetNode::defaultEventHandler(WebCore::Event * event=0x016f6040)  Line 594	C++
 	WebKit_debug.dll!WebCore::HTMLInputElement::defaultEventHandler(WebCore::Event * evt=0x016f6040)  Line 1140	C++
 	WebKit_debug.dll!WebCore::EventTargetNode::dispatchGenericEvent(WTF::PassRefPtr<WebCore::Event> e={...}, int & __formal=-858993460, bool tempEvent=true)  Line 267 + 0x38 bytes	C++
 	WebKit_debug.dll!WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event> e={...}, int & ec=-858993460, bool tempEvent=true, WebCore::EventTarget * target=0x016f3b8c)  Line 308 + 0x1a bytes	C++
 	WebKit_debug.dll!WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event> e={...}, int & ec=-858993460, bool tempEvent=true)  Line 292 + 0x43 bytes	C++
 	WebKit_debug.dll!WebCore::EventHandler::keyEvent(const WebCore::PlatformKeyboardEvent & initialKeyEvent={...})  Line 1439	C++
 	WebKit_debug.dll!WebView::keyDown(unsigned int virtualKeyCode=65, long keyData=1966081)  Line 1010 + 0x13 bytes	C++
 	WebKit_debug.dll!WebViewWndProc(HWND__ * hWnd=0x0020038e, unsigned int message=256, unsigned int wParam=65, long lParam=1966081)  Line 1193 + 0x10 bytes	C++
 	user32.dll!7e418724() 	
 	user32.dll!7e418806() 	
 	user32.dll!7e41c623() 	
 	user32.dll!7e41c649() 	
 	comctl32.dll!773e1b57() 	
 	comctl32.dll!773e1eaa() 	
 	comctl32.dll!773e206c() 	
 	comctl32.dll!7744e0c2() 	
 	comctl32.dll!773e1eaa() 	
 	comctl32.dll!773e20cf() 	
 	user32.dll!7e418724() 	
 	user32.dll!7e418806() 	
 	user32.dll!7e4189bd() 	
 	user32.dll!7e418a00() 	
 	Safari.exe!0047ea4b() 	
 	Safari.exe!0047b61b() 	
 	Safari.exe!0047bc65() 	
 	Safari.exe!004c7695() 	
 	kernel32.dll!7c816ff7() 	
Comment 2 Matt Lilek 2007-07-26 23:20:02 PDT
Created attachment 15697 [details]
user.dmp
Comment 3 Matt Lilek 2007-07-26 23:22:15 PDT
Just to clarify - if you have your home page set to load on startup, you'll hit this assert when starting up. If you have the "New windows open with.." behavior set to "Empty page", Safari will start normally (allowing you to attach a debugger) but as soon as you type anything into the address bar, you hit the assert.
Comment 4 Adam Roben (:aroben) 2007-07-26 23:26:20 PDT
The problem was caused by this change in r24630:

-interface IDOMHTMLInputElement : IDOMElement
+interface IDOMHTMLInputElement : IDOMHTMLElement

This changed the vtable for IDOMHTMLInputElement, causing Safari to call IDOMHTMLInputElement::name when it meant to be calling IDOMHTMLInputElement::value
Comment 5 Adam Roben (:aroben) 2007-07-26 23:53:19 PDT
I'm working on a fix for this.
Comment 6 Adam Roben (:aroben) 2007-07-27 00:26:18 PDT
Fixed in r24672
Comment 7 Matt Lilek 2007-07-27 09:26:11 PDT
*** Bug 14785 has been marked as a duplicate of this bug. ***