<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[200361] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/200361">200361</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2016-05-02 22:47:34 -0700 (Mon, 02 May 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Change IDL enumerations to be nested in their C++ class instead of at WebCore namespace level
https://bugs.webkit.org/show_bug.cgi?id=157257

Reviewed by Chris Dumez.

Source/WebCore:

Chris and Alex requested this alternate style, where the enum class for each enumeration
goes inside the class for the interface the enumeration is used in. Also made a rule that
keeps the names short and not redundant with the class name they are nested in.

* Modules/fetch/FetchOptions.h: Moved all the enum class types into the struct.

* Modules/fetch/FetchRequest.cpp:
(WebCore::setReferrerPolicy): Updated.
(WebCore::setMode): Ditto.
(WebCore::setCredentials): Ditto.
(WebCore::setCache): Ditto.
(WebCore::setRedirect): Ditto.
(WebCore::buildOptions): Ditto.
(WebCore::buildHeaders): Ditto.
(WebCore::FetchRequest::create): Ditto.
* Modules/fetch/FetchRequest.h: Used &quot;using&quot; to repeat the types from FetchOptions
here in FetchRequest. That way the generated bindings can find the types, and we don't
need to do any trick like [ImplementedAs] in thd IDL to make it work.

* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::error): Updated.
(WebCore::FetchResponse::redirect): Ditto.
(WebCore::FetchResponse::FetchResponse): Ditto.
(WebCore::FetchResponse::startFetching): Ditto.
* Modules/fetch/FetchResponse.h: Moved enum class into the class.

* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::externalDeviceType): Updated.
* Modules/mediacontrols/MediaControlsHost.h: Moved enum classs into the class.

* Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::MediaSession): Updated.
* Modules/mediasession/MediaSession.h: Moved enum classs into the class.

* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addSourceBuffer): Updated.
(WebCore::MediaSource::removeSourceBuffer): Ditto.

* Modules/mediasource/MediaSource.h: Moved enum class into the class.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError): Updated.
(WebCore::SourceBuffer::appendError): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
(WebCore::SourceBuffer::textTrackModeChanged): Ditto.

* Modules/mediasource/SourceBuffer.h: Removed incorrect forward declaration
of EndOfStreamError that also now seems to be unneeded. Moved enum class into
the class.

* Modules/mediastream/MediaDeviceInfo.cpp:
(WebCore::MediaDeviceInfo::MediaDeviceInfo): Updated.
(WebCore::MediaDeviceInfo::create): Ditto.
* Modules/mediastream/MediaDeviceInfo.h: Moved enum class into the class.

* Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest): Updated.
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::readyState): Updated.

* Modules/mediastream/MediaStreamTrack.h: Moved enum class into the class.

* Modules/mediastream/RTCConfiguration.h: Moved enum classes into the class.

* Modules/webaudio/AudioContext.h: Moved enum class into the class.

* Modules/webaudio/WaveShaperNode.cpp:
(WebCore::processorType): Updated.
(WebCore::WaveShaperNode::oversample): Ditto.
* Modules/webaudio/WaveShaperNode.h: Moved enum class into the class.

* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::response): Updated.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody): Removed unneeded $interfaceName argument.
(GetAttributeGetterName): Ditto.
(GetAttributeSetterName): Ditto.
(GetFunctionName): Tweaked style.
(AttributeShouldBeOnInstanceForCompatibility): Deleted. Was a function that
always returned 0.
(AttributeShouldBeOnInstance): Removed the call to the function above.
(IsClassNameWordBoundary): Added. Helper for function below.
(IsPrefixRemovable): Ditto.
(GetEnumerationClassName): Added an $interface argument and changed this
so it creates a nested name inside the class rather than a top level name
for use at the WebCore namespace level.
(GetEnumerationClassIdentifier): Added. Calls GetEnumerationClassName and
makes a flattened name without &quot;::&quot; that can be used in an identifier.
(GenerateEnumerationImplementationContent): Renamed from GetXXX. Added an
$interface argument, so it can pass that along to the functions above.
(GenerateHeader): Updated to not pass $interfaceName.
(GeneratePropertiesHashTable): Ditto.
(GenerateOverloadedFunction): Removed unneeded $interfaceName argument.
(GenerateImplementation): Updated for changes above. Tweaked formatting.
(GenerateFunctionCastedThis): Removed unneeded $interfaceName argument.
(GenerateParametersCheck): Ditto. Also streamlined implementation a bit
and made the IsEnumType section call the new functions.
(GenerateCallbackImplementation): Ditto.
(JSValueToNative): Added an $interface argument and pass it along when
dealing with enumerations.
(GeneratePrototypeDeclaration): Removed unneeded $interfaceName argument.
(GenerateConstructorDeclaration): Ditto.
(GenerateConstructorDefinitions): Ditto.
(GenerateConstructorDefinition): Ditto.
(GenerateConstructorHelperMethods): Ditto.

* bindings/scripts/test/JS/JSTestObj.cpp: Regenerated.

* bindings/scripts/test/TestObj.idl: Added some new enums that test some
of the logic above.

* crypto/CryptoKey.cpp:
(WebCore::CryptoKey::CryptoKey): Updated.
(WebCore::CryptoKey::usages): Ditto.
* crypto/CryptoKey.h: Moved enum class types inside the CryptoKey class.
Added comments about the two similar but distinct types named
CryptoKeyUsage and CryptoKey::Usage.

* css/FontFace.cpp:
(WebCore::FontFace::status): Updated.
* css/FontFace.h: Moved enum class into the class.

* css/FontFaceSet.cpp:
(WebCore::FontFaceSet::status): Updated.
* css/FontFaceSet.h: Moved enum class into the class.

* dom/Document.cpp:
(WebCore::Document::Document): Updated for the name change back from
ReferrerHeaderPolicy to ReferrerPolicy.
(WebCore::Document::processReferrerPolicy): Ditto.
(WebCore::Document::applyContentDispositionAttachmentSandbox): Ditto.
* dom/Document.h: More of the same.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadInternal): Updated.
(WebCore::HTMLMediaElement::textTrackModeChanged): Ditto.
(WebCore::HTMLMediaElement::textTrackKindChanged): Ditto.
(WebCore::HTMLMediaElement::textTrackAddCues): Ditto.
(WebCore::HTMLMediaElement::textTrackAddCue): Ditto.
(WebCore::HTMLMediaElement::addTextTrack): Ditto.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
(WebCore::HTMLMediaElement::setSelectedTextTrack): Ditto.
(WebCore::HTMLMediaElement::configureTextTracks): Ditto.
(WebCore::HTMLMediaElement::hasClosedCaptions): Ditto.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Ditto.
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
(WebCore::toPlatform): Ditto.
(WebCore::HTMLMediaElement::outOfBandTrackSources): Ditto.
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::scheduleLoad): Ditto.

* html/HTMLVideoElement.h: Moved enum class into class.

* html/HTMLVideoElement.idl: Added the missing conditional on
VideoPresentationMode, and also moved it to the bottom of the file
to work around what is apparently a bug in the IDL parser.

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::toWindRule): Updated.
(WebCore::CanvasRenderingContext2D::fill): Ditto.
(WebCore::CanvasRenderingContext2D::clip): Ditto.
(WebCore::CanvasRenderingContext2D::fillInternal): Ditto.
(WebCore::CanvasRenderingContext2D::clipInternal): Ditto.
(WebCore::CanvasRenderingContext2D::isPointInPath): Ditto.
(WebCore::CanvasRenderingContext2D::isPointInPathInternal): Ditto.
(WebCore::smoothingToInterpolationQuality): Ditto.

* html/canvas/CanvasRenderingContext2D.h: Moved enum class types into the class.

* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Updated.
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Ditto.

* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::setMode): Updated.
(WebCore::toPrivate): Ditto.
(WebCore::InbandTextTrack::setModeInternal): Ditto.
(WebCore::InbandTextTrack::updateKindFromPrivate): Ditto.
* html/track/InbandTextTrack.h: Ditto.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::TextTrack): Ditto.
(WebCore::TextTrack::enabled): Ditto.
(WebCore::TextTrack::kindKeyword): Ditto.
(WebCore::TextTrack::setKind): Ditto.
(WebCore::TextTrack::setKindKeywordIgnoringASCIICase): Ditto.
(WebCore::TextTrack::setMode): Ditto.
(WebCore::TextTrack::cues): Ditto.
(WebCore::TextTrack::activeCues): Ditto.
(WebCore::TextTrack::addCue): Ditto.
(WebCore::TextTrack::regions): Ditto.
(WebCore::TextTrack::isRendered): Ditto.
(WebCore::TextTrack::isMainProgramContent): Ditto.
(WebCore::TextTrack::containsOnlyForcedSubtitles): Ditto.

* html/track/TextTrack.h: Moved enum class types into the class.

* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::dispatchEvent): Updated.
(WebCore::TextTrackCue::isActive): Ditto.
* loader/FrameNetworkingContext.h: Ditto.
* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::sortedTrackListForMenu): Ditto.
(WebCore::CaptionUserPreferences::textTrackSelectionScore): Ditto.
* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::textTrackSelectionScore): Ditto.
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu): Ditto.

* page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::generateReferrerHeader): Updated since we
changed ReferrerHeaderPolicy back to ReferrerPolicy.
* page/SecurityPolicy.h: Ditto.

* platform/ReferrerPolicy.h: Changed ReferrerHeaderPolicy name back
to ReferrerPolicy now that nesting inside a class eliminated the conflict;
still should merge them and that FIXME remains.

* platform/cocoa/WebPlaybackSessionModelMediaElement.mm:
(WebPlaybackSessionModelMediaElement::updateForEventName): Updated.
(WebPlaybackSessionModelMediaElement::updateLegibleOptions): Ditto.

* testing/Internals.cpp:
(WebCore::toResourceRequestCachePolicy): Updated.
(WebCore::Internals::setOverrideCachePolicy): Ditto.
(WebCore::toResourceLoadPriority): Ditto.
(WebCore::Internals::setOverrideResourceLoadPriority): Ditto.
(WebCore::toAutoFillButtonType): Ditto.
(WebCore::Internals::setShowAutoFillButton): Ditto.

* testing/Internals.h: Moved enum class types into class.

* testing/Internals.idl: Removed the &quot;Internals&quot; prefixes we added
to resolve ambiguity before. Nesting these in the class now takes care
of the ambiguity instead.

* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::responseText): Updated.
(WebCore::XMLHttpRequest::didCacheResponseJSON): Ditto.
(WebCore::XMLHttpRequest::responseXML): Ditto.
(WebCore::XMLHttpRequest::responseBlob): Ditto.
(WebCore::XMLHttpRequest::responseArrayBuffer): Ditto.
(WebCore::XMLHttpRequest::setResponseType): Ditto.
(WebCore::XMLHttpRequest::open): Ditto.
(WebCore::shouldDecodeResponse): Ditto.

* xml/XMLHttpRequest.h: Moved the enum class into the class.

Source/WebKit2:

* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResource): Updated since we changed
ReferrerHeaderPolicy back to ReferrerPolicy.
(WebKit::WebLoaderStrategy::schedulePluginStreamLoad): Ditto.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchOptionsh">trunk/Source/WebCore/Modules/fetch/FetchOptions.h</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchRequestcpp">trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchRequesth">trunk/Source/WebCore/Modules/fetch/FetchRequest.h</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchResponsecpp">trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchResponseh">trunk/Source/WebCore/Modules/fetch/FetchResponse.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediacontrolsMediaControlsHostcpp">trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediacontrolsMediaControlsHosth">trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasessionMediaSessioncpp">trunk/Source/WebCore/Modules/mediasession/MediaSession.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasessionMediaSessionh">trunk/Source/WebCore/Modules/mediasession/MediaSession.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceMediaSourcecpp">trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceMediaSourceh">trunk/Source/WebCore/Modules/mediasource/MediaSource.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceSourceBuffercpp">trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceSourceBufferh">trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaDeviceInfocpp">trunk/Source/WebCore/Modules/mediastream/MediaDeviceInfo.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaDeviceInfoh">trunk/Source/WebCore/Modules/mediastream/MediaDeviceInfo.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaDevicesRequestcpp">trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamTrackcpp">trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamTrackh">trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCConfigurationcpp">trunk/Source/WebCore/Modules/mediastream/RTCConfiguration.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCConfigurationh">trunk/Source/WebCore/Modules/mediastream/RTCConfiguration.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioContexth">trunk/Source/WebCore/Modules/webaudio/AudioContext.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWaveShaperNodecpp">trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWaveShaperNodeh">trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSXMLHttpRequestCustomcpp">trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestTestObjidl">trunk/Source/WebCore/bindings/scripts/test/TestObj.idl</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoKeycpp">trunk/Source/WebCore/crypto/CryptoKey.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoKeyh">trunk/Source/WebCore/crypto/CryptoKey.h</a></li>
<li><a href="#trunkSourceWebCorecssFontFacecpp">trunk/Source/WebCore/css/FontFace.cpp</a></li>
<li><a href="#trunkSourceWebCorecssFontFaceh">trunk/Source/WebCore/css/FontFace.h</a></li>
<li><a href="#trunkSourceWebCorecssFontFaceSetcpp">trunk/Source/WebCore/css/FontFaceSet.cpp</a></li>
<li><a href="#trunkSourceWebCorecssFontFaceSeth">trunk/Source/WebCore/css/FontFaceSet.h</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumenth">trunk/Source/WebCore/dom/Document.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTrackElementcpp">trunk/Source/WebCore/html/HTMLTrackElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementh">trunk/Source/WebCore/html/HTMLVideoElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementidl">trunk/Source/WebCore/html/HTMLVideoElement.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp">trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dh">trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlElementscpp">trunk/Source/WebCore/html/shadow/MediaControlElements.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackInbandTextTrackcpp">trunk/Source/WebCore/html/track/InbandTextTrack.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackInbandTextTrackh">trunk/Source/WebCore/html/track/InbandTextTrack.h</a></li>
<li><a href="#trunkSourceWebCorehtmltrackTextTrackcpp">trunk/Source/WebCore/html/track/TextTrack.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackTextTrackh">trunk/Source/WebCore/html/track/TextTrack.h</a></li>
<li><a href="#trunkSourceWebCorehtmltrackTextTrackCuecpp">trunk/Source/WebCore/html/track/TextTrackCue.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameNetworkingContexth">trunk/Source/WebCore/loader/FrameNetworkingContext.h</a></li>
<li><a href="#trunkSourceWebCorepageCaptionUserPreferencescpp">trunk/Source/WebCore/page/CaptionUserPreferences.cpp</a></li>
<li><a href="#trunkSourceWebCorepageCaptionUserPreferencesMediaAFcpp">trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp</a></li>
<li><a href="#trunkSourceWebCorepageSecurityPolicycpp">trunk/Source/WebCore/page/SecurityPolicy.cpp</a></li>
<li><a href="#trunkSourceWebCorepageSecurityPolicyh">trunk/Source/WebCore/page/SecurityPolicy.h</a></li>
<li><a href="#trunkSourceWebCoreplatformReferrerPolicyh">trunk/Source/WebCore/platform/ReferrerPolicy.h</a></li>
<li><a href="#trunkSourceWebCoreplatformcocoaWebPlaybackSessionModelMediaElementmm">trunk/Source/WebCore/platform/cocoa/WebPlaybackSessionModelMediaElement.mm</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsh">trunk/Source/WebCore/testing/Internals.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsidl">trunk/Source/WebCore/testing/Internals.idl</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequestcpp">trunk/Source/WebCore/xml/XMLHttpRequest.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequesth">trunk/Source/WebCore/xml/XMLHttpRequest.h</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessNetworkWebLoaderStrategycpp">trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/ChangeLog        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -1,3 +1,257 @@
</span><ins>+2016-05-02  Darin Adler  &lt;darin@apple.com&gt;
+
+        Change IDL enumerations to be nested in their C++ class instead of at WebCore namespace level
+        https://bugs.webkit.org/show_bug.cgi?id=157257
+
+        Reviewed by Chris Dumez.
+
+        Chris and Alex requested this alternate style, where the enum class for each enumeration
+        goes inside the class for the interface the enumeration is used in. Also made a rule that
+        keeps the names short and not redundant with the class name they are nested in.
+
+        * Modules/fetch/FetchOptions.h: Moved all the enum class types into the struct.
+
+        * Modules/fetch/FetchRequest.cpp:
+        (WebCore::setReferrerPolicy): Updated.
+        (WebCore::setMode): Ditto.
+        (WebCore::setCredentials): Ditto.
+        (WebCore::setCache): Ditto.
+        (WebCore::setRedirect): Ditto.
+        (WebCore::buildOptions): Ditto.
+        (WebCore::buildHeaders): Ditto.
+        (WebCore::FetchRequest::create): Ditto.
+        * Modules/fetch/FetchRequest.h: Used &quot;using&quot; to repeat the types from FetchOptions
+        here in FetchRequest. That way the generated bindings can find the types, and we don't
+        need to do any trick like [ImplementedAs] in thd IDL to make it work.
+
+        * Modules/fetch/FetchResponse.cpp:
+        (WebCore::FetchResponse::error): Updated.
+        (WebCore::FetchResponse::redirect): Ditto.
+        (WebCore::FetchResponse::FetchResponse): Ditto.
+        (WebCore::FetchResponse::startFetching): Ditto.
+        * Modules/fetch/FetchResponse.h: Moved enum class into the class.
+
+        * Modules/mediacontrols/MediaControlsHost.cpp:
+        (WebCore::MediaControlsHost::externalDeviceType): Updated.
+        * Modules/mediacontrols/MediaControlsHost.h: Moved enum classs into the class.
+
+        * Modules/mediasession/MediaSession.cpp:
+        (WebCore::MediaSession::MediaSession): Updated.
+        * Modules/mediasession/MediaSession.h: Moved enum classs into the class.
+
+        * Modules/mediasource/MediaSource.cpp:
+        (WebCore::MediaSource::addSourceBuffer): Updated.
+        (WebCore::MediaSource::removeSourceBuffer): Ditto.
+
+        * Modules/mediasource/MediaSource.h: Moved enum class into the class.
+
+        * Modules/mediasource/SourceBuffer.cpp:
+        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError): Updated.
+        (WebCore::SourceBuffer::appendError): Ditto.
+        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
+        (WebCore::SourceBuffer::textTrackModeChanged): Ditto.
+
+        * Modules/mediasource/SourceBuffer.h: Removed incorrect forward declaration
+        of EndOfStreamError that also now seems to be unneeded. Moved enum class into
+        the class.
+
+        * Modules/mediastream/MediaDeviceInfo.cpp:
+        (WebCore::MediaDeviceInfo::MediaDeviceInfo): Updated.
+        (WebCore::MediaDeviceInfo::create): Ditto.
+        * Modules/mediastream/MediaDeviceInfo.h: Moved enum class into the class.
+
+        * Modules/mediastream/MediaDevicesRequest.cpp:
+        (WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest): Updated.
+        * Modules/mediastream/MediaStreamTrack.cpp:
+        (WebCore::MediaStreamTrack::readyState): Updated.
+
+        * Modules/mediastream/MediaStreamTrack.h: Moved enum class into the class.
+
+        * Modules/mediastream/RTCConfiguration.h: Moved enum classes into the class.
+
+        * Modules/webaudio/AudioContext.h: Moved enum class into the class.
+
+        * Modules/webaudio/WaveShaperNode.cpp:
+        (WebCore::processorType): Updated.
+        (WebCore::WaveShaperNode::oversample): Ditto.
+        * Modules/webaudio/WaveShaperNode.h: Moved enum class into the class.
+
+        * bindings/js/JSXMLHttpRequestCustom.cpp:
+        (WebCore::JSXMLHttpRequest::response): Updated.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateGetOwnPropertySlotBody): Removed unneeded $interfaceName argument.
+        (GetAttributeGetterName): Ditto.
+        (GetAttributeSetterName): Ditto.
+        (GetFunctionName): Tweaked style.
+        (AttributeShouldBeOnInstanceForCompatibility): Deleted. Was a function that
+        always returned 0.
+        (AttributeShouldBeOnInstance): Removed the call to the function above.
+        (IsClassNameWordBoundary): Added. Helper for function below.
+        (IsPrefixRemovable): Ditto.
+        (GetEnumerationClassName): Added an $interface argument and changed this
+        so it creates a nested name inside the class rather than a top level name
+        for use at the WebCore namespace level.
+        (GetEnumerationClassIdentifier): Added. Calls GetEnumerationClassName and
+        makes a flattened name without &quot;::&quot; that can be used in an identifier.
+        (GenerateEnumerationImplementationContent): Renamed from GetXXX. Added an
+        $interface argument, so it can pass that along to the functions above.
+        (GenerateHeader): Updated to not pass $interfaceName.
+        (GeneratePropertiesHashTable): Ditto.
+        (GenerateOverloadedFunction): Removed unneeded $interfaceName argument.
+        (GenerateImplementation): Updated for changes above. Tweaked formatting.
+        (GenerateFunctionCastedThis): Removed unneeded $interfaceName argument.
+        (GenerateParametersCheck): Ditto. Also streamlined implementation a bit
+        and made the IsEnumType section call the new functions.
+        (GenerateCallbackImplementation): Ditto.
+        (JSValueToNative): Added an $interface argument and pass it along when
+        dealing with enumerations.
+        (GeneratePrototypeDeclaration): Removed unneeded $interfaceName argument.
+        (GenerateConstructorDeclaration): Ditto.
+        (GenerateConstructorDefinitions): Ditto.
+        (GenerateConstructorDefinition): Ditto.
+        (GenerateConstructorHelperMethods): Ditto.
+
+        * bindings/scripts/test/JS/JSTestObj.cpp: Regenerated.
+
+        * bindings/scripts/test/TestObj.idl: Added some new enums that test some
+        of the logic above.
+
+        * crypto/CryptoKey.cpp:
+        (WebCore::CryptoKey::CryptoKey): Updated.
+        (WebCore::CryptoKey::usages): Ditto.
+        * crypto/CryptoKey.h: Moved enum class types inside the CryptoKey class.
+        Added comments about the two similar but distinct types named
+        CryptoKeyUsage and CryptoKey::Usage.
+
+        * css/FontFace.cpp:
+        (WebCore::FontFace::status): Updated.
+        * css/FontFace.h: Moved enum class into the class.
+
+        * css/FontFaceSet.cpp:
+        (WebCore::FontFaceSet::status): Updated.
+        * css/FontFaceSet.h: Moved enum class into the class.
+
+        * dom/Document.cpp:
+        (WebCore::Document::Document): Updated for the name change back from
+        ReferrerHeaderPolicy to ReferrerPolicy.
+        (WebCore::Document::processReferrerPolicy): Ditto.
+        (WebCore::Document::applyContentDispositionAttachmentSandbox): Ditto.
+        * dom/Document.h: More of the same.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::loadInternal): Updated.
+        (WebCore::HTMLMediaElement::textTrackModeChanged): Ditto.
+        (WebCore::HTMLMediaElement::textTrackKindChanged): Ditto.
+        (WebCore::HTMLMediaElement::textTrackAddCues): Ditto.
+        (WebCore::HTMLMediaElement::textTrackAddCue): Ditto.
+        (WebCore::HTMLMediaElement::addTextTrack): Ditto.
+        (WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
+        (WebCore::HTMLMediaElement::setSelectedTextTrack): Ditto.
+        (WebCore::HTMLMediaElement::configureTextTracks): Ditto.
+        (WebCore::HTMLMediaElement::hasClosedCaptions): Ditto.
+        (WebCore::HTMLMediaElement::configureTextTrackDisplay): Ditto.
+        (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
+        (WebCore::toPlatform): Ditto.
+        (WebCore::HTMLMediaElement::outOfBandTrackSources): Ditto.
+        * html/HTMLTrackElement.cpp:
+        (WebCore::HTMLTrackElement::scheduleLoad): Ditto.
+
+        * html/HTMLVideoElement.h: Moved enum class into class.
+
+        * html/HTMLVideoElement.idl: Added the missing conditional on
+        VideoPresentationMode, and also moved it to the bottom of the file
+        to work around what is apparently a bug in the IDL parser.
+
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::toWindRule): Updated.
+        (WebCore::CanvasRenderingContext2D::fill): Ditto.
+        (WebCore::CanvasRenderingContext2D::clip): Ditto.
+        (WebCore::CanvasRenderingContext2D::fillInternal): Ditto.
+        (WebCore::CanvasRenderingContext2D::clipInternal): Ditto.
+        (WebCore::CanvasRenderingContext2D::isPointInPath): Ditto.
+        (WebCore::CanvasRenderingContext2D::isPointInPathInternal): Ditto.
+        (WebCore::smoothingToInterpolationQuality): Ditto.
+
+        * html/canvas/CanvasRenderingContext2D.h: Moved enum class types into the class.
+
+        * html/shadow/MediaControlElements.cpp:
+        (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Updated.
+        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Ditto.
+
+        * html/track/InbandTextTrack.cpp:
+        (WebCore::InbandTextTrack::setMode): Updated.
+        (WebCore::toPrivate): Ditto.
+        (WebCore::InbandTextTrack::setModeInternal): Ditto.
+        (WebCore::InbandTextTrack::updateKindFromPrivate): Ditto.
+        * html/track/InbandTextTrack.h: Ditto.
+        * html/track/TextTrack.cpp:
+        (WebCore::TextTrack::TextTrack): Ditto.
+        (WebCore::TextTrack::enabled): Ditto.
+        (WebCore::TextTrack::kindKeyword): Ditto.
+        (WebCore::TextTrack::setKind): Ditto.
+        (WebCore::TextTrack::setKindKeywordIgnoringASCIICase): Ditto.
+        (WebCore::TextTrack::setMode): Ditto.
+        (WebCore::TextTrack::cues): Ditto.
+        (WebCore::TextTrack::activeCues): Ditto.
+        (WebCore::TextTrack::addCue): Ditto.
+        (WebCore::TextTrack::regions): Ditto.
+        (WebCore::TextTrack::isRendered): Ditto.
+        (WebCore::TextTrack::isMainProgramContent): Ditto.
+        (WebCore::TextTrack::containsOnlyForcedSubtitles): Ditto.
+
+        * html/track/TextTrack.h: Moved enum class types into the class.
+
+        * html/track/TextTrackCue.cpp:
+        (WebCore::TextTrackCue::dispatchEvent): Updated.
+        (WebCore::TextTrackCue::isActive): Ditto.
+        * loader/FrameNetworkingContext.h: Ditto.
+        * page/CaptionUserPreferences.cpp:
+        (WebCore::CaptionUserPreferences::sortedTrackListForMenu): Ditto.
+        (WebCore::CaptionUserPreferences::textTrackSelectionScore): Ditto.
+        * page/CaptionUserPreferencesMediaAF.cpp:
+        (WebCore::CaptionUserPreferencesMediaAF::textTrackSelectionScore): Ditto.
+        (WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu): Ditto.
+
+        * page/SecurityPolicy.cpp:
+        (WebCore::SecurityPolicy::generateReferrerHeader): Updated since we
+        changed ReferrerHeaderPolicy back to ReferrerPolicy.
+        * page/SecurityPolicy.h: Ditto.
+
+        * platform/ReferrerPolicy.h: Changed ReferrerHeaderPolicy name back
+        to ReferrerPolicy now that nesting inside a class eliminated the conflict;
+        still should merge them and that FIXME remains.
+
+        * platform/cocoa/WebPlaybackSessionModelMediaElement.mm:
+        (WebPlaybackSessionModelMediaElement::updateForEventName): Updated.
+        (WebPlaybackSessionModelMediaElement::updateLegibleOptions): Ditto.
+
+        * testing/Internals.cpp:
+        (WebCore::toResourceRequestCachePolicy): Updated.
+        (WebCore::Internals::setOverrideCachePolicy): Ditto.
+        (WebCore::toResourceLoadPriority): Ditto.
+        (WebCore::Internals::setOverrideResourceLoadPriority): Ditto.
+        (WebCore::toAutoFillButtonType): Ditto.
+        (WebCore::Internals::setShowAutoFillButton): Ditto.
+
+        * testing/Internals.h: Moved enum class types into class.
+
+        * testing/Internals.idl: Removed the &quot;Internals&quot; prefixes we added
+        to resolve ambiguity before. Nesting these in the class now takes care
+        of the ambiguity instead.
+
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::responseText): Updated.
+        (WebCore::XMLHttpRequest::didCacheResponseJSON): Ditto.
+        (WebCore::XMLHttpRequest::responseXML): Ditto.
+        (WebCore::XMLHttpRequest::responseBlob): Ditto.
+        (WebCore::XMLHttpRequest::responseArrayBuffer): Ditto.
+        (WebCore::XMLHttpRequest::setResponseType): Ditto.
+        (WebCore::XMLHttpRequest::open): Ditto.
+        (WebCore::shouldDecodeResponse): Ditto.
+
+        * xml/XMLHttpRequest.h: Moved the enum class into the class.
+
</ins><span class="cx"> 2016-05-02  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Don't run transitions to/from 'auto' values
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchOptionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchOptions.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchOptions.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/fetch/FetchOptions.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -32,21 +32,26 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-enum class ReferrerPolicy { EmptyString, NoReferrer, NoReferrerWhenDowngrade, OriginOnly, OriginWhenCrossOrigin, UnsafeUrl };
-enum class RequestCache { Default, NoStore, Reload, NoCache, ForceCache };
-enum class RequestCredentials { Omit, SameOrigin, Include };
-enum class RequestDestination { EmptyString, Document, Sharedworker, Subresource, Unknown, Worker };
-enum class RequestMode { Navigate, SameOrigin, NoCors, Cors };
-enum class RequestRedirect { Follow, Error, Manual };
-enum class RequestType { EmptyString, Audio, Font, Image, Script, Style, Track, Video };
</del><ins>+struct FetchOptions {
+    enum class Type { EmptyString, Audio, Font, Image, Script, Style, Track, Video };
+    Type type { Type::EmptyString };
</ins><span class="cx"> 
</span><del>-struct FetchOptions {
-    RequestType type { RequestType::EmptyString };
-    RequestDestination destination { RequestDestination::EmptyString };
-    RequestMode mode { RequestMode::NoCors };
-    RequestCredentials credentials { RequestCredentials::Omit };
-    RequestCache cache { RequestCache::Default };
-    RequestRedirect redirect { RequestRedirect::Follow };
</del><ins>+    enum class Destination { EmptyString, Document, Sharedworker, Subresource, Unknown, Worker };
+    Destination destination { Destination::EmptyString };
+
+    enum class Mode { Navigate, SameOrigin, NoCors, Cors };
+    Mode mode { Mode::NoCors };
+
+    enum class Credentials { Omit, SameOrigin, Include };
+    Credentials credentials { Credentials::Omit };
+
+    enum class Cache { Default, NoStore, Reload, NoCache, ForceCache };
+    Cache cache { Cache::Default };
+
+    enum class Redirect { Follow, Error, Manual };
+    Redirect redirect { Redirect::Follow };
+
+    enum class ReferrerPolicy { EmptyString, NoReferrer, NoReferrerWhenDowngrade, OriginOnly, OriginWhenCrossOrigin, UnsafeUrl };
</ins><span class="cx">     ReferrerPolicy referrerPolicy { ReferrerPolicy::EmptyString };
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -42,17 +42,17 @@
</span><span class="cx"> static bool setReferrerPolicy(FetchOptions&amp; options, const String&amp; referrerPolicy)
</span><span class="cx"> {
</span><span class="cx">     if (referrerPolicy.isEmpty())
</span><del>-        options.referrerPolicy = ReferrerPolicy::EmptyString;
</del><ins>+        options.referrerPolicy = FetchOptions::ReferrerPolicy::EmptyString;
</ins><span class="cx">     else if (referrerPolicy == &quot;no-referrer&quot;)
</span><del>-        options.referrerPolicy = ReferrerPolicy::NoReferrer;
</del><ins>+        options.referrerPolicy = FetchOptions::ReferrerPolicy::NoReferrer;
</ins><span class="cx">     else if (referrerPolicy == &quot;no-referrer-when-downgrade&quot;)
</span><del>-        options.referrerPolicy = ReferrerPolicy::NoReferrerWhenDowngrade;
</del><ins>+        options.referrerPolicy = FetchOptions::ReferrerPolicy::NoReferrerWhenDowngrade;
</ins><span class="cx">     else if (referrerPolicy == &quot;origin-only&quot;)
</span><del>-        options.referrerPolicy = ReferrerPolicy::OriginOnly;
</del><ins>+        options.referrerPolicy = FetchOptions::ReferrerPolicy::OriginOnly;
</ins><span class="cx">     else if (referrerPolicy == &quot;origin-when-cross-origin&quot;)
</span><del>-        options.referrerPolicy = ReferrerPolicy::OriginWhenCrossOrigin;
</del><ins>+        options.referrerPolicy = FetchOptions::ReferrerPolicy::OriginWhenCrossOrigin;
</ins><span class="cx">     else if (referrerPolicy == &quot;unsafe-url&quot;)
</span><del>-        options.referrerPolicy = ReferrerPolicy::UnsafeUrl;
</del><ins>+        options.referrerPolicy = FetchOptions::ReferrerPolicy::UnsafeUrl;
</ins><span class="cx">     else
</span><span class="cx">         return false;
</span><span class="cx">     return true;
</span><span class="lines">@@ -61,13 +61,13 @@
</span><span class="cx"> static bool setMode(FetchOptions&amp; options, const String&amp; mode)
</span><span class="cx"> {
</span><span class="cx">     if (mode == &quot;navigate&quot;)
</span><del>-        options.mode = RequestMode::Navigate;
</del><ins>+        options.mode = FetchOptions::Mode::Navigate;
</ins><span class="cx">     else if (mode == &quot;same-origin&quot;)
</span><del>-        options.mode = RequestMode::SameOrigin;
</del><ins>+        options.mode = FetchOptions::Mode::SameOrigin;
</ins><span class="cx">     else if (mode == &quot;no-cors&quot;)
</span><del>-        options.mode = RequestMode::NoCors;
</del><ins>+        options.mode = FetchOptions::Mode::NoCors;
</ins><span class="cx">     else if (mode == &quot;cors&quot;)
</span><del>-        options.mode = RequestMode::Cors;
</del><ins>+        options.mode = FetchOptions::Mode::Cors;
</ins><span class="cx">     else
</span><span class="cx">         return false;
</span><span class="cx">     return true;
</span><span class="lines">@@ -76,11 +76,11 @@
</span><span class="cx"> static bool setCredentials(FetchOptions&amp; options, const String&amp; credentials)
</span><span class="cx"> {
</span><span class="cx">     if (credentials == &quot;omit&quot;)
</span><del>-        options.credentials = RequestCredentials::Omit;
</del><ins>+        options.credentials = FetchOptions::Credentials::Omit;
</ins><span class="cx">     else if (credentials == &quot;same-origin&quot;)
</span><del>-        options.credentials = RequestCredentials::SameOrigin;
</del><ins>+        options.credentials = FetchOptions::Credentials::SameOrigin;
</ins><span class="cx">     else if (credentials == &quot;include&quot;)
</span><del>-        options.credentials = RequestCredentials::Include;
</del><ins>+        options.credentials = FetchOptions::Credentials::Include;
</ins><span class="cx">     else
</span><span class="cx">         return false;
</span><span class="cx">     return true;
</span><span class="lines">@@ -89,15 +89,15 @@
</span><span class="cx"> static bool setCache(FetchOptions&amp; options, const String&amp; cache)
</span><span class="cx"> {
</span><span class="cx">     if (cache == &quot;default&quot;)
</span><del>-        options.cache = RequestCache::Default;
</del><ins>+        options.cache = FetchOptions::Cache::Default;
</ins><span class="cx">     else if (cache == &quot;no-store&quot;)
</span><del>-        options.cache = RequestCache::NoStore;
</del><ins>+        options.cache = FetchOptions::Cache::NoStore;
</ins><span class="cx">     else if (cache == &quot;reload&quot;)
</span><del>-        options.cache = RequestCache::Reload;
</del><ins>+        options.cache = FetchOptions::Cache::Reload;
</ins><span class="cx">     else if (cache == &quot;no-cache&quot;)
</span><del>-        options.cache = RequestCache::NoCache;
</del><ins>+        options.cache = FetchOptions::Cache::NoCache;
</ins><span class="cx">     else if (cache == &quot;force-cache&quot;)
</span><del>-        options.cache = RequestCache::ForceCache;
</del><ins>+        options.cache = FetchOptions::Cache::ForceCache;
</ins><span class="cx">     else
</span><span class="cx">         return false;
</span><span class="cx">     return true;
</span><span class="lines">@@ -106,11 +106,11 @@
</span><span class="cx"> static bool setRedirect(FetchOptions&amp; options, const String&amp; redirect)
</span><span class="cx"> {
</span><span class="cx">     if (redirect == &quot;follow&quot;)
</span><del>-        options.redirect = RequestRedirect::Follow;
</del><ins>+        options.redirect = FetchOptions::Redirect::Follow;
</ins><span class="cx">     else if (redirect == &quot;error&quot;)
</span><del>-        options.redirect = RequestRedirect::Error;
</del><ins>+        options.redirect = FetchOptions::Redirect::Error;
</ins><span class="cx">     else if (redirect == &quot;manual&quot;)
</span><del>-        options.redirect = RequestRedirect::Manual;
</del><ins>+        options.redirect = FetchOptions::Redirect::Manual;
</ins><span class="cx">     else
</span><span class="cx">         return false;
</span><span class="cx">     return true;
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (init.get(&quot;mode&quot;, value) &amp;&amp; !setMode(request.options, value))
</span><span class="cx">         return false;
</span><del>-    if (request.options.mode == RequestMode::Navigate)
</del><ins>+    if (request.options.mode == FetchOptions::Mode::Navigate)
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     if (init.get(&quot;credentials&quot;, value) &amp;&amp; !setCredentials(request.options, value))
</span><span class="lines">@@ -196,7 +196,7 @@
</span><span class="cx"> static RefPtr&lt;FetchHeaders&gt; buildHeaders(const Dictionary&amp; init, const FetchRequest::InternalRequest&amp; request, const FetchHeaders* inputHeaders = nullptr)
</span><span class="cx"> {
</span><span class="cx">     FetchHeaders::Guard guard = FetchHeaders::Guard::Request;
</span><del>-    if (request.options.mode == RequestMode::NoCors) {
</del><ins>+    if (request.options.mode == FetchOptions::Mode::NoCors) {
</ins><span class="cx">         const String&amp; method = request.request.httpMethod();
</span><span class="cx">         if (method != &quot;GET&quot; &amp;&amp; method != &quot;POST&quot; &amp;&amp; method != &quot;HEAD&quot;)
</span><span class="cx">             return nullptr;
</span><span class="lines">@@ -244,8 +244,8 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     FetchRequest::InternalRequest internalRequest;
</span><del>-    internalRequest.options.mode = RequestMode::Cors;
-    internalRequest.options.credentials = RequestCredentials::Omit;
</del><ins>+    internalRequest.options.mode = Mode::Cors;
+    internalRequest.options.credentials = Credentials::Omit;
</ins><span class="cx">     internalRequest.referrer = ASCIILiteral(&quot;client&quot;);
</span><span class="cx">     internalRequest.request.setURL(requestURL);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchRequest.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchRequest.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/fetch/FetchRequest.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -52,14 +52,29 @@
</span><span class="cx">     const String&amp; url() const { return m_internalRequest.request.url().string(); }
</span><span class="cx">     FetchHeaders&amp; headers() { return m_headers.get(); }
</span><span class="cx"> 
</span><del>-    RequestType type() const;
-    RequestDestination destination() const;
</del><ins>+    using Type = FetchOptions::Type;
+    Type type() const;
+
+    using Destination = FetchOptions::Destination;
+    Destination destination() const;
+
</ins><span class="cx">     String referrer() const;
</span><ins>+
+    using ReferrerPolicy = FetchOptions::ReferrerPolicy;
</ins><span class="cx">     ReferrerPolicy referrerPolicy() const;
</span><del>-    RequestMode mode() const;
-    RequestCredentials credentials() const;
-    RequestCache cache() const;
-    RequestRedirect redirect() const;
</del><ins>+
+    using Mode = FetchOptions::Mode;
+    Mode mode() const;
+
+    using Credentials = FetchOptions::Credentials;
+    Credentials credentials() const;
+
+    using Cache = FetchOptions::Cache;
+    Cache cache() const;
+
+    using Redirect = FetchOptions::Redirect;
+    Redirect redirect() const;
+
</ins><span class="cx">     const String&amp; integrity() const { return m_internalRequest.integrity; }
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;FetchRequest&gt; clone(ScriptExecutionContext&amp;, ExceptionCode&amp;);
</span><span class="lines">@@ -92,37 +107,37 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline RequestCache FetchRequest::cache() const
</del><ins>+inline auto FetchRequest::cache() const -&gt; Cache
</ins><span class="cx"> {
</span><span class="cx">     return m_internalRequest.options.cache;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline RequestCredentials FetchRequest::credentials() const
</del><ins>+inline auto FetchRequest::credentials() const -&gt; Credentials
</ins><span class="cx"> {
</span><span class="cx">     return m_internalRequest.options.credentials;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline RequestDestination FetchRequest::destination() const
</del><ins>+inline auto FetchRequest::destination() const -&gt; Destination
</ins><span class="cx"> {
</span><span class="cx">     return m_internalRequest.options.destination;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline RequestMode FetchRequest::mode() const
</del><ins>+inline auto FetchRequest::mode() const -&gt; Mode
</ins><span class="cx"> {
</span><span class="cx">     return m_internalRequest.options.mode;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline RequestRedirect FetchRequest::redirect() const
</del><ins>+inline auto FetchRequest::redirect() const -&gt; Redirect
</ins><span class="cx"> {
</span><span class="cx">     return m_internalRequest.options.redirect;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline ReferrerPolicy FetchRequest::referrerPolicy() const
</del><ins>+inline auto FetchRequest::referrerPolicy() const -&gt; ReferrerPolicy
</ins><span class="cx"> {
</span><span class="cx">     return m_internalRequest.options.referrerPolicy;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline RequestType FetchRequest::type() const
</del><ins>+inline auto FetchRequest::type() const -&gt; Type
</ins><span class="cx"> {
</span><span class="cx">     return m_internalRequest.options.type;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchResponsecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;FetchResponse&gt; FetchResponse::error(ScriptExecutionContext&amp; context)
</span><span class="cx"> {
</span><del>-    return adoptRef(*new FetchResponse(context, ResponseType::Error, { }, FetchHeaders::create(FetchHeaders::Guard::Immutable), { }));
</del><ins>+    return adoptRef(*new FetchResponse(context, Type::Error, { }, FetchHeaders::create(FetchHeaders::Guard::Immutable), { }));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;FetchResponse&gt; FetchResponse::redirect(ScriptExecutionContext&amp; context, const String&amp; url, int status, ExceptionCode&amp; ec)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">         ec = TypeError;
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><del>-    auto redirectResponse = adoptRef(*new FetchResponse(context, ResponseType::Default, { }, FetchHeaders::create(FetchHeaders::Guard::Immutable), { }));
</del><ins>+    auto redirectResponse = adoptRef(*new FetchResponse(context, Type::Default, { }, FetchHeaders::create(FetchHeaders::Guard::Immutable), { }));
</ins><span class="cx">     redirectResponse-&gt;m_response.setHTTPStatusCode(status);
</span><span class="cx">     redirectResponse-&gt;m_headers-&gt;fastSet(HTTPHeaderName::Location, requestURL.string());
</span><span class="cx">     return WTFMove(redirectResponse);
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-FetchResponse::FetchResponse(ScriptExecutionContext&amp; context, ResponseType type, FetchBody&amp;&amp; body, Ref&lt;FetchHeaders&gt;&amp;&amp; headers, ResourceResponse&amp;&amp; response)
</del><ins>+FetchResponse::FetchResponse(ScriptExecutionContext&amp; context, Type type, FetchBody&amp;&amp; body, Ref&lt;FetchHeaders&gt;&amp;&amp; headers, ResourceResponse&amp;&amp; response)
</ins><span class="cx">     : FetchBodyOwner(context, WTFMove(body))
</span><span class="cx">     , m_type(type)
</span><span class="cx">     , m_response(WTFMove(response))
</span><span class="lines">@@ -130,7 +130,7 @@
</span><span class="cx"> 
</span><span class="cx"> void FetchResponse::startFetching(ScriptExecutionContext&amp; context, const FetchRequest&amp; request, FetchPromise&amp;&amp; promise)
</span><span class="cx"> {
</span><del>-    auto response = adoptRef(*new FetchResponse(context, ResponseType::Basic, FetchBody::loadingBody(), FetchHeaders::create(FetchHeaders::Guard::Immutable), ResourceResponse()));
</del><ins>+    auto response = adoptRef(*new FetchResponse(context, Type::Basic, FetchBody::loadingBody(), FetchHeaders::create(FetchHeaders::Guard::Immutable), ResourceResponse()));
</ins><span class="cx"> 
</span><span class="cx">     // Setting pending activity until BodyLoader didFail or didSucceed callback is called.
</span><span class="cx">     response-&gt;setPendingActivity(response.ptr());
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchResponseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchResponse.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchResponse.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/fetch/FetchResponse.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -46,11 +46,11 @@
</span><span class="cx"> 
</span><span class="cx"> typedef int ExceptionCode;
</span><span class="cx"> 
</span><del>-enum class ResponseType { Basic, Cors, Default, Error, Opaque, Opaqueredirect };
-
</del><span class="cx"> class FetchResponse final : public FetchBodyOwner {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;FetchResponse&gt; create(ScriptExecutionContext&amp; context) { return adoptRef(*new FetchResponse(context, ResponseType::Default, { }, FetchHeaders::create(FetchHeaders::Guard::Response), ResourceResponse())); }
</del><ins>+    enum class Type { Basic, Cors, Default, Error, Opaque, Opaqueredirect };
+
+    static Ref&lt;FetchResponse&gt; create(ScriptExecutionContext&amp; context) { return adoptRef(*new FetchResponse(context, Type::Default, { }, FetchHeaders::create(FetchHeaders::Guard::Response), ResourceResponse())); }
</ins><span class="cx">     static Ref&lt;FetchResponse&gt; error(ScriptExecutionContext&amp;);
</span><span class="cx">     static RefPtr&lt;FetchResponse&gt; redirect(ScriptExecutionContext&amp;, const String&amp;, int, ExceptionCode&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx"> 
</span><span class="cx">     void initializeWith(const Dictionary&amp;, ExceptionCode&amp;);
</span><span class="cx"> 
</span><del>-    ResponseType type() const;
</del><ins>+    Type type() const;
</ins><span class="cx">     const String&amp; url() const { return m_response.url().string(); }
</span><span class="cx">     bool redirected() const { return m_isRedirected; }
</span><span class="cx">     int status() const { return m_response.httpStatusCode(); }
</span><span class="lines">@@ -76,7 +76,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    FetchResponse(ScriptExecutionContext&amp;, ResponseType, FetchBody&amp;&amp;, Ref&lt;FetchHeaders&gt;&amp;&amp;, ResourceResponse&amp;&amp;);
</del><ins>+    FetchResponse(ScriptExecutionContext&amp;, Type, FetchBody&amp;&amp;, Ref&lt;FetchHeaders&gt;&amp;&amp;, ResourceResponse&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     static void startFetching(ScriptExecutionContext&amp;, const FetchRequest&amp;, FetchPromise&amp;&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -109,14 +109,14 @@
</span><span class="cx">         std::unique_ptr&lt;FetchLoader&gt; m_loader;
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    ResponseType m_type;
</del><ins>+    Type m_type;
</ins><span class="cx">     ResourceResponse m_response;
</span><span class="cx">     Ref&lt;FetchHeaders&gt; m_headers;
</span><span class="cx">     bool m_isRedirected = false;
</span><span class="cx">     Optional&lt;BodyLoader&gt; m_bodyLoader;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-inline ResponseType FetchResponse::type() const
</del><ins>+inline auto FetchResponse::type() const -&gt; Type
</ins><span class="cx"> {
</span><span class="cx">     return m_type;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediacontrolsMediaControlsHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -233,7 +233,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-DeviceType MediaControlsHost::externalDeviceType() const
</del><ins>+auto MediaControlsHost::externalDeviceType() const -&gt; DeviceType
</ins><span class="cx"> {
</span><span class="cx"> #if !ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><span class="cx">     return DeviceType::None;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediacontrolsMediaControlsHosth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -42,8 +42,6 @@
</span><span class="cx"> class TextTrack;
</span><span class="cx"> class TextTrackList;
</span><span class="cx"> 
</span><del>-enum class DeviceType { None, Airplay, Tvout };
-
</del><span class="cx"> class MediaControlsHost : public RefCounted&lt;MediaControlsHost&gt; {
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;MediaControlsHost&gt; create(HTMLMediaElement*);
</span><span class="lines">@@ -73,6 +71,8 @@
</span><span class="cx">     void exitedFullscreen();
</span><span class="cx"> 
</span><span class="cx">     String externalDeviceDisplayName() const;
</span><ins>+
+    enum class DeviceType { None, Airplay, Tvout };
</ins><span class="cx">     DeviceType externalDeviceType() const;
</span><span class="cx"> 
</span><span class="cx">     bool controlsDependOnPageScaleFactor() const;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasessionMediaSessioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasession/MediaSession.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasession/MediaSession.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediasession/MediaSession.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-MediaSession::MediaSession(ScriptExecutionContext&amp; context, MediaSessionKind kind)
</del><ins>+MediaSession::MediaSession(ScriptExecutionContext&amp; context, Kind kind)
</ins><span class="cx">     : m_document(downcast&lt;Document&gt;(context))
</span><span class="cx">     , m_kind(kind)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasessionMediaSessionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasession/MediaSession.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasession/MediaSession.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediasession/MediaSession.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -36,20 +36,19 @@
</span><span class="cx"> class Document;
</span><span class="cx"> class HTMLMediaElement;
</span><span class="cx"> 
</span><del>-enum class MediaSessionKind { Content, Transient, TransientSolo, Ambient };
-
</del><span class="cx"> class MediaSession final : public RefCounted&lt;MediaSession&gt; {
</span><span class="cx"> public:
</span><ins>+    enum class Kind { Content, Transient, TransientSolo, Ambient };
</ins><span class="cx">     enum class State { Idle, Active, Interrupted };
</span><span class="cx"> 
</span><del>-    static Ref&lt;MediaSession&gt; create(ScriptExecutionContext&amp; context, MediaSessionKind kind)
</del><ins>+    static Ref&lt;MediaSession&gt; create(ScriptExecutionContext&amp; context, Kind kind)
</ins><span class="cx">     {
</span><span class="cx">         return adoptRef(*new MediaSession(context, kind));
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ~MediaSession();
</span><span class="cx"> 
</span><del>-    MediaSessionKind kind() const { return m_kind; }
</del><ins>+    Kind kind() const { return m_kind; }
</ins><span class="cx">     MediaRemoteControls* controls();
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT State currentState() const { return m_currentState; }
</span><span class="lines">@@ -95,7 +94,7 @@
</span><span class="cx">     HashSet&lt;HTMLMediaElement*&gt;* m_iteratedActiveParticipatingElements { nullptr };
</span><span class="cx"> 
</span><span class="cx">     Document&amp; m_document;
</span><del>-    const MediaSessionKind m_kind;
</del><ins>+    const Kind m_kind;
</ins><span class="cx">     RefPtr&lt;MediaRemoteControls&gt; m_controls;
</span><span class="cx">     MediaSessionMetadata m_metadata;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceMediaSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -545,7 +545,7 @@
</span><span class="cx">     // â†³ Set the mode attribute on the new object to &quot;sequence&quot;.
</span><span class="cx">     // Otherwise:
</span><span class="cx">     // â†³ Set the mode attribute on the new object to &quot;segments&quot;.
</span><del>-    buffer-&gt;setMode(shouldGenerateTimestamps ? AppendMode::Sequence : AppendMode::Segments, IGNORE_EXCEPTION);
</del><ins>+    buffer-&gt;setMode(shouldGenerateTimestamps ? SourceBuffer::AppendMode::Sequence : SourceBuffer::AppendMode::Segments, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     SourceBuffer* result = buffer.ptr();
</span><span class="cx"> 
</span><span class="lines">@@ -671,7 +671,7 @@
</span><span class="cx"> 
</span><span class="cx">             // 9.3.2 If the mode attribute on the TextTrack object is set to &quot;showing&quot; or &quot;hidden&quot;, then
</span><span class="cx">             // set the removed enabled text track flag to true.
</span><del>-            if (track-&gt;mode() == TextTrackMode::Showing || track-&gt;mode() == TextTrackMode::Hidden)
</del><ins>+            if (track-&gt;mode() == TextTrack::Mode::Showing || track-&gt;mode() == TextTrack::Mode::Hidden)
</ins><span class="cx">                 removedEnabledTextTrack = true;
</span><span class="cx"> 
</span><span class="cx">             // 9.3.3 Remove the TextTrack object from the HTMLMediaElement textTracks list.
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceMediaSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/MediaSource.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -48,8 +48,6 @@
</span><span class="cx"> 
</span><span class="cx"> class GenericEventQueue;
</span><span class="cx"> 
</span><del>-enum class EndOfStreamError { Network, Decode };
-
</del><span class="cx"> class MediaSource : public MediaSourcePrivateClient, public ActiveDOMObject, public EventTargetWithInlineData, public URLRegistrable {
</span><span class="cx"> public:
</span><span class="cx">     static void setRegistry(URLRegistry*);
</span><span class="lines">@@ -69,6 +67,8 @@
</span><span class="cx">     bool isClosed() const;
</span><span class="cx">     bool isEnded() const;
</span><span class="cx">     void sourceBufferDidChangeActiveState(SourceBuffer&amp;, bool);
</span><ins>+
+    enum class EndOfStreamError { Network, Decode };
</ins><span class="cx">     void streamEndedWithError(Optional&lt;EndOfStreamError&gt;);
</span><span class="cx"> 
</span><span class="cx">     // MediaSourcePrivateClient
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceSourceBuffercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -643,7 +643,7 @@
</span><span class="cx">     LOG(MediaSource, &quot;SourceBuffer::sourceBufferPrivateDidReceiveRenderingError(%p) - result = %i&quot;, this, error);
</span><span class="cx"> 
</span><span class="cx">     if (!isRemoved())
</span><del>-        m_source-&gt;streamEndedWithError(EndOfStreamError::Decode);
</del><ins>+        m_source-&gt;streamEndedWithError(MediaSource::EndOfStreamError::Decode);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool decodeTimeComparator(const PresentationOrderSampleMap::MapType::value_type&amp; a, const PresentationOrderSampleMap::MapType::value_type&amp; b)
</span><span class="lines">@@ -1270,7 +1270,7 @@
</span><span class="cx"> 
</span><span class="cx">     // 5. If decode error is true, then run the end of stream algorithm with the error parameter set to &quot;decode&quot;.
</span><span class="cx">     if (decodeErrorParam)
</span><del>-        m_source-&gt;streamEndedWithError(EndOfStreamError::Decode);
</del><ins>+        m_source-&gt;streamEndedWithError(MediaSource::EndOfStreamError::Decode);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SourceBuffer::sourceBufferPrivateDidReceiveSample(SourceBufferPrivate*, PassRefPtr&lt;MediaSample&gt; prpSample)
</span><span class="lines">@@ -1421,7 +1421,7 @@
</span><span class="cx">         MediaTime presentationStartTime = MediaTime::zeroTime();
</span><span class="cx">         if (presentationTimestamp &lt; presentationStartTime) {
</span><span class="cx">             LOG(MediaSource, &quot;SourceBuffer::sourceBufferPrivateDidReceiveSample(%p) - failing because presentationTimestamp &lt; presentationStartTime&quot;, this);
</span><del>-            m_source-&gt;streamEndedWithError(EndOfStreamError::Decode);
</del><ins>+            m_source-&gt;streamEndedWithError(MediaSource::EndOfStreamError::Decode);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -1674,7 +1674,7 @@
</span><span class="cx">     // 2.4.5 Changes to selected/enabled track state
</span><span class="cx">     // If a text track mode becomes &quot;disabled&quot; and the SourceBuffer associated with this track is not
</span><span class="cx">     // associated with any other enabled or selected track, then run the following steps:
</span><del>-    if (track-&gt;mode() == TextTrackMode::Disabled
</del><ins>+    if (track-&gt;mode() == TextTrack::Mode::Disabled
</ins><span class="cx">         &amp;&amp; (!m_videoTracks || !m_videoTracks-&gt;isAnyTrackEnabled())
</span><span class="cx">         &amp;&amp; (!m_audioTracks || !m_audioTracks-&gt;isAnyTrackEnabled())
</span><span class="cx">         &amp;&amp; (!m_textTracks || !m_textTracks-&gt;isAnyTrackEnabled())) {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceSourceBufferh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -58,10 +58,6 @@
</span><span class="cx"> class TimeRanges;
</span><span class="cx"> class VideoTrackList;
</span><span class="cx"> 
</span><del>-enum class EndOfStreamError;
-
-enum class AppendMode { Segments, Sequence };
-
</del><span class="cx"> class SourceBuffer final : public RefCounted&lt;SourceBuffer&gt;, public ActiveDOMObject, public EventTargetWithInlineData, public SourceBufferPrivateClient, public AudioTrackClient, public VideoTrackClient, public TextTrackClient {
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;SourceBuffer&gt; create(Ref&lt;SourceBufferPrivate&gt;&amp;&amp;, MediaSource*);
</span><span class="lines">@@ -117,6 +113,7 @@
</span><span class="cx"> 
</span><span class="cx">     Document&amp; document() const;
</span><span class="cx"> 
</span><ins>+    enum class AppendMode { Segments, Sequence };
</ins><span class="cx">     AppendMode mode() const { return m_mode; }
</span><span class="cx">     void setMode(AppendMode, ExceptionCode&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaDeviceInfocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaDeviceInfo.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaDeviceInfo.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediastream/MediaDeviceInfo.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-inline MediaDeviceInfo::MediaDeviceInfo(ScriptExecutionContext* context, const String&amp; label, const String&amp; deviceId, const String&amp; groupId, MediaDeviceKind kind)
</del><ins>+inline MediaDeviceInfo::MediaDeviceInfo(ScriptExecutionContext* context, const String&amp; label, const String&amp; deviceId, const String&amp; groupId, Kind kind)
</ins><span class="cx">     : ContextDestructionObserver(context)
</span><span class="cx">     , m_label(label)
</span><span class="cx">     , m_deviceId(deviceId)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;MediaDeviceInfo&gt; MediaDeviceInfo::create(ScriptExecutionContext* context, const String&amp; label, const String&amp; deviceId, const String&amp; groupId, MediaDeviceKind kind)
</del><ins>+Ref&lt;MediaDeviceInfo&gt; MediaDeviceInfo::create(ScriptExecutionContext* context, const String&amp; label, const String&amp; deviceId, const String&amp; groupId, Kind kind)
</ins><span class="cx"> {
</span><span class="cx">     return adoptRef(*new MediaDeviceInfo(context, label, deviceId, groupId, kind));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaDeviceInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaDeviceInfo.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaDeviceInfo.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediastream/MediaDeviceInfo.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -33,24 +33,24 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-enum class MediaDeviceKind { Audioinput, Audiooutput, Videoinput };
-
</del><span class="cx"> class MediaDeviceInfo : public RefCounted&lt;MediaDeviceInfo&gt;, public ScriptWrappable, private ContextDestructionObserver {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;MediaDeviceInfo&gt; create(ScriptExecutionContext*, const String&amp;, const String&amp;, const String&amp;, MediaDeviceKind);
</del><ins>+    enum class Kind { Audioinput, Audiooutput, Videoinput };
</ins><span class="cx"> 
</span><ins>+    static Ref&lt;MediaDeviceInfo&gt; create(ScriptExecutionContext*, const String&amp;, const String&amp;, const String&amp;, Kind);
+
</ins><span class="cx">     const String&amp; label() const { return m_label; }
</span><span class="cx">     const String&amp; deviceId() const { return m_deviceId; }
</span><span class="cx">     const String&amp; groupId() const { return m_groupId; }
</span><del>-    MediaDeviceKind kind() const { return m_kind; }
</del><ins>+    Kind kind() const { return m_kind; }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    MediaDeviceInfo(ScriptExecutionContext*, const String&amp;, const String&amp;, const String&amp;, MediaDeviceKind);
</del><ins>+    MediaDeviceInfo(ScriptExecutionContext*, const String&amp;, const String&amp;, const String&amp;, Kind);
</ins><span class="cx"> 
</span><span class="cx">     const String m_label;
</span><span class="cx">     const String m_deviceId;
</span><span class="cx">     const String m_groupId;
</span><del>-    const MediaDeviceKind m_kind;
</del><ins>+    const Kind m_kind;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> typedef Vector&lt;RefPtr&lt;MediaDeviceInfo&gt;&gt; MediaDeviceInfoVector;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaDevicesRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -155,7 +155,7 @@
</span><span class="cx"> 
</span><span class="cx">         String groupId = hashID(deviceInfo-&gt;groupId());
</span><span class="cx"> 
</span><del>-        auto deviceType = deviceInfo-&gt;kind() == TrackSourceInfo::SourceKind::Audio ? MediaDeviceKind::Audioinput : MediaDeviceKind::Videoinput;
</del><ins>+        auto deviceType = deviceInfo-&gt;kind() == TrackSourceInfo::SourceKind::Audio ? MediaDeviceInfo::Kind::Audioinput : MediaDeviceInfo::Kind::Videoinput;
</ins><span class="cx"> 
</span><span class="cx">         devices.append(MediaDeviceInfo::create(scriptExecutionContext(), label, id, groupId, deviceType));
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamTrackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -111,9 +111,9 @@
</span><span class="cx">     return m_private-&gt;remote();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-MediaStreamTrackState MediaStreamTrack::readyState() const
</del><ins>+auto MediaStreamTrack::readyState() const -&gt; State
</ins><span class="cx"> {
</span><del>-    return ended() ? MediaStreamTrackState::Ended : MediaStreamTrackState::Live;
</del><ins>+    return ended() ? State::Ended : State::Live;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool MediaStreamTrack::ended() const
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamTrackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -46,8 +46,6 @@
</span><span class="cx"> class MediaSourceSettings;
</span><span class="cx"> class MediaTrackConstraints;
</span><span class="cx"> 
</span><del>-enum class MediaStreamTrackState { New, Live, Ended };
-
</del><span class="cx"> class MediaStreamTrack final : public RefCounted&lt;MediaStreamTrack&gt;, public ActiveDOMObject, public EventTargetWithInlineData, private MediaStreamTrackPrivate::Observer {
</span><span class="cx"> public:
</span><span class="cx">     class Observer {
</span><span class="lines">@@ -70,7 +68,8 @@
</span><span class="cx">     bool readonly() const;
</span><span class="cx">     bool remote() const;
</span><span class="cx"> 
</span><del>-    MediaStreamTrackState readyState() const;
</del><ins>+    enum class State { New, Live, Ended };
+    State readyState() const;
</ins><span class="cx"> 
</span><span class="cx">     bool ended() const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCConfigurationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCConfiguration.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCConfiguration.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediastream/RTCConfiguration.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -142,11 +142,11 @@
</span><span class="cx">     String iceTransportPolicy;
</span><span class="cx">     if (configuration.get(&quot;iceTransportPolicy&quot;, iceTransportPolicy)) {
</span><span class="cx">         if (iceTransportPolicy == &quot;public&quot;)
</span><del>-            m_iceTransportPolicy = RTCIceTransportPolicy::Public;
</del><ins>+            m_iceTransportPolicy = IceTransportPolicy::Public;
</ins><span class="cx">         else if (iceTransportPolicy == &quot;relay&quot;)
</span><del>-            m_iceTransportPolicy = RTCIceTransportPolicy::Relay;
</del><ins>+            m_iceTransportPolicy = IceTransportPolicy::Relay;
</ins><span class="cx">         else if (iceTransportPolicy == &quot;all&quot;)
</span><del>-            m_iceTransportPolicy = RTCIceTransportPolicy::All;
</del><ins>+            m_iceTransportPolicy = IceTransportPolicy::All;
</ins><span class="cx">         else {
</span><span class="cx">             ec = TypeError;
</span><span class="cx">             return;
</span><span class="lines">@@ -156,11 +156,11 @@
</span><span class="cx">     String bundlePolicy;
</span><span class="cx">     if (configuration.get(&quot;bundlePolicy&quot;, bundlePolicy)) {
</span><span class="cx">         if (bundlePolicy == &quot;balanced&quot;)
</span><del>-            m_bundlePolicy = RTCBundlePolicy::Balanced;
</del><ins>+            m_bundlePolicy = BundlePolicy::Balanced;
</ins><span class="cx">         else if (bundlePolicy == &quot;max-compat&quot;)
</span><del>-            m_bundlePolicy = RTCBundlePolicy::MaxCompat;
</del><ins>+            m_bundlePolicy = BundlePolicy::MaxCompat;
</ins><span class="cx">         else if (bundlePolicy == &quot;max-bundle&quot;)
</span><del>-            m_bundlePolicy = RTCBundlePolicy::MaxBundle;
</del><ins>+            m_bundlePolicy = BundlePolicy::MaxBundle;
</ins><span class="cx">         else
</span><span class="cx">             ec = TypeError;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCConfigurationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCConfiguration.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCConfiguration.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/mediastream/RTCConfiguration.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -45,16 +45,17 @@
</span><span class="cx"> 
</span><span class="cx"> typedef int ExceptionCode;
</span><span class="cx"> 
</span><del>-enum class RTCBundlePolicy { Balanced, MaxCompat, MaxBundle };
-enum class RTCIceTransportPolicy { Public, Relay, All };
-
</del><span class="cx"> class RTCConfiguration : public RefCounted&lt;RTCConfiguration&gt; {
</span><span class="cx"> public:
</span><span class="cx">     static RefPtr&lt;RTCConfiguration&gt; create(const Dictionary&amp; configuration, ExceptionCode&amp;);
</span><span class="cx">     virtual ~RTCConfiguration() { }
</span><span class="cx"> 
</span><del>-    RTCIceTransportPolicy iceTransportPolicy() const { return m_iceTransportPolicy; }
-    RTCBundlePolicy bundlePolicy() const { return m_bundlePolicy; }
</del><ins>+    enum class IceTransportPolicy { Public, Relay, All };
+    IceTransportPolicy iceTransportPolicy() const { return m_iceTransportPolicy; }
+
+    enum class BundlePolicy { Balanced, MaxCompat, MaxBundle };
+    BundlePolicy bundlePolicy() const { return m_bundlePolicy; }
+
</ins><span class="cx">     Vector&lt;RefPtr&lt;RTCIceServer&gt;&gt; iceServers() const { return m_iceServers; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -63,8 +64,8 @@
</span><span class="cx">     void initialize(const Dictionary&amp; configuration, ExceptionCode&amp;);
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;RefPtr&lt;RTCIceServer&gt;&gt; m_iceServers;
</span><del>-    RTCIceTransportPolicy m_iceTransportPolicy { RTCIceTransportPolicy::All };
-    RTCBundlePolicy m_bundlePolicy { RTCBundlePolicy::Balanced };
</del><ins>+    IceTransportPolicy m_iceTransportPolicy { IceTransportPolicy::All };
+    BundlePolicy m_bundlePolicy { BundlePolicy::Balanced };
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioContext.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -71,8 +71,6 @@
</span><span class="cx"> class ScriptProcessorNode;
</span><span class="cx"> class WaveShaperNode;
</span><span class="cx"> 
</span><del>-enum class AudioContextState { Suspended, Running, Interrupted, Closed };
-
</del><span class="cx"> // AudioContext is the cornerstone of the web audio API and all AudioNodes are created from it.
</span><span class="cx"> // For thread safety between the audio thread and the main thread, it has a rendering graph locking mechanism. 
</span><span class="cx"> 
</span><span class="lines">@@ -117,7 +115,7 @@
</span><span class="cx">     void resume(Promise&amp;&amp;);
</span><span class="cx">     void close(Promise&amp;&amp;);
</span><span class="cx"> 
</span><del>-    using State = AudioContextState;
</del><ins>+    enum class State { Suspended, Running, Interrupted, Closed };
</ins><span class="cx">     State state() const;
</span><span class="cx"> 
</span><span class="cx">     // The AudioNode create methods are called on the main thread (from JavaScript).
</span><span class="lines">@@ -405,7 +403,7 @@
</span><span class="cx">     return &amp;lhs != &amp;rhs;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline AudioContextState AudioContext::state() const
</del><ins>+inline AudioContext::State AudioContext::state() const
</ins><span class="cx"> {
</span><span class="cx">     return m_state;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWaveShaperNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -54,14 +54,14 @@
</span><span class="cx">     return waveShaperProcessor()-&gt;curve();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline WaveShaperProcessor::OverSampleType processorType(OverSampleType type)
</del><ins>+static inline WaveShaperProcessor::OverSampleType processorType(WaveShaperNode::OverSampleType type)
</ins><span class="cx"> {
</span><span class="cx">     switch (type) {
</span><del>-    case OverSampleType::None:
</del><ins>+    case WaveShaperNode::OverSampleType::None:
</ins><span class="cx">         return WaveShaperProcessor::OverSampleNone;
</span><del>-    case OverSampleType::_2x:
</del><ins>+    case WaveShaperNode::OverSampleType::_2x:
</ins><span class="cx">         return WaveShaperProcessor::OverSample2x;
</span><del>-    case OverSampleType::_4x:
</del><ins>+    case WaveShaperNode::OverSampleType::_4x:
</ins><span class="cx">         return WaveShaperProcessor::OverSample4x;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">     waveShaperProcessor()-&gt;setOversample(processorType(type));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-OverSampleType WaveShaperNode::oversample() const
</del><ins>+auto WaveShaperNode::oversample() const -&gt; OverSampleType
</ins><span class="cx"> {
</span><span class="cx">     switch (const_cast&lt;WaveShaperNode*&gt;(this)-&gt;waveShaperProcessor()-&gt;oversample()) {
</span><span class="cx">     case WaveShaperProcessor::OverSampleNone:
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWaveShaperNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -30,8 +30,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-enum class OverSampleType { None, _2x, _4x };
-
</del><span class="cx"> class WaveShaperNode final : public AudioBasicProcessorNode {
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;WaveShaperNode&gt; create(AudioContext&amp; context)
</span><span class="lines">@@ -43,6 +41,7 @@
</span><span class="cx">     void setCurve(Float32Array*);
</span><span class="cx">     Float32Array* curve();
</span><span class="cx"> 
</span><ins>+    enum class OverSampleType { None, _2x, _4x };
</ins><span class="cx">     void setOversample(OverSampleType);
</span><span class="cx">     OverSampleType oversample() const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSXMLHttpRequestCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -189,8 +189,8 @@
</span><span class="cx">     auto type = wrapped().responseType();
</span><span class="cx"> 
</span><span class="cx">     switch (type) {
</span><del>-    case XMLHttpRequestResponseType::EmptyString:
-    case XMLHttpRequestResponseType::Text:
</del><ins>+    case XMLHttpRequest::ResponseType::EmptyString:
+    case XMLHttpRequest::ResponseType::Text:
</ins><span class="cx">         return responseText(state);
</span><span class="cx">     default:
</span><span class="cx">         break;
</span><span class="lines">@@ -200,12 +200,12 @@
</span><span class="cx">         return jsNull();
</span><span class="cx"> 
</span><span class="cx">     switch (type) {
</span><del>-    case XMLHttpRequestResponseType::EmptyString:
-    case XMLHttpRequestResponseType::Text:
</del><ins>+    case XMLHttpRequest::ResponseType::EmptyString:
+    case XMLHttpRequest::ResponseType::Text:
</ins><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">         break;
</span><span class="cx"> 
</span><del>-    case XMLHttpRequestResponseType::Json:
</del><ins>+    case XMLHttpRequest::ResponseType::Json:
</ins><span class="cx">         {
</span><span class="cx">             JSValue value = JSONParse(&amp;state, wrapped().responseTextIgnoringResponseType());
</span><span class="cx">             if (!value)
</span><span class="lines">@@ -215,7 +215,7 @@
</span><span class="cx">             return value;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-    case XMLHttpRequestResponseType::Document:
</del><ins>+    case XMLHttpRequest::ResponseType::Document:
</ins><span class="cx">         {
</span><span class="cx">             ExceptionCode ec = 0;
</span><span class="cx">             Document* document = wrapped().responseXML(ec);
</span><span class="lines">@@ -226,10 +226,10 @@
</span><span class="cx">             return toJS(&amp;state, globalObject(), document);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-    case XMLHttpRequestResponseType::Blob:
</del><ins>+    case XMLHttpRequest::ResponseType::Blob:
</ins><span class="cx">         return toJS(&amp;state, globalObject(), wrapped().responseBlob());
</span><span class="cx"> 
</span><del>-    case XMLHttpRequestResponseType::Arraybuffer:
</del><ins>+    case XMLHttpRequest::ResponseType::Arraybuffer:
</ins><span class="cx">         return toJS(&amp;state, globalObject(), wrapped().responseArrayBuffer());
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -321,7 +321,7 @@
</span><span class="cx"> 
</span><span class="cx"> sub GenerateGetOwnPropertySlotBody
</span><span class="cx"> {
</span><del>-    my ($interface, $interfaceName, $className, $hasInstanceProperties, $inlined) = @_;
</del><ins>+    my ($interface, $className, $hasInstanceProperties, $inlined) = @_;
</ins><span class="cx"> 
</span><span class="cx">     my $namespaceMaybe = ($inlined ? &quot;JSC::&quot; : &quot;&quot;);
</span><span class="cx">     my $namedGetterFunction = GetNamedGetterFunction($interface);
</span><span class="lines">@@ -511,35 +511,27 @@
</span><span class="cx"> 
</span><span class="cx"> sub GetAttributeGetterName
</span><span class="cx"> {
</span><del>-    my ($interfaceName, $className, $interface, $attribute) = @_;
-    if ($attribute-&gt;isStatic) {
-        return $codeGenerator-&gt;WK_lcfirst($className) . &quot;Constructor&quot; . $codeGenerator-&gt;WK_ucfirst($attribute-&gt;signature-&gt;name);
-    }
-    if (IsJSBuiltin($interface, $attribute)) {
-        return GetJSBuiltinFunctionName($className, $attribute);
-    }
-    return &quot;js&quot; . $interfaceName . $codeGenerator-&gt;WK_ucfirst($attribute-&gt;signature-&gt;name) . ($attribute-&gt;signature-&gt;type =~ /Constructor$/ ? &quot;Constructor&quot; : &quot;&quot;);
</del><ins>+    my ($interface, $className, $attribute) = @_;
+
+    return $codeGenerator-&gt;WK_lcfirst($className) . &quot;Constructor&quot; . $codeGenerator-&gt;WK_ucfirst($attribute-&gt;signature-&gt;name) if $attribute-&gt;isStatic;
+    return GetJSBuiltinFunctionName($className, $attribute) if IsJSBuiltin($interface, $attribute);
+    return &quot;js&quot; . $interface-&gt;name . $codeGenerator-&gt;WK_ucfirst($attribute-&gt;signature-&gt;name) . ($attribute-&gt;signature-&gt;type =~ /Constructor$/ ? &quot;Constructor&quot; : &quot;&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> sub GetAttributeSetterName
</span><span class="cx"> {
</span><del>-    my ($interfaceName, $className, $interface, $attribute) = @_;
-    if ($attribute-&gt;isStatic) {
-        return &quot;set&quot; . $codeGenerator-&gt;WK_ucfirst($className) . &quot;Constructor&quot; . $codeGenerator-&gt;WK_ucfirst($attribute-&gt;signature-&gt;name);
-    }
-    if (IsJSBuiltin($interface, $attribute)) {
-        return &quot;set&quot; . $codeGenerator-&gt;WK_ucfirst(GetJSBuiltinFunctionName($className, $attribute));
-    }
-    return &quot;setJS&quot; . $interfaceName . $codeGenerator-&gt;WK_ucfirst($attribute-&gt;signature-&gt;name) . ($attribute-&gt;signature-&gt;type =~ /Constructor$/ ? &quot;Constructor&quot; : &quot;&quot;);
</del><ins>+    my ($interface, $className, $attribute) = @_;
+
+    return &quot;set&quot; . $codeGenerator-&gt;WK_ucfirst($className) . &quot;Constructor&quot; . $codeGenerator-&gt;WK_ucfirst($attribute-&gt;signature-&gt;name) if $attribute-&gt;isStatic;
+    return &quot;set&quot; . $codeGenerator-&gt;WK_ucfirst(GetJSBuiltinFunctionName($className, $attribute)) if IsJSBuiltin($interface, $attribute);
+    return &quot;setJS&quot; . $interface-&gt;name . $codeGenerator-&gt;WK_ucfirst($attribute-&gt;signature-&gt;name) . ($attribute-&gt;signature-&gt;type =~ /Constructor$/ ? &quot;Constructor&quot; : &quot;&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> sub GetFunctionName
</span><span class="cx"> {
</span><span class="cx">     my ($interface, $className, $function) = @_;
</span><span class="cx"> 
</span><del>-    if (IsJSBuiltin($interface, $function)) {
-        return GetJSBuiltinFunctionName($className, $function);
-    }
</del><ins>+    return GetJSBuiltinFunctionName($className, $function) if IsJSBuiltin($interface, $function);
</ins><span class="cx"> 
</span><span class="cx">     my $functionName = $function-&gt;signature-&gt;name;
</span><span class="cx">     $functionName = &quot;SymbolIterator&quot; if $functionName eq &quot;[Symbol.Iterator]&quot;;
</span><span class="lines">@@ -619,14 +611,6 @@
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-sub AttributeShouldBeOnInstanceForCompatibility
-{
-    my $interface = shift;
-    my $attribute = shift;
-    my $interfaceName = $interface-&gt;name;
-    return 0;
-}
-
</del><span class="cx"> sub AttributeShouldBeOnInstance
</span><span class="cx"> {
</span><span class="cx">     my $interface = shift;
</span><span class="lines">@@ -642,8 +626,6 @@
</span><span class="cx">     # https://heycam.github.io/webidl/#Unforgeable
</span><span class="cx">     return 1 if IsUnforgeable($interface, $attribute);
</span><span class="cx"> 
</span><del>-    return 1 if AttributeShouldBeOnInstanceForCompatibility($interface, $attribute);
-
</del><span class="cx">     if ($interface-&gt;extendedAttributes-&gt;{&quot;CheckSecurity&quot;}) {
</span><span class="cx">         if ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;DoNotCheckSecurity&quot;} or
</span><span class="cx">             $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;DoNotCheckSecurityOnGetter&quot;}) {
</span><span class="lines">@@ -813,33 +795,85 @@
</span><span class="cx">     return $name;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+sub IsClassNameWordBoundary
+{
+    my ($name, $i) = @_;
+
+    # Interpret negative numbers as distance from end of string, just as the substr function does.
+    $i += length($name) if $i &lt; 0;
+
+    return 0 if $i &lt; 0;
+    return 1 if $i == 0;
+    return 1 if $i == length($name);
+    return 0 if $i &gt; length($name);
+
+    my $checkString = substr($name, $i - 1);
+    return $checkString =~ /^[^A-Z][A-Z]/ || $checkString =~ /^[A-Z][A-Z][^A-Z]/;
+}
+
+sub IsPrefixRemovable
+{
+    my ($class, $name, $i) = @_;
+
+    return IsClassNameWordBoundary($name, $i)
+        &amp;&amp; (IsClassNameWordBoundary($class, $i) &amp;&amp; substr($class, 0, $i) eq substr($name, 0, $i)
+            || IsClassNameWordBoundary($class, -$i) &amp;&amp; substr($class, -$i) eq substr($name, 0, $i));
+}
+
</ins><span class="cx"> sub GetEnumerationClassName
</span><span class="cx"> {
</span><del>-    my ($name) = @_;
-    return $codeGenerator-&gt;WK_ucfirst($name);
-};
</del><ins>+    my ($interface, $name) = @_;
</ins><span class="cx"> 
</span><ins>+    my $class = GetImplClassName($interface-&gt;name);
+    my $enum = $codeGenerator-&gt;WK_ucfirst($name);
+
+    # Since the enumeration name will be nested in the class name's namespace, remove any words
+    # that happen to match the start or end of the class name. If an enumeration is named TrackType or
+    # TextTrackType, and the class is named TextTrack, then we will get a name like TextTrack::Type.
+    my $enumLength = length($enum);
+    my $longestPrefixLength = 0;
+    if ($enum =~ /^[A-Z]./) {
+        for (my $i = 2; $i &lt; $enumLength - 1; $i++) {
+            $longestPrefixLength = $i if IsPrefixRemovable($class, $enum, $i);
+        }
+    }
+    $enum = substr($enum, $longestPrefixLength);
+
+    return &quot;${class}::$enum&quot;;
+}
+
+sub GetEnumerationClassIdentifier
+{
+    my ($interface, $name) = @_;
+
+    my $identifier = GetEnumerationClassName($interface, $name);
+    $identifier =~ s/:://;
+    return $identifier;
+}
+
</ins><span class="cx"> sub GetEnumerationValueName
</span><span class="cx"> {
</span><span class="cx">     my ($name) = @_;
</span><ins>+
</ins><span class="cx">     return &quot;EmptyString&quot; if $name eq &quot;&quot;;
</span><span class="cx">     $name = join(&quot;&quot;, map { $codeGenerator-&gt;WK_ucfirst($_) } split(&quot;-&quot;, $name));
</span><span class="cx">     $name = &quot;_$name&quot; if $name =~ /^\d/;
</span><span class="cx">     return $name;
</span><del>-};
</del><ins>+}
</ins><span class="cx"> 
</span><del>-sub GetEnumerationImplementationContent
</del><ins>+sub GenerateEnumerationImplementationContent
</ins><span class="cx"> {
</span><del>-    my ($enumerations) = @_;
</del><ins>+    my ($interface, $enumerations) = @_;
</ins><span class="cx"> 
</span><del>-    # FIXME: Could optimize this to only generate things that are used, which would require
-    # iterating over everything in the interface.
</del><ins>+    # FIXME: Could optimize this to only generate the parts of each enumeration that are actually
+    # used, which would require iterating over everything in the interface.
</ins><span class="cx"> 
</span><span class="cx">     my $result = &quot;&quot;;
</span><span class="cx">     foreach my $enumeration (@$enumerations) {
</span><span class="cx">         my $name = $enumeration-&gt;name;
</span><span class="cx"> 
</span><del>-        my $className = GetEnumerationClassName($name);
</del><ins>+        my $className = GetEnumerationClassName($interface, $name);
+        my $classIdentifier = GetEnumerationClassIdentifier($interface, $name);
</ins><span class="cx"> 
</span><span class="cx">         # FIXME: A little ugly to have this be a side effect instead of a return value.
</span><span class="cx">         AddToImplIncludes(&quot;&lt;runtime/JSString.h&gt;&quot;);
</span><span class="lines">@@ -850,8 +884,8 @@
</span><span class="cx">         # Declare these instead of using &quot;static&quot; because these may be unused and we don't
</span><span class="cx">         # want to get warnings about them.
</span><span class="cx">         $result .= &quot;JSString* jsStringWithCache(ExecState*, $className);\n&quot;;
</span><del>-        $result .= &quot;Optional&lt;$className&gt; parse$className(ExecState&amp;, JSValue);\n&quot;;
-        $result .= &quot;extern const char expectedEnumerationValues${className}[];\n\n&quot;;
</del><ins>+        $result .= &quot;Optional&lt;$className&gt; parse$classIdentifier(ExecState&amp;, JSValue);\n&quot;;
+        $result .= &quot;extern const char expectedEnumerationValues${classIdentifier}[];\n\n&quot;;
</ins><span class="cx"> 
</span><span class="cx">         # Take an ExecState* instead of an ExecState&amp; to match the jsStringWithCache from JSString.h.
</span><span class="cx">         # FIXME: Change to take VM&amp; instead of ExecState*.
</span><span class="lines">@@ -885,7 +919,7 @@
</span><span class="cx">         # FIXME: Change to take VM&amp; instead of ExecState&amp;.
</span><span class="cx">         # FIXME: Consider using toStringOrNull to make exception checking faster.
</span><span class="cx">         # FIXME: Consider finding a more efficient way to match against all the strings quickly.
</span><del>-        $result .= &quot;Optional&lt;$className&gt; parse$className(ExecState&amp; state, JSValue value)\n&quot;;
</del><ins>+        $result .= &quot;Optional&lt;$className&gt; parse$classIdentifier(ExecState&amp; state, JSValue value)\n&quot;;
</ins><span class="cx">         $result .= &quot;{\n&quot;;
</span><span class="cx">         $result .= &quot;    auto stringValue = value.toWTFString(&amp;state);\n&quot;;
</span><span class="cx">         foreach my $value (@{$enumeration-&gt;values}) {
</span><span class="lines">@@ -900,7 +934,7 @@
</span><span class="cx">         $result .= &quot;    return Nullopt;\n&quot;;
</span><span class="cx">         $result .= &quot;}\n\n&quot;;
</span><span class="cx"> 
</span><del>-        $result .= &quot;const char expectedEnumerationValues${className}[] = \&quot;\\\&quot;&quot; . join (&quot;\\\&quot;, \\\&quot;&quot;, @{$enumeration-&gt;values}) . &quot;\\\&quot;\&quot;;\n\n&quot;;
</del><ins>+        $result .= &quot;const char expectedEnumerationValues${classIdentifier}[] = \&quot;\\\&quot;&quot; . join (&quot;\\\&quot;, \\\&quot;&quot;, @{$enumeration-&gt;values}) . &quot;\\\&quot;\&quot;;\n\n&quot;;
</ins><span class="cx"> 
</span><span class="cx">         $result .= &quot;#endif\n\n&quot; if $conditionalString;
</span><span class="cx">     }
</span><span class="lines">@@ -1348,10 +1382,7 @@
</span><span class="cx"> 
</span><span class="cx">     push(@headerContent, &quot;\n&quot;);
</span><span class="cx"> 
</span><del>-    # Add prototype declaration.
-    if (HeaderNeedsPrototypeDeclaration($interface)) {
-        GeneratePrototypeDeclaration(\@headerContent, $className, $interface, $interfaceName);
-    }
</del><ins>+    GeneratePrototypeDeclaration(\@headerContent, $className, $interface) if HeaderNeedsPrototypeDeclaration($interface);
</ins><span class="cx"> 
</span><span class="cx">     if ($hasForwardDeclaringFunctions) {
</span><span class="cx">         my $inAppleCopyright = 0;
</span><span class="lines">@@ -1389,10 +1420,10 @@
</span><span class="cx"> 
</span><span class="cx">             my $conditionalString = $codeGenerator-&gt;GenerateConditionalString($attribute-&gt;signature);
</span><span class="cx">             push(@headerContent, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
</span><del>-            my $getter = GetAttributeGetterName($interfaceName, $className, $interface, $attribute);
</del><ins>+            my $getter = GetAttributeGetterName($interface, $className, $attribute);
</ins><span class="cx">             push(@headerContent, &quot;JSC::EncodedJSValue ${getter}(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);\n&quot;);
</span><span class="cx">             if (!IsReadonly($attribute)) {
</span><del>-                my $setter = GetAttributeSetterName($interfaceName, $className, $interface, $attribute);
</del><ins>+                my $setter = GetAttributeSetterName($interface, $className, $attribute);
</ins><span class="cx">                 push(@headerContent, &quot;bool ${setter}(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);\n&quot;);
</span><span class="cx">             }
</span><span class="cx">             push(@headerContent, &quot;#endif\n&quot;) if $conditionalString;
</span><span class="lines">@@ -1458,13 +1489,13 @@
</span><span class="cx">         my $special = GetJSCAttributesForAttribute($interface, $attribute);
</span><span class="cx">         push(@$hashSpecials, $special);
</span><span class="cx"> 
</span><del>-        my $getter = GetAttributeGetterName($interfaceName, $className, $interface, $attribute);
</del><ins>+        my $getter = GetAttributeGetterName($interface, $className, $attribute);
</ins><span class="cx">         push(@$hashValue1, $getter);
</span><span class="cx"> 
</span><span class="cx">         if (IsReadonly($attribute)) {
</span><span class="cx">             push(@$hashValue2, &quot;0&quot;);
</span><span class="cx">         } else {
</span><del>-            my $setter = GetAttributeSetterName($interfaceName, $className, $interface, $attribute);
</del><ins>+            my $setter = GetAttributeSetterName($interface, $className, $attribute);
</ins><span class="cx">             push(@$hashValue2, $setter);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -1641,9 +1672,7 @@
</span><span class="cx"> 
</span><span class="cx"> sub GenerateOverloadedFunction
</span><span class="cx"> {
</span><del>-    my $function = shift;
-    my $interface = shift;
-    my $interfaceName = shift;
</del><ins>+    my ($function, $interface) = @_;
</ins><span class="cx"> 
</span><span class="cx">     # Generate code for choosing the correct overload to call. Overloads are
</span><span class="cx">     # chosen based on the total number of arguments passed and the type of
</span><span class="lines">@@ -1652,6 +1681,7 @@
</span><span class="cx">     # declaration in the IDL.
</span><span class="cx"> 
</span><span class="cx">     my $kind = $function-&gt;isStatic ? &quot;Constructor&quot; : (OperationShouldBeOnInstance($interface, $function) ? &quot;Instance&quot; : &quot;Prototype&quot;);
</span><ins>+    my $interfaceName = $interface-&gt;name;
</ins><span class="cx">     my $functionName = &quot;js${interfaceName}${kind}Function&quot; . $codeGenerator-&gt;WK_ucfirst($function-&gt;signature-&gt;name);
</span><span class="cx"> 
</span><span class="cx">     # FIXME: Implement support for overloaded functions with variadic arguments.
</span><span class="lines">@@ -1901,7 +1931,7 @@
</span><span class="cx">     push(@implContent, &quot;\nusing namespace JSC;\n\n&quot;);
</span><span class="cx">     push(@implContent, &quot;namespace WebCore {\n\n&quot;);
</span><span class="cx"> 
</span><del>-    push(@implContent, GetEnumerationImplementationContent($enumerations));
</del><ins>+    push(@implContent, GenerateEnumerationImplementationContent($interface, $enumerations));
</ins><span class="cx"> 
</span><span class="cx">     my @functions = @{$interface-&gt;functions};
</span><span class="cx">     push(@functions, @{$interface-&gt;iterable-&gt;functions}) if $interface-&gt;iterable;
</span><span class="lines">@@ -1949,10 +1979,10 @@
</span><span class="cx"> 
</span><span class="cx">             my $conditionalString = $codeGenerator-&gt;GenerateConditionalString($attribute-&gt;signature);
</span><span class="cx">             push(@implContent, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
</span><del>-            my $getter = GetAttributeGetterName($interfaceName, $className, $interface, $attribute);
</del><ins>+            my $getter = GetAttributeGetterName($interface, $className, $attribute);
</ins><span class="cx">             push(@implContent, &quot;JSC::EncodedJSValue ${getter}(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);\n&quot;);
</span><span class="cx">             if (!IsReadonly($attribute)) {
</span><del>-                my $setter = GetAttributeSetterName($interfaceName, $className, $interface, $attribute);
</del><ins>+                my $setter = GetAttributeSetterName($interface, $className, $attribute);
</ins><span class="cx">                 push(@implContent, &quot;bool ${setter}(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);\n&quot;);
</span><span class="cx">             }
</span><span class="cx">             push(@implContent, &quot;#endif\n&quot;) if $conditionalString;
</span><span class="lines">@@ -1969,17 +1999,10 @@
</span><span class="cx">         push(@implContent, &quot;\n&quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    # Add prototype declaration.
-    if (!HeaderNeedsPrototypeDeclaration($interface)) {
-        GeneratePrototypeDeclaration(\@implContent, $className, $interface, $interfaceName);
-    }
</del><ins>+    GeneratePrototypeDeclaration(\@implContent, $className, $interface) if !HeaderNeedsPrototypeDeclaration($interface);
</ins><span class="cx"> 
</span><del>-    # Add constructor declaration
-    if (NeedsConstructorProperty($interface)) {
-        GenerateConstructorDeclaration(\@implContent, $className, $interface, $interfaceName);
-    }
</del><ins>+    GenerateConstructorDeclaration(\@implContent, $className, $interface) if NeedsConstructorProperty($interface);
</ins><span class="cx"> 
</span><del>-
</del><span class="cx">     my @hashKeys = ();
</span><span class="cx">     my @hashValue1 = ();
</span><span class="cx">     my @hashValue2 = ();
</span><span class="lines">@@ -2043,13 +2066,13 @@
</span><span class="cx">             my $special = (@specials &gt; 0) ? join(&quot; | &quot;, @specials) : &quot;0&quot;;
</span><span class="cx">             push(@hashSpecials, $special);
</span><span class="cx"> 
</span><del>-            my $getter = GetAttributeGetterName($interfaceName, $className, $interface, $attribute);
</del><ins>+            my $getter = GetAttributeGetterName($interface, $className, $attribute);
</ins><span class="cx">             push(@hashValue1, $getter);
</span><span class="cx"> 
</span><span class="cx">             if (IsReadonly($attribute)) {
</span><span class="cx">                 push(@hashValue2, &quot;0&quot;);
</span><span class="cx">             } else {
</span><del>-                my $setter = GetAttributeSetterName($interfaceName, $className, $interface, $attribute);
</del><ins>+                my $setter = GetAttributeSetterName($interface, $className, $attribute);
</ins><span class="cx">                 push(@hashValue2, $setter);
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="lines">@@ -2091,9 +2114,9 @@
</span><span class="cx">         push(@implContent, $codeGenerator-&gt;GenerateCompileTimeCheckForEnumsIfNeeded($interface));
</span><span class="cx"> 
</span><span class="cx">         my $protoClassName = &quot;${className}Prototype&quot;;
</span><del>-        GenerateConstructorDefinitions(\@implContent, $className, $protoClassName, $interfaceName, $visibleInterfaceName, $interface);
</del><ins>+        GenerateConstructorDefinitions(\@implContent, $className, $protoClassName, $visibleInterfaceName, $interface);
</ins><span class="cx">         if ($interface-&gt;extendedAttributes-&gt;{&quot;NamedConstructor&quot;}) {
</span><del>-            GenerateConstructorDefinitions(\@implContent, $className, $protoClassName, $interfaceName, $interface-&gt;extendedAttributes-&gt;{&quot;NamedConstructor&quot;}, $interface, &quot;GeneratingNamedConstructor&quot;);
</del><ins>+            GenerateConstructorDefinitions(\@implContent, $className, $protoClassName, $interface-&gt;extendedAttributes-&gt;{&quot;NamedConstructor&quot;}, $interface, &quot;GeneratingNamedConstructor&quot;);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -2280,8 +2303,8 @@
</span><span class="cx">             my $enable_function = GetRuntimeEnableFunctionName($attribute-&gt;signature);
</span><span class="cx">             my $attributeName = $attribute-&gt;signature-&gt;name;
</span><span class="cx">             push(@implContent, &quot;    if (${enable_function}()) {\n&quot;);
</span><del>-            my $getter = GetAttributeGetterName($interfaceName, $className, $interface, $attribute);
-            my $setter = IsReadonly($attribute) ? &quot;nullptr&quot; : GetAttributeSetterName($interfaceName, $className, $interface, $attribute);
</del><ins>+            my $getter = GetAttributeGetterName($interface, $className, $attribute);
+            my $setter = IsReadonly($attribute) ? &quot;nullptr&quot; : GetAttributeSetterName($interface, $className, $attribute);
</ins><span class="cx">             push(@implContent, &quot;        auto* customGetterSetter = CustomGetterSetter::create(vm, $getter, $setter);\n&quot;);
</span><span class="cx">             my $jscAttributes = GetJSCAttributesForAttribute($interface, $attribute);
</span><span class="cx">             push(@implContent, &quot;        putDirectCustomAccessor(vm, vm.propertyNames-&gt;$attributeName, customGetterSetter, attributesForStructure($jscAttributes));\n&quot;);
</span><span class="lines">@@ -2340,7 +2363,7 @@
</span><span class="cx">             push(@implContent, &quot;{\n&quot;);
</span><span class="cx">             push(@implContent, &quot;    auto* thisObject = jsCast&lt;${className}*&gt;(object);\n&quot;);
</span><span class="cx">             push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(thisObject, info());\n&quot;);
</span><del>-            push(@implContent, GenerateGetOwnPropertySlotBody($interface, $interfaceName, $className, $numInstanceProperties &gt; 0, 0));
</del><ins>+            push(@implContent, GenerateGetOwnPropertySlotBody($interface, $className, $numInstanceProperties &gt; 0, 0));
</ins><span class="cx">             push(@implContent, &quot;}\n\n&quot;);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -2415,7 +2438,7 @@
</span><span class="cx">             my $name = $attribute-&gt;signature-&gt;name;
</span><span class="cx">             my $type = $attribute-&gt;signature-&gt;type;
</span><span class="cx">             $codeGenerator-&gt;AssertNotSequenceType($type);
</span><del>-            my $getFunctionName = GetAttributeGetterName($interfaceName, $className, $interface, $attribute);
</del><ins>+            my $getFunctionName = GetAttributeGetterName($interface, $className, $attribute);
</ins><span class="cx">             my $implGetterFunctionName = $codeGenerator-&gt;WK_lcfirst($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;ImplementedAs&quot;} || $name);
</span><span class="cx">             my $getterExceptionsWithMessage = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;GetterRaisesExceptionWithMessage&quot;};
</span><span class="cx">             my $getterExceptions = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;GetterRaisesException&quot;} || $getterExceptionsWithMessage;
</span><span class="lines">@@ -2720,7 +2743,7 @@
</span><span class="cx"> 
</span><span class="cx">             my $name = $attribute-&gt;signature-&gt;name;
</span><span class="cx">             my $type = $attribute-&gt;signature-&gt;type;
</span><del>-            my $putFunctionName = GetAttributeSetterName($interfaceName, $className, $interface, $attribute);
</del><ins>+            my $putFunctionName = GetAttributeSetterName($interface, $className, $attribute);
</ins><span class="cx">             my $implSetterFunctionName = $codeGenerator-&gt;WK_ucfirst($name);
</span><span class="cx">             my $setterRaisesExceptionWithMessage = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;SetterRaisesExceptionWithMessage&quot;};
</span><span class="cx">             my $setterRaisesException = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;SetterRaisesException&quot;} || $setterRaisesExceptionWithMessage;
</span><span class="lines">@@ -2840,7 +2863,7 @@
</span><span class="cx">                     push(@implContent, &quot;    };\n&quot;);
</span><span class="cx">                 }
</span><span class="cx"> 
</span><del>-                push(@implContent, &quot;    &quot; . GetNativeTypeFromSignature($attribute-&gt;signature) . &quot; nativeValue = &quot; . JSValueToNative($attribute-&gt;signature, &quot;value&quot;, $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;}) . &quot;;\n&quot;);
</del><ins>+                push(@implContent, &quot;    &quot; . GetNativeTypeFromSignature($attribute-&gt;signature) . &quot; nativeValue = &quot; . JSValueToNative($interface, $attribute-&gt;signature, &quot;value&quot;, $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;}) . &quot;;\n&quot;);
</ins><span class="cx">                 push(@implContent, &quot;    if (UNLIKELY(state-&gt;hadException()))\n&quot;);
</span><span class="cx">                 push(@implContent, &quot;        return false;\n&quot;);
</span><span class="cx"> 
</span><span class="lines">@@ -3048,11 +3071,11 @@
</span><span class="cx">                     }
</span><span class="cx"> 
</span><span class="cx">                     my $numParameters = @{$function-&gt;parameters};
</span><del>-                    my ($functionString, $dummy) = GenerateParametersCheck(\@implContent, $function, $interface, $numParameters, $interfaceName, $functionImplementationName, $svgPropertyType, $svgPropertyOrListPropertyType, $svgListPropertyType);
</del><ins>+                    my ($functionString, $dummy) = GenerateParametersCheck(\@implContent, $function, $interface, $numParameters, $functionImplementationName, $svgPropertyType, $svgPropertyOrListPropertyType, $svgListPropertyType);
</ins><span class="cx">                     GenerateImplementationFunctionCall($function, $functionString, &quot;    &quot;, $svgPropertyType, $interfaceName);
</span><span class="cx">                 }
</span><span class="cx">             } else {
</span><del>-                GenerateFunctionCastedThis($interface, $interfaceName, $className, $function);
</del><ins>+                GenerateFunctionCastedThis($interface, $className, $function);
</ins><span class="cx"> 
</span><span class="cx">                 if ($interface-&gt;extendedAttributes-&gt;{&quot;CheckSecurity&quot;} and
</span><span class="cx">                     !$function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;DoNotCheckSecurity&quot;}) {
</span><span class="lines">@@ -3102,7 +3125,7 @@
</span><span class="cx">                         }
</span><span class="cx"> 
</span><span class="cx">                         my $numParameters = @{$function-&gt;parameters};
</span><del>-                        my ($functionString, $dummy) = GenerateParametersCheck(\@implContent, $function, $interface, $numParameters, $interfaceName, $functionImplementationName, $svgPropertyType, $svgPropertyOrListPropertyType, $svgListPropertyType);
</del><ins>+                        my ($functionString, $dummy) = GenerateParametersCheck(\@implContent, $function, $interface, $numParameters, $functionImplementationName, $svgPropertyType, $svgPropertyOrListPropertyType, $svgListPropertyType);
</ins><span class="cx">                         GenerateImplementationFunctionCall($function, $functionString, &quot;    &quot;, $svgPropertyType, $interfaceName);
</span><span class="cx">                     }
</span><span class="cx">                 }
</span><span class="lines">@@ -3111,11 +3134,8 @@
</span><span class="cx">             push(@implContent, &quot;}\n\n&quot;);
</span><span class="cx">             push(@implContent, &quot;#endif\n\n&quot;) if $conditional;
</span><span class="cx"> 
</span><del>-            if (!$isCustom &amp;&amp; $isOverloaded &amp;&amp; $function-&gt;{overloadIndex} == @{$function-&gt;{overloads}}) {
-                # Generate a function dispatching call to the rest of the overloads.
-                GenerateOverloadedFunction($function, $interface, $interfaceName);
-            }
-
</del><ins>+            # Generate a function dispatching call to the rest of the overloads.
+            GenerateOverloadedFunction($function, $interface) if !$isCustom &amp;&amp; $isOverloaded &amp;&amp; $function-&gt;{overloadIndex} == @{$function-&gt;{overloads}};
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         push(@implContent, $endAppleCopyright) if $inAppleCopyright;
</span><span class="lines">@@ -3361,10 +3381,8 @@
</span><span class="cx"> 
</span><span class="cx"> sub GenerateFunctionCastedThis
</span><span class="cx"> {
</span><del>-    my $interface = shift;
-    my $interfaceName = shift;
-    my $className = shift;
-    my $function = shift;
</del><ins>+    my ($interface, $className, $function) = @_;
+
</ins><span class="cx">     if ($interface-&gt;extendedAttributes-&gt;{&quot;CustomProxyToJSObject&quot;}) {
</span><span class="cx">         push(@implContent, &quot;    $className* castedThis = to${className}(state-&gt;thisValue().toThis(state, NotStrictMode));\n&quot;);
</span><span class="cx">         push(@implContent, &quot;    if (UNLIKELY(!castedThis))\n&quot;);
</span><span class="lines">@@ -3372,6 +3390,7 @@
</span><span class="cx">     } else {
</span><span class="cx">         push(@implContent, &quot;    JSValue thisValue = state-&gt;thisValue();\n&quot;);
</span><span class="cx">         my $castingHelper = GetCastingHelperForThisObject($interface);
</span><ins>+        my $interfaceName = $interface-&gt;name;
</ins><span class="cx">         if ($interfaceName eq &quot;EventTarget&quot;) {
</span><span class="cx">             # We allow calling the EventTarget API without an explicit 'this' value and fall back to using the global object instead.
</span><span class="cx">             # As of early 2016, this matches Firefox and Chrome's behavior.
</span><span class="lines">@@ -3384,7 +3403,7 @@
</span><span class="cx">         push(@implContent, &quot;        return throwThisTypeError(*state, \&quot;$interfaceName\&quot;, \&quot;$domFunctionName\&quot;);\n&quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(castedThis, ${className}::info());\n&quot;) unless $interfaceName eq &quot;EventTarget&quot;;
</del><ins>+    push(@implContent, &quot;    ASSERT_GC_OBJECT_INHERITS(castedThis, ${className}::info());\n&quot;) unless $interface-&gt;name eq &quot;EventTarget&quot;;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> sub GenerateCallWith
</span><span class="lines">@@ -3493,20 +3512,9 @@
</span><span class="cx"> 
</span><span class="cx"> sub GenerateParametersCheck
</span><span class="cx"> {
</span><del>-    my $outputArray = shift;
-    my $function = shift;
-    my $interface = shift;
-    my $numParameters = shift;
-    my $interfaceName = shift;
-    my $functionImplementationName = shift;
-    my $svgPropertyType = shift;
-    my $svgPropertyOrListPropertyType = shift;
-    my $svgListPropertyType = shift;
</del><ins>+    my ($outputArray, $function, $interface, $numParameters, $functionImplementationName, $svgPropertyType, $svgPropertyOrListPropertyType, $svgListPropertyType) = @_;
</ins><span class="cx"> 
</span><del>-    my $argsIndex = 0;
-    my $hasOptionalArguments = 0;
-
-    my $className = $interface-&gt;name;
</del><ins>+    my $interfaceName = $interface-&gt;name;
</ins><span class="cx">     my @arguments;
</span><span class="cx">     my $functionName;
</span><span class="cx">     my $implementedBy = $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;ImplementedBy&quot;};
</span><span class="lines">@@ -3533,6 +3541,8 @@
</span><span class="cx"> 
</span><span class="cx">     $implIncludes{&quot;ExceptionCode.h&quot;} = 1;
</span><span class="cx">     $implIncludes{&quot;JSDOMBinding.h&quot;} = 1;
</span><ins>+
+    my $argsIndex = 0;
</ins><span class="cx">     foreach my $parameter (@{$function-&gt;parameters}) {
</span><span class="cx">         my $argType = $parameter-&gt;type;
</span><span class="cx">         my $optional = $parameter-&gt;isOptional;
</span><span class="lines">@@ -3625,7 +3635,9 @@
</span><span class="cx">                 push(@$outputArray, &quot;        return JSValue::encode(jsUndefined());\n&quot;);
</span><span class="cx">             }
</span><span class="cx">         } elsif ($codeGenerator-&gt;IsEnumType($argType)) {
</span><del>-            my $className = GetEnumerationClassName($argType);
</del><ins>+            my $className = GetEnumerationClassName($interface, $argType);
+            my $classIdentifier = GetEnumerationClassIdentifier($interface, $argType);
+
</ins><span class="cx">             $implIncludes{&quot;&lt;runtime/Error.h&gt;&quot;} = 1;
</span><span class="cx"> 
</span><span class="cx">             my $nativeType = $className;
</span><span class="lines">@@ -3652,11 +3664,11 @@
</span><span class="cx">                 $indent = &quot;    &quot;;
</span><span class="cx">             }
</span><span class="cx"> 
</span><del>-            push(@$outputArray, &quot;$indent    $defineOptionalValue = parse$className(*state, ${name}Value);\n&quot;);
</del><ins>+            push(@$outputArray, &quot;$indent    $defineOptionalValue = parse$classIdentifier(*state, ${name}Value);\n&quot;);
</ins><span class="cx">             push(@$outputArray, &quot;$indent    if (UNLIKELY(state-&gt;hadException()))\n&quot;);
</span><span class="cx">             push(@$outputArray, &quot;$indent        return JSValue::encode(jsUndefined());\n&quot;);
</span><span class="cx">             push(@$outputArray, &quot;$indent    if (UNLIKELY(!$optionalValue))\n&quot;);
</span><del>-            push(@$outputArray, &quot;$indent        return throwArgumentMustBeEnumError(*state, $argsIndex, \&quot;$name\&quot;, \&quot;$interfaceName\&quot;, $quotedFunctionName, expectedEnumerationValues$className);\n&quot;);
</del><ins>+            push(@$outputArray, &quot;$indent        return throwArgumentMustBeEnumError(*state, $argsIndex, \&quot;$name\&quot;, \&quot;$interfaceName\&quot;, $quotedFunctionName, expectedEnumerationValues$classIdentifier);\n&quot;);
</ins><span class="cx">             push(@$outputArray, &quot;$indent    $name = optionalValue.value();\n&quot;) if $optionalValue ne $name;
</span><span class="cx"> 
</span><span class="cx">             push(@$outputArray, &quot;    }\n&quot;) if $indent ne &quot;&quot;;
</span><span class="lines">@@ -3719,7 +3731,7 @@
</span><span class="cx">                     $outer = &quot;&quot;;
</span><span class="cx">                     $inner = &quot;state-&gt;argument($argsIndex)&quot;;
</span><span class="cx">                 }
</span><del>-                push(@$outputArray, &quot;    $nativeType $name = $outer&quot; . JSValueToNative($parameter, $inner, $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;}) . &quot;;\n&quot;);
</del><ins>+                push(@$outputArray, &quot;    $nativeType $name = $outer&quot; . JSValueToNative($interface, $parameter, $inner, $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;}) . &quot;;\n&quot;);
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             # Check if the type conversion succeeded.
</span><span class="lines">@@ -3862,7 +3874,7 @@
</span><span class="cx">     push(@implContent, &quot;\nusing namespace JSC;\n\n&quot;);
</span><span class="cx">     push(@implContent, &quot;namespace WebCore {\n\n&quot;);
</span><span class="cx"> 
</span><del>-    push(@implContent, GetEnumerationImplementationContent($enumerations));
</del><ins>+    push(@implContent, GenerateEnumerationImplementationContent($interface, $enumerations));
</ins><span class="cx"> 
</span><span class="cx">     # Constructor
</span><span class="cx">     push(@implContent, &quot;${className}::${className}(JSObject* callback, JSDOMGlobalObject* globalObject)\n&quot;);
</span><span class="lines">@@ -3939,7 +3951,7 @@
</span><span class="cx"> 
</span><span class="cx">        push(@implContent, $codeGenerator-&gt;GenerateCompileTimeCheckForEnumsIfNeeded($interface));
</span><span class="cx"> 
</span><del>-       GenerateConstructorDefinitions(\@implContent, $className, &quot;&quot;, $interfaceName, $visibleInterfaceName, $interface);
</del><ins>+       GenerateConstructorDefinitions(\@implContent, $className, &quot;&quot;, $visibleInterfaceName, $interface);
</ins><span class="cx"> 
</span><span class="cx">        push(@implContent, &quot;JSValue ${className}::getConstructor(VM&amp; vm, const JSGlobalObject* globalObject)\n{\n&quot;);
</span><span class="cx">        push(@implContent, &quot;    return getDOMConstructor&lt;${className}Constructor&gt;(vm, *jsCast&lt;const JSDOMGlobalObject*&gt;(globalObject));\n&quot;);
</span><span class="lines">@@ -4317,9 +4329,7 @@
</span><span class="cx"> 
</span><span class="cx"> sub JSValueToNative
</span><span class="cx"> {
</span><del>-    my $signature = shift;
-    my $value = shift;
-    my $conditional = shift;
</del><ins>+    my ($interface, $signature, $value, $conditional) = @_;
</ins><span class="cx"> 
</span><span class="cx">     my $type = $signature-&gt;type;
</span><span class="cx"> 
</span><span class="lines">@@ -4368,7 +4378,7 @@
</span><span class="cx">     return &quot;valueToDate(state, $value)&quot; if $type eq &quot;Date&quot;;
</span><span class="cx"> 
</span><span class="cx">     return &quot;to$type($value)&quot; if $codeGenerator-&gt;IsTypedArrayType($type);
</span><del>-    return &quot;parse&quot; . GetEnumerationClassName($type) . &quot;(*state, $value)&quot; if $codeGenerator-&gt;IsEnumType($type);
</del><ins>+    return &quot;parse&quot; . GetEnumerationClassIdentifier($interface, $type) . &quot;(*state, $value)&quot; if $codeGenerator-&gt;IsEnumType($type);
</ins><span class="cx"> 
</span><span class="cx">     AddToImplIncludes(&quot;JS$type.h&quot;, $conditional);
</span><span class="cx"> 
</span><span class="lines">@@ -4747,10 +4757,7 @@
</span><span class="cx"> 
</span><span class="cx"> sub GeneratePrototypeDeclaration
</span><span class="cx"> {
</span><del>-    my $outputArray = shift;
-    my $className = shift;
-    my $interface = shift;
-    my $interfaceName = shift;
</del><ins>+    my ($outputArray, $className, $interface) = @_;
</ins><span class="cx"> 
</span><span class="cx">     my $prototypeClassName = &quot;${className}Prototype&quot;;
</span><span class="cx"> 
</span><span class="lines">@@ -4826,11 +4833,9 @@
</span><span class="cx"> 
</span><span class="cx"> sub GenerateConstructorDeclaration
</span><span class="cx"> {
</span><del>-    my $outputArray = shift;
-    my $className = shift;
-    my $interface = shift;
-    my $interfaceName = shift;
</del><ins>+    my ($outputArray, $className, $interface) = @_;
</ins><span class="cx"> 
</span><ins>+    my $interfaceName = $interface-&gt;name;
</ins><span class="cx">     my $constructorClassName = &quot;${className}Constructor&quot;;
</span><span class="cx">     my $templateClassName = GetConstructorTemplateClassName($interface);
</span><span class="cx"> 
</span><span class="lines">@@ -4843,29 +4848,23 @@
</span><span class="cx"> 
</span><span class="cx"> sub GenerateConstructorDefinitions
</span><span class="cx"> {
</span><del>-    my $outputArray = shift;
-    my $className = shift;
-    my $protoClassName = shift;
-    my $interfaceName = shift;
-    my $visibleInterfaceName = shift;
-    my $interface = shift;
-    my $generatingNamedConstructor = shift;
</del><ins>+    my ($outputArray, $className, $protoClassName, $visibleInterfaceName, $interface, $generatingNamedConstructor) = @_;
</ins><span class="cx"> 
</span><span class="cx">     if (IsConstructable($interface)) {
</span><span class="cx">         my @constructors = @{$interface-&gt;constructors};
</span><span class="cx">         if (@constructors &gt; 1) {
</span><span class="cx">             foreach my $constructor (@constructors) {
</span><del>-                GenerateConstructorDefinition($outputArray, $className, $protoClassName, $interfaceName, $visibleInterfaceName, $interface, $generatingNamedConstructor, $constructor);
</del><ins>+                GenerateConstructorDefinition($outputArray, $className, $protoClassName, $visibleInterfaceName, $interface, $generatingNamedConstructor, $constructor);
</ins><span class="cx">             }
</span><span class="cx">             GenerateOverloadedConstructorDefinition($outputArray, $className, $interface);
</span><span class="cx">         } elsif (@constructors == 1) {
</span><del>-            GenerateConstructorDefinition($outputArray, $className, $protoClassName, $interfaceName, $visibleInterfaceName, $interface, $generatingNamedConstructor, $constructors[0]);
</del><ins>+            GenerateConstructorDefinition($outputArray, $className, $protoClassName, $visibleInterfaceName, $interface, $generatingNamedConstructor, $constructors[0]);
</ins><span class="cx">         } else {
</span><del>-            GenerateConstructorDefinition($outputArray, $className, $protoClassName, $interfaceName, $visibleInterfaceName, $interface, $generatingNamedConstructor);
</del><ins>+            GenerateConstructorDefinition($outputArray, $className, $protoClassName, $visibleInterfaceName, $interface, $generatingNamedConstructor);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    GenerateConstructorHelperMethods($outputArray, $className, $protoClassName, $interfaceName, $visibleInterfaceName, $interface, $generatingNamedConstructor);
</del><ins>+    GenerateConstructorHelperMethods($outputArray, $className, $protoClassName, $visibleInterfaceName, $interface, $generatingNamedConstructor);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> sub GenerateOverloadedConstructorDefinition
</span><span class="lines">@@ -4915,19 +4914,11 @@
</span><span class="cx"> 
</span><span class="cx"> sub GenerateConstructorDefinition
</span><span class="cx"> {
</span><del>-    my $outputArray = shift;
-    my $className = shift;
-    my $protoClassName = shift;
-    my $interfaceName = shift;
-    my $visibleInterfaceName = shift;
-    my $interface = shift;
-    my $generatingNamedConstructor = shift;
-    my $function = shift;
</del><ins>+    my ($outputArray, $className, $protoClassName, $visibleInterfaceName, $interface, $generatingNamedConstructor, $function) = @_;
</ins><span class="cx"> 
</span><del>-    if (IsJSBuiltinConstructor($interface)) {
-        return;
-    }
</del><ins>+    return if IsJSBuiltinConstructor($interface);
</ins><span class="cx"> 
</span><ins>+    my $interfaceName = $interface-&gt;name;
</ins><span class="cx">     my $constructorClassName = $generatingNamedConstructor ? &quot;${className}NamedConstructor&quot; : &quot;${className}Constructor&quot;;
</span><span class="cx"> 
</span><span class="cx">     if (IsConstructable($interface)) {
</span><span class="lines">@@ -5040,7 +5031,7 @@
</span><span class="cx">             # FIXME: For now, we do not support SVG constructors.
</span><span class="cx">             # FIXME: Currently [Constructor(...)] does not yet support optional arguments without [Default=...]
</span><span class="cx">             my $numParameters = @{$function-&gt;parameters};
</span><del>-            my ($dummy, $paramIndex) = GenerateParametersCheck($outputArray, $function, $interface, $numParameters, $interfaceName, &quot;constructorCallback&quot;, undef, undef, undef);
</del><ins>+            my ($dummy, $paramIndex) = GenerateParametersCheck($outputArray, $function, $interface, $numParameters, &quot;constructorCallback&quot;, undef, undef, undef);
</ins><span class="cx"> 
</span><span class="cx">             if ($codeGenerator-&gt;ExtendedAttributeContains($interface-&gt;extendedAttributes-&gt;{&quot;ConstructorCallWith&quot;}, &quot;ScriptState&quot;)) {
</span><span class="cx">                 push(@constructorArgList, &quot;*state&quot;);
</span><span class="lines">@@ -5126,13 +5117,7 @@
</span><span class="cx"> 
</span><span class="cx"> sub GenerateConstructorHelperMethods
</span><span class="cx"> {
</span><del>-    my $outputArray = shift;
-    my $className = shift;
-    my $protoClassName = shift;
-    my $interfaceName = shift;
-    my $visibleInterfaceName = shift;
-    my $interface = shift;
-    my $generatingNamedConstructor = shift;
</del><ins>+    my ($outputArray, $className, $protoClassName, $visibleInterfaceName, $interface, $generatingNamedConstructor) = @_;
</ins><span class="cx"> 
</span><span class="cx">     my $constructorClassName = $generatingNamedConstructor ? &quot;${className}NamedConstructor&quot; : &quot;${className}Constructor&quot;;
</span><span class="cx">     my $leastConstructorLength = 0;
</span><span class="lines">@@ -5183,15 +5168,9 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     push(@$outputArray, &quot;    putDirect(vm, vm.propertyNames-&gt;name, jsNontrivialString(&amp;vm, String(ASCIILiteral(\&quot;$visibleInterfaceName\&quot;))), ReadOnly | DontEnum);\n&quot;);
</span><ins>+    push(@$outputArray, &quot;    putDirect(vm, vm.propertyNames-&gt;length, jsNumber(${leastConstructorLength}), ReadOnly | DontEnum);\n&quot;) if defined $leastConstructorLength;
+    push(@$outputArray, &quot;    reifyStaticProperties(vm, ${className}ConstructorTableValues, *this);\n&quot;) if ConstructorHasProperties($interface);
</ins><span class="cx"> 
</span><del>-    if (defined $leastConstructorLength) {
-        push(@$outputArray, &quot;    putDirect(vm, vm.propertyNames-&gt;length, jsNumber(${leastConstructorLength}), ReadOnly | DontEnum);\n&quot;);
-    }
-
-    if (ConstructorHasProperties($interface)) {
-        push(@$outputArray, &quot;    reifyStaticProperties(vm, ${className}ConstructorTableValues, *this);\n&quot;);
-    }
-
</del><span class="cx">     push(@$outputArray, &quot;}\n\n&quot;);
</span><span class="cx"> 
</span><span class="cx">     my $conditionalString = $codeGenerator-&gt;GenerateConstructorConditionalString($interface);
</span><span class="lines">@@ -5212,7 +5191,7 @@
</span><span class="cx">     if (IsJSBuiltinConstructor($interface)) {
</span><span class="cx">         push(@$outputArray, &quot;template&lt;&gt; FunctionExecutable* ${constructorClassName}::initializeExecutable(VM&amp; vm)\n&quot;);
</span><span class="cx">         push(@$outputArray, &quot;{\n&quot;);
</span><del>-        push(@$outputArray, &quot;    return &quot; . GetJSBuiltinFunctionNameFromString($interfaceName, &quot;initialize&quot; . $interfaceName) . &quot;(vm);\n&quot;);
</del><ins>+        push(@$outputArray, &quot;    return &quot; . GetJSBuiltinFunctionNameFromString($interface-&gt;name, &quot;initialize&quot; . $interface-&gt;name) . &quot;(vm);\n&quot;);
</ins><span class="cx">         push(@$outputArray, &quot;}\n&quot;);
</span><span class="cx">         push(@$outputArray, &quot;\n&quot;);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -87,11 +87,11 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-JSString* jsStringWithCache(ExecState*, TestEnumType);
-Optional&lt;TestEnumType&gt; parseTestEnumType(ExecState&amp;, JSValue);
-extern const char expectedEnumerationValuesTestEnumType[];
</del><ins>+JSString* jsStringWithCache(ExecState*, TestObj::EnumType);
+Optional&lt;TestObj::EnumType&gt; parseTestObjEnumType(ExecState&amp;, JSValue);
+extern const char expectedEnumerationValuesTestObjEnumType[];
</ins><span class="cx"> 
</span><del>-JSString* jsStringWithCache(ExecState* state, TestEnumType enumerationValue)
</del><ins>+JSString* jsStringWithCache(ExecState* state, TestObj::EnumType enumerationValue)
</ins><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const String&gt; values[] = {
</span><span class="cx">         emptyString(),
</span><span class="lines">@@ -99,39 +99,39 @@
</span><span class="cx">         ASCIILiteral(&quot;EnumValue2&quot;),
</span><span class="cx">         ASCIILiteral(&quot;EnumValue3&quot;),
</span><span class="cx">     };
</span><del>-    static_assert(static_cast&lt;size_t&gt;(TestEnumType::EmptyString) == 0, &quot;TestEnumType::EmptyString is not 0 as expected&quot;);
-    static_assert(static_cast&lt;size_t&gt;(TestEnumType::EnumValue1) == 1, &quot;TestEnumType::EnumValue1 is not 1 as expected&quot;);
-    static_assert(static_cast&lt;size_t&gt;(TestEnumType::EnumValue2) == 2, &quot;TestEnumType::EnumValue2 is not 2 as expected&quot;);
-    static_assert(static_cast&lt;size_t&gt;(TestEnumType::EnumValue3) == 3, &quot;TestEnumType::EnumValue3 is not 3 as expected&quot;);
</del><ins>+    static_assert(static_cast&lt;size_t&gt;(TestObj::EnumType::EmptyString) == 0, &quot;TestObj::EnumType::EmptyString is not 0 as expected&quot;);
+    static_assert(static_cast&lt;size_t&gt;(TestObj::EnumType::EnumValue1) == 1, &quot;TestObj::EnumType::EnumValue1 is not 1 as expected&quot;);
+    static_assert(static_cast&lt;size_t&gt;(TestObj::EnumType::EnumValue2) == 2, &quot;TestObj::EnumType::EnumValue2 is not 2 as expected&quot;);
+    static_assert(static_cast&lt;size_t&gt;(TestObj::EnumType::EnumValue3) == 3, &quot;TestObj::EnumType::EnumValue3 is not 3 as expected&quot;);
</ins><span class="cx">     ASSERT(static_cast&lt;size_t&gt;(enumerationValue) &lt; WTF_ARRAY_LENGTH(values));
</span><span class="cx">     return jsStringWithCache(state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; struct JSValueTraits&lt;TestEnumType&gt; {
-    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, TestEnumType value) { return jsStringWithCache(state, value); }
</del><ins>+template&lt;&gt; struct JSValueTraits&lt;TestObj::EnumType&gt; {
+    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, TestObj::EnumType value) { return jsStringWithCache(state, value); }
</ins><span class="cx"> };
</span><span class="cx"> 
</span><del>-Optional&lt;TestEnumType&gt; parseTestEnumType(ExecState&amp; state, JSValue value)
</del><ins>+Optional&lt;TestObj::EnumType&gt; parseTestObjEnumType(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue.isEmpty())
</span><del>-        return TestEnumType::EmptyString;
</del><ins>+        return TestObj::EnumType::EmptyString;
</ins><span class="cx">     if (stringValue == &quot;EnumValue1&quot;)
</span><del>-        return TestEnumType::EnumValue1;
</del><ins>+        return TestObj::EnumType::EnumValue1;
</ins><span class="cx">     if (stringValue == &quot;EnumValue2&quot;)
</span><del>-        return TestEnumType::EnumValue2;
</del><ins>+        return TestObj::EnumType::EnumValue2;
</ins><span class="cx">     if (stringValue == &quot;EnumValue3&quot;)
</span><del>-        return TestEnumType::EnumValue3;
</del><ins>+        return TestObj::EnumType::EnumValue3;
</ins><span class="cx">     return Nullopt;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const char expectedEnumerationValuesTestEnumType[] = &quot;\&quot;\&quot;, \&quot;EnumValue1\&quot;, \&quot;EnumValue2\&quot;, \&quot;EnumValue3\&quot;&quot;;
</del><ins>+const char expectedEnumerationValuesTestObjEnumType[] = &quot;\&quot;\&quot;, \&quot;EnumValue1\&quot;, \&quot;EnumValue2\&quot;, \&quot;EnumValue3\&quot;&quot;;
</ins><span class="cx"> 
</span><del>-JSString* jsStringWithCache(ExecState*, Optional);
-Optional&lt;Optional&gt; parseOptional(ExecState&amp;, JSValue);
-extern const char expectedEnumerationValuesOptional[];
</del><ins>+JSString* jsStringWithCache(ExecState*, TestObj::Optional);
+Optional&lt;TestObj::Optional&gt; parseTestObjOptional(ExecState&amp;, JSValue);
+extern const char expectedEnumerationValuesTestObjOptional[];
</ins><span class="cx"> 
</span><del>-JSString* jsStringWithCache(ExecState* state, Optional enumerationValue)
</del><ins>+JSString* jsStringWithCache(ExecState* state, TestObj::Optional enumerationValue)
</ins><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const String&gt; values[] = {
</span><span class="cx">         emptyString(),
</span><span class="lines">@@ -139,130 +139,226 @@
</span><span class="cx">         ASCIILiteral(&quot;OptionalValue2&quot;),
</span><span class="cx">         ASCIILiteral(&quot;OptionalValue3&quot;),
</span><span class="cx">     };
</span><del>-    static_assert(static_cast&lt;size_t&gt;(Optional::EmptyString) == 0, &quot;Optional::EmptyString is not 0 as expected&quot;);
-    static_assert(static_cast&lt;size_t&gt;(Optional::OptionalValue1) == 1, &quot;Optional::OptionalValue1 is not 1 as expected&quot;);
-    static_assert(static_cast&lt;size_t&gt;(Optional::OptionalValue2) == 2, &quot;Optional::OptionalValue2 is not 2 as expected&quot;);
-    static_assert(static_cast&lt;size_t&gt;(Optional::OptionalValue3) == 3, &quot;Optional::OptionalValue3 is not 3 as expected&quot;);
</del><ins>+    static_assert(static_cast&lt;size_t&gt;(TestObj::Optional::EmptyString) == 0, &quot;TestObj::Optional::EmptyString is not 0 as expected&quot;);
+    static_assert(static_cast&lt;size_t&gt;(TestObj::Optional::OptionalValue1) == 1, &quot;TestObj::Optional::OptionalValue1 is not 1 as expected&quot;);
+    static_assert(static_cast&lt;size_t&gt;(TestObj::Optional::OptionalValue2) == 2, &quot;TestObj::Optional::OptionalValue2 is not 2 as expected&quot;);
+    static_assert(static_cast&lt;size_t&gt;(TestObj::Optional::OptionalValue3) == 3, &quot;TestObj::Optional::OptionalValue3 is not 3 as expected&quot;);
</ins><span class="cx">     ASSERT(static_cast&lt;size_t&gt;(enumerationValue) &lt; WTF_ARRAY_LENGTH(values));
</span><span class="cx">     return jsStringWithCache(state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; struct JSValueTraits&lt;Optional&gt; {
-    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, Optional value) { return jsStringWithCache(state, value); }
</del><ins>+template&lt;&gt; struct JSValueTraits&lt;TestObj::Optional&gt; {
+    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, TestObj::Optional value) { return jsStringWithCache(state, value); }
</ins><span class="cx"> };
</span><span class="cx"> 
</span><del>-Optional&lt;Optional&gt; parseOptional(ExecState&amp; state, JSValue value)
</del><ins>+Optional&lt;TestObj::Optional&gt; parseTestObjOptional(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue.isEmpty())
</span><del>-        return Optional::EmptyString;
</del><ins>+        return TestObj::Optional::EmptyString;
</ins><span class="cx">     if (stringValue == &quot;OptionalValue1&quot;)
</span><del>-        return Optional::OptionalValue1;
</del><ins>+        return TestObj::Optional::OptionalValue1;
</ins><span class="cx">     if (stringValue == &quot;OptionalValue2&quot;)
</span><del>-        return Optional::OptionalValue2;
</del><ins>+        return TestObj::Optional::OptionalValue2;
</ins><span class="cx">     if (stringValue == &quot;OptionalValue3&quot;)
</span><del>-        return Optional::OptionalValue3;
</del><ins>+        return TestObj::Optional::OptionalValue3;
</ins><span class="cx">     return Nullopt;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const char expectedEnumerationValuesOptional[] = &quot;\&quot;\&quot;, \&quot;OptionalValue1\&quot;, \&quot;OptionalValue2\&quot;, \&quot;OptionalValue3\&quot;&quot;;
</del><ins>+const char expectedEnumerationValuesTestObjOptional[] = &quot;\&quot;\&quot;, \&quot;OptionalValue1\&quot;, \&quot;OptionalValue2\&quot;, \&quot;OptionalValue3\&quot;&quot;;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition1)
</span><span class="cx"> 
</span><del>-JSString* jsStringWithCache(ExecState*, TestEnumA);
-Optional&lt;TestEnumA&gt; parseTestEnumA(ExecState&amp;, JSValue);
-extern const char expectedEnumerationValuesTestEnumA[];
</del><ins>+JSString* jsStringWithCache(ExecState*, TestObj::EnumA);
+Optional&lt;TestObj::EnumA&gt; parseTestObjEnumA(ExecState&amp;, JSValue);
+extern const char expectedEnumerationValuesTestObjEnumA[];
</ins><span class="cx"> 
</span><del>-JSString* jsStringWithCache(ExecState* state, TestEnumA enumerationValue)
</del><ins>+JSString* jsStringWithCache(ExecState* state, TestObj::EnumA enumerationValue)
</ins><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const String&gt; values[] = {
</span><span class="cx">         ASCIILiteral(&quot;A&quot;),
</span><span class="cx">     };
</span><del>-    static_assert(static_cast&lt;size_t&gt;(TestEnumA::A) == 0, &quot;TestEnumA::A is not 0 as expected&quot;);
</del><ins>+    static_assert(static_cast&lt;size_t&gt;(TestObj::EnumA::A) == 0, &quot;TestObj::EnumA::A is not 0 as expected&quot;);
</ins><span class="cx">     ASSERT(static_cast&lt;size_t&gt;(enumerationValue) &lt; WTF_ARRAY_LENGTH(values));
</span><span class="cx">     return jsStringWithCache(state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; struct JSValueTraits&lt;TestEnumA&gt; {
-    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, TestEnumA value) { return jsStringWithCache(state, value); }
</del><ins>+template&lt;&gt; struct JSValueTraits&lt;TestObj::EnumA&gt; {
+    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, TestObj::EnumA value) { return jsStringWithCache(state, value); }
</ins><span class="cx"> };
</span><span class="cx"> 
</span><del>-Optional&lt;TestEnumA&gt; parseTestEnumA(ExecState&amp; state, JSValue value)
</del><ins>+Optional&lt;TestObj::EnumA&gt; parseTestObjEnumA(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue == &quot;A&quot;)
</span><del>-        return TestEnumA::A;
</del><ins>+        return TestObj::EnumA::A;
</ins><span class="cx">     return Nullopt;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const char expectedEnumerationValuesTestEnumA[] = &quot;\&quot;A\&quot;&quot;;
</del><ins>+const char expectedEnumerationValuesTestObjEnumA[] = &quot;\&quot;A\&quot;&quot;;
</ins><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition1) &amp;&amp; ENABLE(Condition2)
</span><span class="cx"> 
</span><del>-JSString* jsStringWithCache(ExecState*, TestEnumB);
-Optional&lt;TestEnumB&gt; parseTestEnumB(ExecState&amp;, JSValue);
-extern const char expectedEnumerationValuesTestEnumB[];
</del><ins>+JSString* jsStringWithCache(ExecState*, TestObj::EnumB);
+Optional&lt;TestObj::EnumB&gt; parseTestObjEnumB(ExecState&amp;, JSValue);
+extern const char expectedEnumerationValuesTestObjEnumB[];
</ins><span class="cx"> 
</span><del>-JSString* jsStringWithCache(ExecState* state, TestEnumB enumerationValue)
</del><ins>+JSString* jsStringWithCache(ExecState* state, TestObj::EnumB enumerationValue)
</ins><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const String&gt; values[] = {
</span><span class="cx">         ASCIILiteral(&quot;B&quot;),
</span><span class="cx">     };
</span><del>-    static_assert(static_cast&lt;size_t&gt;(TestEnumB::B) == 0, &quot;TestEnumB::B is not 0 as expected&quot;);
</del><ins>+    static_assert(static_cast&lt;size_t&gt;(TestObj::EnumB::B) == 0, &quot;TestObj::EnumB::B is not 0 as expected&quot;);
</ins><span class="cx">     ASSERT(static_cast&lt;size_t&gt;(enumerationValue) &lt; WTF_ARRAY_LENGTH(values));
</span><span class="cx">     return jsStringWithCache(state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; struct JSValueTraits&lt;TestEnumB&gt; {
-    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, TestEnumB value) { return jsStringWithCache(state, value); }
</del><ins>+template&lt;&gt; struct JSValueTraits&lt;TestObj::EnumB&gt; {
+    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, TestObj::EnumB value) { return jsStringWithCache(state, value); }
</ins><span class="cx"> };
</span><span class="cx"> 
</span><del>-Optional&lt;TestEnumB&gt; parseTestEnumB(ExecState&amp; state, JSValue value)
</del><ins>+Optional&lt;TestObj::EnumB&gt; parseTestObjEnumB(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue == &quot;B&quot;)
</span><del>-        return TestEnumB::B;
</del><ins>+        return TestObj::EnumB::B;
</ins><span class="cx">     return Nullopt;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const char expectedEnumerationValuesTestEnumB[] = &quot;\&quot;B\&quot;&quot;;
</del><ins>+const char expectedEnumerationValuesTestObjEnumB[] = &quot;\&quot;B\&quot;&quot;;
</ins><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition1) || ENABLE(Condition2)
</span><span class="cx"> 
</span><del>-JSString* jsStringWithCache(ExecState*, TestEnumC);
-Optional&lt;TestEnumC&gt; parseTestEnumC(ExecState&amp;, JSValue);
-extern const char expectedEnumerationValuesTestEnumC[];
</del><ins>+JSString* jsStringWithCache(ExecState*, TestObj::EnumC);
+Optional&lt;TestObj::EnumC&gt; parseTestObjEnumC(ExecState&amp;, JSValue);
+extern const char expectedEnumerationValuesTestObjEnumC[];
</ins><span class="cx"> 
</span><del>-JSString* jsStringWithCache(ExecState* state, TestEnumC enumerationValue)
</del><ins>+JSString* jsStringWithCache(ExecState* state, TestObj::EnumC enumerationValue)
</ins><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const String&gt; values[] = {
</span><span class="cx">         ASCIILiteral(&quot;C&quot;),
</span><span class="cx">     };
</span><del>-    static_assert(static_cast&lt;size_t&gt;(TestEnumC::C) == 0, &quot;TestEnumC::C is not 0 as expected&quot;);
</del><ins>+    static_assert(static_cast&lt;size_t&gt;(TestObj::EnumC::C) == 0, &quot;TestObj::EnumC::C is not 0 as expected&quot;);
</ins><span class="cx">     ASSERT(static_cast&lt;size_t&gt;(enumerationValue) &lt; WTF_ARRAY_LENGTH(values));
</span><span class="cx">     return jsStringWithCache(state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; struct JSValueTraits&lt;TestEnumC&gt; {
-    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, TestEnumC value) { return jsStringWithCache(state, value); }
</del><ins>+template&lt;&gt; struct JSValueTraits&lt;TestObj::EnumC&gt; {
+    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, TestObj::EnumC value) { return jsStringWithCache(state, value); }
</ins><span class="cx"> };
</span><span class="cx"> 
</span><del>-Optional&lt;TestEnumC&gt; parseTestEnumC(ExecState&amp; state, JSValue value)
</del><ins>+Optional&lt;TestObj::EnumC&gt; parseTestObjEnumC(ExecState&amp; state, JSValue value)
</ins><span class="cx"> {
</span><span class="cx">     auto stringValue = value.toWTFString(&amp;state);
</span><span class="cx">     if (stringValue == &quot;C&quot;)
</span><del>-        return TestEnumC::C;
</del><ins>+        return TestObj::EnumC::C;
</ins><span class="cx">     return Nullopt;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const char expectedEnumerationValuesTestEnumC[] = &quot;\&quot;C\&quot;&quot;;
</del><ins>+const char expectedEnumerationValuesTestObjEnumC[] = &quot;\&quot;C\&quot;&quot;;
</ins><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+JSString* jsStringWithCache(ExecState*, TestObj::Kind);
+Optional&lt;TestObj::Kind&gt; parseTestObjKind(ExecState&amp;, JSValue);
+extern const char expectedEnumerationValuesTestObjKind[];
+
+JSString* jsStringWithCache(ExecState* state, TestObj::Kind enumerationValue)
+{
+    static NeverDestroyed&lt;const String&gt; values[] = {
+        ASCIILiteral(&quot;quick&quot;),
+        ASCIILiteral(&quot;dead&quot;),
+    };
+    static_assert(static_cast&lt;size_t&gt;(TestObj::Kind::Quick) == 0, &quot;TestObj::Kind::Quick is not 0 as expected&quot;);
+    static_assert(static_cast&lt;size_t&gt;(TestObj::Kind::Dead) == 1, &quot;TestObj::Kind::Dead is not 1 as expected&quot;);
+    ASSERT(static_cast&lt;size_t&gt;(enumerationValue) &lt; WTF_ARRAY_LENGTH(values));
+    return jsStringWithCache(state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
+}
+
+template&lt;&gt; struct JSValueTraits&lt;TestObj::Kind&gt; {
+    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, TestObj::Kind value) { return jsStringWithCache(state, value); }
+};
+
+Optional&lt;TestObj::Kind&gt; parseTestObjKind(ExecState&amp; state, JSValue value)
+{
+    auto stringValue = value.toWTFString(&amp;state);
+    if (stringValue == &quot;quick&quot;)
+        return TestObj::Kind::Quick;
+    if (stringValue == &quot;dead&quot;)
+        return TestObj::Kind::Dead;
+    return Nullopt;
+}
+
+const char expectedEnumerationValuesTestObjKind[] = &quot;\&quot;quick\&quot;, \&quot;dead\&quot;&quot;;
+
+JSString* jsStringWithCache(ExecState*, TestObj::Size);
+Optional&lt;TestObj::Size&gt; parseTestObjSize(ExecState&amp;, JSValue);
+extern const char expectedEnumerationValuesTestObjSize[];
+
+JSString* jsStringWithCache(ExecState* state, TestObj::Size enumerationValue)
+{
+    static NeverDestroyed&lt;const String&gt; values[] = {
+        ASCIILiteral(&quot;small&quot;),
+        ASCIILiteral(&quot;much-much-larger&quot;),
+    };
+    static_assert(static_cast&lt;size_t&gt;(TestObj::Size::Small) == 0, &quot;TestObj::Size::Small is not 0 as expected&quot;);
+    static_assert(static_cast&lt;size_t&gt;(TestObj::Size::MuchMuchLarger) == 1, &quot;TestObj::Size::MuchMuchLarger is not 1 as expected&quot;);
+    ASSERT(static_cast&lt;size_t&gt;(enumerationValue) &lt; WTF_ARRAY_LENGTH(values));
+    return jsStringWithCache(state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
+}
+
+template&lt;&gt; struct JSValueTraits&lt;TestObj::Size&gt; {
+    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, TestObj::Size value) { return jsStringWithCache(state, value); }
+};
+
+Optional&lt;TestObj::Size&gt; parseTestObjSize(ExecState&amp; state, JSValue value)
+{
+    auto stringValue = value.toWTFString(&amp;state);
+    if (stringValue == &quot;small&quot;)
+        return TestObj::Size::Small;
+    if (stringValue == &quot;much-much-larger&quot;)
+        return TestObj::Size::MuchMuchLarger;
+    return Nullopt;
+}
+
+const char expectedEnumerationValuesTestObjSize[] = &quot;\&quot;small\&quot;, \&quot;much-much-larger\&quot;&quot;;
+
+JSString* jsStringWithCache(ExecState*, TestObj::Confidence);
+Optional&lt;TestObj::Confidence&gt; parseTestObjConfidence(ExecState&amp;, JSValue);
+extern const char expectedEnumerationValuesTestObjConfidence[];
+
+JSString* jsStringWithCache(ExecState* state, TestObj::Confidence enumerationValue)
+{
+    static NeverDestroyed&lt;const String&gt; values[] = {
+        ASCIILiteral(&quot;high&quot;),
+        ASCIILiteral(&quot;kinda-low&quot;),
+    };
+    static_assert(static_cast&lt;size_t&gt;(TestObj::Confidence::High) == 0, &quot;TestObj::Confidence::High is not 0 as expected&quot;);
+    static_assert(static_cast&lt;size_t&gt;(TestObj::Confidence::KindaLow) == 1, &quot;TestObj::Confidence::KindaLow is not 1 as expected&quot;);
+    ASSERT(static_cast&lt;size_t&gt;(enumerationValue) &lt; WTF_ARRAY_LENGTH(values));
+    return jsStringWithCache(state, values[static_cast&lt;size_t&gt;(enumerationValue)]);
+}
+
+template&lt;&gt; struct JSValueTraits&lt;TestObj::Confidence&gt; {
+    static JSString* arrayJSValue(ExecState* state, JSDOMGlobalObject*, TestObj::Confidence value) { return jsStringWithCache(state, value); }
+};
+
+Optional&lt;TestObj::Confidence&gt; parseTestObjConfidence(ExecState&amp; state, JSValue value)
+{
+    auto stringValue = value.toWTFString(&amp;state);
+    if (stringValue == &quot;high&quot;)
+        return TestObj::Confidence::High;
+    if (stringValue == &quot;kinda-low&quot;)
+        return TestObj::Confidence::KindaLow;
+    return Nullopt;
+}
+
+const char expectedEnumerationValuesTestObjConfidence[] = &quot;\&quot;high\&quot;, \&quot;kinda-low\&quot;&quot;;
+
</ins><span class="cx"> // Functions
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TEST_FEATURE)
</span><span class="lines">@@ -2398,7 +2494,7 @@
</span><span class="cx">         return throwSetterTypeError(*state, &quot;TestObj&quot;, &quot;enumAttr&quot;);
</span><span class="cx">     }
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-    auto nativeValue = parseTestEnumType(*state, value);
</del><ins>+    auto nativeValue = parseTestObjEnumType(*state, value);
</ins><span class="cx">     if (UNLIKELY(state-&gt;hadException()))
</span><span class="cx">         return false;
</span><span class="cx">     if (UNLIKELY(!nativeValue))
</span><span class="lines">@@ -3530,7 +3626,7 @@
</span><span class="cx">         return throwSetterTypeError(*state, &quot;TestObj&quot;, &quot;attributeWithReservedEnumType&quot;);
</span><span class="cx">     }
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-    auto nativeValue = parseOptional(*state, value);
</del><ins>+    auto nativeValue = parseTestObjOptional(*state, value);
</ins><span class="cx">     if (UNLIKELY(state-&gt;hadException()))
</span><span class="cx">         return false;
</span><span class="cx">     if (UNLIKELY(!nativeValue))
</span><span class="lines">@@ -3944,12 +4040,12 @@
</span><span class="cx">     if (UNLIKELY(state-&gt;argumentCount() &lt; 1))
</span><span class="cx">         return throwVMError(state, createNotEnoughArgumentsError(state));
</span><span class="cx">     auto enumArgValue = state-&gt;argument(0);
</span><del>-    TestEnumType enumArg;
-    auto optionalValue = parseTestEnumType(*state, enumArgValue);
</del><ins>+    TestObj::EnumType enumArg;
+    auto optionalValue = parseTestObjEnumType(*state, enumArgValue);
</ins><span class="cx">     if (UNLIKELY(state-&gt;hadException()))
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     if (UNLIKELY(!optionalValue))
</span><del>-        return throwArgumentMustBeEnumError(*state, 0, &quot;enumArg&quot;, &quot;TestObj&quot;, &quot;methodWithEnumArg&quot;, expectedEnumerationValuesTestEnumType);
</del><ins>+        return throwArgumentMustBeEnumError(*state, 0, &quot;enumArg&quot;, &quot;TestObj&quot;, &quot;methodWithEnumArg&quot;, expectedEnumerationValuesTestObjEnumType);
</ins><span class="cx">     enumArg = optionalValue.value();
</span><span class="cx">     impl.methodWithEnumArg(enumArg);
</span><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="lines">@@ -3964,15 +4060,15 @@
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><span class="cx">     auto enumArgValue = state-&gt;argument(0);
</span><del>-    TestEnumType enumArg;
</del><ins>+    TestObj::EnumType enumArg;
</ins><span class="cx">     if (enumArgValue.isUndefined()) {
</span><del>-        enumArg = TestEnumType::EnumValue1;
</del><ins>+        enumArg = TestObj::EnumType::EnumValue1;
</ins><span class="cx">     } else {
</span><del>-        auto optionalValue = parseTestEnumType(*state, enumArgValue);
</del><ins>+        auto optionalValue = parseTestObjEnumType(*state, enumArgValue);
</ins><span class="cx">         if (UNLIKELY(state-&gt;hadException()))
</span><span class="cx">             return JSValue::encode(jsUndefined());
</span><span class="cx">         if (UNLIKELY(!optionalValue))
</span><del>-            return throwArgumentMustBeEnumError(*state, 0, &quot;enumArg&quot;, &quot;TestObj&quot;, &quot;methodWithOptionalEnumArgAndDefaultValue&quot;, expectedEnumerationValuesTestEnumType);
</del><ins>+            return throwArgumentMustBeEnumError(*state, 0, &quot;enumArg&quot;, &quot;TestObj&quot;, &quot;methodWithOptionalEnumArgAndDefaultValue&quot;, expectedEnumerationValuesTestObjEnumType);
</ins><span class="cx">         enumArg = optionalValue.value();
</span><span class="cx">     }
</span><span class="cx">     impl.methodWithOptionalEnumArgAndDefaultValue(enumArg);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestTestObjidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/TestObj.idl (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/TestObj.idl        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/bindings/scripts/test/TestObj.idl        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -39,6 +39,10 @@
</span><span class="cx"> [Conditional=Condition1&amp;Condition2] enum TestEnumB { &quot;B&quot; };
</span><span class="cx"> [Conditional=Condition1|Condition2] enum TestEnumC { &quot;C&quot; };
</span><span class="cx"> 
</span><ins>+enum TestObjKind { &quot;quick&quot;, &quot;dead&quot; };
+enum ObjSize { &quot;small&quot;, &quot;much-much-larger&quot; };
+enum TestConfidence { &quot;high&quot;, &quot;kinda-low&quot; };
+
</ins><span class="cx"> [
</span><span class="cx">     Constructor(TestCallback testCallback, TestCallbackFunction testCallbackFunction),
</span><span class="cx">     InterfaceName=TestObject
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoKeycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoKey.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoKey.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/crypto/CryptoKey.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-CryptoKey::CryptoKey(CryptoAlgorithmIdentifier algorithm, CryptoKeyType type, bool extractable, CryptoKeyUsage usages)
</del><ins>+CryptoKey::CryptoKey(CryptoAlgorithmIdentifier algorithm, Type type, bool extractable, CryptoKeyUsage usages)
</ins><span class="cx">     : m_algorithm(algorithm)
</span><span class="cx">     , m_type(type)
</span><span class="cx">     , m_extractable(extractable)
</span><span class="lines">@@ -53,26 +53,26 @@
</span><span class="cx">     // Subclasses will add other keys.
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Vector&lt;KeyUsage&gt; CryptoKey::usages() const
</del><ins>+auto CryptoKey::usages() const -&gt; Vector&lt;Usage&gt;
</ins><span class="cx"> {
</span><span class="cx">     // The result is ordered alphabetically.
</span><del>-    Vector&lt;KeyUsage&gt; result;
</del><ins>+    Vector&lt;Usage&gt; result;
</ins><span class="cx">     if (m_usages &amp; CryptoKeyUsageDecrypt)
</span><del>-        result.append(KeyUsage::Decrypt);
</del><ins>+        result.append(Usage::Decrypt);
</ins><span class="cx">     if (m_usages &amp; CryptoKeyUsageDeriveBits)
</span><del>-        result.append(KeyUsage::DeriveBits);
</del><ins>+        result.append(Usage::DeriveBits);
</ins><span class="cx">     if (m_usages &amp; CryptoKeyUsageDeriveKey)
</span><del>-        result.append(KeyUsage::DeriveKey);
</del><ins>+        result.append(Usage::DeriveKey);
</ins><span class="cx">     if (m_usages &amp; CryptoKeyUsageEncrypt)
</span><del>-        result.append(KeyUsage::Encrypt);
</del><ins>+        result.append(Usage::Encrypt);
</ins><span class="cx">     if (m_usages &amp; CryptoKeyUsageSign)
</span><del>-        result.append(KeyUsage::Sign);
</del><ins>+        result.append(Usage::Sign);
</ins><span class="cx">     if (m_usages &amp; CryptoKeyUsageUnwrapKey)
</span><del>-        result.append(KeyUsage::UnwrapKey);
</del><ins>+        result.append(Usage::UnwrapKey);
</ins><span class="cx">     if (m_usages &amp; CryptoKeyUsageVerify)
</span><del>-        result.append(KeyUsage::Verify);
</del><ins>+        result.append(Usage::Verify);
</ins><span class="cx">     if (m_usages &amp; CryptoKeyUsageWrapKey)
</span><del>-        result.append(KeyUsage::WrapKey);
</del><ins>+        result.append(Usage::WrapKey);
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -84,6 +84,7 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SUBTLE_CRYPTO)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoKeyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoKey.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoKey.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/crypto/CryptoKey.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -47,22 +47,24 @@
</span><span class="cx">     RSA
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-enum class KeyUsage { Encrypt, Decrypt, Sign, Verify, DeriveKey, DeriveBits, WrapKey, UnwrapKey };
-
-using KeyType = CryptoKeyType;
-
</del><span class="cx"> class CryptoKey : public RefCounted&lt;CryptoKey&gt; {
</span><span class="cx"> public:
</span><del>-    CryptoKey(CryptoAlgorithmIdentifier, CryptoKeyType, bool extractable, CryptoKeyUsage);
</del><ins>+    using Type = CryptoKeyType;
+    CryptoKey(CryptoAlgorithmIdentifier, Type, bool extractable, CryptoKeyUsage);
</ins><span class="cx">     virtual ~CryptoKey();
</span><span class="cx"> 
</span><span class="cx">     virtual CryptoKeyClass keyClass() const = 0;
</span><span class="cx"> 
</span><del>-    CryptoKeyType type() const;
</del><ins>+    Type type() const;
</ins><span class="cx">     bool extractable() const { return m_extractable; }
</span><span class="cx">     virtual void buildAlgorithmDescription(CryptoAlgorithmDescriptionBuilder&amp;) const;
</span><del>-    Vector&lt;KeyUsage&gt; usages() const;
</del><span class="cx"> 
</span><ins>+    // FIXME: Confusing to have CryptoKeyUsage and CryptoKey::Usage named almost the same, but be slightly different.
+    // CryptoKeyUsage values are bit masks so they can be combined with &quot;or&quot;, while this is a normal enum that must
+    // match what is defined in the IDL. Maybe we can rename CryptoKeyUsage to CryptoKey::UsagesBitmap?
+    enum class Usage { Encrypt, Decrypt, Sign, Verify, DeriveKey, DeriveBits, WrapKey, UnwrapKey };
+    Vector&lt;Usage&gt; usages() const;
+
</ins><span class="cx">     CryptoAlgorithmIdentifier algorithmIdentifier() const { return m_algorithm; }
</span><span class="cx">     CryptoKeyUsage usagesBitmap() const { return m_usages; }
</span><span class="cx">     bool allows(CryptoKeyUsage usage) const { return usage == (m_usages &amp; usage); }
</span><span class="lines">@@ -73,12 +75,12 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     CryptoAlgorithmIdentifier m_algorithm;
</span><del>-    CryptoKeyType m_type;
</del><ins>+    Type m_type;
</ins><span class="cx">     bool m_extractable;
</span><span class="cx">     CryptoKeyUsage m_usages;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-inline CryptoKeyType CryptoKey::type() const
</del><ins>+inline auto CryptoKey::type() const -&gt; Type
</ins><span class="cx"> {
</span><span class="cx">     return m_type;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontFacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontFace.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontFace.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/css/FontFace.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -317,22 +317,22 @@
</span><span class="cx">     return list-&gt;cssText();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-FontFaceLoadStatus FontFace::status() const
</del><ins>+auto FontFace::status() const -&gt; LoadStatus
</ins><span class="cx"> {
</span><span class="cx">     switch (m_backing-&gt;status()) {
</span><span class="cx">     case CSSFontFace::Status::Pending:
</span><del>-        return FontFaceLoadStatus::Unloaded;
</del><ins>+        return LoadStatus::Unloaded;
</ins><span class="cx">     case CSSFontFace::Status::Loading:
</span><del>-        return FontFaceLoadStatus::Loading;
</del><ins>+        return LoadStatus::Loading;
</ins><span class="cx">     case CSSFontFace::Status::TimedOut:
</span><del>-        return FontFaceLoadStatus::Error;
</del><ins>+        return LoadStatus::Error;
</ins><span class="cx">     case CSSFontFace::Status::Success:
</span><del>-        return FontFaceLoadStatus::Loaded;
</del><ins>+        return LoadStatus::Loaded;
</ins><span class="cx">     case CSSFontFace::Status::Failure:
</span><del>-        return FontFaceLoadStatus::Error;
</del><ins>+        return LoadStatus::Error;
</ins><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return FontFaceLoadStatus::Error;
</del><ins>+    return LoadStatus::Error;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FontFace::fontStateChanged(CSSFontFace&amp; face, CSSFontFace::Status, CSSFontFace::Status newState)
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontFaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontFace.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontFace.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/css/FontFace.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -42,8 +42,6 @@
</span><span class="cx"> class CSSValue;
</span><span class="cx"> class Dictionary;
</span><span class="cx"> 
</span><del>-enum class FontFaceLoadStatus { Unloaded, Loading, Loaded, Error };
-
</del><span class="cx"> class FontFace final : public RefCounted&lt;FontFace&gt;, public CSSFontFace::Client {
</span><span class="cx"> public:
</span><span class="cx">     static RefPtr&lt;FontFace&gt; create(JSC::ExecState&amp;, ScriptExecutionContext&amp;, const String&amp; family, JSC::JSValue source, const Dictionary&amp; descriptors, ExceptionCode&amp;);
</span><span class="lines">@@ -65,8 +63,10 @@
</span><span class="cx">     String unicodeRange() const;
</span><span class="cx">     String variant() const;
</span><span class="cx">     String featureSettings() const;
</span><del>-    FontFaceLoadStatus status() const;
</del><span class="cx"> 
</span><ins>+    enum class LoadStatus { Unloaded, Loading, Loaded, Error };
+    LoadStatus status() const;
+
</ins><span class="cx">     typedef DOMPromise&lt;FontFace&amp;, DOMCoreException&amp;&gt; Promise;
</span><span class="cx">     Promise&amp; promise() { return m_promise; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontFaceSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontFaceSet.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontFaceSet.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/css/FontFaceSet.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -182,16 +182,16 @@
</span><span class="cx">     return m_promise.value();
</span><span class="cx"> }
</span><span class="cx">     
</span><del>-FontFaceSetLoadStatus FontFaceSet::status() const
</del><ins>+auto FontFaceSet::status() const -&gt; LoadStatus
</ins><span class="cx"> {
</span><span class="cx">     switch (m_backing-&gt;status()) {
</span><span class="cx">     case CSSFontFaceSet::Status::Loading:
</span><del>-        return FontFaceSetLoadStatus::Loading;
</del><ins>+        return LoadStatus::Loading;
</ins><span class="cx">     case CSSFontFaceSet::Status::Loaded:
</span><del>-        return FontFaceSetLoadStatus::Loaded;
</del><ins>+        return LoadStatus::Loaded;
</ins><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return FontFaceSetLoadStatus::Loaded;
</del><ins>+    return LoadStatus::Loaded;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool FontFaceSet::canSuspendForDocumentSuspension() const
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontFaceSeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontFaceSet.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontFaceSet.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/css/FontFaceSet.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -35,8 +35,6 @@
</span><span class="cx"> 
</span><span class="cx"> class DOMCoreException;
</span><span class="cx"> 
</span><del>-enum class FontFaceSetLoadStatus { Loading, Loaded };
-
</del><span class="cx"> class FontFaceSet final : public RefCounted&lt;FontFaceSet&gt;, private CSSFontFaceSetClient, public EventTargetWithInlineData, private ActiveDOMObject {
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;FontFaceSet&gt; create(Document&amp;, const Vector&lt;RefPtr&lt;FontFace&gt;&gt;&amp; initialFaces);
</span><span class="lines">@@ -52,7 +50,8 @@
</span><span class="cx">     void load(JSC::ExecState&amp;, const String&amp; font, const String&amp; text, DeferredWrapper&amp;&amp; promise, ExceptionCode&amp;);
</span><span class="cx">     bool check(const String&amp; font, const String&amp; text, ExceptionCode&amp;);
</span><span class="cx"> 
</span><del>-    FontFaceSetLoadStatus status() const;
</del><ins>+    enum class LoadStatus { Loading, Loaded };
+    LoadStatus status() const;
</ins><span class="cx"> 
</span><span class="cx">     typedef DOMPromise&lt;FontFaceSet&amp;, DOMCoreException&amp;&gt; Promise;
</span><span class="cx">     Promise&amp; promise(JSC::ExecState&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/dom/Document.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -521,7 +521,7 @@
</span><span class="cx"> #endif
</span><span class="cx">     , m_loadEventDelayCount(0)
</span><span class="cx">     , m_loadEventDelayTimer(*this, &amp;Document::loadEventDelayTimerFired)
</span><del>-    , m_referrerPolicy(ReferrerHeaderPolicy::Default)
</del><ins>+    , m_referrerPolicy(ReferrerPolicy::Default)
</ins><span class="cx">     , m_writeRecursionIsTooDeep(false)
</span><span class="cx">     , m_writeRecursionDepth(0)
</span><span class="cx">     , m_lastHandledUserGestureTimestamp(0)
</span><span class="lines">@@ -3360,16 +3360,16 @@
</span><span class="cx">     // Note that we're supporting both the standard and legacy keywords for referrer
</span><span class="cx">     // policies, as defined by http://www.w3.org/TR/referrer-policy/#referrer-policy-delivery-meta
</span><span class="cx">     if (equalLettersIgnoringASCIICase(policy, &quot;no-referrer&quot;) || equalLettersIgnoringASCIICase(policy, &quot;never&quot;))
</span><del>-        setReferrerPolicy(ReferrerHeaderPolicy::Never);
</del><ins>+        setReferrerPolicy(ReferrerPolicy::Never);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(policy, &quot;unsafe-url&quot;) || equalLettersIgnoringASCIICase(policy, &quot;always&quot;))
</span><del>-        setReferrerPolicy(ReferrerHeaderPolicy::Always);
</del><ins>+        setReferrerPolicy(ReferrerPolicy::Always);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(policy, &quot;origin&quot;))
</span><del>-        setReferrerPolicy(ReferrerHeaderPolicy::Origin);
</del><ins>+        setReferrerPolicy(ReferrerPolicy::Origin);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(policy, &quot;no-referrer-when-downgrade&quot;) || equalLettersIgnoringASCIICase(policy, &quot;default&quot;))
</span><del>-        setReferrerPolicy(ReferrerHeaderPolicy::Default);
</del><ins>+        setReferrerPolicy(ReferrerPolicy::Default);
</ins><span class="cx">     else {
</span><span class="cx">         addConsoleMessage(MessageSource::Rendering, MessageLevel::Error, &quot;Failed to set referrer policy: The value '&quot; + policy + &quot;' is not one of 'no-referrer', 'origin', 'no-referrer-when-downgrade', or 'unsafe-url'. Defaulting to 'no-referrer'.&quot;);
</span><del>-        setReferrerPolicy(ReferrerHeaderPolicy::Never);
</del><ins>+        setReferrerPolicy(ReferrerPolicy::Never);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -6937,7 +6937,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(shouldEnforceContentDispositionAttachmentSandbox());
</span><span class="cx"> 
</span><del>-    setReferrerPolicy(ReferrerHeaderPolicy::Never);
</del><ins>+    setReferrerPolicy(ReferrerPolicy::Never);
</ins><span class="cx">     if (!isMediaDocument())
</span><span class="cx">         enforceSandboxFlags(SandboxAll);
</span><span class="cx">     else
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/dom/Document.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -361,8 +361,8 @@
</span><span class="cx">     bool didDispatchViewportPropertiesChanged() const { return m_didDispatchViewportPropertiesChanged; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    void setReferrerPolicy(ReferrerHeaderPolicy referrerPolicy) { m_referrerPolicy = referrerPolicy; }
-    ReferrerHeaderPolicy referrerPolicy() const { return m_referrerPolicy; }
</del><ins>+    void setReferrerPolicy(ReferrerPolicy referrerPolicy) { m_referrerPolicy = referrerPolicy; }
+    ReferrerPolicy referrerPolicy() const { return m_referrerPolicy; }
</ins><span class="cx"> 
</span><span class="cx">     DocumentType* doctype() const;
</span><span class="cx"> 
</span><span class="lines">@@ -1640,7 +1640,7 @@
</span><span class="cx"> 
</span><span class="cx">     ViewportArguments m_viewportArguments;
</span><span class="cx"> 
</span><del>-    ReferrerHeaderPolicy m_referrerPolicy;
</del><ins>+    ReferrerPolicy m_referrerPolicy;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_TIMING)
</span><span class="cx">     DocumentTiming m_documentTiming;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -1174,7 +1174,7 @@
</span><span class="cx">         if (m_textTracks) {
</span><span class="cx">             for (unsigned i = 0; i &lt; m_textTracks-&gt;length(); ++i) {
</span><span class="cx">                 TextTrack* track = m_textTracks-&gt;item(i);
</span><del>-                if (track-&gt;mode() != TextTrackMode::Disabled)
</del><ins>+                if (track-&gt;mode() != TextTrack::Mode::Disabled)
</ins><span class="cx">                     m_textTracksWhenResourceSelectionBegan.append(track);
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -1731,7 +1731,7 @@
</span><span class="cx">     // Mark this track as &quot;configured&quot; so configureTextTracks won't change the mode again.
</span><span class="cx">     track-&gt;setHasBeenConfigured(true);
</span><span class="cx">     
</span><del>-    if (track-&gt;mode() != TextTrackMode::Disabled &amp;&amp; trackIsLoaded)
</del><ins>+    if (track-&gt;mode() != TextTrack::Mode::Disabled &amp;&amp; trackIsLoaded)
</ins><span class="cx">         textTrackAddCues(track, track-&gt;cues());
</span><span class="cx"> 
</span><span class="cx">     configureTextTrackDisplay(AssumeTextTrackVisibilityChanged);
</span><span class="lines">@@ -1755,8 +1755,8 @@
</span><span class="cx"> 
</span><span class="cx"> void HTMLMediaElement::textTrackKindChanged(TextTrack* track)
</span><span class="cx"> {
</span><del>-    if (track-&gt;kind() != TextTrackKind::Captions &amp;&amp; track-&gt;kind() != TextTrackKind::Subtitles &amp;&amp; track-&gt;mode() == TextTrackMode::Showing)
-        track-&gt;setMode(TextTrackMode::Hidden);
</del><ins>+    if (track-&gt;kind() != TextTrack::Kind::Captions &amp;&amp; track-&gt;kind() != TextTrack::Kind::Subtitles &amp;&amp; track-&gt;mode() == TextTrack::Mode::Showing)
+        track-&gt;setMode(TextTrack::Mode::Hidden);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLMediaElement::beginIgnoringTrackDisplayUpdateRequests()
</span><span class="lines">@@ -1774,7 +1774,7 @@
</span><span class="cx"> 
</span><span class="cx"> void HTMLMediaElement::textTrackAddCues(TextTrack* track, const TextTrackCueList* cues) 
</span><span class="cx"> {
</span><del>-    if (track-&gt;mode() == TextTrackMode::Disabled)
</del><ins>+    if (track-&gt;mode() == TextTrack::Mode::Disabled)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     TrackDisplayUpdateScope scope(this);
</span><span class="lines">@@ -1791,7 +1791,7 @@
</span><span class="cx"> 
</span><span class="cx"> void HTMLMediaElement::textTrackAddCue(TextTrack* track, PassRefPtr&lt;TextTrackCue&gt; prpCue)
</span><span class="cx"> {
</span><del>-    if (track-&gt;mode() == TextTrackMode::Disabled)
</del><ins>+    if (track-&gt;mode() == TextTrack::Mode::Disabled)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;TextTrackCue&gt; cue = prpCue;
</span><span class="lines">@@ -3664,7 +3664,7 @@
</span><span class="cx">     textTrack-&gt;setReadinessState(TextTrack::Loaded);
</span><span class="cx"> 
</span><span class="cx">     // ... its text track mode to the text track hidden mode, and its text track list of cues to an empty list ...
</span><del>-    textTrack-&gt;setMode(TextTrackMode::Hidden);
</del><ins>+    textTrack-&gt;setMode(TextTrack::Mode::Hidden);
</ins><span class="cx"> 
</span><span class="cx">     return textTrack.release();
</span><span class="cx"> }
</span><span class="lines">@@ -3792,7 +3792,7 @@
</span><span class="cx">     for (size_t i = 0; i &lt; group.tracks.size(); ++i) {
</span><span class="cx">         RefPtr&lt;TextTrack&gt; textTrack = group.tracks[i];
</span><span class="cx"> 
</span><del>-        if (m_processingPreferenceChange &amp;&amp; textTrack-&gt;mode() == TextTrackMode::Showing)
</del><ins>+        if (m_processingPreferenceChange &amp;&amp; textTrack-&gt;mode() == TextTrack::Mode::Showing)
</ins><span class="cx">             currentlyEnabledTracks.append(textTrack);
</span><span class="cx"> 
</span><span class="cx">         int trackScore = captionPreferences ? captionPreferences-&gt;textTrackSelectionScore(textTrack.get(), this) : 0;
</span><span class="lines">@@ -3861,12 +3861,12 @@
</span><span class="cx">         for (size_t i = 0; i &lt; currentlyEnabledTracks.size(); ++i) {
</span><span class="cx">             RefPtr&lt;TextTrack&gt; textTrack = currentlyEnabledTracks[i];
</span><span class="cx">             if (textTrack != trackToEnable)
</span><del>-                textTrack-&gt;setMode(TextTrackMode::Disabled);
</del><ins>+                textTrack-&gt;setMode(TextTrack::Mode::Disabled);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (trackToEnable) {
</span><del>-        trackToEnable-&gt;setMode(TextTrackMode::Showing);
</del><ins>+        trackToEnable-&gt;setMode(TextTrack::Mode::Showing);
</ins><span class="cx"> 
</span><span class="cx">         // If user preferences indicate we should always display captions, make sure we reflect the
</span><span class="cx">         // proper status via the webkitClosedCaptionsVisible API call:
</span><span class="lines">@@ -3996,13 +3996,13 @@
</span><span class="cx">         for (int i = 0, length = trackList-&gt;length(); i &lt; length; ++i) {
</span><span class="cx">             TextTrack* track = trackList-&gt;item(i);
</span><span class="cx">             if (!trackToSelect || track != trackToSelect)
</span><del>-                track-&gt;setMode(TextTrackMode::Disabled);
</del><ins>+                track-&gt;setMode(TextTrack::Mode::Disabled);
</ins><span class="cx">             else
</span><del>-                track-&gt;setMode(TextTrackMode::Showing);
</del><ins>+                track-&gt;setMode(TextTrack::Mode::Showing);
</ins><span class="cx">         }
</span><span class="cx">     } else if (trackToSelect == TextTrack::captionMenuOffItem()) {
</span><span class="cx">         for (int i = 0, length = trackList-&gt;length(); i &lt; length; ++i)
</span><del>-            trackList-&gt;item(i)-&gt;setMode(TextTrackMode::Disabled);
</del><ins>+            trackList-&gt;item(i)-&gt;setMode(TextTrack::Mode::Disabled);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!document().page())
</span><span class="lines">@@ -4041,18 +4041,18 @@
</span><span class="cx"> 
</span><span class="cx">         auto kind = textTrack-&gt;kind();
</span><span class="cx">         TrackGroup* currentGroup;
</span><del>-        if (kind == TextTrackKind::Subtitles || kind == TextTrackKind::Captions || kind == TextTrackKind::Forced)
</del><ins>+        if (kind == TextTrack::Kind::Subtitles || kind == TextTrack::Kind::Captions || kind == TextTrack::Kind::Forced)
</ins><span class="cx">             currentGroup = &amp;captionAndSubtitleTracks;
</span><del>-        else if (kind == TextTrackKind::Descriptions)
</del><ins>+        else if (kind == TextTrack::Kind::Descriptions)
</ins><span class="cx">             currentGroup = &amp;descriptionTracks;
</span><del>-        else if (kind == TextTrackKind::Chapters)
</del><ins>+        else if (kind == TextTrack::Kind::Chapters)
</ins><span class="cx">             currentGroup = &amp;chapterTracks;
</span><del>-        else if (kind == TextTrackKind::Metadata)
</del><ins>+        else if (kind == TextTrack::Kind::Metadata)
</ins><span class="cx">             currentGroup = &amp;metadataTracks;
</span><span class="cx">         else
</span><span class="cx">             currentGroup = &amp;otherTracks;
</span><span class="cx"> 
</span><del>-        if (!currentGroup-&gt;visibleTrack &amp;&amp; textTrack-&gt;mode() == TextTrackMode::Showing)
</del><ins>+        if (!currentGroup-&gt;visibleTrack &amp;&amp; textTrack-&gt;mode() == TextTrack::Mode::Showing)
</ins><span class="cx">             currentGroup-&gt;visibleTrack = textTrack;
</span><span class="cx">         if (!currentGroup-&gt;defaultTrack &amp;&amp; textTrack-&gt;isDefault())
</span><span class="cx">             currentGroup-&gt;defaultTrack = textTrack;
</span><span class="lines">@@ -5491,7 +5491,7 @@
</span><span class="cx">         auto&amp; track = *m_textTracks-&gt;item(i);
</span><span class="cx">         if (track.readinessState() == TextTrack::FailedToLoad)
</span><span class="cx">             continue;
</span><del>-        if (track.kind() == TextTrackKind::Captions || track.kind() == TextTrackKind::Subtitles)
</del><ins>+        if (track.kind() == TextTrack::Kind::Captions || track.kind() == TextTrack::Kind::Subtitles)
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="lines">@@ -5758,7 +5758,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool haveVisibleTextTrack = false;
</span><span class="cx">     for (unsigned i = 0; i &lt; m_textTracks-&gt;length(); ++i) {
</span><del>-        if (m_textTracks-&gt;item(i)-&gt;mode() == TextTrackMode::Showing) {
</del><ins>+        if (m_textTracks-&gt;item(i)-&gt;mode() == TextTrack::Mode::Showing) {
</ins><span class="cx">             haveVisibleTextTrack = true;
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="lines">@@ -5834,7 +5834,7 @@
</span><span class="cx">     for (unsigned i = 0; i &lt; m_textTracks-&gt;length(); ++i) {
</span><span class="cx">         auto&amp; track = *m_textTracks-&gt;item(i);
</span><span class="cx">         auto kind = track.kind();
</span><del>-        if (kind == TextTrackKind::Subtitles || kind == TextTrackKind::Captions)
</del><ins>+        if (kind == TextTrack::Kind::Subtitles || kind == TextTrack::Kind::Captions)
</ins><span class="cx">             track.setHasBeenConfigured(false);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -6080,34 +6080,34 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(AVF_CAPTIONS)
</span><span class="cx"> 
</span><del>-static inline PlatformTextTrack::TrackKind toPlatform(TextTrackKind kind)
</del><ins>+static inline PlatformTextTrack::TrackKind toPlatform(TextTrack::Kind kind)
</ins><span class="cx"> {
</span><span class="cx">     switch (kind) {
</span><del>-    case TextTrackKind::Captions:
</del><ins>+    case TextTrack::Kind::Captions:
</ins><span class="cx">         return PlatformTextTrack::Caption;
</span><del>-    case TextTrackKind::Chapters:
</del><ins>+    case TextTrack::Kind::Chapters:
</ins><span class="cx">         return PlatformTextTrack::Chapter;
</span><del>-    case TextTrackKind::Descriptions:
</del><ins>+    case TextTrack::Kind::Descriptions:
</ins><span class="cx">         return PlatformTextTrack::Description;
</span><del>-    case TextTrackKind::Forced:
</del><ins>+    case TextTrack::Kind::Forced:
</ins><span class="cx">         return PlatformTextTrack::Forced;
</span><del>-    case TextTrackKind::Metadata:
</del><ins>+    case TextTrack::Kind::Metadata:
</ins><span class="cx">         return PlatformTextTrack::MetaData;
</span><del>-    case TextTrackKind::Subtitles:
</del><ins>+    case TextTrack::Kind::Subtitles:
</ins><span class="cx">         return PlatformTextTrack::Subtitle;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="cx">     return PlatformTextTrack::Caption;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline PlatformTextTrack::TrackMode toPlatform(TextTrackMode mode)
</del><ins>+static inline PlatformTextTrack::TrackMode toPlatform(TextTrack::Mode mode)
</ins><span class="cx"> {
</span><span class="cx">     switch (mode) {
</span><del>-    case TextTrackMode::Disabled:
</del><ins>+    case TextTrack::Mode::Disabled:
</ins><span class="cx">         return PlatformTextTrack::Disabled;
</span><del>-    case TextTrackMode::Hidden:
</del><ins>+    case TextTrack::Mode::Hidden:
</ins><span class="cx">         return PlatformTextTrack::Hidden;
</span><del>-    case TextTrackMode::Showing:
</del><ins>+    case TextTrack::Mode::Showing:
</ins><span class="cx">         return PlatformTextTrack::Showing;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="lines">@@ -6131,13 +6131,13 @@
</span><span class="cx">         // FIXME: The switch statement below preserves existing behavior where we ignore chapters and metadata tracks.
</span><span class="cx">         // If we confirm this behavior is valuable, we should remove this comment. Otherwise, remove both comment and switch.
</span><span class="cx">         switch (kind) {
</span><del>-        case TextTrackKind::Captions:
-        case TextTrackKind::Descriptions:
-        case TextTrackKind::Forced:
-        case TextTrackKind::Subtitles:
</del><ins>+        case TextTrack::Kind::Captions:
+        case TextTrack::Kind::Descriptions:
+        case TextTrack::Kind::Forced:
+        case TextTrack::Kind::Subtitles:
</ins><span class="cx">             break;
</span><del>-        case TextTrackKind::Chapters:
-        case TextTrackKind::Metadata:
</del><ins>+        case TextTrack::Kind::Chapters:
+        case TextTrack::Kind::Metadata:
</ins><span class="cx">             continue;
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTrackElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTrackElement.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTrackElement.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/HTMLTrackElement.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -174,7 +174,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // 2. If the text track's text track mode is not set to one of hidden or showing, abort these steps.
</span><del>-    if (ensureTrack().mode() != TextTrackMode::Hidden &amp;&amp; ensureTrack().mode() != TextTrackMode::Showing)
</del><ins>+    if (ensureTrack().mode() != TextTrack::Mode::Hidden &amp;&amp; ensureTrack().mode() != TextTrack::Mode::Showing)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // 3. If the text track's track element does not have a media element as a parent, abort these steps.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -401,14 +401,14 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline HTMLMediaElementEnums::VideoFullscreenMode toFullscreenMode(VideoPresentationMode mode)
</del><ins>+static inline HTMLMediaElementEnums::VideoFullscreenMode toFullscreenMode(HTMLVideoElement::VideoPresentationMode mode)
</ins><span class="cx"> {
</span><span class="cx">     switch (mode) {
</span><del>-    case VideoPresentationMode::Fullscreen:
</del><ins>+    case HTMLVideoElement::VideoPresentationMode::Fullscreen:
</ins><span class="cx">         return HTMLMediaElementEnums::VideoFullscreenModeStandard;
</span><del>-    case VideoPresentationMode::PictureInPicture:
</del><ins>+    case HTMLVideoElement::VideoPresentationMode::PictureInPicture:
</ins><span class="cx">         return HTMLMediaElementEnums::VideoFullscreenModePictureInPicture;
</span><del>-    case VideoPresentationMode::Inline:
</del><ins>+    case HTMLVideoElement::VideoPresentationMode::Inline:
</ins><span class="cx">         return HTMLMediaElementEnums::VideoFullscreenModeNone;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="lines">@@ -433,22 +433,22 @@
</span><span class="cx">     enterFullscreen(mode);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static VideoPresentationMode toPresentationMode(HTMLMediaElement::VideoFullscreenMode mode)
</del><ins>+static HTMLVideoElement::VideoPresentationMode toPresentationMode(HTMLMediaElementEnums::VideoFullscreenMode mode)
</ins><span class="cx"> {
</span><span class="cx">     if (mode == HTMLMediaElementEnums::VideoFullscreenModeStandard)
</span><del>-        return VideoPresentationMode::Fullscreen;
</del><ins>+        return HTMLVideoElement::VideoPresentationMode::Fullscreen;
</ins><span class="cx"> 
</span><span class="cx">     if (mode &amp; HTMLMediaElementEnums::VideoFullscreenModePictureInPicture)
</span><del>-        return VideoPresentationMode::PictureInPicture;
</del><ins>+        return HTMLVideoElement::VideoPresentationMode::PictureInPicture;
</ins><span class="cx"> 
</span><span class="cx">     if (mode == HTMLMediaElementEnums::VideoFullscreenModeNone)
</span><del>-        return VideoPresentationMode::Inline;
</del><ins>+        return HTMLVideoElement::VideoPresentationMode::Inline;
</ins><span class="cx"> 
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return VideoPresentationMode::Inline;
</del><ins>+    return HTMLVideoElement::VideoPresentationMode::Inline;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-VideoPresentationMode HTMLVideoElement::webkitPresentationMode() const
</del><ins>+auto HTMLVideoElement::webkitPresentationMode() const -&gt; VideoPresentationMode
</ins><span class="cx"> {
</span><span class="cx">     return toPresentationMode(fullscreenMode());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/HTMLVideoElement.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -34,8 +34,6 @@
</span><span class="cx"> 
</span><span class="cx"> class HTMLImageLoader;
</span><span class="cx"> 
</span><del>-enum class VideoPresentationMode { Fullscreen, PictureInPicture, Inline };
-
</del><span class="cx"> class HTMLVideoElement final : public HTMLMediaElement {
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;HTMLVideoElement&gt; create(const QualifiedName&amp;, Document&amp;, bool);
</span><span class="lines">@@ -43,7 +41,6 @@
</span><span class="cx">     WEBCORE_EXPORT unsigned videoWidth() const;
</span><span class="cx">     WEBCORE_EXPORT unsigned videoHeight() const;
</span><span class="cx"> 
</span><del>-    // Fullscreen
</del><span class="cx">     void webkitEnterFullscreen(ExceptionCode&amp;);
</span><span class="cx">     void webkitExitFullscreen();
</span><span class="cx">     bool webkitSupportsFullscreen();
</span><span class="lines">@@ -62,7 +59,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_STATISTICS)
</span><del>-    // Statistics
</del><span class="cx">     unsigned webkitDecodedFrameCount() const;
</span><span class="cx">     unsigned webkitDroppedFrameCount() const;
</span><span class="cx"> #endif
</span><span class="lines">@@ -82,6 +78,7 @@
</span><span class="cx">     RenderPtr&lt;RenderElement&gt; createElementRenderer(RenderStyle&amp;&amp;, const RenderTreePosition&amp;) override;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO_PRESENTATION_MODE)
</span><ins>+    enum class VideoPresentationMode { Fullscreen, PictureInPicture, Inline };
</ins><span class="cx">     bool webkitSupportsPresentationMode(VideoPresentationMode) const;
</span><span class="cx">     void webkitSetPresentationMode(VideoPresentationMode);
</span><span class="cx">     VideoPresentationMode webkitPresentationMode() const;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.idl (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.idl        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/HTMLVideoElement.idl        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -23,9 +23,6 @@
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-// FIXME: This should be Conditional=VIDEO_PRESENTATION_MODE.
-enum VideoPresentationMode { &quot;fullscreen&quot;, &quot;picture-in-picture&quot;, &quot;inline&quot; };
-
</del><span class="cx"> [
</span><span class="cx">     Conditional=VIDEO,
</span><span class="cx">     JSGenerateToNativeObject,
</span><span class="lines">@@ -63,3 +60,5 @@
</span><span class="cx">     [Conditional=VIDEO_PRESENTATION_MODE] void webkitSetPresentationMode(VideoPresentationMode mode);
</span><span class="cx"> #endif
</span><span class="cx"> };
</span><ins>+
+[Conditional=VIDEO_PRESENTATION_MODE] enum VideoPresentationMode { &quot;fullscreen&quot;, &quot;picture-in-picture&quot;, &quot;inline&quot; };
</ins></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -76,9 +76,9 @@
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><span class="cx"> #if USE(CG)
</span><del>-const ImageSmoothingQuality defaultSmoothingQuality = ImageSmoothingQuality::Low;
</del><ins>+const CanvasRenderingContext2D::ImageSmoothingQuality defaultSmoothingQuality = CanvasRenderingContext2D::ImageSmoothingQuality::Low;
</ins><span class="cx"> #else
</span><del>-const ImageSmoothingQuality defaultSmoothingQuality = ImageSmoothingQuality::Medium;
</del><ins>+const CanvasRenderingContext2D::ImageSmoothingQuality defaultSmoothingQuality = CanvasRenderingContext2D::ImageSmoothingQuality::Medium;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> static const int defaultFontSize = 10;
</span><span class="lines">@@ -930,12 +930,12 @@
</span><span class="cx">     return op == CompositeSourceIn || op == CompositeSourceOut || op == CompositeDestinationIn || op == CompositeDestinationAtop;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static WindRule toWindRule(CanvasWindingRule rule)
</del><ins>+static WindRule toWindRule(CanvasRenderingContext2D::WindingRule rule)
</ins><span class="cx"> {
</span><del>-    return rule == CanvasWindingRule::Nonzero ? RULE_NONZERO : RULE_EVENODD;
</del><ins>+    return rule == CanvasRenderingContext2D::WindingRule::Nonzero ? RULE_NONZERO : RULE_EVENODD;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::fill(CanvasWindingRule windingRule)
</del><ins>+void CanvasRenderingContext2D::fill(WindingRule windingRule)
</ins><span class="cx"> {
</span><span class="cx">     fillInternal(m_path, windingRule);
</span><span class="cx"> 
</span><span class="lines">@@ -953,7 +953,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::clip(CanvasWindingRule windingRule)
</del><ins>+void CanvasRenderingContext2D::clip(WindingRule windingRule)
</ins><span class="cx"> {
</span><span class="cx">     clipInternal(m_path, windingRule);
</span><span class="cx"> 
</span><span class="lines">@@ -962,7 +962,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::fill(DOMPath&amp; path, CanvasWindingRule windingRule)
</del><ins>+void CanvasRenderingContext2D::fill(DOMPath&amp; path, WindingRule windingRule)
</ins><span class="cx"> {
</span><span class="cx">     fillInternal(path.path(), windingRule);
</span><span class="cx"> }
</span><span class="lines">@@ -972,12 +972,12 @@
</span><span class="cx">     strokeInternal(path.path());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::clip(DOMPath&amp; path, CanvasWindingRule windingRule)
</del><ins>+void CanvasRenderingContext2D::clip(DOMPath&amp; path, WindingRule windingRule)
</ins><span class="cx"> {
</span><span class="cx">     clipInternal(path.path(), windingRule);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::fillInternal(const Path&amp; path, CanvasWindingRule windingRule)
</del><ins>+void CanvasRenderingContext2D::fillInternal(const Path&amp; path, WindingRule windingRule)
</ins><span class="cx"> {
</span><span class="cx">     GraphicsContext* c = drawingContext();
</span><span class="cx">     if (!c)
</span><span class="lines">@@ -1044,7 +1044,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::clipInternal(const Path&amp; path, CanvasWindingRule windingRule)
</del><ins>+void CanvasRenderingContext2D::clipInternal(const Path&amp; path, WindingRule windingRule)
</ins><span class="cx"> {
</span><span class="cx">     GraphicsContext* c = drawingContext();
</span><span class="cx">     if (!c)
</span><span class="lines">@@ -1070,7 +1070,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool CanvasRenderingContext2D::isPointInPath(float x, float y, CanvasWindingRule windingRule)
</del><ins>+bool CanvasRenderingContext2D::isPointInPath(float x, float y, WindingRule windingRule)
</ins><span class="cx"> {
</span><span class="cx">     return isPointInPathInternal(m_path, x, y, windingRule);
</span><span class="cx"> }
</span><span class="lines">@@ -1080,7 +1080,7 @@
</span><span class="cx">     return isPointInStrokeInternal(m_path, x, y);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool CanvasRenderingContext2D::isPointInPath(DOMPath&amp; path, float x, float y, CanvasWindingRule windingRule)
</del><ins>+bool CanvasRenderingContext2D::isPointInPath(DOMPath&amp; path, float x, float y, WindingRule windingRule)
</ins><span class="cx"> {
</span><span class="cx">     return isPointInPathInternal(path.path(), x, y, windingRule);
</span><span class="cx"> }
</span><span class="lines">@@ -1090,7 +1090,7 @@
</span><span class="cx">     return isPointInStrokeInternal(path.path(), x, y);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool CanvasRenderingContext2D::isPointInPathInternal(const Path&amp; path, float x, float y, CanvasWindingRule windingRule)
</del><ins>+bool CanvasRenderingContext2D::isPointInPathInternal(const Path&amp; path, float x, float y, WindingRule windingRule)
</ins><span class="cx"> {
</span><span class="cx">     GraphicsContext* c = drawingContext();
</span><span class="cx">     if (!c)
</span><span class="lines">@@ -2537,14 +2537,14 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-static InterpolationQuality smoothingToInterpolationQuality(ImageSmoothingQuality quality)
</del><ins>+static InterpolationQuality smoothingToInterpolationQuality(CanvasRenderingContext2D::ImageSmoothingQuality quality)
</ins><span class="cx"> {
</span><span class="cx">     switch (quality) {
</span><del>-    case ImageSmoothingQuality::Low:
</del><ins>+    case CanvasRenderingContext2D::ImageSmoothingQuality::Low:
</ins><span class="cx">         return InterpolationLow;
</span><del>-    case ImageSmoothingQuality::Medium:
</del><ins>+    case CanvasRenderingContext2D::ImageSmoothingQuality::Medium:
</ins><span class="cx">         return InterpolationMedium;
</span><del>-    case ImageSmoothingQuality::High:
</del><ins>+    case CanvasRenderingContext2D::ImageSmoothingQuality::High:
</ins><span class="cx">         return InterpolationHigh;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -2552,7 +2552,7 @@
</span><span class="cx">     return InterpolationLow;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-ImageSmoothingQuality CanvasRenderingContext2D::imageSmoothingQuality() const
</del><ins>+auto CanvasRenderingContext2D::imageSmoothingQuality() const -&gt; ImageSmoothingQuality
</ins><span class="cx"> {
</span><span class="cx">     return state().imageSmoothingQuality;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -57,9 +57,6 @@
</span><span class="cx"> 
</span><span class="cx"> typedef int ExceptionCode;
</span><span class="cx"> 
</span><del>-enum class CanvasWindingRule { Nonzero, Evenodd };
-enum class ImageSmoothingQuality { Low, Medium, High };
-
</del><span class="cx"> class CanvasRenderingContext2D final : public CanvasRenderingContext, public CanvasPathMethods {
</span><span class="cx"> public:
</span><span class="cx">     CanvasRenderingContext2D(HTMLCanvasElement*, bool usesCSSCompatibilityParseMode, bool usesDashboardCompatibilityMode);
</span><span class="lines">@@ -131,18 +128,20 @@
</span><span class="cx"> 
</span><span class="cx">     void beginPath();
</span><span class="cx"> 
</span><del>-    void fill(CanvasWindingRule = CanvasWindingRule::Nonzero);
</del><ins>+    enum class WindingRule { Nonzero, Evenodd };
+
+    void fill(WindingRule = WindingRule::Nonzero);
</ins><span class="cx">     void stroke();
</span><del>-    void clip(CanvasWindingRule = CanvasWindingRule::Nonzero);
</del><ins>+    void clip(WindingRule = WindingRule::Nonzero);
</ins><span class="cx"> 
</span><del>-    void fill(DOMPath&amp;, CanvasWindingRule = CanvasWindingRule::Nonzero);
</del><ins>+    void fill(DOMPath&amp;, WindingRule = WindingRule::Nonzero);
</ins><span class="cx">     void stroke(DOMPath&amp;);
</span><del>-    void clip(DOMPath&amp;, CanvasWindingRule = CanvasWindingRule::Nonzero);
</del><ins>+    void clip(DOMPath&amp;, WindingRule = WindingRule::Nonzero);
</ins><span class="cx"> 
</span><del>-    bool isPointInPath(float x, float y, CanvasWindingRule = CanvasWindingRule::Nonzero);
</del><ins>+    bool isPointInPath(float x, float y, WindingRule = WindingRule::Nonzero);
</ins><span class="cx">     bool isPointInStroke(float x, float y);
</span><span class="cx"> 
</span><del>-    bool isPointInPath(DOMPath&amp;, float x, float y, CanvasWindingRule = CanvasWindingRule::Nonzero);
</del><ins>+    bool isPointInPath(DOMPath&amp;, float x, float y, WindingRule = WindingRule::Nonzero);
</ins><span class="cx">     bool isPointInStroke(DOMPath&amp;, float x, float y);
</span><span class="cx"> 
</span><span class="cx">     void clearRect(float x, float y, float width, float height);
</span><span class="lines">@@ -222,6 +221,7 @@
</span><span class="cx">     bool imageSmoothingEnabled() const;
</span><span class="cx">     void setImageSmoothingEnabled(bool);
</span><span class="cx"> 
</span><ins>+    enum class ImageSmoothingQuality { Low, Medium, High };
</ins><span class="cx">     ImageSmoothingQuality imageSmoothingQuality() const;
</span><span class="cx">     void setImageSmoothingQuality(ImageSmoothingQuality);
</span><span class="cx"> 
</span><span class="lines">@@ -345,11 +345,11 @@
</span><span class="cx">     void beginCompositeLayer();
</span><span class="cx">     void endCompositeLayer();
</span><span class="cx"> 
</span><del>-    void fillInternal(const Path&amp;, CanvasWindingRule);
</del><ins>+    void fillInternal(const Path&amp;, WindingRule);
</ins><span class="cx">     void strokeInternal(const Path&amp;);
</span><del>-    void clipInternal(const Path&amp;, CanvasWindingRule);
</del><ins>+    void clipInternal(const Path&amp;, WindingRule);
</ins><span class="cx"> 
</span><del>-    bool isPointInPathInternal(const Path&amp;, float x, float y, CanvasWindingRule);
</del><ins>+    bool isPointInPathInternal(const Path&amp;, float x, float y, WindingRule);
</ins><span class="cx">     bool isPointInStrokeInternal(const Path&amp;, float x, float y);
</span><span class="cx"> 
</span><span class="cx">     void drawFocusIfNeededInternal(const Path&amp;, Element*);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlElementscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -765,7 +765,7 @@
</span><span class="cx">             continue;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (displayMode != CaptionUserPreferences::Automatic &amp;&amp; textTrack-&gt;mode() == TextTrackMode::Showing) {
</del><ins>+        if (displayMode != CaptionUserPreferences::Automatic &amp;&amp; textTrack-&gt;mode() == TextTrack::Mode::Showing) {
</ins><span class="cx">             trackMenuItemSelected = true;
</span><span class="cx">             trackItem-&gt;classList().add(selectedClassValue, ASSERT_NO_EXCEPTION);
</span><span class="cx">         } else
</span><span class="lines">@@ -1173,7 +1173,7 @@
</span><span class="cx">         LOG(Media, &quot;MediaControlTextTrackContainerElement::updateDisplay(%p) - adding and positioning cue #%zu: \&quot;%s\&quot;, start=%.2f, end=%.2f, line=%.2f&quot;, this, i, cue-&gt;text().utf8().data(), cue-&gt;startTime(), cue-&gt;endTime(), cue-&gt;line());
</span><span class="cx"> 
</span><span class="cx">         RefPtr&lt;VTTCueBox&gt; displayBox = cue-&gt;getDisplayTree(m_videoDisplaySize.size(), m_fontSize);
</span><del>-        if (cue-&gt;track()-&gt;mode() == TextTrackMode::Disabled)
</del><ins>+        if (cue-&gt;track()-&gt;mode() == TextTrack::Mode::Disabled)
</ins><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         VTTRegion* region = cue-&gt;track()-&gt;regions()-&gt;getRegionById(cue-&gt;regionId());
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackInbandTextTrackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/InbandTextTrack.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/InbandTextTrack.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/track/InbandTextTrack.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -89,27 +89,27 @@
</span><span class="cx">     updateKindFromPrivate();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InbandTextTrack::setMode(TextTrackMode mode)
</del><ins>+void InbandTextTrack::setMode(Mode mode)
</ins><span class="cx"> {
</span><span class="cx">     TextTrack::setMode(mode);
</span><span class="cx">     setModeInternal(mode);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline InbandTextTrackPrivate::Mode toPrivate(TextTrackMode mode)
</del><ins>+static inline InbandTextTrackPrivate::Mode toPrivate(TextTrack::Mode mode)
</ins><span class="cx"> {
</span><span class="cx">     switch (mode) {
</span><del>-    case TextTrackMode::Disabled:
</del><ins>+    case TextTrack::Mode::Disabled:
</ins><span class="cx">         return InbandTextTrackPrivate::Disabled;
</span><del>-    case TextTrackMode::Hidden:
</del><ins>+    case TextTrack::Mode::Hidden:
</ins><span class="cx">         return InbandTextTrackPrivate::Hidden;
</span><del>-    case TextTrackMode::Showing:
</del><ins>+    case TextTrack::Mode::Showing:
</ins><span class="cx">         return InbandTextTrackPrivate::Showing;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="cx">     return InbandTextTrackPrivate::Disabled;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InbandTextTrack::setModeInternal(TextTrackMode mode)
</del><ins>+void InbandTextTrack::setModeInternal(Mode mode)
</ins><span class="cx"> {
</span><span class="cx">     m_private-&gt;setMode(toPrivate(mode));
</span><span class="cx"> }
</span><span class="lines">@@ -196,22 +196,22 @@
</span><span class="cx"> {
</span><span class="cx">     switch (m_private-&gt;kind()) {
</span><span class="cx">     case InbandTextTrackPrivate::Subtitles:
</span><del>-        setKind(TextTrackKind::Subtitles);
</del><ins>+        setKind(Kind::Subtitles);
</ins><span class="cx">         break;
</span><span class="cx">     case InbandTextTrackPrivate::Captions:
</span><del>-        setKind(TextTrackKind::Captions);
</del><ins>+        setKind(Kind::Captions);
</ins><span class="cx">         break;
</span><span class="cx">     case InbandTextTrackPrivate::Descriptions:
</span><del>-        setKind(TextTrackKind::Descriptions);
</del><ins>+        setKind(Kind::Descriptions);
</ins><span class="cx">         break;
</span><span class="cx">     case InbandTextTrackPrivate::Chapters:
</span><del>-        setKind(TextTrackKind::Chapters);
</del><ins>+        setKind(Kind::Chapters);
</ins><span class="cx">         break;
</span><span class="cx">     case InbandTextTrackPrivate::Metadata:
</span><del>-        setKind(TextTrackKind::Metadata);
</del><ins>+        setKind(Kind::Metadata);
</ins><span class="cx">         break;
</span><span class="cx">     case InbandTextTrackPrivate::Forced:
</span><del>-        setKind(TextTrackKind::Forced);
</del><ins>+        setKind(Kind::Forced);
</ins><span class="cx">         break;
</span><span class="cx">     case InbandTextTrackPrivate::None:
</span><span class="cx">     default:
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackInbandTextTrackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/InbandTextTrack.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/InbandTextTrack.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/track/InbandTextTrack.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">     bool containsOnlyForcedSubtitles() const override;
</span><span class="cx">     bool isMainProgramContent() const override;
</span><span class="cx">     bool isEasyToRead() const override;
</span><del>-    void setMode(TextTrackMode) override;
</del><ins>+    void setMode(Mode) override;
</ins><span class="cx">     size_t inbandTrackIndex();
</span><span class="cx"> 
</span><span class="cx">     AtomicString inBandMetadataTrackDispatchType() const override;
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> protected:
</span><span class="cx">     InbandTextTrack(ScriptExecutionContext*, TextTrackClient*, PassRefPtr&lt;InbandTextTrackPrivate&gt;);
</span><span class="cx"> 
</span><del>-    void setModeInternal(TextTrackMode);
</del><ins>+    void setModeInternal(Mode);
</ins><span class="cx">     void updateKindFromPrivate();
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;InbandTextTrackPrivate&gt; m_private;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackTextTrackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/TextTrack.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/TextTrack.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/track/TextTrack.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -104,15 +104,15 @@
</span><span class="cx">     , m_renderedTrackIndex(invalidTrackIndex)
</span><span class="cx"> {
</span><span class="cx">     if (kind == captionsKeyword())
</span><del>-        m_kind = TextTrackKind::Captions;
</del><ins>+        m_kind = Kind::Captions;
</ins><span class="cx">     else if (kind == chaptersKeyword())
</span><del>-        m_kind = TextTrackKind::Chapters;
</del><ins>+        m_kind = Kind::Chapters;
</ins><span class="cx">     else if (kind == descriptionsKeyword())
</span><del>-        m_kind = TextTrackKind::Descriptions;
</del><ins>+        m_kind = Kind::Descriptions;
</ins><span class="cx">     else if (kind == forcedKeyword())
</span><del>-        m_kind = TextTrackKind::Forced;
</del><ins>+        m_kind = Kind::Forced;
</ins><span class="cx">     else if (kind == metadataKeyword())
</span><del>-        m_kind = TextTrackKind::Metadata;
</del><ins>+        m_kind = Kind::Metadata;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> TextTrack::~TextTrack()
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool TextTrack::enabled() const
</span><span class="cx"> {
</span><del>-    return m_mode != TextTrackMode::Disabled;
</del><ins>+    return m_mode != Mode::Disabled;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool TextTrack::isValidKindKeyword(const AtomicString&amp; value)
</span><span class="lines">@@ -156,24 +156,24 @@
</span><span class="cx"> const AtomicString&amp; TextTrack::kindKeyword() const
</span><span class="cx"> {
</span><span class="cx">     switch (m_kind) {
</span><del>-    case TextTrackKind::Captions:
</del><ins>+    case Kind::Captions:
</ins><span class="cx">         return captionsKeyword();
</span><del>-    case TextTrackKind::Chapters:
</del><ins>+    case Kind::Chapters:
</ins><span class="cx">         return chaptersKeyword();
</span><del>-    case TextTrackKind::Descriptions:
</del><ins>+    case Kind::Descriptions:
</ins><span class="cx">         return descriptionsKeyword();
</span><del>-    case TextTrackKind::Forced:
</del><ins>+    case Kind::Forced:
</ins><span class="cx">         return forcedKeyword();
</span><del>-    case TextTrackKind::Metadata:
</del><ins>+    case Kind::Metadata:
</ins><span class="cx">         return metadataKeyword();
</span><del>-    case TextTrackKind::Subtitles:
</del><ins>+    case Kind::Subtitles:
</ins><span class="cx">         return subtitlesKeyword();
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="cx">     return subtitlesKeyword();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void TextTrack::setKind(TextTrackKind newKind)
</del><ins>+void TextTrack::setKind(Kind newKind)
</ins><span class="cx"> {
</span><span class="cx">     auto oldKind = m_kind;
</span><span class="cx"> 
</span><span class="lines">@@ -203,28 +203,28 @@
</span><span class="cx"> void TextTrack::setKindKeywordIgnoringASCIICase(StringView keyword)
</span><span class="cx"> {
</span><span class="cx">     if (equalLettersIgnoringASCIICase(keyword, &quot;captions&quot;))
</span><del>-        setKind(TextTrackKind::Captions);
</del><ins>+        setKind(Kind::Captions);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(keyword, &quot;chapters&quot;))
</span><del>-        setKind(TextTrackKind::Chapters);
</del><ins>+        setKind(Kind::Chapters);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(keyword, &quot;descriptions&quot;))
</span><del>-        setKind(TextTrackKind::Descriptions);
</del><ins>+        setKind(Kind::Descriptions);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(keyword, &quot;forced&quot;))
</span><del>-        setKind(TextTrackKind::Forced);
</del><ins>+        setKind(Kind::Forced);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(keyword, &quot;metadata&quot;))
</span><del>-        setKind(TextTrackKind::Metadata);
</del><ins>+        setKind(Kind::Metadata);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(keyword, &quot;subtitles&quot;))
</span><del>-        setKind(TextTrackKind::Subtitles);
</del><ins>+        setKind(Kind::Subtitles);
</ins><span class="cx"> #if !ENABLE(MEDIA_SOURCE)
</span><span class="cx">     // FIXME: This preserves the behavior of an older version of this code before refactoring.
</span><span class="cx">     // !ENABLE(MEDIA_SOURCE): unknown keywords all get turned into Subtitles.
</span><span class="cx">     // ENABLE(MEDIA_SOURCE): unknown keywords leave the old value for kind untouched.
</span><span class="cx">     // I am not sure that either of those is the correct behavior; should test and fix.
</span><span class="cx">     else
</span><del>-        setKind(TextTrackKind::Subtitles);
</del><ins>+        setKind(Kind::Subtitles);
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void TextTrack::setMode(TextTrackMode mode)
</del><ins>+void TextTrack::setMode(Mode mode)
</ins><span class="cx"> {
</span><span class="cx">     // On setting, if the new value isn't equal to what the attribute would currently
</span><span class="cx">     // return, the new value must be processed as follows ...
</span><span class="lines">@@ -233,10 +233,10 @@
</span><span class="cx"> 
</span><span class="cx">     // If mode changes to disabled, remove this track's cues from the client
</span><span class="cx">     // because they will no longer be accessible from the cues() function.
</span><del>-    if (mode == TextTrackMode::Disabled &amp;&amp; m_client &amp;&amp; m_cues)
</del><ins>+    if (mode == Mode::Disabled &amp;&amp; m_client &amp;&amp; m_cues)
</ins><span class="cx">         m_client-&gt;textTrackRemoveCues(this, m_cues.get());
</span><span class="cx"> 
</span><del>-    if (mode != TextTrackMode::Showing &amp;&amp; m_cues) {
</del><ins>+    if (mode != Mode::Showing &amp;&amp; m_cues) {
</ins><span class="cx">         for (size_t i = 0; i &lt; m_cues-&gt;length(); ++i) {
</span><span class="cx">             TextTrackCue* cue = m_cues-&gt;item(i);
</span><span class="cx">             if (cue-&gt;isRenderable())
</span><span class="lines">@@ -257,7 +257,7 @@
</span><span class="cx">     // Otherwise, it must return null. When an object is returned, the
</span><span class="cx">     // same object must be returned each time.
</span><span class="cx">     // http://www.whatwg.org/specs/web-apps/current-work/#dom-texttrack-cues
</span><del>-    if (m_mode == TextTrackMode::Disabled)
</del><ins>+    if (m_mode == Mode::Disabled)
</ins><span class="cx">         return nullptr;
</span><span class="cx">     return &amp;ensureTextTrackCueList();
</span><span class="cx"> }
</span><span class="lines">@@ -284,7 +284,7 @@
</span><span class="cx">     // order. Otherwise, it must return null. When an object is returned, the
</span><span class="cx">     // same object must be returned each time.
</span><span class="cx">     // http://www.whatwg.org/specs/web-apps/current-work/#dom-texttrack-activecues
</span><del>-    if (!m_cues || m_mode == TextTrackMode::Disabled)
</del><ins>+    if (!m_cues || m_mode == Mode::Disabled)
</ins><span class="cx">         return nullptr;
</span><span class="cx">     return m_cues-&gt;activeCues();
</span><span class="cx"> }
</span><span class="lines">@@ -302,7 +302,7 @@
</span><span class="cx">     // If a DataCue is added to a TextTrack via the addCue() method but the text track does not have its text
</span><span class="cx">     // track kind set to metadata, throw a InvalidNodeTypeError exception and don't add the cue to the TextTrackList
</span><span class="cx">     // of the TextTrack.
</span><del>-    if (cue-&gt;cueType() == TextTrackCue::Data &amp;&amp; m_kind != TextTrackKind::Metadata) {
</del><ins>+    if (cue-&gt;cueType() == TextTrackCue::Data &amp;&amp; m_kind != Kind::Metadata) {
</ins><span class="cx">         ec = INVALID_NODE_TYPE_ERR;
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -372,7 +372,7 @@
</span><span class="cx">     // the text track list of regions of the text track. Otherwise, it must
</span><span class="cx">     // return null. When an object is returned, the same object must be returned
</span><span class="cx">     // each time.
</span><del>-    if (m_mode == TextTrackMode::Disabled)
</del><ins>+    if (m_mode == Mode::Disabled)
</ins><span class="cx">         return nullptr;
</span><span class="cx">     return &amp;ensureVTTRegionList();
</span><span class="cx"> }
</span><span class="lines">@@ -467,8 +467,8 @@
</span><span class="cx"> 
</span><span class="cx"> bool TextTrack::isRendered()
</span><span class="cx"> {
</span><del>-    return (m_kind == TextTrackKind::Captions || m_kind == TextTrackKind::Subtitles || m_kind == TextTrackKind::Forced)
-        &amp;&amp; m_mode == TextTrackMode::Showing;
</del><ins>+    return (m_kind == Kind::Captions || m_kind == Kind::Subtitles || m_kind == Kind::Forced)
+        &amp;&amp; m_mode == Mode::Showing;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> TextTrackCueList&amp; TextTrack::ensureTextTrackCueList()
</span><span class="lines">@@ -553,12 +553,12 @@
</span><span class="cx">     // directors commentary is not &quot;main program&quot; because it is not essential for the presentation. HTML5 doesn't have
</span><span class="cx">     // a way to express this in a machine-reable form, it is typically done with the track label, so we assume that caption
</span><span class="cx">     // tracks are main content and all other track types are not.
</span><del>-    return m_kind == TextTrackKind::Captions;
</del><ins>+    return m_kind == Kind::Captions;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool TextTrack::containsOnlyForcedSubtitles() const
</span><span class="cx"> {
</span><del>-    return m_kind == TextTrackKind::Forced;
</del><ins>+    return m_kind == Kind::Forced;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackTextTrackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/TextTrack.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/TextTrack.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/track/TextTrack.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -42,9 +42,6 @@
</span><span class="cx"> class VTTRegion;
</span><span class="cx"> class VTTRegionList;
</span><span class="cx"> 
</span><del>-enum class TextTrackKind { Subtitles, Captions, Descriptions, Chapters, Metadata, Forced };
-enum class TextTrackMode { Disabled, Hidden, Showing };
-
</del><span class="cx"> class TextTrackClient {
</span><span class="cx"> public:
</span><span class="cx">     virtual ~TextTrackClient() { }
</span><span class="lines">@@ -77,19 +74,21 @@
</span><span class="cx">     static const AtomicString&amp; hiddenKeyword();
</span><span class="cx">     static const AtomicString&amp; showingKeyword();
</span><span class="cx"> 
</span><del>-    TextTrackKind kind() const;
-    void setKind(TextTrackKind);
</del><ins>+    enum class Kind { Subtitles, Captions, Descriptions, Chapters, Metadata, Forced };
+    Kind kind() const;
+    void setKind(Kind);
</ins><span class="cx"> 
</span><del>-    TextTrackKind kindForBindings() const;
-    void setKindForBindings(TextTrackKind);
</del><ins>+    Kind kindForBindings() const;
+    void setKindForBindings(Kind);
</ins><span class="cx"> 
</span><span class="cx">     const AtomicString&amp; kindKeyword() const;
</span><span class="cx">     void setKindKeywordIgnoringASCIICase(StringView);
</span><span class="cx"> 
</span><span class="cx">     virtual AtomicString inBandMetadataTrackDispatchType() const { return emptyString(); }
</span><span class="cx"> 
</span><del>-    TextTrackMode mode() const;
-    virtual void setMode(TextTrackMode);
</del><ins>+    enum class Mode { Disabled, Hidden, Showing };
+    Mode mode() const;
+    virtual void setMode(Mode);
</ins><span class="cx"> 
</span><span class="cx">     enum ReadinessState { NotLoaded = 0, Loading = 1, Loaded = 2, FailedToLoad = 3 };
</span><span class="cx">     ReadinessState readinessState() const { return m_readinessState; }
</span><span class="lines">@@ -164,8 +163,8 @@
</span><span class="cx">     TextTrackCueList&amp; ensureTextTrackCueList();
</span><span class="cx"> 
</span><span class="cx">     ScriptExecutionContext* m_scriptExecutionContext;
</span><del>-    TextTrackMode m_mode { TextTrackMode::Disabled };
-    TextTrackKind m_kind { TextTrackKind::Subtitles };
</del><ins>+    Mode m_mode { Mode::Disabled };
+    Kind m_kind { Kind::Subtitles };
</ins><span class="cx">     TextTrackClient* m_client;
</span><span class="cx">     TextTrackType m_trackType;
</span><span class="cx">     ReadinessState m_readinessState { NotLoaded };
</span><span class="lines">@@ -180,24 +179,24 @@
</span><span class="cx">     return static_cast&lt;TextTrack*&gt;(track);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline TextTrackMode TextTrack::mode() const
</del><ins>+inline auto TextTrack::mode() const -&gt; Mode
</ins><span class="cx"> {
</span><span class="cx">     return m_mode;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline TextTrackKind TextTrack::kind() const
</del><ins>+inline auto TextTrack::kind() const -&gt; Kind
</ins><span class="cx"> {
</span><span class="cx">     return m_kind;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline TextTrackKind TextTrack::kindForBindings() const
</del><ins>+inline auto TextTrack::kindForBindings() const -&gt; Kind
</ins><span class="cx"> {
</span><span class="cx">     return kind();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if !ENABLE(MEDIA_SOURCE)
</span><span class="cx"> 
</span><del>-inline void TextTrack::setKindForBindings(TextTrackKind)
</del><ins>+inline void TextTrack::setKindForBindings(Kind)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: We are using kindForBindings only to implement this empty function, preserving the
</span><span class="cx">     // behavior of doing nothing when trying to set the kind, originally implemented in a custom setter.
</span><span class="lines">@@ -206,7 +205,7 @@
</span><span class="cx"> 
</span><span class="cx"> #else
</span><span class="cx"> 
</span><del>-inline void TextTrack::setKindForBindings(TextTrackKind kind)
</del><ins>+inline void TextTrack::setKindForBindings(Kind kind)
</ins><span class="cx"> {
</span><span class="cx">     setKind(kind);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackTextTrackCuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/TextTrackCue.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/TextTrackCue.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/html/track/TextTrackCue.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx"> bool TextTrackCue::dispatchEvent(Event&amp; event)
</span><span class="cx"> {
</span><span class="cx">     // When a TextTrack's mode is disabled: no cues are active, no events fired.
</span><del>-    if (!track() || track()-&gt;mode() == TextTrackMode::Disabled)
</del><ins>+    if (!track() || track()-&gt;mode() == TextTrack::Mode::Disabled)
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     return EventTarget::dispatchEvent(event);
</span><span class="lines">@@ -201,7 +201,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool TextTrackCue::isActive()
</span><span class="cx"> {
</span><del>-    return m_isActive &amp;&amp; track() &amp;&amp; track()-&gt;mode() != TextTrackMode::Disabled;
</del><ins>+    return m_isActive &amp;&amp; track() &amp;&amp; track()-&gt;mode() != TextTrack::Mode::Disabled;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void TextTrackCue::setIsActive(bool active)
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameNetworkingContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameNetworkingContext.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameNetworkingContext.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/loader/FrameNetworkingContext.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx">         if (!m_frame)
</span><span class="cx">             return true;
</span><span class="cx"> 
</span><del>-        return m_frame-&gt;document()-&gt;referrerPolicy() == ReferrerHeaderPolicy::Default;
</del><ins>+        return m_frame-&gt;document()-&gt;referrerPolicy() == ReferrerPolicy::Default;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span></span></pre></div>
<a id="trunkSourceWebCorepageCaptionUserPreferencescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/CaptionUserPreferences.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/CaptionUserPreferences.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/page/CaptionUserPreferences.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -217,7 +217,7 @@
</span><span class="cx">     for (unsigned i = 0, length = trackList-&gt;length(); i &lt; length; ++i) {
</span><span class="cx">         TextTrack* track = trackList-&gt;item(i);
</span><span class="cx">         auto kind = track-&gt;kind();
</span><del>-        if (kind == TextTrackKind::Captions || kind == TextTrackKind::Descriptions || kind == TextTrackKind::Subtitles)
</del><ins>+        if (kind == TextTrack::Kind::Captions || kind == TextTrack::Kind::Descriptions || kind == TextTrack::Kind::Subtitles)
</ins><span class="cx">             tracksForMenu.append(track);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -265,7 +265,7 @@
</span><span class="cx"> 
</span><span class="cx"> int CaptionUserPreferences::textTrackSelectionScore(TextTrack* track, HTMLMediaElement*) const
</span><span class="cx"> {
</span><del>-    if (track-&gt;kind() != TextTrackKind::Captions &amp;&amp; track-&gt;kind() != TextTrackKind::Subtitles)
</del><ins>+    if (track-&gt;kind() != TextTrack::Kind::Captions &amp;&amp; track-&gt;kind() != TextTrack::Kind::Subtitles)
</ins><span class="cx">         return 0;
</span><span class="cx">     
</span><span class="cx">     if (!userPrefersSubtitles() &amp;&amp; !userPrefersCaptions())
</span></span></pre></div>
<a id="trunkSourceWebCorepageCaptionUserPreferencesMediaAFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -710,7 +710,7 @@
</span><span class="cx">     bool legacyOverride = mediaElement-&gt;webkitClosedCaptionsVisible();
</span><span class="cx">     if (displayMode == AlwaysOn &amp;&amp; (!userPrefersSubtitles() &amp;&amp; !userPrefersCaptions() &amp;&amp; !legacyOverride))
</span><span class="cx">         return 0;
</span><del>-    if (track-&gt;kind() != TextTrackKind::Captions &amp;&amp; track-&gt;kind() != TextTrackKind::Subtitles &amp;&amp; track-&gt;kind() != TextTrackKind::Forced)
</del><ins>+    if (track-&gt;kind() != TextTrack::Kind::Captions &amp;&amp; track-&gt;kind() != TextTrack::Kind::Subtitles &amp;&amp; track-&gt;kind() != TextTrack::Kind::Forced)
</ins><span class="cx">         return 0;
</span><span class="cx">     if (!track-&gt;isMainProgramContent())
</span><span class="cx">         return 0;
</span><span class="lines">@@ -771,7 +771,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (userPrefersCaptions()) {
</span><span class="cx">         // When the user prefers accessibility tracks, rank is SDH, then CC, then subtitles.
</span><del>-        if (track-&gt;kind() == TextTrackKind::Subtitles)
</del><ins>+        if (track-&gt;kind() == TextTrack::Kind::Subtitles)
</ins><span class="cx">             trackScore = 1;
</span><span class="cx">         else if (track-&gt;isClosedCaptions())
</span><span class="cx">             trackScore = 2;
</span><span class="lines">@@ -779,7 +779,7 @@
</span><span class="cx">             trackScore = 3;
</span><span class="cx">     } else {
</span><span class="cx">         // When the user prefers translation tracks, rank is subtitles, then SDH, then CC tracks.
</span><del>-        if (track-&gt;kind() == TextTrackKind::Subtitles)
</del><ins>+        if (track-&gt;kind() == TextTrack::Kind::Subtitles)
</ins><span class="cx">             trackScore = 3;
</span><span class="cx">         else if (!track-&gt;isClosedCaptions())
</span><span class="cx">             trackScore = 2;
</span><span class="lines">@@ -865,7 +865,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         auto kind = track-&gt;kind();
</span><del>-        if (kind != TextTrackKind::Captions &amp;&amp; kind != TextTrackKind::Descriptions &amp;&amp; kind != TextTrackKind::Subtitles)
</del><ins>+        if (kind != TextTrack::Kind::Captions &amp;&amp; kind != TextTrack::Kind::Descriptions &amp;&amp; kind != TextTrack::Kind::Subtitles)
</ins><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         if (track-&gt;containsOnlyForcedSubtitles()) {
</span><span class="lines">@@ -881,7 +881,7 @@
</span><span class="cx">             continue;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (track-&gt;mode() == TextTrackMode::Showing) {
</del><ins>+        if (track-&gt;mode() == TextTrack::Mode::Showing) {
</ins><span class="cx">             LOG(Media, &quot;CaptionUserPreferencesMediaAF::sortedTrackListForMenu - adding '%s' track with language '%s' because it is already visible&quot;, track-&gt;kindKeyword().string().utf8().data(), language.utf8().data());
</span><span class="cx">             if (!language.isEmpty())
</span><span class="cx">                 languagesIncluded.add(language);
</span><span class="lines">@@ -890,7 +890,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (!language.isEmpty() &amp;&amp; track-&gt;isMainProgramContent()) {
</span><del>-            bool isAccessibilityTrack = track-&gt;kind() == TextTrackKind::Captions;
</del><ins>+            bool isAccessibilityTrack = track-&gt;kind() == TextTrack::Kind::Captions;
</ins><span class="cx">             if (prefersAccessibilityTracks) {
</span><span class="cx">                 // In the first pass, include only caption tracks if the user prefers accessibility tracks.
</span><span class="cx">                 if (!isAccessibilityTrack &amp;&amp; filterTrackList) {
</span><span class="lines">@@ -926,7 +926,7 @@
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         auto kind = track-&gt;kind();
</span><del>-        if (kind != TextTrackKind::Captions &amp;&amp; kind != TextTrackKind::Descriptions &amp;&amp; kind != TextTrackKind::Subtitles)
</del><ins>+        if (kind != TextTrack::Kind::Captions &amp;&amp; kind != TextTrack::Kind::Descriptions &amp;&amp; kind != TextTrack::Kind::Subtitles)
</ins><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         // All candidates with no languge were added the first time through.
</span></span></pre></div>
<a id="trunkSourceWebCorepageSecurityPolicycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SecurityPolicy.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SecurityPolicy.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/page/SecurityPolicy.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">     return !URLIsSecureURL;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String SecurityPolicy::generateReferrerHeader(ReferrerHeaderPolicy referrerPolicy, const URL&amp; url, const String&amp; referrer)
</del><ins>+String SecurityPolicy::generateReferrerHeader(ReferrerPolicy referrerPolicy, const URL&amp; url, const String&amp; referrer)
</ins><span class="cx"> {
</span><span class="cx">     if (referrer.isEmpty())
</span><span class="cx">         return String();
</span><span class="lines">@@ -75,11 +75,11 @@
</span><span class="cx">         return String();
</span><span class="cx"> 
</span><span class="cx">     switch (referrerPolicy) {
</span><del>-    case ReferrerHeaderPolicy::Never:
</del><ins>+    case ReferrerPolicy::Never:
</ins><span class="cx">         return String();
</span><del>-    case ReferrerHeaderPolicy::Always:
</del><ins>+    case ReferrerPolicy::Always:
</ins><span class="cx">         return referrer;
</span><del>-    case ReferrerHeaderPolicy::Origin: {
</del><ins>+    case ReferrerPolicy::Origin: {
</ins><span class="cx">         String origin = SecurityOrigin::createFromString(referrer)-&gt;toString();
</span><span class="cx">         if (origin == &quot;null&quot;)
</span><span class="cx">             return String();
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx">         // to turn it into a canonical URL we can use as referrer.
</span><span class="cx">         return origin + &quot;/&quot;;
</span><span class="cx">     }
</span><del>-    case ReferrerHeaderPolicy::Default:
</del><ins>+    case ReferrerPolicy::Default:
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageSecurityPolicyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SecurityPolicy.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SecurityPolicy.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/page/SecurityPolicy.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -38,14 +38,14 @@
</span><span class="cx"> 
</span><span class="cx"> class SecurityPolicy {
</span><span class="cx"> public:
</span><del>-    // True if the referrer should be omitted according to ReferrerHeaderPolicy::Default.
</del><ins>+    // True if the referrer should be omitted according to ReferrerPolicy::Default.
</ins><span class="cx">     // If you intend to send a referrer header, you should use generateReferrerHeader instead.
</span><span class="cx">     WEBCORE_EXPORT static bool shouldHideReferrer(const URL&amp;, const String&amp; referrer);
</span><span class="cx"> 
</span><span class="cx">     // Returns the referrer modified according to the referrer policy for a
</span><span class="cx">     // navigation to a given URL. If the referrer returned is empty, the
</span><span class="cx">     // referrer header should be omitted.
</span><del>-    WEBCORE_EXPORT static String generateReferrerHeader(ReferrerHeaderPolicy, const URL&amp;, const String&amp; referrer);
</del><ins>+    WEBCORE_EXPORT static String generateReferrerHeader(ReferrerPolicy, const URL&amp;, const String&amp; referrer);
</ins><span class="cx"> 
</span><span class="cx">     enum LocalLoadPolicy {
</span><span class="cx">         AllowLocalLoadsForAll, // No restriction on local loads.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformReferrerPolicyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ReferrerPolicy.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ReferrerPolicy.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/platform/ReferrerPolicy.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -37,9 +37,8 @@
</span><span class="cx"> // FIXME: Move this workaround to a global location, perhaps config.h; maybe a GTK-specific location.
</span><span class="cx"> #undef Always
</span><span class="cx"> 
</span><del>-// FIXME: Merge this with the ReferrerPolicy defined in the Fetch specification.
-// FIXME: Rename back to ReferrerPolicy even before that, if we find a way.
-enum class ReferrerHeaderPolicy {
</del><ins>+// FIXME: Merge this with FetchOptions::ReferrerPolicy, which is the one defined in the Fetch specification.
+enum class ReferrerPolicy {
</ins><span class="cx">     Always,
</span><span class="cx">     Default,
</span><span class="cx">     Never,
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformcocoaWebPlaybackSessionModelMediaElementmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/cocoa/WebPlaybackSessionModelMediaElement.mm (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/cocoa/WebPlaybackSessionModelMediaElement.mm        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/platform/cocoa/WebPlaybackSessionModelMediaElement.mm        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -158,9 +158,9 @@
</span><span class="cx"> 
</span><span class="cx">         if (m_mediaElement-&gt;mediaControlsHost()) {
</span><span class="cx">             auto type = m_mediaElement-&gt;mediaControlsHost()-&gt;externalDeviceType();
</span><del>-            if (type == DeviceType::Airplay)
</del><ins>+            if (type == MediaControlsHost::DeviceType::Airplay)
</ins><span class="cx">                 targetType = WebPlaybackSessionInterface::TargetTypeAirPlay;
</span><del>-            else if (type == DeviceType::Tvout)
</del><ins>+            else if (type == MediaControlsHost::DeviceType::Tvout)
</ins><span class="cx">                 targetType = WebPlaybackSessionInterface::TargetTypeTVOut;
</span><span class="cx">             localizedDeviceName = m_mediaElement-&gt;mediaControlsHost()-&gt;externalDeviceDisplayName();
</span><span class="cx">         }
</span><span class="lines">@@ -303,7 +303,7 @@
</span><span class="cx">             trackMenuItemSelected = true;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (displayMode != MediaControlsHost::automaticKeyword() &amp;&amp; track-&gt;mode() == TextTrackMode::Showing) {
</del><ins>+        if (displayMode != MediaControlsHost::automaticKeyword() &amp;&amp; track-&gt;mode() == TextTrack::Mode::Showing) {
</ins><span class="cx">             selectedIndex = index;
</span><span class="cx">             trackMenuItemSelected = true;
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/testing/Internals.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -563,23 +563,23 @@
</span><span class="cx">     return link.sheet() &amp;&amp; link.sheet()-&gt;contents().isLoadingSubresources();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static ResourceRequestCachePolicy toResourceRequestCachePolicy(InternalsCachePolicy policy)
</del><ins>+static ResourceRequestCachePolicy toResourceRequestCachePolicy(Internals::CachePolicy policy)
</ins><span class="cx"> {
</span><span class="cx">     switch (policy) {
</span><del>-    case InternalsCachePolicy::UseProtocolCachePolicy:
</del><ins>+    case Internals::CachePolicy::UseProtocolCachePolicy:
</ins><span class="cx">         return UseProtocolCachePolicy;
</span><del>-    case InternalsCachePolicy::ReloadIgnoringCacheData:
</del><ins>+    case Internals::CachePolicy::ReloadIgnoringCacheData:
</ins><span class="cx">         return ReloadIgnoringCacheData;
</span><del>-    case InternalsCachePolicy::ReturnCacheDataElseLoad:
</del><ins>+    case Internals::CachePolicy::ReturnCacheDataElseLoad:
</ins><span class="cx">         return ReturnCacheDataElseLoad;
</span><del>-    case InternalsCachePolicy::ReturnCacheDataDontLoad:
</del><ins>+    case Internals::CachePolicy::ReturnCacheDataDontLoad:
</ins><span class="cx">         return ReturnCacheDataDontLoad;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="cx">     return UseProtocolCachePolicy;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setOverrideCachePolicy(InternalsCachePolicy policy)
</del><ins>+void Internals::setOverrideCachePolicy(CachePolicy policy)
</ins><span class="cx"> {
</span><span class="cx">     frame()-&gt;loader().setOverrideCachePolicyForTesting(toResourceRequestCachePolicy(policy));
</span><span class="cx"> }
</span><span class="lines">@@ -594,25 +594,25 @@
</span><span class="cx">     contextDocument()-&gt;domWindow()-&gt;setCanShowModalDialogOverride(allow);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static ResourceLoadPriority toResourceLoadPriority(InternalsResourceLoadPriority priority)
</del><ins>+static ResourceLoadPriority toResourceLoadPriority(Internals::ResourceLoadPriority priority)
</ins><span class="cx"> {
</span><span class="cx">     switch (priority) {
</span><del>-    case InternalsResourceLoadPriority::ResourceLoadPriorityVeryLow:
</del><ins>+    case Internals::ResourceLoadPriority::ResourceLoadPriorityVeryLow:
</ins><span class="cx">         return ResourceLoadPriority::VeryLow;
</span><del>-    case InternalsResourceLoadPriority::ResourceLoadPriorityLow:
</del><ins>+    case Internals::ResourceLoadPriority::ResourceLoadPriorityLow:
</ins><span class="cx">         return ResourceLoadPriority::Low;
</span><del>-    case InternalsResourceLoadPriority::ResourceLoadPriorityMedium:
</del><ins>+    case Internals::ResourceLoadPriority::ResourceLoadPriorityMedium:
</ins><span class="cx">         return ResourceLoadPriority::Medium;
</span><del>-    case InternalsResourceLoadPriority::ResourceLoadPriorityHigh:
</del><ins>+    case Internals::ResourceLoadPriority::ResourceLoadPriorityHigh:
</ins><span class="cx">         return ResourceLoadPriority::High;
</span><del>-    case InternalsResourceLoadPriority::ResourceLoadPriorityVeryHigh:
</del><ins>+    case Internals::ResourceLoadPriority::ResourceLoadPriorityVeryHigh:
</ins><span class="cx">         return ResourceLoadPriority::VeryHigh;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="cx">     return ResourceLoadPriority::Low;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setOverrideResourceLoadPriority(InternalsResourceLoadPriority priority)
</del><ins>+void Internals::setOverrideResourceLoadPriority(ResourceLoadPriority priority)
</ins><span class="cx"> {
</span><span class="cx">     frame()-&gt;loader().setOverrideResourceLoadPriorityForTesting(toResourceLoadPriority(priority));
</span><span class="cx"> }
</span><span class="lines">@@ -1218,21 +1218,21 @@
</span><span class="cx">     element.setAutoFilled(enabled);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static AutoFillButtonType toAutoFillButtonType(InternalsAutoFillButtonType type)
</del><ins>+static AutoFillButtonType toAutoFillButtonType(Internals::AutoFillButtonType type)
</ins><span class="cx"> {
</span><span class="cx">     switch (type) {
</span><del>-    case InternalsAutoFillButtonType::AutoFillButtonTypeNone:
</del><ins>+    case Internals::AutoFillButtonType::AutoFillButtonTypeNone:
</ins><span class="cx">         return AutoFillButtonType::None;
</span><del>-    case InternalsAutoFillButtonType::AutoFillButtonTypeCredentials:
</del><ins>+    case Internals::AutoFillButtonType::AutoFillButtonTypeCredentials:
</ins><span class="cx">         return AutoFillButtonType::Credentials;
</span><del>-    case InternalsAutoFillButtonType::AutoFillButtonTypeContacts:
</del><ins>+    case Internals::AutoFillButtonType::AutoFillButtonTypeContacts:
</ins><span class="cx">         return AutoFillButtonType::Contacts;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="cx">     return AutoFillButtonType::None;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setShowAutoFillButton(HTMLInputElement&amp; element, InternalsAutoFillButtonType type)
</del><ins>+void Internals::setShowAutoFillButton(HTMLInputElement&amp; element, AutoFillButtonType type)
</ins><span class="cx"> {
</span><span class="cx">     element.setShowAutoFillButton(toAutoFillButtonType(type));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/testing/Internals.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -70,12 +70,6 @@
</span><span class="cx"> 
</span><span class="cx"> typedef int ExceptionCode;
</span><span class="cx"> 
</span><del>-enum class InternalsAutoFillButtonType { AutoFillButtonTypeNone, AutoFillButtonTypeContacts, AutoFillButtonTypeCredentials };
-enum class InternalsCachePolicy { UseProtocolCachePolicy, ReloadIgnoringCacheData, ReturnCacheDataElseLoad, ReturnCacheDataDontLoad };
-enum class InternalsResourceLoadPriority { ResourceLoadPriorityVeryLow, ResourceLoadPriorityLow, ResourceLoadPriorityMedium, ResourceLoadPriorityHigh, ResourceLoadPriorityVeryHigh };
-enum class MediaControlEvent { PlayPause, NextTrack, PreviousTrack };
-enum class PageOverlayType { View, Document };
-
</del><span class="cx"> class Internals final : public RefCounted&lt;Internals&gt;, private ContextDestructionObserver {
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;Internals&gt; create(Document&amp;);
</span><span class="lines">@@ -96,9 +90,11 @@
</span><span class="cx">     String xhrResponseSource(XMLHttpRequest&amp;);
</span><span class="cx">     bool isSharingStyleSheetContents(HTMLLinkElement&amp;, HTMLLinkElement&amp;);
</span><span class="cx">     bool isStyleSheetLoadingSubresources(HTMLLinkElement&amp;);
</span><del>-    void setOverrideCachePolicy(InternalsCachePolicy);
</del><ins>+    enum class CachePolicy { UseProtocolCachePolicy, ReloadIgnoringCacheData, ReturnCacheDataElseLoad, ReturnCacheDataDontLoad };
+    void setOverrideCachePolicy(CachePolicy);
</ins><span class="cx">     void setCanShowModalDialogOverride(bool allow, ExceptionCode&amp;);
</span><del>-    void setOverrideResourceLoadPriority(InternalsResourceLoadPriority);
</del><ins>+    enum class ResourceLoadPriority { ResourceLoadPriorityVeryLow, ResourceLoadPriorityLow, ResourceLoadPriorityMedium, ResourceLoadPriorityHigh, ResourceLoadPriorityVeryHigh };
+    void setOverrideResourceLoadPriority(ResourceLoadPriority);
</ins><span class="cx">     void setStrictRawResourceValidationPolicyDisabled(bool);
</span><span class="cx"> 
</span><span class="cx">     void clearMemoryCache();
</span><span class="lines">@@ -175,7 +171,8 @@
</span><span class="cx">     bool elementShouldAutoComplete(HTMLInputElement&amp;);
</span><span class="cx">     void setEditingValue(HTMLInputElement&amp;, const String&amp;);
</span><span class="cx">     void setAutofilled(HTMLInputElement&amp;, bool enabled);
</span><del>-    void setShowAutoFillButton(HTMLInputElement&amp;, InternalsAutoFillButtonType);
</del><ins>+    enum class AutoFillButtonType { AutoFillButtonTypeNone, AutoFillButtonTypeContacts, AutoFillButtonTypeCredentials };
+    void setShowAutoFillButton(HTMLInputElement&amp;, AutoFillButtonType);
</ins><span class="cx">     void scrollElementToRect(Element&amp;, int x, int y, int w, int h, ExceptionCode&amp;);
</span><span class="cx"> 
</span><span class="cx">     String autofillFieldName(Element&amp;, ExceptionCode&amp;);
</span><span class="lines">@@ -420,6 +417,7 @@
</span><span class="cx">     void sendMediaSessionEndOfInterruptionNotification(MediaSessionInterruptingCategory);
</span><span class="cx">     String mediaSessionCurrentState(MediaSession&amp;) const;
</span><span class="cx">     double mediaElementPlayerVolume(HTMLMediaElement&amp;) const;
</span><ins>+    enum class MediaControlEvent { PlayPause, NextTrack, PreviousTrack };
</ins><span class="cx">     void sendMediaControlEvent(MediaControlEvent);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -435,6 +433,7 @@
</span><span class="cx">     void simulateSystemSleep() const;
</span><span class="cx">     void simulateSystemWake() const;
</span><span class="cx"> 
</span><ins>+    enum class PageOverlayType { View, Document };
</ins><span class="cx">     RefPtr&lt;MockPageOverlay&gt; installMockPageOverlay(PageOverlayType, ExceptionCode&amp;);
</span><span class="cx">     String pageOverlayLayerTreeAsText(ExceptionCode&amp;) const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.idl (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.idl        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/testing/Internals.idl        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> // These map to ResourceRequestCachePolicy.
</span><del>-enum InternalsCachePolicy {
</del><ins>+enum CachePolicy {
</ins><span class="cx">     &quot;UseProtocolCachePolicy&quot;,
</span><span class="cx">     &quot;ReloadIgnoringCacheData&quot;,
</span><span class="cx">     &quot;ReturnCacheDataElseLoad&quot;,
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> // FIXME: Strings in an enum should not have the name of the enum as a prefix.
</span><del>-enum InternalsResourceLoadPriority {
</del><ins>+enum ResourceLoadPriority {
</ins><span class="cx">     &quot;ResourceLoadPriorityVeryLow&quot;,
</span><span class="cx">     &quot;ResourceLoadPriorityLow&quot;,
</span><span class="cx">     &quot;ResourceLoadPriorityMedium&quot;,
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> // FIXME: Strings in an enum should not have the name of the enum as a prefix.
</span><del>-enum InternalsAutoFillButtonType {
</del><ins>+enum AutoFillButtonType {
</ins><span class="cx">     &quot;AutoFillButtonTypeNone&quot;,
</span><span class="cx">     &quot;AutoFillButtonTypeContacts&quot;,
</span><span class="cx">     &quot;AutoFillButtonTypeCredentials&quot;
</span><span class="lines">@@ -86,8 +86,8 @@
</span><span class="cx">     void clearMemoryCache();
</span><span class="cx">     void pruneMemoryCacheToSize(long size);
</span><span class="cx">     long memoryCacheSize();
</span><del>-    void setOverrideCachePolicy(InternalsCachePolicy policy);
-    void setOverrideResourceLoadPriority(InternalsResourceLoadPriority priority);
</del><ins>+    void setOverrideCachePolicy(CachePolicy policy);
+    void setOverrideResourceLoadPriority(ResourceLoadPriority priority);
</ins><span class="cx">     void setStrictRawResourceValidationPolicyDisabled(boolean disabled);
</span><span class="cx"> 
</span><span class="cx">     void clearPageCache();
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx">     boolean elementShouldAutoComplete(HTMLInputElement inputElement);
</span><span class="cx">     void setEditingValue(HTMLInputElement inputElement, DOMString value);
</span><span class="cx">     void setAutofilled(HTMLInputElement inputElement, boolean enabled);
</span><del>-    void setShowAutoFillButton(HTMLInputElement inputElement, InternalsAutoFillButtonType autoFillButtonType);
</del><ins>+    void setShowAutoFillButton(HTMLInputElement inputElement, AutoFillButtonType autoFillButtonType);
</ins><span class="cx">     [RaisesException] unsigned long countMatchesForText(DOMString text, unsigned long findOptions, DOMString markMatches);
</span><span class="cx"> 
</span><span class="cx">     [RaisesException] DOMString autofillFieldName(Element formControlElement);
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequest.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx"> 
</span><span class="cx"> String XMLHttpRequest::responseText(ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><del>-    if (m_responseType != XMLHttpRequestResponseType::EmptyString &amp;&amp; m_responseType != XMLHttpRequestResponseType::Text) {
</del><ins>+    if (m_responseType != ResponseType::EmptyString &amp;&amp; m_responseType != ResponseType::Text) {
</ins><span class="cx">         ec = INVALID_STATE_ERR;
</span><span class="cx">         return { };
</span><span class="cx">     }
</span><span class="lines">@@ -172,7 +172,7 @@
</span><span class="cx"> 
</span><span class="cx"> void XMLHttpRequest::didCacheResponseJSON()
</span><span class="cx"> {
</span><del>-    ASSERT(m_responseType == XMLHttpRequestResponseType::Json);
</del><ins>+    ASSERT(m_responseType == ResponseType::Json);
</ins><span class="cx">     ASSERT(doneWithoutErrors());
</span><span class="cx">     m_responseCacheIsValid = true;
</span><span class="cx">     m_responseBuilder.clear();
</span><span class="lines">@@ -180,7 +180,7 @@
</span><span class="cx"> 
</span><span class="cx"> Document* XMLHttpRequest::responseXML(ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><del>-    if (m_responseType != XMLHttpRequestResponseType::EmptyString &amp;&amp; m_responseType != XMLHttpRequestResponseType::Document) {
</del><ins>+    if (m_responseType != ResponseType::EmptyString &amp;&amp; m_responseType != ResponseType::Document) {
</ins><span class="cx">         ec = INVALID_STATE_ERR;
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="lines">@@ -195,7 +195,7 @@
</span><span class="cx">         // The W3C spec requires the final MIME type to be some valid XML type, or text/html.
</span><span class="cx">         // If it is text/html, then the responseType of &quot;document&quot; must have been supplied explicitly.
</span><span class="cx">         if ((m_response.isHTTP() &amp;&amp; !responseIsXML() &amp;&amp; !isHTML)
</span><del>-            || (isHTML &amp;&amp; m_responseType == XMLHttpRequestResponseType::EmptyString)
</del><ins>+            || (isHTML &amp;&amp; m_responseType == ResponseType::EmptyString)
</ins><span class="cx">             || scriptExecutionContext()-&gt;isWorkerGlobalScope()) {
</span><span class="cx">             m_responseDocument = nullptr;
</span><span class="cx">         } else {
</span><span class="lines">@@ -219,7 +219,7 @@
</span><span class="cx"> 
</span><span class="cx"> Blob* XMLHttpRequest::responseBlob()
</span><span class="cx"> {
</span><del>-    ASSERT(m_responseType == XMLHttpRequestResponseType::Blob);
</del><ins>+    ASSERT(m_responseType == ResponseType::Blob);
</ins><span class="cx">     ASSERT(doneWithoutErrors());
</span><span class="cx"> 
</span><span class="cx">     if (!m_responseBlob) {
</span><span class="lines">@@ -241,7 +241,7 @@
</span><span class="cx"> 
</span><span class="cx"> ArrayBuffer* XMLHttpRequest::responseArrayBuffer()
</span><span class="cx"> {
</span><del>-    ASSERT(m_responseType == XMLHttpRequestResponseType::Arraybuffer);
</del><ins>+    ASSERT(m_responseType == ResponseType::Arraybuffer);
</ins><span class="cx">     ASSERT(doneWithoutErrors());
</span><span class="cx"> 
</span><span class="cx">     if (!m_responseArrayBuffer) {
</span><span class="lines">@@ -273,7 +273,7 @@
</span><span class="cx">     m_timeoutTimer.startOneShot(std::max(0.0, interval.count()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void XMLHttpRequest::setResponseType(XMLHttpRequestResponseType type, ExceptionCode&amp; ec)
</del><ins>+void XMLHttpRequest::setResponseType(ResponseType type, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><span class="cx">     if (m_state &gt;= LOADING) {
</span><span class="cx">         ec = INVALID_STATE_ERR;
</span><span class="lines">@@ -463,7 +463,7 @@
</span><span class="cx">         // attempt to discourage synchronous XHR use. responseType is one such piece of functionality.
</span><span class="cx">         // We'll only disable this functionality for HTTP(S) requests since sync requests for local protocols
</span><span class="cx">         // such as file: and data: still make sense to allow.
</span><del>-        if (url.protocolIsInHTTPFamily() &amp;&amp; m_responseType != XMLHttpRequestResponseType::EmptyString) {
</del><ins>+        if (url.protocolIsInHTTPFamily() &amp;&amp; m_responseType != ResponseType::EmptyString) {
</ins><span class="cx">             logConsoleError(scriptExecutionContext(), &quot;Synchronous HTTP(S) requests made from the window context cannot have XMLHttpRequest.responseType set.&quot;);
</span><span class="cx">             ec = INVALID_ACCESS_ERR;
</span><span class="cx">             return;
</span><span class="lines">@@ -1095,16 +1095,16 @@
</span><span class="cx">         m_response.setHTTPHeaderField(HTTPHeaderName::ContentType, m_mimeTypeOverride);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline bool shouldDecodeResponse(XMLHttpRequestResponseType type)
</del><ins>+static inline bool shouldDecodeResponse(XMLHttpRequest::ResponseType type)
</ins><span class="cx"> {
</span><span class="cx">     switch (type) {
</span><del>-    case XMLHttpRequestResponseType::EmptyString:
-    case XMLHttpRequestResponseType::Document:
-    case XMLHttpRequestResponseType::Json:
-    case XMLHttpRequestResponseType::Text:
</del><ins>+    case XMLHttpRequest::ResponseType::EmptyString:
+    case XMLHttpRequest::ResponseType::Document:
+    case XMLHttpRequest::ResponseType::Json:
+    case XMLHttpRequest::ResponseType::Text:
</ins><span class="cx">         return true;
</span><del>-    case XMLHttpRequestResponseType::Arraybuffer:
-    case XMLHttpRequestResponseType::Blob:
</del><ins>+    case XMLHttpRequest::ResponseType::Arraybuffer:
+    case XMLHttpRequest::ResponseType::Blob:
</ins><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequest.h (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequest.h        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.h        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -44,8 +44,6 @@
</span><span class="cx"> class TextResourceDecoder;
</span><span class="cx"> class ThreadableLoader;
</span><span class="cx"> 
</span><del>-enum class XMLHttpRequestResponseType { EmptyString, Arraybuffer, Blob, Document, Json, Text };
-
</del><span class="cx"> class XMLHttpRequest final : public RefCounted&lt;XMLHttpRequest&gt;, public XMLHttpRequestEventTarget, private ThreadableLoaderClient, public ActiveDOMObject {
</span><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><span class="lines">@@ -106,8 +104,9 @@
</span><span class="cx">     static String uppercaseKnownHTTPMethod(const String&amp;);
</span><span class="cx">     static bool isAllowedHTTPHeader(const String&amp;);
</span><span class="cx"> 
</span><del>-    void setResponseType(XMLHttpRequestResponseType, ExceptionCode&amp;);
-    XMLHttpRequestResponseType responseType() const;
</del><ins>+    enum class ResponseType { EmptyString, Arraybuffer, Blob, Document, Json, Text };
+    void setResponseType(ResponseType, ExceptionCode&amp;);
+    ResponseType responseType() const;
</ins><span class="cx"> 
</span><span class="cx">     String responseURL() const;
</span><span class="cx"> 
</span><span class="lines">@@ -225,7 +224,7 @@
</span><span class="cx"> 
</span><span class="cx">     XMLHttpRequestProgressEventThrottle m_progressEventThrottle;
</span><span class="cx"> 
</span><del>-    XMLHttpRequestResponseType m_responseType { XMLHttpRequestResponseType::EmptyString };
</del><ins>+    ResponseType m_responseType { ResponseType::EmptyString };
</ins><span class="cx">     bool m_responseCacheIsValid { false };
</span><span class="cx"> 
</span><span class="cx">     Timer m_resumeTimer;
</span><span class="lines">@@ -239,7 +238,7 @@
</span><span class="cx">     Timer m_timeoutTimer;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-inline XMLHttpRequestResponseType XMLHttpRequest::responseType() const
</del><ins>+inline auto XMLHttpRequest::responseType() const -&gt; ResponseType
</ins><span class="cx"> {
</span><span class="cx">     return m_responseType;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebKit2/ChangeLog        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-05-02  Darin Adler  &lt;darin@apple.com&gt;
+
+        Change IDL enumerations to be nested in their C++ class instead of at WebCore namespace level
+        https://bugs.webkit.org/show_bug.cgi?id=157257
+
+        Reviewed by Chris Dumez.
+
+        * WebProcess/Network/WebLoaderStrategy.cpp:
+        (WebKit::WebLoaderStrategy::loadResource): Updated since we changed
+        ReferrerHeaderPolicy back to ReferrerPolicy.
+        (WebKit::WebLoaderStrategy::schedulePluginStreamLoad): Ditto.
+
</ins><span class="cx"> 2016-05-02  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Const-ify some IDB code.
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessNetworkWebLoaderStrategycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp (200360 => 200361)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp        2016-05-03 03:39:51 UTC (rev 200360)
+++ trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp        2016-05-03 05:47:34 UTC (rev 200361)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;SubresourceLoader&gt; loader = SubresourceLoader::create(frame, resource, request, options);
</span><span class="cx">     if (loader)
</span><del>-        scheduleLoad(loader.get(), resource, frame-&gt;document()-&gt;referrerPolicy() == ReferrerHeaderPolicy::Default);
</del><ins>+        scheduleLoad(loader.get(), resource, frame-&gt;document()-&gt;referrerPolicy() == ReferrerPolicy::Default);
</ins><span class="cx">     return loader;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;NetscapePlugInStreamLoader&gt; loader = NetscapePlugInStreamLoader::create(frame, client, request);
</span><span class="cx">     if (loader)
</span><del>-        scheduleLoad(loader.get(), 0, frame-&gt;document()-&gt;referrerPolicy() == ReferrerHeaderPolicy::Default);
</del><ins>+        scheduleLoad(loader.get(), 0, frame-&gt;document()-&gt;referrerPolicy() == ReferrerPolicy::Default);
</ins><span class="cx">     return loader;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>