Title: [167743] trunk/Source/WebCore
- Revision
- 167743
- Author
- akl...@apple.com
- Date
- 2014-04-23 21:11:50 -0700 (Wed, 23 Apr 2014)
Log Message
CachedResourceLoader hoards URLs indefinitely for no good reason.
<https://webkit.org/b/132102>
<rdar://problem/16708265>
Since we don't care about CachedResourceLoader::m_validatedURL's after
the Document has finished dispatching its initial load event, clear the
set at that point, and don't add any new URLs to it.
Reviewed by Anders Carlsson.
* dom/Document.cpp:
(WebCore::Document::dispatchWindowLoadEvent):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::documentDidFinishLoadEvent):
* loader/cache/CachedResourceLoader.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (167742 => 167743)
--- trunk/Source/WebCore/ChangeLog 2014-04-24 03:56:09 UTC (rev 167742)
+++ trunk/Source/WebCore/ChangeLog 2014-04-24 04:11:50 UTC (rev 167743)
@@ -1,5 +1,24 @@
2014-04-23 Andreas Kling <akl...@apple.com>
+ CachedResourceLoader hoards URLs indefinitely for no good reason.
+ <https://webkit.org/b/132102>
+ <rdar://problem/16708265>
+
+ Since we don't care about CachedResourceLoader::m_validatedURL's after
+ the Document has finished dispatching its initial load event, clear the
+ set at that point, and don't add any new URLs to it.
+
+ Reviewed by Anders Carlsson.
+
+ * dom/Document.cpp:
+ (WebCore::Document::dispatchWindowLoadEvent):
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::requestResource):
+ (WebCore::CachedResourceLoader::documentDidFinishLoadEvent):
+ * loader/cache/CachedResourceLoader.h:
+
+2014-04-23 Andreas Kling <akl...@apple.com>
+
Canvas cache of clean URLs can grow without bounds.
<https://webkit.org/b/132091>
<rdar://problem/16695665>
Modified: trunk/Source/WebCore/dom/Document.cpp (167742 => 167743)
--- trunk/Source/WebCore/dom/Document.cpp 2014-04-24 03:56:09 UTC (rev 167742)
+++ trunk/Source/WebCore/dom/Document.cpp 2014-04-24 04:11:50 UTC (rev 167743)
@@ -3697,6 +3697,8 @@
return;
m_domWindow->dispatchLoadEvent();
m_loadEventFinished = true;
+ if (m_cachedResourceLoader)
+ m_cachedResourceLoader->documentDidFinishLoadEvent();
}
void Document::enqueueWindowEvent(PassRefPtr<Event> event)
Modified: trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp (167742 => 167743)
--- trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp 2014-04-24 03:56:09 UTC (rev 167742)
+++ trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp 2014-04-24 04:11:50 UTC (rev 167743)
@@ -477,7 +477,7 @@
}
}
- if (!request.resourceRequest().url().protocolIsData())
+ if (document() && !document()->loadEventFinished() && !request.resourceRequest().url().protocolIsData())
m_validatedURLs.add(request.resourceRequest().url());
ASSERT(resource->url() == url.string());
@@ -485,6 +485,11 @@
return resource;
}
+void CachedResourceLoader::documentDidFinishLoadEvent()
+{
+ m_validatedURLs.clear();
+}
+
CachedResourceHandle<CachedResource> CachedResourceLoader::revalidateResource(const CachedResourceRequest& request, CachedResource* resource)
{
ASSERT(resource);
Modified: trunk/Source/WebCore/loader/cache/CachedResourceLoader.h (167742 => 167743)
--- trunk/Source/WebCore/loader/cache/CachedResourceLoader.h 2014-04-24 03:56:09 UTC (rev 167742)
+++ trunk/Source/WebCore/loader/cache/CachedResourceLoader.h 2014-04-24 04:11:50 UTC (rev 167743)
@@ -133,6 +133,8 @@
static const ResourceLoaderOptions& defaultCachedResourceOptions();
+ void documentDidFinishLoadEvent();
+
private:
explicit CachedResourceLoader(DocumentLoader*);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes