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 26 matching lines...) Expand all Loading... |
37 #include "core/html/HTMLCanvasElement.h" | 37 #include "core/html/HTMLCanvasElement.h" |
38 #include "core/html/HTMLIFrameElement.h" | 38 #include "core/html/HTMLIFrameElement.h" |
39 #include "core/html/HTMLMediaElement.h" | 39 #include "core/html/HTMLMediaElement.h" |
40 #include "core/html/canvas/CanvasRenderingContext.h" | 40 #include "core/html/canvas/CanvasRenderingContext.h" |
41 #include "core/inspector/InspectorInstrumentation.h" | 41 #include "core/inspector/InspectorInstrumentation.h" |
42 #include "core/page/Chrome.h" | 42 #include "core/page/Chrome.h" |
43 #include "core/frame/Frame.h" | 43 #include "core/frame/Frame.h" |
44 #include "core/frame/FrameView.h" | 44 #include "core/frame/FrameView.h" |
45 #include "core/page/Page.h" | 45 #include "core/page/Page.h" |
46 #include "core/frame/Settings.h" | 46 #include "core/frame/Settings.h" |
47 #include "core/frame/animation/AnimationController.h" | |
48 #include "core/page/scrolling/ScrollingConstraints.h" | 47 #include "core/page/scrolling/ScrollingConstraints.h" |
49 #include "core/page/scrolling/ScrollingCoordinator.h" | 48 #include "core/page/scrolling/ScrollingCoordinator.h" |
50 #include "core/rendering/CompositedLayerMapping.h" | 49 #include "core/rendering/CompositedLayerMapping.h" |
51 #include "core/rendering/HitTestResult.h" | 50 #include "core/rendering/HitTestResult.h" |
52 #include "core/rendering/RenderApplet.h" | 51 #include "core/rendering/RenderApplet.h" |
53 #include "core/rendering/RenderEmbeddedObject.h" | 52 #include "core/rendering/RenderEmbeddedObject.h" |
54 #include "core/rendering/RenderFullScreen.h" | 53 #include "core/rendering/RenderFullScreen.h" |
55 #include "core/rendering/RenderGeometryMap.h" | 54 #include "core/rendering/RenderGeometryMap.h" |
56 #include "core/rendering/RenderIFrame.h" | 55 #include "core/rendering/RenderIFrame.h" |
57 #include "core/rendering/RenderLayerStackingNode.h" | 56 #include "core/rendering/RenderLayerStackingNode.h" |
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
418 | 417 |
419 if (isMainFrame() && m_renderView->frameView()) | 418 if (isMainFrame() && m_renderView->frameView()) |
420 finishCompositingUpdateForFrameTree(&m_renderView->frameView()->frame())
; | 419 finishCompositingUpdateForFrameTree(&m_renderView->frameView()->frame())
; |
421 | 420 |
422 if (m_forceCompositingMode && !m_compositing) | 421 if (m_forceCompositingMode && !m_compositing) |
423 enableCompositingMode(true); | 422 enableCompositingMode(true); |
424 | 423 |
425 if (!m_needsToRecomputeCompositingRequirements && !m_compositing) | 424 if (!m_needsToRecomputeCompositingRequirements && !m_compositing) |
426 return; | 425 return; |
427 | 426 |
428 AnimationUpdateBlock animationUpdateBlock(m_renderView->frameView()->frame()
.animation()); | |
429 | |
430 TemporaryChange<bool> postLayoutChange(m_inPostLayoutUpdate, true); | 427 TemporaryChange<bool> postLayoutChange(m_inPostLayoutUpdate, true); |
431 | 428 |
432 bool needCompositingRequirementsUpdate = m_needsToRecomputeCompositingRequir
ements; | 429 bool needCompositingRequirementsUpdate = m_needsToRecomputeCompositingRequir
ements; |
433 bool needHierarchyAndGeometryUpdate = m_compositingLayersNeedRebuild; | 430 bool needHierarchyAndGeometryUpdate = m_compositingLayersNeedRebuild; |
434 bool needGeometryUpdate = m_needsToUpdateLayerTreeGeometry; | 431 bool needGeometryUpdate = m_needsToUpdateLayerTreeGeometry; |
435 bool needsToUpdateScrollingCoordinator = scrollingCoordinator() ? scrollingC
oordinator()->needsToUpdateAfterCompositingChange() : false; | 432 bool needsToUpdateScrollingCoordinator = scrollingCoordinator() ? scrollingC
oordinator()->needsToUpdateAfterCompositingChange() : false; |
436 | 433 |
437 if (!needCompositingRequirementsUpdate && !needHierarchyAndGeometryUpdate &&
!needGeometryUpdate && !needsToUpdateScrollingCoordinator) | 434 if (!needCompositingRequirementsUpdate && !needHierarchyAndGeometryUpdate &&
!needGeometryUpdate && !needsToUpdateScrollingCoordinator) |
438 return; | 435 return; |
439 | 436 |
(...skipping 1433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1873 bool RenderLayerCompositor::requiresCompositingForBackfaceVisibilityHidden(Rende
rObject* renderer) const | 1870 bool RenderLayerCompositor::requiresCompositingForBackfaceVisibilityHidden(Rende
rObject* renderer) const |
1874 { | 1871 { |
1875 return canRender3DTransforms() && renderer->style()->backfaceVisibility() ==
BackfaceVisibilityHidden; | 1872 return canRender3DTransforms() && renderer->style()->backfaceVisibility() ==
BackfaceVisibilityHidden; |
1876 } | 1873 } |
1877 | 1874 |
1878 bool RenderLayerCompositor::requiresCompositingForAnimation(RenderObject* render
er) const | 1875 bool RenderLayerCompositor::requiresCompositingForAnimation(RenderObject* render
er) const |
1879 { | 1876 { |
1880 if (!(m_compositingTriggers & ChromeClient::AnimationTrigger)) | 1877 if (!(m_compositingTriggers & ChromeClient::AnimationTrigger)) |
1881 return false; | 1878 return false; |
1882 | 1879 |
1883 if (!RuntimeEnabledFeatures::webAnimationsCSSEnabled()) | |
1884 return renderer->animation().isRunningAcceleratableAnimationOnRenderer(r
enderer); | |
1885 | |
1886 return shouldCompositeForActiveAnimations(*renderer); | 1880 return shouldCompositeForActiveAnimations(*renderer); |
1887 } | 1881 } |
1888 | 1882 |
1889 bool RenderLayerCompositor::requiresCompositingForTransition(RenderObject* rende
rer) const | 1883 bool RenderLayerCompositor::requiresCompositingForTransition(RenderObject* rende
rer) const |
1890 { | 1884 { |
1891 if (!(m_compositingTriggers & ChromeClient::AnimationTrigger)) | 1885 if (!(m_compositingTriggers & ChromeClient::AnimationTrigger)) |
1892 return false; | 1886 return false; |
1893 | 1887 |
1894 if (Settings* settings = m_renderView->document().settings()) { | 1888 if (Settings* settings = m_renderView->document().settings()) { |
1895 if (!settings->acceleratedCompositingForTransitionEnabled()) | 1889 if (!settings->acceleratedCompositingForTransitionEnabled()) |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2090 | 2084 |
2091 bool RenderLayerCompositor::requiresCompositingForOverflowScrolling(const Render
Layer* layer) const | 2085 bool RenderLayerCompositor::requiresCompositingForOverflowScrolling(const Render
Layer* layer) const |
2092 { | 2086 { |
2093 return layer->needsCompositedScrolling(); | 2087 return layer->needsCompositedScrolling(); |
2094 } | 2088 } |
2095 | 2089 |
2096 bool RenderLayerCompositor::isRunningAcceleratedTransformAnimation(RenderObject*
renderer) const | 2090 bool RenderLayerCompositor::isRunningAcceleratedTransformAnimation(RenderObject*
renderer) const |
2097 { | 2091 { |
2098 if (!(m_compositingTriggers & ChromeClient::AnimationTrigger)) | 2092 if (!(m_compositingTriggers & ChromeClient::AnimationTrigger)) |
2099 return false; | 2093 return false; |
2100 if (!RuntimeEnabledFeatures::webAnimationsCSSEnabled()) | |
2101 return renderer->animation().isRunningAnimationOnRenderer(renderer, CSSP
ropertyWebkitTransform); | |
2102 return hasActiveAnimations(*renderer, CSSPropertyWebkitTransform); | 2094 return hasActiveAnimations(*renderer, CSSPropertyWebkitTransform); |
2103 } | 2095 } |
2104 | 2096 |
2105 // If an element has negative z-index children, those children render in front o
f the | 2097 // If an element has negative z-index children, those children render in front o
f the |
2106 // layer background, so we need an extra 'contents' layer for the foreground of
the layer | 2098 // layer background, so we need an extra 'contents' layer for the foreground of
the layer |
2107 // object. | 2099 // object. |
2108 bool RenderLayerCompositor::needsContentsCompositingLayer(const RenderLayer* lay
er) const | 2100 bool RenderLayerCompositor::needsContentsCompositingLayer(const RenderLayer* lay
er) const |
2109 { | 2101 { |
2110 return layer->stackingNode()->hasNegativeZOrderList(); | 2102 return layer->stackingNode()->hasNegativeZOrderList(); |
2111 } | 2103 } |
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2656 } else if (graphicsLayer == m_scrollLayer.get()) { | 2648 } else if (graphicsLayer == m_scrollLayer.get()) { |
2657 name = "Frame Scrolling Layer"; | 2649 name = "Frame Scrolling Layer"; |
2658 } else { | 2650 } else { |
2659 ASSERT_NOT_REACHED(); | 2651 ASSERT_NOT_REACHED(); |
2660 } | 2652 } |
2661 | 2653 |
2662 return name; | 2654 return name; |
2663 } | 2655 } |
2664 | 2656 |
2665 } // namespace WebCore | 2657 } // namespace WebCore |
OLD | NEW |