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

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

Issue 1449623002: IntersectionObserver: second cut. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Clarify the tear-down path for observers and observations. Created 5 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) 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 724 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 typedef WTF::HashMap <const GraphicsLayer*, Vector<std::pair<int64_t, WebRec t>>> GraphicsLayerFrameTimingRequests; 735 typedef WTF::HashMap <const GraphicsLayer*, Vector<std::pair<int64_t, WebRec t>>> GraphicsLayerFrameTimingRequests;
736 void updateFrameTimingRequestsIfNeeded(); 736 void updateFrameTimingRequestsIfNeeded();
737 void collectFrameTimingRequests(GraphicsLayerFrameTimingRequests&); 737 void collectFrameTimingRequests(GraphicsLayerFrameTimingRequests&);
738 void collectFrameTimingRequestsRecursive(GraphicsLayerFrameTimingRequests&); 738 void collectFrameTimingRequestsRecursive(GraphicsLayerFrameTimingRequests&);
739 739
740 template <typename Function> void forAllNonThrottledFrameViews(Function); 740 template <typename Function> void forAllNonThrottledFrameViews(Function);
741 741
742 void setNeedsUpdateViewportIntersection(); 742 void setNeedsUpdateViewportIntersection();
743 void updateViewportIntersectionsForSubtree(); 743 void updateViewportIntersectionsForSubtree();
744 void updateViewportIntersectionIfNeeded(); 744 void updateViewportIntersectionIfNeeded();
745 void notifyIntersectionObservers(); 745 void notifyRenderThrottlingObservers();
746 746
747 LayoutSize m_size; 747 LayoutSize m_size;
748 748
749 typedef HashSet<RefPtr<LayoutEmbeddedObject>> EmbeddedObjectSet; 749 typedef HashSet<RefPtr<LayoutEmbeddedObject>> EmbeddedObjectSet;
750 EmbeddedObjectSet m_partUpdateSet; 750 EmbeddedObjectSet m_partUpdateSet;
751 751
752 // FIXME: These are just "children" of the FrameView and should be RefPtrWil lBeMember<Widget> instead. 752 // FIXME: These are just "children" of the FrameView and should be RefPtrWil lBeMember<Widget> instead.
753 HashSet<RefPtr<LayoutPart>> m_parts; 753 HashSet<RefPtr<LayoutPart>> m_parts;
754 754
755 // The RefPtr cycle between LocalFrame and FrameView is broken 755 // The RefPtr cycle between LocalFrame and FrameView is broken
(...skipping 14 matching lines...) Expand all
770 bool m_hasPendingLayout; 770 bool m_hasPendingLayout;
771 LayoutSubtreeRootList m_layoutSubtreeRootList; 771 LayoutSubtreeRootList m_layoutSubtreeRootList;
772 772
773 bool m_layoutSchedulingEnabled; 773 bool m_layoutSchedulingEnabled;
774 bool m_inPerformLayout; 774 bool m_inPerformLayout;
775 bool m_inSynchronousPostLayout; 775 bool m_inSynchronousPostLayout;
776 int m_layoutCount; 776 int m_layoutCount;
777 unsigned m_nestedLayoutCount; 777 unsigned m_nestedLayoutCount;
778 Timer<FrameView> m_postLayoutTasksTimer; 778 Timer<FrameView> m_postLayoutTasksTimer;
779 Timer<FrameView> m_updateWidgetsTimer; 779 Timer<FrameView> m_updateWidgetsTimer;
780 OwnPtr<CancellableTaskFactory> m_intersectionObserverNotificationFactory; 780 OwnPtr<CancellableTaskFactory> m_renderThrottlingObserverNotificationFactory ;
781 781
782 bool m_firstLayout; 782 bool m_firstLayout;
783 bool m_isTransparent; 783 bool m_isTransparent;
784 Color m_baseBackgroundColor; 784 Color m_baseBackgroundColor;
785 IntSize m_lastViewportSize; 785 IntSize m_lastViewportSize;
786 float m_lastZoomFactor; 786 float m_lastZoomFactor;
787 787
788 AtomicString m_mediaType; 788 AtomicString m_mediaType;
789 AtomicString m_mediaTypeWhenNotPrinting; 789 AtomicString m_mediaTypeWhenNotPrinting;
790 790
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
874 // notifications, i.e., not in the middle of the lifecycle. 874 // notifications, i.e., not in the middle of the lifecycle.
875 bool m_hiddenForThrottling; 875 bool m_hiddenForThrottling;
876 bool m_crossOriginForThrottling; 876 bool m_crossOriginForThrottling;
877 877
878 // Paint properties for SPv2 Only. 878 // Paint properties for SPv2 Only.
879 // The hierarchy of transform subtree created by a FrameView. 879 // The hierarchy of transform subtree created by a FrameView.
880 // [ preTranslation ] The offset from Widget::frameRect. Estab lishes viewport. 880 // [ preTranslation ] The offset from Widget::frameRect. Estab lishes viewport.
881 // +---[ scrollTranslation ] Frame scrolling. This is going away in f avor of Settings::rootLayerScrolls. 881 // +---[ scrollTranslation ] Frame scrolling. This is going away in f avor of Settings::rootLayerScrolls.
882 RefPtr<TransformPaintPropertyNode> m_preTranslation; 882 RefPtr<TransformPaintPropertyNode> m_preTranslation;
883 RefPtr<TransformPaintPropertyNode> m_scrollTranslation; 883 RefPtr<TransformPaintPropertyNode> m_scrollTranslation;
884
884 }; 885 };
885 886
886 inline void FrameView::incrementVisuallyNonEmptyCharacterCount(unsigned count) 887 inline void FrameView::incrementVisuallyNonEmptyCharacterCount(unsigned count)
887 { 888 {
888 if (m_isVisuallyNonEmpty) 889 if (m_isVisuallyNonEmpty)
889 return; 890 return;
890 m_visuallyNonEmptyCharacterCount += count; 891 m_visuallyNonEmptyCharacterCount += count;
891 // Use a threshold value to prevent very small amounts of visible content fr om triggering didMeaningfulLayout. 892 // Use a threshold value to prevent very small amounts of visible content fr om triggering didMeaningfulLayout.
892 // The first few hundred characters rarely contain the interesting content o f the page. 893 // The first few hundred characters rarely contain the interesting content o f the page.
893 static const unsigned visualCharacterThreshold = 200; 894 static const unsigned visualCharacterThreshold = 200;
(...skipping 10 matching lines...) Expand all
904 static const unsigned visualPixelThreshold = 32 * 32; 905 static const unsigned visualPixelThreshold = 32 * 32;
905 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold) 906 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold)
906 setIsVisuallyNonEmpty(); 907 setIsVisuallyNonEmpty();
907 } 908 }
908 909
909 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra meView()); 910 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra meView());
910 911
911 } // namespace blink 912 } // namespace blink
912 913
913 #endif // FrameView_h 914 #endif // FrameView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698