(Reland) Always create top controls manager.
commitaa5d1b033c0894dfde32bfe0b1d2cd8b2d9a1eb3
authorbokan <bokan@chromium.org>
Mon, 9 Mar 2015 21:51:32 +0000 (9 14:51 -0700)
committerCommit bot <commit-bot@chromium.org>
Mon, 9 Mar 2015 21:52:28 +0000 (9 21:52 +0000)
tree84d3803e89ce24dae61fbf7cba858e1d1b06995b
parenta0bf8e711f92b7567e6ce3d6faba56825d36c13b
(Reland) Always create top controls manager.

This CL removes the calculate_top_controls_position flag and instead
always creates the top controls manager. The methods of the manager
become no-ops if the top controls height is 0 so that it becomes
effectively enabled when a top controls height gets set.

This fixes the attached bug because some Android Chrome UI pages don't
have top controls but the manager was still created. These pages set
the height to 0 to hide the top controls but the methods of the
manager were still getting called. This caused a crash in Blink since
ScrollBy would try to calculate the shown ratio with a 0 height, causing
a NaN to propagate into Blink.

BUG=460007

Committed: https://crrev.com/7610e74eacde3468853c9765bd3f726c14df04c1
Cr-Commit-Position: refs/heads/master@{#319257}

Review URL: https://codereview.chromium.org/961023002

Cr-Commit-Position: refs/heads/master@{#319738}
15 files changed:
cc/base/switches.cc
cc/base/switches.h
cc/input/top_controls_manager.cc
cc/input/top_controls_manager_unittest.cc
cc/trees/layer_tree_host.cc
cc/trees/layer_tree_host_impl.cc
cc/trees/layer_tree_host_impl_unittest.cc
cc/trees/layer_tree_settings.cc
cc/trees/layer_tree_settings.h
chrome/android/java/src/org/chromium/chrome/browser/ApplicationInitialization.java
chrome/browser/chromeos/login/chrome_restart_request.cc
content/browser/renderer_host/compositor_impl_android.cc
content/browser/renderer_host/render_process_host_impl.cc
content/public/android/java/src/org/chromium/content/common/ContentSwitches.java
content/renderer/gpu/render_widget_compositor.cc