| Index: cc/trees/layer_tree_host.cc
|
| diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
|
| index d93e3d5e032e80c8cf353b672338904f832a16f2..e3b5cfaee6547122b7338603c4244b3e5f8f6d5e 100644
|
| --- a/cc/trees/layer_tree_host.cc
|
| +++ b/cc/trees/layer_tree_host.cc
|
| @@ -183,9 +183,6 @@ LayerTreeHost::~LayerTreeHost() {
|
| }
|
|
|
| s_num_layer_tree_instances--;
|
| - RateLimiterMap::iterator it = rate_limiters_.begin();
|
| - if (it != rate_limiters_.end())
|
| - it->second->Stop();
|
|
|
| if (root_layer_.get()) {
|
| // The layer tree must be destroyed before the layer tree host. We've
|
| @@ -1111,28 +1108,20 @@ void LayerTreeHost::ApplyScrollAndScale(const ScrollAndScaleSet& info) {
|
| }
|
| }
|
|
|
| -void LayerTreeHost::StartRateLimiter(WebKit::WebGraphicsContext3D* context3d) {
|
| +void LayerTreeHost::StartRateLimiter() {
|
| if (animating_)
|
| return;
|
|
|
| - DCHECK(context3d);
|
| - RateLimiterMap::iterator it = rate_limiters_.find(context3d);
|
| - if (it != rate_limiters_.end()) {
|
| - it->second->Start();
|
| - } else {
|
| - scoped_refptr<RateLimiter> rate_limiter =
|
| - RateLimiter::Create(context3d, this, proxy_->MainThreadTaskRunner());
|
| - rate_limiters_[context3d] = rate_limiter;
|
| - rate_limiter->Start();
|
| + if (!rate_limit_timer_.IsRunning()) {
|
| + rate_limit_timer_.Start(FROM_HERE,
|
| + base::TimeDelta(),
|
| + this,
|
| + &LayerTreeHost::RateLimit);
|
| }
|
| }
|
|
|
| -void LayerTreeHost::StopRateLimiter(WebKit::WebGraphicsContext3D* context3d) {
|
| - RateLimiterMap::iterator it = rate_limiters_.find(context3d);
|
| - if (it != rate_limiters_.end()) {
|
| - it->second->Stop();
|
| - rate_limiters_.erase(it);
|
| - }
|
| +void LayerTreeHost::StopRateLimiter() {
|
| + rate_limit_timer_.Stop();
|
| }
|
|
|
| void LayerTreeHost::RateLimit() {
|
| @@ -1140,6 +1129,7 @@ void LayerTreeHost::RateLimit() {
|
| // commands will wait for the compositing context, and therefore for the
|
| // SwapBuffers.
|
| proxy_->ForceSerializeOnSwapBuffers();
|
| + client_->RateLimitSharedMainThreadContext();
|
| }
|
|
|
| bool LayerTreeHost::AlwaysUsePartialTextureUpdates() {
|
|
|