<!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>[235484] trunk</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/235484">235484</a></dd>
<dt>Author</dt> <dd>youenn@apple.com</dd>
<dt>Date</dt> <dd>2018-08-29 15:42:26 -0700 (Wed, 29 Aug 2018)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove WebRTC legacy API implementation
https://bugs.webkit.org/show_bug.cgi?id=189040

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

* web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt:
* web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt:
* web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt:
* web-platform-tests/webrtc/historical-expected.txt:
* web-platform-tests/webrtc/no-media-call.html:
* web-platform-tests/webrtc/simplecall.https.html:

Source/WebCore:

This API is no longer needed as the runtime flag is off by default.
Removing this option allows removing some code and will ease future WebRTC improvements.
Covered by existing tests.

* CMakeLists.txt:
* DerivedSources.make:
* Modules/mediastream/MediaStreamEvent.cpp: Removed.
* Modules/mediastream/MediaStreamEvent.h: Removed.
* Modules/mediastream/MediaStreamEvent.idl: Removed.
* Modules/mediastream/NavigatorUserMedia.idl: Removed.
* Modules/mediastream/NavigatorUserMedia.js: Removed.
* Modules/mediastream/PeerConnectionBackend.cpp:
* Modules/mediastream/PeerConnectionBackend.h:
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCPeerConnection.js:
(initializeRTCPeerConnection):
(createOffer):
(createAnswer):
(setLocalDescription):
(setRemoteDescription):
(addIceCandidate):
(getLocalStreams): Deleted.
(getStreamById): Deleted.
(addStream): Deleted.
(): Deleted.
* Modules/mediastream/RTCPeerConnectionInternals.js:
(callbacksAndDictionaryOverload):
(if): Deleted.
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream):
(WebCore::LibWebRTCMediaEndpoint::addRemoteStream):
(WebCore::LibWebRTCMediaEndpoint::removeRemoteStream):
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::doStop):
(WebCore::LibWebRTCPeerConnectionBackend::removeRemoteStream): Deleted.
(WebCore::LibWebRTCPeerConnectionBackend::addRemoteStream): Deleted.
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
(WebCore::isWebRTCLegacyAPIEnabled): Deleted.
* bindings/js/WebCoreBuiltinNames.h:
* dom/EventNames.in:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setPeerConnectionEnabled):
(WebCore::RuntimeEnabledFeatures::webRTCLegacyAPIEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebRTCLegacyAPIEnabled): Deleted.

Source/WebKit:

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetWebRTCLegacyAPIEnabled): Deleted.
(WKPreferencesGetWebRTCLegacyAPIEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRef.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _webRTCLegacyAPIEnabled]): Deleted.
(-[WKPreferences _setWebRTCLegacyAPIEnabled:]): Deleted.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Source/WebKitLegacy/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences webRTCLegacyAPIEnabled]): Deleted.
(-[WebPreferences setWebRTCLegacyAPIEnabled:]): Deleted.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setWebRTCLegacyAPIEnabled): Deleted.
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

