summaryrefslogtreecommitdiffstats
path: root/android_webview/browser/browser_view_renderer.cc
diff options
context:
space:
mode:
authorboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-27 23:07:56 +0000
committerboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-27 23:07:56 +0000
commit7d5076ccec7ea4dd83b5aeed0469d7ba0dc013a4 (patch)
tree57785e2315c36146a7c16251d7f5f2afe6b313b5 /android_webview/browser/browser_view_renderer.cc
parenta2d2f42ca69bd4cd09a2ad873befaff0f9da8e55 (diff)
downloadchromium_src-7d5076ccec7ea4dd83b5aeed0469d7ba0dc013a4.zip
chromium_src-7d5076ccec7ea4dd83b5aeed0469d7ba0dc013a4.tar.gz
chromium_src-7d5076ccec7ea4dd83b5aeed0469d7ba0dc013a4.tar.bz2
Block SetContinuousInvalidate during BeginImplFrame
This is moving some of BrowserViewRenderer::block_invalidate_ logic into content SynchronousCompositor. In short, during DemandDraw, SynchronousCompositor will only call SetContinuousInvalidate once at the very end of the draw, to prevent the unnecessary state flip leads to an unwanted invalidate. This logic originally lives in BrowserViewRenderer. Moving it to SynchronousCompositor will allow HardwareRenderer to be refactored out of BrowserViewRenderer BUG=344087 Review URL: https://codereview.chromium.org/182493002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253965 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/browser/browser_view_renderer.cc')
-rw-r--r--android_webview/browser/browser_view_renderer.cc10
1 files changed, 2 insertions, 8 deletions
diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc
index 4f5669e..1750b44 100644
--- a/android_webview/browser/browser_view_renderer.cc
+++ b/android_webview/browser/browser_view_renderer.cc
@@ -109,10 +109,7 @@ void BrowserViewRenderer::DrawGL(AwDrawGLInfo* draw_info) {
hardware_renderer_.reset(new HardwareRenderer(shared_renderer_state_));
}
- {
- base::AutoReset<bool> auto_reset(&block_invalidates_, true);
- hardware_renderer_->DrawGL(draw_info);
- }
+ hardware_renderer_->DrawGL(draw_info);
const DrawGLResult result = shared_renderer_state_->GetDrawGLResult();
if (result.frame_id == draw_gl_input_.frame_id) {
@@ -173,7 +170,6 @@ skia::RefPtr<SkPicture> BrowserViewRenderer::CapturePicture(int width,
void BrowserViewRenderer::EnableOnNewPicture(bool enabled) {
on_new_picture_enable_ = enabled;
- EnsureContinuousInvalidation(false);
}
void BrowserViewRenderer::ClearView() {
@@ -338,7 +334,6 @@ void BrowserViewRenderer::DidUpdateContent() {
"BrowserViewRenderer::DidUpdateContent",
TRACE_EVENT_SCOPE_THREAD);
clear_view_ = false;
- EnsureContinuousInvalidation(false);
if (on_new_picture_enable_)
client_->OnNewPicture();
}
@@ -490,9 +485,8 @@ void BrowserViewRenderer::ForceFakeCompositeSW() {
bool BrowserViewRenderer::CompositeSW(SkCanvas* canvas) {
DCHECK(has_compositor_);
- fallback_tick_.Cancel();
- block_invalidates_ = true;
bool result = shared_renderer_state_->CompositorDemandDrawSw(canvas);
+ fallback_tick_.Cancel();
block_invalidates_ = false;
EnsureContinuousInvalidation(false);
return result;