CachedResource* DocLoader::requestResource(CachedResource::Type type, const String& url, const String& charset, bool isPreload) { KURL fullURL = m_doc->completeURL(url); if (!fullURL.isValid() || !canRequest(type, fullURL)) return 0; if (cache()->disabled()) { DocumentResourceMap::iterator it = m_documentResources.find(fullURL.string()); if (it != m_documentResources.end()) { it->second->setDocLoader(0); m_documentResources.remove(it); } } checkForReload(fullURL); CachedResource* resource = cache()->requestResource(this, type, fullURL, charset, isPreload); if (resource) { // Check final URL of resource to catch redirects. // See <https://bugs.webkit.org/show_bug.cgi?id=21963>. if (!canRequest(type, KURL(resource->url()))) return 0; m_documentResources.set(resource->url(), resource); checkCacheObjectStatus(resource); } return resource; }
CachedResource* DocLoader::requestResource(CachedResource::Type type, const String& url, const String* charset, bool skipCanLoadCheck, bool sendResourceLoadCallbacks) { KURL fullURL = m_doc->completeURL(url.deprecatedString()); if (cache()->disabled()) { HashMap<String, CachedResource*>::iterator it = m_docResources.find(fullURL.url()); if (it != m_docResources.end()) { it->second->setDocLoader(0); m_docResources.remove(it); } } if (m_frame && m_frame->loader()->isReloading()) setCachePolicy(CachePolicyReload); checkForReload(fullURL); CachedResource* resource = cache()->requestResource(this, type, fullURL, charset, skipCanLoadCheck, sendResourceLoadCallbacks); if (resource) { m_docResources.set(resource->url(), resource); checkCacheObjectStatus(resource); } return resource; }