wiki:CodePaths

Version 4 (modified by ariya@webkit.org, 10 years ago) (diff)

image decoding

Code Paths for Common Operations

Constructing HTML tokenizer

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

Tokenizing HTML document

From the moment, piece by piece of an HTML document is obtained from the network, this is what happens:

  HTMLTokenizer::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<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)