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

Side by Side Diff: third_party/WebKit/Source/core/frame/FrameView.h

Issue 1394193003: Invalidate background-attachment:fixed on scroll. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rename all SlowRepaint to BackgroundAttachmentFixed. rebaseline test. Created 5 years, 2 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) 1997 Martin Jones (mjones@kde.org) 2 Copyright (C) 1997 Martin Jones (mjones@kde.org)
3 (C) 1998 Waldo Bastian (bastian@kde.org) 3 (C) 1998 Waldo Bastian (bastian@kde.org)
4 (C) 1998, 1999 Torben Weis (weis@kde.org) 4 (C) 1998, 1999 Torben Weis (weis@kde.org)
5 (C) 1999 Lars Knoll (knoll@kde.org) 5 (C) 1999 Lars Knoll (knoll@kde.org)
6 (C) 1999 Antti Koivisto (koivisto@kde.org) 6 (C) 1999 Antti Koivisto (koivisto@kde.org)
7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. 7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
8 8
9 This library is free software; you can redistribute it and/or 9 This library is free software; you can redistribute it and/or
10 modify it under the terms of the GNU Library General Public 10 modify it under the terms of the GNU Library General Public
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 180
181 void viewportSizeChanged(bool widthChanged, bool heightChanged); 181 void viewportSizeChanged(bool widthChanged, bool heightChanged);
182 182
183 AtomicString mediaType() const; 183 AtomicString mediaType() const;
184 void setMediaType(const AtomicString&); 184 void setMediaType(const AtomicString&);
185 void adjustMediaTypeForPrinting(bool printing); 185 void adjustMediaTypeForPrinting(bool printing);
186 186
187 WebDisplayMode displayMode() { return m_displayMode; } 187 WebDisplayMode displayMode() { return m_displayMode; }
188 void setDisplayMode(WebDisplayMode); 188 void setDisplayMode(WebDisplayMode);
189 189
190 void addSlowRepaintObject();
191 void removeSlowRepaintObject();
192 bool hasSlowRepaintObjects() const { return m_slowRepaintObjectCount; }
193
194 // Fixed-position objects. 190 // Fixed-position objects.
195 typedef HashSet<LayoutObject*> ViewportConstrainedObjectSet; 191 typedef HashSet<LayoutObject*> ViewportConstrainedObjectSet;
196 void addViewportConstrainedObject(LayoutObject*); 192 void addViewportConstrainedObject(LayoutObject*);
197 void removeViewportConstrainedObject(LayoutObject*); 193 void removeViewportConstrainedObject(LayoutObject*);
198 const ViewportConstrainedObjectSet* viewportConstrainedObjects() const { ret urn m_viewportConstrainedObjects.get(); } 194 const ViewportConstrainedObjectSet* viewportConstrainedObjects() const { ret urn m_viewportConstrainedObjects.get(); }
199 bool hasViewportConstrainedObjects() const { return m_viewportConstrainedObj ects && m_viewportConstrainedObjects->size() > 0; } 195 bool hasViewportConstrainedObjects() const { return m_viewportConstrainedObj ects && m_viewportConstrainedObjects->size() > 0; }
200 196
197 // Objects with background-attachment:fixed.
198 void addBackgroundAttachmentFixedObject(LayoutObject*);
199 void removeBackgroundAttachmentFixedObject(LayoutObject*);
200 bool hasBackgroundAttachmentFixedObjects() const { return m_backgroundAttach mentFixedObjects.size(); }
201 void invalidateBackgroundAttachmentFixedObjects();
202
201 void handleLoadCompleted(); 203 void handleLoadCompleted();
202 204
203 void updateDocumentAnnotatedRegions() const; 205 void updateDocumentAnnotatedRegions() const;
204 206
205 void restoreScrollbar(); 207 void restoreScrollbar();
206 208
207 void postLayoutTimerFired(Timer<FrameView>*); 209 void postLayoutTimerFired(Timer<FrameView>*);
208 210
209 bool safeToPropagateScrollToParent() const { return m_safeToPropagateScrollT oParent; } 211 bool safeToPropagateScrollToParent() const { return m_safeToPropagateScrollT oParent; }
210 void setSafeToPropagateScrollToParent(bool isSafe) { m_safeToPropagateScroll ToParent = isSafe; } 212 void setSafeToPropagateScrollToParent(bool isSafe) { m_safeToPropagateScroll ToParent = isSafe; }
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 // For Oilpan, Member reference cycles pose no problem, but 735 // For Oilpan, Member reference cycles pose no problem, but
734 // LocalFrame's FrameView is also cleared by that setView(), so as to 736 // LocalFrame's FrameView is also cleared by that setView(), so as to
735 // keep the observable lifespan of LocalFrame::view() identical. 737 // keep the observable lifespan of LocalFrame::view() identical.
736 RefPtrWillBeMember<LocalFrame> m_frame; 738 RefPtrWillBeMember<LocalFrame> m_frame;
737 739
738 WebDisplayMode m_displayMode; 740 WebDisplayMode m_displayMode;
739 741
740 bool m_doFullPaintInvalidation; 742 bool m_doFullPaintInvalidation;
741 743
742 bool m_canHaveScrollbars; 744 bool m_canHaveScrollbars;
743 unsigned m_slowRepaintObjectCount;
744 745
745 bool m_hasPendingLayout; 746 bool m_hasPendingLayout;
746 LayoutSubtreeRootList m_layoutSubtreeRootList; 747 LayoutSubtreeRootList m_layoutSubtreeRootList;
747 748
748 bool m_layoutSchedulingEnabled; 749 bool m_layoutSchedulingEnabled;
749 bool m_inPerformLayout; 750 bool m_inPerformLayout;
750 bool m_inSynchronousPostLayout; 751 bool m_inSynchronousPostLayout;
751 int m_layoutCount; 752 int m_layoutCount;
752 unsigned m_nestedLayoutCount; 753 unsigned m_nestedLayoutCount;
753 Timer<FrameView> m_postLayoutTasksTimer; 754 Timer<FrameView> m_postLayoutTasksTimer;
(...skipping 23 matching lines...) Expand all
777 778
778 RefPtrWillBeMember<Node> m_scrollAnchor; 779 RefPtrWillBeMember<Node> m_scrollAnchor;
779 780
780 // layoutObject to hold our custom scroll corner. 781 // layoutObject to hold our custom scroll corner.
781 LayoutScrollbarPart* m_scrollCorner; 782 LayoutScrollbarPart* m_scrollCorner;
782 783
783 OwnPtrWillBeMember<ScrollableAreaSet> m_scrollableAreas; 784 OwnPtrWillBeMember<ScrollableAreaSet> m_scrollableAreas;
784 OwnPtrWillBeMember<ScrollableAreaSet> m_animatingScrollableAreas; 785 OwnPtrWillBeMember<ScrollableAreaSet> m_animatingScrollableAreas;
785 OwnPtr<ResizerAreaSet> m_resizerAreas; 786 OwnPtr<ResizerAreaSet> m_resizerAreas;
786 OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects; 787 OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects;
788 ViewportConstrainedObjectSet m_backgroundAttachmentFixedObjects;
787 OwnPtrWillBeMember<FrameViewAutoSizeInfo> m_autoSizeInfo; 789 OwnPtrWillBeMember<FrameViewAutoSizeInfo> m_autoSizeInfo;
788 790
789 IntSize m_inputEventsOffsetForEmulation; 791 IntSize m_inputEventsOffsetForEmulation;
790 float m_inputEventsScaleFactorForEmulation; 792 float m_inputEventsScaleFactorForEmulation;
791 793
792 IntSize m_layoutSize; 794 IntSize m_layoutSize;
793 bool m_layoutSizeFixedToFrameSize; 795 bool m_layoutSizeFixedToFrameSize;
794 796
795 Timer<FrameView> m_didScrollTimer; 797 Timer<FrameView> m_didScrollTimer;
796 798
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
857 static const unsigned visualPixelThreshold = 32 * 32; 859 static const unsigned visualPixelThreshold = 32 * 32;
858 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold) 860 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold)
859 setIsVisuallyNonEmpty(); 861 setIsVisuallyNonEmpty();
860 } 862 }
861 863
862 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra meView()); 864 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra meView());
863 865
864 } // namespace blink 866 } // namespace blink
865 867
866 #endif // FrameView_h 868 #endif // FrameView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698