summaryrefslogtreecommitdiffstats
path: root/android_webview/browser
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
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')
-rw-r--r--android_webview/browser/browser_view_renderer.cc10
-rw-r--r--android_webview/browser/browser_view_renderer.h4
2 files changed, 3 insertions, 11 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;
diff --git a/android_webview/browser/browser_view_renderer.h b/android_webview/browser/browser_view_renderer.h
index e5b6e16..5f43089 100644
--- a/android_webview/browser/browser_view_renderer.h
+++ b/android_webview/browser/browser_view_renderer.h
@@ -170,9 +170,7 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient {
// states.
bool compositor_needs_continuous_invalidate_;
- // Used to block additional invalidates while one is already pending or before
- // compositor draw which may switch continuous_invalidate on and off in the
- // process.
+ // Used to block additional invalidates while one is already pending.
bool block_invalidates_;
// Holds a callback to FallbackTickFired while it is pending.