webkit 常用操作代码调用流程

来源:互联网 发布:电器设计软件 编辑:程序博客网 时间:2024/05/16 11:37

构造 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)
解码图片

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)
原创粉丝点击