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 21 matching lines...) Expand all Loading... |
32 #include "core/editing/FrameSelection.h" | 32 #include "core/editing/FrameSelection.h" |
33 #include "core/frame/FrameHost.h" | 33 #include "core/frame/FrameHost.h" |
34 #include "core/frame/FrameView.h" | 34 #include "core/frame/FrameView.h" |
35 #include "core/frame/LocalFrame.h" | 35 #include "core/frame/LocalFrame.h" |
36 #include "core/frame/Settings.h" | 36 #include "core/frame/Settings.h" |
37 #include "core/html/HTMLIFrameElement.h" | 37 #include "core/html/HTMLIFrameElement.h" |
38 #include "core/inspector/InspectorInstrumentation.h" | 38 #include "core/inspector/InspectorInstrumentation.h" |
39 #include "core/inspector/InspectorNodeIds.h" | 39 #include "core/inspector/InspectorNodeIds.h" |
40 #include "core/layout/LayerStackingNode.h" | 40 #include "core/layout/LayerStackingNode.h" |
41 #include "core/layout/LayerStackingNodeIterator.h" | 41 #include "core/layout/LayerStackingNodeIterator.h" |
| 42 #include "core/layout/LayoutPart.h" |
42 #include "core/layout/LayoutVideo.h" | 43 #include "core/layout/LayoutVideo.h" |
43 #include "core/layout/compositing/CompositedLayerMapping.h" | 44 #include "core/layout/compositing/CompositedLayerMapping.h" |
44 #include "core/layout/compositing/CompositingInputsUpdater.h" | 45 #include "core/layout/compositing/CompositingInputsUpdater.h" |
45 #include "core/layout/compositing/CompositingLayerAssigner.h" | 46 #include "core/layout/compositing/CompositingLayerAssigner.h" |
46 #include "core/layout/compositing/CompositingRequirementsUpdater.h" | 47 #include "core/layout/compositing/CompositingRequirementsUpdater.h" |
47 #include "core/layout/compositing/GraphicsLayerTreeBuilder.h" | 48 #include "core/layout/compositing/GraphicsLayerTreeBuilder.h" |
48 #include "core/layout/compositing/GraphicsLayerUpdater.h" | 49 #include "core/layout/compositing/GraphicsLayerUpdater.h" |
49 #include "core/loader/FrameLoaderClient.h" | 50 #include "core/loader/FrameLoaderClient.h" |
50 #include "core/page/Chrome.h" | 51 #include "core/page/Chrome.h" |
51 #include "core/page/ChromeClient.h" | 52 #include "core/page/ChromeClient.h" |
52 #include "core/page/Page.h" | 53 #include "core/page/Page.h" |
53 #include "core/page/scrolling/ScrollingCoordinator.h" | 54 #include "core/page/scrolling/ScrollingCoordinator.h" |
54 #include "core/paint/FramePainter.h" | 55 #include "core/paint/FramePainter.h" |
55 #include "core/paint/TransformRecorder.h" | 56 #include "core/paint/TransformRecorder.h" |
56 #include "core/rendering/RenderEmbeddedObject.h" | 57 #include "core/rendering/RenderEmbeddedObject.h" |
57 #include "core/rendering/RenderPart.h" | |
58 #include "core/rendering/RenderView.h" | 58 #include "core/rendering/RenderView.h" |
59 #include "platform/RuntimeEnabledFeatures.h" | 59 #include "platform/RuntimeEnabledFeatures.h" |
60 #include "platform/ScriptForbiddenScope.h" | 60 #include "platform/ScriptForbiddenScope.h" |
61 #include "platform/TraceEvent.h" | 61 #include "platform/TraceEvent.h" |
62 #include "platform/graphics/GraphicsLayer.h" | 62 #include "platform/graphics/GraphicsLayer.h" |
63 #include "platform/graphics/paint/DisplayItemList.h" | 63 #include "platform/graphics/paint/DisplayItemList.h" |
64 #include "platform/graphics/paint/DrawingRecorder.h" | 64 #include "platform/graphics/paint/DrawingRecorder.h" |
65 #include "platform/graphics/paint/TransformDisplayItem.h" | 65 #include "platform/graphics/paint/TransformDisplayItem.h" |
66 #include "public/platform/Platform.h" | 66 #include "public/platform/Platform.h" |
67 | 67 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 return m_compositing; | 100 return m_compositing; |
101 } | 101 } |
102 | 102 |
103 void LayerCompositor::setCompositingModeEnabled(bool enable) | 103 void LayerCompositor::setCompositingModeEnabled(bool enable) |
104 { | 104 { |
105 if (enable == m_compositing) | 105 if (enable == m_compositing) |
106 return; | 106 return; |
107 | 107 |
108 m_compositing = enable; | 108 m_compositing = enable; |
109 | 109 |
110 // RenderPart::requiresAcceleratedCompositing is used to determine self-pain
tingness | 110 // LayoutPart::requiresAcceleratedCompositing is used to determine self-pain
tingness |
111 // and bases it's return value for frames on the m_compositing bit here. | 111 // and bases it's return value for frames on the m_compositing bit here. |
112 if (HTMLFrameOwnerElement* ownerElement = m_renderView.document().ownerEleme
nt()) { | 112 if (HTMLFrameOwnerElement* ownerElement = m_renderView.document().ownerEleme
nt()) { |
113 if (RenderPart* renderer = ownerElement->renderPart()) | 113 if (LayoutPart* renderer = ownerElement->layoutPart()) |
114 renderer->layer()->updateSelfPaintingLayer(); | 114 renderer->layer()->updateSelfPaintingLayer(); |
115 } | 115 } |
116 | 116 |
117 if (m_compositing) | 117 if (m_compositing) |
118 ensureRootLayer(); | 118 ensureRootLayer(); |
119 else | 119 else |
120 destroyRootLayer(); | 120 destroyRootLayer(); |
121 | 121 |
122 // Compositing also affects the answer to RenderIFrame::requiresAcceleratedC
ompositing(), so | 122 // Compositing also affects the answer to RenderIFrame::requiresAcceleratedC
ompositing(), so |
123 // we need to schedule a style recalc in our parent document. | 123 // we need to schedule a style recalc in our parent document. |
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 compositedLayerMappingChanged = true; | 458 compositedLayerMappingChanged = true; |
459 } | 459 } |
460 | 460 |
461 break; | 461 break; |
462 case RemoveFromSquashingLayer: | 462 case RemoveFromSquashingLayer: |
463 case NoCompositingStateChange: | 463 case NoCompositingStateChange: |
464 // Do nothing. | 464 // Do nothing. |
465 break; | 465 break; |
466 } | 466 } |
467 | 467 |
468 if (compositedLayerMappingChanged && layer->renderer()->isRenderPart()) { | 468 if (compositedLayerMappingChanged && layer->renderer()->isLayoutPart()) { |
469 LayerCompositor* innerCompositor = frameContentsCompositor(toRenderPart(
layer->renderer())); | 469 LayerCompositor* innerCompositor = frameContentsCompositor(toLayoutPart(
layer->renderer())); |
470 if (innerCompositor && innerCompositor->staleInCompositingMode()) | 470 if (innerCompositor && innerCompositor->staleInCompositingMode()) |
471 innerCompositor->updateRootLayerAttachment(); | 471 innerCompositor->updateRootLayerAttachment(); |
472 } | 472 } |
473 | 473 |
474 if (compositedLayerMappingChanged) | 474 if (compositedLayerMappingChanged) |
475 layer->clipper().clearClipRectsIncludingDescendants(PaintingClipRects); | 475 layer->clipper().clearClipRectsIncludingDescendants(PaintingClipRects); |
476 | 476 |
477 // If a fixed position layer gained/lost a compositedLayerMapping or the rea
son not compositing it changed, | 477 // If a fixed position layer gained/lost a compositedLayerMapping or the rea
son not compositing it changed, |
478 // the scrolling coordinator needs to recalculate whether it can do fast scr
olling. | 478 // the scrolling coordinator needs to recalculate whether it can do fast scr
olling. |
479 if (compositedLayerMappingChanged) { | 479 if (compositedLayerMappingChanged) { |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
607 String layerTreeText = rootLayer->layerTreeAsText(flags); | 607 String layerTreeText = rootLayer->layerTreeAsText(flags); |
608 | 608 |
609 // The true root layer is not included in the dump, so if we want to report | 609 // The true root layer is not included in the dump, so if we want to report |
610 // its paint invalidation rects, they must be included here. | 610 // its paint invalidation rects, they must be included here. |
611 if (flags & LayerTreeIncludesPaintInvalidationRects) | 611 if (flags & LayerTreeIncludesPaintInvalidationRects) |
612 return m_renderView.frameView()->trackedPaintInvalidationRectsAsText() +
layerTreeText; | 612 return m_renderView.frameView()->trackedPaintInvalidationRectsAsText() +
layerTreeText; |
613 | 613 |
614 return layerTreeText; | 614 return layerTreeText; |
615 } | 615 } |
616 | 616 |
617 LayerCompositor* LayerCompositor::frameContentsCompositor(RenderPart* renderer) | 617 LayerCompositor* LayerCompositor::frameContentsCompositor(LayoutPart* renderer) |
618 { | 618 { |
619 if (!renderer->node()->isFrameOwnerElement()) | 619 if (!renderer->node()->isFrameOwnerElement()) |
620 return 0; | 620 return 0; |
621 | 621 |
622 HTMLFrameOwnerElement* element = toHTMLFrameOwnerElement(renderer->node()); | 622 HTMLFrameOwnerElement* element = toHTMLFrameOwnerElement(renderer->node()); |
623 if (Document* contentDocument = element->contentDocument()) { | 623 if (Document* contentDocument = element->contentDocument()) { |
624 if (RenderView* view = contentDocument->renderView()) | 624 if (RenderView* view = contentDocument->renderView()) |
625 return view->compositor(); | 625 return view->compositor(); |
626 } | 626 } |
627 return 0; | 627 return 0; |
628 } | 628 } |
629 | 629 |
630 // FIXME: What does this function do? It needs a clearer name. | 630 // FIXME: What does this function do? It needs a clearer name. |
631 bool LayerCompositor::parentFrameContentLayers(RenderPart* renderer) | 631 bool LayerCompositor::parentFrameContentLayers(LayoutPart* renderer) |
632 { | 632 { |
633 LayerCompositor* innerCompositor = frameContentsCompositor(renderer); | 633 LayerCompositor* innerCompositor = frameContentsCompositor(renderer); |
634 if (!innerCompositor || !innerCompositor->staleInCompositingMode() || innerC
ompositor->rootLayerAttachment() != RootLayerAttachedViaEnclosingFrame) | 634 if (!innerCompositor || !innerCompositor->staleInCompositingMode() || innerC
ompositor->rootLayerAttachment() != RootLayerAttachedViaEnclosingFrame) |
635 return false; | 635 return false; |
636 | 636 |
637 Layer* layer = renderer->layer(); | 637 Layer* layer = renderer->layer(); |
638 if (!layer->hasCompositedLayerMapping()) | 638 if (!layer->hasCompositedLayerMapping()) |
639 return false; | 639 return false; |
640 | 640 |
641 CompositedLayerMapping* compositedLayerMapping = layer->compositedLayerMappi
ng(); | 641 CompositedLayerMapping* compositedLayerMapping = layer->compositedLayerMappi
ng(); |
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1162 } else if (graphicsLayer == m_scrollLayer.get()) { | 1162 } else if (graphicsLayer == m_scrollLayer.get()) { |
1163 name = "LocalFrame Scrolling Layer"; | 1163 name = "LocalFrame Scrolling Layer"; |
1164 } else { | 1164 } else { |
1165 ASSERT_NOT_REACHED(); | 1165 ASSERT_NOT_REACHED(); |
1166 } | 1166 } |
1167 | 1167 |
1168 return name; | 1168 return name; |
1169 } | 1169 } |
1170 | 1170 |
1171 } // namespace blink | 1171 } // namespace blink |
OLD | NEW |