HTMLTextAreaElement.setSelectionRange should not change focus.

HTMLTextAreaElement.setSelectionRange(start,end) changes focus if |start| is not 
|end|.
However, HTMLTextAreaElement.setSelectionRange should not change focus in any 
condition.
FireFox follows such behavior at least. 

Source/core/html/HTMLTextFormControlElement.cpp/h:
- Let setSelectionRange not change focus without the ChangeFocus option.
- SelectionOption option is used to change text selection like select() calling 
on disabled input field.
- 278L: We must set 'forward' direction if direction is 'none' on not Mac.
- FrameSelection.setSelection is called when selectionOption is ChangeSelection 
or this TextFormControl element is already focused.

Source/core/html/HTMLTextAreaElement.cpp/h:
- Change setValueCommon to call setSelectionRange except for initialize.
- setSelectionRange calls update layout, which needs updated validity so call 
setNeedsValidityCheck earlier.


LayoutTests/fast/forms/selection-setSelectionRange-focusing.html:
- Added test. Check focus not to be changed.

LayoutTests/fast/forms/textarea-selection-preservation.html:
- Add test cases resetting selection. This is following the FireFox behavior.

(Other layout tests):
- Some tests expect setSelectionRange to change focus, thus I add extra focus.
- Some tests expect resetting value of textarea to change selection to 0, thus I 
add extra setSelectionRange(0, 0);

TEST=LayoutTests/fast/forms/selection-setSelectionRange-focusing.html, textarea-
selection-preservation.html
BUG=393504

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

git-svn-id: svn://svn.chromium.org/blink/trunk@178822 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Replace further questionable HashMap::add usages in bindings

BUG=390928
R=dcarney@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@178823 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Only allow path as target for mpath

Be more strict and only allow a path as href target.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@178824 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Make sure that begin time cannot be greater than
SMILTime::indefiniteValue unintentionally.

When blink::SVGSMILElement::resolveInterval creates a SMILTime begin
node for a SMILInterval, then it only checks if the value of begin is
indefinite or unresolved but misses the case if it is between these two
reference values.

This patch ensures that no SMILTime can be created above indefiniteValue.

R=dschulze@chromium.org,fs@opera.com
BUG=396044

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

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