Make it possible to set the display mode from Chromium
This CL allows setting of blink::WebView display mode with the value obtainted from the content::WebContentsDelegate implementations (so far there is a preliminary implementation at content_shell).
The display mode value is send along with ViewMsg_Resize_Params IPC message.
The follow-up layout test: https://codereview.chromium.org/1066213003/
BUG=471703
Review URL: https://codereview.chromium.org/964403003
Cr-Commit-Position: refs/heads/master@{#325200}
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 17733e04..1aab8b4 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -269,7 +269,8 @@
void Apply(bool top_controls_shrink_blink_size,
float top_controls_height,
gfx::Rect resizer_rect,
- bool is_fullscreen_granted);
+ bool is_fullscreen_granted,
+ blink::WebDisplayMode display_mode);
RenderWidget* widget_;
@@ -307,7 +308,8 @@
Apply(widget_->top_controls_shrink_blink_size_,
widget_->top_controls_height_,
widget_->resizer_rect_,
- widget_->is_fullscreen_granted_);
+ widget_->is_fullscreen_granted_,
+ widget_->display_mode_);
}
RenderWidget::ScreenMetricsEmulator::~ScreenMetricsEmulator() {
@@ -324,6 +326,7 @@
original_visible_viewport_size_,
widget_->resizer_rect_,
widget_->is_fullscreen_granted_,
+ widget_->display_mode_,
NO_RESIZE_ACK);
}
@@ -337,14 +340,16 @@
Apply(widget_->top_controls_shrink_blink_size_,
widget_->top_controls_height_,
widget_->resizer_rect_,
- widget_->is_fullscreen_granted_);
+ widget_->is_fullscreen_granted_,
+ widget_->display_mode_);
}
void RenderWidget::ScreenMetricsEmulator::Apply(
bool top_controls_shrink_blink_size,
float top_controls_height,
gfx::Rect resizer_rect,
- bool is_fullscreen_granted) {
+ bool is_fullscreen_granted,
+ blink::WebDisplayMode display_mode) {
applied_widget_rect_.set_size(gfx::Size(params_.viewSize));
if (!applied_widget_rect_.width())
applied_widget_rect_.set_width(original_size_.width());
@@ -410,6 +415,7 @@
applied_widget_rect_.size(),
resizer_rect,
is_fullscreen_granted,
+ display_mode,
NO_RESIZE_ACK);
}
@@ -424,7 +430,8 @@
Apply(params.top_controls_shrink_blink_size,
params.top_controls_height,
params.resizer_rect,
- params.is_fullscreen_granted);
+ params.is_fullscreen_granted,
+ params.display_mode);
if (need_ack) {
widget_->set_next_paint_is_resize_ack();
@@ -480,6 +487,7 @@
is_hidden_(hidden),
never_visible_(never_visible),
is_fullscreen_granted_(false),
+ display_mode_(blink::WebDisplayModeUndefined),
has_focus_(false),
handling_input_event_(false),
handling_ime_event_(false),
@@ -772,6 +780,7 @@
const gfx::Size& visible_viewport_size,
const gfx::Rect& resizer_rect,
bool is_fullscreen_granted,
+ blink::WebDisplayMode display_mode,
const ResizeAck resize_ack) {
if (resizing_mode_selector_->NeverUsesSynchronousResize()) {
// A resize ack shouldn't be requested if we have not ACK'd the previous
@@ -799,6 +808,7 @@
if (fullscreen_change)
WillToggleFullscreen();
is_fullscreen_granted_ = is_fullscreen_granted;
+ display_mode_ = display_mode;
webwidget_->setTopControlsHeight(top_controls_height,
top_controls_shrink_blink_size_);
@@ -844,6 +854,7 @@
new_window_rect.size(),
gfx::Rect(),
is_fullscreen_granted_,
+ display_mode_,
NO_RESIZE_ACK);
view_screen_rect_ = new_window_rect;
window_screen_rect_ = new_window_rect;
@@ -904,6 +915,7 @@
params.visible_viewport_size,
params.resizer_rect,
params.is_fullscreen_granted,
+ params.display_mode,
params.needs_resize_ack ? SEND_RESIZE_ACK : NO_RESIZE_ACK);
if (orientation_changed)