Replace HTMLTextFormControlElement::fixPlaceholderRenderer with an override of RenderTextControl::addChild

fixPlaceholderRenderer was used to rearrange the render tree to make sure that
the placeholder text was always first. It required a synchronous attach hook though
so isntead just teach RenderTextControl::addChild how to do this reordering. The hack
is still really ugly, but at least it's contained in one place.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@156619 bbb929c8-8fbe-4397-9dbb-9b2b20218538
IDL compiler: remove constant unpacking

The Perl IDL code generator converts hex literals to signed decimal literals.
This seems very wrong, and barely used, so this CL removes it.
This is not just a cosmetic change (potentially changes behavior),
hence it's a separate cleanup CL.

This conversion unnecessary, since hex literals are valid C++, and the single
line that does this has many bugs (only hex literals starting '0x', not
'0X' or octal or decimal or signed hex).
Further, it does this even for *unsigned* constants!

The only semantic difference is that NodeFilter has unsigned 0xFFFFFFFF,
which is converted to -1 ...and then presumably back to unsigned.

See extended discussion:
https://codereview.chromium.org/23068032/diff/15001/Source/bindings/scripts/code_generator_v8.py

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

git-svn-id: svn://svn.chromium.org/blink/trunk@156620 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Web MIDI: update platform API to receive startSession result

OS or other dependent systems may return an error when Web MIDI is going
to initialize the MIDI systems on starting a session.
The error should be exposed in JavaScript API, as an InvalidStateError
DOMError.

TEST=Layouttests/webmidi
BUG=260315

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

git-svn-id: svn://svn.chromium.org/blink/trunk@156621 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Do not construct and destruct new InputType instance if it is not used.

Fix a bug that UI elements in multiple-fields inputs don't work after
input.type = input.type.
This bug is a regression by Blink r151841 [1]

BaseMultipleFieldsDateAndTimeInputType destructor disconnects UI elments from
their owners. Constructing and destructing unused
BaseMultipleFieldDateAndTimeInputType object in HTMLInputType::updateType
diconnected existing ownership relations build by another
BaseMultipleFieldDateAndTimeInputType object.

[1] http://src.chromium.org/viewvc/blink?revision=151841&view=revision

BUG=277843
TEST=automated

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

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