| 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 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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 class RenderBox; | 56 class RenderBox; |
| 57 class RenderEmbeddedObject; | 57 class RenderEmbeddedObject; |
| 58 class RenderObject; | 58 class RenderObject; |
| 59 class RenderPart; | 59 class RenderPart; |
| 60 class RenderScrollbarPart; | 60 class RenderScrollbarPart; |
| 61 class RenderView; | 61 class RenderView; |
| 62 struct CompositedSelectionBound; | 62 struct CompositedSelectionBound; |
| 63 | 63 |
| 64 typedef unsigned long long DOMTimeStamp; | 64 typedef unsigned long long DOMTimeStamp; |
| 65 | 65 |
| 66 // FIXME: Oilpan: move Widget (and thereby FrameView) to the heap. | |
| 67 class FrameView final : public Widget, public ScrollableArea { | 66 class FrameView final : public Widget, public ScrollableArea { |
| 68 public: | 67 public: |
| 69 friend class RenderView; | 68 friend class RenderView; |
| 70 friend class Internals; | 69 friend class Internals; |
| 71 | 70 |
| 72 static PassRefPtr<FrameView> create(LocalFrame*); | 71 static PassRefPtrWillBeRawPtr<FrameView> create(LocalFrame*); |
| 73 static PassRefPtr<FrameView> create(LocalFrame*, const IntSize& initialSize)
; | 72 static PassRefPtrWillBeRawPtr<FrameView> create(LocalFrame*, const IntSize&
initialSize); |
| 74 | 73 |
| 75 virtual ~FrameView(); | 74 virtual ~FrameView(); |
| 76 | 75 |
| 77 virtual void invalidateRect(const IntRect&) override; | 76 virtual void invalidateRect(const IntRect&) override; |
| 78 virtual void setFrameRect(const IntRect&) override; | 77 virtual void setFrameRect(const IntRect&) override; |
| 79 | 78 |
| 80 LocalFrame& frame() const | 79 LocalFrame& frame() const |
| 81 { | 80 { |
| 82 ASSERT(m_frame); | 81 ASSERT(m_frame); |
| 83 return *m_frame; | 82 return *m_frame; |
| 84 } | 83 } |
| 85 | 84 |
| 86 Page* page() const; | 85 Page* page() const; |
| 87 | 86 |
| 88 RenderView* renderView() const; | 87 RenderView* renderView() const; |
| 89 | 88 |
| 90 void setCanHaveScrollbars(bool); | 89 void setCanHaveScrollbars(bool); |
| 91 | 90 |
| 92 PassRefPtr<Scrollbar> createScrollbar(ScrollbarOrientation); | 91 PassRefPtrWillBeRawPtr<Scrollbar> createScrollbar(ScrollbarOrientation); |
| 93 | 92 |
| 94 void setContentsSize(const IntSize&); | 93 void setContentsSize(const IntSize&); |
| 95 IntPoint clampOffsetAtScale(const IntPoint& offset, float scale) const; | 94 IntPoint clampOffsetAtScale(const IntPoint& offset, float scale) const; |
| 96 | 95 |
| 97 void layout(bool allowSubtree = true); | 96 void layout(bool allowSubtree = true); |
| 98 bool didFirstLayout() const; | 97 bool didFirstLayout() const; |
| 99 void scheduleRelayout(); | 98 void scheduleRelayout(); |
| 100 void scheduleRelayoutOfSubtree(RenderObject*); | 99 void scheduleRelayoutOfSubtree(RenderObject*); |
| 101 bool layoutPending() const; | 100 bool layoutPending() const; |
| 102 bool isInPerformLayout() const; | 101 bool isInPerformLayout() const; |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 | 221 |
| 223 void updateLayoutAndStyleForPainting(); | 222 void updateLayoutAndStyleForPainting(); |
| 224 void updateLayoutAndStyleIfNeededRecursive(); | 223 void updateLayoutAndStyleIfNeededRecursive(); |
| 225 | 224 |
| 226 void invalidateTreeIfNeededRecursive(); | 225 void invalidateTreeIfNeededRecursive(); |
| 227 | 226 |
| 228 void incrementVisuallyNonEmptyCharacterCount(unsigned); | 227 void incrementVisuallyNonEmptyCharacterCount(unsigned); |
| 229 void incrementVisuallyNonEmptyPixelCount(const IntSize&); | 228 void incrementVisuallyNonEmptyPixelCount(const IntSize&); |
| 230 void setIsVisuallyNonEmpty() { m_isVisuallyNonEmpty = true; } | 229 void setIsVisuallyNonEmpty() { m_isVisuallyNonEmpty = true; } |
| 231 void enableAutoSizeMode(const IntSize& minSize, const IntSize& maxSize); | 230 void enableAutoSizeMode(const IntSize& minSize, const IntSize& maxSize); |
| 232 void disableAutoSizeMode() { m_autoSizeInfo.clear(); } | 231 void disableAutoSizeMode() { disposeAutoSizeInfo(); } |
| 233 | 232 |
| 234 void forceLayout(bool allowSubtree = false); | 233 void forceLayout(bool allowSubtree = false); |
| 235 void forceLayoutForPagination(const FloatSize& pageSize, const FloatSize& or
iginalPageSize, float maximumShrinkFactor); | 234 void forceLayoutForPagination(const FloatSize& pageSize, const FloatSize& or
iginalPageSize, float maximumShrinkFactor); |
| 236 | 235 |
| 237 bool scrollToFragment(const KURL&); | 236 bool scrollToFragment(const KURL&); |
| 238 bool scrollToAnchor(const String&); | 237 bool scrollToAnchor(const String&); |
| 239 void maintainScrollPositionAtAnchor(Node*); | 238 void maintainScrollPositionAtAnchor(Node*); |
| 240 void scrollElementToRect(Element*, const IntRect&); | 239 void scrollElementToRect(Element*, const IntRect&); |
| 241 void scrollContentsIfNeededRecursive(); | 240 void scrollContentsIfNeededRecursive(); |
| 242 | 241 |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 347 | 346 |
| 348 void notifyPageThatContentAreaWillPaintInternal() const; | 347 void notifyPageThatContentAreaWillPaintInternal() const; |
| 349 | 348 |
| 350 // The window that hosts the ScrollView. The ScrollView will communicate scr
olls and repaints to the | 349 // The window that hosts the ScrollView. The ScrollView will communicate scr
olls and repaints to the |
| 351 // host window in the window's coordinate space. | 350 // host window in the window's coordinate space. |
| 352 HostWindow* hostWindow() const; | 351 HostWindow* hostWindow() const; |
| 353 | 352 |
| 354 // Returns a clip rect in host window coordinates. Used to clip the blit on
a scroll. | 353 // Returns a clip rect in host window coordinates. Used to clip the blit on
a scroll. |
| 355 IntRect windowClipRect(IncludeScrollbarsInRect = ExcludeScrollbars) const; | 354 IntRect windowClipRect(IncludeScrollbarsInRect = ExcludeScrollbars) const; |
| 356 | 355 |
| 356 typedef WillBeHeapHashSet<RefPtrWillBeMember<Widget> > ChildrenWidgetSet; |
| 357 |
| 357 // Functions for child manipulation and inspection. | 358 // Functions for child manipulation and inspection. |
| 358 const HashSet<RefPtr<Widget> >* children() const { return &m_children; } | 359 const ChildrenWidgetSet* children() const { return &m_children; } |
| 359 void addChild(PassRefPtr<Widget>); | 360 void addChild(PassRefPtrWillBeRawPtr<Widget>); |
| 360 void removeChildInternal(Widget*); | 361 void removeChildInternal(Widget*); |
| 361 | 362 |
| 362 // If the scroll view does not use a native widget, then it will have cross-
platform Scrollbars. These functions | 363 // If the scroll view does not use a native widget, then it will have cross-
platform Scrollbars. These functions |
| 363 // can be used to obtain those scrollbars. | 364 // can be used to obtain those scrollbars. |
| 364 virtual Scrollbar* horizontalScrollbar() const override { return m_horizonta
lScrollbar.get(); } | 365 virtual Scrollbar* horizontalScrollbar() const override { return m_horizonta
lScrollbar.get(); } |
| 365 virtual Scrollbar* verticalScrollbar() const override { return m_verticalScr
ollbar.get(); } | 366 virtual Scrollbar* verticalScrollbar() const override { return m_verticalScr
ollbar.get(); } |
| 366 virtual bool isScrollViewScrollbar(const Widget* child) const override { ret
urn horizontalScrollbar() == child || verticalScrollbar() == child; } | 367 virtual bool isScrollViewScrollbar(const Widget* child) const override { ret
urn horizontalScrollbar() == child || verticalScrollbar() == child; } |
| 367 | 368 |
| 368 void positionScrollbarLayers(); | 369 void positionScrollbarLayers(); |
| 369 | 370 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 388 | 389 |
| 389 void setCanHaveScrollbarsInternal(bool); | 390 void setCanHaveScrollbarsInternal(bool); |
| 390 bool canHaveScrollbars() const { return horizontalScrollbarMode() != Scrollb
arAlwaysOff || verticalScrollbarMode() != ScrollbarAlwaysOff; } | 391 bool canHaveScrollbars() const { return horizontalScrollbarMode() != Scrollb
arAlwaysOff || verticalScrollbarMode() != ScrollbarAlwaysOff; } |
| 391 | 392 |
| 392 // By default, paint events are clipped to the visible area. If set to | 393 // By default, paint events are clipped to the visible area. If set to |
| 393 // false, paint events are no longer clipped. | 394 // false, paint events are no longer clipped. |
| 394 bool clipsPaintInvalidations() const { return m_clipsRepaints; } | 395 bool clipsPaintInvalidations() const { return m_clipsRepaints; } |
| 395 void setClipsRepaints(bool); | 396 void setClipsRepaints(bool); |
| 396 | 397 |
| 397 // Overridden by FrameView to create custom CSS scrollbars if applicable. | 398 // Overridden by FrameView to create custom CSS scrollbars if applicable. |
| 398 PassRefPtr<Scrollbar> createScrollbarInternal(ScrollbarOrientation); | 399 PassRefPtrWillBeRawPtr<Scrollbar> createScrollbarInternal(ScrollbarOrientati
on); |
| 399 | 400 |
| 400 // The visible content rect has a location that is the scrolled offset of th
e document. The width and height are the viewport width | 401 // The visible content rect has a location that is the scrolled offset of th
e document. The width and height are the viewport width |
| 401 // and height. By default the scrollbars themselves are excluded from this r
ectangle, but an optional boolean argument allows them to be | 402 // and height. By default the scrollbars themselves are excluded from this r
ectangle, but an optional boolean argument allows them to be |
| 402 // included. | 403 // included. |
| 403 virtual IntRect visibleContentRect(IncludeScrollbarsInRect = ExcludeScrollba
rs) const override; | 404 virtual IntRect visibleContentRect(IncludeScrollbarsInRect = ExcludeScrollba
rs) const override; |
| 404 IntSize visibleSize() const { return visibleContentRect().size(); } | 405 IntSize visibleSize() const { return visibleContentRect().size(); } |
| 405 | 406 |
| 406 // visibleContentRect().size() is computed from unscaledVisibleContentSize()
divided by the value of visibleContentScaleFactor. | 407 // visibleContentRect().size() is computed from unscaledVisibleContentSize()
divided by the value of visibleContentScaleFactor. |
| 407 // For the main frame, visibleContentScaleFactor is equal to the page's page
ScaleFactor; it's 1 otherwise. | 408 // For the main frame, visibleContentScaleFactor is equal to the page's page
ScaleFactor; it's 1 otherwise. |
| 408 IntSize unscaledVisibleContentSize(IncludeScrollbarsInRect = ExcludeScrollba
rs) const; | 409 IntSize unscaledVisibleContentSize(IncludeScrollbarsInRect = ExcludeScrollba
rs) const; |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 536 virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const
IntRect&) const override; | 537 virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const
IntRect&) const override; |
| 537 virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, cons
t IntPoint&) const override; | 538 virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, cons
t IntPoint&) const override; |
| 538 virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, cons
t IntPoint&) const override; | 539 virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, cons
t IntPoint&) const override; |
| 539 | 540 |
| 540 void calculateAndPaintOverhangAreas(GraphicsContext*, const IntRect& dirtyRe
ct); | 541 void calculateAndPaintOverhangAreas(GraphicsContext*, const IntRect& dirtyRe
ct); |
| 541 void calculateAndPaintOverhangBackground(GraphicsContext*, const IntRect& di
rtyRect); | 542 void calculateAndPaintOverhangBackground(GraphicsContext*, const IntRect& di
rtyRect); |
| 542 | 543 |
| 543 virtual bool isScrollView() const override final { return true; } | 544 virtual bool isScrollView() const override final { return true; } |
| 544 virtual bool isFrameView() const override { return true; } | 545 virtual bool isFrameView() const override { return true; } |
| 545 | 546 |
| 547 virtual void trace(Visitor*) override; |
| 548 |
| 546 protected: | 549 protected: |
| 547 bool scrollContentsFastPath(const IntSize& scrollDelta); | 550 bool scrollContentsFastPath(const IntSize& scrollDelta); |
| 548 void scrollContentsSlowPath(const IntRect& updateRect); | 551 void scrollContentsSlowPath(const IntRect& updateRect); |
| 549 | 552 |
| 550 bool isVerticalDocument() const; | 553 bool isVerticalDocument() const; |
| 551 bool isFlippedDocument() const; | 554 bool isFlippedDocument() const; |
| 552 | 555 |
| 553 // Prevents creation of scrollbars. Used to prevent drawing two sets of | 556 // Prevents creation of scrollbars. Used to prevent drawing two sets of |
| 554 // overlay scrollbars in the case of the pinch viewport. | 557 // overlay scrollbars in the case of the pinch viewport. |
| 555 bool scrollbarsDisabled() const; | 558 bool scrollbarsDisabled() const; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 601 { } | 604 { } |
| 602 private: | 605 private: |
| 603 TemporaryChange<bool> m_scope; | 606 TemporaryChange<bool> m_scope; |
| 604 }; | 607 }; |
| 605 | 608 |
| 606 bool scrollbarsDisabledInternal() const { return false; } | 609 bool scrollbarsDisabledInternal() const { return false; } |
| 607 | 610 |
| 608 private: | 611 private: |
| 609 explicit FrameView(LocalFrame*); | 612 explicit FrameView(LocalFrame*); |
| 610 | 613 |
| 614 void dispose(); |
| 611 void reset(); | 615 void reset(); |
| 612 void init(); | 616 void init(); |
| 613 | 617 |
| 614 virtual void frameRectsChanged() override; | 618 virtual void frameRectsChanged() override; |
| 615 | 619 |
| 616 friend class RenderPart; | 620 friend class RenderPart; |
| 617 | 621 |
| 618 bool contentsInCompositedLayer() const; | 622 bool contentsInCompositedLayer() const; |
| 619 | 623 |
| 620 void applyOverflowToViewportAndSetRenderer(RenderObject*, ScrollbarMode& hMo
de, ScrollbarMode& vMode); | 624 void applyOverflowToViewportAndSetRenderer(RenderObject*, ScrollbarMode& hMo
de, ScrollbarMode& vMode); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 671 | 675 |
| 672 void updateScrollCorner(); | 676 void updateScrollCorner(); |
| 673 | 677 |
| 674 FrameView* parentFrameView() const; | 678 FrameView* parentFrameView() const; |
| 675 | 679 |
| 676 AXObjectCache* axObjectCache() const; | 680 AXObjectCache* axObjectCache() const; |
| 677 void removeFromAXObjectCache(); | 681 void removeFromAXObjectCache(); |
| 678 | 682 |
| 679 void setLayoutSizeInternal(const IntSize&); | 683 void setLayoutSizeInternal(const IntSize&); |
| 680 | 684 |
| 685 void disposeAutoSizeInfo(); |
| 686 |
| 681 bool paintInvalidationIsAllowed() const | 687 bool paintInvalidationIsAllowed() const |
| 682 { | 688 { |
| 683 return !isInPerformLayout() || canInvalidatePaintDuringPerformLayout(); | 689 return !isInPerformLayout() || canInvalidatePaintDuringPerformLayout(); |
| 684 } | 690 } |
| 685 | 691 |
| 686 static double s_currentFrameTimeStamp; // used for detecting decoded resourc
e thrash in the cache | 692 static double s_currentFrameTimeStamp; // used for detecting decoded resourc
e thrash in the cache |
| 687 static bool s_inPaintContents; | 693 static bool s_inPaintContents; |
| 688 | 694 |
| 689 LayoutSize m_size; | 695 LayoutSize m_size; |
| 690 | 696 |
| 691 typedef WillBeHeapHashSet<RefPtrWillBeMember<RenderEmbeddedObject> > Embedde
dObjectSet; | 697 typedef WillBeHeapHashSet<RefPtrWillBeMember<RenderEmbeddedObject> > Embedde
dObjectSet; |
| 692 WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderEmbeddedObject> > m_par
tUpdateSet; | 698 WillBeHeapHashSet<RefPtrWillBeMember<RenderEmbeddedObject> > m_partUpdateSet
; |
| 693 | 699 |
| 694 // FIXME: These are just "children" of the FrameView and should be RefPtr<Wi
dget> instead. | 700 // FIXME: These are just "children" of the FrameView and should be RefPtrWil
lBeMember<Widget> instead. |
| 695 WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderPart> > m_parts; | 701 WillBeHeapHashSet<RefPtrWillBeMember<RenderPart> > m_parts; |
| 696 | 702 |
| 697 // Oilpan: the use of a persistent back reference 'emulates' the | 703 // The RefPtr cycle between LocalFrame and FrameView is broken |
| 698 // RefPtr-cycle that is kept between the two objects non-Oilpan. | 704 // when a LocalFrame is detached by FrameLoader::detachFromParent(). |
| 705 // It clears the LocalFrame's m_view reference via setView(nullptr). |
| 699 // | 706 // |
| 700 // That cycle is broken when a LocalFrame is detached by | 707 // For Oilpan, Member reference cycles pose no problem, but |
| 701 // FrameLoader::detachFromParent(), it then clears its | 708 // LocalFrame's FrameView is also cleared by setView(). This additionally |
| 702 // FrameView's m_frame reference by calling setView(nullptr). | 709 // triggers FrameView::dispose(), which performs the operations |
| 703 RefPtrWillBePersistent<LocalFrame> m_frame; | 710 // that cannot be delayed until finalization time. |
| 711 RefPtrWillBeMember<LocalFrame> m_frame; |
| 704 | 712 |
| 705 bool m_doFullPaintInvalidation; | 713 bool m_doFullPaintInvalidation; |
| 706 | 714 |
| 707 bool m_canHaveScrollbars; | 715 bool m_canHaveScrollbars; |
| 708 unsigned m_slowRepaintObjectCount; | 716 unsigned m_slowRepaintObjectCount; |
| 709 | 717 |
| 710 bool m_hasPendingLayout; | 718 bool m_hasPendingLayout; |
| 711 RenderObject* m_layoutSubtreeRoot; | 719 RenderObject* m_layoutSubtreeRoot; |
| 712 | 720 |
| 713 bool m_layoutSchedulingEnabled; | 721 bool m_layoutSchedulingEnabled; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 736 | 744 |
| 737 bool m_wasScrolledByUser; | 745 bool m_wasScrolledByUser; |
| 738 bool m_inProgrammaticScroll; | 746 bool m_inProgrammaticScroll; |
| 739 bool m_safeToPropagateScrollToParent; | 747 bool m_safeToPropagateScrollToParent; |
| 740 | 748 |
| 741 double m_lastPaintTime; | 749 double m_lastPaintTime; |
| 742 | 750 |
| 743 bool m_isTrackingPaintInvalidations; // Used for testing. | 751 bool m_isTrackingPaintInvalidations; // Used for testing. |
| 744 Vector<IntRect> m_trackedPaintInvalidationRects; | 752 Vector<IntRect> m_trackedPaintInvalidationRects; |
| 745 | 753 |
| 746 RefPtrWillBePersistent<Node> m_nodeToDraw; | 754 RefPtrWillBeMember<Node> m_nodeToDraw; |
| 747 PaintBehavior m_paintBehavior; | 755 PaintBehavior m_paintBehavior; |
| 748 bool m_isPainting; | 756 bool m_isPainting; |
| 749 | 757 |
| 750 unsigned m_visuallyNonEmptyCharacterCount; | 758 unsigned m_visuallyNonEmptyCharacterCount; |
| 751 unsigned m_visuallyNonEmptyPixelCount; | 759 unsigned m_visuallyNonEmptyPixelCount; |
| 752 bool m_isVisuallyNonEmpty; | 760 bool m_isVisuallyNonEmpty; |
| 753 bool m_firstVisuallyNonEmptyLayoutCallbackPending; | 761 bool m_firstVisuallyNonEmptyLayoutCallbackPending; |
| 754 | 762 |
| 755 RefPtrWillBePersistent<Node> m_maintainScrollPositionAnchor; | 763 RefPtrWillBeMember<Node> m_maintainScrollPositionAnchor; |
| 756 | 764 |
| 757 // Renderer to hold our custom scroll corner. | 765 // Renderer to hold our custom scroll corner. |
| 758 RawPtrWillBePersistent<RenderScrollbarPart> m_scrollCorner; | 766 RawPtrWillBeMember<RenderScrollbarPart> m_scrollCorner; |
| 759 | 767 |
| 760 OwnPtr<ScrollableAreaSet> m_scrollableAreas; | 768 OwnPtr<ScrollableAreaSet> m_scrollableAreas; |
| 761 OwnPtr<ResizerAreaSet> m_resizerAreas; | 769 OwnPtr<ResizerAreaSet> m_resizerAreas; |
| 762 OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects; | 770 OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects; |
| 763 OwnPtr<FrameViewAutoSizeInfo> m_autoSizeInfo; | 771 OwnPtrWillBeMember<FrameViewAutoSizeInfo> m_autoSizeInfo; |
| 764 | 772 |
| 765 float m_visibleContentScaleFactor; | 773 float m_visibleContentScaleFactor; |
| 766 IntSize m_inputEventsOffsetForEmulation; | 774 IntSize m_inputEventsOffsetForEmulation; |
| 767 float m_inputEventsScaleFactorForEmulation; | 775 float m_inputEventsScaleFactorForEmulation; |
| 768 | 776 |
| 769 IntSize m_layoutSize; | 777 IntSize m_layoutSize; |
| 770 bool m_layoutSizeFixedToFrameSize; | 778 bool m_layoutSizeFixedToFrameSize; |
| 771 | 779 |
| 772 Timer<FrameView> m_didScrollTimer; | 780 Timer<FrameView> m_didScrollTimer; |
| 773 | 781 |
| 774 Vector<IntRect> m_tickmarks; | 782 Vector<IntRect> m_tickmarks; |
| 775 | 783 |
| 784 float m_topControlsViewportAdjustment; |
| 785 |
| 776 bool m_needsUpdateWidgetPositions; | 786 bool m_needsUpdateWidgetPositions; |
| 777 float m_topControlsViewportAdjustment; | 787 |
| 788 #if ENABLE(OILPAN) && ENABLE(ASSERT) |
| 789 // Verified when finalizing. |
| 790 bool m_hasBeenDisposed; |
| 791 #endif |
| 778 | 792 |
| 779 // --- ScrollView --- | 793 // --- ScrollView --- |
| 780 bool adjustScrollbarExistence(ComputeScrollbarExistenceOption = FirstPass); | 794 bool adjustScrollbarExistence(ComputeScrollbarExistenceOption = FirstPass); |
| 781 void adjustScrollbarOpacity(); | 795 void adjustScrollbarOpacity(); |
| 782 // FIXME(bokan): setScrollOffset, setScrollPosition, scrollTo, scrollToOffse
tWithoutAnimation, | 796 // FIXME(bokan): setScrollOffset, setScrollPosition, scrollTo, scrollToOffse
tWithoutAnimation, |
| 783 // notifyScrollPositionChanged...there's too many ways to scroll this class.
This needs | 797 // notifyScrollPositionChanged...there's too many ways to scroll this class.
This needs |
| 784 // some cleanup. | 798 // some cleanup. |
| 785 void setScrollOffsetFromUpdateScrollbars(const DoubleSize&); | 799 void setScrollOffsetFromUpdateScrollbars(const DoubleSize&); |
| 786 | 800 |
| 787 RefPtr<Scrollbar> m_horizontalScrollbar; | 801 RefPtrWillBeMember<Scrollbar> m_horizontalScrollbar; |
| 788 RefPtr<Scrollbar> m_verticalScrollbar; | 802 RefPtrWillBeMember<Scrollbar> m_verticalScrollbar; |
| 789 ScrollbarMode m_horizontalScrollbarMode; | 803 ScrollbarMode m_horizontalScrollbarMode; |
| 790 ScrollbarMode m_verticalScrollbarMode; | 804 ScrollbarMode m_verticalScrollbarMode; |
| 791 | 805 |
| 792 bool m_horizontalScrollbarLock; | 806 bool m_horizontalScrollbarLock; |
| 793 bool m_verticalScrollbarLock; | 807 bool m_verticalScrollbarLock; |
| 794 | 808 |
| 795 HashSet<RefPtr<Widget> > m_children; | 809 ChildrenWidgetSet m_children; |
| 796 | 810 |
| 797 DoubleSize m_pendingScrollDelta; | 811 DoubleSize m_pendingScrollDelta; |
| 798 DoublePoint m_scrollPosition; | 812 DoublePoint m_scrollPosition; |
| 799 DoublePoint m_cachedScrollPosition; | 813 DoublePoint m_cachedScrollPosition; |
| 800 IntSize m_contentsSize; | 814 IntSize m_contentsSize; |
| 801 | 815 |
| 802 int m_scrollbarsAvoidingResizer; | 816 int m_scrollbarsAvoidingResizer; |
| 803 bool m_scrollbarsSuppressed; | 817 bool m_scrollbarsSuppressed; |
| 804 | 818 |
| 805 bool m_inUpdateScrollbars; | 819 bool m_inUpdateScrollbars; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 834 m_visuallyNonEmptyPixelCount += size.width() * size.height(); | 848 m_visuallyNonEmptyPixelCount += size.width() * size.height(); |
| 835 // Use a threshold value to prevent very small amounts of visible content fr
om triggering didFirstVisuallyNonEmptyLayout | 849 // Use a threshold value to prevent very small amounts of visible content fr
om triggering didFirstVisuallyNonEmptyLayout |
| 836 static const unsigned visualPixelThreshold = 32 * 32; | 850 static const unsigned visualPixelThreshold = 32 * 32; |
| 837 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold) | 851 if (m_visuallyNonEmptyPixelCount > visualPixelThreshold) |
| 838 setIsVisuallyNonEmpty(); | 852 setIsVisuallyNonEmpty(); |
| 839 } | 853 } |
| 840 | 854 |
| 841 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra
meView()); | 855 DEFINE_TYPE_CASTS(FrameView, Widget, widget, widget->isFrameView(), widget.isFra
meView()); |
| 842 | 856 |
| 843 class AllowPaintInvalidationScope { | 857 class AllowPaintInvalidationScope { |
| 858 STACK_ALLOCATED(); |
| 844 public: | 859 public: |
| 845 explicit AllowPaintInvalidationScope(FrameView* view) | 860 explicit AllowPaintInvalidationScope(FrameView* view) |
| 846 : m_view(view) | 861 : m_view(view) |
| 847 , m_originalValue(view ? view->canInvalidatePaintDuringPerformLayout() :
false) | 862 , m_originalValue(view ? view->canInvalidatePaintDuringPerformLayout() :
false) |
| 848 { | 863 { |
| 849 if (!m_view) | 864 if (!m_view) |
| 850 return; | 865 return; |
| 851 | 866 |
| 852 m_view->setCanInvalidatePaintDuringPerformLayout(true); | 867 m_view->setCanInvalidatePaintDuringPerformLayout(true); |
| 853 } | 868 } |
| 854 | 869 |
| 855 ~AllowPaintInvalidationScope() | 870 ~AllowPaintInvalidationScope() |
| 856 { | 871 { |
| 857 if (!m_view) | 872 if (!m_view) |
| 858 return; | 873 return; |
| 859 | 874 |
| 860 m_view->setCanInvalidatePaintDuringPerformLayout(m_originalValue); | 875 m_view->setCanInvalidatePaintDuringPerformLayout(m_originalValue); |
| 861 } | 876 } |
| 877 |
| 862 private: | 878 private: |
| 863 FrameView* m_view; | 879 RawPtrWillBeMember<FrameView> m_view; |
| 864 bool m_originalValue; | 880 bool m_originalValue; |
| 865 }; | 881 }; |
| 866 | 882 |
| 867 } // namespace blink | 883 } // namespace blink |
| 868 | 884 |
| 869 #endif // FrameView_h | 885 #endif // FrameView_h |
| OLD | NEW |