HTML parser

来源:互联网 发布:python窗口程序 编辑:程序博客网 时间:2024/05/01 20:31

1. receive data to parser

for chromium stack
WebUrlLoaderClient::didReceiveData
ResourceLoader::didReceiveData
MainResourceLoader::didReceiveData
ResourceLoader::didReceiveData
MainResourceLoader::addData
DocumentLoader::receivedData
DocumentLoader::commitLoad 
FrameLoaderClient::committedLoad (FrameLoaderClientAndroid.cpp)
//also call ResourceLoader::didReceiveResponse
DocumentLoader::commitData(also call DocumentWrite:setEncoding to create the document.)
DocumentWriter::addData
DecodedDataDocumentParser::appendBytes
HTMLDocumentParser::append
HTMLDocumentParser::pumpTokenizerIfPossible
HTMLDocumentParser::pumpTokenizer
HTMLTokenizer::nextToken


2. Lexical Parsing

HTMLTokenizer::nextToken

parser state



3. Grammer Parsing

HTMLDocumentParser::pumpTokenizer


4. Script Parsing

void HTMLDocumentParser::pumpTokenizer(SynchronousMode mode)

bool HTMLDocumentParser::canTakeNextToken(SynchronousMode mode, PumpSession& session)

bool HTMLDocumentParser::runScriptsForPausedTreeBuilder() //m_treeBuilder->setPaused(!shouldContinueParsing);




原创粉丝点击