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

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

Issue 17136003: [Android WebView] Fallback tick (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | android_webview/browser/in_process_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 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 #ifndef ANDROID_WEBVIEW_BROWSER_IN_PROCESS_IN_PROCESS_VIEW_RENDERER_H_ 5 #ifndef ANDROID_WEBVIEW_BROWSER_IN_PROCESS_IN_PROCESS_VIEW_RENDERER_H_
6 #define ANDROID_WEBVIEW_BROWSER_IN_PROCESS_IN_PROCESS_VIEW_RENDERER_H_ 6 #define ANDROID_WEBVIEW_BROWSER_IN_PROCESS_IN_PROCESS_VIEW_RENDERER_H_
7 7
8 #include "android_webview/browser/browser_view_renderer.h" 8 #include "android_webview/browser/browser_view_renderer.h"
9 9
10 #include "base/cancelable_callback.h"
10 #include "base/memory/weak_ptr.h" 11 #include "base/memory/weak_ptr.h"
11 #include "content/public/browser/android/synchronous_compositor_client.h" 12 #include "content/public/browser/android/synchronous_compositor_client.h"
12 #include "ui/gfx/vector2d_f.h" 13 #include "ui/gfx/vector2d_f.h"
13 14
14 namespace content { 15 namespace content {
15 class SynchronousCompositor; 16 class SynchronousCompositor;
16 class WebContents; 17 class WebContents;
17 } 18 }
18 19
19 typedef void* EGLContext; 20 typedef void* EGLContext;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 virtual void SetTotalRootLayerScrollOffset( 62 virtual void SetTotalRootLayerScrollOffset(
62 gfx::Vector2dF new_value_css) OVERRIDE; 63 gfx::Vector2dF new_value_css) OVERRIDE;
63 virtual gfx::Vector2dF GetTotalRootLayerScrollOffset() OVERRIDE; 64 virtual gfx::Vector2dF GetTotalRootLayerScrollOffset() OVERRIDE;
64 65
65 void WebContentsGone(); 66 void WebContentsGone();
66 67
67 private: 68 private:
68 void EnsureContinuousInvalidation(AwDrawGLInfo* draw_info); 69 void EnsureContinuousInvalidation(AwDrawGLInfo* draw_info);
69 bool DrawSWInternal(jobject java_canvas, 70 bool DrawSWInternal(jobject java_canvas,
70 const gfx::Rect& clip_bounds); 71 const gfx::Rect& clip_bounds);
71 bool RenderSW(SkCanvas* canvas);
72 bool CompositeSW(SkCanvas* canvas); 72 bool CompositeSW(SkCanvas* canvas);
73 73
74 // If we call up view invalidate and OnDraw is not called before a deadline,
75 // then we keep ticking the SynchronousCompositor so it can make progress.
76 void FallbackTickFired();
77
74 BrowserViewRenderer::Client* client_; 78 BrowserViewRenderer::Client* client_;
75 BrowserViewRenderer::JavaHelper* java_helper_; 79 BrowserViewRenderer::JavaHelper* java_helper_;
76 content::WebContents* web_contents_; 80 content::WebContents* web_contents_;
77 content::SynchronousCompositor* compositor_; 81 content::SynchronousCompositor* compositor_;
78 82
79 bool visible_; 83 bool visible_;
80 float dip_scale_; 84 float dip_scale_;
81 85
82 // When true, we should continuously invalidate and keep drawing, for example 86 // When true, we should continuously invalidate and keep drawing, for example
83 // to drive animation. 87 // to drive animation.
84 bool continuous_invalidate_; 88 bool continuous_invalidate_;
85 // Used to block additional invalidates while one is already pending or before 89 // Used to block additional invalidates while one is already pending or before
86 // compositor draw which may switch continuous_invalidate on and off in the 90 // compositor draw which may switch continuous_invalidate on and off in the
87 // process. 91 // process.
88 bool block_invalidates_; 92 bool block_invalidates_;
93 // Holds a callback to FallbackTickFired while it is pending.
94 base::CancelableClosure fallback_tick_;
89 95
90 int width_; 96 int width_;
91 int height_; 97 int height_;
92 98
93 bool attached_to_window_; 99 bool attached_to_window_;
94 bool hardware_initialized_; 100 bool hardware_initialized_;
95 bool hardware_failed_; 101 bool hardware_failed_;
96 102
97 // Used only for detecting Android View System context changes. 103 // Used only for detecting Android View System context changes.
98 // Not to be used between draw calls. 104 // Not to be used between draw calls.
99 EGLContext last_egl_context_; 105 EGLContext last_egl_context_;
100 106
101 // Last View scroll when View.onDraw() was called. 107 // Last View scroll when View.onDraw() was called.
102 gfx::Vector2d scroll_at_start_of_frame_; 108 gfx::Vector2d scroll_at_start_of_frame_;
103 109
104 // Current scroll offset in CSS pixels. 110 // Current scroll offset in CSS pixels.
105 gfx::Vector2dF scroll_offset_css_; 111 gfx::Vector2dF scroll_offset_css_;
106 112
107 DISALLOW_COPY_AND_ASSIGN(InProcessViewRenderer); 113 DISALLOW_COPY_AND_ASSIGN(InProcessViewRenderer);
108 }; 114 };
109 115
110 } // namespace android_webview 116 } // namespace android_webview
111 117
112 #endif // ANDROID_WEBVIEW_BROWSER_IN_PROCESS_IN_PROCESS_VIEW_RENDERER_H_ 118 #endif // ANDROID_WEBVIEW_BROWSER_IN_PROCESS_IN_PROCESS_VIEW_RENDERER_H_
OLDNEW
« no previous file with comments | « no previous file | android_webview/browser/in_process_view_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698