Support list of tracks in caption media controls
https://bugs.webkit.org/show_bug.cgi?id=101669

Reviewed by Eric Carlson.

Add some new elements to the media control shadow DOM that display the list of available
tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
where it is given a very basic design. At the moment only the list of available tracks
are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670

No new tests - this doesn't expose any testable surface.

* css/mediaControls.css: Added default rules that hide the new elements.
* css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
(WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
(WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
* html/shadow/MediaControlElements.h:
(MediaControlElement):
(MediaControlToggleClosedCaptionsButtonElement):
(MediaControlClosedCaptionsContainerElement):
(MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::MediaControlRootElement):
(WebCore::MediaControlRootElement::create): New track container and list elements created.
(WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
(WebCore::MediaControlRootElement::hide):
(WebCore::MediaControlRootElement::makeTransparent):
(WebCore::MediaControlRootElement::reset):
(WebCore::MediaControlRootElement::reportedError):
(WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
(WebCore):
* html/shadow/MediaControlRootElement.h:
(WebCore):
(MediaControlRootElement):
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
* html/shadow/MediaControls.h:
(MediaControls):
* platform/Language.cpp:
(WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
* platform/Language.h:
(WebCore):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134139 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[TexMap] Initialize m_compositedNativeImagePtr in GraphicsLayerTextureMapper.
https://bugs.webkit.org/show_bug.cgi?id=101675

Patch by Huang Dongsung <luxtella@company100.net> on 2012-11-09
Reviewed by Noam Rosenthal.

Fix a potential bug in GraphicsLayerTextureMapper. If the member's uninitialized
value equals image->nativeImageForCurrentFrame() by change, we can encounter
undefined behavior.

* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::setContentsToImage):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134140 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r134139.
http://trac.webkit.org/changeset/134139
https://bugs.webkit.org/show_bug.cgi?id=101823

breaks chromium (android) build (Requested by thorton on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-11-09

* css/mediaControls.css:
* css/mediaControlsQuickTime.css:
(audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
(audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
* html/shadow/MediaControlElements.h:
(MediaControlElement):
(MediaControlToggleClosedCaptionsButtonElement):
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::MediaControlRootElement):
(WebCore::MediaControlRootElement::create):
(WebCore::MediaControlRootElement::setMediaController):
(WebCore::MediaControlRootElement::hide):
(WebCore::MediaControlRootElement::makeTransparent):
(WebCore::MediaControlRootElement::reset):
(WebCore::MediaControlRootElement::reportedError):
* html/shadow/MediaControlRootElement.h:
(WebCore):
(MediaControlRootElement):
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::initializeControls):
* html/shadow/MediaControls.h:
(MediaControls):
* platform/Language.cpp:
(WebCore):
* platform/Language.h:
(WebCore):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.
https://bugs.webkit.org/show_bug.cgi?id=101701

Patch by Huang Dongsung <luxtella@company100.net> on 2012-11-09
Reviewed by Noam Rosenthal.

Source/WebCore:

Add TiledBackingStore::rect() because CoordinatedTile needs to know
m_rect of TiledBackingStore.

* platform/graphics/TiledBackingStore.h:
(WebCore::TiledBackingStore::rect):

Source/WebKit2:

Currently, all subclasses of TextureMapperPlatformLayer implement
paintToTextureMapper to draw its own texture on the given targetRect. Subclasses
can scale the texture to fit the size of the targetRect. However, only
CoordinatedBackingStore::paintToTextureMapper draws its texture using its own
texture size. There is no bug yet, because TextureMapperLayer uses
CoordinatedBackingStore only as a backing store, not a content layer. So,
TextureMapperLayer always request CoordinatedBackingStore to draw using its own
texture size. However, we can use CoordinatedBackingStore as a content layer in
the future. So this patch fixes this potential bug.

* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
(WebKit::CoordinatedBackingStore::setSize):
(WebKit):
(WebKit::mapToContents):
(WebKit::paintTilesToTextureMapper):
(WebKit::CoordinatedBackingStore::paintToTextureMapper):
* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h:
(CoordinatedBackingStore):
* UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
(WebKit::LayerTreeCoordinatorProxy::createTileForLayer):
* UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:
(LayerTreeCoordinatorProxy):
* UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in:
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
(WebKit::LayerTreeRenderer::createTile):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
(LayerTreeRenderer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::createTile):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayerClient):
(CoordinatedGraphicsLayer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.cpp:
(WebKit::CoordinatedTile::updateBackBuffer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.h:
(CoordinatedTileClient):
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
(WebKit::LayerTreeCoordinator::createTile):
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
(LayerTreeCoordinator):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134142 268f45cc-cd09-0410-ab3c-d52691b4dbfc