[webkit-dev] Question about WML support

巴丁-Partin xytsoft at gmail.com
Tue Mar 23 20:17:20 PDT 2010

Is that anyone working with WML in webkit? 
I use webkit to open the wml page, meet a fata error. 
In file:"WebCore\rendering\RenderTextControlSingleLine.cpp",the "inputElement()" return NULL value,that cause "inputElement()->isSearchField()" access memory error. 
I trace into "InputElement.cpp", find that in "toInputElement()":"element->hasTagName(WMLNames::inputTag)",the "hasTagName()" return "false". 

Related wml code is:
"<input type="text" name="search_phone" emptyok="true" value="" />"

And the current node("element") is "input".

Folloing is the call tack:
WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded()  Line443 + 0x14 Bytes	C++
WebCore::RenderTextControlSingleLine::updateFromElement()  Line473	C++
WebCore::WMLInputElement::attach()  Line236 + 0x26 Bytes	C++
WebCore::XMLTokenizer::startElementNs(const unsigned char * xmlLocalName=0x0be22a83, const unsigned char * xmlPrefix=0x00000000, const unsigned char * xmlURI=0x00000000, int nb_namespaces=0, const unsigned char * * libxmlNamespaces=0x00000000, int nb_attributes=4, int nb_defaulted=0, const unsigned char * * libxmlAttributes=0x0be23ed0)  Line766 + 0x26 Bytes	C++
WebCore::startElementNsHandler(void * closure=0x0bdabc48, const unsigned char * localname=0x0be22a83, const unsigned char * prefix=0x00000000, const unsigned char * uri=0x00000000, int nb_namespaces=0, const unsigned char * * namespaces=0x00000000, int nb_attributes=4, int nb_defaulted=0, const unsigned char * * libxmlAttributes=0x0be23ed0)  Line1001	C++
xmlParseStartTag2(_xmlParserCtxt * ctxt=0x0bdabc48, const unsigned char * * pref=0x0eb3d5d8, const unsigned char * * URI=0x0eb3d5cc, int * tlen=0x0eb3d650)  Line9002 + 0x37 Bytes	C
xmlParseTryOrFinish(_xmlParserCtxt * ctxt=0x0bdabc48, int terminate=0)  Line10714 + 0x1b Bytes	C
xmlParseChunk(_xmlParserCtxt * ctxt=0x0bdabc48, const char * chunk=0x18a2b5ca, int size=2614, int terminate=0)  Line11446 + 0xd Bytes	C
WebCore::XMLTokenizer::doWrite(const WebCore::String & parseString={...})  Line628 + 0x22 Bytes	C++
WebCore::XMLTokenizer::write(const WebCore::SegmentedString & s={...}, bool __formal=true)  Line107 + 0x18 Bytes	C++
WebCore::FrameLoader::write(const char * str=0x0be108db, int len=1419, bool flush=false)  Line1035 + 0x27 Bytes	C++
WebCore::FrameLoader::addData(const char * bytes=0x0be108db, int length=1419)  Line1824	C++
WebKit::FrameLoaderClient::committedLoad(WebCore::DocumentLoader * loader=0x187fab80, const char * data=0x0be108db, int length=1419)  Line205	C++
WebCore::FrameLoader::committedLoad(WebCore::DocumentLoader * loader=0x187fab80, const char * data=0x0be108db, int length=1419)  Line3626 + 0x26 Bytes	C++
WebCore::DocumentLoader::commitLoad(const char * data=0x0be108db, int length=1419)  Line363	C++
WebCore::DocumentLoader::receivedData(const char * data=0x0be108db, int length=1419)  Line375	C++
WebCore::FrameLoader::receivedData(const char * data=0x0be108db, int length=1419)  Line2429	C++
WebCore::MainResourceLoader::addData(const char * data=0x0be108db, int length=1419, bool allAtOnce=false)  Line149	C++
WebCore::ResourceLoader::didReceiveData(const char * data=0x0be108db, int length=1419, __int64 lengthReceived=0, bool allAtOnce=false)  Line257 + 0x1c Bytes	C++
WebCore::MainResourceLoader::didReceiveData(const char * data=0x0be108db, int length=1419, __int64 lengthReceived=0, bool allAtOnce=false)  Line351	C++
WebCore::ResourceLoader::didReceiveData(WebCore::ResourceHandle * __formal=0x18850ff0, const char * data=0x0be108db, int length=1419, int lengthReceived=0)  Line411 + 0x1f Bytes	C++
WebCore::writeCallback(void * ptr=0x0be108db, unsigned int size=1, unsigned int nmemb=1419, void * data=0x18850ff0)  Line144 + 0x31 Bytes	C++
Curl_client_write(connectdata * conn=0x0bda7848, int type=1, char * ptr=0x0be108db, unsigned int len=1419)  Line418 + 0x21 Bytes	C
readwrite_data(SessionHandle * data=0x0be10310, connectdata * conn=0x0bda7848, SingleRequest * k=0x0be10324, int * didwhat=0x0eb3ea58, char * done=0x0eb3ebc3)  Line690 + 0x16 Bytes	C
Curl_readwrite(connectdata * conn=0x0bda7848, char * done=0x0eb3ebc3)  Line1683 + 0x19 Bytes	C
multi_runsingle(Curl_multi * multi=0x0bd89860, Curl_one_easy * easy=0x0bda5230)  Line1298 + 0x10 Bytes	C
curl_multi_perform(void * multi_handle=0x0bd89860, int * running_handles=0x0eb3ee98)  Line1516 + 0xd Bytes	C
WebCore::ResourceHandleManager::downloadTimerCallback(WebCore::Timer<WebCore::ResourceHandleManager> * timer=0x16d2fec0)  Line302 + 0x13 Bytes	C++
WebCore::Timer<WebCore::ResourceHandleManager>::fired()  Line93 + 0x37 Bytes	C++
WebCore::ThreadTimers::fireTimers(double fireTime=1269398709.1910868, const WTF::Vector<WebCore::TimerBase *,0> & firingTimers={...})  Line113 + 0xf Bytes	C++
WebCore::ThreadTimers::sharedTimerFiredInternal()  Line145	C++
WebCore::ThreadTimers::sharedTimerFired()  Line125	C++
WebCore::WebKitTimer::onnotify()  Line65 + 0x8 Bytes	C++
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20100324/533cdc29/attachment.html>

More information about the webkit-dev mailing list