diff options
author | qiankun.miao@intel.com <qiankun.miao@intel.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-16 13:04:24 +0000 |
---|---|---|
committer | qiankun.miao@intel.com <qiankun.miao@intel.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-16 13:04:24 +0000 |
commit | ae716cec88d2e69f9bb6428fa24acbe33504c8ba (patch) | |
tree | d99e951d4ad479f9d6c8f49be85da67019645968 /webkit/renderer | |
parent | bbe2f5108bd428abd67f63dc855333a576a41d8d (diff) | |
download | chromium_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.cc | 25 | ||||
-rw-r--r-- | webkit/renderer/compositor_bindings/web_layer_impl.h | 10 |
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_; |