Status bubbles should wait before showing and hiding, and should fade in and
out on the Mac.

This fixes the fades, which were actually written but unfortunately not
working due to a silly bug.  It also adds the delays, cleaning up a TODO.
It fixes some questionable logic ("hide by calling Hide() and then FadeIn()").
Finally, it allows better reuse of the status bubble NSWindow, and fixes a bug
that prevented the status bubble window from properly attaching to its parent
window if the parent was offscreen at attachment time.  Unit tests for the new
behavior are included, and as a bonus, I've added better testing for some
existing behavior.

See http://dev.chromium.org/user-experience/status-bubble for the design of
the status bubble.  Also, consult chrome/browser/views/status_bubble_views.cc
for the implementation used on Windows.

BUG=24495
TEST=Mouse over some links
Review URL: http://codereview.chromium.org/269045

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28749 0039d316-1c4b-4281-b951-d872f2087c98
3 files changed