| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "webkit/renderer/compositor_bindings/web_layer_impl.h" | 5 #include "webkit/renderer/compositor_bindings/web_layer_impl.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/debug/trace_event_impl.h" | 8 #include "base/debug/trace_event_impl.h" |
| 9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 398 layer_->set_did_scroll_callback(base::Closure()); | 398 layer_->set_did_scroll_callback(base::Closure()); |
| 399 } | 399 } |
| 400 } | 400 } |
| 401 | 401 |
| 402 bool WebLayerImpl::isOrphan() const { return !layer_->layer_tree_host(); } | 402 bool WebLayerImpl::isOrphan() const { return !layer_->layer_tree_host(); } |
| 403 | 403 |
| 404 void WebLayerImpl::setWebLayerClient(blink::WebLayerClient* client) { | 404 void WebLayerImpl::setWebLayerClient(blink::WebLayerClient* client) { |
| 405 web_layer_client_ = client; | 405 web_layer_client_ = client; |
| 406 } | 406 } |
| 407 | 407 |
| 408 // TODO(chrishtr): move DebugName into this class. | |
| 409 class TracedDebugInfo : public base::debug::ConvertableToTraceFormat { | 408 class TracedDebugInfo : public base::debug::ConvertableToTraceFormat { |
| 410 public: | 409 public: |
| 411 // This object takes ownership of the debug_info object. | 410 // This object takes ownership of the debug_info object. |
| 412 explicit TracedDebugInfo(blink::WebGraphicsLayerDebugInfo* debug_info) : | 411 explicit TracedDebugInfo(blink::WebGraphicsLayerDebugInfo* debug_info) : |
| 413 debug_info_(debug_info) {} | 412 debug_info_(debug_info) {} |
| 414 virtual void AppendAsTraceFormat(std::string* out) const OVERRIDE { | 413 virtual void AppendAsTraceFormat(std::string* out) const OVERRIDE { |
| 415 DCHECK(thread_checker_.CalledOnValidThread()); | 414 DCHECK(thread_checker_.CalledOnValidThread()); |
| 416 blink::WebString web_string; | 415 blink::WebString web_string; |
| 417 debug_info_->appendAsTraceFormat(&web_string); | 416 debug_info_->appendAsTraceFormat(&web_string); |
| 418 out->append(web_string.utf8()); | 417 out->append(web_string.utf8()); |
| 419 } | 418 } |
| 420 private: | 419 private: |
| 421 virtual ~TracedDebugInfo() {} | 420 virtual ~TracedDebugInfo() {} |
| 422 scoped_ptr<blink::WebGraphicsLayerDebugInfo> debug_info_; | 421 scoped_ptr<blink::WebGraphicsLayerDebugInfo> debug_info_; |
| 423 base::ThreadChecker thread_checker_; | 422 base::ThreadChecker thread_checker_; |
| 424 }; | 423 }; |
| 425 | 424 |
| 426 scoped_refptr<base::debug::ConvertableToTraceFormat> | 425 scoped_refptr<base::debug::ConvertableToTraceFormat> |
| 427 WebLayerImpl::TakeDebugInfo() { | 426 WebLayerImpl::TakeDebugInfo() { |
| 428 if (!web_layer_client_) | 427 if (!web_layer_client_) |
| 429 return NULL; | 428 return NULL; |
| 430 blink::WebGraphicsLayerDebugInfo* debug_info = | 429 blink::WebGraphicsLayerDebugInfo* debug_info = |
| 431 web_layer_client_->takeDebugInfo(); | 430 web_layer_client_->takeDebugInfoFor(this); |
| 432 | 431 |
| 433 if (debug_info) | 432 if (debug_info) |
| 434 return new TracedDebugInfo(debug_info); | 433 return new TracedDebugInfo(debug_info); |
| 435 else | 434 else |
| 436 return NULL; | 435 return NULL; |
| 437 } | 436 } |
| 438 | 437 |
| 439 std::string WebLayerImpl::DebugName() { | |
| 440 if (!web_layer_client_) | |
| 441 return std::string(); | |
| 442 | |
| 443 std::string name = web_layer_client_->debugName(this).utf8(); | |
| 444 DCHECK(IsStringASCII(name)); | |
| 445 return name; | |
| 446 } | |
| 447 | |
| 448 void WebLayerImpl::setScrollParent(blink::WebLayer* parent) { | 438 void WebLayerImpl::setScrollParent(blink::WebLayer* parent) { |
| 449 cc::Layer* scroll_parent = NULL; | 439 cc::Layer* scroll_parent = NULL; |
| 450 if (parent) | 440 if (parent) |
| 451 scroll_parent = static_cast<WebLayerImpl*>(parent)->layer(); | 441 scroll_parent = static_cast<WebLayerImpl*>(parent)->layer(); |
| 452 layer_->SetScrollParent(scroll_parent); | 442 layer_->SetScrollParent(scroll_parent); |
| 453 } | 443 } |
| 454 | 444 |
| 455 void WebLayerImpl::setClipParent(blink::WebLayer* parent) { | 445 void WebLayerImpl::setClipParent(blink::WebLayer* parent) { |
| 456 cc::Layer* clip_parent = NULL; | 446 cc::Layer* clip_parent = NULL; |
| 457 if (parent) | 447 if (parent) |
| 458 clip_parent = static_cast<WebLayerImpl*>(parent)->layer(); | 448 clip_parent = static_cast<WebLayerImpl*>(parent)->layer(); |
| 459 layer_->SetClipParent(clip_parent); | 449 layer_->SetClipParent(clip_parent); |
| 460 } | 450 } |
| 461 | 451 |
| 462 Layer* WebLayerImpl::layer() const { return layer_.get(); } | 452 Layer* WebLayerImpl::layer() const { return layer_.get(); } |
| 463 | 453 |
| 464 } // namespace webkit | 454 } // namespace webkit |
| OLD | NEW |