| 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 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 } | 322 } |
| 323 | 323 |
| 324 // If given a messsage without a routing ID, then assign our routing ID. | 324 // If given a messsage without a routing ID, then assign our routing ID. |
| 325 if (message->routing_id() == MSG_ROUTING_NONE) | 325 if (message->routing_id() == MSG_ROUTING_NONE) |
| 326 message->set_routing_id(routing_id_); | 326 message->set_routing_id(routing_id_); |
| 327 | 327 |
| 328 return RenderThread::Get()->Send(message); | 328 return RenderThread::Get()->Send(message); |
| 329 } | 329 } |
| 330 | 330 |
| 331 void RenderWidget::Resize(const gfx::Size& new_size, | 331 void RenderWidget::Resize(const gfx::Size& new_size, |
| 332 const gfx::Size& physical_backing_size, |
| 332 const gfx::Rect& resizer_rect, | 333 const gfx::Rect& resizer_rect, |
| 333 bool is_fullscreen, | 334 bool is_fullscreen, |
| 334 ResizeAck resize_ack) { | 335 ResizeAck resize_ack) { |
| 335 // A resize ack shouldn't be requested if we have not ACK'd the previous one. | 336 // A resize ack shouldn't be requested if we have not ACK'd the previous one. |
| 336 DCHECK(resize_ack != SEND_RESIZE_ACK || !next_paint_is_resize_ack()); | 337 DCHECK(resize_ack != SEND_RESIZE_ACK || !next_paint_is_resize_ack()); |
| 337 DCHECK(resize_ack == SEND_RESIZE_ACK || resize_ack == NO_RESIZE_ACK); | 338 DCHECK(resize_ack == SEND_RESIZE_ACK || resize_ack == NO_RESIZE_ACK); |
| 338 | 339 |
| 339 // Ignore this during shutdown. | 340 // Ignore this during shutdown. |
| 340 if (!webwidget_) | 341 if (!webwidget_) |
| 341 return; | 342 return; |
| 342 | 343 |
| 343 // Remember the rect where the resize corner will be drawn. | 344 if (compositor_) |
| 345 compositor_->setViewportSize(new_size, physical_backing_size); |
| 346 |
| 347 physical_backing_size_ = physical_backing_size_; |
| 344 resizer_rect_ = resizer_rect; | 348 resizer_rect_ = resizer_rect; |
| 345 | 349 |
| 346 // NOTE: We may have entered fullscreen mode without changing our size. | 350 // NOTE: We may have entered fullscreen mode without changing our size. |
| 347 bool fullscreen_change = is_fullscreen_ != is_fullscreen; | 351 bool fullscreen_change = is_fullscreen_ != is_fullscreen; |
| 348 if (fullscreen_change) | 352 if (fullscreen_change) |
| 349 WillToggleFullscreen(); | 353 WillToggleFullscreen(); |
| 350 is_fullscreen_ = is_fullscreen; | 354 is_fullscreen_ = is_fullscreen; |
| 351 | 355 |
| 352 if (size_ != new_size) { | 356 if (size_ != new_size) { |
| 353 // TODO(darin): We should not need to reset this here. | 357 // TODO(darin): We should not need to reset this here. |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 | 411 |
| 408 // Got a response from the browser after the renderer decided to create a new | 412 // Got a response from the browser after the renderer decided to create a new |
| 409 // view. | 413 // view. |
| 410 void RenderWidget::OnCreatingNewAck() { | 414 void RenderWidget::OnCreatingNewAck() { |
| 411 DCHECK(routing_id_ != MSG_ROUTING_NONE); | 415 DCHECK(routing_id_ != MSG_ROUTING_NONE); |
| 412 | 416 |
| 413 CompleteInit(); | 417 CompleteInit(); |
| 414 } | 418 } |
| 415 | 419 |
| 416 void RenderWidget::OnResize(const gfx::Size& new_size, | 420 void RenderWidget::OnResize(const gfx::Size& new_size, |
| 421 const gfx::Size& physical_backing_size, |
| 417 const gfx::Rect& resizer_rect, | 422 const gfx::Rect& resizer_rect, |
| 418 bool is_fullscreen) { | 423 bool is_fullscreen) { |
| 419 Resize(new_size, resizer_rect, is_fullscreen, SEND_RESIZE_ACK); | 424 Resize(new_size, physical_backing_size, resizer_rect, is_fullscreen, |
| 425 SEND_RESIZE_ACK); |
| 420 } | 426 } |
| 421 | 427 |
| 422 void RenderWidget::OnChangeResizeRect(const gfx::Rect& resizer_rect) { | 428 void RenderWidget::OnChangeResizeRect(const gfx::Rect& resizer_rect) { |
| 423 if (resizer_rect_ != resizer_rect) { | 429 if (resizer_rect_ != resizer_rect) { |
| 424 gfx::Rect view_rect(size_); | 430 gfx::Rect view_rect(size_); |
| 425 | 431 |
| 426 gfx::Rect old_damage_rect = gfx::IntersectRects(view_rect, resizer_rect_); | 432 gfx::Rect old_damage_rect = gfx::IntersectRects(view_rect, resizer_rect_); |
| 427 if (!old_damage_rect.IsEmpty()) | 433 if (!old_damage_rect.IsEmpty()) |
| 428 paint_aggregator_.InvalidateRect(old_damage_rect); | 434 paint_aggregator_.InvalidateRect(old_damage_rect); |
| 429 | 435 |
| (...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1340 | 1346 |
| 1341 void RenderWidget::initializeLayerTreeView( | 1347 void RenderWidget::initializeLayerTreeView( |
| 1342 WebKit::WebLayerTreeViewClient* client, | 1348 WebKit::WebLayerTreeViewClient* client, |
| 1343 const WebKit::WebLayer& root_layer, | 1349 const WebKit::WebLayer& root_layer, |
| 1344 const WebKit::WebLayerTreeView::Settings& settings) { | 1350 const WebKit::WebLayerTreeView::Settings& settings) { |
| 1345 compositor_ = RenderWidgetCompositor::Create(this, client, settings); | 1351 compositor_ = RenderWidgetCompositor::Create(this, client, settings); |
| 1346 if (!compositor_) | 1352 if (!compositor_) |
| 1347 return; | 1353 return; |
| 1348 | 1354 |
| 1349 compositor_->setRootLayer(root_layer); | 1355 compositor_->setRootLayer(root_layer); |
| 1356 compositor_->setViewportSize(size_, physical_backing_size_); |
| 1350 if (init_complete_) | 1357 if (init_complete_) |
| 1351 compositor_->setSurfaceReady(); | 1358 compositor_->setSurfaceReady(); |
| 1352 } | 1359 } |
| 1353 | 1360 |
| 1354 WebKit::WebLayerTreeView* RenderWidget::layerTreeView() { | 1361 WebKit::WebLayerTreeView* RenderWidget::layerTreeView() { |
| 1355 return compositor_.get(); | 1362 return compositor_.get(); |
| 1356 } | 1363 } |
| 1357 | 1364 |
| 1358 void RenderWidget::suppressCompositorScheduling(bool enable) { | 1365 void RenderWidget::suppressCompositorScheduling(bool enable) { |
| 1359 if (compositor_) | 1366 if (compositor_) |
| (...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2148 bool RenderWidget::WillHandleGestureEvent( | 2155 bool RenderWidget::WillHandleGestureEvent( |
| 2149 const WebKit::WebGestureEvent& event) { | 2156 const WebKit::WebGestureEvent& event) { |
| 2150 return false; | 2157 return false; |
| 2151 } | 2158 } |
| 2152 | 2159 |
| 2153 bool RenderWidget::HasTouchEventHandlersAt(const gfx::Point& point) const { | 2160 bool RenderWidget::HasTouchEventHandlersAt(const gfx::Point& point) const { |
| 2154 return true; | 2161 return true; |
| 2155 } | 2162 } |
| 2156 | 2163 |
| 2157 } // namespace content | 2164 } // namespace content |
| OLD | NEW |