2012년 11월 15일 목요일

[WebKit] Render code flow when you set src on img tag.

 Aside from setting value via idl interface, rendering has its own flow.

As you can see below, from the loader, RenderObject has callback for its resource change. Then, it will compare the width and height if it really has been changed and trigger setNeedsLayout with relevant value.

1   0x7fa41cac6cd8 WebCore::RenderObject::setNeedsLayout(bool, WebCore::MarkingBehavior)
2   0x7fa41d2d2c47 WebCore::RenderImage::imageDimensionsChanged(bool, WebCore::IntRect const*)
3   0x7fa41d2d2926 WebCore::RenderImage::imageChanged(void*, WebCore::IntRect const*)
4   0x7fa41d346911 WebCore::RenderObject::imageChanged(WebCore::CachedImage*, WebCore::IntRect const*)
5   0x7fa41cf80c42 WebCore::CachedImage::didAddClient(WebCore::CachedResourceClient*)
6   0x7fa41cf869e3 WebCore::CachedResource::addClient(WebCore::CachedResourceClient*)
7   0x7fa41d2d59d9 WebCore::RenderImageResource::setCachedImage(WebCore::CachedImage*)
8   0x7fa41cf2baed WebCore::ImageLoader::updateRenderer()
9   0x7fa41cf2b6a1 WebCore::ImageLoader::notifyFinished(WebCore::CachedResource*)
10  0x7fa41ccef60e WebCore::HTMLImageLoader::notifyFinished(WebCore::CachedResource*)
11  0x7fa41cf861d0 WebCore::CachedResource::checkNotify()
12  0x7fa41cf81eb9 WebCore::CachedImage::data(WTF::PassRefPtr<WebCore::ResourceBuffer>, bool)
13  0x7fa41cf48ca2 WebCore::SubresourceLoader::didFinishLoading(double)
14  0x7fa41cf43fd1 WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*, double)

댓글 없음:

댓글 쓰기