bool DocumentLoader::scheduleArchiveLoad(ResourceLoader* loader, const ResourceRequest& request) { if (ArchiveResource* resource = archiveResourceForURL(request.url())) { m_pendingSubstituteResources.set(loader, resource); deliverSubstituteResourcesAfterDelay(); return true; } if (!m_archive) return false; switch (m_archive->type()) { #if ENABLE(WEB_ARCHIVE) case Archive::WebArchive: // WebArchiveDebugMode means we fail loads instead of trying to fetch them from the network if they're not in the archive. return m_frame->settings() && m_frame->settings()->webArchiveDebugModeEnabled() && ArchiveFactory::isArchiveMimeType(responseMIMEType()); #endif #if ENABLE(MHTML) case Archive::MHTML: return true; // Always fail the load for resources not included in the MHTML. #endif default: return false; } }
void DocumentLoader::setDefersLoading(bool defers) { if (m_mainResourceLoader) m_mainResourceLoader->setDefersLoading(defers); setAllDefersLoading(m_subresourceLoaders, defers); setAllDefersLoading(m_plugInStreamLoaders, defers); if (!defers) deliverSubstituteResourcesAfterDelay(); }
bool DocumentLoader::scheduleLoadFallbackResourceFromApplicationCache(ResourceLoader* loader, const ResourceRequest& request, ApplicationCache* cache) { if (!frameLoader()->frame()->settings() || !frameLoader()->frame()->settings()->offlineWebApplicationCacheEnabled()) return false; ApplicationCacheResource* resource; if (!getApplicationCacheFallbackResource(request, resource, cache)) return false; m_pendingSubstituteResources.set(loader, resource); deliverSubstituteResourcesAfterDelay(); return true; }
bool DocumentLoader::scheduleApplicationCacheLoad(ResourceLoader* loader, const ResourceRequest& request, const KURL& originalURL) { if (!frameLoader()->frame()->settings() || !frameLoader()->frame()->settings()->offlineWebApplicationCacheEnabled()) return false; if (request.url() != originalURL) return false; ApplicationCacheResource* resource; if (!shouldLoadResourceFromApplicationCache(request, resource)) return false; m_pendingSubstituteResources.set(loader, resource); deliverSubstituteResourcesAfterDelay(); return true; }
bool DocumentLoader::scheduleArchiveLoad(ResourceLoader* loader, const ResourceRequest& request, const KURL& originalURL) { ArchiveResource* resource = 0; if (request.url() == originalURL) resource = archiveResourceForURL(originalURL); if (!resource) { // WebArchiveDebugMode means we fail loads instead of trying to fetch them from the network if they're not in the archive. bool shouldFailLoad = m_frame->settings()->webArchiveDebugModeEnabled() && ArchiveFactory::isArchiveMimeType(responseMIMEType()); if (!shouldFailLoad) return false; } m_pendingSubstituteResources.set(loader, resource); deliverSubstituteResourcesAfterDelay(); return true; }