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

Side by Side Diff: Source/core/svg/SVGUseElement.h

Issue 1323443003: Don't transfer viewport to an invalid/dirty <use> instance (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Only clear the instance root. Created 5 years, 3 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde .org> 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde .org>
3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 69
70 bool isStructurallyExternal() const override { return !hrefString().isNull() && isExternalURIReference(hrefString(), document()); } 70 bool isStructurallyExternal() const override { return !hrefString().isNull() && isExternalURIReference(hrefString(), document()); }
71 71
72 InsertionNotificationRequest insertedInto(ContainerNode*) override; 72 InsertionNotificationRequest insertedInto(ContainerNode*) override;
73 void removedFrom(ContainerNode*) override; 73 void removedFrom(ContainerNode*) override;
74 74
75 void svgAttributeChanged(const QualifiedName&) override; 75 void svgAttributeChanged(const QualifiedName&) override;
76 76
77 LayoutObject* createLayoutObject(const ComputedStyle&) override; 77 LayoutObject* createLayoutObject(const ComputedStyle&) override;
78 78
79 void clearResourceReferences();
80 void buildShadowAndInstanceTree(SVGElement* target);
81
82 void scheduleShadowTreeRecreation(); 79 void scheduleShadowTreeRecreation();
80 void cancelShadowTreeRecreation();
83 bool haveLoadedRequiredResources() override { return !isStructurallyExternal () || m_haveFiredLoadEvent; } 81 bool haveLoadedRequiredResources() override { return !isStructurallyExternal () || m_haveFiredLoadEvent; }
84 82
85 bool selfHasRelativeLengths() const override; 83 bool selfHasRelativeLengths() const override;
86 84
87 // Instance tree handling 85 // Instance tree handling
86 void buildShadowAndInstanceTree(SVGElement* target);
87 void clearInstanceRoot();
88 bool buildShadowTree(SVGElement* target, SVGElement* targetInstance, bool fo undUse); 88 bool buildShadowTree(SVGElement* target, SVGElement* targetInstance, bool fo undUse);
89 void clearShadowTree();
89 bool hasCycleUseReferencing(SVGUseElement*, ContainerNode* targetInstance, S VGElement*& newTarget); 90 bool hasCycleUseReferencing(SVGUseElement*, ContainerNode* targetInstance, S VGElement*& newTarget);
90 bool expandUseElementsInShadowTree(SVGElement*); 91 bool expandUseElementsInShadowTree(SVGElement*);
91 void expandSymbolElementsInShadowTree(SVGElement*); 92 void expandSymbolElementsInShadowTree(SVGElement*);
92 93
93 void transferUseAttributesToReplacedElement(SVGElement* from, SVGElement* to ) const; 94 void transferUseAttributesToReplacedElement(SVGElement* from, SVGElement* to ) const;
94 95
95 void invalidateDependentShadowTrees(); 96 void invalidateDependentShadowTrees();
96 97
97 bool resourceIsStillLoading(); 98 bool resourceIsStillLoading();
98 Document* externalDocument() const; 99 Document* externalDocument() const;
99 bool instanceTreeIsLoading(SVGElement*); 100 bool instanceTreeIsLoading(SVGElement*);
100 void notifyFinished(Resource*) override; 101 void notifyFinished(Resource*) override;
101 TreeScope* referencedScope() const; 102 TreeScope* referencedScope() const;
102 void setDocumentResource(ResourcePtr<DocumentResource>); 103 void setDocumentResource(ResourcePtr<DocumentResource>);
103 104
104 RefPtrWillBeMember<SVGAnimatedLength> m_x; 105 RefPtrWillBeMember<SVGAnimatedLength> m_x;
105 RefPtrWillBeMember<SVGAnimatedLength> m_y; 106 RefPtrWillBeMember<SVGAnimatedLength> m_y;
106 RefPtrWillBeMember<SVGAnimatedLength> m_width; 107 RefPtrWillBeMember<SVGAnimatedLength> m_width;
107 RefPtrWillBeMember<SVGAnimatedLength> m_height; 108 RefPtrWillBeMember<SVGAnimatedLength> m_height;
108 109
109 bool m_haveFiredLoadEvent; 110 bool m_haveFiredLoadEvent;
110 bool m_needsShadowTreeRecreation; 111 bool m_needsShadowTreeRecreation;
111 RefPtrWillBeMember<SVGElement> m_targetElementInstance; 112 RefPtrWillBeMember<SVGElement> m_targetElementInstance;
112 ResourcePtr<DocumentResource> m_resource; 113 ResourcePtr<DocumentResource> m_resource;
113 }; 114 };
114 115
115 } // namespace blink 116 } // namespace blink
116 117
117 #endif // SVGUseElement_h 118 #endif // SVGUseElement_h
OLDNEW
« no previous file with comments | « LayoutTests/svg/custom/use-target-removed-expected.txt ('k') | Source/core/svg/SVGUseElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698