Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: third_party/WebKit/Source/core/layout/svg/SVGResourcesCache.h

Issue 1331533002: [poc] curve-filter Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix CanvasRenderingContext2D::createPattern crash for #40 Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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 SVG image pattern cache: see 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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698