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

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

Issue 1308273010: Adapt and reland old position sticky implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Force main thread scrolling, set experimental status, and address review comments. Created 5 years 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 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 WebDisplayMode displayMode() { return m_displayMode; } 187 WebDisplayMode displayMode() { return m_displayMode; }
188 void setDisplayMode(WebDisplayMode); 188 void setDisplayMode(WebDisplayMode);
189 189
190 // Fixed-position objects. 190 // Fixed-position objects.
191 typedef HashSet<LayoutObject*> ViewportConstrainedObjectSet; 191 typedef HashSet<LayoutObject*> ViewportConstrainedObjectSet;
192 void addViewportConstrainedObject(LayoutObject*); 192 void addViewportConstrainedObject(LayoutObject*);
193 void removeViewportConstrainedObject(LayoutObject*); 193 void removeViewportConstrainedObject(LayoutObject*);
194 const ViewportConstrainedObjectSet* viewportConstrainedObjects() const { ret urn m_viewportConstrainedObjects.get(); } 194 const ViewportConstrainedObjectSet* viewportConstrainedObjects() const { ret urn m_viewportConstrainedObjects.get(); }
195 bool hasViewportConstrainedObjects() const { return m_viewportConstrainedObj ects && m_viewportConstrainedObjects->size() > 0; } 195 bool hasViewportConstrainedObjects() const { return m_viewportConstrainedObj ects && m_viewportConstrainedObjects->size() > 0; }
196 196
197 // Sticky objects.
198 void addStickyPositionObject() { ++m_stickyPositionObjectCount; }
199 void removeStickyPositionObject() { --m_stickyPositionObjectCount; }
200 bool hasStickyPositionObjects() const { return m_stickyPositionObjectCount; }
201
197 // Objects with background-attachment:fixed. 202 // Objects with background-attachment:fixed.
198 void addBackgroundAttachmentFixedObject(LayoutObject*); 203 void addBackgroundAttachmentFixedObject(LayoutObject*);
199 void removeBackgroundAttachmentFixedObject(LayoutObject*); 204 void removeBackgroundAttachmentFixedObject(LayoutObject*);
200 bool hasBackgroundAttachmentFixedObjects() const { return m_backgroundAttach mentFixedObjects.size(); } 205 bool hasBackgroundAttachmentFixedObjects() const { return m_backgroundAttach mentFixedObjects.size(); }
201 void invalidateBackgroundAttachmentFixedObjects(); 206 void invalidateBackgroundAttachmentFixedObjects();
202 207
203 void handleLoadCompleted(); 208 void handleLoadCompleted();
204 209
205 void updateDocumentAnnotatedRegions() const; 210 void updateDocumentAnnotatedRegions() const;
206 211
(...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 811
807 RefPtrWillBeMember<Node> m_scrollAnchor; 812 RefPtrWillBeMember<Node> m_scrollAnchor;
808 813
809 // layoutObject to hold our custom scroll corner. 814 // layoutObject to hold our custom scroll corner.
810 LayoutScrollbarPart* m_scrollCorner; 815 LayoutScrollbarPart* m_scrollCorner;
811 816
812 OwnPtrWillBeMember<ScrollableAreaSet> m_scrollableAreas; 817 OwnPtrWillBeMember<ScrollableAreaSet> m_scrollableAreas;
813 OwnPtrWillBeMember<ScrollableAreaSet> m_animatingScrollableAreas; 818 OwnPtrWillBeMember<ScrollableAreaSet> m_animatingScrollableAreas;
814 OwnPtr<ResizerAreaSet> m_resizerAreas; 819 OwnPtr<ResizerAreaSet> m_resizerAreas;
815 OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects; 820 OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects;
821 unsigned m_stickyPositionObjectCount;
816 ViewportConstrainedObjectSet m_backgroundAttachmentFixedObjects; 822 ViewportConstrainedObjectSet m_backgroundAttachmentFixedObjects;
817 OwnPtrWillBeMember<FrameViewAutoSizeInfo> m_autoSizeInfo; 823 OwnPtrWillBeMember<FrameViewAutoSizeInfo> m_autoSizeInfo;
818 824
819 IntSize m_inputEventsOffsetForEmulation; 825 IntSize m_inputEventsOffsetForEmulation;
820 float m_inputEventsScaleFactorForEmulation; 826 float m_inputEventsScaleFactorForEmulation;
821 827
822 IntSize m_layoutSize; 828 IntSize m_layoutSize;
823 bool m_layoutSizeFixedToFrameSize; 829 bool m_layoutSizeFixedToFrameSize;
824 830
825 Timer<FrameView> m_didScrollTimer; 831 Timer<FrameView> m_didScrollTimer;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 static const unsigned visualPixelThreshold = 32 * 32; 913 static const unsigned visualPixelThreshold = 32 * 32;
908 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold) 914 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold)
909 setIsVisuallyNonEmpty(); 915 setIsVisuallyNonEmpty();
910 } 916 }
911 917
912 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra meView()); 918 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra meView());
913 919
914 } // namespace blink 920 } // namespace blink
915 921
916 #endif // FrameView_h 922 #endif // FrameView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698