* TestExpectations:
* fast/events/constructors/media-stream-event-constructor-expected.txt: Removed.
* fast/events/constructors/media-stream-event-constructor.html: Removed.
* fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt: Removed.
* fast/mediastream/RTCPeerConnection-AddRemoveStream.html: Removed.
* fast/mediastream/RTCPeerConnection-createAnswer-expected.txt:
* fast/mediastream/RTCPeerConnection-createAnswer.html:
* fast/mediastream/RTCPeerConnection-createOffer-expected.txt: Removed.
* fast/mediastream/RTCPeerConnection-createOffer.html: Removed.
* fast/mediastream/RTCPeerConnection-dtmf.html: Removed.
* fast/mediastream/RTCPeerConnection-events-expected.txt: Removed.
* fast/mediastream/RTCPeerConnection-events.html: Removed.
* fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt:
* fast/mediastream/RTCPeerConnection-have-local-offer.html:
* fast/mediastream/RTCPeerConnection-have-local-pranswer-expected.txt:
* fast/mediastream/RTCPeerConnection-have-local-pranswer.html:
* fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt:
* fast/mediastream/RTCPeerConnection-have-remote-offer.html:
* fast/mediastream/RTCPeerConnection-have-remote-pranswer-expected.txt:
* fast/mediastream/RTCPeerConnection-have-remote-pranswer.html:
* fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt: Removed.
* fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html: Removed.
* fast/mediastream/RTCPeerConnection-localDescription-expected.txt:
* fast/mediastream/RTCPeerConnection-localDescription.html:
* fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt:
* fast/mediastream/RTCPeerConnection-remoteDescription.html:
* fast/mediastream/RTCPeerConnection-stable-expected.txt:
* fast/mediastream/RTCPeerConnection-stable.html:
* fast/mediastream/RTCPeerConnection-stats.html:
* fast/mediastream/RTCPeerConnection-statsSelector-expected.txt:
* fast/mediastream/RTCPeerConnection-statsSelector.html:
* fast/mediastream/argument-types-expected.txt: Removed.
* fast/mediastream/argument-types.html: Removed.
* fast/mediastream/getusermedia-expected.txt: Removed.
* fast/mediastream/getusermedia.html: Removed.
* fast/mediastream/webkitGetUserMedia-shadowing-then-expected.txt: Removed.
* fast/mediastream/webkitGetUserMedia-shadowing-then.html: Removed.
* platform/mac/TestExpectations:
* webrtc/legacy-api-expected.txt:
* webrtc/legacy-api.html:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsTestExpectations">trunk/LayoutTests/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectioncreateAnswerexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createAnswer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectioncreateAnswerhtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createAnswer.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionhavelocalofferexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionhavelocalofferhtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-offer.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionhavelocalpranswerexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-pranswer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionhavelocalpranswerhtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-pranswer.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionhaveremoteofferexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionhaveremoteofferhtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-offer.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionhaveremotepranswerexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-pranswer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionhaveremotepranswerhtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-pranswer.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionlocalDescriptionexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-localDescription-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionlocalDescriptionhtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-localDescription.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionremoteDescriptionexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionremoteDescriptionhtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remoteDescription.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionstableexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-stable-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionstablehtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-stable.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionstatshtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-stats.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionstatsSelectorexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-statsSelector-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionstatsSelectorhtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-statsSelector.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsmediacapturestreamsMediaDevicesIDLallexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsmediacapturestreamsMediaDevicesIDLenumerateDevicesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsmediacapturestreamsMediaStreamdefaultfeaturepolicyhttpsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsmediacapturestreamsMediaStreamdefaultfeaturepolicyhttpshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtchistoricalexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/historical-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcnomediacallhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcsimplecallhttpshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/simplecall.https.html</a></li>
<li><a href="#trunkLayoutTestsplatformgtkTestExpectations">trunk/LayoutTests/platform/gtk/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformiosTestExpectations">trunk/LayoutTests/platform/ios/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformioswk1TestExpectations">trunk/LayoutTests/platform/ios-wk1/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformmacTestExpectations">trunk/LayoutTests/platform/mac/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1TestExpectations">trunk/LayoutTests/platform/mac-wk1/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformwinTestExpectations">trunk/LayoutTests/platform/win/TestExpectations</a></li>
<li><a href="#trunkLayoutTestswebrtclegacyapiexpectedtxt">trunk/LayoutTests/webrtc/legacy-api-expected.txt</a></li>
<li><a href="#trunkLayoutTestswebrtclegacyapihtml">trunk/LayoutTests/webrtc/legacy-api.html</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamPeerConnectionBackendcpp">trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamPeerConnectionBackendh">trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCPeerConnectionh">trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCPeerConnectionidl">trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCPeerConnectionjs">trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.js</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCPeerConnectionInternalsjs">trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionInternals.js</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamlibwebrtcLibWebRTCMediaEndpointcpp">trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamlibwebrtcLibWebRTCMediaEndpointh">trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamlibwebrtcLibWebRTCPeerConnectionBackendcpp">trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamlibwebrtcLibWebRTCPeerConnectionBackendh">trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h</a></li>
<li><a href="#trunkSourceWebCoreSourcestxt">trunk/Source/WebCore/Sources.txt</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMGlobalObjectcpp">trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsWebCoreBuiltinNamesh">trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h</a></li>
<li><a href="#trunkSourceWebCoredomEventNamesin">trunk/Source/WebCore/dom/EventNames.in</a></li>
<li><a href="#trunkSourceWebCorepageRuntimeEnabledFeaturesh">trunk/Source/WebCore/page/RuntimeEnabledFeatures.h</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitSharedWebPreferencesyaml">trunk/Source/WebKit/Shared/WebPreferences.yaml</a></li>
<li><a href="#trunkSourceWebKitUIProcessAPICWKPreferencescpp">trunk/Source/WebKit/UIProcess/API/C/WKPreferences.cpp</a></li>
<li><a href="#trunkSourceWebKitUIProcessAPICWKPreferencesRefh">trunk/Source/WebKit/UIProcess/API/C/WKPreferencesRef.h</a></li>
<li><a href="#trunkSourceWebKitUIProcessAPICocoaWKPreferencesmm">trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm</a></li>
<li><a href="#trunkSourceWebKitUIProcessAPICocoaWKPreferencesPrivateh">trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h</a></li>
<li><a href="#trunkSourceWebKitWebProcessInjectedBundleInjectedBundlecpp">trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp</a></li>
<li><a href="#trunkSourceWebKitLegacymacChangeLog">trunk/Source/WebKitLegacy/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitLegacymacWebViewWebPreferenceKeysPrivateh">trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h</a></li>
<li><a href="#trunkSourceWebKitLegacymacWebViewWebPreferencesmm">trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm</a></li>
<li><a href="#trunkSourceWebKitLegacymacWebViewWebPreferencesPrivateh">trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h</a></li>
<li><a href="#trunkSourceWebKitLegacymacWebViewWebViewmm">trunk/Source/WebKitLegacy/mac/WebView/WebView.mm</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreemacDumpRenderTreemm">trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleBindingsTestRunneridl">trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleTestRunnercpp">trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleTestRunnerh">trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h</a></li>
<li><a href="#trunkToolsWebKitTestRunnerTestControllercpp">trunk/Tools/WebKitTestRunner/TestController.cpp</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfasteventsconstructorsmediastreameventconstructorexpectedtxt">trunk/LayoutTests/fast/events/constructors/media-stream-event-constructor-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfasteventsconstructorsmediastreameventconstructorhtml">trunk/LayoutTests/fast/events/constructors/media-stream-event-constructor.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionAddRemoveStreamexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionAddRemoveStreamhtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectioncreateOfferexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createOffer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectioncreateOfferhtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createOffer.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectiondtmfhtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-dtmf.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectioneventsexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-events-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectioneventshtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-events.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionlegacystreambasedapiexpectedtxt">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamRTCPeerConnectionlegacystreambasedapihtml">trunk/LayoutTests/fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamargumenttypesexpectedtxt">trunk/LayoutTests/fast/mediastream/argument-types-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamargumenttypeshtml">trunk/LayoutTests/fast/mediastream/argument-types.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamgetusermediaexpectedtxt">trunk/LayoutTests/fast/mediastream/getusermedia-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamgetusermediahtml">trunk/LayoutTests/fast/mediastream/getusermedia.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamwebkitGetUserMediashadowingthenexpectedtxt">trunk/LayoutTests/fast/mediastream/webkitGetUserMedia-shadowing-then-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamwebkitGetUserMediashadowingthenhtml">trunk/LayoutTests/fast/mediastream/webkitGetUserMedia-shadowing-then.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionsetRemoteDescriptionexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamEventcpp">trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamEventh">trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamEventidl">trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamNavigatorUserMediaidl">trunk/Source/WebCore/Modules/mediastream/NavigatorUserMedia.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamNavigatorUserMediajs">trunk/Source/WebCore/Modules/mediastream/NavigatorUserMedia.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/ChangeLog 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,5 +1,53 @@
</span><span class="cx"> 2018-08-29  Youenn Fablet  <youenn@apple.com>
</span><span class="cx"> 
</span><ins>+        Remove WebRTC legacy API implementation
+        https://bugs.webkit.org/show_bug.cgi?id=189040
+
+        Reviewed by Eric Carlson.
+
+        * TestExpectations:
+        * fast/events/constructors/media-stream-event-constructor-expected.txt: Removed.
+        * fast/events/constructors/media-stream-event-constructor.html: Removed.
+        * fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt: Removed.
+        * fast/mediastream/RTCPeerConnection-AddRemoveStream.html: Removed.
+        * fast/mediastream/RTCPeerConnection-createAnswer-expected.txt:
+        * fast/mediastream/RTCPeerConnection-createAnswer.html:
+        * fast/mediastream/RTCPeerConnection-createOffer-expected.txt: Removed.
+        * fast/mediastream/RTCPeerConnection-createOffer.html: Removed.
+        * fast/mediastream/RTCPeerConnection-dtmf.html: Removed.
+        * fast/mediastream/RTCPeerConnection-events-expected.txt: Removed.
+        * fast/mediastream/RTCPeerConnection-events.html: Removed.
+        * fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt:
+        * fast/mediastream/RTCPeerConnection-have-local-offer.html:
+        * fast/mediastream/RTCPeerConnection-have-local-pranswer-expected.txt:
+        * fast/mediastream/RTCPeerConnection-have-local-pranswer.html:
+        * fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt:
+        * fast/mediastream/RTCPeerConnection-have-remote-offer.html:
+        * fast/mediastream/RTCPeerConnection-have-remote-pranswer-expected.txt:
+        * fast/mediastream/RTCPeerConnection-have-remote-pranswer.html:
+        * fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt: Removed.
+        * fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html: Removed.
+        * fast/mediastream/RTCPeerConnection-localDescription-expected.txt:
+        * fast/mediastream/RTCPeerConnection-localDescription.html:
+        * fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt:
+        * fast/mediastream/RTCPeerConnection-remoteDescription.html:
+        * fast/mediastream/RTCPeerConnection-stable-expected.txt:
+        * fast/mediastream/RTCPeerConnection-stable.html:
+        * fast/mediastream/RTCPeerConnection-stats.html:
+        * fast/mediastream/RTCPeerConnection-statsSelector-expected.txt:
+        * fast/mediastream/RTCPeerConnection-statsSelector.html:
+        * fast/mediastream/argument-types-expected.txt: Removed.
+        * fast/mediastream/argument-types.html: Removed.
+        * fast/mediastream/getusermedia-expected.txt: Removed.
+        * fast/mediastream/getusermedia.html: Removed.
+        * fast/mediastream/webkitGetUserMedia-shadowing-then-expected.txt: Removed.
+        * fast/mediastream/webkitGetUserMedia-shadowing-then.html: Removed.
+        * platform/mac/TestExpectations:
+        * webrtc/legacy-api-expected.txt:
+        * webrtc/legacy-api.html:
+
+2018-08-29  Youenn Fablet  <youenn@apple.com>
+
</ins><span class="cx">         Add a runtime flag for WebRTC unified plan
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=189068
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/TestExpectations (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations       2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/TestExpectations  2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1177,12 +1177,14 @@
</span><span class="cx"> imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-ontrack.https.html [ Skip ]
</span><span class="cx"> imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer.html [ Failure ]
</span><span class="cx"> 
</span><ins>+# Uses legacy WebRTC API.
+imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription.html [ Skip ]
+
</ins><span class="cx"> fast/mediastream/RTCPeerConnection-closed-state.html [ Skip ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html [ Skip ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html [ Skip ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-overloaded-operations-params.html [ Skip ]
</span><span class="cx"> fast/mediastream/RTCRtpSender-replaceTrack.html [ Skip ]
</span><del>-fast/mediastream/RTCPeerConnection-dtmf.html [ Failure ]
</del><span class="cx"> fast/mediastream/RTCPeerConnection-inspect-offer-bundlePolicy-bundle-only.html [ Failure ]
</span><span class="cx"> 
</span><span class="cx"> # Only iOS WK1 has testRunner.setPagePaused.
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventsconstructorsmediastreameventconstructorexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/constructors/media-stream-event-constructor-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/constructors/media-stream-event-constructor-expected.txt   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/events/constructors/media-stream-event-constructor-expected.txt      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,34 +0,0 @@
</span><del>-This tests the constructor for the MediaStreamEvent DOM class.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS new MediaStreamEvent('eventType').bubbles is false
-PASS new MediaStreamEvent('eventType').cancelable is false
-PASS new MediaStreamEvent('eventType').stream is null
-PASS new MediaStreamEvent('eventType', { bubbles: false }).bubbles is false
-PASS new MediaStreamEvent('eventType', { bubbles: true }).bubbles is true
-PASS new MediaStreamEvent('eventType', { cancelable: false }).cancelable is false
-PASS new MediaStreamEvent('eventType', { cancelable: true }).cancelable is true
-PASS new MediaStreamEvent('eventType', { stream: mediaStream }).stream is mediaStream
-PASS new MediaStreamEvent('eventType', { stream: testObject }).stream threw exception TypeError: Type error.
-PASS new MediaStreamEvent('eventType', { stream: document }).stream threw exception TypeError: Type error.
-PASS new MediaStreamEvent('eventType', { stream: undefined }).stream is null
-PASS new MediaStreamEvent('eventType', { stream: null }).stream is null
-PASS new MediaStreamEvent('eventType', { stream: false }).stream threw exception TypeError: Type error.
-PASS new MediaStreamEvent('eventType', { stream: true }).stream threw exception TypeError: Type error.
-PASS new MediaStreamEvent('eventType', { stream: '' }).stream threw exception TypeError: Type error.
-PASS new MediaStreamEvent('eventType', { stream: 'chocolate' }).stream threw exception TypeError: Type error.
-PASS new MediaStreamEvent('eventType', { stream: 12345 }).stream threw exception TypeError: Type error.
-PASS new MediaStreamEvent('eventType', { stream: 18446744073709551615 }).stream threw exception TypeError: Type error.
-PASS new MediaStreamEvent('eventType', { stream: NaN }).stream threw exception TypeError: Type error.
-PASS new MediaStreamEvent('eventType', { stream: {valueOf: function () { return mediaStream; } } }).stream threw exception TypeError: Type error.
-PASS new MediaStreamEvent('eventType', { get stream() { return 123; } }).stream threw exception TypeError: Type error.
-PASS new MediaStreamEvent('eventType', { get stream() { throw 'MediaStreamEvent Error'; } }) threw exception MediaStreamEvent Error.
-PASS new MediaStreamEvent('eventType', { bubbles: true, cancelable: true, stream: mediaStream }).bubbles is true
-PASS new MediaStreamEvent('eventType', { bubbles: true, cancelable: true, stream: mediaStream }).cancelable is true
-PASS new MediaStreamEvent('eventType', { bubbles: true, cancelable: true, stream: mediaStream }).stream is mediaStream
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsconstructorsmediastreameventconstructorhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/constructors/media-stream-event-constructor.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/constructors/media-stream-event-constructor.html   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/events/constructors/media-stream-event-constructor.html      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,55 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../../resources/js-test-pre.js"></script>
-</head>
-<body>
-<script>
-
-description("This tests the constructor for the MediaStreamEvent DOM class.");
-
-var testObject = {nyannyan: 123};
-var mediaStream = new MediaStream();
-
-// No initializer is passed.
-shouldBe("new MediaStreamEvent('eventType').bubbles", "false");
-shouldBe("new MediaStreamEvent('eventType').cancelable", "false");
-shouldBe("new MediaStreamEvent('eventType').stream", "null");
-
-// bubbles is passed.
-shouldBe("new MediaStreamEvent('eventType', { bubbles: false }).bubbles", "false");
-shouldBe("new MediaStreamEvent('eventType', { bubbles: true }).bubbles", "true");
-
-// cancelable is passed.
-shouldBe("new MediaStreamEvent('eventType', { cancelable: false }).cancelable", "false");
-shouldBe("new MediaStreamEvent('eventType', { cancelable: true }).cancelable", "true");
-
-// stream is passed.
-// Valid object.
-shouldBe("new MediaStreamEvent('eventType', { stream: mediaStream }).stream", "mediaStream");
-
-// Invalid objects.
-shouldThrowErrorName("new MediaStreamEvent('eventType', { stream: testObject }).stream", "TypeError");
-shouldThrowErrorName("new MediaStreamEvent('eventType', { stream: document }).stream", "TypeError");
-shouldBe("new MediaStreamEvent('eventType', { stream: undefined }).stream", "null");
-shouldBe("new MediaStreamEvent('eventType', { stream: null }).stream", "null");
-shouldThrowErrorName("new MediaStreamEvent('eventType', { stream: false }).stream", "TypeError");
-shouldThrowErrorName("new MediaStreamEvent('eventType', { stream: true }).stream", "TypeError");
-shouldThrowErrorName("new MediaStreamEvent('eventType', { stream: '' }).stream", "TypeError");
-shouldThrowErrorName("new MediaStreamEvent('eventType', { stream: 'chocolate' }).stream", "TypeError");
-shouldThrowErrorName("new MediaStreamEvent('eventType', { stream: 12345 }).stream", "TypeError");
-shouldThrowErrorName("new MediaStreamEvent('eventType', { stream: 18446744073709551615 }).stream", "TypeError");
-shouldThrowErrorName("new MediaStreamEvent('eventType', { stream: NaN }).stream", "TypeError");
-// Note that valueOf() is not called, when the left hand side is evaluated.
-shouldThrowErrorName("new MediaStreamEvent('eventType', { stream: {valueOf: function () { return mediaStream; } } }).stream", "TypeError");
-shouldThrowErrorName("new MediaStreamEvent('eventType', { get stream() { return 123; } }).stream", "TypeError");
-shouldThrow("new MediaStreamEvent('eventType', { get stream() { throw 'MediaStreamEvent Error'; } })");
-
-// All initializers are passed.
-shouldBe("new MediaStreamEvent('eventType', { bubbles: true, cancelable: true, stream: mediaStream }).bubbles", "true");
-shouldBe("new MediaStreamEvent('eventType', { bubbles: true, cancelable: true, stream: mediaStream }).cancelable", "true");
-shouldBe("new MediaStreamEvent('eventType', { bubbles: true, cancelable: true, stream: mediaStream }).stream", "mediaStream");
-</script>
-<script src="../../../resources/js-test-post.js"></script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionAddRemoveStreamexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt        2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt   2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-Tests RTCPeerConnection [add|remove]Stream.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS Got a stream.
-PASS pc.addStream(null) threw exception TypeError: Argument 1 ('stream') to RTCPeerConnection.addStream must be an instance of MediaStream.
-PASS pc.getLocalStreams().length is 0
-PASS Got another stream.
-PASS stream.id === stream2.id is false
-PASS onAddStream was called.
-PASS pc.getStreamById(stream.id) is stream
-PASS pc.getStreamById(stream2.id) is null
-PASS pc.getLocalStreams().length is 1
-PASS pc.getLocalStreams().length is 1
-PASS onRemoveStream was called.
-PASS pc.getLocalStreams().length is 0
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionAddRemoveStreamhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream.html        2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream.html   2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,104 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-    <head>
-        <script src="../../resources/js-test-pre.js"></script>
-        <script src="./resources/getUserMedia-helper.js"></script>
-    </head>
-    <body>
-        <script>
-            description("Tests RTCPeerConnection [add|remove]Stream.");
-
-            var stream = null;
-            var stream2 = null;
-            var pc = null;
-
-            function error()
-            {
-                testFailed('Stream generation failed.');
-                finishJSTest();
-            }
-
-            function getUserMedia(dictionary, callback)
-            {
-                try {
-                    navigator.mediaDevices.getUserMedia(dictionary)
-                        .then(callback)
-                        .catch(error);
-                } catch (e) {
-                    testFailed('webkitGetUserMedia threw exception :' + e);
-                    finishJSTest();
-                }
-            }
-
-            function onErroneousNegotiationNeeded()
-            {
-                testFailed('onErroneousNegotiationNeeded was called.');
-                finishJSTest();
-            }
-
-            function onRemoveStream(event)
-            {
-                testPassed('onRemoveStream was called.');
-
-                shouldBe('pc.getLocalStreams().length', '0');
-
-                finishJSTest();
-            }
-
-            function onAddStream(event)
-            {
-                testPassed('onAddStream was called.');
-
-                shouldBe('pc.getStreamById(stream.id)', 'stream');
-                shouldBe('pc.getStreamById(stream2.id)', 'null');
-
-                pc.onnegotiationneeded = onErroneousNegotiationNeeded;
-                pc.addStream(stream);
-                shouldBe('pc.getLocalStreams().length', '1');
-                pc.removeStream(stream2);
-                shouldBe('pc.getLocalStreams().length', '1');
-
-                pc.onnegotiationneeded = onRemoveStream;
-                pc.removeStream(stream);
-            }
-
-            function gotStream2(s)
-            {
-                testPassed('Got another stream.');
-                stream2 = s;
-
-                shouldBeFalse("stream.id === stream2.id");
-
-                pc.onnegotiationneeded = onAddStream;
-                pc.addStream(stream);
-            }
-
-            function gotStream1(s)
-            {
-                testPassed('Got a stream.');
-                stream = s;
-
-                pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
-                pc.onnegotiationneeded = onErroneousNegotiationNeeded;
-                shouldThrow("pc.addStream(null)");
-
-                shouldBe('pc.getLocalStreams().length', '0');
-
-                getUserMedia({audio:true, video:true}, gotStream2);
-            }
-
-            if (window.testRunner)
-                testRunner.setUserMediaPermission(true);
-            else {
-                debug("This test can not be run without the testRunner");
-                finishJSTest();
-            }
-
-            getUserMedia({audio:true, video:true}, gotStream1);
-
-            window.jsTestIsAsync = true;
-            window.successfullyParsed = true;
-        </script>
-        <script src="../../resources/js-test-post.js"></script>
-    </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectioncreateAnswerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createAnswer-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createAnswer-expected.txt   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createAnswer-expected.txt      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PASS pc.createAnswer(requestSucceeded1, requestFailed1); did not throw exception.
</del><ins>+PASS pc.createAnswer().then(requestSucceeded1, requestFailed1); did not throw exception.
</ins><span class="cx"> FAIL createAnswer request failed.
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectioncreateAnswerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createAnswer.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createAnswer.html   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createAnswer.html      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx">                 sessionDescription = sd;
</span><span class="cx">                 shouldBe('sessionDescription.type', '"answer"');
</span><span class="cx"> 
</span><del>-                shouldNotThrow('pc.createAnswer(requestSucceeded5, requestFailed1, {requestIdentity:"no"});');
</del><ins>+                shouldNotThrow('pc.createAnswer({requestIdentity:"no"}).then(requestSucceeded5, requestFailed1);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded3(sd)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx">                 sessionDescription = sd;
</span><span class="cx">                 shouldBe('sessionDescription.type', '"answer"');
</span><span class="cx"> 
</span><del>-                shouldNotThrow('pc.createAnswer(requestSucceeded4, requestFailed1, {requestIdentity:"yes"});');
</del><ins>+                shouldNotThrow('pc.createAnswer({requestIdentity:"yes"}).then(requestSucceeded4, requestFailed1);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed2(reason)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> 
</span><span class="cx">                 errorReason = reason;
</span><span class="cx">                 shouldBe('errorReason.name', '"Invalid createAnswer argument."');
</span><del>-                shouldNotThrow('pc.createAnswer(requestSucceeded3, requestFailed1, {requestIdentity:"ifconfigured"});');
</del><ins>+                shouldNotThrow('pc.createAnswer({requestIdentity:"ifconfigured"}).then(requestSucceeded3, requestFailed1);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded2()
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx">                 testPassed('createAnswer request succeeded.');
</span><span class="cx"> 
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"v=0\r\no=- 5667094644266930845 0 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, setDescriptionSucceeded, setDescriptionFailed);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(setDescriptionSucceeded, setDescriptionFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function setDescriptionFailed(message)
</span><span class="lines">@@ -81,11 +81,11 @@
</span><span class="cx">             function setDescriptionSucceeded()
</span><span class="cx">             {
</span><span class="cx">                 testPassed('setRemoteDescription succeeded.');
</span><del>-                pc.createAnswer(requestSucceeded2, requestFailed2, {});
</del><ins>+                pc.createAnswer({}).then(requestSucceeded2, requestFailed2);
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><del>-            shouldNotThrow('pc.createAnswer(requestSucceeded1, requestFailed1);');
</del><ins>+            shouldNotThrow('pc.createAnswer().then(requestSucceeded1, requestFailed1);');
</ins><span class="cx"> 
</span><span class="cx">             window.jsTestIsAsync = true;
</span><span class="cx">             window.successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectioncreateOfferexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createOffer-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createOffer-expected.txt    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createOffer-expected.txt       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-Tests RTCPeerConnection createOffer.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS pc.createOffer(requestSucceeded1, requestFailed1); did not throw exception.
-PASS createOffer request succeeded.
-PASS sessionDescription.type is "offer"
-FAIL pc.createOffer(requestSucceeded2, requestFailed2, {}); should throw an exception. Was [object Promise].
-FAIL createOffer request succeeded.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectioncreateOfferhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createOffer.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createOffer.html    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-createOffer.html       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,118 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-    <head>
-        <script src="../../resources/js-test-pre.js"></script>
-    </head>
-    <body>
-        <script>
-            description("Tests RTCPeerConnection createOffer.");
-
-            // Let's ensure built-ins are shielded from user scripts
-            var thenPromise = Promise.prototype.then;
-            Promise.prototype.then = function() {
-                console.log("Promise.prototype.then is called internally");
-                return thenPromise.apply(this, arguments);
-            }
-
-            var pc = null;
-
-            function requestSucceeded3(sd)
-            {
-                testPassed('createOffer request succeeded.');
-
-                sessionDescription = sd;
-                shouldBe('sessionDescription.type', '"offer"');
-                finishJSTest();
-            }
-
-            function requestFailed7(reason)
-            {
-                testPassed('createOffer request failed.');
-
-                errorReason = reason;
-                shouldBe('errorReason.name', '"Invalid createOffer argument."');
-
-                shouldNotThrow('pc.createOffer(requestSucceeded3, requestFailed1, {requestIdentity:"yes", offerToReceiveVideo:0, offerToReceiveAudio:0});');
-            }
-
-            function requestFailed6(reason)
-            {
-                testPassed('createOffer request failed.');
-
-                errorReason = reason;
-                shouldBe('errorReason.name', '"Invalid createOffer argument."');
-
-                shouldThrow('pc.createOffer(requestSucceeded2, requestFailed7, {requestIdentity:"yes", offerToReceiveVideo:0, offerToReceiveAudio:""});');
-            }
-
-            function requestFailed5(reason)
-            {
-                testPassed('createOffer request failed.');
-
-                errorReason = reason;
-                shouldBe('errorReason.name', '"Invalid createOffer argument."');
-
-                shouldThrow('pc.createOffer(requestSucceeded2, requestFailed6, {requestIdentity:"yes", offerToReceiveVideo:"", offerToReceiveAudio:0});');
-            }
-
-            function requestFailed4(reason)
-            {
-                testPassed('createOffer request failed.');
-
-                errorReason = reason;
-                shouldBe('errorReason.name', '"Invalid createOffer argument."');
-
-                shouldThrow('pc.createOffer(requestSucceeded2, requestFailed5, {offerToReceiveVideo:0, offerToReceiveAudio:0});');
-            }
-
-            function requestFailed3(reason)
-            {
-                testPassed('createOffer request failed.');
-
-                errorReason = reason;
-                shouldBe('errorReason.name', '"Invalid createOffer argument."');
-
-                shouldThrow('pc.createOffer(requestSucceeded2, requestFailed4, {requestIdentity:"yes", offerToReceiveVideo:0});');
-            }
-
-            function requestFailed2(reason)
-            {
-                testPassed('createOffer request failed.');
-
-                errorReason = reason;
-                shouldBe('errorReason.name', '"Invalid createOffer argument."');
-
-                shouldThrow('pc.createOffer(requestSucceeded2, requestFailed3, {requestIdentity:"yes", offerToReceiveAudio:0});');
-            }
-
-            function requestSucceeded2(sd)
-            {
-                testFailed('createOffer request succeeded.');
-                finishJSTest();
-            }
-
-            function requestFailed1()
-            {
-                testFailed('createOffer request failed.');
-                finishJSTest();
-            }
-
-            function requestSucceeded1(sd)
-            {
-                testPassed('createOffer request succeeded.');
-
-                sessionDescription = sd;
-                shouldBe('sessionDescription.type', '"offer"');
-
-                shouldThrow('pc.createOffer(requestSucceeded2, requestFailed2, {});');
-            }
-
-            pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
-            shouldNotThrow('pc.createOffer(requestSucceeded1, requestFailed1);');
-
-            window.jsTestIsAsync = true;
-            window.successfullyParsed = true;
-        </script>
-        <script src="../../resources/js-test-post.js"></script>
-    </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectiondtmfhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-dtmf.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-dtmf.html   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-dtmf.html      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,82 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-    <head>
-        <script src="../../resources/js-test-pre.js"></script>
-    </head>
-    <body>
-        <script>
-            description("Tests RTCDTMFSender.");
-
-            var pc = null;
-            var stream = null;
-            var dtmfsender = null;
-
-            function error() {
-                testFailed('Error callback called.');
-                finishJSTest();
-            }
-
-            var lastCall = false;
-            var callCount = 1;
-
-            function ontonechange(e) {
-                event = e;
-                testPassed("ontonechange was called " + event.tone);
-                if (!lastCall) {
-                    callCount++;
-                    if (8 == callCount)
-                        lastCall = true;
-                } else {
-                    shouldBeEmptyString('event.tone');
-                    finishJSTest();
-                }
-            }
-
-            function pc_onicechange() {
-                if (pc.iceConnectionState === "completed") {
-                    testPassed("pc is connected");
-                    track = stream.getAudioTracks()[0];
-
-                    shouldThrow('dtmfsender = pc.createDTMFSender(track);');
-                    pc.addStream(stream);
-                    shouldNotThrow('dtmfsender = pc.createDTMFSender(track);');
-                    shouldBeTrue('dtmfsender.canInsertDTMF');
-
-                    dtmfsender.ontonechange = ontonechange;
-                    dtmfsender.insertDTMF("1");
-                    shouldBe('dtmfsender.duration', "100");
-                    shouldBe('dtmfsender.interToneGap', "70");
-
-                    dtmfsender.insertDTMF("4", "40", "30");
-                    shouldBe('dtmfsender.duration', "40");
-                    shouldBe('dtmfsender.interToneGap', "30");
-
-                    dtmfsender.insertDTMF("123", "6000");
-                    shouldBe('dtmfsender.duration', "6000");
-                    shouldBe('dtmfsender.interToneGap', "70");
-
-                    shouldThrow('dtmfsender.insertDTMF("1", "20");');
-                    shouldThrow('dtmfsender.insertDTMF("1", "7000");');
-                    shouldThrow('dtmfsender.insertDTMF("1", "70", "10");');
-
-                }
-            }
-
-            function gotStream(s) {
-                stream = s;
-                testPassed('Stream generated.');
-                shouldBe('stream.getAudioTracks().length', '1');
-                shouldBe('stream.getVideoTracks().length', '0');
-
-                pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
-                pc.oniceconnectionstatechange = pc_onicechange;
-            }
-
-            shouldNotThrow("navigator.webkitGetUserMedia({audio:true}, gotStream, error);");
-
-            window.jsTestIsAsync = true;
-            window.successfullyParsed = true;
-        </script>
-        <script src="../../resources/js-test-post.js"></script>
-    </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectioneventsexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-events-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-events-expected.txt 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-events-expected.txt    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,10 +0,0 @@
</span><del>-Tests that RTCPeerConnection event callbacks are async so that for example close can be called safely. The order of the messages is very important.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-FAIL webkitGetUserMedia threw exception :TypeError: navigator.webkitGetUserMedia is not a function. (In 'navigator.webkitGetUserMedia(dictionary, callback, error)', 'navigator.webkitGetUserMedia' is undefined)
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectioneventshtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-events.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-events.html 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-events.html    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,58 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-    <head>
-        <script src="../../resources/js-test-pre.js"></script>
-    </head>
-    <body>
-        <script>
-            description("Tests that RTCPeerConnection event callbacks are async so that for example close can be called safely. The order of the messages is very important.");
-
-            var stream = null;
-            var pc = null;
-
-            function error() {
-                testFailed('Stream generation failed.');
-                finishJSTest();
-            }
-
-            function getUserMedia(dictionary, callback) {
-                try {
-                    navigator.webkitGetUserMedia(dictionary, callback, error);
-                } catch (e) {
-                    testFailed('webkitGetUserMedia threw exception :' + e);
-                    finishJSTest();
-                }
-            }
-
-            function onStateChange(event) {
-                testPassed('onStateChange was called.');
-                shouldBe("pc.signalingState", "'closed'");
-                finishJSTest();
-            }
-
-            function onNegotiationNeeded(event) {
-                testPassed('onNegotiationNeeded was called.');
-                pc.onsignalingstatechange = onStateChange;
-                pc.close();
-                testPassed('onNegotiationNeeded done.')
-            }
-
-            function gotStream(s) {
-                testPassed('gotStream was called.');
-                stream = s;
-
-                pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
-                pc.onnegotiationneeded = onNegotiationNeeded;
-
-                pc.addStream(stream);
-                testPassed('gotStream done.');
-            }
-
-            getUserMedia({audio:true, video:true}, gotStream);
-
-            window.jsTestIsAsync = true;
-            window.successfullyParsed = true;
-        </script>
-        <script src="../../resources/js-test-post.js"></script>
-    </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionhavelocalofferexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt       2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt  2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> PASS pc.signalingState is "stable"
</span><del>-PASS pc.setLocalDescription(sessionDescription, requestSucceeded1, finishIfFailed); did not throw exception.
</del><ins>+PASS pc.setLocalDescription(sessionDescription).then(requestSucceeded1, finishIfFailed); did not throw exception.
</ins><span class="cx"> FAIL setRemoteDescription failed.
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionhavelocalofferhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-offer.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-offer.html       2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-offer.html  2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -21,7 +21,7 @@
</span><span class="cx">                 testPassed('setLocalDescription succeeded.');
</span><span class="cx">                 check("offer", "local", "", "", '"have-local-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded5, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(requestSucceeded5, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded3()
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx">                 pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><span class="cx">                 check("", "", "", "", '"stable"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded4, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(requestSucceeded4, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded2()
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx">                 testPassed('setLocalDescription succeeded.');
</span><span class="cx">                 check("offer", "local", "", "", '"have-local-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"pranswer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded3, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(requestSucceeded3, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed3(reason)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("offer", "local", "", "", '"have-local-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded2, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(requestSucceeded2, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed2(reason)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("offer", "local", "", "", '"have-local-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, finishIfSucceeded, requestFailed3);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(finishIfSucceeded, requestFailed3);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed1(reason)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("offer", "local", "", "", '"have-local-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"pranswer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, finishIfSucceeded, requestFailed2);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(finishIfSucceeded, requestFailed2);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded1()
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">                 testPassed('setLocalDescription succeeded.');
</span><span class="cx">                 check("offer", "local", "", "", '"have-local-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, finishIfSucceeded, requestFailed1);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(finishIfSucceeded, requestFailed1);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function finishIfSucceeded()
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx">             pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><span class="cx">             shouldBe('pc.signalingState', '"stable"');
</span><span class="cx">             var sessionDescription = new RTCSessionDescription({type:"offer", sdp:"local"});
</span><del>-            shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded1, finishIfFailed);');
</del><ins>+            shouldNotThrow('pc.setLocalDescription(sessionDescription).then(requestSucceeded1, finishIfFailed);');
</ins><span class="cx"> 
</span><span class="cx">             window.jsTestIsAsync = true;
</span><span class="cx">             window.successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionhavelocalpranswerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-pranswer-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-pranswer-expected.txt    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-pranswer-expected.txt       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> PASS pc.signalingState is "stable"
</span><del>-PASS pc.setRemoteDescription(sessionDescription, requestSucceeded1, finishIfFailed); did not throw exception.
</del><ins>+PASS pc.setRemoteDescription(sessionDescription).then(requestSucceeded1, finishIfFailed); did not throw exception.
</ins><span class="cx"> FAIL setRemoteDescription failed.
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionhavelocalpranswerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-pranswer.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-pranswer.html    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-local-pranswer.html       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -23,7 +23,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("pranswer", "local", "offer", "remote", '"have-local-pranswer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded4, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(requestSucceeded4, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed3(reason)
</span><span class="lines">@@ -33,7 +33,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("pranswer", "local", "offer", "remote", '"have-local-pranswer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"pranswer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, finishIfSucceeded, requestFailed4);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(finishIfSucceeded, requestFailed4);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed2(reason)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("pranswer", "local", "offer", "remote", '"have-local-pranswer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, finishIfSucceeded, requestFailed3);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(finishIfSucceeded, requestFailed3);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed1(reason)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("pranswer", "local", "offer", "remote", '"have-local-pranswer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, finishIfSucceeded, requestFailed2);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(finishIfSucceeded, requestFailed2);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded3()
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">                 testPassed('setLocalDescription succeeded.');
</span><span class="cx">                 check("pranswer", "local", "offer", "remote", '"have-local-pranswer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, finishIfSucceeded, requestFailed1);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(finishIfSucceeded, requestFailed1);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded2()
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">                 testPassed('setLocalDescription succeeded.');
</span><span class="cx">                 check("pranswer", "local", "offer", "remote", '"have-local-pranswer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"pranswer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded3, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(requestSucceeded3, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded1()
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">                 testPassed('setRemoteDescription succeeded.');
</span><span class="cx">                 check("", "", "offer", "remote", '"have-remote-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"pranswer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded2, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(requestSucceeded2, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function finishIfSucceeded()
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">             pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><span class="cx">             shouldBe('pc.signalingState', '"stable"');
</span><span class="cx">             var sessionDescription = new RTCSessionDescription({type:"offer", sdp:"remote"});
</span><del>-            shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded1, finishIfFailed);');
</del><ins>+            shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(requestSucceeded1, finishIfFailed);');
</ins><span class="cx"> 
</span><span class="cx">             window.jsTestIsAsync = true;
</span><span class="cx">             window.successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionhaveremoteofferexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> PASS pc.signalingState is "stable"
</span><del>-PASS pc.setRemoteDescription(sessionDescription, requestSucceeded1, finishIfFailed); did not throw exception.
</del><ins>+PASS pc.setRemoteDescription(sessionDescription).then(requestSucceeded1, finishIfFailed); did not throw exception.
</ins><span class="cx"> FAIL setRemoteDescription failed.
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionhaveremoteofferhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-offer.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-offer.html      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-offer.html 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -21,7 +21,7 @@
</span><span class="cx">                 testPassed('setRemoteDescription succeeded.');
</span><span class="cx">                 check("", "", "offer", "remote", '"have-remote-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"pranswer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded5, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(requestSucceeded5, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded3()
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx">                 pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><span class="cx">                 check("", "", "", "", '"stable"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded4, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(requestSucceeded4, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded2()
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx">                 testPassed('setRemoteDescription succeeded.');
</span><span class="cx">                 check("", "", "offer", "remote", '"have-remote-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded3, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(requestSucceeded3, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed3(reason)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("", "", "offer", "remote", '"have-remote-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded2, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(requestSucceeded2, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed2(reason)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("", "", "offer", "remote", '"have-remote-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, finishIfSucceeded, requestFailed3);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(finishIfSucceeded, requestFailed3);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed1(reason)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("", "", "offer", "remote", '"have-remote-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"pranswer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, finishIfSucceeded, requestFailed2);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(finishIfSucceeded, requestFailed2);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded1()
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">                 testPassed('setRemoteDescription succeeded.');
</span><span class="cx">                 check("", "", "offer", "remote", '"have-remote-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, finishIfSucceeded, requestFailed1);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(finishIfSucceeded, requestFailed1);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function finishIfSucceeded()
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx">             pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><span class="cx">             shouldBe('pc.signalingState', '"stable"');
</span><span class="cx">             var sessionDescription = new RTCSessionDescription({type:"offer", sdp:"remote"});
</span><del>-            shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded1, finishIfFailed);');
</del><ins>+            shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(requestSucceeded1, finishIfFailed);');
</ins><span class="cx"> 
</span><span class="cx">             window.jsTestIsAsync = true;
</span><span class="cx">             window.successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionhaveremotepranswerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-pranswer-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-pranswer-expected.txt   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-pranswer-expected.txt      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> PASS pc.signalingState is "stable"
</span><del>-PASS pc.setLocalDescription(sessionDescription, requestSucceeded1, finishIfFailed); did not throw exception.
</del><ins>+PASS pc.setLocalDescription(sessionDescription).then(requestSucceeded1, finishIfFailed); did not throw exception.
</ins><span class="cx"> FAIL setRemoteDescription failed.
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionhaveremotepranswerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-pranswer.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-pranswer.html   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-have-remote-pranswer.html      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -23,7 +23,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("offer", "local", "pranswer", "remote", '"have-remote-pranswer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded4, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(requestSucceeded4, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed3(reason)
</span><span class="lines">@@ -33,7 +33,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("offer", "local", "pranswer", "remote", '"have-remote-pranswer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"pranswer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, finishIfSucceeded, requestFailed4);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(finishIfSucceeded, requestFailed4);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed2(reason)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("offer", "local", "pranswer", "remote", '"have-remote-pranswer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, finishIfSucceeded, requestFailed3);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(finishIfSucceeded, requestFailed3);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed1(reason)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("offer", "local", "pranswer", "remote", '"have-remote-pranswer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, finishIfSucceeded, requestFailed2);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(finishIfSucceeded, requestFailed2);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded3()
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">                 testPassed('setRemoteDescription succeeded.');
</span><span class="cx">                 check("offer", "local", "pranswer", "remote", '"have-remote-pranswer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, finishIfSucceeded, requestFailed1);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(finishIfSucceeded, requestFailed1);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded2()
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">                 testPassed('setRemoteDescription succeeded.');
</span><span class="cx">                 check("offer", "local", "pranswer", "remote", '"have-remote-pranswer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"pranswer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded3, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(requestSucceeded3, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestSucceeded1()
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">                 testPassed('setLocalDescription succeeded.');
</span><span class="cx">                 check("offer", "local", "", "", '"have-local-offer"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"pranswer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded2, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(requestSucceeded2, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function finishIfSucceeded()
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">             pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><span class="cx">             shouldBe('pc.signalingState', '"stable"');
</span><span class="cx">             var sessionDescription = new RTCSessionDescription({type:"offer", sdp:"local"});
</span><del>-            shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded1, finishIfFailed);');
</del><ins>+            shouldNotThrow('pc.setLocalDescription(sessionDescription).then(requestSucceeded1, finishIfFailed);');
</ins><span class="cx"> 
</span><span class="cx">             window.jsTestIsAsync = true;
</span><span class="cx">             window.successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionlegacystreambasedapiexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt        2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt   2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,57 +0,0 @@
</span><del>-Test RTCPeerConnection's legacy MediaStream-based API
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Stream sets should be empty initially
-PASS pc.getLocalStreams().length is 0
-PASS pc.getRemoteStreams().length is 0
-
-Test with single track MediaStream
-audioTrack = stream.getAudioTracks()[0]
-PASS pc.addStream(stream) did not throw exception.
-PASS pc.getLocalStreams().length is 1
-PASS pc.getLocalStreams()[0] is stream
-PASS pc.getStreamById(stream.id) is stream
-PASS pc.getSenders().length is 1
-PASS pc.getSenders()[0].track is audioTrack
-Adding the same stream again should be a no-op
-PASS pc.addStream(stream) did not throw exception.
-PASS pc.getLocalStreams().length is 1
-
-Test with audio and video MediaStream
-audioTrack = stream.getAudioTracks()[0]
-videoTrack = stream.getVideoTracks()[0]
-PASS pc.addStream(stream) did not throw exception.
-PASS pc.getLocalStreams().length is 2
-PASS pc.getLocalStreams().includes(stream) is true
-PASS pc.getStreamById(stream.id) is stream
-PASS pc.getSenders().length is 3
-PASS audioTrackFoundAmongSenders is true
-PASS videoTrackFoundAmongSenders is true
-
-Test removeStream
-Remove a non-existent stream
-otherStream = stream.clone()
-PASS pc.removeStream(otherStream) did not throw exception.
-Both streams should still be present
-PASS pc.getLocalStreams().length is 2
-PASS pc.removeStream(stream) did not throw exception.
-PASS pc.getLocalStreams().length is 1
-PASS pc.getStreamById(stream.id) is null
-All senders should still be present
-PASS pc.getSenders().length is 3
-Removing the same stream again should be a no-op
-PASS pc.removeStream(stream) did not throw exception.
-PASS pc.getLocalStreams().length is 1
-
-Test applying a remote description offering a stream with two tracks
-Create remote offer
-Got remote offer, set it
-Remote offer set
-PASS End of test promise chain
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionlegacystreambasedapihtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html        2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html   2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,144 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
-    <head>
-        <script src="../../resources/js-test-pre.js"></script>
-    </head>
-    <body>
-        <script>
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("");
-
-            description("Test RTCPeerConnection's legacy MediaStream-based API");
-
-            let stream;
-            let otherStream;
-            let audioTrack;
-            let videoTrack;
-            let audioTrackFoundAmongSenders;
-            let videoTrackFoundAmongSenders;
-            let remoteStream;
-
-            if (window.testRunner)
-                testRunner.setUserMediaPermission(true);
-            else {
-                debug("This test can not be run without the testRunner");
-                finishJSTest();
-            }
-
-            const pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
-            const remotePc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
-
-            debug("Stream sets should be empty initially")
-            shouldBe("pc.getLocalStreams().length", "0");
-            shouldBe("pc.getRemoteStreams().length", "0");
-
-            pc.onaddstream = evt => {
-                testPassed("Got 'addstream' event (before setRemoteDescription promise fulfilled)");
-                remoteStream = evt.stream;
-
-                shouldBe("remoteStream.getTracks().length", "2");
-
-                shouldBe("pc.getRemoteStreams().length", "1");
-                shouldBe("pc.getRemoteStreams()[0]", "remoteStream");
-
-                shouldBe("pc.getStreamById(remoteStream.id)", "remoteStream");
-            };
-
-            navigator.mediaDevices.getUserMedia({ "audio": true })
-            .then(s => {
-                stream = s;
-
-                debug("<br>Test with single track MediaStream");
-                evalAndLog("audioTrack = stream.getAudioTracks()[0]");
-                shouldNotThrow("pc.addStream(stream)");
-
-                shouldBe("pc.getLocalStreams().length", "1");
-                shouldBe("pc.getLocalStreams()[0]", "stream");
-
-                shouldBe("pc.getStreamById(stream.id)", "stream");
-
-                shouldBe("pc.getSenders().length", "1");
-                shouldBe("pc.getSenders()[0].track", "audioTrack");
-
-                debug("Adding the same stream again should be a no-op");
-                shouldNotThrow("pc.addStream(stream)");
-                shouldBe("pc.getLocalStreams().length", "1");
-
-                return navigator.mediaDevices.getUserMedia({ "audio": true, "video": true });
-            })
-            .then(s => {
-                stream = s;
-
-                debug("<br>Test with audio and video MediaStream");
-                evalAndLog("audioTrack = stream.getAudioTracks()[0]");
-                evalAndLog("videoTrack = stream.getVideoTracks()[0]");
-
-                shouldNotThrow("pc.addStream(stream)");
-
-                shouldBe("pc.getLocalStreams().length", "2");
-                shouldBeTrue("pc.getLocalStreams().includes(stream)");
-
-                shouldBe("pc.getStreamById(stream.id)", "stream");
-
-                shouldBe("pc.getSenders().length", "3");
-
-                audioTrackFoundAmongSenders = false;
-                videoTrackFoundAmongSenders = false;
-                pc.getSenders().forEach(sender => {
-                    if (sender.track === audioTrack)
-                        audioTrackFoundAmongSenders = true;
-                    else if (sender.track === videoTrack)
-                        videoTrackFoundAmongSenders = true;
-                });
-
-                shouldBeTrue("audioTrackFoundAmongSenders");
-                shouldBeTrue("videoTrackFoundAmongSenders");
-
-                debug("<br>Test removeStream");
-                debug("Remove a non-existent stream");
-                evalAndLog("otherStream = stream.clone()");
-                shouldNotThrow("pc.removeStream(otherStream)");
-
-                debug("Both streams should still be present");
-                shouldBe("pc.getLocalStreams().length", "2");
-
-                shouldNotThrow("pc.removeStream(stream)");
-
-                shouldBe("pc.getLocalStreams().length", "1");
-                shouldBe("pc.getStreamById(stream.id)", "null");
-
-                debug("All senders should still be present")
-                shouldBe("pc.getSenders().length", "3");
-
-                debug("Removing the same stream again should be a no-op");
-                shouldNotThrow("pc.removeStream(stream)");
-                shouldBe("pc.getLocalStreams().length", "1");
-
-                debug("<br>Test applying a remote description offering a stream with two tracks");
-                remotePc.addStream(stream);
-
-                debug("Create remote offer");
-                return remotePc.createOffer();
-            })
-            .then(remoteOffer => {
-                debug("Got remote offer, set it");
-                return pc.setRemoteDescription(remoteOffer);
-            })
-            .then(() => {
-                debug("Remote offer set");
-                testPassed("End of test promise chain");
-                debug("");
-
-                finishJSTest();
-            })
-            .catch(error => {
-                testFailed("Error in promise chain: " + error);
-                finishJSTest();
-            });
-
-            window.jsTestIsAsync = true;
-            window.successfullyParsed = true;
-        </script>
-        <script src="../../resources/js-test-post.js"></script>
-    </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionlocalDescriptionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-localDescription-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-localDescription-expected.txt       2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-localDescription-expected.txt  2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PASS pc.setLocalDescription(sessionDescription, requestSucceeded1, requestFailed1); did not throw exception.
</del><ins>+PASS pc.setLocalDescription(sessionDescription).then(requestSucceeded1, requestFailed1); did not throw exception.
</ins><span class="cx"> FAIL requestFailed was called.
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionlocalDescriptionhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-localDescription.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-localDescription.html       2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-localDescription.html  2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -39,12 +39,12 @@
</span><span class="cx">                 testPassed('requestSucceeded was called.');
</span><span class="cx"> 
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded2, requestFailed2);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(requestSucceeded2, requestFailed2);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><span class="cx">             var sessionDescription = new RTCSessionDescription({type:"offer", sdp:"local"});
</span><del>-            shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded1, requestFailed1);');
</del><ins>+            shouldNotThrow('pc.setLocalDescription(sessionDescription).then(requestSucceeded1, requestFailed1);');
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">             window.jsTestIsAsync = true;
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionremoteDescriptionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PASS pc.setRemoteDescription(sessionDescription, requestSucceeded1, requestFailed1); did not throw exception.
</del><ins>+PASS pc.setRemoteDescription(sessionDescription).then(requestSucceeded1, requestFailed1); did not throw exception.
</ins><span class="cx"> FAIL requestFailed was called.
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionremoteDescriptionhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remoteDescription.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remoteDescription.html      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remoteDescription.html 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -39,12 +39,12 @@
</span><span class="cx">                 testPassed('requestSucceeded was called.');
</span><span class="cx"> 
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded2, requestFailed2);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(requestSucceeded2, requestFailed2);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><span class="cx">             var sessionDescription = new RTCSessionDescription({type:"offer", sdp:"remote"});
</span><del>-            shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded1, requestFailed1);');
</del><ins>+            shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(requestSucceeded1, requestFailed1);');
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">             window.jsTestIsAsync = true;
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionstableexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-stable-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-stable-expected.txt 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-stable-expected.txt    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -4,31 +4,31 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> PASS pc.signalingState is "stable"
</span><del>-PASS pc.setLocalDescription(sessionDescription, finishIfSucceeded, requestFailed1); did not throw exception.
</del><ins>+PASS pc.setLocalDescription(sessionDescription).then(finishIfSucceeded, requestFailed1); did not throw exception.
</ins><span class="cx"> PASS setLocalDescription failed.
</span><span class="cx"> FAIL errorReason.name should be InvalidSessionDescriptionError. Was InvalidStateError.
</span><span class="cx"> FAIL pc.localDescription should throw an exception. Was null.
</span><span class="cx"> FAIL pc.remoteDescription should throw an exception. Was null.
</span><span class="cx"> PASS pc.signalingState is "stable"
</span><del>-PASS pc.setLocalDescription(sessionDescription, finishIfSucceeded, requestFailed2); did not throw exception.
</del><ins>+PASS pc.setLocalDescription(sessionDescription).then(finishIfSucceeded, requestFailed2); did not throw exception.
</ins><span class="cx"> PASS setLocalDescription failed.
</span><span class="cx"> FAIL errorReason.name should be InvalidSessionDescriptionError. Was InvalidStateError.
</span><span class="cx"> FAIL pc.localDescription should throw an exception. Was null.
</span><span class="cx"> FAIL pc.remoteDescription should throw an exception. Was null.
</span><span class="cx"> PASS pc.signalingState is "stable"
</span><del>-PASS pc.setRemoteDescription(sessionDescription, finishIfSucceeded, requestFailed3); did not throw exception.
</del><ins>+PASS pc.setRemoteDescription(sessionDescription).then(finishIfSucceeded, requestFailed3); did not throw exception.
</ins><span class="cx"> PASS setRemoteDescription failed.
</span><span class="cx"> FAIL errorReason.name should be InvalidSessionDescriptionError. Was InvalidStateError.
</span><span class="cx"> FAIL pc.localDescription should throw an exception. Was null.
</span><span class="cx"> FAIL pc.remoteDescription should throw an exception. Was null.
</span><span class="cx"> PASS pc.signalingState is "stable"
</span><del>-PASS pc.setRemoteDescription(sessionDescription, finishIfSucceeded, requestFailed4); did not throw exception.
</del><ins>+PASS pc.setRemoteDescription(sessionDescription).then(finishIfSucceeded, requestFailed4); did not throw exception.
</ins><span class="cx"> PASS setRemoteDescription failed.
</span><span class="cx"> FAIL errorReason.name should be InvalidSessionDescriptionError. Was InvalidStateError.
</span><span class="cx"> FAIL pc.localDescription should throw an exception. Was null.
</span><span class="cx"> FAIL pc.remoteDescription should throw an exception. Was null.
</span><span class="cx"> PASS pc.signalingState is "stable"
</span><del>-PASS pc.setLocalDescription(sessionDescription, requestSucceeded1, finishIfFailed); did not throw exception.
</del><ins>+PASS pc.setLocalDescription(sessionDescription).then(requestSucceeded1, finishIfFailed); did not throw exception.
</ins><span class="cx"> FAIL setRemoteDescription failed.
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionstablehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-stable.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-stable.html 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-stable.html    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -9,13 +9,6 @@
</span><span class="cx"> 
</span><span class="cx">             var pc = null;
</span><span class="cx"> 
</span><del>-            // Let's ensure built-ins are shielded from user scripts
-            var thenPromise = Promise.prototype.then;
-            Promise.prototype.then = function() {
-                console.log("Promise.prototype.then is called internally");
-                return thenPromise.apply(this, arguments);
-            }
-
</del><span class="cx">             function requestSucceeded2()
</span><span class="cx">             {
</span><span class="cx">                 testPassed('setRemoteDescription succeeded.');
</span><span class="lines">@@ -30,7 +23,7 @@
</span><span class="cx">                 pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><span class="cx">                 check("", "", "", "", '"stable"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, requestSucceeded2, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(requestSucceeded2, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed4(reason)
</span><span class="lines">@@ -40,7 +33,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("", "", "", "", '"stable"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"offer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, requestSucceeded1, finishIfFailed);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(requestSucceeded1, finishIfFailed);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed3(reason)
</span><span class="lines">@@ -50,7 +43,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("", "", "", "", '"stable"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"answer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, finishIfSucceeded, requestFailed4);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(finishIfSucceeded, requestFailed4);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed2(reason)
</span><span class="lines">@@ -60,7 +53,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("", "", "", "", '"stable"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"pranswer", sdp:"remote"});
</span><del>-                shouldNotThrow('pc.setRemoteDescription(sessionDescription, finishIfSucceeded, requestFailed3);');
</del><ins>+                shouldNotThrow('pc.setRemoteDescription(sessionDescription).then(finishIfSucceeded, requestFailed3);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function requestFailed1(reason)
</span><span class="lines">@@ -70,7 +63,7 @@
</span><span class="cx">                 shouldBe('errorReason.name', '"InvalidSessionDescriptionError"');
</span><span class="cx">                 check("", "", "", "", '"stable"');
</span><span class="cx">                 sessionDescription = new RTCSessionDescription({type:"pranswer", sdp:"local"});
</span><del>-                shouldNotThrow('pc.setLocalDescription(sessionDescription, finishIfSucceeded, requestFailed2);');
</del><ins>+                shouldNotThrow('pc.setLocalDescription(sessionDescription).then(finishIfSucceeded, requestFailed2);');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function finishIfSucceeded()
</span><span class="lines">@@ -105,7 +98,7 @@
</span><span class="cx">             pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><span class="cx">             shouldBe('pc.signalingState', '"stable"');
</span><span class="cx">             var sessionDescription = new RTCSessionDescription({type:"answer", sdp:"local"});
</span><del>-            shouldNotThrow('pc.setLocalDescription(sessionDescription, finishIfSucceeded, requestFailed1);');
</del><ins>+            shouldNotThrow('pc.setLocalDescription(sessionDescription).then(finishIfSucceeded, requestFailed1);');
</ins><span class="cx"> 
</span><span class="cx">             window.jsTestIsAsync = true;
</span><span class="cx">             window.successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionstatshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-stats.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-stats.html  2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-stats.html     2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx">                 shouldBeNonNull('status');
</span><span class="cx">                 result = status.result();
</span><span class="cx">                 shouldBe('result.length', '0');
</span><del>-                shouldNotThrow('getUserMedia({audio:true, video:true}, gotStream)');
</del><ins>+                shouldNotThrow('getUserMedia({audio:true, video:true}).then(gotStream)');
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             function gotStream(s) {
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx">                 testPassed('Got a stream.');
</span><span class="cx">                 stream = s;
</span><span class="cx"> 
</span><del>-                pc.addStream(stream);
</del><ins>+                pc.addTrack(stream.getVideoTracks()[0]);
</ins><span class="cx">                 // FIXME: Test getStats error callback: https://webkit.org/b/129860
</span><span class="cx">                 shouldNotThrow('pc.getStats().then(statsHandler2, statsError)');
</span><span class="cx">             }
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionstatsSelectorexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-statsSelector-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-statsSelector-expected.txt  2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-statsSelector-expected.txt     2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -4,8 +4,12 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> PASS pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]}) did not throw exception.
</span><del>-FAIL webkitGetUserMedia threw exception :TypeError: navigator.webkitGetUserMedia is not a function. (In 'navigator.webkitGetUserMedia(dictionary, callback, error)', 'navigator.webkitGetUserMedia' is undefined)
-PASS getUserMedia({audio:true, video:true}, gotStream) did not throw exception.
</del><ins>+PASS navigator.mediaDevices.getUserMedia({audio:true, video:true}).then(gotStream, error) did not throw exception.
+PASS Got a stream.
+PASS statsHandler2 was called
+PASS result.size is >= 1
+PASS timestamp is >= startTime
+FAIL local.type should be video. Was certificate.
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamRTCPeerConnectionstatsSelectorhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-statsSelector.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-statsSelector.html  2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-statsSelector.html     2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -18,44 +18,37 @@
</span><span class="cx">                 finishJSTest();
</span><span class="cx">             }
</span><span class="cx"> 
</span><del>-            function getUserMedia(dictionary, callback) {
-                try {
-                    navigator.webkitGetUserMedia(dictionary, callback, error);
-                } catch (e) {
-                    testFailed('webkitGetUserMedia threw exception :' + e);
-                    finishJSTest();
-                }
-            }
-
</del><span class="cx">             function error() {
</span><span class="cx">                 testFailed('Stream generation failed.');
</span><span class="cx">                 finishJSTest();
</span><span class="cx">             }
</span><span class="cx"> 
</span><del>-            function gotStream(s) {
</del><ins>+            async function gotStream(s) {
</ins><span class="cx">                 testPassed('Got a stream.');
</span><span class="cx">                 stream = s;
</span><span class="cx"> 
</span><del>-                pc.addStream(stream);
</del><ins>+                const sender = pc.addTrack(stream.getVideoTracks()[0], stream);
+                var offer = await pc.createOffer();
+                await pc.setLocalDescription(offer);
</ins><span class="cx">                 // FIXME: Test getStats error callback: https://webkit.org/b/129860
</span><del>-                shouldNotThrow('pc.getStats(pc.getLocalStreams()[0].getVideoTracks()[0]).then(statsHandler2, statsError)');
</del><ins>+                pc.getStats(sender.track).then(statsHandler2, statsError);
</ins><span class="cx">             }
</span><span class="cx"> 
</span><del>-            function statsHandler2(status)
</del><ins>+            function statsHandler2(r)
</ins><span class="cx">             {
</span><ins>+                result = r;
</ins><span class="cx">                 testPassed("statsHandler2 was called");
</span><del>-                result = status.result();
-                shouldBeGreaterThanOrEqual('result.length', '1');
-                local = result[0].local;
</del><ins>+                shouldBeGreaterThanOrEqual('result.size', '1');
+                local = result.get(result.keys().next().value);
</ins><span class="cx">                 timestamp = local.timestamp;
</span><span class="cx">                 shouldBeGreaterThanOrEqual('timestamp', 'startTime');
</span><del>-                shouldBe('local.stat("type")', '"video"');
</del><ins>+                shouldBe('local.type', '"video"');
</ins><span class="cx">                 finishJSTest();
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             var startTime = new Date().getTime();
</span><span class="cx">             shouldNotThrow("pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]})");
</span><del>-            shouldNotThrow('getUserMedia({audio:true, video:true}, gotStream)');
</del><ins>+            shouldNotThrow('navigator.mediaDevices.getUserMedia({audio:true, video:true}).then(gotStream, error)');
</ins><span class="cx"> 
</span><span class="cx">             window.jsTestIsAsync = true;
</span><span class="cx">             window.successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamargumenttypesexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/argument-types-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/argument-types-expected.txt   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/argument-types-expected.txt      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,48 +0,0 @@
</span><del>-Tests the acceptable types for arguments to navigator.getUserMedia methods.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS navigator.getUserMedia() threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(undefined) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(null) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({ }) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({video: true}) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(true) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(42) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(Infinity) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(-Infinity) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(emptyFunction) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({video: true}, emptyFunction) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(undefined, emptyFunction) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(null, emptyFunction) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({ }, emptyFunction) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(true, emptyFunction) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(42, emptyFunction) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(Infinity, emptyFunction) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(-Infinity, emptyFunction) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia(emptyFunction, emptyFunction) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({video: true}, "foobar") threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({video: true}, undefined) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({video: true}, null) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({video: true}, {}) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({video: true}, true) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({video: true}, 42) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({video: true}, Infinity) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({video: true}, -Infinity) threw exception TypeError: Not enough arguments.
-PASS navigator.getUserMedia({ }, emptyFunction, emptyFunction) did not throw exception.
-PASS navigator.getUserMedia({video: true}, emptyFunction, emptyFunction) did not throw exception.
-PASS navigator.getUserMedia({video: true}, emptyFunction, undefined) threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({audio:true, video:true}, emptyFunction, undefined) threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({audio:true}, emptyFunction, undefined) threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({video: true}, emptyFunction, "video") threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({video: true}, emptyFunction, null) threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({video: true}, emptyFunction, {}) threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({video: true}, emptyFunction, true) threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({video: true}, emptyFunction, 42) threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({video: true}, emptyFunction, Infinity) threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({video: true}, emptyFunction, -Infinity) threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamargumenttypeshtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/argument-types.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/argument-types.html   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/argument-types.html      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,81 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-    <head>
-        <script src="../../resources/js-test-pre.js"></script>
-    </head>
-    <body>
-        <script>
-        description("Tests the acceptable types for arguments to navigator.getUserMedia methods.");
-        
-        function test(expression, expressionShouldThrow, expectedException) {
-            if (expressionShouldThrow) {
-                if (expectedException)
-                    shouldThrow(expression, '"' + expectedException + '"');
-                else
-                    shouldThrow(expression, '"TypeError: Not enough arguments"');
-            } else {
-                shouldNotThrow(expression);
-            }
-        }
-        
-        var errorCallbackError = new TypeError("Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function")
-        var invalidDictionaryError = new TypeError('First argument of getUserMedia must be a valid Dictionary')
-        var notSupportedError = new Error('NotSupportedError: DOM Exception 9');
-        var successCallbackError = new TypeError("Argument 2 ('successCallback') to Navigator.getUserMedia must be a function")
-        var typeError = new TypeError('Type error');
-        var typeNotAnObjectError = new TypeError('Not an object.');
-        
-        var emptyFunction = function() {};
-        
-        // No arguments
-        test('navigator.getUserMedia()', true);
-        
-        // 1 Argument (Navigtor.getUserMedia requires at least 3 arguments).
-        test('navigator.getUserMedia(undefined)', true);
-        test('navigator.getUserMedia(null)', true);
-        test('navigator.getUserMedia({ })', true);
-        test('navigator.getUserMedia({video: true})', true);
-        test('navigator.getUserMedia(true)', true);
-        test('navigator.getUserMedia(42)', true);
-        test('navigator.getUserMedia(Infinity)', true);
-        test('navigator.getUserMedia(-Infinity)', true);
-        test('navigator.getUserMedia(emptyFunction)', true);
-        
-        // 2 Arguments.
-        test('navigator.getUserMedia({video: true}, emptyFunction)', true);
-        test('navigator.getUserMedia(undefined, emptyFunction)', true);
-        test('navigator.getUserMedia(null, emptyFunction)', true);
-        test('navigator.getUserMedia({ }, emptyFunction)', true);
-        test('navigator.getUserMedia(true, emptyFunction)', true);
-        test('navigator.getUserMedia(42, emptyFunction)', true);
-        test('navigator.getUserMedia(Infinity, emptyFunction)', true);
-        test('navigator.getUserMedia(-Infinity, emptyFunction)', true);
-        test('navigator.getUserMedia(emptyFunction, emptyFunction)', true);
-        test('navigator.getUserMedia({video: true}, "foobar")', true);
-        test('navigator.getUserMedia({video: true}, undefined)', true);
-        test('navigator.getUserMedia({video: true}, null)', true);
-        test('navigator.getUserMedia({video: true}, {})', true);
-        test('navigator.getUserMedia({video: true}, true)', true);
-        test('navigator.getUserMedia({video: true}, 42)', true);
-        test('navigator.getUserMedia({video: true}, Infinity)', true);
-        test('navigator.getUserMedia({video: true}, -Infinity)', true);
-        
-        // 3 Arguments.
-        test('navigator.getUserMedia({ }, emptyFunction, emptyFunction)', false);
-        test('navigator.getUserMedia({video: true}, emptyFunction, emptyFunction)', false);
-        test('navigator.getUserMedia({video: true}, emptyFunction, undefined)', true, errorCallbackError);
-        test('navigator.getUserMedia({audio:true, video:true}, emptyFunction, undefined)', true, errorCallbackError);
-        test('navigator.getUserMedia({audio:true}, emptyFunction, undefined)', true, errorCallbackError);
-        test('navigator.getUserMedia({video: true}, emptyFunction, "video")', true, errorCallbackError);
-        test('navigator.getUserMedia({video: true}, emptyFunction, null)', true, errorCallbackError );
-        test('navigator.getUserMedia({video: true}, emptyFunction, {})', true, errorCallbackError);
-        test('navigator.getUserMedia({video: true}, emptyFunction, true)', true, errorCallbackError);
-        test('navigator.getUserMedia({video: true}, emptyFunction, 42)', true, errorCallbackError);
-        test('navigator.getUserMedia({video: true}, emptyFunction, Infinity)', true, errorCallbackError);
-        test('navigator.getUserMedia({video: true}, emptyFunction, -Infinity)', true, errorCallbackError);
-        
-        window.jsTestIsAsync = false;
-        </script>
-        <script src="../../resources/js-test-post.js"></script>
-    </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamgetusermediaexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/getusermedia-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/getusermedia-expected.txt     2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/getusermedia-expected.txt        2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,41 +0,0 @@
</span><del>-Tests getUserMedia.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS navigator.getUserMedia({audio:false, video:false}, error, expectedError); did not throw exception.
-PASS navigator.getUserMedia({audio:false, video:false}, error, null); threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({audio:true}, gotStream1, error); did not throw exception.
-PASS Error callback called.
-PASS Stream generated.
-PASS stream.getAudioTracks().length is 1
-PASS stream.getVideoTracks().length is 0
-PASS navigator.getUserMedia({video:true}, gotStream2, null); threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({video:true}, gotStream2, error); did not throw exception.
-PASS Stream generated.
-PASS stream.getAudioTracks().length is 0
-PASS stream.getVideoTracks().length is 1
-PASS navigator.getUserMedia({audio:true, video:true}, gotStream3, null); threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({audio:true, video:true}, gotStream3, error); did not throw exception.
-PASS Stream generated.
-PASS stream.getAudioTracks().length is 1
-PASS stream.getVideoTracks().length is 1
-PASS navigator.getUserMedia({audio:{}, video:true}, gotStream4, null); threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({audio:{}, video:true}, gotStream4, error); did not throw exception.
-PASS Stream generated.
-PASS stream.getAudioTracks().length is 1
-PASS stream.getVideoTracks().length is 1
-PASS navigator.getUserMedia({audio:true, video:{width:{exact:11}}}, gotStreamInError, null); threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({audio:true, video:{width:{exact:11}}}, gotStreamInError, error1); did not throw exception.
-PASS Error callback called.
-FAIL errorArg.name should be OverconstrainedError. Was Error.
-PASS errorArg.message is "Invalid constraint"
-PASS navigator.getUserMedia({audio:{volume:{exact:1}}, video:true}, gotStream5, 0); threw exception TypeError: Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function.
-PASS navigator.getUserMedia({audio:{volume:{exact:1}}, video:true}, gotStream5, error); did not throw exception.
-PASS Stream generated.
-PASS stream.getAudioTracks().length is 1
-PASS stream.getVideoTracks().length is 1
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamgetusermediahtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/getusermedia.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/getusermedia.html     2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/getusermedia.html        2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,105 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-    <head>
-        <script src="../../resources/js-test-pre.js"></script>
-    </head>
-    <body>
-        <p id="description"></p>
-        <div id="console"></div>
-        <script>
-            description("Tests getUserMedia.");
-
-            function setUserMediaPermission(isGranted) {
-                if (window.testRunner)
-                    testRunner.setUserMediaPermission(isGranted);
-                else
-                    debug("This test can not be run without the testRunner");
-            }
-
-            var stream;
-            var errorArg;
-
-            function error() {
-                testFailed('Error callback called.');
-                finishJSTest();
-            }
-
-            function expectedError() {
-                testPassed('Error callback called.');
-            }
-
-            function gotStreamInError(s) {
-                testFailed('Stream generated.');
-                finishJSTest();
-            }
-
-            function gotStream5(s) {
-                stream = s;
-                testPassed('Stream generated.');
-                shouldBe('stream.getAudioTracks().length', '1');
-                shouldBe('stream.getVideoTracks().length', '1');
-                finishJSTest();
-            }
-
-            function error1(e) {
-                errorArg = e;
-                testPassed('Error callback called.');
-                shouldBeEqualToString('errorArg.name', 'OverconstrainedError');
-                shouldBeEqualToString('errorArg.message', 'Invalid constraint');
-
-                shouldThrow("navigator.getUserMedia({audio:{volume:{exact:1}}, video:true}, gotStream5, 0);");
-                shouldNotThrow("navigator.getUserMedia({audio:{volume:{exact:1}}, video:true}, gotStream5, error);");
-            }
-
-            function gotStream4(s) {
-                stream = s;
-                testPassed('Stream generated.');
-                shouldBe('stream.getAudioTracks().length', '1');
-                shouldBe('stream.getVideoTracks().length', '1');
-
-                shouldThrow("navigator.getUserMedia({audio:true, video:{width:{exact:11}}}, gotStreamInError, null);");
-                shouldNotThrow("navigator.getUserMedia({audio:true, video:{width:{exact:11}}}, gotStreamInError, error1);");
-            }
-
-            function gotStream3(s) {
-                stream = s;
-                testPassed('Stream generated.');
-                shouldBe('stream.getAudioTracks().length', '1');
-                shouldBe('stream.getVideoTracks().length', '1');
-
-                shouldThrow("navigator.getUserMedia({audio:{}, video:true}, gotStream4, null);");
-                shouldNotThrow("navigator.getUserMedia({audio:{}, video:true}, gotStream4, error);");
-            }
-
-            function gotStream2(s) {
-                stream = s;
-                testPassed('Stream generated.');
-                shouldBe('stream.getAudioTracks().length', '0');
-                shouldBe('stream.getVideoTracks().length', '1');
-
-                shouldThrow("navigator.getUserMedia({audio:true, video:true}, gotStream3, null);");
-                shouldNotThrow("navigator.getUserMedia({audio:true, video:true}, gotStream3, error);");
-            }
-
-            function gotStream1(s) {
-                stream = s;
-                testPassed('Stream generated.');
-                shouldBe('stream.getAudioTracks().length', '1');
-                shouldBe('stream.getVideoTracks().length', '0');
-
-                shouldThrow("navigator.getUserMedia({video:true}, gotStream2, null);")
-                shouldNotThrow("navigator.getUserMedia({video:true}, gotStream2, error);")
-            }
-
-            shouldNotThrow("navigator.getUserMedia({audio:false, video:false}, error, expectedError);")
-            shouldThrow("navigator.getUserMedia({audio:false, video:false}, error, null);")
-
-            setUserMediaPermission(true);
-            shouldNotThrow("navigator.getUserMedia({audio:true}, gotStream1, error);");
-
-            window.jsTestIsAsync = true;
-            window.successfullyParsed = true;
-        </script>
-        <script src="../../resources/js-test-post.js"></script>
-    </body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamwebkitGetUserMediashadowingthenexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/webkitGetUserMedia-shadowing-then-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/webkitGetUserMedia-shadowing-then-expected.txt        2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/webkitGetUserMedia-shadowing-then-expected.txt   2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1 +0,0 @@
</span><del>-PASS
</del></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamwebkitGetUserMediashadowingthenhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/mediastream/webkitGetUserMedia-shadowing-then.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/webkitGetUserMedia-shadowing-then.html        2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/fast/mediastream/webkitGetUserMedia-shadowing-then.html   2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,44 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Shadowing then()</title>
-</head>
-<body>
-<!--
-This test verifies that the implementation of navigator.getUserMedia does not use public promise APIs.
--->
-<p id="output"></p>
-<script>
-    if (window.testRunner) {
-        testRunner.dumpAsText();
-        testRunner.waitUntilDone();
-    }
-
-    function endTest(testStatus) {
-        document.getElementById("output").textContent = testStatus;
-        testRunner.notifyDone();
-    }
-
-    // Shadow Promise.prototype.then
-    Promise.prototype.then = (function () {
-        const realThen = Promise.prototype.then;
-        return function () {
-            endTest("FAIL: Executed shadowed, public .then()");
-        }
-    })();
-
-    function gotUserMedia(mediaStream) {
-        endTest("FAIL: Got user media");
-    }
-
-    function userMediaError(error) {
-        endTest("PASS");
-    }
-
-    var options = { audio: false, video: false };
-    navigator.getUserMedia(options, gotUserMedia, userMediaError);
-
-</script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/imported/w3c/ChangeLog    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,5 +1,19 @@
</span><span class="cx"> 2018-08-29  Youenn Fablet  <youenn@apple.com>
</span><span class="cx"> 
</span><ins>+        Remove WebRTC legacy API implementation
+        https://bugs.webkit.org/show_bug.cgi?id=189040
+
+        Reviewed by Eric Carlson.
+
+        * web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt:
+        * web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt:
+        * web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt:
+        * web-platform-tests/webrtc/historical-expected.txt:
+        * web-platform-tests/webrtc/no-media-call.html:
+        * web-platform-tests/webrtc/simplecall.https.html:
+
+2018-08-29  Youenn Fablet  <youenn@apple.com>
+
</ins><span class="cx">         Add a runtime flag for WebRTC unified plan
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=189068
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsmediacapturestreamsMediaDevicesIDLallexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -8,11 +8,11 @@
</span><span class="cx"> PASS Test driver 
</span><span class="cx"> PASS Navigator interface: attribute mediaDevices 
</span><span class="cx"> PASS Unscopable handled correctly for mediaDevices property on Navigator 
</span><del>-PASS Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) 
</del><ins>+FAIL Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) assert_own_property: interface prototype object missing non-static operation expected property "getUserMedia" missing
</ins><span class="cx"> PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on Navigator 
</span><span class="cx"> PASS Navigator interface: navigator must inherit property "mediaDevices" with the proper type 
</span><del>-PASS Navigator interface: navigator must inherit property "getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)" with the proper type 
-PASS Navigator interface: calling getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on navigator with too few arguments must throw TypeError 
</del><ins>+FAIL Navigator interface: navigator must inherit property "getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)" with the proper type assert_inherits: property "getUserMedia" not found in prototype chain
+FAIL Navigator interface: calling getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on navigator with too few arguments must throw TypeError assert_inherits: property "getUserMedia" not found in prototype chain
</ins><span class="cx"> PASS MediaStream interface: existence and properties of interface object 
</span><span class="cx"> PASS MediaStream interface object length 
</span><span class="cx"> PASS MediaStream interface object name 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsmediacapturestreamsMediaDevicesIDLenumerateDevicesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -8,7 +8,7 @@
</span><span class="cx"> PASS Test MediaDevices.enumerateDevices call and result. Types only. 
</span><span class="cx"> PASS Navigator interface: attribute mediaDevices 
</span><span class="cx"> PASS Unscopable handled correctly for mediaDevices property on Navigator 
</span><del>-PASS Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) 
</del><ins>+FAIL Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) assert_own_property: interface prototype object missing non-static operation expected property "getUserMedia" missing
</ins><span class="cx"> PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on Navigator 
</span><span class="cx"> FAIL MediaStream interface: existence and properties of interface object undefined is not an object (evaluating 'this.array
</span><span class="cx">                      .members[this.base]
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsmediacapturestreamsMediaStreamdefaultfeaturepolicyhttpsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt     2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt        2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,10 +1,10 @@
</span><del>-CONSOLE MESSAGE: line 1: The top-level frame has prevented a document with a different security origin to call getUserMedia.
-CONSOLE MESSAGE: line 1: The top-level frame has prevented a document with a different security origin to call getUserMedia.
-CONSOLE MESSAGE: line 1: The top-level frame has prevented a document with a different security origin to call getUserMedia.
-CONSOLE MESSAGE: line 1: The top-level frame has prevented a document with a different security origin to call getUserMedia.
-CONSOLE MESSAGE: line 1: The top-level frame has prevented a document with a different security origin to call getUserMedia.
-CONSOLE MESSAGE: line 1: The top-level frame has prevented a document with a different security origin to call getUserMedia.
-CONSOLE MESSAGE: line 1: The top-level frame has prevented a document with a different security origin to call getUserMedia.
</del><ins>+CONSOLE MESSAGE: line 16: The top-level frame has prevented a document with a different security origin to call getUserMedia.
+CONSOLE MESSAGE: line 16: The top-level frame has prevented a document with a different security origin to call getUserMedia.
+CONSOLE MESSAGE: line 16: The top-level frame has prevented a document with a different security origin to call getUserMedia.
+CONSOLE MESSAGE: line 16: The top-level frame has prevented a document with a different security origin to call getUserMedia.
+CONSOLE MESSAGE: line 16: The top-level frame has prevented a document with a different security origin to call getUserMedia.
+CONSOLE MESSAGE: line 16: The top-level frame has prevented a document with a different security origin to call getUserMedia.
+CONSOLE MESSAGE: line 16: The top-level frame has prevented a document with a different security origin to call getUserMedia.
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> PASS Default "microphone" feature policy ["self"] allows the top-level document. 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsmediacapturestreamsMediaStreamdefaultfeaturepolicyhttpshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.html     2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.html        2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -13,7 +13,7 @@
</span><span class="cx">   // mic/camera has been explicitly allowed by feature policy.
</span><span class="cx">   function promise_factory(allowed_features) {
</span><span class="cx">     return new Promise((resolve, reject) => {
</span><del>-      navigator.getUserMedia({video: true, audio: true},
</del><ins>+      navigator.mediaDevices.getUserMedia({video: true, audio: true}).then(
</ins><span class="cx">           function(stream) {
</span><span class="cx">             // If microphone is allowed, there should be at least one microphone
</span><span class="cx">             // in the result. If camera is allowed, there should be at least one
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtchistoricalexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/historical-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/historical-expected.txt 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/historical-expected.txt    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,13 +1,13 @@
</span><span class="cx"> 
</span><span class="cx"> PASS RTCDataChannel member reliable should not exist 
</span><del>-FAIL RTCPeerConnection member addStream should not exist assert_false: expected false got true
</del><ins>+PASS RTCPeerConnection member addStream should not exist 
</ins><span class="cx"> PASS RTCPeerConnection member createDTMFSender should not exist 
</span><del>-FAIL RTCPeerConnection member getLocalStreams should not exist assert_false: expected false got true
-FAIL RTCPeerConnection member getRemoteStreams should not exist assert_false: expected false got true
-FAIL RTCPeerConnection member getStreamById should not exist assert_false: expected false got true
-FAIL RTCPeerConnection member onaddstream should not exist assert_false: expected false got true
</del><ins>+PASS RTCPeerConnection member getLocalStreams should not exist 
+PASS RTCPeerConnection member getRemoteStreams should not exist 
+PASS RTCPeerConnection member getStreamById should not exist 
+PASS RTCPeerConnection member onaddstream should not exist 
</ins><span class="cx"> PASS RTCPeerConnection member onremovestream should not exist 
</span><del>-FAIL RTCPeerConnection member removeStream should not exist assert_false: expected false got true
</del><ins>+PASS RTCPeerConnection member removeStream should not exist 
</ins><span class="cx"> PASS RTCPeerConnection member updateIce should not exist 
</span><span class="cx"> PASS DataChannel interface should not exist 
</span><span class="cx"> PASS mozRTCIceCandidate interface should not exist 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcnomediacallhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call.html      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call.html 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -37,9 +37,9 @@
</span><span class="cx">     var parsedOffer = new RTCSessionDescription({ type: 'offer',
</span><span class="cx">                                                   sdp: offerSdp });
</span><span class="cx">     // These functions use the legacy interface extensions to RTCPeerConnection.
</span><del>-    gSecondConnection.setRemoteDescription(parsedOffer,
</del><ins>+    gSecondConnection.setRemoteDescription(parsedOffer).then(
</ins><span class="cx">       function() {
</span><del>-        gSecondConnection.createAnswer(onAnswerCreated,
</del><ins>+        gSecondConnection.createAnswer().then(onAnswerCreated,
</ins><span class="cx">                                        failed('createAnswer'));
</span><span class="cx">       },
</span><span class="cx">       failed('setRemoteDescription second'));
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">   function handleAnswer(answerSdp) {
</span><span class="cx">     var parsedAnswer = new RTCSessionDescription({ type: 'answer',
</span><span class="cx">                                                    sdp: answerSdp });
</span><del>-    gFirstConnection.setRemoteDescription(parsedAnswer, ignoreSuccess,
</del><ins>+    gFirstConnection.setRemoteDescription(parsedAnswer).then(ignoreSuccess,
</ins><span class="cx">                                           failed('setRemoteDescription first'));
</span><span class="cx">   };
</span><span class="cx"> 
</span><span class="lines">@@ -125,7 +125,7 @@
</span><span class="cx"> 
</span><span class="cx">     // The offerToReceiveVideo is necessary and sufficient to make
</span><span class="cx">     // an actual connection.
</span><del>-    gFirstConnection.createOffer(onOfferCreated, failed('createOffer'),
</del><ins>+    gFirstConnection.createOffer().then(onOfferCreated, failed('createOffer'),
</ins><span class="cx">         {offerToReceiveVideo: true});
</span><span class="cx">   });
</span><span class="cx"> </script>
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionsetRemoteDescriptionexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt     2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt        2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,3 +0,0 @@
</span><del>-
-PASS Triggers onaddstream when called with a remote description and the MSID is parsed. 
-
</del></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcsimplecallhttpshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/simplecall.https.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/simplecall.https.html   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/simplecall.https.html      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx">     localStream.getTracks().forEach(function(track) {
</span><span class="cx">       gFirstConnection.addTrack(track, localStream);
</span><span class="cx">     });
</span><del>-    gFirstConnection.createOffer(onOfferCreated, failed('createOffer'));
</del><ins>+    gFirstConnection.createOffer().then(onOfferCreated, failed('createOffer'));
</ins><span class="cx"> 
</span><span class="cx">     var videoTag = document.getElementById('local-view');
</span><span class="cx">     videoTag.srcObject = localStream;
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx">                                                   sdp: offerSdp });
</span><span class="cx">     gSecondConnection.setRemoteDescription(parsedOffer);
</span><span class="cx"> 
</span><del>-    gSecondConnection.createAnswer(onAnswerCreated,
</del><ins>+    gSecondConnection.createAnswer().then(onAnswerCreated,
</ins><span class="cx">                                    failed('createAnswer'));
</span><span class="cx">   };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/TestExpectations (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/TestExpectations  2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/platform/gtk/TestExpectations     2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -613,7 +613,6 @@
</span><span class="cx"> webkit.org/b/79203 fast/mediastream/getUserMedia-webaudio.html [ Failure ]
</span><span class="cx"> # Crash is bug #186678
</span><span class="cx"> webkit.org/b/79203 fast/mediastream/MediaStream-video-element-track-stop.html [ Timeout Crash ]
</span><del>-webkit.org/b/79203 fast/mediastream/RTCPeerConnection-dtmf.html [ Timeout ]
</del><span class="cx"> webkit.org/b/79203 fast/mediastream/RTCPeerConnection-icecandidate-event.html [ Failure Crash ]
</span><span class="cx"> webkit.org/b/79203 fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html [ Pass Failure Crash ]
</span><span class="cx"> webkit.org/b/79203 fast/mediastream/MediaStream-video-element.html [ Pass Crash Failure ]
</span><span class="lines">@@ -625,7 +624,6 @@
</span><span class="cx"> webkit.org/b/79203 fast/mediastream/RTCPeerConnection-inspect-answer.html [ Failure ]
</span><span class="cx"> webkit.org/b/79203 fast/mediastream/RTCPeerConnection-inspect-offer-bundlePolicy-bundle-only.html [ Failure Crash ]
</span><span class="cx"> webkit.org/b/79203 fast/mediastream/RTCPeerConnection-inspect-offer.html [ Failure ]
</span><del>-webkit.org/b/79203 fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html [ Failure ]
</del><span class="cx"> webkit.org/b/79203 fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html [ Pass Crash Failure ]
</span><span class="cx"> webkit.org/b/79203 webaudio/mediastreamaudiosourcenode.html [ Failure ]
</span><span class="cx"> webkit.org/b/79203 fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html [ Timeout Failure ]
</span><span class="lines">@@ -639,7 +637,6 @@
</span><span class="cx"> webkit.org/b/160996 fast/mediastream/MediaStream-video-element-video-tracks-disabled.html [ ImageOnlyFailure Crash ]
</span><span class="cx"> webkit.org/b/172269 fast/mediastream/media-devices-enumerate-devices.html [ Failure ]
</span><span class="cx"> webkit.org/b/173257 fast/mediastream/getUserMedia-grant-persistency3.html [ Pass Failure ]
</span><del>-webkit.org/b/176801 fast/mediastream/argument-types.html [ Crash Pass ]
</del><span class="cx"> 
</span><span class="cx"> # Canvas captureStream support is not implemented
</span><span class="cx"> webkit.org/b/169811 fast/mediacapturefromelement [ Skip ]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiosTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios/TestExpectations (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios/TestExpectations  2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/platform/ios/TestExpectations     2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1061,15 +1061,12 @@
</span><span class="cx"> 
</span><span class="cx"> # Run webrtc tests on iOS 11
</span><span class="cx"> imported/w3c/web-platform-tests/webrtc [ Pass ]
</span><del>-fast/events/constructors/media-stream-event-constructor.html [ Pass ]
</del><span class="cx"> fast/mediastream/RTCIceCandidate.html [ Pass ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-add-removeTrack.html [ Pass ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-addIceCandidate.html [ Pass ]
</span><del>-fast/mediastream/RTCPeerConnection-AddRemoveStream.html [ Pass ]
</del><span class="cx"> fast/mediastream/RTCPeerConnection-addTrack-reuse-sender.html [ Pass ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-addTransceiver.html [ Pass ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-createAnswer.html [ Pass ]
</span><del>-fast/mediastream/RTCPeerConnection-createOffer.html [ Pass ]
</del><span class="cx"> fast/mediastream/RTCPeerConnection-datachannel.html [ Pass ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-have-local-offer.html [ Pass ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-have-local-pranswer.html [ Pass ]
</span><span class="lines">@@ -1077,7 +1074,6 @@
</span><span class="cx"> fast/mediastream/RTCPeerConnection-have-remote-pranswer.html [ Pass ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-inspect-answer.html [ Pass ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-inspect-offer.html [ Pass ]
</span><del>-fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html [ Pass ]
</del><span class="cx"> fast/mediastream/RTCPeerConnection-localDescription.html [ Pass ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html [ Pass ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html [ Pass ]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformioswk1TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-wk1/TestExpectations (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-wk1/TestExpectations      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/platform/ios-wk1/TestExpectations 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -19,7 +19,6 @@
</span><span class="cx"> # Skip WebRTC for now in WK1
</span><span class="cx"> imported/w3c/web-platform-tests/webrtc [ Skip ]
</span><span class="cx"> webrtc [ Skip ]
</span><del>-fast/events/constructors/media-stream-event-constructor.html
</del><span class="cx"> 
</span><span class="cx"> # Not supported on WK1
</span><span class="cx"> media/no-fullscreen-when-hidden.html [ Skip ]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/TestExpectations (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/TestExpectations  2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/platform/mac/TestExpectations     2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -144,7 +144,6 @@
</span><span class="cx"> # Media Stream API is not fully supported.
</span><span class="cx"> fast/mediastream/MediaStream-add-ended-tracks.html
</span><span class="cx"> 
</span><del>-fast/mediastream/RTCPeerConnection-dtmf.html [ Skip ]
</del><span class="cx"> fast/mediastream/RTCPeerConnection-ice.html [ Skip ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html [ Skip ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-stats.html [ Skip ]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/TestExpectations      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -138,7 +138,6 @@
</span><span class="cx"> imported/w3c/web-platform-tests/mediacapture-streams
</span><span class="cx"> http/tests/media/media-stream
</span><span class="cx"> http/tests/ssl/media-stream
</span><del>-fast/events/constructors/media-stream-event-constructor.html
</del><span class="cx"> 
</span><span class="cx"> # WK1 does not filter response headers.
</span><span class="cx"> http/wpt/loading/redirect-headers.html [ Skip ]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformwinTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/win/TestExpectations (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/win/TestExpectations  2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/platform/win/TestExpectations     2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -850,7 +850,6 @@
</span><span class="cx"> # Media Stream API is not yet enabled.
</span><span class="cx"> fast/mediastream [ Skip ]
</span><span class="cx"> imported/w3c/web-platform-tests/mediacapture-streams [ Skip ]
</span><del>-fast/events/constructors/media-stream-event-constructor.html [ Skip ]
</del><span class="cx"> http/tests/media/media-stream [ Skip ]
</span><span class="cx"> 
</span><span class="cx"> # needs enhanced eventSender.contextMenu() return value
</span></span></pre></div>
<a id="trunkLayoutTestswebrtclegacyapiexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webrtc/legacy-api-expected.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webrtc/legacy-api-expected.txt 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/webrtc/legacy-api-expected.txt    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -8,7 +8,7 @@
</span><span class="cx"> Details
</span><span class="cx"> 
</span><span class="cx"> Result   Test Name       Message
</span><del>-Pass   Testing legacy API is not defined when legacy flag is turned off        
</del><ins>+Pass    Testing legacy API is not defined       
</ins><span class="cx"> 
</span><del>-PASS Testing legacy API is not defined when legacy flag is turned off 
</del><ins>+PASS Testing legacy API is not defined 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestswebrtclegacyapihtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/webrtc/legacy-api.html (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/webrtc/legacy-api.html 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/LayoutTests/webrtc/legacy-api.html    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -5,9 +5,6 @@
</span><span class="cx">     </head>
</span><span class="cx">     <body>
</span><span class="cx">         <script>
</span><del>-if (window.testRunner)
-    testRunner.setWebRTCLegacyAPIEnabled(false);
-
</del><span class="cx"> promise_test(function() {
</span><span class="cx">     var pc1 = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><span class="cx">     var pc2 = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
</span><span class="lines">@@ -26,7 +23,7 @@
</span><span class="cx">     }).then(() => {
</span><span class="cx">         return pc2.createAnswer({ }, assert_unreached, assert_unreached);
</span><span class="cx">     });
</span><del>-}, "Testing legacy API is not defined when legacy flag is turned off");
</del><ins>+}, "Testing legacy API is not defined");
</ins><span class="cx">         </script>
</span><span class="cx">         <script src="../resources/testharnessreport.js"></script>
</span><span class="cx">     </body>
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/CMakeLists.txt 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -293,13 +293,11 @@
</span><span class="cx">     Modules/mediastream/MediaDeviceInfo.idl
</span><span class="cx">     Modules/mediastream/MediaDevices.idl
</span><span class="cx">     Modules/mediastream/MediaStream.idl
</span><del>-    Modules/mediastream/MediaStreamEvent.idl
</del><span class="cx">     Modules/mediastream/MediaStreamTrack.idl
</span><span class="cx">     Modules/mediastream/MediaStreamTrackEvent.idl
</span><span class="cx">     Modules/mediastream/MediaTrackConstraints.idl
</span><span class="cx">     Modules/mediastream/MediaTrackSupportedConstraints.idl
</span><span class="cx">     Modules/mediastream/NavigatorMediaDevices.idl
</span><del>-    Modules/mediastream/NavigatorUserMedia.idl
</del><span class="cx">     Modules/mediastream/OverconstrainedError.idl
</span><span class="cx">     Modules/mediastream/OverconstrainedErrorEvent.idl
</span><span class="cx">     Modules/mediastream/RTCAnswerOptions.idl
</span><span class="lines">@@ -1830,7 +1828,6 @@
</span><span class="cx"> # WebCore JS Builtins
</span><span class="cx"> 
</span><span class="cx"> set(WebCore_BUILTINS_SOURCES
</span><del>-    ${WEBCORE_DIR}/Modules/mediastream/NavigatorUserMedia.js
</del><span class="cx">     ${WEBCORE_DIR}/Modules/mediastream/RTCPeerConnection.js
</span><span class="cx">     ${WEBCORE_DIR}/Modules/mediastream/RTCPeerConnectionInternals.js
</span><span class="cx">     ${WEBCORE_DIR}/Modules/streams/ByteLengthQueuingStrategy.js
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/ChangeLog      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,3 +1,61 @@
</span><ins>+2018-08-29  Youenn Fablet  <youenn@apple.com>
+
+        Remove WebRTC legacy API implementation
+        https://bugs.webkit.org/show_bug.cgi?id=189040
+
+        Reviewed by Eric Carlson.
+
+        This API is no longer needed as the runtime flag is off by default.
+        Removing this option allows removing some code and will ease future WebRTC improvements.
+        Covered by existing tests.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * Modules/mediastream/MediaStreamEvent.cpp: Removed.
+        * Modules/mediastream/MediaStreamEvent.h: Removed.
+        * Modules/mediastream/MediaStreamEvent.idl: Removed.
+        * Modules/mediastream/NavigatorUserMedia.idl: Removed.
+        * Modules/mediastream/NavigatorUserMedia.js: Removed.
+        * Modules/mediastream/PeerConnectionBackend.cpp:
+        * Modules/mediastream/PeerConnectionBackend.h:
+        * Modules/mediastream/RTCPeerConnection.h:
+        * Modules/mediastream/RTCPeerConnection.idl:
+        * Modules/mediastream/RTCPeerConnection.js:
+        (initializeRTCPeerConnection):
+        (createOffer):
+        (createAnswer):
+        (setLocalDescription):
+        (setRemoteDescription):
+        (addIceCandidate):
+        (getLocalStreams): Deleted.
+        (getStreamById): Deleted.
+        (addStream): Deleted.
+        (): Deleted.
+        * Modules/mediastream/RTCPeerConnectionInternals.js:
+        (callbacksAndDictionaryOverload):
+        (if): Deleted.
+        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
+        (WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream):
+        (WebCore::LibWebRTCMediaEndpoint::addRemoteStream):
+        (WebCore::LibWebRTCMediaEndpoint::removeRemoteStream):
+        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
+        * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
+        (WebCore::LibWebRTCPeerConnectionBackend::doStop):
+        (WebCore::LibWebRTCPeerConnectionBackend::removeRemoteStream): Deleted.
+        (WebCore::LibWebRTCPeerConnectionBackend::addRemoteStream): Deleted.
+        * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSDOMGlobalObject.cpp:
+        (WebCore::JSDOMGlobalObject::addBuiltinGlobals):
+        (WebCore::isWebRTCLegacyAPIEnabled): Deleted.
+        * bindings/js/WebCoreBuiltinNames.h:
+        * dom/EventNames.in:
+        * page/RuntimeEnabledFeatures.h:
+        (WebCore::RuntimeEnabledFeatures::setPeerConnectionEnabled):
+        (WebCore::RuntimeEnabledFeatures::webRTCLegacyAPIEnabled const): Deleted.
+        (WebCore::RuntimeEnabledFeatures::setWebRTCLegacyAPIEnabled): Deleted.
+
</ins><span class="cx"> 2018-08-29  Ryosuke Niwa  <rniwa@webkit.org>
</span><span class="cx"> 
</span><span class="cx">         Modernize SlotAssignment
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/DerivedSources.make    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -217,13 +217,11 @@
</span><span class="cx">     $(WebCore)/Modules/mediastream/MediaDeviceInfo.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/MediaDevices.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/MediaStream.idl \
</span><del>-    $(WebCore)/Modules/mediastream/MediaStreamEvent.idl \
</del><span class="cx">     $(WebCore)/Modules/mediastream/MediaStreamTrack.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/MediaStreamTrackEvent.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/MediaTrackConstraints.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/MediaTrackSupportedConstraints.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/NavigatorMediaDevices.idl \
</span><del>-    $(WebCore)/Modules/mediastream/NavigatorUserMedia.idl \
</del><span class="cx">     $(WebCore)/Modules/mediastream/OverconstrainedError.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/OverconstrainedErrorEvent.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/RTCAnswerOptions.idl \
</span><span class="lines">@@ -1515,7 +1513,6 @@
</span><span class="cx"> # WebCore JS Builtins
</span><span class="cx"> 
</span><span class="cx"> WebCore_BUILTINS_SOURCES = \
</span><del>-    $(WebCore)/Modules/mediastream/NavigatorUserMedia.js \
</del><span class="cx">     $(WebCore)/Modules/mediastream/RTCPeerConnection.js \
</span><span class="cx">     $(WebCore)/Modules/mediastream/RTCPeerConnectionInternals.js \
</span><span class="cx">     $(WebCore)/Modules/streams/ByteLengthQueuingStrategy.js \
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamEventcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.cpp (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.cpp    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.cpp       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,71 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "MediaStreamEvent.h"
-
-#if ENABLE(WEB_RTC)
-
-#include "MediaStream.h"
-
-namespace WebCore {
-
-Ref<MediaStreamEvent> MediaStreamEvent::create(const AtomicString& type, CanBubble canBubble, IsCancelable cancelable, RefPtr<MediaStream>&& stream)
-{
-    return adoptRef(*new MediaStreamEvent(type, canBubble, cancelable, WTFMove(stream)));
-}
-
-Ref<MediaStreamEvent> MediaStreamEvent::create(const AtomicString& type, const Init& initializer, IsTrusted isTrusted)
-{
-    return adoptRef(*new MediaStreamEvent(type, initializer, isTrusted));
-}
-
-MediaStreamEvent::MediaStreamEvent(const AtomicString& type, CanBubble canBubble, IsCancelable cancelable, RefPtr<MediaStream>&& stream)
-    : Event(type, canBubble, cancelable)
-    , m_stream(WTFMove(stream))
-{
-}
-
-MediaStreamEvent::MediaStreamEvent(const AtomicString& type, const Init& initializer, IsTrusted isTrusted)
-    : Event(type, initializer, isTrusted)
-    , m_stream(initializer.stream)
-{
-}
-
-MediaStreamEvent::~MediaStreamEvent() = default;
-
-MediaStream* MediaStreamEvent::stream() const
-{
-    return m_stream.get();
-}
-
-EventInterface MediaStreamEvent::eventInterface() const
-{
-    return MediaStreamEventInterfaceType;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WEB_RTC)
-
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamEventh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.h (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.h      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.h 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,59 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#if ENABLE(WEB_RTC)
-
-#include "Event.h"
-#include "MediaStream.h"
-#include <wtf/text/AtomicString.h>
-
-namespace WebCore {
-
-class MediaStreamEvent : public Event {
-public:
-    virtual ~MediaStreamEvent();
-
-    static Ref<MediaStreamEvent> create(const AtomicString& type, CanBubble, IsCancelable, RefPtr<MediaStream>&&);
-
-    struct Init : EventInit {
-        RefPtr<MediaStream> stream;
-    };
-    static Ref<MediaStreamEvent> create(const AtomicString& type, const Init& initializer, IsTrusted = IsTrusted::No);
-
-    MediaStream* stream() const;
-
-    virtual EventInterface eventInterface() const;
-
-private:
-    MediaStreamEvent(const AtomicString& type, CanBubble, IsCancelable, RefPtr<MediaStream>&&);
-    MediaStreamEvent(const AtomicString& type, const Init&, IsTrusted);
-
-    RefPtr<MediaStream> m_stream;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(WEB_RTC)
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamEventidl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.idl (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.idl    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamEvent.idl       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,35 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Conditional=WEB_RTC,
-    Constructor(DOMString type, optional MediaStreamEventInit eventInitDict),
-    EnabledAtRuntime=WebRTCLegacyAPI&MediaStream,
-] interface MediaStreamEvent : Event {
-    readonly attribute MediaStream? stream;
-};
-
-dictionary MediaStreamEventInit : EventInit {
-    MediaStream? stream = null;
-};
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamNavigatorUserMediaidl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/NavigatorUserMedia.idl (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/NavigatorUserMedia.idl  2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/NavigatorUserMedia.idl     2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,36 +0,0 @@
</span><del>-/*
-* Copyright (C) 2017 Apple Inc. All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions
-* are met:
-*
-* 1. Redistributions of source code must retain the above copyright
-*    notice, this list of conditions and the following disclaimer.
-* 2. Redistributions in binary form must reproduce the above copyright
-*    notice, this list of conditions and the following disclaimer
-*    in the documentation and/or other materials provided with the
-*    distribution.
-* 3. Neither the name of Ericsson nor the names of its contributors
-*    may be used to endorse or promote products derived from this
-*    software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-[
-    Conditional=MEDIA_STREAM&WEB_RTC,
-    EnabledAtRuntime=WebRTCLegacyAPI&MediaDevices,
-] partial interface Navigator {
-    [JSBuiltin] void getUserMedia(MediaStreamConstraints constraints, NavigatorUserMediaSuccessCallback successCallback, NavigatorUserMediaErrorCallback errorCallback);
-};
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamNavigatorUserMediajs"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/NavigatorUserMedia.js (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/NavigatorUserMedia.js   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/NavigatorUserMedia.js      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,49 +0,0 @@
</span><del>-/*
- * Copyright (C) 2015 Canon Inc.
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// @conditional=ENABLE(MEDIA_STREAM)
-
-function getUserMedia(options, successCallback, errorCallback)
-{
-    "use strict";
-
-    // FIXME: We should raise a DOM unsupported exception if there is no navigator and properly detect whether method is not called on a Navigator object.
-    if (!(this.mediaDevices && this.mediaDevices.@getUserMedia))
-        throw @makeThisTypeError("Navigator", "getUserMedia");
-
-    if (arguments.length < 3)
-        @throwTypeError("Not enough arguments");
-
-    if (!@isObject(options))
-        @throwTypeError("Argument 1 (options) to Navigator.getUserMedia must be an object");
-
-    if (typeof successCallback !== "function")
-        @throwTypeError("Argument 2 ('successCallback') to Navigator.getUserMedia must be a function");
-    if (typeof errorCallback !== "function")
-        @throwTypeError("Argument 3 ('errorCallback') to Navigator.getUserMedia must be a function");
-
-    this.mediaDevices.@getUserMedia(options).@then(successCallback, errorCallback);
-}
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamPeerConnectionBackendcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp       2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp  2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -37,6 +37,7 @@
</span><span class="cx"> #include "EventNames.h"
</span><span class="cx"> #include "JSRTCSessionDescription.h"
</span><span class="cx"> #include "Logging.h"
</span><ins>+#include "Page.h"
</ins><span class="cx"> #include "RTCIceCandidate.h"
</span><span class="cx"> #include "RTCPeerConnection.h"
</span><span class="cx"> #include "RTCPeerConnectionIceEvent.h"
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamPeerConnectionBackendh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -98,8 +98,6 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void getStats(MediaStreamTrack*, Ref<DeferredPromise>&&) = 0;
</span><span class="cx"> 
</span><del>-    virtual Vector<RefPtr<MediaStream>> getRemoteStreams() const = 0;
-
</del><span class="cx">     virtual Ref<RTCRtpReceiver> createReceiver(const String& transceiverMid, const String& trackKind, const String& trackId) = 0;
</span><span class="cx">     virtual void replaceTrack(RTCRtpSender&, RefPtr<MediaStreamTrack>&&, DOMPromiseDeferred<void>&&) = 0;
</span><span class="cx">     virtual bool notifyAddedTrack(RTCRtpSender&) { return false; }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCPeerConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h     2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h        2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -126,9 +126,6 @@
</span><span class="cx">     // 8.2 Statistics API
</span><span class="cx">     void getStats(MediaStreamTrack*, Ref<DeferredPromise>&&);
</span><span class="cx"> 
</span><del>-    // Legacy MediaStream-based API, mostly implemented as JS built-ins
-    Vector<RefPtr<MediaStream>> getRemoteStreams() const { return m_backend->getRemoteStreams(); }
-
</del><span class="cx">     // EventTarget
</span><span class="cx">     EventTargetInterface eventTargetInterface() const final { return RTCPeerConnectionEventTargetInterfaceType; }
</span><span class="cx">     ScriptExecutionContext* scriptExecutionContext() const final { return ActiveDOMObject::scriptExecutionContext(); }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCPeerConnectionidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -119,18 +119,17 @@
</span><span class="cx"> 
</span><span class="cx">     // 5.1 RTCPeerConnection extensions
</span><span class="cx">     // RTP Media API extensions
</span><del>-    [PrivateIdentifier, PublicIdentifier] sequence<RTCRtpSender> getSenders();
</del><ins>+    sequence<RTCRtpSender> getSenders();
</ins><span class="cx">     sequence<RTCRtpReceiver> getReceivers();
</span><span class="cx">     sequence<RTCRtpTransceiver> getTransceivers();
</span><span class="cx"> 
</span><del>-    [PrivateIdentifier, PublicIdentifier, MayThrowException] RTCRtpSender addTrack(MediaStreamTrack track, MediaStream... streams);
-    [PrivateIdentifier, PublicIdentifier, MayThrowException] void removeTrack(RTCRtpSender sender);
</del><ins>+    [MayThrowException] RTCRtpSender addTrack(MediaStreamTrack track, MediaStream... streams);
+    [MayThrowException] void removeTrack(RTCRtpSender sender);
</ins><span class="cx"> 
</span><span class="cx">     [MayThrowException] RTCRtpTransceiver addTransceiver((MediaStreamTrack or DOMString) track, optional RTCRtpTransceiverInit init);
</span><span class="cx"> 
</span><span class="cx">     attribute EventHandler ontrack;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     // 6.1 Peer-to-peer data API
</span><span class="cx">     // FIXME 169644: missing sctp
</span><span class="cx"> 
</span><span class="lines">@@ -145,15 +144,4 @@
</span><span class="cx"> 
</span><span class="cx">     // 9.6 Identity Provider API
</span><span class="cx">     // FIXME 169644: missing IdP
</span><del>-
-    // Legacy MediaStream API
-    [JSBuiltin, EnabledAtRuntime=WebRTCLegacyAPI] sequence<MediaStream> getLocalStreams();
-    [PrivateIdentifier, PublicIdentifier, EnabledAtRuntime=WebRTCLegacyAPI] sequence<MediaStream> getRemoteStreams();
-    [JSBuiltin, EnabledAtRuntime=WebRTCLegacyAPI] MediaStream getStreamById(DOMString streamId);
-
-    [JSBuiltin, EnabledAtRuntime=WebRTCLegacyAPI] void addStream(MediaStream stream);
-    [JSBuiltin, EnabledAtRuntime=WebRTCLegacyAPI] void removeStream(MediaStream stream);
-
-    // Legacy event handler (MediaStream-based API)
-    [EnabledAtRuntime=WebRTCLegacyAPI] attribute EventHandler onaddstream;
</del><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCPeerConnectionjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.js (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.js    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.js       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -41,85 +41,10 @@
</span><span class="cx"> 
</span><span class="cx">     this.@initializeWith(configuration);
</span><span class="cx">     @putByIdDirectPrivate(this, "operations", []);
</span><del>-    @putByIdDirectPrivate(this, "localStreams", []);
</del><span class="cx"> 
</span><span class="cx">     return this;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function getLocalStreams()
-{
-    "use strict";
-
-    if (!@isRTCPeerConnection(this))
-        throw @makeThisTypeError("RTCPeerConnection", "getLocalStreams");
-
-    return @getByIdDirectPrivate(this, "localStreams").slice();
-}
-
-function getStreamById(streamIdArg)
-{
-    "use strict";
-
-    if (!@isRTCPeerConnection(this))
-        throw @makeThisTypeError("RTCPeerConnection", "getStreamById");
-
-    if (arguments.length < 1)
-        @throwTypeError("Not enough arguments");
-
-    const streamId = @toString(streamIdArg);
-
-    return @getByIdDirectPrivate(this, "localStreams").find(stream => stream.id === streamId)
-        || this.@getRemoteStreams().find(stream => stream.id === streamId)
-        || null;
-}
-
-function addStream(stream)
-{
-    "use strict";
-
-    if (!@isRTCPeerConnection(this))
-        throw @makeThisTypeError("RTCPeerConnection", "addStream");
-
-    if (arguments.length < 1)
-        @throwTypeError("Not enough arguments");
-
-    if (!(stream instanceof @MediaStream))
-        @throwTypeError("Argument 1 ('stream') to RTCPeerConnection.addStream must be an instance of MediaStream");
-
-    if (@getByIdDirectPrivate(this, "localStreams").find(localStream => localStream.id === stream.id))
-        return;
-
-    @getByIdDirectPrivate(this, "localStreams").@push(stream);
-    stream.@getTracks().forEach(track => this.@addTrack(track, stream));
-}
-
-function removeStream(stream)
-{
-    "use strict";
-
-    if (!@isRTCPeerConnection(this))
-        throw @makeThisTypeError("RTCPeerConnection", "removeStream");
-
-    if (arguments.length < 1)
-        @throwTypeError("Not enough arguments");
-
-    if (!(stream instanceof @MediaStream))
-        @throwTypeError("Argument 1 ('stream') to RTCPeerConnection.removeStream must be an instance of MediaStream");
-
-    const indexOfStreamToRemove = @getByIdDirectPrivate(this, "localStreams").findIndex(localStream => localStream.id === stream.id);
-    if (indexOfStreamToRemove === -1)
-        return;
-
-    const senders = this.@getSenders();
-    @getByIdDirectPrivate(this, "localStreams")[indexOfStreamToRemove].@getTracks().forEach(track => {
-        const senderForTrack = senders.find(sender => sender.track && sender.track.id === track.id);
-        if (senderForTrack)
-            this.@removeTrack(senderForTrack);
-    });
-
-    @getByIdDirectPrivate(this, "localStreams").splice(indexOfStreamToRemove, 1);
-}
-
</del><span class="cx"> function createOffer()
</span><span class="cx"> {
</span><span class="cx">     "use strict";
</span><span class="lines">@@ -130,17 +55,9 @@
</span><span class="cx">     const peerConnection = this;
</span><span class="cx"> 
</span><span class="cx">     return @callbacksAndDictionaryOverload(arguments, "createOffer", function (options) {
</span><del>-        // Promise mode
</del><span class="cx">         return @enqueueOperation(peerConnection, function () {
</span><span class="cx">             return peerConnection.@queuedCreateOffer(options);
</span><span class="cx">         });
</span><del>-    }, function (successCallback, errorCallback, options) {
-        // Legacy callbacks mode
-        @enqueueOperation(peerConnection, function () {
-            return peerConnection.@queuedCreateOffer(options).@then(successCallback, errorCallback);
-        });
-
-        return @Promise.@resolve(@undefined);
</del><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -154,17 +71,9 @@
</span><span class="cx">     const peerConnection = this;
</span><span class="cx"> 
</span><span class="cx">     return @callbacksAndDictionaryOverload(arguments, "createAnswer", function (options) {
</span><del>-        // Promise mode
</del><span class="cx">         return @enqueueOperation(peerConnection, function () {
</span><span class="cx">             return peerConnection.@queuedCreateAnswer(options);
</span><span class="cx">         });
</span><del>-    }, function (successCallback, errorCallback, options) {
-        // Legacy callbacks mode
-        @enqueueOperation(peerConnection, function () {
-            return peerConnection.@queuedCreateAnswer(options).@then(successCallback, errorCallback);
-        });
-
-        return @Promise.@resolve(@undefined);
</del><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -185,17 +94,9 @@
</span><span class="cx">         "maybeDictionary": "true"
</span><span class="cx">     };
</span><span class="cx">     return @objectAndCallbacksOverload(arguments, "setLocalDescription", objectInfo, function (description) {
</span><del>-        // Promise mode
</del><span class="cx">         return @enqueueOperation(peerConnection, function () {
</span><span class="cx">             return peerConnection.@queuedSetLocalDescription(description);
</span><span class="cx">         });
</span><del>-    }, function (description, successCallback, errorCallback) {
-        // Legacy callbacks mode
-        @enqueueOperation(peerConnection, function () {
-            return peerConnection.@queuedSetLocalDescription(description).@then(successCallback, errorCallback);
-        });
-
-        return @Promise.@resolve(@undefined);
</del><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -216,17 +117,9 @@
</span><span class="cx">         "maybeDictionary": "true"
</span><span class="cx">     };
</span><span class="cx">     return @objectAndCallbacksOverload(arguments, "setRemoteDescription", objectInfo, function (description) {
</span><del>-        // Promise mode
</del><span class="cx">         return @enqueueOperation(peerConnection, function () {
</span><span class="cx">             return peerConnection.@queuedSetRemoteDescription(description);
</span><span class="cx">         });
</span><del>-    }, function (description, successCallback, errorCallback) {
-        // Legacy callbacks mode
-        @enqueueOperation(peerConnection, function () {
-            return peerConnection.@queuedSetRemoteDescription(description).@then(successCallback, errorCallback);
-        });
-
-        return @Promise.@resolve(@undefined);
</del><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -250,16 +143,8 @@
</span><span class="cx">         "defaultsToNull" : "true"
</span><span class="cx">     };
</span><span class="cx">     return @objectAndCallbacksOverload(arguments, "addIceCandidate", objectInfo, function (candidate) {
</span><del>-        // Promise mode
</del><span class="cx">         return @enqueueOperation(peerConnection, function () {
</span><span class="cx">             return peerConnection.@queuedAddIceCandidate(candidate);
</span><span class="cx">         });
</span><del>-    }, function (candidate, successCallback, errorCallback) {
-        // Legacy callbacks mode
-        @enqueueOperation(peerConnection, function () {
-            return peerConnection.@queuedAddIceCandidate(candidate).@then(successCallback, errorCallback);
-        });
-
-        return @Promise.@resolve(@undefined);
</del><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCPeerConnectionInternalsjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionInternals.js (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionInternals.js   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnectionInternals.js      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function objectAndCallbacksOverload(args, functionName, objectInfo, promiseMode, legacyMode)
</del><ins>+function objectAndCallbacksOverload(args, functionName, objectInfo, promiseMode)
</ins><span class="cx"> {
</span><span class="cx">     "use strict";
</span><span class="cx"> 
</span><span class="lines">@@ -80,53 +80,18 @@
</span><span class="cx">     if (!objectArgOk)
</span><span class="cx">         return @Promise.@reject(new @TypeError(`Argument 1 ('${objectInfo.argName}') to RTCPeerConnection.${functionName} must be an instance of ${objectInfo.argType}`));
</span><span class="cx"> 
</span><del>-    if (!@webRTCLegacyAPIEnabled() || argsCount === 1)
-        return promiseMode(objectArg);
-
-    // More than one argument: Legacy mode
-    if (argsCount < 3)
-        return @Promise.@reject(new @TypeError("Not enough arguments"));
-
-    const successCallback = args[1];
-    const errorCallback = args[2];
-
-    if (typeof successCallback !== "function")
-        return @Promise.@reject(new @TypeError(`Argument 2 ('successCallback') to RTCPeerConnection.${functionName} must be a function`));
-
-    if (typeof errorCallback !== "function")
-        return @Promise.@reject(new @TypeError(`Argument 3 ('errorCallback') to RTCPeerConnection.${functionName} must be a function`));
-
-    return legacyMode(objectArg, successCallback, errorCallback);
</del><ins>+    return promiseMode(objectArg);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-function callbacksAndDictionaryOverload(args, functionName, promiseMode, legacyMode)
</del><ins>+function callbacksAndDictionaryOverload(args, functionName, promiseMode)
</ins><span class="cx"> {
</span><span class="cx">     "use strict";
</span><span class="cx"> 
</span><del>-    if (!@webRTCLegacyAPIEnabled() || args.length <= 1) {
-        // Zero or one arguments: Promise mode
-        const options = args[0];
-        if (args.length && !@isDictionary(options))
-            return @Promise.@reject(new @TypeError(`Argument 1 ('options') to RTCPeerConnection.${functionName} must be a dictionary`));
</del><ins>+    const options = args[0];
+    if (args.length && !@isDictionary(options))
+        return @Promise.@reject(new @TypeError(`Argument 1 ('options') to RTCPeerConnection.${functionName} must be a dictionary`));
</ins><span class="cx"> 
</span><del>-        return promiseMode(options);
-    }
-
-    // More than one argument: Legacy mode
-    const successCallback = args[0];
-    const errorCallback = args[1];
-    const options = args[2];
-
-    if (typeof successCallback !== "function")
-        return @Promise.@reject(new @TypeError(`Argument 1 ('successCallback') to RTCPeerConnection.${functionName} must be a function`));
-
-    if (typeof errorCallback !== "function")
-        return @Promise.@reject(new @TypeError(`Argument 2 ('errorCallback') to RTCPeerConnection.${functionName} must be a function`));
-
-    if (args.length > 2 && !@isDictionary(options))
-        return @Promise.@reject(new @TypeError(`Argument 3 ('options') to RTCPeerConnection.${functionName} must be a dictionary`));
-
-    return legacyMode(successCallback, errorCallback, args[2]);
</del><ins>+    return promiseMode(options);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> function isRTCPeerConnection(connection)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamlibwebrtcLibWebRTCMediaEndpointcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -33,7 +33,6 @@
</span><span class="cx"> #include "LibWebRTCPeerConnectionBackend.h"
</span><span class="cx"> #include "LibWebRTCProvider.h"
</span><span class="cx"> #include "Logging.h"
</span><del>-#include "MediaStreamEvent.h"
</del><span class="cx"> #include "NotImplemented.h"
</span><span class="cx"> #include "Performance.h"
</span><span class="cx"> #include "PlatformStrategies.h"
</span><span class="lines">@@ -637,22 +636,13 @@
</span><span class="cx"> {
</span><span class="cx">     auto mediaStream = m_streams.ensure(&rtcStream, [&rtcStream, this] {
</span><span class="cx">         auto label = rtcStream.id();
</span><del>-        auto stream = MediaStream::create(*m_peerConnectionBackend.connection().scriptExecutionContext(), MediaStreamPrivate::create({ }, fromStdString(label)));
-        auto streamPointer = stream.ptr();
-        m_peerConnectionBackend.addRemoteStream(WTFMove(stream));
-        return streamPointer;
</del><ins>+        return MediaStream::create(*m_peerConnectionBackend.connection().scriptExecutionContext(), MediaStreamPrivate::create({ }, fromStdString(label)));
</ins><span class="cx">     });
</span><span class="cx">     return *mediaStream.iterator->value;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void LibWebRTCMediaEndpoint::addRemoteStream(webrtc::MediaStreamInterface& rtcStream)
</del><ins>+void LibWebRTCMediaEndpoint::addRemoteStream(webrtc::MediaStreamInterface&)
</ins><span class="cx"> {
</span><del>-    if (!RuntimeEnabledFeatures::sharedFeatures().webRTCLegacyAPIEnabled())
-        return;
-
-    auto& mediaStream = mediaStreamFromRTCStream(rtcStream);
-    m_peerConnectionBackend.connection().fireEvent(MediaStreamEvent::create(eventNames().addstreamEvent,
-        Event::CanBubble::No, Event::IsCancelable::No, &mediaStream));
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> class RTCRtpReceiverBackend final : public RTCRtpReceiver::Backend {
</span><span class="lines">@@ -711,9 +701,8 @@
</span><span class="cx"> 
</span><span class="cx"> void LibWebRTCMediaEndpoint::removeRemoteStream(webrtc::MediaStreamInterface& rtcStream)
</span><span class="cx"> {
</span><del>-    auto* mediaStream = m_streams.take(&rtcStream);
-    if (mediaStream)
-        m_peerConnectionBackend.removeRemoteStream(mediaStream);
</del><ins>+    bool removed = m_streams.remove(&rtcStream);
+    ASSERT_UNUSED(removed, removed);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void LibWebRTCMediaEndpoint::OnAddStream(rtc::scoped_refptr<webrtc::MediaStreamInterface> stream)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamlibwebrtcLibWebRTCMediaEndpointh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -217,7 +217,7 @@
</span><span class="cx">     CreateSessionDescriptionObserver m_createSessionDescriptionObserver;
</span><span class="cx">     SetLocalSessionDescriptionObserver m_setLocalSessionDescriptionObserver;
</span><span class="cx">     SetRemoteSessionDescriptionObserver m_setRemoteSessionDescriptionObserver;
</span><del>-    HashMap<webrtc::MediaStreamInterface*, MediaStream*> m_streams;
</del><ins>+    HashMap<webrtc::MediaStreamInterface*, RefPtr<MediaStream>> m_streams;
</ins><span class="cx">     HashMap<RTCRtpSender*, rtc::scoped_refptr<webrtc::RtpSenderInterface>> m_senders;
</span><span class="cx"> 
</span><span class="cx">     bool m_isInitiator { false };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamlibwebrtcLibWebRTCPeerConnectionBackendcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -201,7 +201,6 @@
</span><span class="cx">     m_audioSources.clear();
</span><span class="cx">     m_videoSources.clear();
</span><span class="cx">     m_statsPromises.clear();
</span><del>-    m_remoteStreams.clear();
</del><span class="cx">     m_pendingReceivers.clear();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -360,18 +359,6 @@
</span><span class="cx">     m_endpoint->removeTrack(sender);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void LibWebRTCPeerConnectionBackend::removeRemoteStream(MediaStream* mediaStream)
-{
-    m_remoteStreams.removeFirstMatching([mediaStream](const auto& item) {
-        return item.get() == mediaStream;
-    });
-}
-
-void LibWebRTCPeerConnectionBackend::addRemoteStream(Ref<MediaStream>&& mediaStream)
-{
-    m_remoteStreams.append(WTFMove(mediaStream));
-}
-
</del><span class="cx"> template<typename Source>
</span><span class="cx"> static inline bool updateTrackSource(Source& source, MediaStreamTrack* track)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamlibwebrtcLibWebRTCPeerConnectionBackendh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -88,10 +88,6 @@
</span><span class="cx">     void getStatsSucceeded(const DeferredPromise&, Ref<RTCStatsReport>&&);
</span><span class="cx">     void getStatsFailed(const DeferredPromise&, Exception&&);
</span><span class="cx"> 
</span><del>-    Vector<RefPtr<MediaStream>> getRemoteStreams() const final { return m_remoteStreams; }
-    void removeRemoteStream(MediaStream*);
-    void addRemoteStream(Ref<MediaStream>&&);
-
</del><span class="cx">     bool notifyAddedTrack(RTCRtpSender&) final;
</span><span class="cx">     void notifyRemovedTrack(RTCRtpSender&) final;
</span><span class="cx"> 
</span><span class="lines">@@ -113,8 +109,6 @@
</span><span class="cx">     bool m_isLocalDescriptionSet { false };
</span><span class="cx">     bool m_isRemoteDescriptionSet { false };
</span><span class="cx"> 
</span><del>-    // FIXME: Make m_remoteStreams a Vector of Ref.
-    Vector<RefPtr<MediaStream>> m_remoteStreams;
</del><span class="cx">     Vector<std::unique_ptr<webrtc::IceCandidateInterface>> m_pendingCandidates;
</span><span class="cx">     Vector<Ref<RealtimeOutgoingAudioSource>> m_audioSources;
</span><span class="cx">     Vector<Ref<RealtimeOutgoingVideoSource>> m_videoSources;
</span></span></pre></div>
<a id="trunkSourceWebCoreSourcestxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Sources.txt (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Sources.txt 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/Sources.txt    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -159,7 +159,6 @@
</span><span class="cx"> Modules/mediastream/MediaDevicesEnumerationRequest.cpp
</span><span class="cx"> Modules/mediastream/MediaDevicesRequest.cpp
</span><span class="cx"> Modules/mediastream/MediaStream.cpp
</span><del>-Modules/mediastream/MediaStreamEvent.cpp
</del><span class="cx"> Modules/mediastream/MediaStreamRegistry.cpp
</span><span class="cx"> Modules/mediastream/MediaStreamTrack.cpp
</span><span class="cx"> Modules/mediastream/MediaStreamTrackEvent.cpp
</span><span class="lines">@@ -2758,7 +2757,6 @@
</span><span class="cx"> JSMediaStream.cpp
</span><span class="cx"> JSMediaStreamAudioDestinationNode.cpp
</span><span class="cx"> JSMediaStreamAudioSourceNode.cpp
</span><del>-JSMediaStreamEvent.cpp
</del><span class="cx"> JSMediaStreamTrack.cpp
</span><span class="cx"> JSMediaStreamTrackEvent.cpp
</span><span class="cx"> JSMediaTrackConstraints.cpp
</span><span class="lines">@@ -2785,7 +2783,6 @@
</span><span class="cx"> JSNavigatorMediaDevices.cpp
</span><span class="cx"> JSNavigatorOnLine.cpp
</span><span class="cx"> JSNavigatorServiceWorker.cpp
</span><del>-JSNavigatorUserMedia.cpp
</del><span class="cx"> JSNavigatorWebDriver.cpp
</span><span class="cx"> JSNavigatorWebVR.cpp
</span><span class="cx"> JSNode.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -101,7 +101,6 @@
</span><span class="cx">          07277E4D17D018CC0015534D /* JSMediaStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4117D018CC0015534D /* JSMediaStream.h */; };
</span><span class="cx">          07277E4D17D018CC0015534E /* JSCanvasCaptureMediaStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4117D018CC0015534E /* JSCanvasCaptureMediaStreamTrack.h */; };
</span><span class="cx">          07277E4F17D018CC0015534D /* JSMediaStreamAudioDestinationNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4317D018CC0015534D /* JSMediaStreamAudioDestinationNode.h */; };
</span><del>-               07277E5117D018CC0015534D /* JSMediaStreamEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4517D018CC0015534D /* JSMediaStreamEvent.h */; };
</del><span class="cx">           07277E5317D018CC0015534D /* JSMediaStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4717D018CC0015534D /* JSMediaStreamTrack.h */; };
</span><span class="cx">          07277E5517D018CC0015534D /* JSMediaStreamTrackEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4917D018CC0015534D /* JSMediaStreamTrackEvent.h */; };
</span><span class="cx">          072A70401D6E8F6200DF0AFC /* OverconstrainedErrorEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 072A703E1D6E8F6200DF0AFC /* OverconstrainedErrorEvent.h */; };
</span><span class="lines">@@ -119,7 +118,6 @@
</span><span class="cx">          073B87671E4385AC0071C0EC /* AudioSampleBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 073B87631E43859D0071C0EC /* AudioSampleBufferList.h */; };
</span><span class="cx">          073B87691E4385AC0071C0EC /* AudioSampleDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 073B87651E43859D0071C0EC /* AudioSampleDataSource.h */; };
</span><span class="cx">          073BDC051F68436100EE34ED /* TrackPrivateBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076E11BE1F683E0D00177395 /* TrackPrivateBase.cpp */; };
</span><del>-               073BE34117D17E01002BD431 /* JSNavigatorUserMedia.h in Headers */ = {isa = PBXBuildFile; fileRef = 073BE33F17D17E01002BD431 /* JSNavigatorUserMedia.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">           074E82BB18A69F0E007EF54C /* PlatformTimeRanges.h in Headers */ = {isa = PBXBuildFile; fileRef = 074E82B918A69F0E007EF54C /* PlatformTimeRanges.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">          0753860214489E9800B78452 /* CachedTextTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0753860014489E9800B78452 /* CachedTextTrack.cpp */; };
</span><span class="cx">          0753860314489E9800B78452 /* CachedTextTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 0753860114489E9800B78452 /* CachedTextTrack.h */; };
</span><span class="lines">@@ -139,7 +137,6 @@
</span><span class="cx">          07846385145B1B8E00A58DF1 /* JSTrackCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = 07846384145B1B8E00A58DF1 /* JSTrackCustom.h */; };
</span><span class="cx">          0787C46A1BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 0787C4681BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.h */; };
</span><span class="cx">          078E091517D14D1C00420AA1 /* MediaStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B4D17CEC32700848E51 /* MediaStream.h */; };
</span><del>-               078E091617D14D1C00420AA1 /* MediaStreamEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5017CEC32700848E51 /* MediaStreamEvent.h */; };
</del><span class="cx">           078E091717D14D1C00420AA1 /* MediaStreamRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5317CEC32700848E51 /* MediaStreamRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">          078E091817D14D1C00420AA1 /* MediaStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5517CEC32700848E51 /* MediaStreamTrack.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">          078E091917D14D1C00420AA1 /* MediaStreamTrackEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5817CEC32700848E51 /* MediaStreamTrackEvent.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -5219,9 +5216,6 @@
</span><span class="cx">          07221B4C17CEC32700848E51 /* MediaStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStream.cpp; sourceTree = "<group>"; };
</span><span class="cx">          07221B4D17CEC32700848E51 /* MediaStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStream.h; sourceTree = "<group>"; };
</span><span class="cx">          07221B4E17CEC32700848E51 /* MediaStream.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaStream.idl; sourceTree = "<group>"; };
</span><del>-               07221B4F17CEC32700848E51 /* MediaStreamEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamEvent.cpp; sourceTree = "<group>"; };
-               07221B5017CEC32700848E51 /* MediaStreamEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamEvent.h; sourceTree = "<group>"; };
-               07221B5117CEC32700848E51 /* MediaStreamEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaStreamEvent.idl; sourceTree = "<group>"; };
</del><span class="cx">           07221B5217CEC32700848E51 /* MediaStreamRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamRegistry.cpp; sourceTree = "<group>"; };
</span><span class="cx">          07221B5317CEC32700848E51 /* MediaStreamRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamRegistry.h; sourceTree = "<group>"; };
</span><span class="cx">          07221B5417CEC32700848E51 /* MediaStreamTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamTrack.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -5230,7 +5224,6 @@
</span><span class="cx">          07221B5717CEC32700848E51 /* MediaStreamTrackEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamTrackEvent.cpp; sourceTree = "<group>"; };
</span><span class="cx">          07221B5817CEC32700848E51 /* MediaStreamTrackEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamTrackEvent.h; sourceTree = "<group>"; };
</span><span class="cx">          07221B5917CEC32700848E51 /* MediaStreamTrackEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaStreamTrackEvent.idl; sourceTree = "<group>"; };
</span><del>-               07221B5C17CEC32700848E51 /* NavigatorUserMedia.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NavigatorUserMedia.idl; sourceTree = "<group>"; };
</del><span class="cx">           07221B6317CEC32700848E51 /* RTCDataChannel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RTCDataChannel.cpp; sourceTree = "<group>"; };
</span><span class="cx">          07221B6417CEC32700848E51 /* RTCDataChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCDataChannel.h; sourceTree = "<group>"; };
</span><span class="cx">          07221B6517CEC32700848E51 /* RTCDataChannel.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RTCDataChannel.idl; sourceTree = "<group>"; };
</span><span class="lines">@@ -5281,8 +5274,6 @@
</span><span class="cx">          07277E4117D018CC0015534E /* JSCanvasCaptureMediaStreamTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCanvasCaptureMediaStreamTrack.h; sourceTree = "<group>"; };
</span><span class="cx">          07277E4217D018CC0015534D /* JSMediaStreamAudioDestinationNode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaStreamAudioDestinationNode.cpp; sourceTree = "<group>"; };
</span><span class="cx">          07277E4317D018CC0015534D /* JSMediaStreamAudioDestinationNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMediaStreamAudioDestinationNode.h; sourceTree = "<group>"; };
</span><del>-               07277E4417D018CC0015534D /* JSMediaStreamEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaStreamEvent.cpp; sourceTree = "<group>"; };
-               07277E4517D018CC0015534D /* JSMediaStreamEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMediaStreamEvent.h; sourceTree = "<group>"; };
</del><span class="cx">           07277E4617D018CC0015534D /* JSMediaStreamTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaStreamTrack.cpp; sourceTree = "<group>"; };
</span><span class="cx">          07277E4717D018CC0015534D /* JSMediaStreamTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMediaStreamTrack.h; sourceTree = "<group>"; };
</span><span class="cx">          07277E4817D018CC0015534D /* JSMediaStreamTrackEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaStreamTrackEvent.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -5317,8 +5308,6 @@
</span><span class="cx">          073B87631E43859D0071C0EC /* AudioSampleBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioSampleBufferList.h; sourceTree = "<group>"; };
</span><span class="cx">          073B87641E43859D0071C0EC /* AudioSampleDataSource.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AudioSampleDataSource.mm; sourceTree = "<group>"; };
</span><span class="cx">          073B87651E43859D0071C0EC /* AudioSampleDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioSampleDataSource.h; sourceTree = "<group>"; };
</span><del>-               073BE33E17D17E01002BD431 /* JSNavigatorUserMedia.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNavigatorUserMedia.cpp; sourceTree = "<group>"; };
-               073BE33F17D17E01002BD431 /* JSNavigatorUserMedia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSNavigatorUserMedia.h; sourceTree = "<group>"; };
</del><span class="cx">           0744ECEB1E0C4AE5000D0944 /* MockRealtimeAudioSourceMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MockRealtimeAudioSourceMac.h; sourceTree = "<group>"; };
</span><span class="cx">          0744ECEC1E0C4AE5000D0944 /* MockRealtimeAudioSourceMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MockRealtimeAudioSourceMac.mm; sourceTree = "<group>"; };
</span><span class="cx">          074E82B818A69F0E007EF54C /* PlatformTimeRanges.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformTimeRanges.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -7291,7 +7280,6 @@
</span><span class="cx">          419BC2DC1685329900D64D6D /* VisitedLinkState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VisitedLinkState.cpp; sourceTree = "<group>"; };
</span><span class="cx">          419BC2DD1685329900D64D6D /* VisitedLinkState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VisitedLinkState.h; sourceTree = "<group>"; };
</span><span class="cx">          419BE7521BC7F3DB00E1C85B /* WebCoreBuiltinNames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreBuiltinNames.h; sourceTree = "<group>"; };
</span><del>-               419BE75A1BCBD3ED00E1C85B /* NavigatorUserMedia.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = NavigatorUserMedia.js; sourceTree = "<group>"; };
</del><span class="cx">           419FAFAD1ABABCD5005B3572 /* ReadableStreamBYOBReader.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableStreamBYOBReader.idl; sourceTree = "<group>"; };
</span><span class="cx">          419FAFAD1ABABCD5005B828B /* ReadableStreamDefaultReader.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableStreamDefaultReader.idl; sourceTree = "<group>"; };
</span><span class="cx">          41A023ED1A39DB7900F722CF /* ReadableStream.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableStream.idl; sourceTree = "<group>"; };
</span><span class="lines">@@ -15040,9 +15028,6 @@
</span><span class="cx">                          07221B4C17CEC32700848E51 /* MediaStream.cpp */,
</span><span class="cx">                          07221B4D17CEC32700848E51 /* MediaStream.h */,
</span><span class="cx">                          07221B4E17CEC32700848E51 /* MediaStream.idl */,
</span><del>-                               07221B4F17CEC32700848E51 /* MediaStreamEvent.cpp */,
-                               07221B5017CEC32700848E51 /* MediaStreamEvent.h */,
-                               07221B5117CEC32700848E51 /* MediaStreamEvent.idl */,
</del><span class="cx">                           07221B5217CEC32700848E51 /* MediaStreamRegistry.cpp */,
</span><span class="cx">                          07221B5317CEC32700848E51 /* MediaStreamRegistry.h */,
</span><span class="cx">                          07221B5417CEC32700848E51 /* MediaStreamTrack.cpp */,
</span><span class="lines">@@ -15059,8 +15044,6 @@
</span><span class="cx">                          5EA725CA1ACABCB500EAD17B /* NavigatorMediaDevices.cpp */,
</span><span class="cx">                          5EA725CB1ACABCB500EAD17B /* NavigatorMediaDevices.h */,
</span><span class="cx">                          5EA725CC1ACABCB500EAD17B /* NavigatorMediaDevices.idl */,
</span><del>-                               07221B5C17CEC32700848E51 /* NavigatorUserMedia.idl */,
-                               419BE75A1BCBD3ED00E1C85B /* NavigatorUserMedia.js */,
</del><span class="cx">                           0704A4051D6DE9F10086DCDB /* OverconstrainedError.h */,
</span><span class="cx">                          0704A4031D6DE9F10086DCDB /* OverconstrainedError.idl */,
</span><span class="cx">                          072A703E1D6E8F6200DF0AFC /* OverconstrainedErrorEvent.h */,
</span><span class="lines">@@ -15313,8 +15296,6 @@
</span><span class="cx">                          07277E4117D018CC0015534D /* JSMediaStream.h */,
</span><span class="cx">                          07277E4217D018CC0015534D /* JSMediaStreamAudioDestinationNode.cpp */,
</span><span class="cx">                          07277E4317D018CC0015534D /* JSMediaStreamAudioDestinationNode.h */,
</span><del>-                               07277E4417D018CC0015534D /* JSMediaStreamEvent.cpp */,
-                               07277E4517D018CC0015534D /* JSMediaStreamEvent.h */,
</del><span class="cx">                           07277E4617D018CC0015534D /* JSMediaStreamTrack.cpp */,
</span><span class="cx">                          07277E4717D018CC0015534D /* JSMediaStreamTrack.h */,
</span><span class="cx">                          07277E4817D018CC0015534D /* JSMediaStreamTrackEvent.cpp */,
</span><span class="lines">@@ -15323,8 +15304,6 @@
</span><span class="cx">                          932CC0D11DFFD667004C0F9F /* JSMediaTrackConstraints.h */,
</span><span class="cx">                          0787C4671BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.cpp */,
</span><span class="cx">                          0787C4681BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.h */,
</span><del>-                               073BE33E17D17E01002BD431 /* JSNavigatorUserMedia.cpp */,
-                               073BE33F17D17E01002BD431 /* JSNavigatorUserMedia.h */,
</del><span class="cx">                           0704A4091D6DFC690086DCDB /* JSOverconstrainedError.cpp */,
</span><span class="cx">                          0704A40A1D6DFC690086DCDB /* JSOverconstrainedError.h */,
</span><span class="cx">                          0704A4131D6F39FB0086DCDB /* JSOverconstrainedErrorEvent.cpp */,
</span><span class="lines">@@ -28731,7 +28710,6 @@
</span><span class="cx">                          07277E4D17D018CC0015534D /* JSMediaStream.h in Headers */,
</span><span class="cx">                          07277E4F17D018CC0015534D /* JSMediaStreamAudioDestinationNode.h in Headers */,
</span><span class="cx">                          FDBD480D159BC6870093EB4F /* JSMediaStreamAudioSourceNode.h in Headers */,
</span><del>-                               07277E5117D018CC0015534D /* JSMediaStreamEvent.h in Headers */,
</del><span class="cx">                           07277E5317D018CC0015534D /* JSMediaStreamTrack.h in Headers */,
</span><span class="cx">                          07277E5517D018CC0015534D /* JSMediaStreamTrackEvent.h in Headers */,
</span><span class="cx">                          932CC0D51DFFD667004C0F9F /* JSMediaTrackConstraints.h in Headers */,
</span><span class="lines">@@ -28750,7 +28728,6 @@
</span><span class="cx">                          A9D247F80D757E3400FDF959 /* JSNavigator.h in Headers */,
</span><span class="cx">                          77D510251ED74B5800DA4C87 /* JSNavigatorCredentials.h in Headers */,
</span><span class="cx">                          51F886C01F32923100C193EF /* JSNavigatorServiceWorker.h in Headers */,
</span><del>-                               073BE34117D17E01002BD431 /* JSNavigatorUserMedia.h in Headers */,
</del><span class="cx">                           BC9439C3116CF4940048C750 /* JSNodeCustom.h in Headers */,
</span><span class="cx">                          14115B7309F84CD600CA4FC1 /* JSNodeFilter.h in Headers */,
</span><span class="cx">                          1A750D8E0A90E521000FF215 /* JSNodeIterator.h in Headers */,
</span><span class="lines">@@ -29355,7 +29332,6 @@
</span><span class="cx">                          0783228518013ED800999E0C /* MediaStreamAudioSource.h in Headers */,
</span><span class="cx">                          FD671A78159BB07000197559 /* MediaStreamAudioSourceNode.h in Headers */,
</span><span class="cx">                          070F549817F12F6B00169E04 /* MediaStreamConstraintsValidationClient.h in Headers */,
</span><del>-                               078E091617D14D1C00420AA1 /* MediaStreamEvent.h in Headers */,
</del><span class="cx">                           078E093717D16B2C00420AA1 /* MediaStreamPrivate.h in Headers */,
</span><span class="cx">                          078E091717D14D1C00420AA1 /* MediaStreamRegistry.h in Headers */,
</span><span class="cx">                          078E3CC01FE1C73C00483C1D /* MediaStreamRequest.h in Headers */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -55,7 +55,6 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL makeThisTypeErrorForBuiltins(ExecState*);
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL makeGetterTypeErrorForBuiltins(ExecState*);
</span><del>-EncodedJSValue JSC_HOST_CALL isWebRTCLegacyAPIEnabled(ExecState*);
</del><span class="cx"> EncodedJSValue JSC_HOST_CALL isReadableByteStreamAPIEnabled(ExecState*);
</span><span class="cx"> 
</span><span class="cx"> const ClassInfo JSDOMGlobalObject::s_info = { "DOMGlobalObject", &JSGlobalObject::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSDOMGlobalObject) };
</span><span class="lines">@@ -103,13 +102,6 @@
</span><span class="cx">     return JSValue::encode(createTypeError(execState, makeGetterTypeErrorMessage(interfaceName.utf8().data(), attributeName.utf8().data())));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if ENABLE(WEB_RTC)
-EncodedJSValue JSC_HOST_CALL isWebRTCLegacyAPIEnabled(ExecState*)
-{
-    return JSValue::encode(jsBoolean(RuntimeEnabledFeatures::sharedFeatures().webRTCLegacyAPIEnabled()));
-}
-#endif
-
</del><span class="cx"> #if ENABLE(STREAMS_API)
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL isReadableByteStreamAPIEnabled(ExecState*)
</span><span class="cx"> {
</span><span class="lines">@@ -170,9 +162,6 @@
</span><span class="cx">         JSDOMGlobalObject::GlobalPropertyInfo(clientData.builtinNames().ReadableStreamBYOBReaderPrivateName(), privateReadableStreamBYOBReaderConstructor, PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly),
</span><span class="cx">         JSDOMGlobalObject::GlobalPropertyInfo(clientData.builtinNames().readableByteStreamAPIEnabledPrivateName(), JSFunction::create(vm, this, 0, String(), isReadableByteStreamAPIEnabled), PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly),
</span><span class="cx"> #endif
</span><del>-#if ENABLE(WEB_RTC)
-        JSDOMGlobalObject::GlobalPropertyInfo(clientData.builtinNames().webRTCLegacyAPIEnabledPrivateName(), JSFunction::create(vm, this, 0, String(), isWebRTCLegacyAPIEnabled), PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly),
-#endif
</del><span class="cx">     };
</span><span class="cx">     addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWebCoreBuiltinNamesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -99,7 +99,6 @@
</span><span class="cx">     macro(MediaKeys) \
</span><span class="cx">     macro(MediaSource) \
</span><span class="cx">     macro(MediaStream) \
</span><del>-    macro(MediaStreamEvent) \
</del><span class="cx">     macro(MediaStreamTrack) \
</span><span class="cx">     macro(ModernMediaControls) \
</span><span class="cx">     macro(NavigatorCredentials) \
</span><span class="lines">@@ -191,7 +190,6 @@
</span><span class="cx">     macro(WindowClient) \
</span><span class="cx">     macro(WritableStream) \
</span><span class="cx">     macro(XMLHttpRequest) \
</span><del>-    macro(addTrack) \
</del><span class="cx">     macro(appendFromJS) \
</span><span class="cx">     macro(associatedReadableByteStreamController) \
</span><span class="cx">     macro(autoAllocateChunkSize) \
</span><span class="lines">@@ -223,8 +221,6 @@
</span><span class="cx">     macro(finishConsumingStream) \
</span><span class="cx">     macro(focus) \
</span><span class="cx">     macro(frames) \
</span><del>-    macro(getRemoteStreams) \
-    macro(getSenders) \
</del><span class="cx">     macro(getTracks) \
</span><span class="cx">     macro(getUserMedia) \
</span><span class="cx">     macro(header) \
</span><span class="lines">@@ -268,7 +264,6 @@
</span><span class="cx">     macro(readableStreamController) \
</span><span class="cx">     macro(reader) \
</span><span class="cx">     macro(readyPromiseCapability) \
</span><del>-    macro(removeTrack) \
</del><span class="cx">     macro(response) \
</span><span class="cx">     macro(responseCacheIsValid) \
</span><span class="cx">     macro(retrieveResponse) \
</span><span class="lines">@@ -298,7 +293,6 @@
</span><span class="cx">     macro(underlyingSource) \
</span><span class="cx">     macro(view) \
</span><span class="cx">     macro(visualViewport) \
</span><del>-    macro(webRTCLegacyAPIEnabled) \
</del><span class="cx">     macro(webkit) \
</span><span class="cx">     macro(webkitAudioContext) \
</span><span class="cx">     macro(webkitIDBCursor) \
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventNames.in (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventNames.in   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/dom/EventNames.in      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -48,7 +48,6 @@
</span><span class="cx"> ApplePayValidateMerchantEvent conditional=APPLE_PAY
</span><span class="cx"> AudioProcessingEvent conditional=WEB_AUDIO
</span><span class="cx"> OfflineAudioCompletionEvent conditional=WEB_AUDIO
</span><del>-MediaStreamEvent conditional=WEB_RTC
</del><span class="cx"> MediaStreamTrackEvent conditional=MEDIA_STREAM
</span><span class="cx"> MerchantValidationEvent conditional=PAYMENT_REQUEST
</span><span class="cx"> PaymentRequestUpdateEvent conditional=PAYMENT_REQUEST
</span></span></pre></div>
<a id="trunkSourceWebCorepageRuntimeEnabledFeaturesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/RuntimeEnabledFeatures.h (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.h       2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.h  2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -120,8 +120,6 @@
</span><span class="cx">     void setWebRTCUnifiedPlanEnabled(bool isEnabled) { m_isWebRTCUnifiedPlanEnabled = isEnabled; }
</span><span class="cx">     bool peerConnectionEnabled() const { return m_isPeerConnectionEnabled; }
</span><span class="cx">     void setPeerConnectionEnabled(bool isEnabled) { m_isPeerConnectionEnabled = isEnabled; }
</span><del>-    bool webRTCLegacyAPIEnabled() const { return m_webRTCLegacyAPIEnabled; }
-    void setWebRTCLegacyAPIEnabled(bool isEnabled) { m_webRTCLegacyAPIEnabled = isEnabled; }
</del><span class="cx">     bool mdnsICECandidatesEnabled() const { return m_mdnsICECandidatesEnabled; }
</span><span class="cx">     void setMDNSICECandidatesEnabled(bool isEnabled) { m_mdnsICECandidatesEnabled = isEnabled; }
</span><span class="cx"> #endif
</span><span class="lines">@@ -325,7 +323,6 @@
</span><span class="cx"> #if ENABLE(WEB_RTC)
</span><span class="cx">     bool m_isWebRTCUnifiedPlanEnabled { true };
</span><span class="cx">     bool m_isPeerConnectionEnabled { true };
</span><del>-    bool m_webRTCLegacyAPIEnabled { false };
</del><span class="cx">     bool m_mdnsICECandidatesEnabled { false };
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebKit/ChangeLog       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,3 +1,22 @@
</span><ins>+2018-08-29  Youenn Fablet  <youenn@apple.com>
+
+        Remove WebRTC legacy API implementation
+        https://bugs.webkit.org/show_bug.cgi?id=189040
+
+        Reviewed by Eric Carlson.
+
+        * Shared/WebPreferences.yaml:
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetWebRTCLegacyAPIEnabled): Deleted.
+        (WKPreferencesGetWebRTCLegacyAPIEnabled): Deleted.
+        * UIProcess/API/C/WKPreferencesRef.h:
+        * UIProcess/API/Cocoa/WKPreferences.mm:
+        (-[WKPreferences _webRTCLegacyAPIEnabled]): Deleted.
+        (-[WKPreferences _setWebRTCLegacyAPIEnabled:]): Deleted.
+        * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
+
</ins><span class="cx"> 2018-08-29  Chris Dumez  <cdumez@apple.com>
</span><span class="cx"> 
</span><span class="cx">         [PSON] We should only process-swap when eTLD+1 changes on navigation
</span></span></pre></div>
<a id="trunkSourceWebKitSharedWebPreferencesyaml"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Shared/WebPreferences.yaml (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Shared/WebPreferences.yaml   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebKit/Shared/WebPreferences.yaml      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1156,14 +1156,6 @@
</span><span class="cx">   category: experimental
</span><span class="cx">   condition: ENABLE(INTERSECTION_OBSERVER)
</span><span class="cx"> 
</span><del>-WebRTCLegacyAPIEnabled:
-  type: bool
-  defaultValue: false
-  humanReadableName: "Enable Legacy WebRTC API"
-  humanReadableDescription: "Enable Legacy WebRTC API"
-  webcoreBinding: RuntimeEnabledFeatures
-  condition: ENABLE(WEB_RTC)
-
</del><span class="cx"> MDNSICECandidatesEnabled:
</span><span class="cx">   type: bool
</span><span class="cx">   defaultValue: false
</span></span></pre></div>
<a id="trunkSourceWebKitUIProcessAPICWKPreferencescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/UIProcess/API/C/WKPreferences.cpp (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/UIProcess/API/C/WKPreferences.cpp    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebKit/UIProcess/API/C/WKPreferences.cpp       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1428,16 +1428,6 @@
</span><span class="cx">     return toImpl(preferencesRef)->peerConnectionEnabled();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WKPreferencesSetWebRTCLegacyAPIEnabled(WKPreferencesRef preferencesRef, bool enabled)
-{
-    toImpl(preferencesRef)->setWebRTCLegacyAPIEnabled(enabled);
-}
-
-bool WKPreferencesGetWebRTCLegacyAPIEnabled(WKPreferencesRef preferencesRef)
-{
-    return toImpl(preferencesRef)->webRTCLegacyAPIEnabled();
-}
-
</del><span class="cx"> void WKPreferencesSetWebRTCMDNSICECandidatesEnabled(WKPreferencesRef preferencesRef, bool enabled)
</span><span class="cx"> {
</span><span class="cx">     toImpl(preferencesRef)->setMDNSICECandidatesEnabled(enabled);
</span></span></pre></div>
<a id="trunkSourceWebKitUIProcessAPICWKPreferencesRefh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/UIProcess/API/C/WKPreferencesRef.h (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/UIProcess/API/C/WKPreferencesRef.h   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebKit/UIProcess/API/C/WKPreferencesRef.h      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -268,10 +268,6 @@
</span><span class="cx"> WK_EXPORT void WKPreferencesSetPeerConnectionEnabled(WKPreferencesRef preferencesRef, bool enabled);
</span><span class="cx"> WK_EXPORT bool WKPreferencesGetPeerConnectionEnabled(WKPreferencesRef preferencesRef);
</span><span class="cx"> 
</span><del>-// Should default to false
-WK_EXPORT void WKPreferencesSetWebRTCLegacyAPIEnabled(WKPreferencesRef preferencesRef, bool enabled);
-WK_EXPORT bool WKPreferencesGetWebRTCLegacyAPIEnabled(WKPreferencesRef preferencesRef);
-
</del><span class="cx"> // Defaults to false
</span><span class="cx"> WK_EXPORT void WKPreferencesSetWebRTCMDNSICECandidatesEnabled(WKPreferencesRef preferencesRef, bool enabled);
</span><span class="cx"> WK_EXPORT bool WKPreferencesGetWebRTCMDNSICECandidatesEnabled(WKPreferencesRef preferencesRef);
</span></span></pre></div>
<a id="trunkSourceWebKitUIProcessAPICocoaWKPreferencesmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -669,16 +669,6 @@
</span><span class="cx">     _preferences->setICECandidateFilteringEnabled(enabled);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (BOOL)_webRTCLegacyAPIEnabled
-{
-    return _preferences->webRTCLegacyAPIEnabled();
-}
-
-- (void)_setWebRTCLegacyAPIEnabled:(BOOL)enabled
-{
-    _preferences->setWebRTCLegacyAPIEnabled(enabled);
-}
-
</del><span class="cx"> - (void)_setJavaScriptCanAccessClipboard:(BOOL)javaScriptCanAccessClipboard
</span><span class="cx"> {
</span><span class="cx">     _preferences->setJavaScriptCanAccessClipboard(javaScriptCanAccessClipboard);
</span></span></pre></div>
<a id="trunkSourceWebKitUIProcessAPICocoaWKPreferencesPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h   2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h      2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -118,7 +118,6 @@
</span><span class="cx"> @property (nonatomic, setter=_setMediaCaptureRequiresSecureConnection:) BOOL _mediaCaptureRequiresSecureConnection WK_API_AVAILABLE(macosx(10.13), ios(11.0));
</span><span class="cx"> @property (nonatomic, setter=_setEnumeratingAllNetworkInterfacesEnabled:) BOOL _enumeratingAllNetworkInterfacesEnabled WK_API_AVAILABLE(macosx(10.13), ios(11.0));
</span><span class="cx"> @property (nonatomic, setter=_setICECandidateFilteringEnabled:) BOOL _iceCandidateFilteringEnabled WK_API_AVAILABLE(macosx(10.13.4), ios(11.3));
</span><del>-@property (nonatomic, setter=_setWebRTCLegacyAPIEnabled:) BOOL _webRTCLegacyAPIEnabled WK_API_AVAILABLE(macosx(10.13), ios(11.0));
</del><span class="cx"> @property (nonatomic, setter=_setInactiveMediaCaptureSteamRepromptIntervalInMinutes:) double _inactiveMediaCaptureSteamRepromptIntervalInMinutes WK_API_AVAILABLE(macosx(10.13.4), ios(11.3));
</span><span class="cx"> 
</span><span class="cx"> @property (nonatomic, setter=_setJavaScriptCanAccessClipboard:) BOOL _javaScriptCanAccessClipboard WK_API_AVAILABLE(macosx(10.13), ios(11.0));
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessInjectedBundleInjectedBundlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -239,8 +239,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_RTC)
</span><del>-    if (preference == "WebKitWebRTCLegacyAPIEnabled")
-        RuntimeEnabledFeatures::sharedFeatures().setWebRTCLegacyAPIEnabled(enabled);
</del><span class="cx">     if (preference == "WebKitMDNSICECandidatesEnabled")
</span><span class="cx">         RuntimeEnabledFeatures::sharedFeatures().setMDNSICECandidatesEnabled(enabled);
</span><span class="cx">     if (preference == "WebKitWebRTCUnifiedPlanEnabled")
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/ChangeLog  2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog     2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2018-08-29  Youenn Fablet  <youenn@apple.com>
+
+        Remove WebRTC legacy API implementation
+        https://bugs.webkit.org/show_bug.cgi?id=189040
+
+        Reviewed by Eric Carlson.
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]):
+        (-[WebPreferences webRTCLegacyAPIEnabled]): Deleted.
+        (-[WebPreferences setWebRTCLegacyAPIEnabled:]): Deleted.
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]):
+
</ins><span class="cx"> 2018-08-28  Wenson Hsieh  <wenson_hsieh@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Work towards: [iOS] Consolidate the implementations of readString, stringForType, and readURL in PlatformPasteboardIOS.mm
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacWebViewWebPreferenceKeysPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -187,7 +187,6 @@
</span><span class="cx"> #define WebKitMediaDevicesEnabledPreferenceKey @"WebKitMediaDevicesEnabled"
</span><span class="cx"> #define WebKitMediaStreamEnabledPreferenceKey @"WebKitMediaStreamEnabled"
</span><span class="cx"> #define WebKitPeerConnectionEnabledPreferenceKey @"WebKitPeerConnectionEnabled"
</span><del>-#define WebKitWebRTCLegacyAPIEnabledPreferenceKey @"WebKitWebRTCLegacyAPIEnabled"
</del><span class="cx"> #define WebKitLinkPreloadEnabledPreferenceKey @"WebKitLinkPreloadEnabled"
</span><span class="cx"> #define WebKitMediaPreloadingEnabledPreferenceKey @"WebKitMediaPreloadingEnabled"
</span><span class="cx"> #define WebKitWebAuthenticationEnabledPreferenceKey @"WebKitWebAuthenticationEnabled"
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacWebViewWebPreferencesmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm  2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm     2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -662,7 +662,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(WEB_RTC)
</span><span class="cx">         [NSNumber numberWithBool:YES], WebKitPeerConnectionEnabledPreferenceKey,
</span><del>-        [NSNumber numberWithBool:NO], WebKitWebRTCLegacyAPIEnabledPreferenceKey,
</del><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(INTERSECTION_OBSERVER)
</span><span class="cx">         @NO, WebKitIntersectionObserverEnabledPreferenceKey,
</span><span class="lines">@@ -2833,16 +2832,6 @@
</span><span class="cx">     [self _setBoolValue:flag forKey:WebKitPeerConnectionEnabledPreferenceKey];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (BOOL)webRTCLegacyAPIEnabled
-{
-    return [self _boolValueForKey:WebKitWebRTCLegacyAPIEnabledPreferenceKey];
-}
-
-- (void)setWebRTCLegacyAPIEnabled:(BOOL)flag
-{
-    [self _setBoolValue:flag forKey:WebKitWebRTCLegacyAPIEnabledPreferenceKey];
-}
-
</del><span class="cx"> - (BOOL)linkPreloadEnabled
</span><span class="cx"> {
</span><span class="cx">     return [self _boolValueForKey:WebKitLinkPreloadEnabledPreferenceKey];
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacWebViewWebPreferencesPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -183,9 +183,6 @@
</span><span class="cx"> - (void)setPeerConnectionEnabled:(BOOL)flag;
</span><span class="cx"> - (BOOL)peerConnectionEnabled;
</span><span class="cx"> 
</span><del>-- (void)setWebRTCLegacyAPIEnabled:(BOOL)flag;
-- (BOOL)webRTCLegacyAPIEnabled;
-
</del><span class="cx"> #if !TARGET_OS_IPHONE
</span><span class="cx"> // zero means do AutoScale
</span><span class="cx"> - (float)PDFScaleFactor;
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/WebView/WebView.mm (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/WebView/WebView.mm 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebView.mm    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -3049,7 +3049,6 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_RTC)
</span><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setPeerConnectionEnabled([preferences peerConnectionEnabled]);
</span><del>-    RuntimeEnabledFeatures::sharedFeatures().setWebRTCLegacyAPIEnabled([preferences webRTCLegacyAPIEnabled]);
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_AUDIO)
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog    2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Tools/ChangeLog       2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2018-08-29  Youenn Fablet  <youenn@apple.com>
+
+        Remove WebRTC legacy API implementation
+        https://bugs.webkit.org/show_bug.cgi?id=189040
+
+        Reviewed by Eric Carlson.
+
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (enableExperimentalFeatures):
+        * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
+        * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
+        (WTR::TestRunner::setWebRTCLegacyAPIEnabled): Deleted.
+        * WebKitTestRunner/InjectedBundle/TestRunner.h:
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::TestController::resetPreferencesToConsistentValues):
+
</ins><span class="cx"> 2018-08-29  Daniel Bates  <dabates@apple.com>
</span><span class="cx"> 
</span><span class="cx">         lldb-webkit: KeyError thrown for uninitialized OptionSet
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreemacDumpRenderTreemm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -856,7 +856,6 @@
</span><span class="cx">     [preferences setWebGL2Enabled:YES];
</span><span class="cx">     [preferences setWebGPUEnabled:YES];
</span><span class="cx">     // FIXME: AsyncFrameScrollingEnabled
</span><del>-    [preferences setWebRTCLegacyAPIEnabled:YES];
</del><span class="cx">     [preferences setWebAuthenticationEnabled:NO];
</span><span class="cx">     [preferences setCacheAPIEnabled:NO];
</span><span class="cx">     [preferences setReadableByteStreamAPIEnabled:YES];
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleBindingsTestRunneridl"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl      2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl 2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -320,7 +320,6 @@
</span><span class="cx">     // Open panel
</span><span class="cx">     void setOpenPanelFiles(object filesArray);
</span><span class="cx"> 
</span><del>-    void setWebRTCLegacyAPIEnabled(boolean value);
</del><span class="cx">     void setMDNSICECandidatesEnabled(boolean value);
</span><span class="cx">     void setWebRTCUnifiedPlanEnabled(boolean value);
</span><span class="cx">     void setCustomUserAgent(DOMString userAgent);
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleTestRunnercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp       2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp  2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -455,13 +455,6 @@
</span><span class="cx">     WKBundlePostSynchronousMessage(InjectedBundle::singleton().bundle(), messageName.get(), toWK(userAgent).get(), nullptr);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void TestRunner::setWebRTCLegacyAPIEnabled(bool enabled)
-{
-    WKRetainPtr<WKStringRef> key(AdoptWK, WKStringCreateWithUTF8CString("WebKitWebRTCLegacyAPIEnabled"));
-    auto& injectedBundle = InjectedBundle::singleton();
-    WKBundleOverrideBoolPreferenceForTestRunner(injectedBundle.bundle(), injectedBundle.pageGroup(), key.get(), enabled);
-}
-
</del><span class="cx"> void TestRunner::setModernMediaControlsEnabled(bool enabled)
</span><span class="cx"> {
</span><span class="cx">     WKRetainPtr<WKStringRef> key(AdoptWK, WKStringCreateWithUTF8CString("WebKitModernMediaControlsEnabled"));
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleTestRunnerh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h 2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h    2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -130,7 +130,6 @@
</span><span class="cx">     void setAllowsAnySSLCertificate(bool);
</span><span class="cx">     void setEncryptedMediaAPIEnabled(bool);
</span><span class="cx">     void setMediaDevicesEnabled(bool);
</span><del>-    void setWebRTCLegacyAPIEnabled(bool);
</del><span class="cx">     void setMDNSICECandidatesEnabled(bool);
</span><span class="cx">     void setWebRTCUnifiedPlanEnabled(bool);
</span><span class="cx">     void setCustomUserAgent(JSStringRef);
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerTestControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (235483 => 235484)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/TestController.cpp  2018-08-29 22:23:30 UTC (rev 235483)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp     2018-08-29 22:42:26 UTC (rev 235484)
</span><span class="lines">@@ -706,7 +706,6 @@
</span><span class="cx">     WKPreferencesSetXSSAuditorEnabled(preferences, false);
</span><span class="cx">     WKPreferencesSetWebAudioEnabled(preferences, true);
</span><span class="cx">     WKPreferencesSetMediaDevicesEnabled(preferences, true);
</span><del>-    WKPreferencesSetWebRTCLegacyAPIEnabled(preferences, true);
</del><span class="cx">     WKPreferencesSetWebRTCMDNSICECandidatesEnabled(preferences, false);
</span><span class="cx">     WKPreferencesSetDeveloperExtrasEnabled(preferences, true);
</span><span class="cx">     WKPreferencesSetJavaScriptRuntimeFlags(preferences, kWKJavaScriptRuntimeFlagsAllEnabled);
</span></span></pre>
</div>
</div>

</body>
</html>