= 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 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) }}}