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 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&) override; | 327 virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&) override; |
328 virtual void getTickmarks(Vector<IntRect>&) const override; | 328 virtual void getTickmarks(Vector<IntRect>&) const override; |
329 void scrollTo(const DoublePoint&); | 329 void scrollTo(const DoublePoint&); |
330 virtual IntRect scrollableAreaBoundingBox() const override; | 330 virtual IntRect scrollableAreaBoundingBox() const override; |
331 virtual bool scrollAnimatorEnabled() const override; | 331 virtual bool scrollAnimatorEnabled() const override; |
332 virtual bool usesCompositedScrolling() const override; | 332 virtual bool usesCompositedScrolling() const override; |
333 virtual GraphicsLayer* layerForScrolling() const override; | 333 virtual GraphicsLayer* layerForScrolling() const override; |
334 virtual GraphicsLayer* layerForHorizontalScrollbar() const override; | 334 virtual GraphicsLayer* layerForHorizontalScrollbar() const override; |
335 virtual GraphicsLayer* layerForVerticalScrollbar() const override; | 335 virtual GraphicsLayer* layerForVerticalScrollbar() const override; |
336 virtual GraphicsLayer* layerForScrollCorner() const override; | 336 virtual GraphicsLayer* layerForScrollCorner() const override; |
337 | |
338 // --- ScrollView --- | |
339 virtual int scrollSize(ScrollbarOrientation) const override; | 337 virtual int scrollSize(ScrollbarOrientation) const override; |
340 virtual void setScrollOffset(const IntPoint&) override; | 338 virtual void setScrollOffset(const IntPoint&) override; |
341 virtual void setScrollOffset(const DoublePoint&) override; | 339 virtual void setScrollOffset(const DoublePoint&) override; |
342 virtual bool isScrollCornerVisible() const override; | 340 virtual bool isScrollCornerVisible() const override; |
343 void scrollbarStyleChangedInternal(); | |
344 virtual bool userInputScrollable(ScrollbarOrientation) const override; | 341 virtual bool userInputScrollable(ScrollbarOrientation) const override; |
345 virtual bool shouldPlaceVerticalScrollbarOnLeft() const override; | 342 virtual bool shouldPlaceVerticalScrollbarOnLeft() const override; |
346 | 343 |
| 344 void scrollbarStyleChangedInternal(); |
347 void notifyPageThatContentAreaWillPaintInternal() const; | 345 void notifyPageThatContentAreaWillPaintInternal() const; |
348 | 346 |
349 // The window that hosts the ScrollView. The ScrollView will communicate scr
olls and repaints to the | 347 // The window that hosts the FrameView. The FrameView will communicate scrol
ls and repaints to the |
350 // host window in the window's coordinate space. | 348 // host window in the window's coordinate space. |
351 HostWindow* hostWindow() const; | 349 HostWindow* hostWindow() const; |
352 | 350 |
353 // Returns a clip rect in host window coordinates. Used to clip the blit on
a scroll. | 351 // Returns a clip rect in host window coordinates. Used to clip the blit on
a scroll. |
354 IntRect windowClipRect(IncludeScrollbarsInRect = ExcludeScrollbars) const; | 352 IntRect windowClipRect(IncludeScrollbarsInRect = ExcludeScrollbars) const; |
355 | 353 |
356 // Functions for child manipulation and inspection. | 354 // Functions for child manipulation and inspection. |
357 const HashSet<RefPtr<Widget> >* children() const { return &m_children; } | 355 const HashSet<RefPtr<Widget> >* children() const { return &m_children; } |
358 void addChild(PassRefPtr<Widget>); | 356 void addChild(PassRefPtr<Widget>); |
359 void removeChildInternal(Widget*); | 357 void removeChildInternal(Widget*); |
360 | 358 |
361 // If the scroll view does not use a native widget, then it will have cross-
platform Scrollbars. These functions | 359 // If the scroll view does not use a native widget, then it will have cross-
platform Scrollbars. These functions |
362 // can be used to obtain those scrollbars. | 360 // can be used to obtain those scrollbars. |
363 virtual Scrollbar* horizontalScrollbar() const override { return m_horizonta
lScrollbar.get(); } | 361 virtual Scrollbar* horizontalScrollbar() const override { return m_horizonta
lScrollbar.get(); } |
364 virtual Scrollbar* verticalScrollbar() const override { return m_verticalScr
ollbar.get(); } | 362 virtual Scrollbar* verticalScrollbar() const override { return m_verticalScr
ollbar.get(); } |
365 virtual bool isScrollViewScrollbar(const Widget* child) const override { ret
urn horizontalScrollbar() == child || verticalScrollbar() == child; } | |
366 | 363 |
367 void positionScrollbarLayers(); | 364 void positionScrollbarLayers(); |
368 | 365 |
369 // Functions for setting and retrieving the scrolling mode in each axis (hor
izontal/vertical). The mode has values of | 366 // Functions for setting and retrieving the scrolling mode in each axis (hor
izontal/vertical). The mode has values of |
370 // AlwaysOff, AlwaysOn, and Auto. AlwaysOff means never show a scrollbar, Al
waysOn means always show a scrollbar. | 367 // AlwaysOff, AlwaysOn, and Auto. AlwaysOff means never show a scrollbar, Al
waysOn means always show a scrollbar. |
371 // Auto means show a scrollbar only when one is needed. | 368 // Auto means show a scrollbar only when one is needed. |
372 // Note that for platforms with native widgets, these modes are considered a
dvisory. In other words the underlying native | 369 // Note that for platforms with native widgets, these modes are considered a
dvisory. In other words the underlying native |
373 // widget may choose not to honor the requested modes. | 370 // widget may choose not to honor the requested modes. |
374 void setScrollbarModes(ScrollbarMode horizontalMode, ScrollbarMode verticalM
ode, bool horizontalLock = false, bool verticalLock = false); | 371 void setScrollbarModes(ScrollbarMode horizontalMode, ScrollbarMode verticalM
ode, bool horizontalLock = false, bool verticalLock = false); |
375 void setHorizontalScrollbarMode(ScrollbarMode mode, bool lock = false) { set
ScrollbarModes(mode, verticalScrollbarMode(), lock, verticalScrollbarLock()); } | 372 void setHorizontalScrollbarMode(ScrollbarMode mode, bool lock = false) { set
ScrollbarModes(mode, verticalScrollbarMode(), lock, verticalScrollbarLock()); } |
(...skipping 30 matching lines...) Expand all Loading... |
406 // For the main frame, visibleContentScaleFactor is equal to the page's page
ScaleFactor; it's 1 otherwise. | 403 // For the main frame, visibleContentScaleFactor is equal to the page's page
ScaleFactor; it's 1 otherwise. |
407 IntSize unscaledVisibleContentSize(IncludeScrollbarsInRect = ExcludeScrollba
rs) const; | 404 IntSize unscaledVisibleContentSize(IncludeScrollbarsInRect = ExcludeScrollba
rs) const; |
408 float visibleContentScaleFactorInternal() const { return 1; } | 405 float visibleContentScaleFactorInternal() const { return 1; } |
409 | 406 |
410 // Offset used to convert incoming input events while emulating device metic
s. | 407 // Offset used to convert incoming input events while emulating device metic
s. |
411 IntSize inputEventsOffsetForEmulationInternal() const { return IntSize(); } | 408 IntSize inputEventsOffsetForEmulationInternal() const { return IntSize(); } |
412 | 409 |
413 // Scale used to convert incoming input events. Usually the same as visibleC
ontentScaleFactor(), unless specifically changed. | 410 // Scale used to convert incoming input events. Usually the same as visibleC
ontentScaleFactor(), unless specifically changed. |
414 float inputEventsScaleFactorInternal() const { return visibleContentScaleFac
tor(); } | 411 float inputEventsScaleFactorInternal() const { return visibleContentScaleFac
tor(); } |
415 | 412 |
416 // Functions for getting/setting the size of the document contained inside t
he ScrollView (as an IntSize or as individual width and height | 413 // Functions for getting/setting the size of the document contained inside t
he FrameView (as an IntSize or as individual width and height |
417 // values). | 414 // values). |
418 virtual IntSize contentsSize() const override; // Always at least as big as
the visibleWidth()/visibleHeight(). | 415 virtual IntSize contentsSize() const override; // Always at least as big as
the visibleWidth()/visibleHeight(). |
419 int contentsWidth() const { return contentsSize().width(); } | 416 int contentsWidth() const { return contentsSize().width(); } |
420 int contentsHeight() const { return contentsSize().height(); } | 417 int contentsHeight() const { return contentsSize().height(); } |
421 void setContentsSizeInternal(const IntSize&); | 418 void setContentsSizeInternal(const IntSize&); |
422 | 419 |
423 // Functions for querying the current scrolled position (both as a point, a
size, or as individual X and Y values). | 420 // Functions for querying the current scrolled position (both as a point, a
size, or as individual X and Y values). |
424 // FIXME: Remove the IntPoint version. crbug.com/414283. | 421 // FIXME: Remove the IntPoint version. crbug.com/414283. |
425 virtual IntPoint scrollPosition() const override { return visibleContentRect
().location(); } | 422 virtual IntPoint scrollPosition() const override { return visibleContentRect
().location(); } |
426 virtual DoublePoint scrollPositionDouble() const override { return m_scrollP
osition; } | 423 virtual DoublePoint scrollPositionDouble() const override { return m_scrollP
osition; } |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 // Updates our scrollbars and notifies our contents of the resize. | 485 // Updates our scrollbars and notifies our contents of the resize. |
489 void setFrameRectInternal(const IntRect&); | 486 void setFrameRectInternal(const IntRect&); |
490 | 487 |
491 // For platforms that need to hit test scrollbars from within the engine's e
vent handlers (like Win32). | 488 // For platforms that need to hit test scrollbars from within the engine's e
vent handlers (like Win32). |
492 Scrollbar* scrollbarAtWindowPoint(const IntPoint& windowPoint); | 489 Scrollbar* scrollbarAtWindowPoint(const IntPoint& windowPoint); |
493 Scrollbar* scrollbarAtViewPoint(const IntPoint& viewPoint); | 490 Scrollbar* scrollbarAtViewPoint(const IntPoint& viewPoint); |
494 | 491 |
495 virtual IntPoint convertChildToSelf(const Widget* child, const IntPoint& poi
nt) const override | 492 virtual IntPoint convertChildToSelf(const Widget* child, const IntPoint& poi
nt) const override |
496 { | 493 { |
497 IntPoint newPoint = point; | 494 IntPoint newPoint = point; |
498 if (!isScrollViewScrollbar(child)) | 495 if (!isFrameViewScrollbar(child)) |
499 newPoint = point - scrollOffset(); | 496 newPoint = point - scrollOffset(); |
500 newPoint.moveBy(child->location()); | 497 newPoint.moveBy(child->location()); |
501 return newPoint; | 498 return newPoint; |
502 } | 499 } |
503 | 500 |
504 virtual IntPoint convertSelfToChild(const Widget* child, const IntPoint& poi
nt) const override | 501 virtual IntPoint convertSelfToChild(const Widget* child, const IntPoint& poi
nt) const override |
505 { | 502 { |
506 IntPoint newPoint = point; | 503 IntPoint newPoint = point; |
507 if (!isScrollViewScrollbar(child)) | 504 if (!isFrameViewScrollbar(child)) |
508 newPoint = point + scrollOffset(); | 505 newPoint = point + scrollOffset(); |
509 newPoint.moveBy(-child->location()); | 506 newPoint.moveBy(-child->location()); |
510 return newPoint; | 507 return newPoint; |
511 } | 508 } |
512 | 509 |
513 // Widget override. Handles painting of the contents of the view as well as
the scrollbars. | 510 // Widget override. Handles painting of the contents of the view as well as
the scrollbars. |
514 virtual void paint(GraphicsContext*, const IntRect&) override; | 511 virtual void paint(GraphicsContext*, const IntRect&) override; |
515 void paintScrollbars(GraphicsContext*, const IntRect&); | 512 void paintScrollbars(GraphicsContext*, const IntRect&); |
516 | 513 |
517 // Widget overrides to ensure that our children's visibility status is kept
up to date when we get shown and hidden. | 514 // Widget overrides to ensure that our children's visibility status is kept
up to date when we get shown and hidden. |
(...skipping 14 matching lines...) Expand all Loading... |
532 void paintScrollbarInternal(GraphicsContext*, Scrollbar*, const IntRect&); | 529 void paintScrollbarInternal(GraphicsContext*, Scrollbar*, const IntRect&); |
533 | 530 |
534 virtual IntRect convertFromScrollbarToContainingView(const Scrollbar*, const
IntRect&) const override; | 531 virtual IntRect convertFromScrollbarToContainingView(const Scrollbar*, const
IntRect&) const override; |
535 virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const
IntRect&) const override; | 532 virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const
IntRect&) const override; |
536 virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, cons
t IntPoint&) const override; | 533 virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, cons
t IntPoint&) const override; |
537 virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, cons
t IntPoint&) const override; | 534 virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, cons
t IntPoint&) const override; |
538 | 535 |
539 void calculateAndPaintOverhangAreas(GraphicsContext*, const IntRect& dirtyRe
ct); | 536 void calculateAndPaintOverhangAreas(GraphicsContext*, const IntRect& dirtyRe
ct); |
540 void calculateAndPaintOverhangBackground(GraphicsContext*, const IntRect& di
rtyRect); | 537 void calculateAndPaintOverhangBackground(GraphicsContext*, const IntRect& di
rtyRect); |
541 | 538 |
542 virtual bool isScrollView() const override final { return true; } | |
543 virtual bool isFrameView() const override { return true; } | 539 virtual bool isFrameView() const override { return true; } |
544 | 540 |
545 protected: | 541 protected: |
546 bool scrollContentsFastPath(const IntSize& scrollDelta); | 542 bool scrollContentsFastPath(const IntSize& scrollDelta); |
547 void scrollContentsSlowPath(const IntRect& updateRect); | 543 void scrollContentsSlowPath(const IntRect& updateRect); |
548 | 544 |
549 bool isVerticalDocument() const; | 545 bool isVerticalDocument() const; |
550 bool isFlippedDocument() const; | 546 bool isFlippedDocument() const; |
551 | 547 |
552 // Prevents creation of scrollbars. Used to prevent drawing two sets of | 548 // Prevents creation of scrollbars. Used to prevent drawing two sets of |
553 // overlay scrollbars in the case of the pinch viewport. | 549 // overlay scrollbars in the case of the pinch viewport. |
554 bool scrollbarsDisabled() const; | 550 bool scrollbarsDisabled() const; |
555 | 551 |
556 // --- ScrollView --- | 552 // NOTE: This should only be called by the overridden setScrollOffset from S
crollableArea. |
557 // NOTE: This should only be called by the overriden setScrollOffset from Sc
rollableArea. | |
558 void scrollToInternal(const DoublePoint& newPosition); | 553 void scrollToInternal(const DoublePoint& newPosition); |
559 | 554 |
560 void contentRectangleForPaintInvalidationInternal(const IntRect&); | 555 void contentRectangleForPaintInvalidationInternal(const IntRect&); |
561 | 556 |
562 void paintOverhangAreasInternal(GraphicsContext*, const IntRect& horizontalO
verhangArea, const IntRect& verticalOverhangArea, const IntRect& dirtyRect); | 557 void paintOverhangAreasInternal(GraphicsContext*, const IntRect& horizontalO
verhangArea, const IntRect& verticalOverhangArea, const IntRect& dirtyRect); |
563 | 558 |
564 // These functions are used to create/destroy scrollbars. | 559 // These functions are used to create/destroy scrollbars. |
565 void setHasHorizontalScrollbar(bool); | 560 void setHasHorizontalScrollbar(bool); |
566 void setHasVerticalScrollbar(bool); | 561 void setHasVerticalScrollbar(bool); |
567 | 562 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
675 AXObjectCache* axObjectCache() const; | 670 AXObjectCache* axObjectCache() const; |
676 void removeFromAXObjectCache(); | 671 void removeFromAXObjectCache(); |
677 | 672 |
678 void setLayoutSizeInternal(const IntSize&); | 673 void setLayoutSizeInternal(const IntSize&); |
679 | 674 |
680 bool paintInvalidationIsAllowed() const | 675 bool paintInvalidationIsAllowed() const |
681 { | 676 { |
682 return !isInPerformLayout() || canInvalidatePaintDuringPerformLayout(); | 677 return !isInPerformLayout() || canInvalidatePaintDuringPerformLayout(); |
683 } | 678 } |
684 | 679 |
| 680 bool adjustScrollbarExistence(ComputeScrollbarExistenceOption = FirstPass); |
| 681 void adjustScrollbarOpacity(); |
| 682 // FIXME(bokan): setScrollOffset, setScrollPosition, scrollTo, scrollToOffse
tWithoutAnimation, |
| 683 // notifyScrollPositionChanged...there's too many ways to scroll this class.
This needs |
| 684 // some cleanup. |
| 685 void setScrollOffsetFromUpdateScrollbars(const DoubleSize&); |
| 686 |
| 687 IntRect rectToCopyOnScroll() const; |
| 688 |
| 689 void calculateOverhangAreasForPainting(IntRect& horizontalOverhangRect, IntR
ect& verticalOverhangRect); |
| 690 void updateOverhangAreas(); |
| 691 |
| 692 bool isFrameViewScrollbar(const Widget* child) const { return horizontalScro
llbar() == child || verticalScrollbar() == child; } |
| 693 |
685 static double s_currentFrameTimeStamp; // used for detecting decoded resourc
e thrash in the cache | 694 static double s_currentFrameTimeStamp; // used for detecting decoded resourc
e thrash in the cache |
686 static bool s_inPaintContents; | 695 static bool s_inPaintContents; |
687 | 696 |
688 LayoutSize m_size; | 697 LayoutSize m_size; |
689 | 698 |
690 typedef WillBeHeapHashSet<RefPtrWillBeMember<RenderEmbeddedObject> > Embedde
dObjectSet; | 699 typedef WillBeHeapHashSet<RefPtrWillBeMember<RenderEmbeddedObject> > Embedde
dObjectSet; |
691 WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderEmbeddedObject> > m_wid
getUpdateSet; | 700 WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderEmbeddedObject> > m_wid
getUpdateSet; |
692 | 701 |
693 // FIXME: These are just "children" of the FrameView and should be RefPtr<Wi
dget> instead. | 702 // FIXME: These are just "children" of the FrameView and should be RefPtr<Wi
dget> instead. |
694 WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderWidget> > m_widgets; | 703 WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderWidget> > m_widgets; |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
768 IntSize m_layoutSize; | 777 IntSize m_layoutSize; |
769 bool m_layoutSizeFixedToFrameSize; | 778 bool m_layoutSizeFixedToFrameSize; |
770 | 779 |
771 Timer<FrameView> m_didScrollTimer; | 780 Timer<FrameView> m_didScrollTimer; |
772 | 781 |
773 Vector<IntRect> m_tickmarks; | 782 Vector<IntRect> m_tickmarks; |
774 | 783 |
775 bool m_needsUpdateWidgetPositions; | 784 bool m_needsUpdateWidgetPositions; |
776 float m_topControlsViewportAdjustment; | 785 float m_topControlsViewportAdjustment; |
777 | 786 |
778 // --- ScrollView --- | |
779 bool adjustScrollbarExistence(ComputeScrollbarExistenceOption = FirstPass); | |
780 void adjustScrollbarOpacity(); | |
781 // FIXME(bokan): setScrollOffset, setScrollPosition, scrollTo, scrollToOffse
tWithoutAnimation, | |
782 // notifyScrollPositionChanged...there's too many ways to scroll this class.
This needs | |
783 // some cleanup. | |
784 void setScrollOffsetFromUpdateScrollbars(const DoubleSize&); | |
785 | |
786 RefPtr<Scrollbar> m_horizontalScrollbar; | 787 RefPtr<Scrollbar> m_horizontalScrollbar; |
787 RefPtr<Scrollbar> m_verticalScrollbar; | 788 RefPtr<Scrollbar> m_verticalScrollbar; |
788 ScrollbarMode m_horizontalScrollbarMode; | 789 ScrollbarMode m_horizontalScrollbarMode; |
789 ScrollbarMode m_verticalScrollbarMode; | 790 ScrollbarMode m_verticalScrollbarMode; |
790 | 791 |
791 bool m_horizontalScrollbarLock; | 792 bool m_horizontalScrollbarLock; |
792 bool m_verticalScrollbarLock; | 793 bool m_verticalScrollbarLock; |
793 | 794 |
794 HashSet<RefPtr<Widget> > m_children; | 795 HashSet<RefPtr<Widget> > m_children; |
795 | 796 |
796 DoubleSize m_pendingScrollDelta; | 797 DoubleSize m_pendingScrollDelta; |
797 DoublePoint m_scrollPosition; | 798 DoublePoint m_scrollPosition; |
798 DoublePoint m_cachedScrollPosition; | 799 DoublePoint m_cachedScrollPosition; |
799 IntSize m_contentsSize; | 800 IntSize m_contentsSize; |
800 | 801 |
801 int m_scrollbarsAvoidingResizer; | 802 int m_scrollbarsAvoidingResizer; |
802 bool m_scrollbarsSuppressed; | 803 bool m_scrollbarsSuppressed; |
803 | 804 |
804 bool m_inUpdateScrollbars; | 805 bool m_inUpdateScrollbars; |
805 | 806 |
806 IntPoint m_panScrollIconPoint; | 807 IntPoint m_panScrollIconPoint; |
807 bool m_drawPanScrollIcon; | 808 bool m_drawPanScrollIcon; |
808 | 809 |
809 bool m_clipsRepaints; | 810 bool m_clipsRepaints; |
810 | |
811 IntRect rectToCopyOnScroll() const; | |
812 | |
813 void calculateOverhangAreasForPainting(IntRect& horizontalOverhangRect, IntR
ect& verticalOverhangRect); | |
814 void updateOverhangAreas(); | |
815 }; | 811 }; |
816 | 812 |
817 inline void FrameView::incrementVisuallyNonEmptyCharacterCount(unsigned count) | 813 inline void FrameView::incrementVisuallyNonEmptyCharacterCount(unsigned count) |
818 { | 814 { |
819 if (m_isVisuallyNonEmpty) | 815 if (m_isVisuallyNonEmpty) |
820 return; | 816 return; |
821 m_visuallyNonEmptyCharacterCount += count; | 817 m_visuallyNonEmptyCharacterCount += count; |
822 // Use a threshold value to prevent very small amounts of visible content fr
om triggering didFirstVisuallyNonEmptyLayout. | 818 // Use a threshold value to prevent very small amounts of visible content fr
om triggering didFirstVisuallyNonEmptyLayout. |
823 // The first few hundred characters rarely contain the interesting content o
f the page. | 819 // The first few hundred characters rarely contain the interesting content o
f the page. |
824 static const unsigned visualCharacterThreshold = 200; | 820 static const unsigned visualCharacterThreshold = 200; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
859 m_view->setCanInvalidatePaintDuringPerformLayout(m_originalValue); | 855 m_view->setCanInvalidatePaintDuringPerformLayout(m_originalValue); |
860 } | 856 } |
861 private: | 857 private: |
862 FrameView* m_view; | 858 FrameView* m_view; |
863 bool m_originalValue; | 859 bool m_originalValue; |
864 }; | 860 }; |
865 | 861 |
866 } // namespace blink | 862 } // namespace blink |
867 | 863 |
868 #endif // FrameView_h | 864 #endif // FrameView_h |
OLD | NEW |