summaryrefslogtreecommitdiffstats
path: root/webkit/renderer
diff options
context:
space:
mode:
authorqiankun.miao@intel.com <qiankun.miao@intel.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-16 13:04:24 +0000
committerqiankun.miao@intel.com <qiankun.miao@intel.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-16 13:04:24 +0000
commitae716cec88d2e69f9bb6428fa24acbe33504c8ba (patch)
treed99e951d4ad479f9d6c8f49be85da67019645968 /webkit/renderer
parentbbe2f5108bd428abd67f63dc855333a576a41d8d (diff)
downloadchromium_src-ae716cec88d2e69f9bb6428fa24acbe33504c8ba.zip
chromium_src-ae716cec88d2e69f9bb6428fa24acbe33504c8ba.tar.gz
chromium_src-ae716cec88d2e69f9bb6428fa24acbe33504c8ba.tar.bz2
Add layer name into frame viewer
Layer name is useful for web developer to identify different layers. Layer name is pulled from blink. There is a blink side patch provides debugName() API in GraphicsLayer. BUG=269258 Review URL: https://chromiumcodereview.appspot.com/16903005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218007 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/renderer')
-rw-r--r--webkit/renderer/compositor_bindings/web_layer_impl.cc25
-rw-r--r--webkit/renderer/compositor_bindings/web_layer_impl.h10
2 files changed, 27 insertions, 8 deletions
diff --git a/webkit/renderer/compositor_bindings/web_layer_impl.cc b/webkit/renderer/compositor_bindings/web_layer_impl.cc
index 0545b3a..f04e362 100644
--- a/webkit/renderer/compositor_bindings/web_layer_impl.cc
+++ b/webkit/renderer/compositor_bindings/web_layer_impl.cc
@@ -13,6 +13,7 @@
#include "third_party/WebKit/public/platform/WebCompositingReasons.h"
#include "third_party/WebKit/public/platform/WebFloatPoint.h"
#include "third_party/WebKit/public/platform/WebFloatRect.h"
+#include "third_party/WebKit/public/platform/WebLayerClient.h"
#include "third_party/WebKit/public/platform/WebLayerPositionConstraint.h"
#include "third_party/WebKit/public/platform/WebLayerScrollClient.h"
#include "third_party/WebKit/public/platform/WebSize.h"
@@ -33,13 +34,20 @@ using WebKit::WebFilterOperations;
namespace webkit {
-WebLayerImpl::WebLayerImpl() : layer_(Layer::Create()) {}
+WebLayerImpl::WebLayerImpl() : layer_(Layer::Create()) {
+ web_layer_client_ = NULL;
+ layer_->SetLayerClient(this);
+}
-WebLayerImpl::WebLayerImpl(scoped_refptr<Layer> layer) : layer_(layer) {}
+WebLayerImpl::WebLayerImpl(scoped_refptr<Layer> layer) : layer_(layer) {
+ web_layer_client_ = NULL;
+ layer_->SetLayerClient(this);
+}
WebLayerImpl::~WebLayerImpl() {
layer_->ClearRenderSurface();
layer_->set_layer_animation_delegate(NULL);
+ web_layer_client_ = NULL;
}
int WebLayerImpl::id() const { return layer_->id(); }
@@ -174,10 +182,6 @@ void WebLayerImpl::setFilter(SkImageFilter* filter) {
layer_->SetFilter(skia::SharePtr(filter));
}
-void WebLayerImpl::setDebugName(WebKit::WebString name) {
- layer_->SetDebugName(UTF16ToASCII(name));
-}
-
void WebLayerImpl::setCompositingReasons(
WebKit::WebCompositingReasons reasons) {
layer_->SetCompositingReasons(reasons);
@@ -366,6 +370,15 @@ void WebLayerImpl::setWebLayerClient(WebKit::WebLayerClient* client) {
web_layer_client_ = client;
}
+std::string WebLayerImpl::DebugName() {
+ if (!web_layer_client_)
+ return std::string();
+
+ std::string name = web_layer_client_->debugName(this).utf8();
+ DCHECK(IsStringASCII(name));
+ return name;
+}
+
Layer* WebLayerImpl::layer() const { return layer_.get(); }
} // namespace webkit
diff --git a/webkit/renderer/compositor_bindings/web_layer_impl.h b/webkit/renderer/compositor_bindings/web_layer_impl.h
index ee5997d..10b5a1a 100644
--- a/webkit/renderer/compositor_bindings/web_layer_impl.h
+++ b/webkit/renderer/compositor_bindings/web_layer_impl.h
@@ -5,9 +5,13 @@
#ifndef WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_LAYER_IMPL_H_
#define WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_LAYER_IMPL_H_
+#include <string>
+
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
+#include "cc/layers/layer_client.h"
#include "third_party/WebKit/public/platform/WebAnimation.h"
+#include "third_party/WebKit/public/platform/WebCString.h"
#include "third_party/WebKit/public/platform/WebColor.h"
#include "third_party/WebKit/public/platform/WebCompositingReasons.h"
#include "third_party/WebKit/public/platform/WebFloatPoint.h"
@@ -35,7 +39,7 @@ namespace webkit {
class WebToCCAnimationDelegateAdapter;
-class WebLayerImpl : public WebKit::WebLayer {
+class WebLayerImpl : public WebKit::WebLayer, public cc::LayerClient {
public:
WEBKIT_COMPOSITOR_BINDINGS_EXPORT WebLayerImpl();
WEBKIT_COMPOSITOR_BINDINGS_EXPORT explicit WebLayerImpl(
@@ -83,7 +87,6 @@ class WebLayerImpl : public WebKit::WebLayer {
virtual void setFilter(SkImageFilter* filter);
virtual void setFilters(const WebKit::WebFilterOperations& filters);
virtual void setBackgroundFilters(const WebKit::WebFilterOperations& filters);
- virtual void setDebugName(WebKit::WebString name);
virtual void setCompositingReasons(WebKit::WebCompositingReasons);
virtual void setAnimationDelegate(WebKit::WebAnimationDelegate* delegate);
virtual bool addAnimation(WebKit::WebAnimation* animation);
@@ -120,6 +123,9 @@ class WebLayerImpl : public WebKit::WebLayer {
virtual bool isOrphan() const;
virtual void setWebLayerClient(WebKit::WebLayerClient* client);
+ // LayerClient implementation.
+ virtual std::string DebugName() OVERRIDE;
+
protected:
scoped_refptr<cc::Layer> layer_;
WebKit::WebLayerClient* web_layer_client_;