| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 2  * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 
| 3  * | 3  * | 
| 4  * This library is free software; you can redistribute it and/or | 4  * This library is free software; you can redistribute it and/or | 
| 5  * modify it under the terms of the GNU Library General Public | 5  * modify it under the terms of the GNU Library General Public | 
| 6  * License as published by the Free Software Foundation; either | 6  * License as published by the Free Software Foundation; either | 
| 7  * version 2 of the License, or (at your option) any later version. | 7  * version 2 of the License, or (at your option) any later version. | 
| 8  * | 8  * | 
| 9  * This library is distributed in the hope that it will be useful, | 9  * This library is distributed in the hope that it will be useful, | 
| 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
| 21 #define SVGResourcesCache_h | 21 #define SVGResourcesCache_h | 
| 22 | 22 | 
| 23 #include "core/style/StyleDifference.h" | 23 #include "core/style/StyleDifference.h" | 
| 24 #include "wtf/Allocator.h" | 24 #include "wtf/Allocator.h" | 
| 25 #include "wtf/HashMap.h" | 25 #include "wtf/HashMap.h" | 
| 26 #include "wtf/Noncopyable.h" | 26 #include "wtf/Noncopyable.h" | 
| 27 #include "wtf/OwnPtr.h" | 27 #include "wtf/OwnPtr.h" | 
| 28 | 28 | 
| 29 namespace blink { | 29 namespace blink { | 
| 30 | 30 | 
|  | 31 class Document; | 
| 31 class LayoutObject; | 32 class LayoutObject; | 
| 32 class ComputedStyle; | 33 class ComputedStyle; | 
| 33 class LayoutSVGResourceContainer; | 34 class LayoutSVGResourceContainer; | 
| 34 class SVGResources; | 35 class SVGResources; | 
| 35 | 36 | 
| 36 class SVGResourcesCache { | 37 class SVGResourcesCache { | 
| 37     WTF_MAKE_NONCOPYABLE(SVGResourcesCache); USING_FAST_MALLOC(SVGResourcesCache
    ); | 38     WTF_MAKE_NONCOPYABLE(SVGResourcesCache); USING_FAST_MALLOC(SVGResourcesCache
    ); | 
| 38 public: | 39 public: | 
| 39     SVGResourcesCache(); | 40     SVGResourcesCache(); | 
| 40     ~SVGResourcesCache(); | 41     ~SVGResourcesCache(); | 
| 41 | 42 | 
| 42     static SVGResources* cachedResourcesForLayoutObject(const LayoutObject*); | 43     static SVGResources* cachedResourcesForLayoutObject(const LayoutObject*); | 
| 43 | 44 | 
| 44     // Called from all SVG layoutObjects addChild() methods. | 45     // Called from all SVG layoutObjects addChild() methods. | 
| 45     static void clientWasAddedToTree(LayoutObject*, const ComputedStyle& newStyl
    e); | 46     static void clientWasAddedToTree(LayoutObject*, const ComputedStyle& newStyl
    e); | 
| 46 | 47 | 
| 47     // Called from all SVG layoutObjects removeChild() methods. | 48     // Called from all SVG layoutObjects removeChild() methods. | 
| 48     static void clientWillBeRemovedFromTree(LayoutObject*); | 49     static void clientWillBeRemovedFromTree(LayoutObject*); | 
| 49 | 50 | 
| 50     // Called from all SVG layoutObjects destroy() methods - except for LayoutSV
    GResourceContainer. | 51     // Called from all SVG layoutObjects destroy() methods - except for LayoutSV
    GResourceContainer. | 
| 51     static void clientDestroyed(LayoutObject*); | 52     static void clientDestroyed(LayoutObject*); | 
| 52 | 53 | 
| 53     // Called from all SVG layoutObjects layout() methods. | 54     // Called from all SVG layoutObjects layout() methods. | 
| 54     static void clientLayoutChanged(LayoutObject*); | 55     static void clientLayoutChanged(LayoutObject*); | 
| 55 | 56 | 
| 56     // Called from all SVG layoutObjects styleDidChange() methods. | 57     // Called from all SVG layoutObjects styleDidChange() methods. | 
| 57     static void clientStyleChanged(LayoutObject*, StyleDifference, const Compute
    dStyle& newStyle); | 58     static void clientStyleChanged(LayoutObject*, StyleDifference, const Compute
    dStyle& newStyle); | 
| 58 | 59 | 
|  | 60     // A big hammer used to clear out the SCG pattern cache: refer to crbug.com/
    531258 | 
|  | 61     static void invalidateAllResources(Document&); | 
|  | 62 | 
| 59 private: | 63 private: | 
| 60     void addResourcesFromLayoutObject(LayoutObject*, const ComputedStyle&); | 64     void addResourcesFromLayoutObject(LayoutObject*, const ComputedStyle&); | 
| 61     void removeResourcesFromLayoutObject(LayoutObject*); | 65     void removeResourcesFromLayoutObject(LayoutObject*); | 
| 62 | 66 | 
| 63     typedef HashMap<const LayoutObject*, OwnPtr<SVGResources>> CacheMap; | 67     typedef HashMap<const LayoutObject*, OwnPtr<SVGResources>> CacheMap; | 
| 64     CacheMap m_cache; | 68     CacheMap m_cache; | 
| 65 }; | 69 }; | 
| 66 | 70 | 
| 67 } | 71 } | 
| 68 | 72 | 
| 69 #endif | 73 #endif | 
| OLD | NEW | 
|---|