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

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: WIP - fix on release, still hits CHECK in LayoutGeometryMap.cpp:156 Created 4 years, 10 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 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 WebDisplayMode displayMode() { return m_displayMode; } 193 WebDisplayMode displayMode() { return m_displayMode; }
194 void setDisplayMode(WebDisplayMode); 194 void setDisplayMode(WebDisplayMode);
195 195
196 // Fixed-position objects. 196 // Fixed-position objects.
197 typedef HashSet<LayoutObject*> ViewportConstrainedObjectSet; 197 typedef HashSet<LayoutObject*> ViewportConstrainedObjectSet;
198 void addViewportConstrainedObject(LayoutObject*); 198 void addViewportConstrainedObject(LayoutObject*);
199 void removeViewportConstrainedObject(LayoutObject*); 199 void removeViewportConstrainedObject(LayoutObject*);
200 const ViewportConstrainedObjectSet* viewportConstrainedObjects() const { ret urn m_viewportConstrainedObjects.get(); } 200 const ViewportConstrainedObjectSet* viewportConstrainedObjects() const { ret urn m_viewportConstrainedObjects.get(); }
201 bool hasViewportConstrainedObjects() const { return m_viewportConstrainedObj ects && m_viewportConstrainedObjects->size() > 0; } 201 bool hasViewportConstrainedObjects() const { return m_viewportConstrainedObj ects && m_viewportConstrainedObjects->size() > 0; }
202 202
203 // Sticky objects.
204 void addStickyPositionObject() { ++m_stickyPositionObjectCount; }
205 void removeStickyPositionObject() { --m_stickyPositionObjectCount; }
206 bool hasStickyPositionObjects() const { return m_stickyPositionObjectCount; }
207
203 // Objects with background-attachment:fixed. 208 // Objects with background-attachment:fixed.
204 void addBackgroundAttachmentFixedObject(LayoutObject*); 209 void addBackgroundAttachmentFixedObject(LayoutObject*);
205 void removeBackgroundAttachmentFixedObject(LayoutObject*); 210 void removeBackgroundAttachmentFixedObject(LayoutObject*);
206 bool hasBackgroundAttachmentFixedObjects() const { return m_backgroundAttach mentFixedObjects.size(); } 211 bool hasBackgroundAttachmentFixedObjects() const { return m_backgroundAttach mentFixedObjects.size(); }
207 void invalidateBackgroundAttachmentFixedObjects(); 212 void invalidateBackgroundAttachmentFixedObjects();
208 213
209 void handleLoadCompleted(); 214 void handleLoadCompleted();
210 215
211 void updateDocumentAnnotatedRegions() const; 216 void updateDocumentAnnotatedRegions() const;
212 217
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 830
826 RefPtrWillBeMember<Node> m_fragmentAnchor; 831 RefPtrWillBeMember<Node> m_fragmentAnchor;
827 832
828 // layoutObject to hold our custom scroll corner. 833 // layoutObject to hold our custom scroll corner.
829 LayoutScrollbarPart* m_scrollCorner; 834 LayoutScrollbarPart* m_scrollCorner;
830 835
831 OwnPtrWillBeMember<ScrollableAreaSet> m_scrollableAreas; 836 OwnPtrWillBeMember<ScrollableAreaSet> m_scrollableAreas;
832 OwnPtrWillBeMember<ScrollableAreaSet> m_animatingScrollableAreas; 837 OwnPtrWillBeMember<ScrollableAreaSet> m_animatingScrollableAreas;
833 OwnPtr<ResizerAreaSet> m_resizerAreas; 838 OwnPtr<ResizerAreaSet> m_resizerAreas;
834 OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects; 839 OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects;
840 unsigned m_stickyPositionObjectCount;
835 ViewportConstrainedObjectSet m_backgroundAttachmentFixedObjects; 841 ViewportConstrainedObjectSet m_backgroundAttachmentFixedObjects;
836 OwnPtrWillBeMember<FrameViewAutoSizeInfo> m_autoSizeInfo; 842 OwnPtrWillBeMember<FrameViewAutoSizeInfo> m_autoSizeInfo;
837 843
838 IntSize m_inputEventsOffsetForEmulation; 844 IntSize m_inputEventsOffsetForEmulation;
839 float m_inputEventsScaleFactorForEmulation; 845 float m_inputEventsScaleFactorForEmulation;
840 846
841 IntSize m_layoutSize; 847 IntSize m_layoutSize;
842 bool m_layoutSizeFixedToFrameSize; 848 bool m_layoutSizeFixedToFrameSize;
843 849
844 Timer<FrameView> m_didScrollTimer; 850 Timer<FrameView> m_didScrollTimer;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold) 940 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold)
935 setIsVisuallyNonEmpty(); 941 setIsVisuallyNonEmpty();
936 } 942 }
937 943
938 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra meView()); 944 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra meView());
939 DEFINE_TYPE_CASTS(FrameView, ScrollableArea, scrollableArea, scrollableArea->isF rameView(), scrollableArea.isFrameView()); 945 DEFINE_TYPE_CASTS(FrameView, ScrollableArea, scrollableArea, scrollableArea->isF rameView(), scrollableArea.isFrameView());
940 946
941 } // namespace blink 947 } // namespace blink
942 948
943 #endif // FrameView_h 949 #endif // FrameView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698