Changeset 167743 in webkit


Ignore:
Timestamp:
Apr 23, 2014 9:11:50 PM (10 years ago)
Author:
akling@apple.com
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:
Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r167741 r167743  
     12014-04-23  Andreas Kling  <akling@apple.com>
     2
     3        CachedResourceLoader hoards URLs indefinitely for no good reason.
     4        <https://webkit.org/b/132102>
     5        <rdar://problem/16708265>
     6
     7        Since we don't care about CachedResourceLoader::m_validatedURL's after
     8        the Document has finished dispatching its initial load event, clear the
     9        set at that point, and don't add any new URLs to it.
     10
     11        Reviewed by Anders Carlsson.
     12
     13        * dom/Document.cpp:
     14        (WebCore::Document::dispatchWindowLoadEvent):
     15        * loader/cache/CachedResourceLoader.cpp:
     16        (WebCore::CachedResourceLoader::requestResource):
     17        (WebCore::CachedResourceLoader::documentDidFinishLoadEvent):
     18        * loader/cache/CachedResourceLoader.h:
     19
    1202014-04-23  Andreas Kling  <akling@apple.com>
    221
  • trunk/Source/WebCore/dom/Document.cpp

    r167684 r167743  
    36983698    m_domWindow->dispatchLoadEvent();
    36993699    m_loadEventFinished = true;
     3700    if (m_cachedResourceLoader)
     3701        m_cachedResourceLoader->documentDidFinishLoadEvent();
    37003702}
    37013703
  • trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp

    r167598 r167743  
    478478    }
    479479
    480     if (!request.resourceRequest().url().protocolIsData())
     480    if (document() && !document()->loadEventFinished() && !request.resourceRequest().url().protocolIsData())
    481481        m_validatedURLs.add(request.resourceRequest().url());
    482482
     
    484484    m_documentResources.set(resource->url(), resource);
    485485    return resource;
     486}
     487
     488void CachedResourceLoader::documentDidFinishLoadEvent()
     489{
     490    m_validatedURLs.clear();
    486491}
    487492
  • trunk/Source/WebCore/loader/cache/CachedResourceLoader.h

    r166992 r167743  
    133133
    134134    static const ResourceLoaderOptions& defaultCachedResourceOptions();
     135
     136    void documentDidFinishLoadEvent();
    135137
    136138private:
Note: See TracChangeset for help on using the changeset viewer.