| 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 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 473 layer->setViewportConstrainedNotCompositedReason(viewportConstrainedNotC
ompositedReason); | 473 layer->setViewportConstrainedNotCompositedReason(viewportConstrainedNotC
ompositedReason); |
| 474 return true; | 474 return true; |
| 475 } | 475 } |
| 476 return false; | 476 return false; |
| 477 } | 477 } |
| 478 | 478 |
| 479 // These are temporary hacks to work around chicken-egg issues while we continue
to refactor the compositing code. | 479 // These are temporary hacks to work around chicken-egg issues while we continue
to refactor the compositing code. |
| 480 // See crbug.com/383191 for a list of tests that fail if this method is removed. | 480 // See crbug.com/383191 for a list of tests that fail if this method is removed. |
| 481 void RenderLayerCompositor::applyUpdateLayerCompositingStateChickenEggHacks(Rend
erLayer* layer, CompositingStateTransitionType compositedLayerUpdate) | 481 void RenderLayerCompositor::applyUpdateLayerCompositingStateChickenEggHacks(Rend
erLayer* layer, CompositingStateTransitionType compositedLayerUpdate) |
| 482 { | 482 { |
| 483 if (compositedLayerUpdate != NoCompositingStateChange) | 483 if (compositedLayerUpdate != NoCompositingStateChange) { |
| 484 allocateOrClearCompositedLayerMapping(layer, compositedLayerUpdate); | 484 bool compositedLayerMappingChanged = allocateOrClearCompositedLayerMappi
ng(layer, compositedLayerUpdate); |
| 485 if (compositedLayerMappingChanged) { |
| 486 // Repaint rects can only be computed for layers that have already b
een attached to the |
| 487 // render tree, but a chicken-egg compositing update can happen befo
re |layer| gets |
| 488 // attached. Since newly-created renderers don't get parented until
they are attached |
| 489 // (see RenderTreeBuilder::createRendererForElementIfNeeded), we can
check for attachment |
| 490 // by checking for a parent. |
| 491 if (layer->parent()) |
| 492 layer->repainter().computeRepaintRectsIncludingNonCompositingDes
cendants(); |
| 493 repaintOnCompositingChange(layer); |
| 494 } |
| 495 } |
| 485 } | 496 } |
| 486 | 497 |
| 487 void RenderLayerCompositor::updateLayerCompositingState(RenderLayer* layer, Upda
teLayerCompositingStateOptions options) | 498 void RenderLayerCompositor::updateLayerCompositingState(RenderLayer* layer, Upda
teLayerCompositingStateOptions options) |
| 488 { | 499 { |
| 489 updateDirectCompositingReasons(layer); | 500 updateDirectCompositingReasons(layer); |
| 490 CompositingStateTransitionType compositedLayerUpdate = CompositingLayerAssig
ner(this).computeCompositedLayerUpdate(layer); | 501 CompositingStateTransitionType compositedLayerUpdate = CompositingLayerAssig
ner(this).computeCompositedLayerUpdate(layer); |
| 491 | 502 |
| 492 if (compositedLayerUpdate != NoCompositingStateChange) | 503 if (compositedLayerUpdate != NoCompositingStateChange) |
| 493 setNeedsCompositingUpdate(CompositingUpdateRebuildTree); | 504 setNeedsCompositingUpdate(CompositingUpdateRebuildTree); |
| 494 | 505 |
| (...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1239 } else if (graphicsLayer == m_scrollLayer.get()) { | 1250 } else if (graphicsLayer == m_scrollLayer.get()) { |
| 1240 name = "LocalFrame Scrolling Layer"; | 1251 name = "LocalFrame Scrolling Layer"; |
| 1241 } else { | 1252 } else { |
| 1242 ASSERT_NOT_REACHED(); | 1253 ASSERT_NOT_REACHED(); |
| 1243 } | 1254 } |
| 1244 | 1255 |
| 1245 return name; | 1256 return name; |
| 1246 } | 1257 } |
| 1247 | 1258 |
| 1248 } // namespace WebCore | 1259 } // namespace WebCore |
| OLD | NEW |