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 |