Index: ui/keyboard/keyboard_controller_proxy.cc |
diff --git a/ui/keyboard/keyboard_controller_proxy.cc b/ui/keyboard/keyboard_controller_proxy.cc |
index 1b3e86a27dd58b68164a4c3b8aae61e1129de1f4..cd98f9a290ec26c6c1097fa631b85dc61ebc4f29 100644 |
--- a/ui/keyboard/keyboard_controller_proxy.cc |
+++ b/ui/keyboard/keyboard_controller_proxy.cc |
@@ -60,7 +60,11 @@ class KeyboardContentsDelegate : public content::WebContentsDelegate, |
int new_height = pos.height(); |
bounds.set_y(bounds.y() + bounds.height() - new_height); |
bounds.set_height(new_height); |
- keyboard->SetBounds(bounds); |
+ // Keyboard bounds should only be reset when it actually changes. Otherwise |
+ // it interrupts the initial animation of showing the keyboard. Described in |
+ // crbug.com/356753. |
+ if (bounds != keyboard->bounds()) |
+ keyboard->SetBounds(bounds); |
} |
// Overridden from content::WebContentsDelegate: |