OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. |
3 * | 3 * |
4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
5 * | 5 * |
6 * Other contributors: | 6 * Other contributors: |
7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 } | 350 } |
351 | 351 |
352 if (scrollOffset() == toIntSize(newScrollOffset)) | 352 if (scrollOffset() == toIntSize(newScrollOffset)) |
353 return; | 353 return; |
354 | 354 |
355 setScrollOffset(toIntSize(newScrollOffset)); | 355 setScrollOffset(toIntSize(newScrollOffset)); |
356 | 356 |
357 LocalFrame* frame = box().frame(); | 357 LocalFrame* frame = box().frame(); |
358 ASSERT(frame); | 358 ASSERT(frame); |
359 | 359 |
360 RefPtr<FrameView> frameView = box().frameView(); | 360 RefPtrWillBeRawPtr<FrameView> frameView = box().frameView(); |
361 | 361 |
362 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "ScrollLayer",
"data", InspectorScrollLayerEvent::data(&box())); | 362 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "ScrollLayer",
"data", InspectorScrollLayerEvent::data(&box())); |
363 // FIXME(361045): remove InspectorInstrumentation calls once DevTools Timeli
ne migrates to tracing. | 363 // FIXME(361045): remove InspectorInstrumentation calls once DevTools Timeli
ne migrates to tracing. |
364 InspectorInstrumentation::willScrollLayer(&box()); | 364 InspectorInstrumentation::willScrollLayer(&box()); |
365 | 365 |
366 const RenderLayerModelObject* paintInvalidationContainer = box().containerFo
rPaintInvalidation(); | 366 const RenderLayerModelObject* paintInvalidationContainer = box().containerFo
rPaintInvalidation(); |
367 | 367 |
368 // Update the positions of our child layers (if needed as only fixed layers
should be impacted by a scroll). | 368 // Update the positions of our child layers (if needed as only fixed layers
should be impacted by a scroll). |
369 // We don't update compositing layers, because we need to do a deep update f
rom the compositing ancestor. | 369 // We don't update compositing layers, because we need to do a deep update f
rom the compositing ancestor. |
370 if (!frameView->isInPerformLayout()) { | 370 if (!frameView->isInPerformLayout()) { |
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 if (Node* node = renderer.node()) { | 842 if (Node* node = renderer.node()) { |
843 if (ShadowRoot* shadowRoot = node->containingShadowRoot()) { | 843 if (ShadowRoot* shadowRoot = node->containingShadowRoot()) { |
844 if (shadowRoot->type() == ShadowRoot::UserAgentShadowRoot) | 844 if (shadowRoot->type() == ShadowRoot::UserAgentShadowRoot) |
845 return shadowRoot->host()->renderer(); | 845 return shadowRoot->host()->renderer(); |
846 } | 846 } |
847 } | 847 } |
848 | 848 |
849 return &renderer; | 849 return &renderer; |
850 } | 850 } |
851 | 851 |
852 PassRefPtr<Scrollbar> RenderLayerScrollableArea::createScrollbar(ScrollbarOrient
ation orientation) | 852 PassRefPtrWillBeRawPtr<Scrollbar> RenderLayerScrollableArea::createScrollbar(Scr
ollbarOrientation orientation) |
853 { | 853 { |
854 RefPtr<Scrollbar> widget; | 854 RefPtrWillBeRawPtr<Scrollbar> widget = nullptr; |
855 RenderObject* actualRenderer = rendererForScrollbar(box()); | 855 RenderObject* actualRenderer = rendererForScrollbar(box()); |
856 bool hasCustomScrollbarStyle = actualRenderer->isBox() && actualRenderer->st
yle()->hasPseudoStyle(SCROLLBAR); | 856 bool hasCustomScrollbarStyle = actualRenderer->isBox() && actualRenderer->st
yle()->hasPseudoStyle(SCROLLBAR); |
857 if (hasCustomScrollbarStyle) { | 857 if (hasCustomScrollbarStyle) { |
858 widget = RenderScrollbar::createCustomScrollbar(this, orientation, actua
lRenderer->node()); | 858 widget = RenderScrollbar::createCustomScrollbar(this, orientation, actua
lRenderer->node()); |
859 } else { | 859 } else { |
860 ScrollbarControlSize scrollbarSize = RegularScrollbar; | 860 ScrollbarControlSize scrollbarSize = RegularScrollbar; |
861 if (actualRenderer->style()->hasAppearance()) | 861 if (actualRenderer->style()->hasAppearance()) |
862 scrollbarSize = RenderTheme::theme().scrollbarControlSizeForPart(act
ualRenderer->style()->appearance()); | 862 scrollbarSize = RenderTheme::theme().scrollbarControlSizeForPart(act
ualRenderer->style()->appearance()); |
863 widget = Scrollbar::create(this, orientation, scrollbarSize); | 863 widget = Scrollbar::create(this, orientation, scrollbarSize); |
864 if (orientation == HorizontalScrollbar) | 864 if (orientation == HorizontalScrollbar) |
865 didAddScrollbar(widget.get(), HorizontalScrollbar); | 865 didAddScrollbar(widget.get(), HorizontalScrollbar); |
866 else | 866 else |
867 didAddScrollbar(widget.get(), VerticalScrollbar); | 867 didAddScrollbar(widget.get(), VerticalScrollbar); |
868 } | 868 } |
869 box().document().view()->addChild(widget.get()); | 869 box().document().view()->addChild(widget.get()); |
870 return widget.release(); | 870 return widget.release(); |
871 } | 871 } |
872 | 872 |
873 void RenderLayerScrollableArea::destroyScrollbar(ScrollbarOrientation orientatio
n) | 873 void RenderLayerScrollableArea::destroyScrollbar(ScrollbarOrientation orientatio
n) |
874 { | 874 { |
875 RefPtr<Scrollbar>& scrollbar = orientation == HorizontalScrollbar ? m_hBar :
m_vBar; | 875 RefPtrWillBePersistent<Scrollbar>& scrollbar = orientation == HorizontalScro
llbar ? m_hBar : m_vBar; |
876 if (!scrollbar) | 876 if (!scrollbar) |
877 return; | 877 return; |
878 | 878 |
879 if (!scrollbar->isCustomScrollbar()) | 879 if (!scrollbar->isCustomScrollbar()) |
880 willRemoveScrollbar(scrollbar.get(), orientation); | 880 willRemoveScrollbar(scrollbar.get(), orientation); |
881 | 881 |
882 scrollbar->removeFromParent(); | 882 scrollbar->removeFromParent(); |
883 scrollbar->disconnectFromScrollableArea(); | 883 scrollbar->disconnectFromScrollableArea(); |
884 scrollbar = nullptr; | 884 scrollbar = nullptr; |
885 } | 885 } |
(...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1469 void RenderLayerScrollableArea::setTopmostScrollChild(RenderLayer* scrollChild) | 1469 void RenderLayerScrollableArea::setTopmostScrollChild(RenderLayer* scrollChild) |
1470 { | 1470 { |
1471 // We only want to track the topmost scroll child for scrollable areas with | 1471 // We only want to track the topmost scroll child for scrollable areas with |
1472 // overlay scrollbars. | 1472 // overlay scrollbars. |
1473 if (!hasOverlayScrollbars()) | 1473 if (!hasOverlayScrollbars()) |
1474 return; | 1474 return; |
1475 m_nextTopmostScrollChild = scrollChild; | 1475 m_nextTopmostScrollChild = scrollChild; |
1476 } | 1476 } |
1477 | 1477 |
1478 } // namespace blink | 1478 } // namespace blink |
OLD | NEW |