Mouse press should focus on any types of form controls.

* Background
In WebKit, form controls except text fields and <select> are not
mouse-focusable. This behavior is based on Cocoa native controls.
Though Firefox on Mac behaves same as WebKit, IE, Firefox (non-Mac),
and Opera(Presto) set focus by mouse press.

The WebKit behavior is not Web-compatible.

* Behavior change
We change the behavior so that mouse press sets focus to form controls
to improve web compatibility. However, We haven't set focus until now and
this behavior change might make existing users uncomfortable with focus
rings which appear on click. So, we don't draw focus rings if a form control
was focused by mouse press.

* Implementation
The main part of this CL is to remove HTMLFormControlElement::isMouseFocusable.
It means we use Node::isMouseFocusable, which is just isFocusable. We
can remove many isMouseFocusable implementations of
HTMLFormControlElement subclasses.

We change the followings to hide focus rings on mouse-focus:
 - Introduce FocusDirectionMouse so that form control can distinguish
   mouse focus from others.
 - HTMLFormControlElement has m_wasFocusedByMouse flag. It is cleared
   when a keydown event is delivered.
 - Introduce HTMLFormControlElement::shouldShowFocusRingOnMouseFocus,
    which represents differences between button controls and text/select
    controls.
 - RenderTheme, RenderObject, RenderInline don't draw focus rings if
    conditions match.

We introduced Node::willCallDefaultEventHandler to re-show focus rings
after keyboard operations.

Test changes:
 - Add many tests for new behavior.
 - Remove fast/events/click-focus-control.html because now it is covered
   by existing and new tests.
 - Need rebaseline for afast/repaint/slider-thumb-float.html. We show
    a focus ring for a control without -webkit-appearance.

BUG=89708
R=arv@chromium.org, keishi@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@153039 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Removed dead support for relative length in table code

Relative length support was allowed by HTML4 on COLGROUP and COL's
'width' attribute (see
http://www.w3.org/TR/html4/struct/tables.html#h-11.2.4.1) but it
never made it to HTML5.

The current code doesn't convert the 'width' attribute to a Relative
Length internally, which means that we don't parse these lengths
properly and the code to handle them in table rendering is dead.

Review URL: https://chromiumcodereview.appspot.com/17747003

git-svn-id: svn://svn.chromium.org/blink/trunk@153040 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Rename skia/ImageDecoderSKia.cpp to ImageFrame.cpp

There is only skia now: no need to keep this file in a separate
skia directory.  Delete the skia directory and move this file up
one level, rename it to ImageFrame.cpp.

BUG=
R=pdr@chromium.org, tkent@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@153041 bbb929c8-8fbe-4397-9dbb-9b2b20218538
RuleSet should use malloc rather than Vector
    
The lion's share of the memory used by the style resolver is in the RuleSet
objects. Prior to this CL, these objects were structured as a HashMap from
AtomicStrings to pointers to vectors of RuleData. This CL simplifies this
object graph by removing a layer of indirection. Now we just have a HashMap
from AtomicStrings to an array of RuleDatas.

Rather than use a length to terminate the iteration over the Vector, this CL
uses a bit in RuleData to mark the end of the array. Together with removing the
extra pointer, this CL saves 15 kB on Mobile Gmail.

R=eseidel,ojan

Review URL: https://chromiumcodereview.appspot.com/17616009

git-svn-id: svn://svn.chromium.org/blink/trunk@153042 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Make CSS parser errors no longer 16-bit strings, and fix MediaTypes to be atomic

These both showed up when browsing boingboing.net and result in another
small memory savings.

Review URL: https://chromiumcodereview.appspot.com/17741007

git-svn-id: svn://svn.chromium.org/blink/trunk@153043 bbb929c8-8fbe-4397-9dbb-9b2b20218538