OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/renderer/render_widget.h" | 5 #include "content/renderer/render_widget.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/debug/trace_event.h" | 9 #include "base/debug/trace_event.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 can_compose_inline_(true), | 164 can_compose_inline_(true), |
165 popup_type_(popup_type), | 165 popup_type_(popup_type), |
166 pending_window_rect_count_(0), | 166 pending_window_rect_count_(0), |
167 suppress_next_char_events_(false), | 167 suppress_next_char_events_(false), |
168 is_accelerated_compositing_active_(false), | 168 is_accelerated_compositing_active_(false), |
169 animation_update_pending_(false), | 169 animation_update_pending_(false), |
170 invalidation_task_posted_(false), | 170 invalidation_task_posted_(false), |
171 screen_info_(screen_info), | 171 screen_info_(screen_info), |
172 device_scale_factor_(screen_info_.deviceScaleFactor), | 172 device_scale_factor_(screen_info_.deviceScaleFactor), |
173 throttle_input_events_(true), | 173 throttle_input_events_(true), |
174 next_smooth_scroll_gesture_id_(0), | |
175 is_threaded_compositing_enabled_(false), | 174 is_threaded_compositing_enabled_(false), |
176 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { | 175 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { |
177 if (!swapped_out) | 176 if (!swapped_out) |
178 RenderProcess::current()->AddRefProcess(); | 177 RenderProcess::current()->AddRefProcess(); |
179 DCHECK(RenderThread::Get()); | 178 DCHECK(RenderThread::Get()); |
180 has_disable_gpu_vsync_switch_ = CommandLine::ForCurrentProcess()->HasSwitch( | 179 has_disable_gpu_vsync_switch_ = CommandLine::ForCurrentProcess()->HasSwitch( |
181 switches::kDisableGpuVsync); | 180 switches::kDisableGpuVsync); |
182 is_threaded_compositing_enabled_ = | 181 is_threaded_compositing_enabled_ = |
183 CommandLine::ForCurrentProcess()->HasSwitch( | 182 CommandLine::ForCurrentProcess()->HasSwitch( |
184 switches::kEnableThreadedCompositing); | 183 switches::kEnableThreadedCompositing); |
(...skipping 1698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1883 if (is_accelerated_compositing_active_) { | 1882 if (is_accelerated_compositing_active_) { |
1884 if (compositor_) | 1883 if (compositor_) |
1885 compositor_->setNeedsRedraw(); | 1884 compositor_->setNeedsRedraw(); |
1886 scheduleComposite(); | 1885 scheduleComposite(); |
1887 } else { | 1886 } else { |
1888 gfx::Rect repaint_rect(size_to_paint.width(), size_to_paint.height()); | 1887 gfx::Rect repaint_rect(size_to_paint.width(), size_to_paint.height()); |
1889 didInvalidateRect(repaint_rect); | 1888 didInvalidateRect(repaint_rect); |
1890 } | 1889 } |
1891 } | 1890 } |
1892 | 1891 |
1893 void RenderWidget::OnSmoothScrollCompleted(int gesture_id) { | 1892 void RenderWidget::OnSmoothScrollCompleted() { |
1894 PendingSmoothScrollGestureMap::iterator it = | 1893 pending_smooth_scroll_gesture_.Run(); |
1895 pending_smooth_scroll_gestures_.find(gesture_id); | |
1896 DCHECK(it != pending_smooth_scroll_gestures_.end()); | |
1897 it->second.Run(); | |
1898 pending_smooth_scroll_gestures_.erase(it); | |
1899 } | 1894 } |
1900 | 1895 |
1901 void RenderWidget::OnSetTextDirection(WebTextDirection direction) { | 1896 void RenderWidget::OnSetTextDirection(WebTextDirection direction) { |
1902 if (!webwidget_) | 1897 if (!webwidget_) |
1903 return; | 1898 return; |
1904 webwidget_->setTextDirection(direction); | 1899 webwidget_->setTextDirection(direction); |
1905 } | 1900 } |
1906 | 1901 |
1907 void RenderWidget::OnScreenInfoChanged( | 1902 void RenderWidget::OnScreenInfoChanged( |
1908 const WebKit::WebScreenInfo& screen_info) { | 1903 const WebKit::WebScreenInfo& screen_info) { |
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2258 } | 2253 } |
2259 | 2254 |
2260 bool RenderWidget::GetGpuRenderingStats(GpuRenderingStats* stats) const { | 2255 bool RenderWidget::GetGpuRenderingStats(GpuRenderingStats* stats) const { |
2261 GpuChannelHost* gpu_channel = RenderThreadImpl::current()->GetGpuChannel(); | 2256 GpuChannelHost* gpu_channel = RenderThreadImpl::current()->GetGpuChannel(); |
2262 if (!gpu_channel) | 2257 if (!gpu_channel) |
2263 return false; | 2258 return false; |
2264 | 2259 |
2265 return gpu_channel->CollectRenderingStatsForSurface(surface_id(), stats); | 2260 return gpu_channel->CollectRenderingStatsForSurface(surface_id(), stats); |
2266 } | 2261 } |
2267 | 2262 |
2268 void RenderWidget::BeginSmoothScroll( | 2263 bool RenderWidget::BeginSmoothScroll( |
2269 bool down, | 2264 bool down, |
2270 const SmoothScrollCompletionCallback& callback, | 2265 const SmoothScrollCompletionCallback& callback, |
2271 int pixels_to_scroll, | 2266 int pixels_to_scroll, |
2272 int mouse_event_x, | 2267 int mouse_event_x, |
2273 int mouse_event_y) { | 2268 int mouse_event_y) { |
2274 DCHECK(!callback.is_null()); | 2269 DCHECK(!callback.is_null()); |
2275 int id = next_smooth_scroll_gesture_id_++; | |
2276 | 2270 |
2277 ViewHostMsg_BeginSmoothScroll_Params params; | 2271 ViewHostMsg_BeginSmoothScroll_Params params; |
2278 params.scroll_down = down; | 2272 params.scroll_down = down; |
2279 params.pixels_to_scroll = pixels_to_scroll; | 2273 params.pixels_to_scroll = pixels_to_scroll; |
2280 params.mouse_event_x = mouse_event_x; | 2274 params.mouse_event_x = mouse_event_x; |
2281 params.mouse_event_y = mouse_event_y; | 2275 params.mouse_event_y = mouse_event_y; |
2282 | 2276 |
2283 Send(new ViewHostMsg_BeginSmoothScroll(routing_id_, id, params)); | 2277 bool ret = false; |
2284 pending_smooth_scroll_gestures_.insert(std::make_pair(id, callback)); | 2278 Send(new ViewHostMsg_BeginSmoothScroll(routing_id_, params, &ret)); |
| 2279 pending_smooth_scroll_gesture_ = callback; |
| 2280 return ret; |
2285 } | 2281 } |
2286 | 2282 |
2287 bool RenderWidget::WillHandleMouseEvent(const WebKit::WebMouseEvent& event) { | 2283 bool RenderWidget::WillHandleMouseEvent(const WebKit::WebMouseEvent& event) { |
2288 return false; | 2284 return false; |
2289 } | 2285 } |
2290 | 2286 |
2291 bool RenderWidget::WillHandleGestureEvent( | 2287 bool RenderWidget::WillHandleGestureEvent( |
2292 const WebKit::WebGestureEvent& event) { | 2288 const WebKit::WebGestureEvent& event) { |
2293 return false; | 2289 return false; |
2294 } | 2290 } |
(...skipping 15 matching lines...) Expand all Loading... |
2310 | 2306 |
2311 if (!context->Initialize( | 2307 if (!context->Initialize( |
2312 attributes, | 2308 attributes, |
2313 false /* bind generates resources */, | 2309 false /* bind generates resources */, |
2314 CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE)
) | 2310 CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE)
) |
2315 return NULL; | 2311 return NULL; |
2316 return context.release(); | 2312 return context.release(); |
2317 } | 2313 } |
2318 | 2314 |
2319 } // namespace content | 2315 } // namespace content |
OLD | NEW |