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

Side by Side Diff: Source/WebCore/rendering/RenderLayerCompositor.h

Issue 8403008: Merge 98060 - Hidden composited iframes cause infinite loop (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/874/
Patch Set: Created 9 years, 1 month 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) 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2009 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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 144
145 RootLayerAttachment rootLayerAttachment() const { return m_rootLayerAttachme nt; } 145 RootLayerAttachment rootLayerAttachment() const { return m_rootLayerAttachme nt; }
146 void updateRootLayerAttachment(); 146 void updateRootLayerAttachment();
147 void updateRootLayerPosition(); 147 void updateRootLayerPosition();
148 148
149 void didMoveOnscreen(); 149 void didMoveOnscreen();
150 void willMoveOffscreen(); 150 void willMoveOffscreen();
151 151
152 void clearBackingForAllLayers(); 152 void clearBackingForAllLayers();
153 153
154 void layerBecameComposited(const RenderLayer*) { ++m_compositedLayerCount; }
155 void layerBecameNonComposited(const RenderLayer*)
156 {
157 ASSERT(m_compositedLayerCount > 0);
158 --m_compositedLayerCount;
159 }
160
154 void didStartAcceleratedAnimation(CSSPropertyID); 161 void didStartAcceleratedAnimation(CSSPropertyID);
155 162
156 #if ENABLE(VIDEO) 163 #if ENABLE(VIDEO)
157 // Use by RenderVideo to ask if it should try to use accelerated compositing . 164 // Use by RenderVideo to ask if it should try to use accelerated compositing .
158 bool canAccelerateVideoRendering(RenderVideo*) const; 165 bool canAccelerateVideoRendering(RenderVideo*) const;
159 #endif 166 #endif
160 167
161 // Walk the tree looking for layers with 3d transforms. Useful in case you n eed 168 // Walk the tree looking for layers with 3d transforms. Useful in case you n eed
162 // to know if there is non-affine content, e.g. for drawing into an image. 169 // to know if there is non-affine content, e.g. for drawing into an image.
163 bool has3DContent() const; 170 bool has3DContent() const;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 245
239 // Recurses down the tree, updating layer geometry only. 246 // Recurses down the tree, updating layer geometry only.
240 void updateLayerTreeGeometry(RenderLayer*); 247 void updateLayerTreeGeometry(RenderLayer*);
241 248
242 // Hook compositing layers together 249 // Hook compositing layers together
243 void setCompositingParent(RenderLayer* childLayer, RenderLayer* parentLayer) ; 250 void setCompositingParent(RenderLayer* childLayer, RenderLayer* parentLayer) ;
244 void removeCompositedChildren(RenderLayer*); 251 void removeCompositedChildren(RenderLayer*);
245 252
246 bool layerHas3DContent(const RenderLayer*) const; 253 bool layerHas3DContent(const RenderLayer*) const;
247 bool hasNonIdentity3DTransform(RenderObject*) const; 254 bool hasNonIdentity3DTransform(RenderObject*) const;
255
256 bool hasAnyAdditionalCompositedLayers(const RenderLayer* rootLayer) const;
248 257
249 void ensureRootLayer(); 258 void ensureRootLayer();
250 void destroyRootLayer(); 259 void destroyRootLayer();
251 260
252 void attachRootLayer(RootLayerAttachment); 261 void attachRootLayer(RootLayerAttachment);
253 void detachRootLayer(); 262 void detachRootLayer();
254 263
255 void rootLayerAttachmentChanged(); 264 void rootLayerAttachmentChanged();
256 265
257 void updateOverflowControlsLayers(); 266 void updateOverflowControlsLayers();
(...skipping 19 matching lines...) Expand all
277 bool requiresScrollCornerLayer() const; 286 bool requiresScrollCornerLayer() const;
278 287
279 private: 288 private:
280 RenderView* m_renderView; 289 RenderView* m_renderView;
281 OwnPtr<GraphicsLayer> m_rootContentLayer; 290 OwnPtr<GraphicsLayer> m_rootContentLayer;
282 Timer<RenderLayerCompositor> m_updateCompositingLayersTimer; 291 Timer<RenderLayerCompositor> m_updateCompositingLayersTimer;
283 292
284 bool m_hasAcceleratedCompositing; 293 bool m_hasAcceleratedCompositing;
285 ChromeClient::CompositingTriggerFlags m_compositingTriggers; 294 ChromeClient::CompositingTriggerFlags m_compositingTriggers;
286 295
296 int m_compositedLayerCount;
287 bool m_showDebugBorders; 297 bool m_showDebugBorders;
288 bool m_showRepaintCounter; 298 bool m_showRepaintCounter;
289 bool m_compositingConsultsOverlap; 299 bool m_compositingConsultsOverlap;
290 300
291 // When true, we have to wait until layout has happened before we can decide whether to enter compositing mode, 301 // When true, we have to wait until layout has happened before we can decide whether to enter compositing mode,
292 // because only then do we know the final size of plugins and iframes. 302 // because only then do we know the final size of plugins and iframes.
293 // FIXME: once set, this is never cleared. 303 // FIXME: once set, this is never cleared.
294 mutable bool m_compositingDependsOnGeometry; 304 mutable bool m_compositingDependsOnGeometry;
295 305
296 bool m_compositing; 306 bool m_compositing;
(...skipping 16 matching lines...) Expand all
313 OwnPtr<GraphicsLayer> m_layerForScrollCorner; 323 OwnPtr<GraphicsLayer> m_layerForScrollCorner;
314 #if PROFILE_LAYER_REBUILD 324 #if PROFILE_LAYER_REBUILD
315 int m_rootLayerUpdateCount; 325 int m_rootLayerUpdateCount;
316 #endif 326 #endif
317 }; 327 };
318 328
319 329
320 } // namespace WebCore 330 } // namespace WebCore
321 331
322 #endif // RenderLayerCompositor_h 332 #endif // RenderLayerCompositor_h
OLDNEW
« no previous file with comments | « Source/WebCore/rendering/RenderLayer.cpp ('k') | Source/WebCore/rendering/RenderLayerCompositor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698