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

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

Issue 1419823005: Invalidate background-attachment:fixed on scroll. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2526
Patch Set: 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 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 181
182 void viewportSizeChanged(bool widthChanged, bool heightChanged); 182 void viewportSizeChanged(bool widthChanged, bool heightChanged);
183 183
184 AtomicString mediaType() const; 184 AtomicString mediaType() const;
185 void setMediaType(const AtomicString&); 185 void setMediaType(const AtomicString&);
186 void adjustMediaTypeForPrinting(bool printing); 186 void adjustMediaTypeForPrinting(bool printing);
187 187
188 WebDisplayMode displayMode() { return m_displayMode; } 188 WebDisplayMode displayMode() { return m_displayMode; }
189 void setDisplayMode(WebDisplayMode); 189 void setDisplayMode(WebDisplayMode);
190 190
191 void addSlowRepaintObject();
192 void removeSlowRepaintObject();
193 bool hasSlowRepaintObjects() const { return m_slowRepaintObjectCount; }
194
195 // Fixed-position objects. 191 // Fixed-position objects.
196 typedef HashSet<LayoutObject*> ViewportConstrainedObjectSet; 192 typedef HashSet<LayoutObject*> ViewportConstrainedObjectSet;
197 void addViewportConstrainedObject(LayoutObject*); 193 void addViewportConstrainedObject(LayoutObject*);
198 void removeViewportConstrainedObject(LayoutObject*); 194 void removeViewportConstrainedObject(LayoutObject*);
199 const ViewportConstrainedObjectSet* viewportConstrainedObjects() const { ret urn m_viewportConstrainedObjects.get(); } 195 const ViewportConstrainedObjectSet* viewportConstrainedObjects() const { ret urn m_viewportConstrainedObjects.get(); }
200 bool hasViewportConstrainedObjects() const { return m_viewportConstrainedObj ects && m_viewportConstrainedObjects->size() > 0; } 196 bool hasViewportConstrainedObjects() const { return m_viewportConstrainedObj ects && m_viewportConstrainedObjects->size() > 0; }
201 197
198 // Objects with background-attachment:fixed.
199 void addBackgroundAttachmentFixedObject(LayoutObject*);
200 void removeBackgroundAttachmentFixedObject(LayoutObject*);
201 bool hasBackgroundAttachmentFixedObjects() const { return m_backgroundAttach mentFixedObjects.size(); }
202 void invalidateBackgroundAttachmentFixedObjects();
203
202 void handleLoadCompleted(); 204 void handleLoadCompleted();
203 205
204 void updateDocumentAnnotatedRegions() const; 206 void updateDocumentAnnotatedRegions() const;
205 207
206 void restoreScrollbar(); 208 void restoreScrollbar();
207 209
208 void postLayoutTimerFired(Timer<FrameView>*); 210 void postLayoutTimerFired(Timer<FrameView>*);
209 211
210 bool safeToPropagateScrollToParent() const { return m_safeToPropagateScrollT oParent; } 212 bool safeToPropagateScrollToParent() const { return m_safeToPropagateScrollT oParent; }
211 void setSafeToPropagateScrollToParent(bool isSafe) { m_safeToPropagateScroll ToParent = isSafe; } 213 void setSafeToPropagateScrollToParent(bool isSafe) { m_safeToPropagateScroll ToParent = isSafe; }
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
732 // For Oilpan, Member reference cycles pose no problem, but 734 // For Oilpan, Member reference cycles pose no problem, but
733 // LocalFrame's FrameView is also cleared by that setView(), so as to 735 // LocalFrame's FrameView is also cleared by that setView(), so as to
734 // keep the observable lifespan of LocalFrame::view() identical. 736 // keep the observable lifespan of LocalFrame::view() identical.
735 RefPtrWillBeMember<LocalFrame> m_frame; 737 RefPtrWillBeMember<LocalFrame> m_frame;
736 738
737 WebDisplayMode m_displayMode; 739 WebDisplayMode m_displayMode;
738 740
739 bool m_doFullPaintInvalidation; 741 bool m_doFullPaintInvalidation;
740 742
741 bool m_canHaveScrollbars; 743 bool m_canHaveScrollbars;
742 unsigned m_slowRepaintObjectCount;
743 744
744 bool m_hasPendingLayout; 745 bool m_hasPendingLayout;
745 LayoutSubtreeRootList m_layoutSubtreeRootList; 746 LayoutSubtreeRootList m_layoutSubtreeRootList;
746 747
747 bool m_layoutSchedulingEnabled; 748 bool m_layoutSchedulingEnabled;
748 bool m_inPerformLayout; 749 bool m_inPerformLayout;
749 bool m_inSynchronousPostLayout; 750 bool m_inSynchronousPostLayout;
750 int m_layoutCount; 751 int m_layoutCount;
751 unsigned m_nestedLayoutCount; 752 unsigned m_nestedLayoutCount;
752 Timer<FrameView> m_postLayoutTasksTimer; 753 Timer<FrameView> m_postLayoutTasksTimer;
(...skipping 23 matching lines...) Expand all
776 777
777 RefPtrWillBeMember<Node> m_scrollAnchor; 778 RefPtrWillBeMember<Node> m_scrollAnchor;
778 779
779 // layoutObject to hold our custom scroll corner. 780 // layoutObject to hold our custom scroll corner.
780 LayoutScrollbarPart* m_scrollCorner; 781 LayoutScrollbarPart* m_scrollCorner;
781 782
782 OwnPtrWillBeMember<ScrollableAreaSet> m_scrollableAreas; 783 OwnPtrWillBeMember<ScrollableAreaSet> m_scrollableAreas;
783 OwnPtrWillBeMember<ScrollableAreaSet> m_animatingScrollableAreas; 784 OwnPtrWillBeMember<ScrollableAreaSet> m_animatingScrollableAreas;
784 OwnPtr<ResizerAreaSet> m_resizerAreas; 785 OwnPtr<ResizerAreaSet> m_resizerAreas;
785 OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects; 786 OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects;
787 ViewportConstrainedObjectSet m_backgroundAttachmentFixedObjects;
786 OwnPtrWillBeMember<FrameViewAutoSizeInfo> m_autoSizeInfo; 788 OwnPtrWillBeMember<FrameViewAutoSizeInfo> m_autoSizeInfo;
787 789
788 IntSize m_inputEventsOffsetForEmulation; 790 IntSize m_inputEventsOffsetForEmulation;
789 float m_inputEventsScaleFactorForEmulation; 791 float m_inputEventsScaleFactorForEmulation;
790 792
791 IntSize m_layoutSize; 793 IntSize m_layoutSize;
792 bool m_layoutSizeFixedToFrameSize; 794 bool m_layoutSizeFixedToFrameSize;
793 795
794 Timer<FrameView> m_didScrollTimer; 796 Timer<FrameView> m_didScrollTimer;
795 797
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 static const unsigned visualPixelThreshold = 32 * 32; 860 static const unsigned visualPixelThreshold = 32 * 32;
859 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold) 861 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold)
860 setIsVisuallyNonEmpty(); 862 setIsVisuallyNonEmpty();
861 } 863 }
862 864
863 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra meView()); 865 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra meView());
864 866
865 } // namespace blink 867 } // namespace blink
866 868
867 #endif // FrameView_h 869 #endif // FrameView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698