| 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..9d9cb9891357c9c826917905edbbb089f9172999 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
|
| + // owner's visible viewport.
|
| + auto owner_size = owner_web_contents()->GetRenderWidgetHostView()->
|
| + GetVisibleViewportSize();
|
| + normal_height = owner_size.height();
|
| + normal_width = owner_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;
|
|
|