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 |
(...skipping 22 matching lines...) Expand all Loading... |
33 #include "core/frame/FrameViewAutoSizeInfo.h" | 33 #include "core/frame/FrameViewAutoSizeInfo.h" |
34 #include "core/frame/LayoutSubtreeRootList.h" | 34 #include "core/frame/LayoutSubtreeRootList.h" |
35 #include "core/frame/RootFrameViewport.h" | 35 #include "core/frame/RootFrameViewport.h" |
36 #include "core/layout/MapCoordinatesFlags.h" | 36 #include "core/layout/MapCoordinatesFlags.h" |
37 #include "core/layout/ScrollAnchor.h" | 37 #include "core/layout/ScrollAnchor.h" |
38 #include "core/paint/FirstMeaningfulPaintDetector.h" | 38 #include "core/paint/FirstMeaningfulPaintDetector.h" |
39 #include "core/paint/ObjectPaintProperties.h" | 39 #include "core/paint/ObjectPaintProperties.h" |
40 #include "core/paint/PaintInvalidationCapableScrollableArea.h" | 40 #include "core/paint/PaintInvalidationCapableScrollableArea.h" |
41 #include "core/paint/PaintPhase.h" | 41 #include "core/paint/PaintPhase.h" |
42 #include "core/paint/ScrollbarManager.h" | 42 #include "core/paint/ScrollbarManager.h" |
43 #include "core/plugins/PluginView.h" | |
44 #include "platform/FrameViewBase.h" | 43 #include "platform/FrameViewBase.h" |
45 #include "platform/RuntimeEnabledFeatures.h" | 44 #include "platform/RuntimeEnabledFeatures.h" |
46 #include "platform/animation/CompositorAnimationHost.h" | 45 #include "platform/animation/CompositorAnimationHost.h" |
47 #include "platform/animation/CompositorAnimationTimeline.h" | 46 #include "platform/animation/CompositorAnimationTimeline.h" |
48 #include "platform/geometry/IntRect.h" | 47 #include "platform/geometry/IntRect.h" |
49 #include "platform/geometry/LayoutRect.h" | 48 #include "platform/geometry/LayoutRect.h" |
50 #include "platform/graphics/Color.h" | 49 #include "platform/graphics/Color.h" |
51 #include "platform/graphics/CompositorElementId.h" | 50 #include "platform/graphics/CompositorElementId.h" |
52 #include "platform/graphics/GraphicsLayerClient.h" | 51 #include "platform/graphics/GraphicsLayerClient.h" |
53 #include "platform/scroll/ScrollTypes.h" | 52 #include "platform/scroll/ScrollTypes.h" |
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
473 | 472 |
474 LayoutRect ScrollIntoView(const LayoutRect& rect_in_content, | 473 LayoutRect ScrollIntoView(const LayoutRect& rect_in_content, |
475 const ScrollAlignment& align_x, | 474 const ScrollAlignment& align_x, |
476 const ScrollAlignment& align_y, | 475 const ScrollAlignment& align_y, |
477 ScrollType = kProgrammaticScroll) override; | 476 ScrollType = kProgrammaticScroll) override; |
478 | 477 |
479 // The window that hosts the FrameView. The FrameView will communicate scrolls | 478 // The window that hosts the FrameView. The FrameView will communicate scrolls |
480 // and repaints to the host window in the window's coordinate space. | 479 // and repaints to the host window in the window's coordinate space. |
481 PlatformChromeClient* GetChromeClient() const; | 480 PlatformChromeClient* GetChromeClient() const; |
482 | 481 |
483 typedef HeapHashSet<Member<FrameViewBase>> ChildrenSet; | 482 typedef HeapHashSet<Member<FrameOrPlugin>> ChildrenSet; |
484 typedef HeapHashSet<Member<PluginView>> PluginsSet; | |
485 typedef HeapHashSet<Member<Scrollbar>> ScrollbarsSet; | 483 typedef HeapHashSet<Member<Scrollbar>> ScrollbarsSet; |
486 | 484 |
487 // Functions for child manipulation and inspection. | 485 // Functions for child manipulation and inspection. |
488 bool IsSelfVisible() const { | 486 bool IsSelfVisible() const { |
489 return self_visible_; | 487 return self_visible_; |
490 } // Whether or not we have been explicitly marked as visible or not. | 488 } // Whether or not we have been explicitly marked as visible or not. |
491 bool IsParentVisible() const { | 489 bool IsParentVisible() const { |
492 return parent_visible_; | 490 return parent_visible_; |
493 } // Whether or not our parent is visible. | 491 } // Whether or not our parent is visible. |
494 bool IsVisible() const { | 492 bool IsVisible() const { |
495 return self_visible_ && parent_visible_; | 493 return self_visible_ && parent_visible_; |
496 } // Whether or not we are actually visible. | 494 } // Whether or not we are actually visible. |
497 void SetParentVisible(bool); | 495 void SetParentVisible(bool) override; |
498 void SetSelfVisible(bool v) { self_visible_ = v; } | 496 void SetSelfVisible(bool v) { self_visible_ = v; } |
499 void SetParent(FrameViewBase*) override; | 497 void SetParent(FrameView*) override; |
500 FrameViewBase* Parent() const override { return parent_; } | 498 FrameView* Parent() const override { return parent_; } |
501 void RemoveChild(FrameViewBase*); | 499 FrameView* Root() const; |
502 void AddChild(FrameViewBase*); | 500 void RemoveChild(FrameOrPlugin*); |
503 const ChildrenSet* Children() const { return &children_; } | 501 void AddChild(FrameOrPlugin*); |
504 void RemovePlugin(PluginView*); | 502 const ChildrenSet& Children() const { return children_; } |
505 void AddPlugin(PluginView*); | |
506 const PluginsSet* Plugins() const { return &plugins_; } | |
507 void RemoveScrollbar(Scrollbar*); | 503 void RemoveScrollbar(Scrollbar*); |
508 void AddScrollbar(Scrollbar*); | 504 void AddScrollbar(Scrollbar*); |
509 const ScrollbarsSet* Scrollbars() const { return &scrollbars_; } | 505 const ScrollbarsSet& Scrollbars() const { return scrollbars_; } |
510 | 506 |
511 // If the scroll view does not use a native widget, then it will have | 507 // If the scroll view does not use a native widget, then it will have |
512 // cross-platform Scrollbars. These functions can be used to obtain those | 508 // cross-platform Scrollbars. These functions can be used to obtain those |
513 // scrollbars. | 509 // scrollbars. |
514 Scrollbar* HorizontalScrollbar() const override { | 510 Scrollbar* HorizontalScrollbar() const override { |
515 return scrollbar_manager_.HorizontalScrollbar(); | 511 return scrollbar_manager_.HorizontalScrollbar(); |
516 } | 512 } |
517 Scrollbar* VerticalScrollbar() const override { | 513 Scrollbar* VerticalScrollbar() const override { |
518 return scrollbar_manager_.VerticalScrollbar(); | 514 return scrollbar_manager_.VerticalScrollbar(); |
519 } | 515 } |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 | 642 |
647 // Functions for converting to screen coordinates. | 643 // Functions for converting to screen coordinates. |
648 IntRect ContentsToScreen(const IntRect&) const; | 644 IntRect ContentsToScreen(const IntRect&) const; |
649 | 645 |
650 // For platforms that need to hit test scrollbars from within the engine's | 646 // For platforms that need to hit test scrollbars from within the engine's |
651 // event handlers (like Win32). | 647 // event handlers (like Win32). |
652 Scrollbar* ScrollbarAtFramePoint(const IntPoint&); | 648 Scrollbar* ScrollbarAtFramePoint(const IntPoint&); |
653 | 649 |
654 IntRect ConvertToRootFrame(const IntRect&) const; | 650 IntRect ConvertToRootFrame(const IntRect&) const; |
655 IntPoint ConvertToRootFrame(const IntPoint&) const; | 651 IntPoint ConvertToRootFrame(const IntPoint&) const; |
656 IntPoint ConvertSelfToChild(const FrameViewBase*, const IntPoint&) const; | 652 IntPoint ConvertSelfToChild(const IntPoint&, const IntPoint&) const; |
657 | 653 |
658 // FrameViewBase override. Handles painting of the contents of the view as | 654 // Handles painting of the contents of the view as well as the scrollbars. |
659 // well as the scrollbars. | |
660 void Paint(GraphicsContext&, const CullRect&) const override; | 655 void Paint(GraphicsContext&, const CullRect&) const override; |
661 void Paint(GraphicsContext&, const GlobalPaintFlags, const CullRect&) const; | 656 void Paint(GraphicsContext&, const GlobalPaintFlags, const CullRect&) const; |
662 void PaintContents(GraphicsContext&, | 657 void PaintContents(GraphicsContext&, |
663 const GlobalPaintFlags, | 658 const GlobalPaintFlags, |
664 const IntRect& damage_rect) const; | 659 const IntRect& damage_rect) const; |
665 | 660 |
666 void Show() override; | 661 void Show() override; |
667 void Hide() override; | 662 void Hide() override; |
668 | 663 |
669 bool IsPointInScrollbarCorner(const IntPoint&); | 664 bool IsPointInScrollbarCorner(const IntPoint&); |
670 bool ScrollbarCornerPresent() const; | 665 bool ScrollbarCornerPresent() const; |
671 IntRect ScrollCornerRect() const override; | 666 IntRect ScrollCornerRect() const override; |
672 | 667 |
673 IntPoint ConvertFromContainingFrameViewBaseToScrollbar( | 668 IntPoint ConvertFromContainingFrameViewToScrollbar( |
674 const Scrollbar&, | 669 const Scrollbar&, |
675 const IntPoint&) const override; | 670 const IntPoint&) const override; |
676 | 671 |
677 bool IsFrameView() const override { return true; } | 672 bool IsFrameView() const override { return true; } |
678 | 673 |
679 DECLARE_VIRTUAL_TRACE(); | 674 DECLARE_VIRTUAL_TRACE(); |
680 void NotifyPageThatContentAreaWillPaint() const; | 675 void NotifyPageThatContentAreaWillPaint() const; |
681 FrameView* ParentFrameView() const; | 676 FrameView* ParentFrameView() const; |
682 | 677 |
683 // Returns the scrollable area for the frame. For the root frame, this will | 678 // Returns the scrollable area for the frame. For the root frame, this will |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
965 | 960 |
966 void RecordDeferredLoadingStats(); | 961 void RecordDeferredLoadingStats(); |
967 | 962 |
968 DocumentLifecycle& Lifecycle() const; | 963 DocumentLifecycle& Lifecycle() const; |
969 | 964 |
970 void ContentsResized() override; | 965 void ContentsResized() override; |
971 void ScrollbarExistenceDidChange(); | 966 void ScrollbarExistenceDidChange(); |
972 | 967 |
973 // Methods to do point conversion via layoutObjects, in order to take | 968 // Methods to do point conversion via layoutObjects, in order to take |
974 // transforms into account. | 969 // transforms into account. |
975 IntRect ConvertToContainingFrameViewBase(const IntRect&) const; | 970 IntRect ConvertToContainingFrameView(const IntRect&) const; |
976 IntPoint ConvertToContainingFrameViewBase(const IntPoint&) const; | 971 IntPoint ConvertToContainingFrameView(const IntPoint&) const; |
977 IntRect ConvertFromContainingFrameViewBase(const IntRect&) const; | 972 IntRect ConvertFromContainingFrameView(const IntRect&) const; |
978 IntPoint ConvertFromContainingFrameViewBase(const IntPoint&) const; | 973 IntPoint ConvertFromContainingFrameView(const IntPoint&) const; |
979 | 974 |
980 void DidChangeGlobalRootScroller() override; | 975 void DidChangeGlobalRootScroller() override; |
981 | 976 |
982 void UpdateGeometriesIfNeeded(); | 977 void UpdateGeometriesIfNeeded(); |
983 | 978 |
984 bool WasViewportResized(); | 979 bool WasViewportResized(); |
985 void SendResizeEventIfNeeded(); | 980 void SendResizeEventIfNeeded(); |
986 | 981 |
987 void UpdateParentScrollableAreaSet(); | 982 void UpdateParentScrollableAreaSet(); |
988 | 983 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1062 bool CheckLayoutInvalidationIsAllowed() const; | 1057 bool CheckLayoutInvalidationIsAllowed() const; |
1063 | 1058 |
1064 PaintController* GetPaintController() { return paint_controller_.get(); } | 1059 PaintController* GetPaintController() { return paint_controller_.get(); } |
1065 | 1060 |
1066 LayoutSize size_; | 1061 LayoutSize size_; |
1067 | 1062 |
1068 typedef HashSet<RefPtr<LayoutEmbeddedObject>> EmbeddedObjectSet; | 1063 typedef HashSet<RefPtr<LayoutEmbeddedObject>> EmbeddedObjectSet; |
1069 EmbeddedObjectSet part_update_set_; | 1064 EmbeddedObjectSet part_update_set_; |
1070 | 1065 |
1071 // FIXME: These are just "children" of the FrameView and should be | 1066 // FIXME: These are just "children" of the FrameView and should be |
1072 // Member<FrameViewBase> instead. | 1067 // Member<FrameView> instead. |
1073 HashSet<RefPtr<LayoutPart>> parts_; | 1068 HashSet<RefPtr<LayoutPart>> parts_; |
1074 | 1069 |
1075 Member<LocalFrame> frame_; | 1070 Member<LocalFrame> frame_; |
1076 | 1071 |
1077 IntRect frame_rect_; | 1072 IntRect frame_rect_; |
1078 Member<FrameView> parent_; | 1073 Member<FrameView> parent_; |
1079 bool self_visible_; | 1074 bool self_visible_; |
1080 bool parent_visible_; | 1075 bool parent_visible_; |
1081 | 1076 |
1082 WebDisplayMode display_mode_; | 1077 WebDisplayMode display_mode_; |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1142 bool has_been_disposed_ = false; | 1137 bool has_been_disposed_ = false; |
1143 #endif | 1138 #endif |
1144 | 1139 |
1145 ScrollbarMode horizontal_scrollbar_mode_; | 1140 ScrollbarMode horizontal_scrollbar_mode_; |
1146 ScrollbarMode vertical_scrollbar_mode_; | 1141 ScrollbarMode vertical_scrollbar_mode_; |
1147 | 1142 |
1148 bool horizontal_scrollbar_lock_; | 1143 bool horizontal_scrollbar_lock_; |
1149 bool vertical_scrollbar_lock_; | 1144 bool vertical_scrollbar_lock_; |
1150 | 1145 |
1151 ChildrenSet children_; | 1146 ChildrenSet children_; |
1152 PluginsSet plugins_; | |
1153 ScrollbarsSet scrollbars_; | 1147 ScrollbarsSet scrollbars_; |
1154 | 1148 |
1155 ScrollOffset pending_scroll_delta_; | 1149 ScrollOffset pending_scroll_delta_; |
1156 ScrollOffset scroll_offset_; | 1150 ScrollOffset scroll_offset_; |
1157 IntSize contents_size_; | 1151 IntSize contents_size_; |
1158 | 1152 |
1159 bool scrollbars_suppressed_; | 1153 bool scrollbars_suppressed_; |
1160 | 1154 |
1161 bool in_update_scrollbars_; | 1155 bool in_update_scrollbars_; |
1162 | 1156 |
(...skipping 10 matching lines...) Expand all Loading... |
1173 | 1167 |
1174 // The following members control rendering pipeline throttling for this | 1168 // The following members control rendering pipeline throttling for this |
1175 // frame. They are only updated in response to intersection observer | 1169 // frame. They are only updated in response to intersection observer |
1176 // notifications, i.e., not in the middle of the lifecycle. | 1170 // notifications, i.e., not in the middle of the lifecycle. |
1177 bool hidden_for_throttling_; | 1171 bool hidden_for_throttling_; |
1178 bool subtree_throttled_; | 1172 bool subtree_throttled_; |
1179 bool lifecycle_updates_throttled_; | 1173 bool lifecycle_updates_throttled_; |
1180 | 1174 |
1181 // Paint properties for SPv2 Only. | 1175 // Paint properties for SPv2 Only. |
1182 // The hierarchy of transform subtree created by a FrameView. | 1176 // The hierarchy of transform subtree created by a FrameView. |
1183 // [ preTranslation ] The offset from FrameViewBase::frameRect. | 1177 // [ preTranslation ] The offset from FrameView::FrameRect. |
1184 // | Establishes viewport. | 1178 // | Establishes viewport. |
1185 // +---[ scrollTranslation ] Frame scrolling. | 1179 // +---[ scrollTranslation ] Frame scrolling. |
1186 // TODO(trchen): These will not be needed once settings->rootLayerScrolls() is | 1180 // TODO(trchen): These will not be needed once settings->rootLayerScrolls() is |
1187 // enabled. | 1181 // enabled. |
1188 RefPtr<TransformPaintPropertyNode> pre_translation_; | 1182 RefPtr<TransformPaintPropertyNode> pre_translation_; |
1189 RefPtr<TransformPaintPropertyNode> scroll_translation_; | 1183 RefPtr<TransformPaintPropertyNode> scroll_translation_; |
1190 // The content clip clips the document (= LayoutView) but not the scrollbars. | 1184 // The content clip clips the document (= LayoutView) but not the scrollbars. |
1191 // TODO(trchen): This will not be needed once settings->rootLayerScrolls() is | 1185 // TODO(trchen): This will not be needed once settings->rootLayerScrolls() is |
1192 // enabled. | 1186 // enabled. |
1193 RefPtr<ClipPaintPropertyNode> content_clip_; | 1187 RefPtr<ClipPaintPropertyNode> content_clip_; |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1266 if (visually_non_empty_pixel_count_ > kVisualPixelThreshold) | 1260 if (visually_non_empty_pixel_count_ > kVisualPixelThreshold) |
1267 SetIsVisuallyNonEmpty(); | 1261 SetIsVisuallyNonEmpty(); |
1268 } | 1262 } |
1269 | 1263 |
1270 DEFINE_TYPE_CASTS(FrameView, | 1264 DEFINE_TYPE_CASTS(FrameView, |
1271 FrameViewBase, | 1265 FrameViewBase, |
1272 frameViewBase, | 1266 frameViewBase, |
1273 frameViewBase->IsFrameView(), | 1267 frameViewBase->IsFrameView(), |
1274 frameViewBase.IsFrameView()); | 1268 frameViewBase.IsFrameView()); |
1275 DEFINE_TYPE_CASTS(FrameView, | 1269 DEFINE_TYPE_CASTS(FrameView, |
| 1270 FrameOrPlugin, |
| 1271 frame_or_plugin, |
| 1272 frame_or_plugin->IsFrameView(), |
| 1273 frame_or_plugin.IsFrameView()); |
| 1274 DEFINE_TYPE_CASTS(FrameView, |
1276 ScrollableArea, | 1275 ScrollableArea, |
1277 scrollableArea, | 1276 scrollable_area, |
1278 scrollableArea->IsFrameView(), | 1277 scrollable_area->IsFrameView(), |
1279 scrollableArea.IsFrameView()); | 1278 scrollable_area.IsFrameView()); |
1280 | 1279 |
1281 } // namespace blink | 1280 } // namespace blink |
1282 | 1281 |
1283 #endif // FrameView_h | 1282 #endif // FrameView_h |
OLD | NEW |