| Index: chrome/browser/extensions/api/tabs/tabs_api.cc
|
| diff --git a/chrome/browser/extensions/api/tabs/tabs_api.cc b/chrome/browser/extensions/api/tabs/tabs_api.cc
|
| index 81d938e97ae29e6b6e555527f49811fd90f2a4f9..cac67b0d6956563397f0a15e60be405a5d66193f 100644
|
| --- a/chrome/browser/extensions/api/tabs/tabs_api.cc
|
| +++ b/chrome/browser/extensions/api/tabs/tabs_api.cc
|
| @@ -752,6 +752,8 @@ bool WindowsUpdateFunction::RunImpl() {
|
| bounds = controller->window()->GetRestoredBounds();
|
| else
|
| bounds = controller->window()->GetBounds();
|
| + // TODO: Updating bounds during a drag can cause problems and a more general
|
| + // solution is needed. See http://crbug.com/251813 .
|
| bool set_bounds = false;
|
|
|
| // Any part of the bounds can optionally be set by the caller.
|
| @@ -760,32 +762,40 @@ bool WindowsUpdateFunction::RunImpl() {
|
| EXTENSION_FUNCTION_VALIDATE(update_props->GetInteger(
|
| keys::kLeftKey,
|
| &bounds_val));
|
| - bounds.set_x(bounds_val);
|
| - set_bounds = true;
|
| + if (bounds.x() != bounds_val) {
|
| + bounds.set_x(bounds_val);
|
| + set_bounds = true;
|
| + }
|
| }
|
|
|
| if (update_props->HasKey(keys::kTopKey)) {
|
| EXTENSION_FUNCTION_VALIDATE(update_props->GetInteger(
|
| keys::kTopKey,
|
| &bounds_val));
|
| - bounds.set_y(bounds_val);
|
| - set_bounds = true;
|
| + if (bounds.y() != bounds_val) {
|
| + bounds.set_y(bounds_val);
|
| + set_bounds = true;
|
| + }
|
| }
|
|
|
| if (update_props->HasKey(keys::kWidthKey)) {
|
| EXTENSION_FUNCTION_VALIDATE(update_props->GetInteger(
|
| keys::kWidthKey,
|
| &bounds_val));
|
| - bounds.set_width(bounds_val);
|
| - set_bounds = true;
|
| + if (bounds.width() != bounds_val) {
|
| + bounds.set_width(bounds_val);
|
| + set_bounds = true;
|
| + }
|
| }
|
|
|
| if (update_props->HasKey(keys::kHeightKey)) {
|
| EXTENSION_FUNCTION_VALIDATE(update_props->GetInteger(
|
| keys::kHeightKey,
|
| &bounds_val));
|
| - bounds.set_height(bounds_val);
|
| - set_bounds = true;
|
| + if (bounds.height() != bounds_val) {
|
| + bounds.set_height(bounds_val);
|
| + set_bounds = true;
|
| + }
|
| }
|
|
|
| if (set_bounds) {
|
|
|