Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Side by Side Diff: third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp

Issue 2285253003: Move TopDocumentRootScrollerController to a separate object on FrameHost (Closed)
Patch Set: Rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 lifecycle().advanceTo(DocumentLifecycle::CompositingClean); 246 lifecycle().advanceTo(DocumentLifecycle::CompositingClean);
247 247
248 DocumentAnimations::updateCompositorAnimations(m_layoutView.document()); 248 DocumentAnimations::updateCompositorAnimations(m_layoutView.document());
249 249
250 m_layoutView.frameView()->getScrollableArea()->updateCompositorScrollAnimati ons(); 250 m_layoutView.frameView()->getScrollableArea()->updateCompositorScrollAnimati ons();
251 if (const FrameView::ScrollableAreaSet* animatingScrollableAreas = m_layoutV iew.frameView()->animatingScrollableAreas()) { 251 if (const FrameView::ScrollableAreaSet* animatingScrollableAreas = m_layoutV iew.frameView()->animatingScrollableAreas()) {
252 for (ScrollableArea* scrollableArea : *animatingScrollableAreas) 252 for (ScrollableArea* scrollableArea : *animatingScrollableAreas)
253 scrollableArea->updateCompositorScrollAnimations(); 253 scrollableArea->updateCompositorScrollAnimations();
254 } 254 }
255 255
256 m_layoutView.document().rootScrollerController()->didUpdateCompositing();
257 #if ENABLE(ASSERT) 256 #if ENABLE(ASSERT)
258 ASSERT(lifecycle().state() == DocumentLifecycle::CompositingClean); 257 ASSERT(lifecycle().state() == DocumentLifecycle::CompositingClean);
259 assertNoUnresolvedDirtyBits(); 258 assertNoUnresolvedDirtyBits();
260 for (Frame* child = m_layoutView.frameView()->frame().tree().firstChild(); c hild; child = child->tree().nextSibling()) { 259 for (Frame* child = m_layoutView.frameView()->frame().tree().firstChild(); c hild; child = child->tree().nextSibling()) {
261 if (!child->isLocalFrame()) 260 if (!child->isLocalFrame())
262 continue; 261 continue;
263 LocalFrame* localFrame = toLocalFrame(child); 262 LocalFrame* localFrame = toLocalFrame(child);
264 if (localFrame->shouldThrottleRendering() || localFrame->contentLayoutIt em().isNull()) 263 if (localFrame->shouldThrottleRendering() || localFrame->contentLayoutIt em().isNull())
265 continue; 264 continue;
266 localFrame->contentLayoutItem().compositor()->assertNoUnresolvedDirtyBit s(); 265 localFrame->contentLayoutItem().compositor()->assertNoUnresolvedDirtyBit s();
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 void PaintLayerCompositor::updateClippingOnCompositorLayers() 467 void PaintLayerCompositor::updateClippingOnCompositorLayers()
469 { 468 {
470 bool shouldClip = !rootLayer()->hasRootScrollerAsDescendant(); 469 bool shouldClip = !rootLayer()->hasRootScrollerAsDescendant();
471 if (m_rootContentLayer) { 470 if (m_rootContentLayer) {
472 // FIXME: with rootLayerScrolls, we probably don't even need 471 // FIXME: with rootLayerScrolls, we probably don't even need
473 // m_rootContentLayer? 472 // m_rootContentLayer?
474 m_rootContentLayer->setMasksToBounds( 473 m_rootContentLayer->setMasksToBounds(
475 !RuntimeEnabledFeatures::rootLayerScrollingEnabled() && shouldClip); 474 !RuntimeEnabledFeatures::rootLayerScrollingEnabled() && shouldClip);
476 } 475 }
477 476
478 // TODO(bokan): Temporary hack-cast to TDRSC until the follow-up patch 477 const TopDocumentRootScrollerController& globalRootScrollerController =
479 // lands and we can get a pointer to a TopDocumentRootScrollerController 478 m_layoutView.document().frameHost()->globalRootScrollerController();
480 // legitimately.
481 TopDocumentRootScrollerController* globalRootScrollerController =
482 (TopDocumentRootScrollerController*)m_layoutView.document().topDocument( ).rootScrollerController();
483 479
484 Element* documentElement = m_layoutView.document().documentElement(); 480 Element* documentElement = m_layoutView.document().documentElement();
485 bool frameIsRootScroller = documentElement && documentElement->isSameNode( 481 bool frameIsRootScroller = documentElement && documentElement->isSameNode(
486 globalRootScrollerController->globalRootScroller()); 482 globalRootScrollerController.globalRootScroller());
487 483
488 // We normally clip iframes' (but not the root frame) overflow controls 484 // We normally clip iframes' (but not the root frame) overflow controls
489 // host and container layers but if the root scroller is the iframe itself 485 // host and container layers but if the root scroller is the iframe itself
490 // we want it to behave like the root frame. 486 // we want it to behave like the root frame.
491 shouldClip &= !frameIsRootScroller && !m_layoutView.frame()->isLocalRoot(); 487 shouldClip &= !frameIsRootScroller && !m_layoutView.frame()->isLocalRoot();
492 488
493 if (m_containerLayer) 489 if (m_containerLayer)
494 m_containerLayer->setMasksToBounds(shouldClip); 490 m_containerLayer->setMasksToBounds(shouldClip);
495 if (m_overflowControlsHostLayer) 491 if (m_overflowControlsHostLayer)
496 m_overflowControlsHostLayer->setMasksToBounds(shouldClip); 492 m_overflowControlsHostLayer->setMasksToBounds(shouldClip);
(...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after
1270 } else if (graphicsLayer == m_scrollLayer.get()) { 1266 } else if (graphicsLayer == m_scrollLayer.get()) {
1271 name = "Frame Scrolling Layer"; 1267 name = "Frame Scrolling Layer";
1272 } else { 1268 } else {
1273 ASSERT_NOT_REACHED(); 1269 ASSERT_NOT_REACHED();
1274 } 1270 }
1275 1271
1276 return name; 1272 return name;
1277 } 1273 }
1278 1274
1279 } // namespace blink 1275 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698