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

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

Issue 2174203002: OnDrawHardware() implementation with async messages (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Implemented code review Created 4 years, 3 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
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 <stddef.h> 8 #include <stddef.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 const gfx::Vector2dF& total_scroll_offset_dip, 122 const gfx::Vector2dF& total_scroll_offset_dip,
123 const gfx::Vector2dF& max_scroll_offset_dip, 123 const gfx::Vector2dF& max_scroll_offset_dip,
124 const gfx::SizeF& scrollable_size_dip, 124 const gfx::SizeF& scrollable_size_dip,
125 float page_scale_factor, 125 float page_scale_factor,
126 float min_page_scale_factor, 126 float min_page_scale_factor,
127 float max_page_scale_factor) override; 127 float max_page_scale_factor) override;
128 void DidOverscroll(content::SynchronousCompositor* compositor, 128 void DidOverscroll(content::SynchronousCompositor* compositor,
129 const gfx::Vector2dF& accumulated_overscroll, 129 const gfx::Vector2dF& accumulated_overscroll,
130 const gfx::Vector2dF& latest_overscroll_delta, 130 const gfx::Vector2dF& latest_overscroll_delta,
131 const gfx::Vector2dF& current_fling_velocity) override; 131 const gfx::Vector2dF& current_fling_velocity) override;
132 void OnDrawHardwareProcessFrame(
133 content::SynchronousCompositor::Frame frame) override;
132 134
133 // CompositorFrameProducer overrides 135 // CompositorFrameProducer overrides
134 void OnParentDrawConstraintsUpdated( 136 void OnParentDrawConstraintsUpdated(
135 CompositorFrameConsumer* compositor_frame_consumer) override; 137 CompositorFrameConsumer* compositor_frame_consumer) override;
136 void RemoveCompositorFrameConsumer( 138 void RemoveCompositorFrameConsumer(
137 CompositorFrameConsumer* compositor_frame_consumer) override; 139 CompositorFrameConsumer* compositor_frame_consumer) override;
138 140
139 void SetActiveCompositorID(const CompositorID& compositor_id); 141 void SetActiveCompositorID(const CompositorID& compositor_id);
140 142
141 // Visible for testing. 143 // Visible for testing.
142 content::SynchronousCompositor* GetActiveCompositorForTesting() const { 144 content::SynchronousCompositor* GetActiveCompositorForTesting() const {
143 return compositor_; 145 return compositor_;
144 } 146 }
145 147
146 private: 148 private:
147 void SetTotalRootLayerScrollOffset(const gfx::Vector2dF& new_value_dip); 149 void SetTotalRootLayerScrollOffset(const gfx::Vector2dF& new_value_dip);
148 bool CanOnDraw(); 150 bool CanOnDraw();
149 bool CompositeSW(SkCanvas* canvas); 151 bool CompositeSW(SkCanvas* canvas);
150 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> 152 std::unique_ptr<base::trace_event::ConvertableToTraceFormat>
151 RootLayerStateAsValue(const gfx::Vector2dF& total_scroll_offset_dip, 153 RootLayerStateAsValue(const gfx::Vector2dF& total_scroll_offset_dip,
152 const gfx::SizeF& scrollable_size_dip); 154 const gfx::SizeF& scrollable_size_dip);
153 155
154 void ReturnUnusedResource(std::unique_ptr<ChildFrame> frame); 156 void ReturnUnusedResource(std::unique_ptr<ChildFrame> frame);
155 void ReturnResourceFromParent( 157 void ReturnResourceFromParent(
156 CompositorFrameConsumer* compositor_frame_consumer); 158 CompositorFrameConsumer* compositor_frame_consumer);
157 void ReleaseHardware(); 159 void ReleaseHardware();
160 gfx::Rect ComputeViewportRectForTilePriority();
158 161
159 gfx::Vector2d max_scroll_offset() const; 162 gfx::Vector2d max_scroll_offset() const;
160 163
161 void UpdateMemoryPolicy(); 164 void UpdateMemoryPolicy();
162 165
163 content::SynchronousCompositor* FindCompositor( 166 content::SynchronousCompositor* FindCompositor(
164 const CompositorID& compositor_id) const; 167 const CompositorID& compositor_id) const;
165 // For debug tracing or logging. Return the string representation of this 168 // For debug tracing or logging. Return the string representation of this
166 // view renderer's state. 169 // view renderer's state.
167 std::string ToString() const; 170 std::string ToString() const;
168 171
169 BrowserViewRendererClient* const client_; 172 BrowserViewRendererClient* const client_;
170 const scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_; 173 const scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
174 const bool async_on_draw_hardware_;
171 CompositorFrameConsumer* current_compositor_frame_consumer_; 175 CompositorFrameConsumer* current_compositor_frame_consumer_;
172 std::set<CompositorFrameConsumer*> compositor_frame_consumers_; 176 std::set<CompositorFrameConsumer*> compositor_frame_consumers_;
173 177
174 // The current compositor that's owned by the current RVH. 178 // The current compositor that's owned by the current RVH.
175 content::SynchronousCompositor* compositor_; 179 content::SynchronousCompositor* compositor_;
176 // The process id and routing id of the most recent RVH according to 180 // The process id and routing id of the most recent RVH according to
177 // RVHChanged. 181 // RVHChanged.
178 CompositorID compositor_id_; 182 CompositorID compositor_id_;
179 // A map from compositor's per-WebView unique ID to the compositor's raw 183 // A map from compositor's per-WebView unique ID to the compositor's raw
180 // pointer. A raw pointer here is fine because the entry will be erased when 184 // pointer. A raw pointer here is fine because the entry will be erased when
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 gfx::Vector2dF overscroll_rounding_error_; 224 gfx::Vector2dF overscroll_rounding_error_;
221 225
222 ParentCompositorDrawConstraints external_draw_constraints_; 226 ParentCompositorDrawConstraints external_draw_constraints_;
223 227
224 DISALLOW_COPY_AND_ASSIGN(BrowserViewRenderer); 228 DISALLOW_COPY_AND_ASSIGN(BrowserViewRenderer);
225 }; 229 };
226 230
227 } // namespace android_webview 231 } // namespace android_webview
228 232
229 #endif // ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_ 233 #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') | android_webview/browser/browser_view_renderer.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698