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