Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Side by Side Diff: android_webview/browser/in_process_view_renderer.cc

Issue 58483002: [Android WebView] Only throttle fallback tick (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/in_process_view_renderer.h" 5 #include "android_webview/browser/in_process_view_renderer.h"
6 6
7 #include <android/bitmap.h> 7 #include <android/bitmap.h>
8 8
9 #include "android_webview/browser/aw_gl_surface.h" 9 #include "android_webview/browser/aw_gl_surface.h"
10 #include "android_webview/browser/scoped_app_gl_state_restore.h" 10 #include "android_webview/browser/scoped_app_gl_state_restore.h"
(...skipping 868 matching lines...) Expand 10 before | Expand all | Expand 10 after
879 scaled_overscroll_delta - rounded_overscroll_delta; 879 scaled_overscroll_delta - rounded_overscroll_delta;
880 client_->DidOverscroll(rounded_overscroll_delta); 880 client_->DidOverscroll(rounded_overscroll_delta);
881 } 881 }
882 882
883 void InProcessViewRenderer::EnsureContinuousInvalidation( 883 void InProcessViewRenderer::EnsureContinuousInvalidation(
884 AwDrawGLInfo* draw_info, 884 AwDrawGLInfo* draw_info,
885 bool invalidate_ignore_compositor) { 885 bool invalidate_ignore_compositor) {
886 // This method should be called again when any of these conditions change. 886 // This method should be called again when any of these conditions change.
887 bool need_invalidate = 887 bool need_invalidate =
888 compositor_needs_continuous_invalidate_ || invalidate_ignore_compositor; 888 compositor_needs_continuous_invalidate_ || invalidate_ignore_compositor;
889 bool throttle = (is_paused_ && !on_new_picture_enable_) || 889 if (!need_invalidate || block_invalidates_)
890 (attached_to_window_ && !window_visible_);
891 if (!need_invalidate || block_invalidates_ || throttle)
892 return; 890 return;
893 891
894 if (draw_info) { 892 if (draw_info) {
895 draw_info->dirty_left = cached_global_visible_rect_.x(); 893 draw_info->dirty_left = cached_global_visible_rect_.x();
896 draw_info->dirty_top = cached_global_visible_rect_.y(); 894 draw_info->dirty_top = cached_global_visible_rect_.y();
897 draw_info->dirty_right = cached_global_visible_rect_.right(); 895 draw_info->dirty_right = cached_global_visible_rect_.right();
898 draw_info->dirty_bottom = cached_global_visible_rect_.bottom(); 896 draw_info->dirty_bottom = cached_global_visible_rect_.bottom();
899 draw_info->status_mask |= AwDrawGLInfo::kStatusMaskDraw; 897 draw_info->status_mask |= AwDrawGLInfo::kStatusMaskDraw;
900 } else { 898 } else {
901 client_->PostInvalidate(); 899 client_->PostInvalidate();
902 } 900 }
903 901
902 bool throttle_fallback_tick = (is_paused_ && !on_new_picture_enable_) ||
903 (attached_to_window_ && !window_visible_);
904 if (throttle_fallback_tick)
905 return;
906
904 block_invalidates_ = compositor_needs_continuous_invalidate_; 907 block_invalidates_ = compositor_needs_continuous_invalidate_;
905 908
906 // Unretained here is safe because the callback is cancelled when 909 // Unretained here is safe because the callback is cancelled when
907 // |fallback_tick_| is destroyed. 910 // |fallback_tick_| is destroyed.
908 fallback_tick_.Reset(base::Bind(&InProcessViewRenderer::FallbackTickFired, 911 fallback_tick_.Reset(base::Bind(&InProcessViewRenderer::FallbackTickFired,
909 base::Unretained(this))); 912 base::Unretained(this)));
910 913
911 // No need to reschedule fallback tick if compositor does not need to be 914 // No need to reschedule fallback tick if compositor does not need to be
912 // ticked. This can happen if this is reached because 915 // ticked. This can happen if this is reached because
913 // invalidate_ignore_compositor is true. 916 // invalidate_ignore_compositor is true.
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
990 base::StringAppendF(&str, 993 base::StringAppendF(&str,
991 "surface width height: [%d %d] ", 994 "surface width height: [%d %d] ",
992 draw_info->width, 995 draw_info->width,
993 draw_info->height); 996 draw_info->height);
994 base::StringAppendF(&str, "is_layer: %d ", draw_info->is_layer); 997 base::StringAppendF(&str, "is_layer: %d ", draw_info->is_layer);
995 } 998 }
996 return str; 999 return str;
997 } 1000 }
998 1001
999 } // namespace android_webview 1002 } // namespace android_webview
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698