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

Side by Side Diff: android_webview/browser/browser_view_renderer.h

Issue 646303004: aw: Ensure invalidation when pipeline is stalled (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2171
Patch Set: Created 6 years, 2 months 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
« no previous file with comments | « no previous file | android_webview/browser/browser_view_renderer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 #ifndef ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_ 5 #ifndef ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_
6 #define ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_ 6 #define ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_
7 7
8 #include "android_webview/browser/global_tile_manager.h" 8 #include "android_webview/browser/global_tile_manager.h"
9 #include "android_webview/browser/global_tile_manager_client.h" 9 #include "android_webview/browser/global_tile_manager_client.h"
10 #include "android_webview/browser/parent_compositor_draw_constraints.h" 10 #include "android_webview/browser/parent_compositor_draw_constraints.h"
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 gfx::Vector2dF current_fling_velocity) OVERRIDE; 137 gfx::Vector2dF current_fling_velocity) OVERRIDE;
138 138
139 // GlobalTileManagerClient overrides. 139 // GlobalTileManagerClient overrides.
140 virtual content::SynchronousCompositorMemoryPolicy GetMemoryPolicy() 140 virtual content::SynchronousCompositorMemoryPolicy GetMemoryPolicy()
141 const OVERRIDE; 141 const OVERRIDE;
142 virtual void SetMemoryPolicy( 142 virtual void SetMemoryPolicy(
143 content::SynchronousCompositorMemoryPolicy new_policy, 143 content::SynchronousCompositorMemoryPolicy new_policy,
144 bool effective_immediately) OVERRIDE; 144 bool effective_immediately) OVERRIDE;
145 145
146 void UpdateParentDrawConstraints(); 146 void UpdateParentDrawConstraints();
147 void DidSkipCommitFrame();
147 148
148 private: 149 private:
149 void SetTotalRootLayerScrollOffset(gfx::Vector2dF new_value_dip); 150 void SetTotalRootLayerScrollOffset(gfx::Vector2dF new_value_dip);
150 // Checks the continuous invalidate and block invalidate state, and schedule 151 // Checks the continuous invalidate and block invalidate state, and schedule
151 // invalidates appropriately. If |force_invalidate| is true, then send a view 152 // invalidates appropriately. If |force_invalidate| is true, then send a view
152 // invalidate regardless of compositor expectation. If |skip_reschedule_tick| 153 // invalidate regardless of compositor expectation. If |skip_reschedule_tick|
153 // is true and if there is already a pending fallback tick, don't reschedule 154 // is true and if there is already a pending fallback tick, don't reschedule
154 // them. 155 // them.
155 void EnsureContinuousInvalidation(bool force_invalidate, 156 void EnsureContinuousInvalidation(bool force_invalidate,
156 bool skip_reschedule_tick); 157 bool skip_reschedule_tick);
157 bool OnDrawSoftware(jobject java_canvas); 158 bool OnDrawSoftware(jobject java_canvas);
158 bool CompositeSW(SkCanvas* canvas); 159 bool CompositeSW(SkCanvas* canvas);
159 void DidComposite(); 160 void DidComposite();
160 void SkippedCompositeInDraw(); 161 void DidSkipCompositeInDraw();
161 scoped_ptr<base::Value> RootLayerStateAsValue( 162 scoped_ptr<base::Value> RootLayerStateAsValue(
162 const gfx::Vector2dF& total_scroll_offset_dip, 163 const gfx::Vector2dF& total_scroll_offset_dip,
163 const gfx::SizeF& scrollable_size_dip); 164 const gfx::SizeF& scrollable_size_dip);
164 165
165 bool OnDrawHardware(jobject java_canvas); 166 bool OnDrawHardware(jobject java_canvas);
166 scoped_ptr<cc::CompositorFrame> CompositeHw(); 167 scoped_ptr<cc::CompositorFrame> CompositeHw();
167 void ReturnUnusedResource(scoped_ptr<cc::CompositorFrame> frame); 168 void ReturnUnusedResource(scoped_ptr<cc::CompositorFrame> frame);
168 void ReturnResourceFromParent(); 169 void ReturnResourceFromParent();
169 170
170 // If we call up view invalidate and OnDraw is not called before a deadline, 171 // If we call up view invalidate and OnDraw is not called before a deadline,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 // The draw constraints from the parent compositor. These are only used for 213 // The draw constraints from the parent compositor. These are only used for
213 // tiling priority. 214 // tiling priority.
214 ParentCompositorDrawConstraints parent_draw_constraints_; 215 ParentCompositorDrawConstraints parent_draw_constraints_;
215 216
216 // When true, we should continuously invalidate and keep drawing, for example 217 // When true, we should continuously invalidate and keep drawing, for example
217 // to drive animation. This value is set by the compositor and should always 218 // to drive animation. This value is set by the compositor and should always
218 // reflect the expectation of the compositor and not be reused for other 219 // reflect the expectation of the compositor and not be reused for other
219 // states. 220 // states.
220 bool compositor_needs_continuous_invalidate_; 221 bool compositor_needs_continuous_invalidate_;
221 222
223 bool invalidate_after_composite_;
224
222 // Used to block additional invalidates while one is already pending. 225 // Used to block additional invalidates while one is already pending.
223 bool block_invalidates_; 226 bool block_invalidates_;
224 227
225 base::CancelableClosure post_fallback_tick_; 228 base::CancelableClosure post_fallback_tick_;
226 base::CancelableClosure fallback_tick_fired_; 229 base::CancelableClosure fallback_tick_fired_;
227 bool fallback_tick_pending_; 230 bool fallback_tick_pending_;
228 231
229 int width_; 232 int width_;
230 int height_; 233 int height_;
231 234
(...skipping 10 matching lines...) Expand all
242 245
243 GlobalTileManager::Key tile_manager_key_; 246 GlobalTileManager::Key tile_manager_key_;
244 content::SynchronousCompositorMemoryPolicy memory_policy_; 247 content::SynchronousCompositorMemoryPolicy memory_policy_;
245 248
246 DISALLOW_COPY_AND_ASSIGN(BrowserViewRenderer); 249 DISALLOW_COPY_AND_ASSIGN(BrowserViewRenderer);
247 }; 250 };
248 251
249 } // namespace android_webview 252 } // namespace android_webview
250 253
251 #endif // ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_ 254 #endif // ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_
OLDNEW
« no previous file with comments | « no previous file | android_webview/browser/browser_view_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698