The frame is not completed until all the outstanding requests are finished. In loader.cpp load(...), it calls incrementRequestCount(). decrementRequestCount() will be called when a resource is fulled loaded or failed. In Loader::Host::servePendingRequests(..), SubresourceLoader::create(..) calls into ResourceLoader::load(..). If ResourceHandle::create(..) fails, it still returns true. If this ever happen, the page will always think that there is outstanding requests. I don't have a way to reproduce it. But if you can hard code ResourceHandle::start(..) to return false, you can see the bug. I think the return of ResourceLoader::load(..) should be "m_handle != NULL".