您的位置:首页 > 编程语言

WebKit之常用操作代码调用流程

2016-02-22 20:18 381 查看


构造 HTML/XML tokenizer

[HTML]Document::createTokenizer()
[HTML]Document::implicitOpen()
FrameLoader::begin(const KURL&, bool dispatch, SecurityOrigin*)
FrameLoader::receivedFirstData()


Tokenizing HTML/XML document

From the moment, piece by piece of an HTML document is obtained from the network, this is what happens:
[HTML,XML]Tokenizer::write(const SegmentedString& str, bool appendData)
FrameLoader::write(const char* data, int len, bool flush)
FrameLoader::addData(const char* bytes, int length)
FrameLoaderClientQt::committedLoad(DocumentLoader* loader, const char* data, int length)
FrameLoader::committedLoad(DocumentLoader* loader, const char* data, int length)
DocumentLoader::commitLoad(const char* data, int length)
DocumentLoader::receivedData(const char* data, int length)
FrameLoader::receivedData(const char* data, int length)
MainResourceLoader::addData(const char* data, int length, bool allAtOnce)
ResourceLoader::didReceivedData(const char* data, int length, long long received, bool allAtOnce)
ResourceLoader::didReceiveData(ResourceHandle*, const char* data, int len, long long received)


绘制一个push按钮

RenderTheme[Gtk,Wx,Qt]::paintButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&)
RenderTheme::paint(RenderObject*, const RenderObject::PaintInfo&, const IntRect&)
RenderBox::paintBoxDecorations(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paintObject(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paint(RenderObject::PaintInfo& paintInfo, int tx, int ty)
InlineBox::paint(RenderObject::PaintInfo& paintInfo, int tx, int ty)
InlineFlowBox::paint(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RootInlineBox::paint(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderLineBoxList::paint(RenderBoxModelObject* renderer, RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paintContents(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paintObject(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paint(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paintChildren(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paintContents(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paintObject(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paint(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paintChildren(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paintContents(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paintObject(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderBlock::paint(RenderObject::PaintInfo& paintInfo, int tx, int ty)
RenderLayer::paintLayer(RenderLayer*, GraphicsContext*, const IntRect& paintDirtyRect,
PaintRestriction paintRestriction, RenderObject* paintingRoot,
RenderObject::OverlapTestRequestMap* overlapTestRequests, PaintLayerFlags paintFlags)
RenderLayer::paint(GraphicsContext* p, const IntRect& damageRect, PaintRestriction paintRestriction, RenderObject *paintingRoot)
FrameView::paintContents(GraphicsContext* p, const IntRect& rect)
ScrollView::paint(GraphicsContext* p, const IntRect& rect)
</pre><pre class="wiki" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 14px; line-height: 26px; border: 1px solid rgb(215, 215, 215); margin: 1em 1.75em; padding: 0.25em; overflow: auto; background-color: rgb(247, 247, 247);">解码图片


Shown here for the Qt port, might vary a bit for other ports.
ImageDecoderQt::setData(const IncomingData &data, bool allDataReceived)
ImageSource::setData(SharedBuffer* data, bool allDataReceived)
BitmapImage::dataChanged(bool allDataReceived)
Image::setData(PassRefPtr<SharedBuffer> data, bool allDataReceived)
CachedImage::data(PassRefPtr<SharedBuffer> data, bool allDataReceived)
Loader::Host::didReceiveData(SubresourceLoader* loader, const char* data, int size)
SubresourceLoader::didReceiveData(const char* data, int length, long long lengthReceived, bool allAtOnce)
ResourceLoader::didReceiveData(ResourceHandle*, const char* data, int length, int lengthReceived)


G获取网络数据

Shown here for the Qt port, might vary a bit for other ports.
QNetworkReplyHandler::start()
QNetworkReplyHandler(ResourceHandle* handle, LoadMode loadMode)
ResourceHandle::start(Frame* frame)
ResourceHandle::create(const ResourceRequest& request, ResourceHandleClient* client,
Frame* frame, bool defersLoading, bool shouldContentSniff, bool mightDownloadFromHandle)
MainResourceLoader::loadNow(ResourceRequest& r)
MainResourceLoader::load(const ResourceRequest& r, const SubstituteData& substituteData)
DocumentLoader::startLoadingMainResource(unsigned long identifier)
FrameLoader::continueLoadAfterWillSubmitForm(PolicyAction)
FrameLoader::continueLoadAfterNavigationPolicy(const ResourceRequest&, PassRefPtr<FormState> formState, bool shouldContinue)
FrameLoader::callContinueLoadAfterNavigationPolicy(void* argument,
const ResourceRequest& request, PassRefPtr<FormState> formState, bool shouldContinue)
PolicyCheck::call(bool shouldContinue)
FrameLoader::continueAfterNavigationPolicy(PolicyAction policy)
FrameLoaderClientQt::callPolicyFunction(FramePolicyFunction function, PolicyAction action)
FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(FramePolicyFunction function,
const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request,
PassRefPtr<WebCore::FormState>)
FrameLoader::checkNavigationPolicy(const ResourceRequest& request, DocumentLoader* loader,
PassRefPtr<FormState> formState, NavigationPolicyDecisionFunction function, void* argument)
FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType type, PassRefPtr<FormState> prpFormState)
FrameLoader::load(DocumentLoader* newDocumentLoader)
FrameLoader::load(const ResourceRequest& request, const String& frameName, bool lockHistory)
FrameLoader::load(const ResourceRequest& request, bool lockHistory)
QWebFrame::load(const QNetworkRequest &req, QNetworkAccessManager::Operation operation,
const QByteArray &body)
QWebFrame::load(const QUrl &url)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: