Changeset 125265 in webkit


Ignore:
Timestamp:
Aug 10, 2012 2:43:07 AM (12 years ago)
Author:
yurys@chromium.org
Message:

Web Inspector: further ResourceLoader memory instrumentation
https://bugs.webkit.org/show_bug.cgi?id=93692

Reviewed by Vsevolod Vlasov.

Added missing parts to ResourceLoader and its descendants memory instrumentation.
Added special logic for KURL and report the urls where we have them in instrumented classes.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::reportMemoryUsage):

  • dom/Document.cpp:

(WebCore::Document::reportMemoryUsage):

  • dom/MemoryInstrumentation.cpp:

(WebCore::MemoryInstrumentation::addObject):
(WebCore):

  • dom/MemoryInstrumentation.h:

(WebCore):
(MemoryInstrumentation):
(WebCore::MemoryClassInfo::addMember):

  • loader/MainResourceLoader.cpp:

(WebCore::MainResourceLoader::reportMemoryUsage):
(WebCore):

  • loader/MainResourceLoader.h:

(MainResourceLoader):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::reportMemoryUsage):
(WebCore):

  • loader/SubresourceLoader.h:

(SubresourceLoader):

  • loader/SubstituteData.cpp: Copied from Source/WebCore/dom/MemoryInstrumentation.cpp.

(WebCore):
(WebCore::SubstituteData::reportMemoryUsage):

  • loader/SubstituteData.h:

(WebCore):
(SubstituteData):

