| OLD | NEW |
| 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 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 DocumentLifecycle::DeprecatedTransition m_deprecatedTransition; | 82 DocumentLifecycle::DeprecatedTransition m_deprecatedTransition; |
| 83 DocumentLifecycle::State m_originalState; | 83 DocumentLifecycle::State m_originalState; |
| 84 }; | 84 }; |
| 85 | 85 |
| 86 RenderLayerCompositor::RenderLayerCompositor(RenderView& renderView) | 86 RenderLayerCompositor::RenderLayerCompositor(RenderView& renderView) |
| 87 : m_renderView(renderView) | 87 : m_renderView(renderView) |
| 88 , m_compositingReasonFinder(renderView) | 88 , m_compositingReasonFinder(renderView) |
| 89 , m_pendingUpdateType(CompositingUpdateNone) | 89 , m_pendingUpdateType(CompositingUpdateNone) |
| 90 , m_hasAcceleratedCompositing(true) | 90 , m_hasAcceleratedCompositing(true) |
| 91 , m_compositing(false) | 91 , m_compositing(false) |
| 92 , m_compositingLayersNeedRebuild(false) | |
| 93 , m_rootShouldAlwaysCompositeDirty(true) | 92 , m_rootShouldAlwaysCompositeDirty(true) |
| 94 , m_needsUpdateFixedBackground(false) | 93 , m_needsUpdateFixedBackground(false) |
| 95 , m_isTrackingRepaints(false) | 94 , m_isTrackingRepaints(false) |
| 96 , m_rootLayerAttachment(RootLayerUnattached) | 95 , m_rootLayerAttachment(RootLayerUnattached) |
| 97 { | 96 { |
| 98 updateAcceleratedCompositingSettings(); | 97 updateAcceleratedCompositingSettings(); |
| 99 } | 98 } |
| 100 | 99 |
| 101 RenderLayerCompositor::~RenderLayerCompositor() | 100 RenderLayerCompositor::~RenderLayerCompositor() |
| 102 { | 101 { |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 if (!m_rootShouldAlwaysCompositeDirty) | 145 if (!m_rootShouldAlwaysCompositeDirty) |
| 147 return; | 146 return; |
| 148 | 147 |
| 149 m_rootShouldAlwaysCompositeDirty = false; | 148 m_rootShouldAlwaysCompositeDirty = false; |
| 150 if (m_compositing) | 149 if (m_compositing) |
| 151 return; | 150 return; |
| 152 | 151 |
| 153 if (rootShouldAlwaysComposite()) { | 152 if (rootShouldAlwaysComposite()) { |
| 154 // FIXME: Is this needed? It was added in https://bugs.webkit.org/show_b
ug.cgi?id=26651. | 153 // FIXME: Is this needed? It was added in https://bugs.webkit.org/show_b
ug.cgi?id=26651. |
| 155 // No tests fail if it's deleted. | 154 // No tests fail if it's deleted. |
| 156 setCompositingLayersNeedRebuild(); | 155 setNeedsCompositingUpdate(CompositingUpdateRebuildTree); |
| 157 setCompositingModeEnabled(true); | 156 setCompositingModeEnabled(true); |
| 158 } | 157 } |
| 159 } | 158 } |
| 160 | 159 |
| 161 bool RenderLayerCompositor::compositingLayersNeedRebuild() | |
| 162 { | |
| 163 // enableCompositingModeIfNeeded can set the m_compositingLayersNeedRebuild
bit. | |
| 164 ASSERT(!m_rootShouldAlwaysCompositeDirty); | |
| 165 return m_compositingLayersNeedRebuild; | |
| 166 } | |
| 167 | |
| 168 bool RenderLayerCompositor::rootShouldAlwaysComposite() const | 160 bool RenderLayerCompositor::rootShouldAlwaysComposite() const |
| 169 { | 161 { |
| 170 if (!m_hasAcceleratedCompositing) | 162 if (!m_hasAcceleratedCompositing) |
| 171 return false; | 163 return false; |
| 172 return m_renderView.frame()->isMainFrame() || m_compositingReasonFinder.requ
iresCompositingForScrollableFrame(); | 164 return m_renderView.frame()->isMainFrame() || m_compositingReasonFinder.requ
iresCompositingForScrollableFrame(); |
| 173 } | 165 } |
| 174 | 166 |
| 175 void RenderLayerCompositor::updateAcceleratedCompositingSettings() | 167 void RenderLayerCompositor::updateAcceleratedCompositingSettings() |
| 176 { | 168 { |
| 177 m_compositingReasonFinder.updateTriggers(); | 169 m_compositingReasonFinder.updateTriggers(); |
| 178 | 170 m_hasAcceleratedCompositing = m_renderView.document().settings()->accelerate
dCompositingEnabled(); |
| 179 bool hasAcceleratedCompositing = m_renderView.document().settings()->acceler
atedCompositingEnabled(); | |
| 180 | |
| 181 // FIXME: Is this needed? It was added in https://bugs.webkit.org/show_bug.c
gi?id=26651. | |
| 182 // No tests fail if it's deleted. | |
| 183 if (hasAcceleratedCompositing != m_hasAcceleratedCompositing) | |
| 184 setCompositingLayersNeedRebuild(); | |
| 185 | |
| 186 m_hasAcceleratedCompositing = hasAcceleratedCompositing; | |
| 187 m_rootShouldAlwaysCompositeDirty = true; | 171 m_rootShouldAlwaysCompositeDirty = true; |
| 188 } | 172 } |
| 189 | 173 |
| 190 bool RenderLayerCompositor::layerSquashingEnabled() const | 174 bool RenderLayerCompositor::layerSquashingEnabled() const |
| 191 { | 175 { |
| 192 if (!RuntimeEnabledFeatures::layerSquashingEnabled()) | 176 if (!RuntimeEnabledFeatures::layerSquashingEnabled()) |
| 193 return false; | 177 return false; |
| 194 if (Settings* settings = m_renderView.document().settings()) | 178 if (Settings* settings = m_renderView.document().settings()) |
| 195 return settings->layerSquashingEnabled(); | 179 return settings->layerSquashingEnabled(); |
| 196 return true; | 180 return true; |
| 197 } | 181 } |
| 198 | 182 |
| 199 bool RenderLayerCompositor::acceleratedCompositingForOverflowScrollEnabled() con
st | 183 bool RenderLayerCompositor::acceleratedCompositingForOverflowScrollEnabled() con
st |
| 200 { | 184 { |
| 201 return m_compositingReasonFinder.hasOverflowScrollTrigger(); | 185 return m_compositingReasonFinder.hasOverflowScrollTrigger(); |
| 202 } | 186 } |
| 203 | 187 |
| 204 void RenderLayerCompositor::setCompositingLayersNeedRebuild() | |
| 205 { | |
| 206 // FIXME: crbug.com/332248 ideally this could be merged with setNeedsComposi
tingUpdate(). | |
| 207 m_compositingLayersNeedRebuild = true; | |
| 208 page()->animator().scheduleVisualUpdate(); | |
| 209 lifecycle().ensureStateAtMost(DocumentLifecycle::LayoutClean); | |
| 210 } | |
| 211 | |
| 212 static RenderVideo* findFullscreenVideoRenderer(Document& document) | 188 static RenderVideo* findFullscreenVideoRenderer(Document& document) |
| 213 { | 189 { |
| 214 Element* fullscreenElement = FullscreenElementStack::fullscreenElementFrom(d
ocument); | 190 Element* fullscreenElement = FullscreenElementStack::fullscreenElementFrom(d
ocument); |
| 215 while (fullscreenElement && fullscreenElement->isFrameOwnerElement()) { | 191 while (fullscreenElement && fullscreenElement->isFrameOwnerElement()) { |
| 216 Document* contentDocument = toHTMLFrameOwnerElement(fullscreenElement)->
contentDocument(); | 192 Document* contentDocument = toHTMLFrameOwnerElement(fullscreenElement)->
contentDocument(); |
| 217 if (!contentDocument) | 193 if (!contentDocument) |
| 218 return 0; | 194 return 0; |
| 219 fullscreenElement = FullscreenElementStack::fullscreenElementFrom(*conte
ntDocument); | 195 fullscreenElement = FullscreenElementStack::fullscreenElementFrom(*conte
ntDocument); |
| 220 } | 196 } |
| 221 if (!isHTMLVideoElement(fullscreenElement)) | 197 if (!isHTMLVideoElement(fullscreenElement)) |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 // track which RenderLayers moved during layout and only dirty those | 261 // track which RenderLayers moved during layout and only dirty those |
| 286 // specific RenderLayers. | 262 // specific RenderLayers. |
| 287 rootRenderLayer()->setNeedsToUpdateAncestorDependentProperties(); | 263 rootRenderLayer()->setNeedsToUpdateAncestorDependentProperties(); |
| 288 setNeedsCompositingUpdate(CompositingUpdateAfterCompositingInputChange); | 264 setNeedsCompositingUpdate(CompositingUpdateAfterCompositingInputChange); |
| 289 } | 265 } |
| 290 | 266 |
| 291 #if ASSERT_ENABLED | 267 #if ASSERT_ENABLED |
| 292 | 268 |
| 293 void RenderLayerCompositor::assertNoUnresolvedDirtyBits() | 269 void RenderLayerCompositor::assertNoUnresolvedDirtyBits() |
| 294 { | 270 { |
| 295 ASSERT(!compositingLayersNeedRebuild()); | |
| 296 ASSERT(m_pendingUpdateType == CompositingUpdateNone); | 271 ASSERT(m_pendingUpdateType == CompositingUpdateNone); |
| 297 ASSERT(!m_rootShouldAlwaysCompositeDirty); | 272 ASSERT(!m_rootShouldAlwaysCompositeDirty); |
| 298 } | 273 } |
| 299 | 274 |
| 300 #endif | 275 #endif |
| 301 | 276 |
| 302 void RenderLayerCompositor::applyOverlayFullscreenVideoAdjustment() | 277 void RenderLayerCompositor::applyOverlayFullscreenVideoAdjustment() |
| 303 { | 278 { |
| 304 if (!m_rootContentLayer) | 279 if (!m_rootContentLayer) |
| 305 return; | 280 return; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 332 } | 307 } |
| 333 | 308 |
| 334 void RenderLayerCompositor::updateIfNeeded() | 309 void RenderLayerCompositor::updateIfNeeded() |
| 335 { | 310 { |
| 336 { | 311 { |
| 337 // FIXME: Notice that we call this function before checking the dirty bi
ts below. | 312 // FIXME: Notice that we call this function before checking the dirty bi
ts below. |
| 338 // We'll need to remove DeprecatedDirtyCompositingDuringCompositingUpdat
e | 313 // We'll need to remove DeprecatedDirtyCompositingDuringCompositingUpdat
e |
| 339 // before moving this function after checking the dirty bits. | 314 // before moving this function after checking the dirty bits. |
| 340 DeprecatedDirtyCompositingDuringCompositingUpdate marker(lifecycle()); | 315 DeprecatedDirtyCompositingDuringCompositingUpdate marker(lifecycle()); |
| 341 | 316 |
| 342 // FIXME: enableCompositingModeIfNeeded can call setCompositingLayersNee
dRebuild, | 317 // FIXME: enableCompositingModeIfNeeded can trigger a CompositingUpdateR
ebuildTree, |
| 343 // which asserts that it's not InCompositingUpdate. | 318 // which asserts that it's not InCompositingUpdate. |
| 344 enableCompositingModeIfNeeded(); | 319 enableCompositingModeIfNeeded(); |
| 345 } | 320 } |
| 346 | 321 |
| 347 CompositingUpdateType updateType = m_pendingUpdateType; | 322 CompositingUpdateType updateType = m_pendingUpdateType; |
| 348 bool needHierarchyAndGeometryUpdate = compositingLayersNeedRebuild(); | |
| 349 | |
| 350 m_pendingUpdateType = CompositingUpdateNone; | 323 m_pendingUpdateType = CompositingUpdateNone; |
| 351 m_compositingLayersNeedRebuild = false; | |
| 352 | 324 |
| 353 if (!hasAcceleratedCompositing()) | 325 if (!hasAcceleratedCompositing()) |
| 354 return; | 326 return; |
| 355 | 327 |
| 356 bool needsToUpdateScrollingCoordinator = scrollingCoordinator() && scrolling
Coordinator()->needsToUpdateAfterCompositingChange(); | 328 bool needsToUpdateScrollingCoordinator = scrollingCoordinator() && scrolling
Coordinator()->needsToUpdateAfterCompositingChange(); |
| 357 if (updateType == CompositingUpdateNone && !needHierarchyAndGeometryUpdate &
& !needsToUpdateScrollingCoordinator) | 329 if (updateType == CompositingUpdateNone && !needsToUpdateScrollingCoordinato
r) |
| 358 return; | 330 return; |
| 359 | 331 |
| 360 GraphicsLayerUpdater::UpdateType graphicsLayerUpdateType = GraphicsLayerUpda
ter::DoNotForceUpdate; | |
| 361 CompositingPropertyUpdater::UpdateType compositingPropertyUpdateType = Compo
sitingPropertyUpdater::DoNotForceUpdate; | |
| 362 | |
| 363 RenderLayer* updateRoot = rootRenderLayer(); | 332 RenderLayer* updateRoot = rootRenderLayer(); |
| 364 | 333 |
| 365 Vector<RenderLayer*> layersNeedingRepaint; | 334 Vector<RenderLayer*> layersNeedingRepaint; |
| 366 | 335 |
| 367 if (updateType >= CompositingUpdateAfterCompositingInputChange) { | 336 if (updateType >= CompositingUpdateAfterCompositingInputChange) { |
| 368 bool layersChanged = false; | 337 bool layersChanged = false; |
| 369 { | 338 { |
| 370 TRACE_EVENT0("blink_rendering", "CompositingPropertyUpdater::updateA
ncestorDependentProperties"); | 339 TRACE_EVENT0("blink_rendering", "CompositingPropertyUpdater::updateA
ncestorDependentProperties"); |
| 371 CompositingPropertyUpdater(updateRoot).updateAncestorDependentProper
ties(updateRoot, compositingPropertyUpdateType); | 340 CompositingPropertyUpdater(updateRoot).updateAncestorDependentProper
ties(updateRoot); |
| 372 #if ASSERT_ENABLED | 341 #if ASSERT_ENABLED |
| 373 CompositingPropertyUpdater::assertNeedsToUpdateAncestorDependantProp
ertiesBitsCleared(updateRoot); | 342 CompositingPropertyUpdater::assertNeedsToUpdateAncestorDependantProp
ertiesBitsCleared(updateRoot); |
| 374 #endif | 343 #endif |
| 375 } | 344 } |
| 376 | 345 |
| 377 CompositingRequirementsUpdater(m_renderView, m_compositingReasonFinder).
update(updateRoot); | 346 CompositingRequirementsUpdater(m_renderView, m_compositingReasonFinder).
update(updateRoot); |
| 378 | 347 |
| 379 { | 348 { |
| 380 TRACE_EVENT0("blink_rendering", "CompositingLayerAssigner::assign"); | 349 TRACE_EVENT0("blink_rendering", "CompositingLayerAssigner::assign"); |
| 381 CompositingLayerAssigner(this).assign(updateRoot, layersChanged, lay
ersNeedingRepaint); | 350 CompositingLayerAssigner(this).assign(updateRoot, layersChanged, lay
ersNeedingRepaint); |
| 382 } | 351 } |
| 383 | 352 |
| 384 { | 353 { |
| 385 TRACE_EVENT0("blink_rendering", "RenderLayerCompositor::updateAfterC
ompositingChange"); | 354 TRACE_EVENT0("blink_rendering", "RenderLayerCompositor::updateAfterC
ompositingChange"); |
| 386 if (const FrameView::ScrollableAreaSet* scrollableAreas = m_renderVi
ew.frameView()->scrollableAreas()) { | 355 if (const FrameView::ScrollableAreaSet* scrollableAreas = m_renderVi
ew.frameView()->scrollableAreas()) { |
| 387 for (FrameView::ScrollableAreaSet::iterator it = scrollableAreas
->begin(); it != scrollableAreas->end(); ++it) | 356 for (FrameView::ScrollableAreaSet::iterator it = scrollableAreas
->begin(); it != scrollableAreas->end(); ++it) |
| 388 (*it)->updateAfterCompositingChange(); | 357 (*it)->updateAfterCompositingChange(); |
| 389 } | 358 } |
| 390 } | 359 } |
| 391 | 360 |
| 392 if (layersChanged) | 361 if (layersChanged) |
| 393 needHierarchyAndGeometryUpdate = true; | 362 updateType = std::max(updateType, CompositingUpdateRebuildTree); |
| 394 } | 363 } |
| 395 | 364 |
| 396 if (updateType != CompositingUpdateNone || needHierarchyAndGeometryUpdate) { | 365 if (updateType != CompositingUpdateNone) { |
| 397 TRACE_EVENT0("blink_rendering", "GraphicsLayerUpdater::updateRecursive")
; | 366 TRACE_EVENT0("blink_rendering", "GraphicsLayerUpdater::updateRecursive")
; |
| 398 GraphicsLayerUpdater updater; | 367 GraphicsLayerUpdater updater; |
| 399 updater.update(*updateRoot, graphicsLayerUpdateType); | 368 updater.update(*updateRoot); |
| 400 | 369 |
| 401 if (updater.needsRebuildTree()) | 370 if (updater.needsRebuildTree()) |
| 402 needHierarchyAndGeometryUpdate = true; | 371 updateType = std::max(updateType, CompositingUpdateRebuildTree); |
| 403 | 372 |
| 404 #if !ASSERT_DISABLED | 373 #if !ASSERT_DISABLED |
| 405 // FIXME: Move this check to the end of the compositing update. | 374 // FIXME: Move this check to the end of the compositing update. |
| 406 GraphicsLayerUpdater::assertNeedsToUpdateGraphicsLayerBitsCleared(*updat
eRoot); | 375 GraphicsLayerUpdater::assertNeedsToUpdateGraphicsLayerBitsCleared(*updat
eRoot); |
| 407 #endif | 376 #endif |
| 408 } | 377 } |
| 409 | 378 |
| 410 if (needHierarchyAndGeometryUpdate) { | 379 if (updateType >= CompositingUpdateRebuildTree) { |
| 411 // Update the hierarchy of the compositing layers. | |
| 412 GraphicsLayerVector childList; | 380 GraphicsLayerVector childList; |
| 413 { | 381 { |
| 414 TRACE_EVENT0("blink_rendering", "GraphicsLayerTreeBuilder::rebuild")
; | 382 TRACE_EVENT0("blink_rendering", "GraphicsLayerTreeBuilder::rebuild")
; |
| 415 GraphicsLayerTreeBuilder().rebuild(*updateRoot, childList); | 383 GraphicsLayerTreeBuilder().rebuild(*updateRoot, childList); |
| 416 } | 384 } |
| 417 | 385 |
| 418 if (childList.isEmpty()) | 386 if (childList.isEmpty()) |
| 419 destroyRootLayer(); | 387 destroyRootLayer(); |
| 420 else | 388 else |
| 421 m_rootContentLayer->setChildren(childList); | 389 m_rootContentLayer->setChildren(childList); |
| 422 | 390 |
| 423 if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled()) | 391 if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled()) |
| 424 applyOverlayFullscreenVideoAdjustment(); | 392 applyOverlayFullscreenVideoAdjustment(); |
| 425 } | 393 } |
| 426 | 394 |
| 427 if (m_needsUpdateFixedBackground) { | 395 if (m_needsUpdateFixedBackground) { |
| 428 rootFixedBackgroundsChanged(); | 396 rootFixedBackgroundsChanged(); |
| 429 m_needsUpdateFixedBackground = false; | 397 m_needsUpdateFixedBackground = false; |
| 430 } | 398 } |
| 431 | 399 |
| 432 ASSERT(updateRoot || !compositingLayersNeedRebuild()); | |
| 433 | |
| 434 // The scrolling coordinator may realize that it needs updating while compos
iting was being updated in this function. | 400 // The scrolling coordinator may realize that it needs updating while compos
iting was being updated in this function. |
| 435 needsToUpdateScrollingCoordinator |= scrollingCoordinator() && scrollingCoor
dinator()->needsToUpdateAfterCompositingChange(); | 401 needsToUpdateScrollingCoordinator |= scrollingCoordinator() && scrollingCoor
dinator()->needsToUpdateAfterCompositingChange(); |
| 436 if (needsToUpdateScrollingCoordinator && m_renderView.frame()->isMainFrame()
&& scrollingCoordinator() && inCompositingMode()) | 402 if (needsToUpdateScrollingCoordinator && m_renderView.frame()->isMainFrame()
&& scrollingCoordinator() && inCompositingMode()) |
| 437 scrollingCoordinator()->updateAfterCompositingChange(); | 403 scrollingCoordinator()->updateAfterCompositingChange(); |
| 438 | 404 |
| 439 for (unsigned i = 0; i < layersNeedingRepaint.size(); i++) { | 405 for (unsigned i = 0; i < layersNeedingRepaint.size(); i++) { |
| 440 RenderLayer* layer = layersNeedingRepaint[i]; | 406 RenderLayer* layer = layersNeedingRepaint[i]; |
| 441 layer->repainter().computeRepaintRectsIncludingDescendants(); | 407 layer->repainter().computeRepaintRectsIncludingDescendants(); |
| 442 | 408 |
| 443 repaintOnCompositingChange(layer); | 409 repaintOnCompositingChange(layer); |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 if (compositedLayerUpdate != NoCompositingStateChange) | 514 if (compositedLayerUpdate != NoCompositingStateChange) |
| 549 allocateOrClearCompositedLayerMapping(layer, compositedLayerUpdate); | 515 allocateOrClearCompositedLayerMapping(layer, compositedLayerUpdate); |
| 550 } | 516 } |
| 551 | 517 |
| 552 void RenderLayerCompositor::updateLayerCompositingState(RenderLayer* layer, Upda
teLayerCompositingStateOptions options) | 518 void RenderLayerCompositor::updateLayerCompositingState(RenderLayer* layer, Upda
teLayerCompositingStateOptions options) |
| 553 { | 519 { |
| 554 updateDirectCompositingReasons(layer); | 520 updateDirectCompositingReasons(layer); |
| 555 CompositingStateTransitionType compositedLayerUpdate = CompositingLayerAssig
ner(this).computeCompositedLayerUpdate(layer); | 521 CompositingStateTransitionType compositedLayerUpdate = CompositingLayerAssig
ner(this).computeCompositedLayerUpdate(layer); |
| 556 | 522 |
| 557 if (compositedLayerUpdate != NoCompositingStateChange) | 523 if (compositedLayerUpdate != NoCompositingStateChange) |
| 558 setCompositingLayersNeedRebuild(); | 524 setNeedsCompositingUpdate(CompositingUpdateRebuildTree); |
| 559 | 525 |
| 560 if (options == UseChickenEggHacks) | 526 if (options == UseChickenEggHacks) |
| 561 applyUpdateLayerCompositingStateChickenEggHacks(layer, compositedLayerUp
date); | 527 applyUpdateLayerCompositingStateChickenEggHacks(layer, compositedLayerUp
date); |
| 562 } | 528 } |
| 563 | 529 |
| 564 void RenderLayerCompositor::repaintOnCompositingChange(RenderLayer* layer) | 530 void RenderLayerCompositor::repaintOnCompositingChange(RenderLayer* layer) |
| 565 { | 531 { |
| 566 // If the renderer is not attached yet, no need to repaint. | 532 // If the renderer is not attached yet, no need to repaint. |
| 567 if (layer->renderer() != &m_renderView && !layer->renderer()->parent()) | 533 if (layer->renderer() != &m_renderView && !layer->renderer()->parent()) |
| 568 return; | 534 return; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 580 | 546 |
| 581 LayoutPoint offset; | 547 LayoutPoint offset; |
| 582 layer->convertToLayerCoords(compositedAncestor, offset); | 548 layer->convertToLayerCoords(compositedAncestor, offset); |
| 583 LayoutRect repaintRect = rect; | 549 LayoutRect repaintRect = rect; |
| 584 repaintRect.moveBy(offset); | 550 repaintRect.moveBy(offset); |
| 585 compositedAncestor->repainter().setBackingNeedsRepaintInRect(repaintRect); | 551 compositedAncestor->repainter().setBackingNeedsRepaintInRect(repaintRect); |
| 586 } | 552 } |
| 587 | 553 |
| 588 void RenderLayerCompositor::layerWasAdded(RenderLayer* /*parent*/, RenderLayer*
/*child*/) | 554 void RenderLayerCompositor::layerWasAdded(RenderLayer* /*parent*/, RenderLayer*
/*child*/) |
| 589 { | 555 { |
| 590 setCompositingLayersNeedRebuild(); | 556 setNeedsCompositingUpdate(CompositingUpdateRebuildTree); |
| 591 } | 557 } |
| 592 | 558 |
| 593 void RenderLayerCompositor::layerWillBeRemoved(RenderLayer* parent, RenderLayer*
child) | 559 void RenderLayerCompositor::layerWillBeRemoved(RenderLayer* parent, RenderLayer*
child) |
| 594 { | 560 { |
| 595 if (!child->hasCompositedLayerMapping() || parent->renderer()->documentBeing
Destroyed()) | 561 if (!child->hasCompositedLayerMapping() || parent->renderer()->documentBeing
Destroyed()) |
| 596 return; | 562 return; |
| 597 | 563 |
| 598 { | 564 { |
| 599 // FIXME: This is called from within RenderLayer::removeChild, which is
called from RenderObject::RemoveChild. | 565 // FIXME: This is called from within RenderLayer::removeChild, which is
called from RenderObject::RemoveChild. |
| 600 // There's no guarantee that compositor state is up to date. | 566 // There's no guarantee that compositor state is up to date. |
| 601 DisableCompositingQueryAsserts disabler; | 567 DisableCompositingQueryAsserts disabler; |
| 602 repaintInCompositedAncestor(child, child->compositedLayerMapping()->comp
ositedBounds()); | 568 repaintInCompositedAncestor(child, child->compositedLayerMapping()->comp
ositedBounds()); |
| 603 } | 569 } |
| 604 | 570 |
| 605 setCompositingLayersNeedRebuild(); | 571 setNeedsCompositingUpdate(CompositingUpdateRebuildTree); |
| 606 } | 572 } |
| 607 | 573 |
| 608 void RenderLayerCompositor::frameViewDidChangeLocation(const IntPoint& contentsO
ffset) | 574 void RenderLayerCompositor::frameViewDidChangeLocation(const IntPoint& contentsO
ffset) |
| 609 { | 575 { |
| 610 if (m_overflowControlsHostLayer) | 576 if (m_overflowControlsHostLayer) |
| 611 m_overflowControlsHostLayer->setPosition(contentsOffset); | 577 m_overflowControlsHostLayer->setPosition(contentsOffset); |
| 612 } | 578 } |
| 613 | 579 |
| 614 void RenderLayerCompositor::frameViewDidChangeSize() | 580 void RenderLayerCompositor::frameViewDidChangeSize() |
| 615 { | 581 { |
| (...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1343 } else if (graphicsLayer == m_scrollLayer.get()) { | 1309 } else if (graphicsLayer == m_scrollLayer.get()) { |
| 1344 name = "LocalFrame Scrolling Layer"; | 1310 name = "LocalFrame Scrolling Layer"; |
| 1345 } else { | 1311 } else { |
| 1346 ASSERT_NOT_REACHED(); | 1312 ASSERT_NOT_REACHED(); |
| 1347 } | 1313 } |
| 1348 | 1314 |
| 1349 return name; | 1315 return name; |
| 1350 } | 1316 } |
| 1351 | 1317 |
| 1352 } // namespace WebCore | 1318 } // namespace WebCore |
| OLD | NEW |