| Index: content/renderer/browser_plugin/browser_plugin.cc
|
| diff --git a/content/renderer/browser_plugin/browser_plugin.cc b/content/renderer/browser_plugin/browser_plugin.cc
|
| index 3962ccfcab2c2aedc83fb37745842bbd9f78155e..a3e78d59460a49429ba6a0abb7f22ba3b77200d0 100644
|
| --- a/content/renderer/browser_plugin/browser_plugin.cc
|
| +++ b/content/renderer/browser_plugin/browser_plugin.cc
|
| @@ -54,7 +54,6 @@ BrowserPlugin::BrowserPlugin(RenderViewImpl* render_view,
|
| last_device_scale_factor_(GetDeviceScaleFactor()),
|
| sad_guest_(NULL),
|
| guest_crashed_(false),
|
| - is_auto_size_state_dirty_(false),
|
| content_window_routing_id_(MSG_ROUTING_NONE),
|
| plugin_focused_(false),
|
| visible_(true),
|
| @@ -144,66 +143,6 @@ bool BrowserPlugin::GetAllowTransparencyAttribute() const {
|
| return HasDOMAttribute(browser_plugin::kAttributeAllowTransparency);
|
| }
|
|
|
| -bool BrowserPlugin::GetAutoSizeAttribute() const {
|
| - return HasDOMAttribute(browser_plugin::kAttributeAutoSize);
|
| -}
|
| -
|
| -int BrowserPlugin::GetMaxHeightAttribute() const {
|
| - int max_height;
|
| - base::StringToInt(GetDOMAttributeValue(browser_plugin::kAttributeMaxHeight),
|
| - &max_height);
|
| - return max_height;
|
| -}
|
| -
|
| -int BrowserPlugin::GetMaxWidthAttribute() const {
|
| - int max_width;
|
| - base::StringToInt(GetDOMAttributeValue(browser_plugin::kAttributeMaxWidth),
|
| - &max_width);
|
| - return max_width;
|
| -}
|
| -
|
| -int BrowserPlugin::GetMinHeightAttribute() const {
|
| - int min_height;
|
| - base::StringToInt(GetDOMAttributeValue(browser_plugin::kAttributeMinHeight),
|
| - &min_height);
|
| - return min_height;
|
| -}
|
| -
|
| -int BrowserPlugin::GetMinWidthAttribute() const {
|
| - int min_width;
|
| - base::StringToInt(GetDOMAttributeValue(browser_plugin::kAttributeMinWidth),
|
| - &min_width);
|
| - return min_width;
|
| -}
|
| -
|
| -int BrowserPlugin::GetAdjustedMaxHeight() const {
|
| - int max_height = GetMaxHeightAttribute();
|
| - return max_height ? max_height : height();
|
| -}
|
| -
|
| -int BrowserPlugin::GetAdjustedMaxWidth() const {
|
| - int max_width = GetMaxWidthAttribute();
|
| - return max_width ? max_width : width();
|
| -}
|
| -
|
| -int BrowserPlugin::GetAdjustedMinHeight() const {
|
| - int min_height = GetMinHeightAttribute();
|
| - // FrameView.cpp does not allow this value to be <= 0, so when the value is
|
| - // unset (or set to 0), we set it to the container size.
|
| - min_height = min_height ? min_height : height();
|
| - // For autosize, minHeight should not be bigger than maxHeight.
|
| - return std::min(min_height, GetAdjustedMaxHeight());
|
| -}
|
| -
|
| -int BrowserPlugin::GetAdjustedMinWidth() const {
|
| - int min_width = GetMinWidthAttribute();
|
| - // FrameView.cpp does not allow this value to be <= 0, so when the value is
|
| - // unset (or set to 0), we set it to the container size.
|
| - min_width = min_width ? min_width : width();
|
| - // For autosize, minWidth should not be bigger than maxWidth.
|
| - return std::min(min_width, GetAdjustedMaxWidth());
|
| -}
|
| -
|
| void BrowserPlugin::ParseAllowTransparencyAttribute() {
|
| if (!HasGuestInstanceID())
|
| return;
|
| @@ -219,51 +158,6 @@ void BrowserPlugin::ParseAllowTransparencyAttribute() {
|
| opaque));
|
| }
|
|
|
| -void BrowserPlugin::ParseAutoSizeAttribute() {
|
| - last_view_size_ = plugin_size();
|
| - is_auto_size_state_dirty_ = true;
|
| - UpdateGuestAutoSizeState(GetAutoSizeAttribute());
|
| -}
|
| -
|
| -void BrowserPlugin::PopulateAutoSizeParameters(
|
| - BrowserPluginHostMsg_AutoSize_Params* params, bool auto_size_enabled) {
|
| - params->enable = auto_size_enabled;
|
| - // No need to populate the params if autosize is off.
|
| - if (auto_size_enabled) {
|
| - params->max_size = gfx::Size(GetAdjustedMaxWidth(), GetAdjustedMaxHeight());
|
| - params->min_size = gfx::Size(GetAdjustedMinWidth(), GetAdjustedMinHeight());
|
| -
|
| - if (max_auto_size_ != params->max_size)
|
| - is_auto_size_state_dirty_ = true;
|
| -
|
| - max_auto_size_ = params->max_size;
|
| - } else {
|
| - max_auto_size_ = gfx::Size();
|
| - }
|
| -}
|
| -
|
| -void BrowserPlugin::UpdateGuestAutoSizeState(bool auto_size_enabled) {
|
| - // If we haven't yet heard back from the guest about the last resize request,
|
| - // then we don't issue another request until we do in
|
| - // BrowserPlugin::OnUpdateRect.
|
| - if (!HasGuestInstanceID() || !paint_ack_received_)
|
| - return;
|
| -
|
| - BrowserPluginHostMsg_AutoSize_Params auto_size_params;
|
| - BrowserPluginHostMsg_ResizeGuest_Params resize_guest_params;
|
| - if (auto_size_enabled) {
|
| - GetSizeParams(&auto_size_params, &resize_guest_params, true);
|
| - } else {
|
| - GetSizeParams(NULL, &resize_guest_params, true);
|
| - }
|
| - paint_ack_received_ = false;
|
| - browser_plugin_manager()->Send(
|
| - new BrowserPluginHostMsg_SetAutoSize(render_view_routing_id_,
|
| - guest_instance_id_,
|
| - auto_size_params,
|
| - resize_guest_params));
|
| -}
|
| -
|
| void BrowserPlugin::Attach(int guest_instance_id,
|
| scoped_ptr<base::DictionaryValue> extra_params) {
|
| CHECK(guest_instance_id != browser_plugin::kInstanceIDNone);
|
| @@ -293,9 +187,7 @@ void BrowserPlugin::Attach(int guest_instance_id,
|
| attach_params.visible = visible_;
|
| attach_params.opaque = !GetAllowTransparencyAttribute();
|
| attach_params.origin = plugin_rect().origin();
|
| - GetSizeParams(&attach_params.auto_size_params,
|
| - &attach_params.resize_guest_params,
|
| - false);
|
| + GetSizeParams(&attach_params.resize_guest_params, false);
|
|
|
| browser_plugin_manager()->Send(
|
| new BrowserPluginHostMsg_Attach(render_view_routing_id_,
|
| @@ -420,53 +312,24 @@ void BrowserPlugin::OnUpdateRect(
|
| // If the guest has updated pixels then it is no longer crashed.
|
| guest_crashed_ = false;
|
|
|
| - bool auto_size = GetAutoSizeAttribute();
|
| // We receive a resize ACK in regular mode, but not in autosize.
|
| // In Compositing mode, we need to do it here so we can continue sending
|
| // resize messages when needed.
|
| - if (params.is_resize_ack || (auto_size || is_auto_size_state_dirty_))
|
| + if (params.is_resize_ack)
|
| paint_ack_received_ = true;
|
|
|
| - bool was_auto_size_state_dirty = auto_size && is_auto_size_state_dirty_;
|
| - is_auto_size_state_dirty_ = false;
|
| -
|
| - if ((!auto_size && (width() != params.view_size.width() ||
|
| - height() != params.view_size.height())) ||
|
| - (auto_size && was_auto_size_state_dirty) ||
|
| - GetDeviceScaleFactor() != params.scale_factor) {
|
| - UpdateGuestAutoSizeState(auto_size);
|
| + if (params.view_size.width() == width() &&
|
| + params.view_size.height() == height()) {
|
| return;
|
| }
|
|
|
| - if (auto_size && (params.view_size != last_view_size_))
|
| - last_view_size_ = params.view_size;
|
| -
|
| - BrowserPluginHostMsg_AutoSize_Params auto_size_params;
|
| - BrowserPluginHostMsg_ResizeGuest_Params resize_guest_params;
|
| -
|
| - // BrowserPluginHostMsg_UpdateRect_ACK is used by both the compositing and
|
| - // software paths to piggyback updated autosize parameters.
|
| - if (auto_size)
|
| - PopulateAutoSizeParameters(&auto_size_params, auto_size);
|
| -
|
| - browser_plugin_manager()->Send(
|
| - new BrowserPluginHostMsg_SetAutoSize(render_view_routing_id_,
|
| - guest_instance_id_,
|
| - auto_size_params,
|
| - resize_guest_params));
|
| -}
|
| -
|
| -void BrowserPlugin::ParseSizeContraintsChanged() {
|
| - bool auto_size = GetAutoSizeAttribute();
|
| - if (auto_size) {
|
| - is_auto_size_state_dirty_ = true;
|
| - UpdateGuestAutoSizeState(true);
|
| - }
|
| -}
|
| -
|
| -bool BrowserPlugin::InAutoSizeBounds(const gfx::Size& size) const {
|
| - return size.width() <= GetAdjustedMaxWidth() &&
|
| - size.height() <= GetAdjustedMaxHeight();
|
| + BrowserPluginHostMsg_ResizeGuest_Params resize_params;
|
| + PopulateResizeGuestParameters(&resize_params, plugin_size(), false);
|
| + paint_ack_received_ = false;
|
| + browser_plugin_manager()->Send(new BrowserPluginHostMsg_ResizeGuest(
|
| + render_view_routing_id_,
|
| + guest_instance_id_,
|
| + resize_params));
|
| }
|
|
|
| NPObject* BrowserPlugin::GetContentWindow() const {
|
| @@ -684,8 +547,7 @@ void BrowserPlugin::updateGeometry(
|
| // TODO(mthiesse): Assess the performance of calling GetAutoSizeAttribute() on
|
| // resize.
|
| if (!paint_ack_received_ ||
|
| - (old_width == window_rect.width && old_height == window_rect.height) ||
|
| - GetAutoSizeAttribute()) {
|
| + (old_width == window_rect.width && old_height == window_rect.height)) {
|
| // Let the browser know about the updated view rect.
|
| browser_plugin_manager()->Send(new BrowserPluginHostMsg_UpdateGeometry(
|
| render_view_routing_id_, guest_instance_id_, plugin_rect_));
|
| @@ -709,23 +571,16 @@ void BrowserPlugin::PopulateResizeGuestParameters(
|
| params->view_size = view_size;
|
| params->repaint = needs_repaint;
|
| params->scale_factor = GetDeviceScaleFactor();
|
| - if (last_device_scale_factor_ != params->scale_factor){
|
| + if (last_device_scale_factor_ != params->scale_factor) {
|
| DCHECK(params->repaint);
|
| last_device_scale_factor_ = params->scale_factor;
|
| }
|
| }
|
|
|
| void BrowserPlugin::GetSizeParams(
|
| - BrowserPluginHostMsg_AutoSize_Params* auto_size_params,
|
| BrowserPluginHostMsg_ResizeGuest_Params* resize_guest_params,
|
| bool needs_repaint) {
|
| - if (auto_size_params) {
|
| - PopulateAutoSizeParameters(auto_size_params, GetAutoSizeAttribute());
|
| - } else {
|
| - max_auto_size_ = gfx::Size();
|
| - }
|
| - gfx::Size view_size = (auto_size_params && auto_size_params->enable) ?
|
| - auto_size_params->max_size : gfx::Size(width(), height());
|
| + gfx::Size view_size(width(), height());
|
| if (view_size.IsEmpty())
|
| return;
|
| paint_ack_received_ = false;
|
|
|