Inner text element should not use -webkit-user-modify
https://bugs.webkit.org/show_bug.cgi?id=129035

Reviewed by Andreas Kling.

Source/WebCore: 

To eliminate the internal use of -webkit-user-modify, use contenteditable attribute in the inner text elements
instead of manually inspecting disabled-ness and readonly-ness in RenderTextControl.

Unfortunately, we still have to manually set UserModify value in RenderTextControl::adjustInnerTextStyle since
RenderTextControl::styleDidChange creates RenderStyle for its inner text from scratch via createInnerTextStyle.    

* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::disabledStateChanged): Don't use childrenOfType iterator which asserts that DOM
isn't mutated during the traversal since we now set contenteditable attribute inside disabledStateChanged via
updateFromControlElementsAncestorDisabledStateUnder.

* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::parseAttribute): Extracted readOnlyAttributeChanged out of this function so
that HTMLTextFormControl could override it to call updateInnerTextElementEditability.
(WebCore::HTMLFormControlElement::readOnlyAttributeChanged): Ditto.
* html/HTMLFormControlElement.h:

* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::didAddUserAgentShadowRoot): Call updateInnerTextElementEditability after creating
shadow DOM for the current input type.
(WebCore::HTMLInputElement::updateType): Ditto.
(WebCore::HTMLInputElement::parseAttribute): Ditto.

* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot): Call updateInnerTextElementEditability.

* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::disabledStateChanged): Added to update contenteditable attribute since
the editability of the inner text element depends on disabled-ness of the element.
(WebCore::HTMLTextFormControlElement::readOnlyAttributeChanged): Ditto for the readonly-ness of the element.
(WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability): Added.
* html/HTMLTextFormControlElement.h:

* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::adjustInnerTextStyle): Use the inner text element's presentationAttributeStyle() to
compute the appropriate EUserModify value instead of hard-coding it here.
* rendering/RenderTextControl.h:

LayoutTests: 

Rebaselined tests as the user agent shadow DOM of input and textarea elements now have contenteditable attribute.

* editing/input/paste-text-ending-with-interchange-newline-expected.txt:
* editing/inserting/5607069-2-expected.txt:
* editing/inserting/5607069-3-expected.txt:
* editing/pasteboard/copy-image-with-alt-text-expected.txt:
* editing/pasteboard/copy-null-characters-expected.txt:
* editing/pasteboard/nested-blocks-with-text-area-expected.txt:
* editing/pasteboard/nested-blocks-with-text-field-expected.txt:
* editing/selection/dump-as-markup-expected.txt:
* editing/selection/dump-as-markup-form-text-expected.txt:
* fast/forms/suggested-value-after-setvalue-expected.txt:
* fast/forms/suggested-value-expected.txt:
* fast/parser/object-with-textarea-fallback-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164526 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Extend media support for WebVTT sources
https://bugs.webkit.org/show_bug.cgi?id=129156

Reviewed by Eric Carlson.

Source/JavaScriptCore: 

* Configurations/FeatureDefines.xcconfig: Add new feature define for AVF_CAPTIONS

Source/WebCore: 

* Configurations/FeatureDefines.xcconfig: Add new feature define for AVF_CAPTIONS
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::outOfBandTrackSources): Added.
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::outOfBandTrackSources): Added.
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::outOfBandTrackSources): Added.
* platform/graphics/PlatformTextTrack.h:
(WebCore::PlatformTextTrack::create): Update for new constructor signature.
(WebCore::PlatformTextTrack::createOutOfBand): Added.
(WebCore::PlatformTextTrack::url): Added.
(WebCore::PlatformTextTrack::isDefault): Added.
(WebCore::PlatformTextTrack::PlatformTextTrack): Revised to take new URL and
'isDefault' arguments.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::mediaDescriptionForKind): Added.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Tell AVFoundation about any
WebVTT tracks supplied by the web page.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions): Filter out any out-of-band
WebVTT tracks returned by the media engine to avoid double-counting tracks.

Source/WebKit/mac: 

* Configurations/FeatureDefines.xcconfig: Add new feature define for AVF_CAPTIONS

Source/WebKit2: 

* Configurations/FeatureDefines.xcconfig: Add new feature define for AVF_CAPTIONS


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164527 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify contains seemingly accidental unreachable code
https://bugs.webkit.org/show_bug.cgi?id=129193

Reviewed by Joseph Pecoraro.

* crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): Fix the accidental code.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164528 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EME] Add a CDMSession for MediaPlayerPrivateMediaSourceAVFObjC
https://bugs.webkit.org/show_bug.cgi?id=129166

Reviewed by Eric Carlson.

Add a new CDMSession, cerated by MediaPlayerPrivateMediaSourceAVFObjC allowing
media-source-backed media elements to play protected content.

Add a new CDMSessionMediaSourceAVFObjC class:
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: Added.
(WebCore::CDMSessionMediaSourceAVFObjC::~CDMSessionMediaSourceAVFObjC):
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm: Added.
(WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC):
(WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest): Do not actually generate a
    key request until the certificate data has been added via update();
(WebCore::CDMSessionMediaSourceAVFObjC::releaseKeys): No-op.
(WebCore::CDMSessionMediaSourceAVFObjC::update): If no certificate data has yet been
    added, assume the incoming message contains it.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine): Add supportsKeySystem.
(WebCore::keySystemIsSupported): Use "com.apple.fps.2_0" to distinguish from the not-media-source scheme.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): Check the keySystem type.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsKeySystem): Added.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createSession): Added, pass through to MediaSourcePrivate.
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::createSession): Added.
(WebCore::MediaSourcePrivateAVFObjC::sourceBufferKeyNeeded): Pass through to MediaPlayer.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
    Added, pass through to SourceBufferPrivate.
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): Remember
    which track is requesting the key, and pass the request to MediaSourcePrivate.

Add new files to the project.
* WebCore.xcodeproj/project.pbxproj:

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