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

Reply via email to