Chromium Code Reviews| Index: extensions/browser/guest_view/guest_view_base.cc |
| diff --git a/extensions/browser/guest_view/guest_view_base.cc b/extensions/browser/guest_view/guest_view_base.cc |
| index eefe4bb0758b900fe5187bc7e3100c6a92049011..2a22ac1f3e0c057e58a9f5b062fafa379c7a7938 100644 |
| --- a/extensions/browser/guest_view/guest_view_base.cc |
| +++ b/extensions/browser/guest_view/guest_view_base.cc |
| @@ -12,6 +12,7 @@ |
| #include "content/public/browser/render_frame_host.h" |
| #include "content/public/browser/render_process_host.h" |
| #include "content/public/browser/render_view_host.h" |
| +#include "content/public/browser/render_widget_host_view.h" |
| #include "content/public/browser/web_contents.h" |
| #include "content/public/common/page_zoom.h" |
| #include "content/public/common/url_constants.h" |
| @@ -782,26 +783,36 @@ void GuestViewBase::SetUpSizing(const base::DictionaryValue& params) { |
| params.GetInteger(guestview::kAttributeMinHeight, &min_height); |
| params.GetInteger(guestview::kAttributeMinWidth, &min_width); |
| - // Set the normal size to the element size so that the guestview will fit the |
| - // element initially if autosize is disabled. |
| - double element_height = 0.0; |
| - double element_width = 0.0; |
| - params.GetDouble(guestview::kElementHeight, &element_height); |
| - params.GetDouble(guestview::kElementWidth, &element_width); |
| - |
| - // If the element size was provided in logical units (versus physical), then |
| - // it will be converted to physical units. |
| - bool element_size_is_logical = false; |
| - params.GetBoolean(guestview::kElementSizeIsLogical, &element_size_is_logical); |
| int normal_height = 0; |
| int normal_width = 0; |
| - if (element_size_is_logical) { |
| - // Convert the element size from logical pixels to physical pixels. |
| - normal_height = LogicalPixelsToPhysicalPixels(element_height); |
| - normal_width = LogicalPixelsToPhysicalPixels(element_width); |
| + if (is_full_page_plugin()) { |
| + // The initial size of a full page plugin should be set to fill the |
| + // embedder's visible viewport. |
| + auto embedder_size = embedder_web_contents()->GetRenderWidgetHostView()-> |
|
Fady Samuel
2015/03/25 20:30:10
Use owner_web_contents() instead. embedder_web_con
paulmeyer
2015/03/25 20:58:36
Done.
|
| + GetVisibleViewportSize(); |
| + normal_height = embedder_size.height(); |
| + normal_width = embedder_size.width(); |
| } else { |
| - normal_height = lround(element_height); |
| - normal_width = lround(element_width); |
| + // Set the normal size to the element size so that the guestview will fit |
| + // the element initially if autosize is disabled. |
| + double element_height = 0.0; |
| + double element_width = 0.0; |
| + params.GetDouble(guestview::kElementHeight, &element_height); |
| + params.GetDouble(guestview::kElementWidth, &element_width); |
| + |
| + // If the element size was provided in logical units (versus physical), then |
| + // it will be converted to physical units. |
| + bool element_size_is_logical = false; |
| + params.GetBoolean(guestview::kElementSizeIsLogical, |
| + &element_size_is_logical); |
| + if (element_size_is_logical) { |
| + // Convert the element size from logical pixels to physical pixels. |
| + normal_height = LogicalPixelsToPhysicalPixels(element_height); |
| + normal_width = LogicalPixelsToPhysicalPixels(element_width); |
| + } else { |
| + normal_height = lround(element_height); |
| + normal_width = lround(element_width); |
| + } |
| } |
| SetSizeParams set_size_params; |