OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "android_webview/browser/shared_renderer_state.h" | 5 #include "android_webview/browser/shared_renderer_state.h" |
6 | 6 |
7 #include "android_webview/browser/browser_view_renderer_client.h" | 7 #include "android_webview/browser/browser_view_renderer_client.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
179 const ParentCompositorDrawConstraints& parent_draw_constraints) { | 179 const ParentCompositorDrawConstraints& parent_draw_constraints) { |
180 if (UpdateDrawConstraints(parent_draw_constraints)) { | 180 if (UpdateDrawConstraints(parent_draw_constraints)) { |
181 // No need to hold the lock_ during the post task. | 181 // No need to hold the lock_ during the post task. |
182 ui_loop_->PostTask( | 182 ui_loop_->PostTask( |
183 FROM_HERE, | 183 FROM_HERE, |
184 base::Bind(&SharedRendererState::UpdateParentDrawConstraintsOnUIThread, | 184 base::Bind(&SharedRendererState::UpdateParentDrawConstraintsOnUIThread, |
185 ui_thread_weak_ptr_)); | 185 ui_thread_weak_ptr_)); |
186 } | 186 } |
187 } | 187 } |
188 | 188 |
189 void SharedRendererState::DidSkipCommitFrame() { | |
190 ui_loop_->PostTask( | |
191 FROM_HERE, | |
192 base::Bind(&SharedRendererState::DidSkipCommitFrameOnUIThread, | |
193 ui_thread_weak_ptr_)); | |
194 } | |
195 | |
196 void SharedRendererState::DidSkipCommitFrameOnUIThread() { | |
197 // TODO(boliu): Ugly hack. | |
198 client_on_ui_->PostInvalidate(); | |
boliu
2014/10/20 17:36:09
This is horrible. Any brilliant ideas how to make
| |
199 } | |
200 | |
189 const ParentCompositorDrawConstraints | 201 const ParentCompositorDrawConstraints |
190 SharedRendererState::ParentDrawConstraints() const { | 202 SharedRendererState::ParentDrawConstraints() const { |
191 base::AutoLock lock(lock_); | 203 base::AutoLock lock(lock_); |
192 return parent_draw_constraints_; | 204 return parent_draw_constraints_; |
193 } | 205 } |
194 | 206 |
195 void SharedRendererState::SetForceInvalidateOnNextDrawGL( | 207 void SharedRendererState::SetForceInvalidateOnNextDrawGL( |
196 bool needs_force_invalidate_on_next_draw_gl) { | 208 bool needs_force_invalidate_on_next_draw_gl) { |
197 base::AutoLock lock(lock_); | 209 base::AutoLock lock(lock_); |
198 needs_force_invalidate_on_next_draw_gl_ = | 210 needs_force_invalidate_on_next_draw_gl_ = |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
238 : shared_renderer_state_(shared_renderer_state) { | 250 : shared_renderer_state_(shared_renderer_state) { |
239 DCHECK(!shared_renderer_state_->IsInsideHardwareRelease()); | 251 DCHECK(!shared_renderer_state_->IsInsideHardwareRelease()); |
240 shared_renderer_state_->SetInsideHardwareRelease(true); | 252 shared_renderer_state_->SetInsideHardwareRelease(true); |
241 } | 253 } |
242 | 254 |
243 InsideHardwareReleaseReset::~InsideHardwareReleaseReset() { | 255 InsideHardwareReleaseReset::~InsideHardwareReleaseReset() { |
244 shared_renderer_state_->SetInsideHardwareRelease(false); | 256 shared_renderer_state_->SetInsideHardwareRelease(false); |
245 } | 257 } |
246 | 258 |
247 } // namespace android_webview | 259 } // namespace android_webview |
OLD | NEW |