Location:
trunk/Source/WebCore
Files:
16 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r125251 r125265  
    16061606    loader/SubframeLoader.cpp
    16071607    loader/SubresourceLoader.cpp
     1608    loader/SubstituteData.cpp
    16081609    loader/TextResourceDecoder.cpp
    16091610    loader/TextTrackLoader.cpp
  • trunk/Source/WebCore/ChangeLog

    r125263 r125265  
     12012-08-10  Yury Semikhatsky  <yurys@chromium.org>
     2
     3        Web Inspector: further ResourceLoader memory instrumentation
     4        https://bugs.webkit.org/show_bug.cgi?id=93692
     5
     6        Reviewed by Vsevolod Vlasov.
     7
     8        Added missing parts to ResourceLoader and its descendants memory instrumentation.
     9        Added special logic for KURL and report the urls where we have them in instrumented classes.
     10
     11        * CMakeLists.txt:
     12        * GNUmakefile.list.am:
     13        * Target.pri:
     14        * WebCore.gypi:
     15        * WebCore.vcproj/WebCore.vcproj:
     16        * WebCore.xcodeproj/project.pbxproj:
     17        * css/StyleSheetContents.cpp:
     18        (WebCore::StyleSheetContents::reportMemoryUsage):
     19        * dom/Document.cpp:
     20        (WebCore::Document::reportMemoryUsage):
     21        * dom/MemoryInstrumentation.cpp:
     22        (WebCore::MemoryInstrumentation::addObject):
     23        (WebCore):
     24        * dom/MemoryInstrumentation.h:
     25        (WebCore):
     26        (MemoryInstrumentation):
     27        (WebCore::MemoryClassInfo::addMember):
     28        * loader/MainResourceLoader.cpp:
     29        (WebCore::MainResourceLoader::reportMemoryUsage):
     30        (WebCore):
     31        * loader/MainResourceLoader.h:
     32        (MainResourceLoader):
     33        * loader/SubresourceLoader.cpp:
     34        (WebCore::SubresourceLoader::reportMemoryUsage):
     35        (WebCore):
     36        * loader/SubresourceLoader.h:
     37        (SubresourceLoader):
     38        * loader/SubstituteData.cpp: Copied from Source/WebCore/dom/MemoryInstrumentation.cpp.
     39        (WebCore):
     40        (WebCore::SubstituteData::reportMemoryUsage):
     41        * loader/SubstituteData.h:
     42        (WebCore):
     43        (SubstituteData):
     44
    1452012-08-10  Yoshifumi Inoue  <yosin@chromium.org>
    246
  • trunk/Source/WebCore/GNUmakefile.list.am

    r125203 r125265  
    29882988        Source/WebCore/loader/SubresourceLoader.cpp \
    29892989        Source/WebCore/loader/SubresourceLoader.h \
     2990        Source/WebCore/loader/SubstituteData.cpp \
    29902991        Source/WebCore/loader/SubstituteData.h \
    29912992        Source/WebCore/loader/SubstituteResource.h \
  • trunk/Source/WebCore/Target.pri

    r125203 r125265  
    836836    loader/SubframeLoader.cpp \
    837837    loader/SubresourceLoader.cpp \
     838    loader/SubstituteData.cpp \
    838839    loader/TextResourceDecoder.cpp \
    839840    loader/ThreadableLoader.cpp \
     
    19311932    loader/ResourceLoader.h \
    19321933    loader/SubresourceLoader.h \
     1934    loader/SubstituteData.h \
    19331935    loader/TextResourceDecoder.h \
    19341936    loader/TextTrackLoader.h \
  • trunk/Source/WebCore/WebCore.gypi

    r125263 r125265  
    189189            'loader/SubframeLoader.h',
    190190            'loader/SubresourceLoader.h',
     191            'loader/SubstituteData.cpp',
    191192            'loader/SubstituteData.h',
    192193            'loader/SubstituteResource.h',
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r125203 r125265  
    2763227632                        </File>
    2763327633                        <File
     27634                                RelativePath="..\loader\SubstituteData.cpp"
     27635                                >
     27636                        </File>
     27637                        <File
    2763427638                                RelativePath="..\loader\SubstituteData.h"
    2763527639                                >
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r125203 r125265  
    61456145                F33F053D120B0DA500E5743A /* InspectorDebuggerAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F33F053B120B0DA500E5743A /* InspectorDebuggerAgent.cpp */; };
    61466146                F33F053E120B0DA500E5743A /* InspectorDebuggerAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = F33F053C120B0DA500E5743A /* InspectorDebuggerAgent.h */; };
     6147                F343A70A15D3F56E0032D016 /* SubstituteData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F343A70915D3F56E0032D016 /* SubstituteData.cpp */; };
    61476148                F344C7141125B82C00F26EEE /* InspectorFrontendClient.h in Headers */ = {isa = PBXBuildFile; fileRef = F344C7121125B82C00F26EEE /* InspectorFrontendClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
    61486149                F344C75311294D9D00F26EEE /* InspectorFrontendClientLocal.h in Headers */ = {isa = PBXBuildFile; fileRef = F344C75211294D9D00F26EEE /* InspectorFrontendClientLocal.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    1348813489                F33F053B120B0DA500E5743A /* InspectorDebuggerAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorDebuggerAgent.cpp; sourceTree = "<group>"; };
    1348913490                F33F053C120B0DA500E5743A /* InspectorDebuggerAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorDebuggerAgent.h; sourceTree = "<group>"; };
     13491                F343A70915D3F56E0032D016 /* SubstituteData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SubstituteData.cpp; sourceTree = "<group>"; };
    1349013492                F344C7121125B82C00F26EEE /* InspectorFrontendClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorFrontendClient.h; sourceTree = "<group>"; };
    1349113493                F344C75211294D9D00F26EEE /* InspectorFrontendClientLocal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorFrontendClientLocal.h; sourceTree = "<group>"; };
     
    2056420566                                93E227DF0AF589AD00D48324 /* SubresourceLoader.cpp */,
    2056520567                                656D37300ADBA5DE00A4554D /* SubresourceLoader.h */,
     20568                                F343A70915D3F56E0032D016 /* SubstituteData.cpp */,
    2056620569                                659A7D120B6DB4D9001155B3 /* SubstituteData.h */,
    2056720570                                1A8F6B010DB53006001DB794 /* SubstituteResource.h */,
     
    2806328066                                93E227E40AF589AD00D48324 /* SubresourceLoader.cpp in Sources */,
    2806428067                                7E37EF2E1339208800B29250 /* SubresourceLoaderCF.cpp in Sources */,
     28068                                F343A70A15D3F56E0032D016 /* SubstituteData.cpp in Sources */,
    2806528069                                93B2D8180F9920EE006AE6B2 /* SuddenTermination.mm in Sources */,
    2806628070                                087558C513B4A57D00F49307 /* SurrogatePairAwareTextIterator.cpp in Sources */,
  • trunk/Source/WebCore/css/StyleSheetContents.cpp

    r124884 r125265  
    487487    MemoryClassInfo info(memoryObjectInfo, this, MemoryInstrumentation::CSS);
    488488    info.addMember(m_originalURL);
     489    info.addMember(m_finalURL);
    489490    info.addMember(m_encodingFromCharsetRule);
    490491    info.addVector(m_importRules);
  • trunk/Source/WebCore/dom/Document.cpp

    r125222 r125265  
    60956095    ContainerNode::reportMemoryUsage(memoryObjectInfo);
    60966096    info.addVector(m_customFonts);
     6097    info.addMember(m_url);
     6098    info.addMember(m_baseURL);
     6099    info.addMember(m_baseURLOverride);
     6100    info.addMember(m_baseElementURL);
     6101    info.addMember(m_cookieURL);
     6102    info.addMember(m_firstPartyForCookies);
    60976103    info.addMember(m_documentURI);
    60986104    info.addMember(m_baseTarget);
  • trunk/Source/WebCore/dom/MemoryInstrumentation.cpp

    r124768 r125265  
    3232#include "MemoryInstrumentation.h"
    3333
     34#include "KURL.h"
    3435#include <wtf/text/StringImpl.h>
    3536#include <wtf/text/WTFString.h>
     
    4950}
    5051
     52void MemoryInstrumentation::addObject(const KURL& url, ObjectType objectType)
     53{
     54    if (visited(&url))
     55        return;
     56    addObject(url.string(), objectType);
     57    if (url.innerURL())
     58        addObject(url.innerURL(), objectType);
     59}
     60
    5161} // namespace WebCore
  • trunk/Source/WebCore/dom/MemoryInstrumentation.h

    r124884 r125265  
    4242
    4343template <typename T> class DataRef;
     44class KURL;
    4445class MemoryObjectInfo;
    4546
     
    104105    void addObject(const String&, ObjectType);
    105106    void addObject(const StringImpl*, ObjectType);
     107    void addObject(const KURL&, ObjectType);
    106108    template <typename T> void addInstrumentedObject(const T& t, ObjectType ownerObjectType) { OwningTraits<T>::addInstrumentedObject(this, t, ownerObjectType); }
    107109    template <typename HashMapType> void addHashMap(const HashMapType&, ObjectType, bool contentOnly = false);
     
    208210    void addMember(const AtomicString& string) { m_memoryInstrumentation->addObject((const String&)string, m_objectType); }
    209211    void addMember(const StringImpl* string) { m_memoryInstrumentation->addObject(string, m_objectType); }
     212    void addMember(const KURL& url) { m_memoryInstrumentation->addObject(url, m_objectType); }
    210213
    211214private:
  • trunk/Source/WebCore/loader/MainResourceLoader.cpp

    r123088 r125265  
    545545}
    546546
     547void MainResourceLoader::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
     548{
     549    MemoryClassInfo info(memoryObjectInfo, this, MemoryInstrumentation::Loader);
     550    ResourceLoader::reportMemoryUsage(memoryObjectInfo);
     551    info.addMember(m_initialRequest);
     552    info.addInstrumentedMember(m_substituteData);
     553    info.addMember(m_dataLoadTimer);
     554}
     555
    547556void MainResourceLoader::handleEmptyLoad(const KURL& url, bool forURLScheme)
    548557{
  • trunk/Source/WebCore/loader/MainResourceLoader.h

    r123438 r125265  
    7474        bool isLoadingMultipartContent() const { return m_loadingMultipartContent; }
    7575
     76        virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
     77
    7678    private:
    7779        explicit MainResourceLoader(Frame*);
  • trunk/Source/WebCore/loader/SubresourceLoader.cpp

    r119918 r125265  
    3737#include "Logging.h"
    3838#include "MemoryCache.h"
     39#include "MemoryInstrumentation.h"
    3940#include "SecurityOrigin.h"
    4041#include "SecurityPolicy.h"
     
    128129
    129130    ResourceLoader::cancel();
     131}
     132
     133void SubresourceLoader::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
     134{
     135    MemoryClassInfo info(memoryObjectInfo, this, MemoryInstrumentation::Loader);
     136    ResourceLoader::reportMemoryUsage(memoryObjectInfo);
     137    info.addInstrumentedMember(m_resource);
     138    info.addInstrumentedMember(m_document);
     139    info.addMember(m_requestCountTracker);
    130140}
    131141
  • trunk/Source/WebCore/loader/SubresourceLoader.h

    r119759 r125265  
    4747
    4848    void cancelIfNotFinishing();
     49
     50    virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
    4951
    5052private:
  • trunk/Source/WebCore/loader/SubstituteData.cpp

    r125264 r125265  
    3030
    3131#include "config.h"
     32#include "SubstituteData.h"
     33
    3234#include "MemoryInstrumentation.h"
    33 
    34 #include <wtf/text/StringImpl.h>
    35 #include <wtf/text/WTFString.h>
    3635
    3736namespace WebCore {
    3837
    39 void MemoryInstrumentation::addObject(const String& string, ObjectType objectType)
     38void SubstituteData::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
    4039{
    41     addObject(string.impl(), objectType);
     40    MemoryClassInfo info(memoryObjectInfo, this, MemoryInstrumentation::Loader);
     41    info.addInstrumentedMember(m_content);
     42    info.addMember(m_mimeType);
     43    info.addMember(m_textEncoding);
     44    info.addMember(m_failingURL);
     45    info.addMember(m_responseURL);
    4246}
    4347
    44 void MemoryInstrumentation::addObject(const StringImpl* stringImpl, ObjectType objectType)
    45 {
    46     if (!stringImpl || visited(stringImpl))
    47         return;
    48     countObjectSize(objectType, stringImpl->sizeInBytes());
    4948}
    50 
    51 } // namespace WebCore
  • trunk/Source/WebCore/loader/SubstituteData.h

    r35900 r125265  
    3535namespace WebCore {
    3636
     37    class MemoryObjectInfo;
     38
    3739    class SubstituteData {
    3840    public:
     
    5557        const KURL& failingURL() const { return m_failingURL; }
    5658        const KURL& responseURL() const { return m_responseURL; }
     59
     60        void reportMemoryUsage(MemoryObjectInfo*) const;
    5761       
    5862    private:
Note: See TracChangeset for help on using the changeset viewer.