Ensure DOMWrapperWorld always exists in all webkit_unit_tests

Currently DOMWrapperWorld can be 0 in some tests. This is problematic since I want to make DOMWrapperWorld::current() callable from anywhere. Thus this CL adds DOMWrapperWorld to all webkit_unit_tests.

- It's verbose to initialize v8::HandleScope, v8::Context, v8::Context::Scope, V8PerContextData and DOMWrapperWorld in each test. So this CL adds a helper class (V8BindingTestScope) that does all the initialization work.

- This CL also fixes indentation of V8Binding.h.

BUG=341032
NOTRY=true

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

git-svn-id: svn://svn.chromium.org/blink/trunk@168355 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Prevent 'removetrack' events from firing when all inband text tracks are removed.

This patch fixes a bug where 'removetrack' events were being fired
when all the inband tracks were being removed. This behavior was trying
to implement the "forget the media element's media-resource-specific
tracks" algorithm, but it wasn't correct.

This patch includes the following changes:
- Renames removeAllInbandTracks() to forgetResourceSpecificTracks()
- Reorganized logic in prepareForLoad() to match the spec order. The
  shuffling should not have any user visible behaviour change.
- Added forgetResourceSpecificTracks() calls to other places that
  the spec indicates it should run.
- Added code to make sure forgetResourceSpecificTracks() doesn't
  trigger 'removetrack' events.
- Converted the existing media/track/track-remove-track.html test
  to W3C test & added a new test case that verifies that the event
  doesn't fire.

BUG=249427
TEST=Existing LayoutTests still pass. Added a new case to media/track/track-remove-track.html

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

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