Introduce WebMediaPlayer::seekable() to replace maxTimeSeekable()

TEST=LayoutTests/media/video-seekable.html

Update the test to check that seekable end time is between 5 and 7
seconds, as content/test.* are around 6 seconds long. This should
catch grossly incorrect implementations of seekable.

Also wait only for loadedmetadata, as that should be enough to
determine the seekable ranges, and an implementation waiting until
canplaythrough should fail the test.

BUG=417669

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

git-svn-id: svn://svn.chromium.org/blink/trunk@182821 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Fix some minor typos: psuedo -> pseudo

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

git-svn-id: svn://svn.chromium.org/blink/trunk@182822 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Move a Leak suppression to LeakExpectations file

storage/websql/sql-error-codes.html suppression is moved to LeakExpectations file.

BUG=417752
TBR=hajimehoshi
NOTRY=true

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

git-svn-id: svn://svn.chromium.org/blink/trunk@182823 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Track reasons for |Node::SetNeedsStyleRecalc|

Based on Eric Williger's patch: https://crrev.com/89783003

This CL tracks reason for invalidating style on each |Node::SetNeedsStyleRecalc|
call. This enables devtools/about:tracing to show the Blink internal reason why a
style invalidation was triggered.

This patch introduces a new |reason| argument to |Node::SetNeedsStyleRecalc|
method. The argument type |StyleChangeReasonForTracing| is actually a typedef
to |const char[]|. The string itself is instantiated on separate cpp file for minimal
binary size. This pattern is borrowed from
src/extensions/common/manifest_constants.h (Thanks jyasskin@!), and similar
pattern can be found in Blink Source/core/inspector/InspectorInstrumentation.h,

BUG=316388,410701

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

git-svn-id: svn://svn.chromium.org/blink/trunk@182824 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Teach check-webkit-style about C++11 override and final.

It previously only allowed trailing "const" and "OVERRIDE".
We now encourage use of the "override" and "final" keywords.
While here, also add the previously omitted (but deprecated) "FINAL" macro.

TEST=webkitpy.style.checkers.cpp_unittest

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

git-svn-id: svn://svn.chromium.org/blink/trunk@182825 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Oilpan: Move MediaStreamSource, MediaStreamComponent and MediaStreamDescriptor
to oilpan's heap

- MediaStreamSource, MediaStreamComponent and MediaStreamDescriptor must be moved
to oilpan's heap in one go because their lifetime are tightly coupled.

- Removed m_descriptor->setClient(0) from MediaStream's destructor. This is OK
because MediaStreamDescriptor has a strong Member back to the Client
(i.e., MediaStream).

- Removed m_component->source()->removeObserver(this) from MediaStreamTrack's
destructor. This is OK because this CL made the observers weak
(i.e., MediaStreamSource::m_observers is a hash set of weak members to
MediaStreamTrack objects).

- Removed WebMediaStreamTrack::ExtraData::m_owner because it's unused.

- Introduced MediaStreamComponentDisposer to delay the destruction of
MediaStreamComponent::m_extraData. The ExtraData is exposed to the web
and some Chromium objects inherit from the ExtraData. If we clear the
m_extraData in the MediaStreamComponent's destructor, those Chromium-side
objects are also destructed in the MediaStreamComponent's destructor.
This is problematic because the destructors of the Chromium-side classes
can touch other on-heap objects in the Blink side. To avoid the issue,
we need to delay the destruction of the ExtraData to thread-specific
weak processing. The disposer pattern actually makes the deletion of
the extra data happen earlier and not later. The disposer makes sure
that the extra data is destructed in weak processing which is run before
sweeping and therefore all the objects are still alive and can be touched.


- The same problem arises for MediaStreamDescriptor and MediaStreamSource.
This CL adds MediaStreamDescriptorDisposer and MediaStreamSourceDisposer.

- This CL depends on https://codereview.chromium.org/543603003/ and https://codereview.chromium.org/549153002.

BUG=340522

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=181702

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=182399

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

git-svn-id: svn://svn.chromium.org/blink/trunk@182826 bbb929c8-8fbe-4397-9dbb-9b2b20218538
IA2 role is not correct for input type attribute in button state and checkbox state with menu as parent.

According to specs, for input type attribute in button state with menu as parent, IA2_state should be ROLE_SYSTEM_MENUITEM and for input type attribute in checkbox state, IA2_STATE should be IA2_ROLE_CHECK_MENU_ITEM.

BUG=169574

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

git-svn-id: svn://svn.chromium.org/blink/trunk@182827 bbb929c8-8fbe-4397-9dbb-9b2b20218538
[Fetch API] Add ActiveDOMObject to Request.idl and Response.idl.

I forgot to add ActiveDOMObject.
I think the crashes in request.html caused by GC will be solved by this change.
http://www.chromium.org/blink/activedomobject

BUG=409755
TEST=http/tests/serviceworker/request.html

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

git-svn-id: svn://svn.chromium.org/blink/trunk@182828 bbb929c8-8fbe-4397-9dbb-9b2b20218538
DevTools: remove Tracing.started event from the protocol

It was usefule for starting timeline recording via console.timeline. After removing console.timeline/timelineEnd this event doesn't make sense.

BUG=412782

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

git-svn-id: svn://svn.chromium.org/blink/trunk@182829 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Use LocalStyleChange for content:attr() changes.

LocalStyleChange should be sufficient for updating pseudo elements when
attributes affecting the content property changes.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@182830 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Refactor interface.cpp and interface_base.cpp for partial interface modularization.

Design Doc (partial interface modularization):
https://docs.google.com/a/chromium.org/document/d/1TpqG_bWJfHFo6swv5zbqfjxHl_K31C307NvdyF1NAcU/edit?usp=sharing

partial_interface.cpp will be added for partial interfaces defined in component: modules.

interface_base.cpp is the base template of interface.cpp and partial_interface.cpp.
So, code shared by interface.cpp and partial_interface.cpp should be moved to interface_base.cpp.

BUG=358074

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

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