CodePaths – WebKit

来源:百度文库 编辑:神马文学网 时间:2024/04/29 12:52:09
Register | Lost Password | Login
  • Wiki
  • Timeline
  • Browse Source
  • Search

Context Navigation

  • Start Page
  • Index
  • History
  • Last Change

Code Paths for Common Operations¶

Constructing 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)

Painting a push button¶

  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)

Decoding image data¶

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 data, bool allDataReceived)CachedImage::data(PassRefPtr 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)

Get data from network¶

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, bool shouldContinue)FrameLoader::callContinueLoadAfterNavigationPolicy(void* argument,const ResourceRequest& request, PassRefPtr 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)FrameLoader::checkNavigationPolicy(const ResourceRequest& request, DocumentLoader* loader,PassRefPtr formState, NavigationPolicyDecisionFunction function, void* argument)FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType type, PassRefPtr 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)

Download in other formats:

  • Plain Text

Powered by Trac 0.11.7
By Edgewall Software.

Hosted by Apple