void InspectorApplicationCacheAgent::getFramesWithManifests( ErrorString*, std::unique_ptr< protocol::Array<protocol::ApplicationCache::FrameWithManifest>>* result) { *result = protocol::Array<protocol::ApplicationCache::FrameWithManifest>::create(); for (LocalFrame* frame : *m_inspectedFrames) { DocumentLoader* documentLoader = frame->loader().documentLoader(); if (!documentLoader) return; ApplicationCacheHost* host = documentLoader->applicationCacheHost(); ApplicationCacheHost::CacheInfo info = host->applicationCacheInfo(); String manifestURL = info.m_manifest.getString(); if (!manifestURL.isEmpty()) { std::unique_ptr<protocol::ApplicationCache::FrameWithManifest> value = protocol::ApplicationCache::FrameWithManifest::create() .setFrameId(IdentifiersFactory::frameId(frame)) .setManifestURL(manifestURL) .setStatus(static_cast<int>(host->getStatus())) .build(); (*result)->addItem(std::move(value)); } } }
void InspectorApplicationCacheAgent::updateApplicationCacheStatus(LocalFrame* frame) { DocumentLoader* documentLoader = frame->loader().documentLoader(); if (!documentLoader) return; ApplicationCacheHost* host = documentLoader->applicationCacheHost(); ApplicationCacheHost::Status status = host->getStatus(); ApplicationCacheHost::CacheInfo info = host->applicationCacheInfo(); String manifestURL = info.m_manifest.getString(); String frameId = IdentifiersFactory::frameId(frame); frontend()->applicationCacheStatusUpdated(frameId, manifestURL, static_cast<int>(status)); }