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/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 float overdraw_bottom_height, | 255 float overdraw_bottom_height, |
256 gfx::Rect resizer_rect, | 256 gfx::Rect resizer_rect, |
257 bool is_fullscreen) { | 257 bool is_fullscreen) { |
258 applied_widget_rect_.set_size(gfx::Size(params_.viewSize)); | 258 applied_widget_rect_.set_size(gfx::Size(params_.viewSize)); |
259 if (!applied_widget_rect_.width()) | 259 if (!applied_widget_rect_.width()) |
260 applied_widget_rect_.set_width(original_size_.width()); | 260 applied_widget_rect_.set_width(original_size_.width()); |
261 if (!applied_widget_rect_.height()) | 261 if (!applied_widget_rect_.height()) |
262 applied_widget_rect_.set_height(original_size_.height()); | 262 applied_widget_rect_.set_height(original_size_.height()); |
263 | 263 |
264 if (params_.fitToView && !original_size_.IsEmpty()) { | 264 if (params_.fitToView && !original_size_.IsEmpty()) { |
265 int width_with_gutter = | 265 int original_width = std::max(original_size_.width(), 1); |
266 std::max(original_size_.width() - 2 * params_.viewInsets.width, 1); | 266 int original_height = std::max(original_size_.height(), 1); |
267 int height_with_gutter = | |
268 std::max(original_size_.height() - 2 * params_.viewInsets.height, 1); | |
269 float width_ratio = | 267 float width_ratio = |
270 static_cast<float>(applied_widget_rect_.width()) / width_with_gutter; | 268 static_cast<float>(applied_widget_rect_.width()) / original_width; |
271 float height_ratio = | 269 float height_ratio = |
272 static_cast<float>(applied_widget_rect_.height()) / height_with_gutter; | 270 static_cast<float>(applied_widget_rect_.height()) / original_height; |
273 float ratio = std::max(1.0f, std::max(width_ratio, height_ratio)); | 271 float ratio = std::max(1.0f, std::max(width_ratio, height_ratio)); |
274 scale_ = 1.f / ratio; | 272 scale_ = 1.f / ratio; |
275 | 273 |
276 // Center emulated view inside available view space. | 274 // Center emulated view inside available view space. |
277 offset_.set_x( | 275 offset_.set_x( |
278 (original_size_.width() - scale_ * applied_widget_rect_.width()) / 2); | 276 (original_size_.width() - scale_ * applied_widget_rect_.width()) / 2); |
279 offset_.set_y( | 277 offset_.set_y( |
280 (original_size_.height() - scale_ * applied_widget_rect_.height()) / 2); | 278 (original_size_.height() - scale_ * applied_widget_rect_.height()) / 2); |
281 } else { | 279 } else { |
282 scale_ = 1.f; | 280 scale_ = params_.scale; |
283 offset_.SetPoint(0, 0); | 281 offset_.SetPoint(params_.offset.x, params_.offset.y); |
284 } | 282 } |
285 | 283 |
286 if (params_.screenPosition == WebDeviceEmulationParams::Desktop) { | 284 if (params_.screenPosition == WebDeviceEmulationParams::Desktop) { |
287 applied_widget_rect_.set_origin(original_view_screen_rect_.origin()); | 285 applied_widget_rect_.set_origin(original_view_screen_rect_.origin()); |
288 widget_->screen_info_.rect = original_screen_info_.rect; | 286 widget_->screen_info_.rect = original_screen_info_.rect; |
289 widget_->screen_info_.availableRect = original_screen_info_.availableRect; | 287 widget_->screen_info_.availableRect = original_screen_info_.availableRect; |
290 widget_->window_screen_rect_ = original_window_screen_rect_; | 288 widget_->window_screen_rect_ = original_window_screen_rect_; |
291 } else { | 289 } else { |
292 applied_widget_rect_.set_origin(gfx::Point(0, 0)); | 290 applied_widget_rect_.set_origin(gfx::Point(0, 0)); |
293 widget_->screen_info_.rect = applied_widget_rect_; | 291 widget_->screen_info_.rect = applied_widget_rect_; |
(...skipping 1776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2070 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { | 2068 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { |
2071 video_hole_frames_.AddObserver(frame); | 2069 video_hole_frames_.AddObserver(frame); |
2072 } | 2070 } |
2073 | 2071 |
2074 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { | 2072 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { |
2075 video_hole_frames_.RemoveObserver(frame); | 2073 video_hole_frames_.RemoveObserver(frame); |
2076 } | 2074 } |
2077 #endif // defined(VIDEO_HOLE) | 2075 #endif // defined(VIDEO_HOLE) |
2078 | 2076 |
2079 } // namespace content | 2077 } // namespace content |
OLD | NEW |