| 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 <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 549 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 560 | 560 |
| 561 void RenderWidget::OnResize(const ResizeParams& params) { | 561 void RenderWidget::OnResize(const ResizeParams& params) { |
| 562 if (resizing_mode_selector_->ShouldAbortOnResize(this, params)) | 562 if (resizing_mode_selector_->ShouldAbortOnResize(this, params)) |
| 563 return; | 563 return; |
| 564 | 564 |
| 565 if (screen_metrics_emulator_) { | 565 if (screen_metrics_emulator_) { |
| 566 screen_metrics_emulator_->OnResize(params); | 566 screen_metrics_emulator_->OnResize(params); |
| 567 return; | 567 return; |
| 568 } | 568 } |
| 569 | 569 |
| 570 bool orientation_changed = |
| 571 screen_info_.orientationAngle != params.screen_info.orientationAngle; |
| 572 |
| 570 Resize(params); | 573 Resize(params); |
| 574 |
| 575 if (orientation_changed) |
| 576 OnOrientationChange(); |
| 571 } | 577 } |
| 572 | 578 |
| 573 void RenderWidget::OnEnableDeviceEmulation( | 579 void RenderWidget::OnEnableDeviceEmulation( |
| 574 const blink::WebDeviceEmulationParams& params) { | 580 const blink::WebDeviceEmulationParams& params) { |
| 575 if (!screen_metrics_emulator_) { | 581 if (!screen_metrics_emulator_) { |
| 576 ResizeParams resize_params; | 582 ResizeParams resize_params; |
| 577 resize_params.screen_info = screen_info_; | 583 resize_params.screen_info = screen_info_; |
| 578 resize_params.new_size = size_; | 584 resize_params.new_size = size_; |
| 579 resize_params.physical_backing_size = physical_backing_size_; | 585 resize_params.physical_backing_size = physical_backing_size_; |
| 580 resize_params.visible_viewport_size = visible_viewport_size_; | 586 resize_params.visible_viewport_size = visible_viewport_size_; |
| (...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1047 /////////////////////////////////////////////////////////////////////////////// | 1053 /////////////////////////////////////////////////////////////////////////////// |
| 1048 // RenderWidgetScreenMetricsDelegate | 1054 // RenderWidgetScreenMetricsDelegate |
| 1049 | 1055 |
| 1050 void RenderWidget::Redraw() { | 1056 void RenderWidget::Redraw() { |
| 1051 set_next_paint_is_resize_ack(); | 1057 set_next_paint_is_resize_ack(); |
| 1052 if (compositor_) | 1058 if (compositor_) |
| 1053 compositor_->SetNeedsRedrawRect(gfx::Rect(size_)); | 1059 compositor_->SetNeedsRedrawRect(gfx::Rect(size_)); |
| 1054 } | 1060 } |
| 1055 | 1061 |
| 1056 void RenderWidget::Resize(const ResizeParams& params) { | 1062 void RenderWidget::Resize(const ResizeParams& params) { |
| 1057 bool orientation_changed = | |
| 1058 screen_info_.orientationAngle != params.screen_info.orientationAngle || | |
| 1059 screen_info_.orientationType != params.screen_info.orientationType; | |
| 1060 | |
| 1061 screen_info_ = params.screen_info; | 1063 screen_info_ = params.screen_info; |
| 1062 SetDeviceScaleFactor(screen_info_.deviceScaleFactor); | 1064 SetDeviceScaleFactor(screen_info_.deviceScaleFactor); |
| 1063 | 1065 |
| 1064 if (resizing_mode_selector_->NeverUsesSynchronousResize()) { | 1066 if (resizing_mode_selector_->NeverUsesSynchronousResize()) { |
| 1065 // A resize ack shouldn't be requested if we have not ACK'd the previous | 1067 // A resize ack shouldn't be requested if we have not ACK'd the previous |
| 1066 // one. | 1068 // one. |
| 1067 DCHECK(!params.needs_resize_ack || !next_paint_is_resize_ack()); | 1069 DCHECK(!params.needs_resize_ack || !next_paint_is_resize_ack()); |
| 1068 } | 1070 } |
| 1069 | 1071 |
| 1070 // Ignore this during shutdown. | 1072 // Ignore this during shutdown. |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1120 DCHECK(!params.needs_resize_ack); | 1122 DCHECK(!params.needs_resize_ack); |
| 1121 } | 1123 } |
| 1122 | 1124 |
| 1123 // Send the Resize_ACK flag once we paint again if requested. | 1125 // Send the Resize_ACK flag once we paint again if requested. |
| 1124 if (params.needs_resize_ack) | 1126 if (params.needs_resize_ack) |
| 1125 set_next_paint_is_resize_ack(); | 1127 set_next_paint_is_resize_ack(); |
| 1126 | 1128 |
| 1127 if (fullscreen_change) | 1129 if (fullscreen_change) |
| 1128 DidToggleFullscreen(); | 1130 DidToggleFullscreen(); |
| 1129 | 1131 |
| 1130 if (orientation_changed) | |
| 1131 OnOrientationChange(); | |
| 1132 | |
| 1133 // If a resize ack is requested and it isn't set-up, then no more resizes will | 1132 // If a resize ack is requested and it isn't set-up, then no more resizes will |
| 1134 // come in and in general things will go wrong. | 1133 // come in and in general things will go wrong. |
| 1135 DCHECK(!params.needs_resize_ack || next_paint_is_resize_ack()); | 1134 DCHECK(!params.needs_resize_ack || next_paint_is_resize_ack()); |
| 1136 } | 1135 } |
| 1137 | 1136 |
| 1138 void RenderWidget::SetScreenMetricsEmulationParameters( | 1137 void RenderWidget::SetScreenMetricsEmulationParameters( |
| 1139 bool enabled, | 1138 bool enabled, |
| 1140 const blink::WebDeviceEmulationParams& params) { | 1139 const blink::WebDeviceEmulationParams& params) { |
| 1141 // This is only supported in RenderView. | 1140 // This is only supported in RenderView. |
| 1142 NOTREACHED(); | 1141 NOTREACHED(); |
| (...skipping 945 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2088 video_hole_frames_.RemoveObserver(frame); | 2087 video_hole_frames_.RemoveObserver(frame); |
| 2089 } | 2088 } |
| 2090 #endif // defined(VIDEO_HOLE) | 2089 #endif // defined(VIDEO_HOLE) |
| 2091 | 2090 |
| 2092 void RenderWidget::OnWaitNextFrameForTests(int routing_id) { | 2091 void RenderWidget::OnWaitNextFrameForTests(int routing_id) { |
| 2093 QueueMessage(new ViewHostMsg_WaitForNextFrameForTests_ACK(routing_id), | 2092 QueueMessage(new ViewHostMsg_WaitForNextFrameForTests_ACK(routing_id), |
| 2094 MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE); | 2093 MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE); |
| 2095 } | 2094 } |
| 2096 | 2095 |
| 2097 } // namespace content | 2096 } // namespace content |
| OLD | NEW |