OLD | NEW |
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 | 7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights |
8 reserved. | 8 reserved. |
9 | 9 |
10 This library is free software; you can redistribute it and/or | 10 This library is free software; you can redistribute it and/or |
11 modify it under the terms of the GNU Library General Public | 11 modify it under the terms of the GNU Library General Public |
12 License as published by the Free Software Foundation; either | 12 License as published by the Free Software Foundation; either |
13 version 2 of the License, or (at your option) any later version. | 13 version 2 of the License, or (at your option) any later version. |
14 | 14 |
15 This library is distributed in the hope that it will be useful, | 15 This library is distributed in the hope that it will be useful, |
16 but WITHOUT ANY WARRANTY; without even the implied warranty of | 16 but WITHOUT ANY WARRANTY; without even the implied warranty of |
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
18 Library General Public License for more details. | 18 Library General Public License for more details. |
19 | 19 |
20 You should have received a copy of the GNU Library General Public License | 20 You should have received a copy of the GNU Library General Public License |
21 along with this library; see the file COPYING.LIB. If not, write to | 21 along with this library; see the file COPYING.LIB. If not, write to |
22 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 22 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
23 Boston, MA 02110-1301, USA. | 23 Boston, MA 02110-1301, USA. |
24 */ | 24 */ |
25 | 25 |
26 #ifndef FrameView_h | 26 #ifndef FrameView_h |
27 #define FrameView_h | 27 #define FrameView_h |
28 | 28 |
| 29 #include <memory> |
29 #include "core/CoreExport.h" | 30 #include "core/CoreExport.h" |
30 #include "core/dom/DocumentLifecycle.h" | 31 #include "core/dom/DocumentLifecycle.h" |
31 #include "core/frame/FrameViewAutoSizeInfo.h" | 32 #include "core/frame/FrameViewAutoSizeInfo.h" |
32 #include "core/frame/LayoutSubtreeRootList.h" | 33 #include "core/frame/LayoutSubtreeRootList.h" |
33 #include "core/frame/RootFrameViewport.h" | 34 #include "core/frame/RootFrameViewport.h" |
34 #include "core/layout/MapCoordinatesFlags.h" | 35 #include "core/layout/MapCoordinatesFlags.h" |
35 #include "core/layout/ScrollAnchor.h" | 36 #include "core/layout/ScrollAnchor.h" |
36 #include "core/paint/FirstMeaningfulPaintDetector.h" | 37 #include "core/paint/FirstMeaningfulPaintDetector.h" |
37 #include "core/paint/ObjectPaintProperties.h" | 38 #include "core/paint/ObjectPaintProperties.h" |
38 #include "core/paint/PaintInvalidationCapableScrollableArea.h" | 39 #include "core/paint/PaintInvalidationCapableScrollableArea.h" |
39 #include "core/paint/PaintPhase.h" | 40 #include "core/paint/PaintPhase.h" |
40 #include "core/paint/ScrollbarManager.h" | 41 #include "core/paint/ScrollbarManager.h" |
| 42 #include "platform/FrameViewBase.h" |
41 #include "platform/RuntimeEnabledFeatures.h" | 43 #include "platform/RuntimeEnabledFeatures.h" |
42 #include "platform/Widget.h" | |
43 #include "platform/animation/CompositorAnimationHost.h" | 44 #include "platform/animation/CompositorAnimationHost.h" |
44 #include "platform/animation/CompositorAnimationTimeline.h" | 45 #include "platform/animation/CompositorAnimationTimeline.h" |
45 #include "platform/geometry/IntRect.h" | 46 #include "platform/geometry/IntRect.h" |
46 #include "platform/geometry/LayoutRect.h" | 47 #include "platform/geometry/LayoutRect.h" |
47 #include "platform/graphics/Color.h" | 48 #include "platform/graphics/Color.h" |
48 #include "platform/graphics/GraphicsLayerClient.h" | 49 #include "platform/graphics/GraphicsLayerClient.h" |
49 #include "platform/scroll/ScrollTypes.h" | 50 #include "platform/scroll/ScrollTypes.h" |
50 #include "platform/scroll/Scrollbar.h" | 51 #include "platform/scroll/Scrollbar.h" |
51 #include "public/platform/ShapeProperties.h" | 52 #include "public/platform/ShapeProperties.h" |
52 #include "public/platform/WebDisplayMode.h" | 53 #include "public/platform/WebDisplayMode.h" |
53 #include "public/platform/WebRect.h" | 54 #include "public/platform/WebRect.h" |
54 #include "wtf/Allocator.h" | 55 #include "wtf/Allocator.h" |
55 #include "wtf/AutoReset.h" | 56 #include "wtf/AutoReset.h" |
56 #include "wtf/Forward.h" | 57 #include "wtf/Forward.h" |
57 #include "wtf/HashSet.h" | 58 #include "wtf/HashSet.h" |
58 #include "wtf/ListHashSet.h" | 59 #include "wtf/ListHashSet.h" |
59 #include "wtf/text/WTFString.h" | 60 #include "wtf/text/WTFString.h" |
60 #include <memory> | |
61 | 61 |
62 namespace blink { | 62 namespace blink { |
63 | 63 |
64 class AXObjectCache; | 64 class AXObjectCache; |
65 class ComputedStyle; | 65 class ComputedStyle; |
66 class DocumentLifecycle; | 66 class DocumentLifecycle; |
67 class Cursor; | 67 class Cursor; |
68 class Element; | 68 class Element; |
69 class ElementVisibilityObserver; | 69 class ElementVisibilityObserver; |
70 class Frame; | 70 class Frame; |
(...skipping 21 matching lines...) Expand all Loading... |
92 class PrintContext; | 92 class PrintContext; |
93 class ScrollingCoordinator; | 93 class ScrollingCoordinator; |
94 class TracedValue; | 94 class TracedValue; |
95 class TransformState; | 95 class TransformState; |
96 struct AnnotatedRegionValue; | 96 struct AnnotatedRegionValue; |
97 struct CompositedSelection; | 97 struct CompositedSelection; |
98 | 98 |
99 typedef unsigned long long DOMTimeStamp; | 99 typedef unsigned long long DOMTimeStamp; |
100 | 100 |
101 class CORE_EXPORT FrameView final | 101 class CORE_EXPORT FrameView final |
102 : public Widget, | 102 : public FrameViewBase, |
103 public PaintInvalidationCapableScrollableArea { | 103 public PaintInvalidationCapableScrollableArea { |
104 USING_GARBAGE_COLLECTED_MIXIN(FrameView); | 104 USING_GARBAGE_COLLECTED_MIXIN(FrameView); |
105 | 105 |
106 friend class PaintControllerPaintTestBase; | 106 friend class PaintControllerPaintTestBase; |
107 friend class Internals; | 107 friend class Internals; |
108 friend class LayoutPart; // for invalidateTreeIfNeeded | 108 friend class LayoutPart; // for invalidateTreeIfNeeded |
109 | 109 |
110 public: | 110 public: |
111 static FrameView* create(LocalFrame&); | 111 static FrameView* create(LocalFrame&); |
112 static FrameView* create(LocalFrame&, const IntSize& initialSize); | 112 static FrameView* create(LocalFrame&, const IntSize& initialSize); |
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
434 bool shouldScrollOnMainThread() const override; | 434 bool shouldScrollOnMainThread() const override; |
435 PaintLayer* layer() const override; | 435 PaintLayer* layer() const override; |
436 GraphicsLayer* layerForScrolling() const override; | 436 GraphicsLayer* layerForScrolling() const override; |
437 GraphicsLayer* layerForHorizontalScrollbar() const override; | 437 GraphicsLayer* layerForHorizontalScrollbar() const override; |
438 GraphicsLayer* layerForVerticalScrollbar() const override; | 438 GraphicsLayer* layerForVerticalScrollbar() const override; |
439 GraphicsLayer* layerForScrollCorner() const override; | 439 GraphicsLayer* layerForScrollCorner() const override; |
440 int scrollSize(ScrollbarOrientation) const override; | 440 int scrollSize(ScrollbarOrientation) const override; |
441 bool isScrollCornerVisible() const override; | 441 bool isScrollCornerVisible() const override; |
442 bool userInputScrollable(ScrollbarOrientation) const override; | 442 bool userInputScrollable(ScrollbarOrientation) const override; |
443 bool shouldPlaceVerticalScrollbarOnLeft() const override; | 443 bool shouldPlaceVerticalScrollbarOnLeft() const override; |
444 Widget* getWidget() override; | 444 FrameViewBase* getWidget() override; |
445 CompositorAnimationHost* compositorAnimationHost() const override; | 445 CompositorAnimationHost* compositorAnimationHost() const override; |
446 CompositorAnimationTimeline* compositorAnimationTimeline() const override; | 446 CompositorAnimationTimeline* compositorAnimationTimeline() const override; |
447 LayoutBox* layoutBox() const override; | 447 LayoutBox* layoutBox() const override; |
448 FloatQuad localToVisibleContentQuad(const FloatQuad&, | 448 FloatQuad localToVisibleContentQuad(const FloatQuad&, |
449 const LayoutObject*, | 449 const LayoutObject*, |
450 unsigned = 0) const final; | 450 unsigned = 0) const final; |
451 RefPtr<WebTaskRunner> getTimerTaskRunner() const final; | 451 RefPtr<WebTaskRunner> getTimerTaskRunner() const final; |
452 | 452 |
453 LayoutRect scrollIntoView(const LayoutRect& rectInContent, | 453 LayoutRect scrollIntoView(const LayoutRect& rectInContent, |
454 const ScrollAlignment& alignX, | 454 const ScrollAlignment& alignX, |
455 const ScrollAlignment& alignY, | 455 const ScrollAlignment& alignY, |
456 ScrollType = ProgrammaticScroll) override; | 456 ScrollType = ProgrammaticScroll) override; |
457 | 457 |
458 // The window that hosts the FrameView. The FrameView will communicate scrolls | 458 // The window that hosts the FrameView. The FrameView will communicate scrolls |
459 // and repaints to the host window in the window's coordinate space. | 459 // and repaints to the host window in the window's coordinate space. |
460 HostWindow* getHostWindow() const; | 460 HostWindow* getHostWindow() const; |
461 | 461 |
462 typedef HeapHashSet<Member<Widget>> ChildrenWidgetSet; | 462 typedef HeapHashSet<Member<FrameViewBase>> ChildrenWidgetSet; |
463 | 463 |
464 // Functions for child manipulation and inspection. | 464 // Functions for child manipulation and inspection. |
465 void setParent(Widget*) override; | 465 void setParent(FrameViewBase*) override; |
466 void removeChild(Widget*); | 466 void removeChild(FrameViewBase*); |
467 void addChild(Widget*); | 467 void addChild(FrameViewBase*); |
468 const ChildrenWidgetSet* children() const { return &m_children; } | 468 const ChildrenWidgetSet* children() const { return &m_children; } |
469 | 469 |
470 // If the scroll view does not use a native widget, then it will have | 470 // If the scroll view does not use a native widget, then it will have |
471 // cross-platform Scrollbars. These functions can be used to obtain those | 471 // cross-platform Scrollbars. These functions can be used to obtain those |
472 // scrollbars. | 472 // scrollbars. |
473 Scrollbar* horizontalScrollbar() const override { | 473 Scrollbar* horizontalScrollbar() const override { |
474 return m_scrollbarManager.horizontalScrollbar(); | 474 return m_scrollbarManager.horizontalScrollbar(); |
475 } | 475 } |
476 Scrollbar* verticalScrollbar() const override { | 476 Scrollbar* verticalScrollbar() const override { |
477 return m_scrollbarManager.verticalScrollbar(); | 477 return m_scrollbarManager.verticalScrollbar(); |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
602 FloatPoint frameToContents(const FloatPoint&) const; | 602 FloatPoint frameToContents(const FloatPoint&) const; |
603 IntRect frameToContents(const IntRect&) const; | 603 IntRect frameToContents(const IntRect&) const; |
604 | 604 |
605 // Functions for converting to screen coordinates. | 605 // Functions for converting to screen coordinates. |
606 IntRect contentsToScreen(const IntRect&) const; | 606 IntRect contentsToScreen(const IntRect&) const; |
607 | 607 |
608 // For platforms that need to hit test scrollbars from within the engine's | 608 // For platforms that need to hit test scrollbars from within the engine's |
609 // event handlers (like Win32). | 609 // event handlers (like Win32). |
610 Scrollbar* scrollbarAtFramePoint(const IntPoint&); | 610 Scrollbar* scrollbarAtFramePoint(const IntPoint&); |
611 | 611 |
612 IntPoint convertChildToSelf(const Widget* child, | 612 IntPoint convertChildToSelf(const FrameViewBase* child, |
613 const IntPoint& point) const override { | 613 const IntPoint& point) const override { |
614 IntPoint newPoint = point; | 614 IntPoint newPoint = point; |
615 if (!isFrameViewScrollbar(child)) | 615 if (!isFrameViewScrollbar(child)) |
616 newPoint = contentsToFrame(point); | 616 newPoint = contentsToFrame(point); |
617 newPoint.moveBy(child->location()); | 617 newPoint.moveBy(child->location()); |
618 return newPoint; | 618 return newPoint; |
619 } | 619 } |
620 | 620 |
621 IntPoint convertSelfToChild(const Widget* child, | 621 IntPoint convertSelfToChild(const FrameViewBase* child, |
622 const IntPoint& point) const override { | 622 const IntPoint& point) const override { |
623 IntPoint newPoint = point; | 623 IntPoint newPoint = point; |
624 if (!isFrameViewScrollbar(child)) | 624 if (!isFrameViewScrollbar(child)) |
625 newPoint = frameToContents(point); | 625 newPoint = frameToContents(point); |
626 newPoint.moveBy(-child->location()); | 626 newPoint.moveBy(-child->location()); |
627 return newPoint; | 627 return newPoint; |
628 } | 628 } |
629 | 629 |
630 // Widget override. Handles painting of the contents of the view as well as | 630 // FrameViewBase override. Handles painting of the contents of the view as |
631 // the scrollbars. | 631 // well as the scrollbars. |
632 void paint(GraphicsContext&, const CullRect&) const override; | 632 void paint(GraphicsContext&, const CullRect&) const override; |
633 void paint(GraphicsContext&, const GlobalPaintFlags, const CullRect&) const; | 633 void paint(GraphicsContext&, const GlobalPaintFlags, const CullRect&) const; |
634 void paintContents(GraphicsContext&, | 634 void paintContents(GraphicsContext&, |
635 const GlobalPaintFlags, | 635 const GlobalPaintFlags, |
636 const IntRect& damageRect) const; | 636 const IntRect& damageRect) const; |
637 | 637 |
638 // Widget overrides to ensure that our children's visibility status is kept up | 638 // FrameViewBase overrides to ensure that our children's visibility status is |
639 // to date when we get shown and hidden. | 639 // kept up to date when we get shown and hidden. |
640 void show() override; | 640 void show() override; |
641 void hide() override; | 641 void hide() override; |
642 void setParentVisible(bool) override; | 642 void setParentVisible(bool) override; |
643 | 643 |
644 bool isPointInScrollbarCorner(const IntPoint&); | 644 bool isPointInScrollbarCorner(const IntPoint&); |
645 bool scrollbarCornerPresent() const; | 645 bool scrollbarCornerPresent() const; |
646 IntRect scrollCornerRect() const override; | 646 IntRect scrollCornerRect() const override; |
647 | 647 |
648 IntRect convertFromScrollbarToContainingWidget(const Scrollbar&, | 648 IntRect convertFromScrollbarToContainingWidget(const Scrollbar&, |
649 const IntRect&) const override; | 649 const IntRect&) const override; |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
944 void scheduleOrPerformPostLayoutTasks(); | 944 void scheduleOrPerformPostLayoutTasks(); |
945 void performPostLayoutTasks(); | 945 void performPostLayoutTasks(); |
946 | 946 |
947 void recordDeferredLoadingStats(); | 947 void recordDeferredLoadingStats(); |
948 | 948 |
949 DocumentLifecycle& lifecycle() const; | 949 DocumentLifecycle& lifecycle() const; |
950 | 950 |
951 void contentsResized() override; | 951 void contentsResized() override; |
952 void scrollbarExistenceDidChange(); | 952 void scrollbarExistenceDidChange(); |
953 | 953 |
954 // Override Widget methods to do point conversion via layoutObjects, in order | 954 // Override FrameViewBase methods to do point conversion via layoutObjects, in |
955 // to take transforms into account. | 955 // order to take transforms into account. |
956 IntRect convertToContainingWidget(const IntRect&) const override; | 956 IntRect convertToContainingWidget(const IntRect&) const override; |
957 IntRect convertFromContainingWidget(const IntRect&) const override; | 957 IntRect convertFromContainingWidget(const IntRect&) const override; |
958 IntPoint convertToContainingWidget(const IntPoint&) const override; | 958 IntPoint convertToContainingWidget(const IntPoint&) const override; |
959 IntPoint convertFromContainingWidget(const IntPoint&) const override; | 959 IntPoint convertFromContainingWidget(const IntPoint&) const override; |
960 | 960 |
961 void didChangeGlobalRootScroller() override; | 961 void didChangeGlobalRootScroller() override; |
962 | 962 |
963 void updateWidgetGeometriesIfNeeded(); | 963 void updateWidgetGeometriesIfNeeded(); |
964 | 964 |
965 bool wasViewportResized(); | 965 bool wasViewportResized(); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1000 | 1000 |
1001 AXObjectCache* axObjectCache() const; | 1001 AXObjectCache* axObjectCache() const; |
1002 | 1002 |
1003 void setLayoutSizeInternal(const IntSize&); | 1003 void setLayoutSizeInternal(const IntSize&); |
1004 | 1004 |
1005 bool adjustScrollbarExistence(ComputeScrollbarExistenceOption = FirstPass); | 1005 bool adjustScrollbarExistence(ComputeScrollbarExistenceOption = FirstPass); |
1006 void adjustScrollbarOpacity(); | 1006 void adjustScrollbarOpacity(); |
1007 void adjustScrollOffsetFromUpdateScrollbars(); | 1007 void adjustScrollOffsetFromUpdateScrollbars(); |
1008 bool visualViewportSuppliesScrollbars(); | 1008 bool visualViewportSuppliesScrollbars(); |
1009 | 1009 |
1010 bool isFrameViewScrollbar(const Widget* child) const { | 1010 bool isFrameViewScrollbar(const FrameViewBase* child) const { |
1011 return horizontalScrollbar() == child || verticalScrollbar() == child; | 1011 return horizontalScrollbar() == child || verticalScrollbar() == child; |
1012 } | 1012 } |
1013 | 1013 |
1014 ScrollingCoordinator* scrollingCoordinator() const; | 1014 ScrollingCoordinator* scrollingCoordinator() const; |
1015 | 1015 |
1016 void prepareLayoutAnalyzer(); | 1016 void prepareLayoutAnalyzer(); |
1017 std::unique_ptr<TracedValue> analyzerCounters(); | 1017 std::unique_ptr<TracedValue> analyzerCounters(); |
1018 | 1018 |
1019 // LayoutObject for the viewport-defining element (see | 1019 // LayoutObject for the viewport-defining element (see |
1020 // Document::viewportDefiningElement). | 1020 // Document::viewportDefiningElement). |
(...skipping 26 matching lines...) Expand all Loading... |
1047 bool checkLayoutInvalidationIsAllowed() const; | 1047 bool checkLayoutInvalidationIsAllowed() const; |
1048 | 1048 |
1049 PaintController* paintController() { return m_paintController.get(); } | 1049 PaintController* paintController() { return m_paintController.get(); } |
1050 | 1050 |
1051 LayoutSize m_size; | 1051 LayoutSize m_size; |
1052 | 1052 |
1053 typedef HashSet<RefPtr<LayoutEmbeddedObject>> EmbeddedObjectSet; | 1053 typedef HashSet<RefPtr<LayoutEmbeddedObject>> EmbeddedObjectSet; |
1054 EmbeddedObjectSet m_partUpdateSet; | 1054 EmbeddedObjectSet m_partUpdateSet; |
1055 | 1055 |
1056 // FIXME: These are just "children" of the FrameView and should be | 1056 // FIXME: These are just "children" of the FrameView and should be |
1057 // Member<Widget> instead. | 1057 // Member<FrameViewBase> instead. |
1058 HashSet<RefPtr<LayoutPart>> m_parts; | 1058 HashSet<RefPtr<LayoutPart>> m_parts; |
1059 | 1059 |
1060 Member<LocalFrame> m_frame; | 1060 Member<LocalFrame> m_frame; |
1061 | 1061 |
1062 WebDisplayMode m_displayMode; | 1062 WebDisplayMode m_displayMode; |
1063 | 1063 |
1064 DisplayShape m_displayShape; | 1064 DisplayShape m_displayShape; |
1065 | 1065 |
1066 bool m_canHaveScrollbars; | 1066 bool m_canHaveScrollbars; |
1067 | 1067 |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1152 | 1152 |
1153 // The following members control rendering pipeline throttling for this | 1153 // The following members control rendering pipeline throttling for this |
1154 // frame. They are only updated in response to intersection observer | 1154 // frame. They are only updated in response to intersection observer |
1155 // notifications, i.e., not in the middle of the lifecycle. | 1155 // notifications, i.e., not in the middle of the lifecycle. |
1156 bool m_hiddenForThrottling; | 1156 bool m_hiddenForThrottling; |
1157 bool m_subtreeThrottled; | 1157 bool m_subtreeThrottled; |
1158 bool m_lifecycleUpdatesThrottled; | 1158 bool m_lifecycleUpdatesThrottled; |
1159 | 1159 |
1160 // Paint properties for SPv2 Only. | 1160 // Paint properties for SPv2 Only. |
1161 // The hierarchy of transform subtree created by a FrameView. | 1161 // The hierarchy of transform subtree created by a FrameView. |
1162 // [ preTranslation ] The offset from Widget::frameRect. | 1162 // [ preTranslation ] The offset from FrameViewBase::frameRect. |
1163 // | Establishes viewport. | 1163 // | Establishes viewport. |
1164 // +---[ scrollTranslation ] Frame scrolling. | 1164 // +---[ scrollTranslation ] Frame scrolling. |
1165 // TODO(trchen): These will not be needed once settings->rootLayerScrolls() is | 1165 // TODO(trchen): These will not be needed once settings->rootLayerScrolls() is |
1166 // enabled. | 1166 // enabled. |
1167 RefPtr<TransformPaintPropertyNode> m_preTranslation; | 1167 RefPtr<TransformPaintPropertyNode> m_preTranslation; |
1168 RefPtr<TransformPaintPropertyNode> m_scrollTranslation; | 1168 RefPtr<TransformPaintPropertyNode> m_scrollTranslation; |
1169 // The content clip clips the document (= LayoutView) but not the scrollbars. | 1169 // The content clip clips the document (= LayoutView) but not the scrollbars. |
1170 // TODO(trchen): This will not be needed once settings->rootLayerScrolls() is | 1170 // TODO(trchen): This will not be needed once settings->rootLayerScrolls() is |
1171 // enabled. | 1171 // enabled. |
1172 RefPtr<ClipPaintPropertyNode> m_contentClip; | 1172 RefPtr<ClipPaintPropertyNode> m_contentClip; |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1246 return; | 1246 return; |
1247 m_visuallyNonEmptyPixelCount += size.area(); | 1247 m_visuallyNonEmptyPixelCount += size.area(); |
1248 // Use a threshold value to prevent very small amounts of visible content from | 1248 // Use a threshold value to prevent very small amounts of visible content from |
1249 // triggering didMeaningfulLayout. | 1249 // triggering didMeaningfulLayout. |
1250 static const unsigned visualPixelThreshold = 32 * 32; | 1250 static const unsigned visualPixelThreshold = 32 * 32; |
1251 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold) | 1251 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold) |
1252 setIsVisuallyNonEmpty(); | 1252 setIsVisuallyNonEmpty(); |
1253 } | 1253 } |
1254 | 1254 |
1255 DEFINE_TYPE_CASTS(FrameView, | 1255 DEFINE_TYPE_CASTS(FrameView, |
1256 Widget, | 1256 FrameViewBase, |
1257 widget, | 1257 frameViewBase, |
1258 widget->isFrameView(), | 1258 frameViewBase->isFrameView(), |
1259 widget.isFrameView()); | 1259 frameViewBase.isFrameView()); |
1260 DEFINE_TYPE_CASTS(FrameView, | 1260 DEFINE_TYPE_CASTS(FrameView, |
1261 ScrollableArea, | 1261 ScrollableArea, |
1262 scrollableArea, | 1262 scrollableArea, |
1263 scrollableArea->isFrameView(), | 1263 scrollableArea->isFrameView(), |
1264 scrollableArea.isFrameView()); | 1264 scrollableArea.isFrameView()); |
1265 | 1265 |
1266 } // namespace blink | 1266 } // namespace blink |
1267 | 1267 |
1268 #endif // FrameView_h | 1268 #endif // FrameView_h |
OLD | NEW |