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

Side by Side Diff: third_party/WebKit/Source/core/css/resolver/ElementStyleResources.h

Issue 2490163002: Reland of "Tracking reference filter mutation via SVGElementProxy" (Closed)
Patch Set: Fix double observer unregistration; simplify scope selection; add tests Created 4 years, 1 month 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
4 * All rights reserved. 4 * All rights reserved.
5 * Copyright (C) 2013 Google Inc. All rights reserved. 5 * Copyright (C) 2013 Google Inc. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 24 matching lines...) Expand all
35 namespace blink { 35 namespace blink {
36 36
37 class CSSCursorImageValue; 37 class CSSCursorImageValue;
38 class CSSImageGeneratorValue; 38 class CSSImageGeneratorValue;
39 class CSSImageSetValue; 39 class CSSImageSetValue;
40 class CSSImageValue; 40 class CSSImageValue;
41 class CSSURIValue; 41 class CSSURIValue;
42 class CSSValue; 42 class CSSValue;
43 class ComputedStyle; 43 class ComputedStyle;
44 class Document; 44 class Document;
45 class FilterOperation; 45 class SVGElementProxy;
46 class StyleImage; 46 class StyleImage;
47 class StylePendingImage; 47 class StylePendingImage;
48 48
49 // Holds information about resources, requested by stylesheets. 49 // Holds information about resources, requested by stylesheets.
50 // Lifetime: per-element style resolve. 50 // Lifetime: per-element style resolve.
51 class ElementStyleResources { 51 class ElementStyleResources {
52 STACK_ALLOCATED(); 52 STACK_ALLOCATED();
53 WTF_MAKE_NONCOPYABLE(ElementStyleResources); 53 WTF_MAKE_NONCOPYABLE(ElementStyleResources);
54 54
55 public: 55 public:
56 ElementStyleResources(Document&, float deviceScaleFactor); 56 ElementStyleResources(Document&, float deviceScaleFactor);
57 57
58 StyleImage* styleImage(CSSPropertyID, const CSSValue&); 58 StyleImage* styleImage(CSSPropertyID, const CSSValue&);
59 StyleImage* cachedOrPendingFromValue(CSSPropertyID, const CSSImageValue&); 59 StyleImage* cachedOrPendingFromValue(CSSPropertyID, const CSSImageValue&);
60 StyleImage* setOrPendingFromValue(CSSPropertyID, const CSSImageSetValue&); 60 StyleImage* setOrPendingFromValue(CSSPropertyID, const CSSImageSetValue&);
61 SVGElementProxy& cachedOrPendingFromValue(const CSSURIValue&);
61 62
62 void loadPendingResources(ComputedStyle*); 63 void loadPendingResources(ComputedStyle*);
63 64
64 void addPendingSVGDocument(FilterOperation*, const CSSURIValue*);
65
66 private: 65 private:
67 StyleImage* cursorOrPendingFromValue(CSSPropertyID, 66 StyleImage* cursorOrPendingFromValue(CSSPropertyID,
68 const CSSCursorImageValue&); 67 const CSSCursorImageValue&);
69 StyleImage* generatedOrPendingFromValue(CSSPropertyID, 68 StyleImage* generatedOrPendingFromValue(CSSPropertyID,
70 const CSSImageGeneratorValue&); 69 const CSSImageGeneratorValue&);
71 70
72 void loadPendingSVGDocuments(ComputedStyle*); 71 void loadPendingSVGDocuments(ComputedStyle*);
73 void loadPendingImages(ComputedStyle*); 72 void loadPendingImages(ComputedStyle*);
74 73
75 StyleImage* loadPendingImage( 74 StyleImage* loadPendingImage(
76 ComputedStyle*, 75 ComputedStyle*,
77 StylePendingImage*, 76 StylePendingImage*,
78 CrossOriginAttributeValue = CrossOriginAttributeNotSet); 77 CrossOriginAttributeValue = CrossOriginAttributeNotSet);
79 78
80 Member<Document> m_document; 79 Member<Document> m_document;
81 HashSet<CSSPropertyID> m_pendingImageProperties; 80 HashSet<CSSPropertyID> m_pendingImageProperties;
82 HeapHashMap<Member<FilterOperation>, Member<const CSSURIValue>>
83 m_pendingSVGDocuments;
84 float m_deviceScaleFactor; 81 float m_deviceScaleFactor;
85 }; 82 };
86 83
87 } // namespace blink 84 } // namespace blink
88 85
89 #endif // ElementStyleResources_h 86 #endif // ElementStyleResources_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698