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

Side by Side Diff: Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp

Issue 9120020: Revert 98735 - Source/WebCore: The HTML5 video element in Safari does not respect "visibility:hid... (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/963/
Patch Set: Created 8 years, 11 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) 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 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 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 475
476 void GraphicsLayerCA::setDrawsContent(bool drawsContent) 476 void GraphicsLayerCA::setDrawsContent(bool drawsContent)
477 { 477 {
478 if (drawsContent == m_drawsContent) 478 if (drawsContent == m_drawsContent)
479 return; 479 return;
480 480
481 GraphicsLayer::setDrawsContent(drawsContent); 481 GraphicsLayer::setDrawsContent(drawsContent);
482 noteLayerPropertyChanged(DrawsContentChanged); 482 noteLayerPropertyChanged(DrawsContentChanged);
483 } 483 }
484 484
485 void GraphicsLayerCA::setContentsVisible(bool contentsVisible)
486 {
487 if (contentsVisible == m_contentsVisible)
488 return;
489
490 GraphicsLayer::setContentsVisible(contentsVisible);
491 noteLayerPropertyChanged(ContentsVisibilityChanged);
492 // Visibility affects whether the contentsLayer is parented.
493 if (m_contentsLayer)
494 noteSublayersChanged();
495 }
496
497 void GraphicsLayerCA::setAcceleratesDrawing(bool acceleratesDrawing) 485 void GraphicsLayerCA::setAcceleratesDrawing(bool acceleratesDrawing)
498 { 486 {
499 if (acceleratesDrawing == m_acceleratesDrawing) 487 if (acceleratesDrawing == m_acceleratesDrawing)
500 return; 488 return;
501 489
502 GraphicsLayer::setAcceleratesDrawing(acceleratesDrawing); 490 GraphicsLayer::setAcceleratesDrawing(acceleratesDrawing);
503 noteLayerPropertyChanged(AcceleratesDrawingChanged); 491 noteLayerPropertyChanged(AcceleratesDrawingChanged);
504 } 492 }
505 493
506 void GraphicsLayerCA::setAllowTiledLayer(bool allowTiledLayer) 494 void GraphicsLayerCA::setAllowTiledLayer(bool allowTiledLayer)
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
942 930
943 if (m_uncommittedChanges & ChildrenTransformChanged) 931 if (m_uncommittedChanges & ChildrenTransformChanged)
944 updateChildrenTransform(); 932 updateChildrenTransform();
945 933
946 if (m_uncommittedChanges & MasksToBoundsChanged) 934 if (m_uncommittedChanges & MasksToBoundsChanged)
947 updateMasksToBounds(); 935 updateMasksToBounds();
948 936
949 if (m_uncommittedChanges & DrawsContentChanged) 937 if (m_uncommittedChanges & DrawsContentChanged)
950 updateLayerDrawsContent(pageScaleFactor, positionRelativeToBase); 938 updateLayerDrawsContent(pageScaleFactor, positionRelativeToBase);
951 939
952 if (m_uncommittedChanges & ContentsVisibilityChanged)
953 updateContentsVisibility();
954
955 if (m_uncommittedChanges & ContentsOpaqueChanged) 940 if (m_uncommittedChanges & ContentsOpaqueChanged)
956 updateContentsOpaque(); 941 updateContentsOpaque();
957 942
958 if (m_uncommittedChanges & BackfaceVisibilityChanged) 943 if (m_uncommittedChanges & BackfaceVisibilityChanged)
959 updateBackfaceVisibility(); 944 updateBackfaceVisibility();
960 945
961 if (m_uncommittedChanges & OpacityChanged) 946 if (m_uncommittedChanges & OpacityChanged)
962 updateOpacityOnLayer(); 947 updateOpacityOnLayer();
963 948
964 if (m_uncommittedChanges & AnimationChanged) 949 if (m_uncommittedChanges & AnimationChanged)
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1014 PlatformCALayerList newSublayers; 999 PlatformCALayerList newSublayers;
1015 const Vector<GraphicsLayer*>& childLayers = children(); 1000 const Vector<GraphicsLayer*>& childLayers = children();
1016 1001
1017 if (m_structuralLayer || m_contentsLayer || childLayers.size() > 0) { 1002 if (m_structuralLayer || m_contentsLayer || childLayers.size() > 0) {
1018 if (m_structuralLayer) { 1003 if (m_structuralLayer) {
1019 // Add the replica layer first. 1004 // Add the replica layer first.
1020 if (m_replicaLayer) 1005 if (m_replicaLayer)
1021 newSublayers.append(static_cast<GraphicsLayerCA*>(m_replicaLayer )->primaryLayer()); 1006 newSublayers.append(static_cast<GraphicsLayerCA*>(m_replicaLayer )->primaryLayer());
1022 // Add the primary layer. Even if we have negative z-order children, the primary layer always comes behind. 1007 // Add the primary layer. Even if we have negative z-order children, the primary layer always comes behind.
1023 newSublayers.append(m_layer); 1008 newSublayers.append(m_layer);
1024 } else if (m_contentsLayer && m_contentsVisible) { 1009 } else if (m_contentsLayer) {
1025 // FIXME: add the contents layer in the correct order with negative z-order children. 1010 // FIXME: add the contents layer in the correct order with negative z-order children.
1026 // This does not cause visible rendering issues because currently co ntents layers are only used 1011 // This does not cause visible rendering issues because currently co ntents layers are only used
1027 // for replaced elements that don't have children. 1012 // for replaced elements that don't have children.
1028 newSublayers.append(m_contentsLayer); 1013 newSublayers.append(m_contentsLayer);
1029 } 1014 }
1030 1015
1031 size_t numChildren = childLayers.size(); 1016 size_t numChildren = childLayers.size();
1032 for (size_t i = 0; i < numChildren; ++i) { 1017 for (size_t i = 0; i < numChildren; ++i) {
1033 GraphicsLayerCA* curChild = static_cast<GraphicsLayerCA*>(childLayer s[i]); 1018 GraphicsLayerCA* curChild = static_cast<GraphicsLayerCA*>(childLayer s[i]);
1034 PlatformCALayer* childLayer = curChild->layerForSuperlayer(); 1019 PlatformCALayer* childLayer = curChild->layerForSuperlayer();
1035 newSublayers.append(childLayer); 1020 newSublayers.append(childLayer);
1036 } 1021 }
1037 1022
1038 for (size_t i = 0; i < newSublayers.size(); --i) 1023 for (size_t i = 0; i < newSublayers.size(); --i)
1039 newSublayers[i]->removeFromSuperlayer(); 1024 newSublayers[i]->removeFromSuperlayer();
1040 } 1025 }
1041 1026
1042 #ifdef VISIBLE_TILE_WASH 1027 #ifdef VISIBLE_TILE_WASH
1043 if (m_visibleTileWashLayer) 1028 if (m_visibleTileWashLayer)
1044 newSublayers.append(m_visibleTileWashLayer); 1029 newSublayers.append(m_visibleTileWashLayer);
1045 #endif 1030 #endif
1046 1031
1047 if (m_structuralLayer) { 1032 if (m_structuralLayer) {
1048 m_structuralLayer->setSublayers(newSublayers); 1033 m_structuralLayer->setSublayers(newSublayers);
1049 1034
1050 if (m_contentsLayer) { 1035 if (m_contentsLayer) {
1051 // If we have a transform layer, then the contents layer is parented in the 1036 // If we have a transform layer, then the contents layer is parented in the
1052 // primary layer (which is itself a child of the transform layer). 1037 // primary layer (which is itself a child of the transform layer).
1053 m_layer->removeAllSublayers(); 1038 m_layer->removeAllSublayers();
1054 if (m_contentsVisible) 1039 m_layer->appendSublayer(m_contentsLayer.get());
1055 m_layer->appendSublayer(m_contentsLayer.get());
1056 } 1040 }
1057 } else 1041 } else
1058 m_layer->setSublayers(newSublayers); 1042 m_layer->setSublayers(newSublayers);
1059 } 1043 }
1060 1044
1061 void GraphicsLayerCA::updateGeometry(float pageScaleFactor, const FloatPoint& po sitionRelativeToBase) 1045 void GraphicsLayerCA::updateGeometry(float pageScaleFactor, const FloatPoint& po sitionRelativeToBase)
1062 { 1046 {
1063 FloatPoint scaledPosition; 1047 FloatPoint scaledPosition;
1064 FloatPoint3D scaledAnchorPoint; 1048 FloatPoint3D scaledAnchorPoint;
1065 FloatSize scaledSize; 1049 FloatSize scaledSize;
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1166 1150
1167 if (LayerMap* layerCloneMap = m_layerClones.get()) { 1151 if (LayerMap* layerCloneMap = m_layerClones.get()) {
1168 LayerMap::const_iterator end = layerCloneMap->end(); 1152 LayerMap::const_iterator end = layerCloneMap->end();
1169 for (LayerMap::const_iterator it = layerCloneMap->begin(); it != end; ++ it) 1153 for (LayerMap::const_iterator it = layerCloneMap->begin(); it != end; ++ it)
1170 it->second->setMasksToBounds(m_masksToBounds); 1154 it->second->setMasksToBounds(m_masksToBounds);
1171 } 1155 }
1172 1156
1173 updateDebugIndicators(); 1157 updateDebugIndicators();
1174 } 1158 }
1175 1159
1176 void GraphicsLayerCA::updateContentsVisibility()
1177 {
1178 // Note that m_contentsVisible also affects whether m_contentsLayer is paren ted.
1179 if (m_contentsVisible) {
1180 if (m_drawsContent)
1181 m_layer->setNeedsDisplay();
1182 } else {
1183 m_layer.get()->setContents(0);
1184
1185 if (LayerMap* layerCloneMap = m_layerClones.get()) {
1186 LayerMap::const_iterator end = layerCloneMap->end();
1187 for (LayerMap::const_iterator it = layerCloneMap->begin(); it != end ; ++it)
1188 it->second->setContents(0);
1189 }
1190 }
1191 }
1192
1193 void GraphicsLayerCA::updateContentsOpaque() 1160 void GraphicsLayerCA::updateContentsOpaque()
1194 { 1161 {
1195 m_layer.get()->setOpaque(m_contentsOpaque); 1162 m_layer.get()->setOpaque(m_contentsOpaque);
1196 1163
1197 if (LayerMap* layerCloneMap = m_layerClones.get()) { 1164 if (LayerMap* layerCloneMap = m_layerClones.get()) {
1198 LayerMap::const_iterator end = layerCloneMap->end(); 1165 LayerMap::const_iterator end = layerCloneMap->end();
1199 for (LayerMap::const_iterator it = layerCloneMap->begin(); it != end; ++ it) 1166 for (LayerMap::const_iterator it = layerCloneMap->begin(); it != end; ++ it)
1200 it->second->setOpaque(m_contentsOpaque); 1167 it->second->setOpaque(m_contentsOpaque);
1201 } 1168 }
1202 } 1169 }
(...skipping 1345 matching lines...) Expand 10 before | Expand all | Expand 10 after
2548 { 2515 {
2549 if (!m_uncommittedChanges && m_client) 2516 if (!m_uncommittedChanges && m_client)
2550 m_client->notifySyncRequired(this); 2517 m_client->notifySyncRequired(this);
2551 2518
2552 m_uncommittedChanges |= flags; 2519 m_uncommittedChanges |= flags;
2553 } 2520 }
2554 2521
2555 } // namespace WebCore 2522 } // namespace WebCore
2556 2523
2557 #endif // USE(ACCELERATED_COMPOSITING) 2524 #endif // USE(ACCELERATED_COMPOSITING)
OLDNEW
« no previous file with comments | « Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h ('k') | Source/WebCore/rendering/RenderLayer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698