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

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayer.h

Issue 2401343002: Tracking filter mutation via SVGElementProxy (Closed)
Patch Set: referenceChanged -> proxiedElementChanged 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) 2003, 2009, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2013 Intel Corporation. All rights reserved. 3 * Copyright (C) 2013 Intel Corporation. All rights reserved.
4 * 4 *
5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
6 * 6 *
7 * Other contributors: 7 * Other contributors:
8 * Robert O'Callahan <roc+@cs.cmu.edu> 8 * Robert O'Callahan <roc+@cs.cmu.edu>
9 * David Baron <dbaron@fas.harvard.edu> 9 * David Baron <dbaron@fas.harvard.edu>
10 * Christian Biesinger <cbiesinger@web.de> 10 * Christian Biesinger <cbiesinger@web.de>
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 #include "wtf/Allocator.h" 60 #include "wtf/Allocator.h"
61 #include "wtf/AutoReset.h" 61 #include "wtf/AutoReset.h"
62 #include "wtf/PtrUtil.h" 62 #include "wtf/PtrUtil.h"
63 #include <memory> 63 #include <memory>
64 64
65 namespace blink { 65 namespace blink {
66 66
67 class CompositedLayerMapping; 67 class CompositedLayerMapping;
68 class CompositorFilterOperations; 68 class CompositorFilterOperations;
69 class ComputedStyle; 69 class ComputedStyle;
70 class FilterEffect;
70 class FilterOperations; 71 class FilterOperations;
71 class HitTestRequest; 72 class HitTestRequest;
72 class HitTestResult; 73 class HitTestResult;
73 class HitTestingTransformState; 74 class HitTestingTransformState;
74 class PaintLayerCompositor; 75 class PaintLayerCompositor;
75 class PaintTiming; 76 class PaintTiming;
76 class TransformationMatrix; 77 class TransformationMatrix;
77 78
78 enum IncludeSelfOrNot { IncludeSelf, ExcludeSelf }; 79 enum IncludeSelfOrNot { IncludeSelf, ExcludeSelf };
79 80
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 588
588 // Calls the above, rounding outwards. 589 // Calls the above, rounding outwards.
589 LayoutRect mapLayoutRectForFilter(const LayoutRect&) const; 590 LayoutRect mapLayoutRectForFilter(const LayoutRect&) const;
590 591
591 bool hasFilterThatMovesPixels() const; 592 bool hasFilterThatMovesPixels() const;
592 593
593 PaintLayerFilterInfo* filterInfo() const { 594 PaintLayerFilterInfo* filterInfo() const {
594 return m_rareData ? m_rareData->filterInfo.get() : nullptr; 595 return m_rareData ? m_rareData->filterInfo.get() : nullptr;
595 } 596 }
596 PaintLayerFilterInfo& ensureFilterInfo(); 597 PaintLayerFilterInfo& ensureFilterInfo();
598 void removeFilterInfo();
597 599
598 void updateFilters(const ComputedStyle* oldStyle, 600 void updateFilters(const ComputedStyle* oldStyle,
599 const ComputedStyle& newStyle); 601 const ComputedStyle& newStyle);
600 602
601 Node* enclosingNode() const; 603 Node* enclosingNode() const;
602 604
603 bool isInTopLayer() const; 605 bool isInTopLayer() const;
604 606
605 bool scrollsWithViewport() const; 607 bool scrollsWithViewport() const;
606 bool scrollsWithRespectTo(const PaintLayer*) const; 608 bool scrollsWithRespectTo(const PaintLayer*) const;
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 void setHasCompositingDescendant(bool); 821 void setHasCompositingDescendant(bool);
820 822
821 bool shouldIsolateCompositedDescendants() const { 823 bool shouldIsolateCompositedDescendants() const {
822 DCHECK(isAllowedToQueryCompositingState()); 824 DCHECK(isAllowedToQueryCompositingState());
823 return m_shouldIsolateCompositedDescendants; 825 return m_shouldIsolateCompositedDescendants;
824 } 826 }
825 void setShouldIsolateCompositedDescendants(bool); 827 void setShouldIsolateCompositedDescendants(bool);
826 828
827 void updateDescendantDependentFlags(); 829 void updateDescendantDependentFlags();
828 830
829 void updateOrRemoveFilterEffect();
830
831 void updateSelfPaintingLayer(); 831 void updateSelfPaintingLayer();
832 // This is O(depth) so avoid calling this in loops. Instead use optimizations 832 // This is O(depth) so avoid calling this in loops. Instead use optimizations
833 // like those in PaintInvalidationState. 833 // like those in PaintInvalidationState.
834 PaintLayer* enclosingSelfPaintingLayer(); 834 PaintLayer* enclosingSelfPaintingLayer();
835 835
836 PaintLayer* enclosingTransformedAncestor() const; 836 PaintLayer* enclosingTransformedAncestor() const;
837 LayoutPoint computeOffsetFromTransformedAncestor() const; 837 LayoutPoint computeOffsetFromTransformedAncestor() const;
838 838
839 void didUpdateNeedsCompositedScrolling(); 839 void didUpdateNeedsCompositedScrolling();
840 840
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
1073 1073
1074 bool childBackgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const; 1074 bool childBackgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const;
1075 1075
1076 bool shouldBeSelfPaintingLayer() const; 1076 bool shouldBeSelfPaintingLayer() const;
1077 1077
1078 // FIXME: We should only create the stacking node if needed. 1078 // FIXME: We should only create the stacking node if needed.
1079 bool requiresStackingNode() const { return true; } 1079 bool requiresStackingNode() const { return true; }
1080 void updateStackingNode(); 1080 void updateStackingNode();
1081 1081
1082 FilterOperations addReflectionToFilterOperations(const ComputedStyle&) const; 1082 FilterOperations addReflectionToFilterOperations(const ComputedStyle&) const;
1083 FilterEffect* updateFilterEffect() const;
1084 1083
1085 // FIXME: We could lazily allocate our ScrollableArea based on style 1084 // FIXME: We could lazily allocate our ScrollableArea based on style
1086 // properties ('overflow', ...) but for now, we are always allocating it for 1085 // properties ('overflow', ...) but for now, we are always allocating it for
1087 // LayoutBox as it's safer. crbug.com/467721. 1086 // LayoutBox as it's safer. crbug.com/467721.
1088 bool requiresScrollableArea() const { return layoutBox(); } 1087 bool requiresScrollableArea() const { return layoutBox(); }
1089 void updateScrollableArea(); 1088 void updateScrollableArea();
1090 1089
1091 void dirtyAncestorChainVisibleDescendantStatus(); 1090 void dirtyAncestorChainVisibleDescendantStatus();
1092 1091
1093 bool attemptDirectCompositingUpdate(StyleDifference, 1092 bool attemptDirectCompositingUpdate(StyleDifference,
1094 const ComputedStyle* oldStyle); 1093 const ComputedStyle* oldStyle);
1095 void updateTransform(const ComputedStyle* oldStyle, 1094 void updateTransform(const ComputedStyle* oldStyle,
1096 const ComputedStyle& newStyle); 1095 const ComputedStyle& newStyle);
1097 1096
1098 void removeAncestorOverflowLayer(const PaintLayer* removedLayer); 1097 void removeAncestorOverflowLayer(const PaintLayer* removedLayer);
1099 1098
1100 void updateOrRemoveFilterClients();
1101
1102 void updatePaginationRecursive(bool needsPaginationUpdate = false); 1099 void updatePaginationRecursive(bool needsPaginationUpdate = false);
1103 void clearPaginationRecursive(); 1100 void clearPaginationRecursive();
1104 1101
1105 void setNeedsRepaintInternal(); 1102 void setNeedsRepaintInternal();
1106 void markCompositingContainerChainForNeedsRepaint(); 1103 void markCompositingContainerChainForNeedsRepaint();
1107 1104
1108 PaintLayerRareData& ensureRareData() { 1105 PaintLayerRareData& ensureRareData() {
1109 if (!m_rareData) 1106 if (!m_rareData)
1110 m_rareData = wrapUnique(new PaintLayerRareData); 1107 m_rareData = wrapUnique(new PaintLayerRareData);
1111 return *m_rareData; 1108 return *m_rareData;
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1237 1234
1238 } // namespace blink 1235 } // namespace blink
1239 1236
1240 #ifndef NDEBUG 1237 #ifndef NDEBUG
1241 // Outside the WebCore namespace for ease of invocation from gdb. 1238 // Outside the WebCore namespace for ease of invocation from gdb.
1242 CORE_EXPORT void showLayerTree(const blink::PaintLayer*); 1239 CORE_EXPORT void showLayerTree(const blink::PaintLayer*);
1243 CORE_EXPORT void showLayerTree(const blink::LayoutObject*); 1240 CORE_EXPORT void showLayerTree(const blink::LayoutObject*);
1244 #endif 1241 #endif
1245 1242
1246 #endif // Layer_h 1243 #endif // Layer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698