[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
simon.fraser at apple.com
simon.fraser at apple.com
Wed Dec 22 11:11:51 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit b73688b74d04edd4a581183311b3f835d405289a
Author: simon.fraser at apple.com <simon.fraser at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Jul 14 23:17:20 2010 +0000
2010-07-14 Simon Fraser <simon.fraser at apple.com>
Reviewed by John Sullivan.
<rdar://problem/8186963> Expose information about compositing layers.
Expose information about the types of compositing layers via RenderLayerBacking::compositingLayerType().
* WebCore.exp.in: Export WebCore::SpaceSplitStringData::createVector().
* WebCore.xcodeproj/project.pbxproj: Make RenderLayerBacking.h a Private header for use by WebKit.
* platform/graphics/GraphicsLayer.h: Add hasContentsLayer() and usingTiledLayer() methods.
(WebCore::GraphicsLayer::hasContentsLayer):
(WebCore::GraphicsLayer::usingTiledLayer):
* platform/graphics/mac/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::hasContentsLayer): Return true if we have a contents layer.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::compositingLayerType): Return information about the type of composited layer.
* rendering/RenderLayerBacking.h:
2010-07-14 Simon Fraser <simon.fraser at apple.com>
Reviewed by John Sullivan.
<rdar://problem/8186963> Expose information about compositing layers.
Use RenderLayerBacking::compositingLayerType() to add more information about compositing to
WebRenderLayer, via a compositingInfo property. Also show element classnames.
Also add separator items between the various z-order lists.
* WebView/WebRenderLayer.h:
* WebView/WebRenderLayer.mm:
(+[WebRenderLayer nameForLayer:]):
(+[WebRenderLayer compositingInfoForLayer:]):
(-[WebRenderLayer initWithRenderLayer:]):
(-[WebRenderLayer initWithName:]):
(-[WebRenderLayer initWithWebFrame:]):
(-[WebRenderLayer dealloc]):
(-[WebRenderLayer buildDescendantLayers:]):
(-[WebRenderLayer compositingInfo]):
(-[WebRenderLayer isComposited]):
(-[WebRenderLayer isSeparator]):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index c9f6c31..1a098d0 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2010-07-14 Simon Fraser <simon.fraser at apple.com>
+
+ Reviewed by John Sullivan.
+
+ <rdar://problem/8186963> Expose information about compositing layers.
+
+ Expose information about the types of compositing layers via RenderLayerBacking::compositingLayerType().
+
+ * WebCore.exp.in: Export WebCore::SpaceSplitStringData::createVector().
+ * WebCore.xcodeproj/project.pbxproj: Make RenderLayerBacking.h a Private header for use by WebKit.
+ * platform/graphics/GraphicsLayer.h: Add hasContentsLayer() and usingTiledLayer() methods.
+ (WebCore::GraphicsLayer::hasContentsLayer):
+ (WebCore::GraphicsLayer::usingTiledLayer):
+ * platform/graphics/mac/GraphicsLayerCA.h:
+ (WebCore::GraphicsLayerCA::hasContentsLayer): Return true if we have a contents layer.
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::compositingLayerType): Return information about the type of composited layer.
+ * rendering/RenderLayerBacking.h:
+
2010-07-14 Darin Adler <darin at apple.com>
Reviewed by Sam Weinig.
diff --git a/WebCore/WebCore.exp.in b/WebCore/WebCore.exp.in
index 83e7d1d..3cdfb00 100644
--- a/WebCore/WebCore.exp.in
+++ b/WebCore/WebCore.exp.in
@@ -138,6 +138,7 @@ __ZN7WebCore10MouseEventC1ERKNS_12AtomicStringEbbN3WTF10PassRefPtrINS_9DOMWindow
__ZN7WebCore10ScrollView20setCanHaveScrollbarsEb
__ZN7WebCore10StringImpl14createCFStringEv
__ZN7WebCore10StringImplcvP8NSStringEv
+__ZN7WebCore20SpaceSplitStringData12createVectorEv
__ZN7WebCore10handCursorEv
__ZN7WebCore10setCookiesEPNS_8DocumentERKNS_4KURLERKNS_6StringE
__ZN7WebCore11BitmapImageC1EP7CGImagePNS_13ImageObserverE
@@ -1071,6 +1072,7 @@ _WebCoreHas3DRendering
#if USE(ACCELERATED_COMPOSITING)
__ZN7WebCore13GraphicsLayer17removeAllChildrenEv
__ZN7WebCore13GraphicsLayer6createEPNS_19GraphicsLayerClientE
+__ZNK7WebCore18RenderLayerBacking20compositingLayerTypeEv
#endif
#if ENABLE(CONTEXT_MENUS)
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index cadf3cc..e4b3018 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -223,7 +223,7 @@
0F580B0E0F12A2690051D689 /* GraphicsLayerClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F580B0B0F12A2690051D689 /* GraphicsLayerClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
0F580CFD0F12DE9B0051D689 /* RenderLayerCompositor.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F580CF90F12DE9B0051D689 /* RenderLayerCompositor.h */; };
0F580CFE0F12DE9B0051D689 /* RenderLayerCompositor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F580CFA0F12DE9B0051D689 /* RenderLayerCompositor.cpp */; };
- 0F580CFF0F12DE9B0051D689 /* RenderLayerBacking.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F580CFB0F12DE9B0051D689 /* RenderLayerBacking.h */; };
+ 0F580CFF0F12DE9B0051D689 /* RenderLayerBacking.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F580CFB0F12DE9B0051D689 /* RenderLayerBacking.h */; settings = {ATTRIBUTES = (Private, ); }; };
0F580D000F12DE9B0051D689 /* RenderLayerBacking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F580CFC0F12DE9B0051D689 /* RenderLayerBacking.cpp */; };
0F5B7A5410F65D7A00376302 /* RenderEmbeddedObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F5B7A5210F65D7A00376302 /* RenderEmbeddedObject.cpp */; };
0F5B7A5510F65D7A00376302 /* RenderEmbeddedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5B7A5310F65D7A00376302 /* RenderEmbeddedObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
diff --git a/WebCore/platform/graphics/GraphicsLayer.h b/WebCore/platform/graphics/GraphicsLayer.h
index 8fcebce..a5819f4 100644
--- a/WebCore/platform/graphics/GraphicsLayer.h
+++ b/WebCore/platform/graphics/GraphicsLayer.h
@@ -298,10 +298,11 @@ public:
virtual void setContentsToImage(Image*) { }
virtual void setContentsToMedia(PlatformLayer*) { } // video or plug-in
virtual void setContentsBackgroundColor(const Color&) { }
-
#if ENABLE(3D_CANVAS)
virtual void setContentsToWebGL(PlatformLayer*) { }
#endif
+ virtual bool hasContentsLayer() const { return false; }
+
// Callback from the underlying graphics system to draw layer contents.
void paintGraphicsLayerContents(GraphicsContext&, const IntRect& clip);
// Callback from the underlying graphics system when the layer has been displayed
@@ -351,6 +352,8 @@ public:
// pointers for the layers and timing data will be included in the returned string.
String layerTreeAsText(LayerTreeAsTextBehavior = LayerTreeAsTextBehaviorNormal) const;
+ bool usingTiledLayer() const { return m_usingTiledLayer; }
+
protected:
typedef Vector<TransformOperation::OperationType> TransformOperationList;
diff --git a/WebCore/platform/graphics/mac/GraphicsLayerCA.h b/WebCore/platform/graphics/mac/GraphicsLayerCA.h
index 7d78dee..80c822c 100644
--- a/WebCore/platform/graphics/mac/GraphicsLayerCA.h
+++ b/WebCore/platform/graphics/mac/GraphicsLayerCA.h
@@ -106,6 +106,7 @@ public:
#if ENABLE(3D_CANVAS)
virtual void setContentsToWebGL(PlatformLayer*);
#endif
+ virtual bool hasContentsLayer() const { return m_contentsLayer; }
virtual PlatformLayer* platformLayer() const;
diff --git a/WebCore/rendering/RenderLayerBacking.cpp b/WebCore/rendering/RenderLayerBacking.cpp
index ae01799..e8b3cee 100644
--- a/WebCore/rendering/RenderLayerBacking.cpp
+++ b/WebCore/rendering/RenderLayerBacking.cpp
@@ -1267,6 +1267,17 @@ String RenderLayerBacking::nameForLayer() const
}
#endif
+CompositingLayerType RenderLayerBacking::compositingLayerType() const
+{
+ if (m_graphicsLayer->hasContentsLayer())
+ return MediaCompositingLayer;
+
+ if (m_graphicsLayer->drawsContent())
+ return m_graphicsLayer->usingTiledLayer() ? TiledCompositingLayer : NormalCompositingLayer;
+
+ return ContainerCompositingLayer;
+}
+
} // namespace WebCore
#endif // USE(ACCELERATED_COMPOSITING)
diff --git a/WebCore/rendering/RenderLayerBacking.h b/WebCore/rendering/RenderLayerBacking.h
index 16c39da..852fc04 100644
--- a/WebCore/rendering/RenderLayerBacking.h
+++ b/WebCore/rendering/RenderLayerBacking.h
@@ -40,6 +40,13 @@ namespace WebCore {
class KeyframeList;
class RenderLayerCompositor;
+enum CompositingLayerType {
+ NormalCompositingLayer, // non-tiled layer with backing store
+ TiledCompositingLayer, // tiled layer (always has backing store)
+ MediaCompositingLayer, // layer that contains an image, video, webGL or plugin
+ ContainerCompositingLayer // layer with no backing store
+};
+
// RenderLayerBacking controls the compositing behavior for a single RenderLayer.
// It holds the various GraphicsLayers, and makes decisions about intra-layer rendering
// optimizations.
@@ -127,6 +134,9 @@ public:
IntRect contentsBox() const;
+ // For informative purposes only.
+ CompositingLayerType compositingLayerType() const;
+
private:
void createGraphicsLayer();
void destroyGraphicsLayer();
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index dcf8485..dd34e58 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,27 @@
+2010-07-14 Simon Fraser <simon.fraser at apple.com>
+
+ Reviewed by John Sullivan.
+
+ <rdar://problem/8186963> Expose information about compositing layers.
+
+ Use RenderLayerBacking::compositingLayerType() to add more information about compositing to
+ WebRenderLayer, via a compositingInfo property. Also show element classnames.
+
+ Also add separator items between the various z-order lists.
+
+ * WebView/WebRenderLayer.h:
+ * WebView/WebRenderLayer.mm:
+ (+[WebRenderLayer nameForLayer:]):
+ (+[WebRenderLayer compositingInfoForLayer:]):
+ (-[WebRenderLayer initWithRenderLayer:]):
+ (-[WebRenderLayer initWithName:]):
+ (-[WebRenderLayer initWithWebFrame:]):
+ (-[WebRenderLayer dealloc]):
+ (-[WebRenderLayer buildDescendantLayers:]):
+ (-[WebRenderLayer compositingInfo]):
+ (-[WebRenderLayer isComposited]):
+ (-[WebRenderLayer isSeparator]):
+
2010-07-14 Darin Adler <darin at apple.com>
Another try at fixing the Tiger build.
diff --git a/WebKit/mac/WebView/WebRenderLayer.h b/WebKit/mac/WebView/WebRenderLayer.h
index 10d38df..e09983d 100644
--- a/WebKit/mac/WebView/WebRenderLayer.h
+++ b/WebKit/mac/WebView/WebRenderLayer.h
@@ -31,8 +31,10 @@
{
NSArray *children;
NSString *name;
+ NSString *compositingInfo;
NSRect bounds;
BOOL composited;
+ BOOL separator;
}
- (id)initWithWebFrame:(WebFrame *)frame;
@@ -43,6 +45,9 @@
- (NSString *)positionString;
- (NSString *)widthString;
- (NSString *)heightString;
-- (BOOL)composited;
+- (NSString *)compositingInfo;
+
+- (BOOL)isComposited;
+- (BOOL)isSeparator;
@end
diff --git a/WebKit/mac/WebView/WebRenderLayer.mm b/WebKit/mac/WebView/WebRenderLayer.mm
index 31fd6d5..444c672 100644
--- a/WebKit/mac/WebView/WebRenderLayer.mm
+++ b/WebKit/mac/WebView/WebRenderLayer.mm
@@ -30,7 +30,7 @@
#import <WebCore/FrameLoaderClient.h>
#import <WebCore/PlatformString.h>
#import <WebCore/RenderLayer.h>
-#import <WebCore/RenderView.h>
+#import <WebCore/RenderLayerBacking.h>
#import <WebCore/RenderView.h>
using namespace WebCore;
@@ -54,7 +54,18 @@ using namespace WebCore;
if (node->isElementNode())
name = [name stringByAppendingFormat:@" %@", (NSString *)static_cast<Element*>(node)->tagName()];
if (node->hasID())
- name = [name stringByAppendingFormat:@" %C%@%C", 0x2018, (NSString *)static_cast<Element*>(node)->getIdAttribute(), 0x2019];
+ name = [name stringByAppendingFormat:@" id=\"%@\"", (NSString *)static_cast<Element*>(node)->getIdAttribute()];
+
+ if (node->hasClass()) {
+ StyledElement* styledElement = static_cast<StyledElement*>(node);
+ String classes;
+ for (size_t i = 0; i < styledElement->classNames().size(); ++i) {
+ if (i > 0)
+ classes += " ";
+ classes += styledElement->classNames()[i];
+ }
+ name = [name stringByAppendingFormat:@" class=\"%@\"", (NSString *)classes];
+ }
}
if (layer->isReflection())
@@ -63,12 +74,54 @@ using namespace WebCore;
return name;
}
++ (NSString *)compositingInfoForLayer:(RenderLayer*)layer;
+{
+ if (!layer->isComposited())
+ return @"";
+
+ NSString *layerType = @"";
+ RenderLayerBacking* backing = layer->backing();
+ switch (backing->compositingLayerType()) {
+ case NormalCompositingLayer:
+ layerType = @"composited";
+ break;
+ case TiledCompositingLayer:
+ layerType = @"composited: tiled layer";
+ break;
+ case MediaCompositingLayer:
+ layerType = @"composited for plug-in, video or WebGL";
+ break;
+ case ContainerCompositingLayer:
+ layerType = @"composited: container layer";
+ break;
+ }
+
+ if (backing->hasClippingLayer())
+ layerType = [layerType stringByAppendingString:@" (clipping)"];
+
+ if (backing->hasAncestorClippingLayer())
+ layerType = [layerType stringByAppendingString:@" (clipped)"];
+
+ return layerType;
+}
+
- (id)initWithRenderLayer:(RenderLayer*)layer
{
if ((self = [super init])) {
name = [[WebRenderLayer nameForLayer:layer] retain];
bounds = layer->absoluteBoundingBox();
composited = layer->isComposited();
+ compositingInfo = [[WebRenderLayer compositingInfoForLayer:layer] retain];
+ }
+
+ return self;
+}
+
+- (id)initWithName:(NSString*)layerName
+{
+ if ((self = [super init])) {
+ name = [layerName copy];
+ separator = YES;
}
return self;
@@ -97,6 +150,7 @@ using namespace WebCore;
name = [[WebRenderLayer nameForLayer:layer] retain];
bounds = layer->absoluteBoundingBox();
composited = layer->isComposited();
+ compositingInfo = [[WebRenderLayer compositingInfoForLayer:layer] retain];
[self buildDescendantLayers:layer];
}
@@ -108,6 +162,7 @@ using namespace WebCore;
{
[children release];
[name release];
+ [compositingInfo release];
[super dealloc];
}
@@ -119,6 +174,13 @@ using namespace WebCore;
if (Vector<RenderLayer*>* negZOrderList = layer->negZOrderList()) {
size_t listSize = negZOrderList->size();
+
+ if (listSize) {
+ WebRenderLayer* newLayer = [[WebRenderLayer alloc] initWithName:@"-ve z-order list"];
+ [childWebLayers addObject:newLayer];
+ [newLayer release];
+ }
+
for (size_t i = 0; i < listSize; ++i) {
RenderLayer* curLayer = negZOrderList->at(i);
@@ -132,6 +194,13 @@ using namespace WebCore;
if (Vector<RenderLayer*>* normalFlowList = layer->normalFlowList()) {
size_t listSize = normalFlowList->size();
+
+ if (listSize) {
+ WebRenderLayer* newLayer = [[WebRenderLayer alloc] initWithName:@"normal flow list"];
+ [childWebLayers addObject:newLayer];
+ [newLayer release];
+ }
+
for (size_t i = 0; i < listSize; ++i) {
RenderLayer* curLayer = normalFlowList->at(i);
@@ -145,6 +214,13 @@ using namespace WebCore;
if (Vector<RenderLayer*>* posZOrderList = layer->posZOrderList()) {
size_t listSize = posZOrderList->size();
+
+ if (listSize) {
+ WebRenderLayer* newLayer = [[WebRenderLayer alloc] initWithName:@"+ve z-order list"];
+ [childWebLayers addObject:newLayer];
+ [newLayer release];
+ }
+
for (size_t i = 0; i < listSize; ++i) {
RenderLayer* curLayer = posZOrderList->at(i);
@@ -184,9 +260,19 @@ using namespace WebCore;
return [NSString stringWithFormat:@"%.0f", bounds.size.height];
}
-- (BOOL)composited
+- (NSString *)compositingInfo
+{
+ return compositingInfo;
+}
+
+- (BOOL)isComposited
{
return composited;
}
+- (BOOL)isSeparator
+{
+ return separator;
+}
+
@end
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list