PassRefPtr<LegacyWebArchive> LegacyWebArchive::create(Frame* frame) { ASSERT(frame); DocumentLoader* documentLoader = frame->loader()->documentLoader(); if (!documentLoader) return 0; Vector<PassRefPtr<LegacyWebArchive> > subframeArchives; unsigned children = frame->tree()->childCount(); for (unsigned i = 0; i < children; ++i) { RefPtr<LegacyWebArchive> childFrameArchive = create(frame->tree()->child(i)); if (childFrameArchive) subframeArchives.append(childFrameArchive.release()); } Vector<PassRefPtr<ArchiveResource> > subresources; documentLoader->getSubresources(subresources); return create(documentLoader->mainResource(), subresources, subframeArchives); }