<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>191202</bug_id>
          
          <creation_ts>2018-11-02 11:48:59 -0700</creation_ts>
          <short_desc>sender.replaceTrack() fails with InvalidStateError if the transceiver.direction is &quot;inactive&quot;</short_desc>
          <delta_ts>2018-11-15 18:18:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Iñaki Baz">ibc</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1474581</commentid>
    <comment_count>0</comment_count>
    <who name="Iñaki Baz">ibc</who>
    <bug_when>2018-11-02 11:48:59 -0700</bug_when>
    <thetext>Scenario:

* A peerconnection with a sending track (no receiving tracks).

transceiver = pc.addTransceiver(track, { direction: &apos;sendonly&apos; });

* Later I remove the track:

pc.removeTrack(transceiver.sender);

* When calling pc.createOffer() it generates a m= section with a=inactive (it was a=sendonly before, so it makes sense). The remote SDP answer has also a=inactive as per spec (but it does NOT have port=0 in the m line).

* Later I want to reuse the same transceiver (which is NOT stopped, this is: transceiver.stopped is false) for sending a new track:

const promise = transceiver.sender.replaceTrack(newTrack);

* However, promise is rejected with &quot;InvalidStateError: The object is in an invalid state.&quot; which IMHO doesnot make any sense. What does &quot;invalid state&quot; mean for a RtpSender? Yes, `pc.removeTrack(transceiver.sender)` was called before this, but it should not mean that the transceiver becomes unusable for sending new media. It&apos;s not stopped, it&apos;s just inactive. I should be able to set a new sending track.

NOTE: This works fine in Chrome 72.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474690</commentid>
    <comment_count>1</comment_count>
    <who name="Iñaki Baz">ibc</who>
    <bug_when>2018-11-02 17:23:43 -0700</bug_when>
    <thetext>NOTE: My workaround for now is not trying to reuse an inactive transceiver  but, instead, creating always a new transceiver and leave inactive ones unused forever.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474860</commentid>
    <comment_count>2</comment_count>
      <attachid>353801</attachid>
    <who name="Iñaki Baz">ibc</who>
    <bug_when>2018-11-04 01:01:33 -0800</bug_when>
    <thetext>Created attachment 353801
Test script

To test this script, just open Safari 12.1, have &quot;Develop - Experimental Features - WebRTC Unified-Plan&quot; enabled, and paste the script in the Safari console.

In this script the &quot;InvalidStateError&quot; does not happen, probably because there is no full SDP OA (there is no remote SDP). Anyway, it also fails with a 100% related issue:

* The scripts gets two audio tracks and creates a sending transceiver with the first audio track.
* Then it removes it via `pc.removeTrack(micTransceiver.sender);`.
* Then it replaces the previous mic track with the second one:
```js
micTransceiver.sender.replaceTrack(micTrack2);
micTransceiver.direction = &apos;sendonly&apos;; // &lt;--- IMPORTANT
```
* However, `pc.createOffer()` generates an SDP offer with `a=inactive`.

This is: once `pc.removeTrack(sender)` is called, the corresponding transceiver becomes 100% unusable for sending a new track. Setting the transceiver.direction = &quot;sendonly&quot; is ignored by Safari (here the bug probably).

NOTE: The script properly works in Chrome and Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474984</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-05 00:37:27 -0800</bug_when>
    <thetext>(In reply to Iñaki Baz from comment #1)
&gt; NOTE: My workaround for now is not trying to reuse an inactive transceiver 
&gt; but, instead, creating always a new transceiver and leave inactive ones
&gt; unused forever.

You could also try using replaceTrack(null) instead of removeTrack()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475009</commentid>
    <comment_count>4</comment_count>
      <attachid>353842</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-05 02:45:02 -0800</bug_when>
    <thetext>Created attachment 353842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475023</commentid>
    <comment_count>5</comment_count>
      <attachid>353847</attachid>
    <who name="Iñaki Baz">ibc</who>
    <bug_when>2018-11-05 03:39:18 -0800</bug_when>
    <thetext>Created attachment 353847
Test script 2 with sender.replaceTrack(null)

Unfortunately calling sender.replaceTrack(null) does not set &quot;a=inactive&quot;. Instead it remains &quot;a=sendonly&quot; even if I set transceiver.direction = &quot;inactive&quot; once the replaceTrack(null) promise resolves.

The new attached script is similar to the first one, but instead of pc.removeTrack(sender) it uses sender.replaceTrack(null).then(() =&gt; { transceiver.direction = &quot;inactive&quot;; }):

* Once replaceTrack(null) resolves the script changes the transceiver direction to &quot;inactive&quot; and generates an offer. The offer still has a=sendonly, so this is not a valid solution yet.

* And much worse: If after that I call sameSender.replaceTrack(newTrack), it generates a new audio transceiver with its corresponding new m=audio section, both with &quot;a=sendonly&quot;. This is an important bug somewhere IMHO.

This script properly works in Chrome and Firefox works fine.

NOTE: In Safari, and when doing real SDP O/A (with pc.setRemoteDescription() and so on) changing transceiver.direction produces an exception (something like &quot;cannot change readonly property&quot;) if I do it before the replaceTrack(null) promise resolves. This does not happen in Chrome or Firefox and the spec says nothing about when transceiver.direction can be changed. It&apos;s supposed to be changed at any time. It just happens that its effective value (pc.currentDirection) takes an effective value later, may be after a proper SDP O/A, but IMHO it should never produce an exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475064</commentid>
    <comment_count>6</comment_count>
    <who name="Iñaki Baz">ibc</who>
    <bug_when>2018-11-05 06:48:35 -0800</bug_when>
    <thetext>In order to not mix different issues, I&apos;ve open a new one to just report the issue when setting transceiver.direction = &quot;inactive&quot; (which is just ignored in Safari 12.1):

https://bugs.webkit.org/show_bug.cgi?id=191260

So, if you developers wish, we can handle here just the original issue related to unusable transceiver.sender once pc.removeTrack(sender) is called (for which I see there is already a patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475071</commentid>
    <comment_count>7</comment_count>
    <who name="Iñaki Baz">ibc</who>
    <bug_when>2018-11-05 07:00:43 -0800</bug_when>
    <thetext>I&apos;ve also created a separate issue for the issue &quot;Calling sender.replaceTrack() twice produces a new transceiver and its corresponding m= section&quot;:

https://bugs.webkit.org/show_bug.cgi?id=191261</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475876</commentid>
    <comment_count>8</comment_count>
      <attachid>353842</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-06 22:05:13 -0800</bug_when>
    <thetext>Comment on attachment 353842
Patch

Clearing flags on attachment: 353842

Committed r237916: &lt;https://trac.webkit.org/changeset/237916&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475877</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-06 22:05:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475878</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-06 22:06:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/45866014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479215</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-15 18:18:21 -0800</bug_when>
    <thetext>*** Bug 191698 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>353801</attachid>
            <date>2018-11-04 01:01:33 -0800</date>
            <delta_ts>2018-11-04 01:01:33 -0800</delta_ts>
            <desc>Test script</desc>
            <filename>pc-removeTrack-leaves-transceiver-inusable.js</filename>
            <type>application/javascript</type>
            <size>1421</size>
            <attacher name="Iñaki Baz">ibc</attacher>
            
              <data encoding="base64">bGV0IG1pY1RyYWNrMTsKbGV0IG1pY1RyYWNrMjsKbGV0IHBjOwpsZXQgbWljVHJhbnNjZWl2ZXI7
CgpQcm9taXNlLnJlc29sdmUoKQogIC50aGVuKCgpID0+IG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWUgfSkpCiAgLnRoZW4oKHN0cmVhbSkgPT4gKG1pY1Ry
YWNrMSA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdKSkKICAudGhlbigoKSA9PiBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB0cnVlIH0pKQogIC50aGVuKChz
dHJlYW0pID0+IChtaWNUcmFjazIgPSBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSkpCiAgLnRo
ZW4oKCkgPT4KICB7CiAgICBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigKICAgICAgewogICAg
ICAgIGljZVNlcnZlcnMgICAgOiBbXSwKICAgICAgICBidW5kbGVQb2xpY3kgIDogJ21heC1idW5k
bGUnLAogICAgICAgIHJ0Y3BNdXhQb2xpY3kgOiAncmVxdWlyZScsCiAgICAgICAgc2RwU2VtYW50
aWNzICA6ICd1bmlmaWVkLXBsYW4nIC8vIE5vdCBuZWVkZWQgaW4gU2FmYXJpCiAgICAgIH0pOwoK
ICAgIGNvbnNvbGUud2FybigncGM6IGFkZGluZyBtaWMgdHJhY2sgMScpOwoKICAgIG1pY1RyYW5z
Y2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIobWljVHJhY2sxLCB7IGRpcmVjdGlvbjogJ3NlbmRv
bmx5JyB9KTsKICB9KQogIC50aGVuKCgpID0+IGRvU2RwU3R1ZmYoKSkKICAudGhlbigoKSA9Pgog
IHsKICAgIGNvbnNvbGUud2FybigncGM6IHJlbW92aW5nIG1pYyB0cmFjayAxJyk7CgogICAgcGMu
cmVtb3ZlVHJhY2sobWljVHJhbnNjZWl2ZXIuc2VuZGVyKTsKICB9KQogIC50aGVuKCgpID0+CiAg
ewogICAgY29uc29sZS53YXJuKCdwYzogYWRkaW5nIG1pYyB0cmFjayAyIGluIHNhbWUgdHJhbnNj
ZWl2ZXInKTsKCiAgICBtaWNUcmFuc2NlaXZlci5zZW5kZXIucmVwbGFjZVRyYWNrKG1pY1RyYWNr
Mik7CiAgICBtaWNUcmFuc2NlaXZlci5kaXJlY3Rpb24gPSAnc2VuZG9ubHknOwogIH0pCiAgLnRo
ZW4oKCkgPT4gZG9TZHBTdHVmZigpKQogIC5jYXRjaCgoZXJyb3IpID0+CiAgewogICAgY29uc29s
ZS5lcnJvcihlcnJvcik7CiAgfSk7CgpmdW5jdGlvbiBkb1NkcFN0dWZmKCkKewogIGxldCBlcnJv
cmVkID0gZmFsc2U7CgogIHJldHVybiBQcm9taXNlLnJlc29sdmUoKQogICAgLnRoZW4oKCkgPT4g
cGMuY3JlYXRlT2ZmZXIoKSkKICAgIC50aGVuKChvZmZlcikgPT4KICAgIHsKICAgICAgY29uc29s
ZS53YXJuKCdwYy5jcmVhdGVPZmZlcigpIHN1Y2NlZWRlZDpcbiVzJywgb2ZmZXIuc2RwKTsKICAg
IH0pCiAgICAuY2F0Y2goKGVycm9yKSA9PgogICAgewogICAgICBjb25zb2xlLmVycm9yKCdwYy5j
cmVhdGVPZmZlcigpIGZhaWxlZCcpOwoKICAgICAgdGhyb3cgZXJyb3I7CiAgICB9KTsKfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353842</attachid>
            <date>2018-11-05 02:45:02 -0800</date>
            <delta_ts>2018-11-06 22:05:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191202-20181105174504.patch</filename>
            <type>text/plain</type>
            <size>9071</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTgwYTVmMjFlYzZkNGFm
NzZjYWU1MzJkZmFhMzJlNTQyNzYxMTdmMy4uZTc5ODIwYWNjMGU1MjBjNGFiYWQ0YjhhZGUyOTlk
YmE0MmY3OThiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTExLTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBzZW5kZXIucmVwbGFjZVRy
YWNrKCkgZmFpbHMgd2l0aCBJbnZhbGlkU3RhdGVFcnJvciBpZiB0aGUgdHJhbnNjZWl2ZXIuZGly
ZWN0aW9uIGlzICJpbmFjdGl2ZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MTIwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0ZXN0LgorCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
VENQZWVyQ29ubmVjdGlvbjo6cmVtb3ZlVHJhY2spOgorICAgICAgICBVcGRhdGUgYXMgcGVyIHNw
ZWMsIGluIHBhcnRpY3VsYXIgbWFrZSBzdXJlIHRvIG5vdCBzdG9wIHRoZSBzZW5kZXIgd2hlbiBy
ZW1vdmluZyB0aGUgdHJhY2suCisKIDIwMTgtMTEtMDQgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSZW1vdmUgRU5BQkxFX09QRU5DTCBmdWxseQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cAppbmRleCA1OWIxNDVmNDY5OTZkOWJkOWMyNGRmY2M4YjVlZTA3MTkwNzkwNzY2Li4wNDQ1NWQ3
MGIyOGY4YzUzYzIyOTJhNDU3NmQ0MGQ2MDk5MTAxYjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAt
MTM0LDE3ICsxMzQsMjAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rpb246OnJl
bW92ZVRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAogICAgIGJvb2wgc2hvdWxkQWJvcnQgPSB0cnVlOwot
ICAgIGZvciAoUlRDUnRwU2VuZGVyJiBzZW5kZXJJblNldCA6IG1fdHJhbnNjZWl2ZXJTZXQtPnNl
bmRlcnMoKSkgewotICAgICAgICBpZiAoJnNlbmRlckluU2V0ID09ICZzZW5kZXIpIHsKLSAgICAg
ICAgICAgIHNob3VsZEFib3J0ID0gc2VuZGVyLmlzU3RvcHBlZCgpOworICAgIFJUQ1J0cFRyYW5z
Y2VpdmVyKiBzZW5kZXJUcmFuc2NlaXZlciA9IG51bGxwdHI7CisgICAgZm9yIChhdXRvJiB0cmFu
c2NlaXZlciA6IG1fdHJhbnNjZWl2ZXJTZXQtPmxpc3QoKSkgeworICAgICAgICBpZiAoJnNlbmRl
ciA9PSAmdHJhbnNjZWl2ZXItPnNlbmRlcigpKSB7CisgICAgICAgICAgICBzZW5kZXJUcmFuc2Nl
aXZlciA9IHRyYW5zY2VpdmVyLmdldCgpOworICAgICAgICAgICAgc2hvdWxkQWJvcnQgPSBzZW5k
ZXIuaXNTdG9wcGVkKCkgfHwgIXNlbmRlci50cmFjaygpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9CiAgICAgaWYgKHNob3VsZEFib3J0KQogICAgICAgICByZXR1cm4geyB9
OwogCisgICAgc2VuZGVyLnNldFRyYWNrVG9OdWxsKCk7CisgICAgc2VuZGVyVHJhbnNjZWl2ZXIt
PmRpc2FibGVTZW5kaW5nRGlyZWN0aW9uKCk7CiAgICAgbV9iYWNrZW5kLT5yZW1vdmVUcmFjayhz
ZW5kZXIpOwotICAgIHNlbmRlci5zdG9wKCk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDA5MGM5MjdmOTc3YzcwYmI4MDU1NTZiOTZmZWI3M2UwYmNkNzQxNjAuLmQ3Zjc4NGQ5OTk5YTg3
NjRjNDg1YTAxOTM4MDc4ZTUwNWZlNDA4ZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0x
MS0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgc2VuZGVy
LnJlcGxhY2VUcmFjaygpIGZhaWxzIHdpdGggSW52YWxpZFN0YXRlRXJyb3IgaWYgdGhlIHRyYW5z
Y2VpdmVyLmRpcmVjdGlvbiBpcyAiaW5hY3RpdmUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyMDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6IHNraXBwaW5nIGEgdGlt
aW5nIG91dCByZWxhdGVkIHRlc3QuCisgICAgICAgIEl0IGlzIGFscmVhZHkgdGltaW5nIG91dCBi
dXQgaXMgYWxzbyBmbGFreS4KKwogMjAxOC0xMS0wNCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtMRkNdW0JGQ10gQWRkIHN1cHBvcnQgZm9yIHBlcmNlbnRhZ2Ug
aGVpZ2h0IGluIHF1aXJrcyBtb2RlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
YTRhYmQ2NDE1MjY3NzRiMDA3MGNlY2I2NDZiZDI2NDY5MTIwN2ZkNy4uZGE1MTQ5ODE4YzViZTdl
MTY0ZWRlNTJlODM0MTNiM2QwZGVlZWU1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMTEtMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIHNlbmRlci5yZXBsYWNlVHJhY2soKSBmYWlscyB3aXRoIEludmFs
aWRTdGF0ZUVycm9yIGlmIHRoZSB0cmFuc2NlaXZlci5kaXJlY3Rpb24gaXMgImluYWN0aXZlIgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjAyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlcyBt
YWRlIHVwc3RyZWFtZWQuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXJlcGxhY2VUcmFjay5odHRwcy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1yZXBsYWNlVHJhY2suaHR0cHMuaHRtbDoK
KwogMjAxOC0xMS0wNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgSURCIHNob3VsZCBhbGxvdyBzdG9yaW5nIFJUQ0NlcnRpZmljYXRlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCBmNWYxYTM4NmIxZTI1MmI0YWQxMDNiOTM0MDZhNmJjYTU3NWVkYzQ3Li5iNmQxNjg0
ZjRhZWEwOTY5NzgzN2U1NzJmMzdhYjA1NzkyNmM2MjM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTEyMjQsNiArMTIyNCw4IEBAIHdlYmtpdC5vcmcvYi8xNzJmMjEgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvZ2V0c3RhdHMuaHRtbCBbIEZhaWx1CiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tb2ZmZXIuaHRtbCBbIEZhaWx1cmUg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2
ZXIuaHR0cHMuaHRtbCBbIEZhaWx1cmUgXQorIyBTa2lwIHRpbWluZyBvdXQgdGVzdAoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVt
b3RlRGVzY3JpcHRpb24tdHJhY2tzLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAogIyBVc2VzIGxlZ2Fj
eSBXZWJSVEMgQVBJLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcnRj
cGVlcmNvbm5lY3Rpb24vc2V0UmVtb3RlRGVzY3JpcHRpb24uaHRtbCBbIFNraXAgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tcmVwbGFjZVRyYWNrLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXJlcGxhY2VU
cmFjay5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZWY5NjM2YzRiYzMwZGNlZGI5N2U2MmUzYTc0
NTI1MjZiM2Y3OTYwYy4uNDQ4YTkzYjc0MTY1OGUwNGU2ZTcxMjc5NzE5NDZjNTMwNDVhYTMzZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tcmVwbGFjZVRyYWNr
Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlv
bi1yZXBsYWNlVHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDcgQEAKIAotSGFy
bmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgcmVwbGFjZVRyYWNr
KCkgc2V0cyB0aGUgdHJhY2sgYXR0cmlidXRlIHRvIGEgbmV3IHRyYWNrLiAKIFBBU1MgcmVwbGFj
ZVRyYWNrKCkgc2V0cyB0aGUgdHJhY2sgYXR0cmlidXRlIHRvIG51bGwuIAogUEFTUyByZXBsYWNl
VHJhY2soKSBkb2VzIG5vdCBzZXQgdGhlIHRyYWNrIHN5bmNocm9ub3VzbHkuIAogUEFTUyByZXBs
YWNlVHJhY2soKSByZWplY3RzIHdoZW4gdGhlIHBlZXIgY29ubmVjdGlvbiBpcyBjbG9zZWQuIAot
RkFJTCByZXBsYWNlVHJhY2soKSByZWplY3RzIHdoZW4gaW52b2tlZCBhZnRlciByZW1vdmVUcmFj
aygpLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIiBi
dXQgZ290ICJJbnZhbGlkU3RhdGVFcnJvciIKLVRJTUVPVVQgcmVwbGFjZVRyYWNrKCkgcmVqZWN0
cyBhZnRlciBhIHN1YnNlcXVlbnQgcmVtb3ZlVHJhY2soKS4gVGVzdCB0aW1lZCBvdXQKK1BBU1Mg
cmVwbGFjZVRyYWNrKCkgcmVqZWN0cyB3aGVuIGludm9rZWQgYWZ0ZXIgcmVtb3ZlVHJhY2soKS4g
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXJlcGxhY2VU
cmFjay5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tcmVwbGFj
ZVRyYWNrLmh0dHBzLmh0bWwKaW5kZXggNmM5OGVhZTUyY2Q0Y2U3ODc2NTY3MWNjYmVhOWViZTUy
M2JkZTE3Zi4uZDNjYzI5MDRmOTU1NTRjYzMxYzQ0Y2Q3ZjA4Njk5Mjc4OTk0MzkwYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tcmVwbGFjZVRyYWNrLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tcmVwbGFjZVRyYWNr
Lmh0dHBzLmh0bWwKQEAgLTg1LDU4ICs4NSwxNyBAQAogICAgIH0pKTsKICAgfSwgJ3JlcGxhY2VU
cmFjaygpIHJlamVjdHMgd2hlbiB0aGUgcGVlciBjb25uZWN0aW9uIGlzIGNsb3NlZC4nKTsKIAot
ICBhc3luY190ZXN0KHQgPT4geworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29u
c3QgZXhwZWN0ZWRFeGNlcHRpb24gPSAnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJzsKICAgICBj
b25zdCBjYWxsZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IGNhbGxlci5jbG9zZSgpKTsKLSAgICByZXR1cm4gZ2V0VXNlck1lZGlhVHJhY2tzQW5k
U3RyZWFtcygyKQotICAgIC50aGVuKHQuc3RlcF9mdW5jKChbdHJhY2tzLCBzdHJlYW1zXSkgPT4g
ewotICAgICAgY29uc3Qgc2VuZGVyID0gY2FsbGVyLmFkZFRyYWNrKHRyYWNrc1swXSwgc3RyZWFt
c1swXSk7Ci0gICAgICBjYWxsZXIucmVtb3ZlVHJhY2soc2VuZGVyKTsKLSAgICAgIC8vIHJlcGxh
Y2VUcmFjaygpIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHNlbmRlciBzaG91bGQgYmUgaW5hY3Rp
dmUgYWZ0ZXIKLSAgICAgIC8vIHJlbW92ZVRyYWNrKCkuCi0gICAgICByZXR1cm4gc2VuZGVyLnJl
cGxhY2VUcmFjayh0cmFja3NbMV0pCi0gICAgICAudGhlbih0LnN0ZXBfZnVuYygoKSA9PiB7Ci0g
ICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ0V4cGVjdGVkIHJlcGxhY2VUcmFjaygpIHRvIGJlIHJl
amVjdGVkIHdpdGggJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRFeGNlcHRp
b24gKyAnIGJ1dCB0aGUgcHJvbWlzZSB3YXMgcmVzb2x2ZWQuJyk7Ci0gICAgICB9KSwKLSAgICAg
IHQuc3RlcF9mdW5jKGUgPT4gewotICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgZXhwZWN0
ZWRFeGNlcHRpb24pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICAgIH0pKTsKLSAgICB9KSkKLSAg
ICAuY2F0Y2godC5zdGVwX2Z1bmMocmVhc29uID0+IHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQo
cmVhc29uKTsKLSAgICB9KSk7CisgICAgY29uc3QgW3RyYWNrcywgc3RyZWFtc10gPSBhd2FpdCBn
ZXRVc2VyTWVkaWFUcmFja3NBbmRTdHJlYW1zKDIpOworICAgIGNvbnN0IHNlbmRlciA9IGNhbGxl
ci5hZGRUcmFjayh0cmFja3NbMF0sIHN0cmVhbXNbMF0pOworICAgIGNhbGxlci5yZW1vdmVUcmFj
ayhzZW5kZXIpOworICAgIGF3YWl0IHNlbmRlci5yZXBsYWNlVHJhY2sodHJhY2tzWzFdKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHNlbmRlci50cmFjaywgdHJhY2tzWzFdLCAiTWFrZSBzdXJlIHRyYWNr
IGdldHMgdXBkYXRlZCIpOwogICB9LCAncmVwbGFjZVRyYWNrKCkgcmVqZWN0cyB3aGVuIGludm9r
ZWQgYWZ0ZXIgcmVtb3ZlVHJhY2soKS4nKTsKIAotICBhc3luY190ZXN0KHQgPT4gewotICAgIGNv
bnN0IGV4cGVjdGVkRXhjZXB0aW9uID0gJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcic7Ci0gICAg
Y29uc3QgY2FsbGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7Ci0gICAgcmV0dXJuIGdldFVzZXJNZWRpYVRyYWNrc0Fu
ZFN0cmVhbXMoMikKLSAgICAudGhlbih0LnN0ZXBfZnVuYygoW3RyYWNrcywgc3RyZWFtc10pID0+
IHsKLSAgICAgIGNvbnN0IHNlbmRlciA9IGNhbGxlci5hZGRUcmFjayh0cmFja3NbMF0sIHN0cmVh
bXNbMF0pOwotICAgICAgbGV0IHAgPSBzZW5kZXIucmVwbGFjZVRyYWNrKHRyYWNrc1sxXSkKLSAg
ICAgIGNhbGxlci5yZW1vdmVUcmFjayhzZW5kZXIpOwotICAgICAgLy8gcmVwbGFjZVRyYWNrKCkg
c2hvdWxkIGZhaWwgYmVjYXVzZSBpdCBleGVjdXRlcyBzdGVwcyBpbiBwYXJhbGxlbCBhbmQKLSAg
ICAgIC8vIHF1ZXVlcyBhIHRhc2sgdG8gZXhlY3V0ZSBhZnRlciByZW1vdmVUcmFjaygpIGhhcyBv
Y2N1cnJlZC4gVGhlIHNlbmRlcgotICAgICAgLy8gc2hvdWxkIGJlIGluYWN0aXZlLiBJZiB0aGlz
IGNhbiBiZSByYWN5LCB1cGRhdGUgb3IgcmVtb3ZlIHRoZSB0ZXN0LgotICAgICAgLy8gaHR0cHM6
Ly9naXRodWIuY29tL3czYy93ZWJydGMtcGMvaXNzdWVzLzE3MjgKLSAgICAgIHJldHVybiBwLnRo
ZW4odC5zdGVwX2Z1bmMoKCkgPT4gewotICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdFeHBlY3Rl
ZCByZXBsYWNlVHJhY2soKSB0byBiZSByZWplY3RlZCB3aXRoICcgKwotICAgICAgICAgICAgICAg
ICAgICAgICAgIGV4cGVjdGVkRXhjZXB0aW9uICsgJyBidXQgdGhlIHByb21pc2Ugd2FzIHJlc29s
dmVkLicpOwotICAgICAgfSksCi0gICAgICB0LnN0ZXBfZnVuYyhlID0+IHsKLSAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLm5hbWUsIGV4cGVjdGVkRXhjZXB0aW9uKTsKLSAgICAgICAgdC5kb25lKCk7
Ci0gICAgICB9KSk7Ci0gICAgfSkpCi0gICAgLmNhdGNoKHQuc3RlcF9mdW5jKHJlYXNvbiA9PiB7
Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKHJlYXNvbik7Ci0gICAgfSkpOwotICB9LCAncmVwbGFj
ZVRyYWNrKCkgcmVqZWN0cyBhZnRlciBhIHN1YnNlcXVlbnQgcmVtb3ZlVHJhY2soKS4nKTsKLQog
ICAvLyBUT0RPKGhib3MpOiBWZXJpZnkgdGhhdCByZXBsYWNlVHJhY2soKSBjaGFuZ2VzIHdoYXQg
bWVkaWEgaXMgcmVjZWl2ZWQgb24KICAgLy8gdGhlIHJlbW90ZSBlbmQgb2YgdHdvIGNvbm5lY3Rl
ZCBwZWVyIGNvbm5lY3Rpb25zLiBGb3IgdmlkZW8gdHJhY2tzLCB0aGlzCiAgIC8vIHJlcXVpcmVz
IENocm9taXVtJ3MgdmlkZW8gdGFnIHRvIHVwZGF0ZSBvbiByZWNlaXZpbmcgZnJhbWVzIHdoZW4g
cnVubmluZwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>353847</attachid>
            <date>2018-11-05 03:39:18 -0800</date>
            <delta_ts>2018-11-05 03:39:18 -0800</delta_ts>
            <desc>Test script 2 with sender.replaceTrack(null)</desc>
            <filename>pc-replaceTrack-null-does-not-let-seting-direction-inactive.js</filename>
            <type>text/javascript</type>
            <size>1496</size>
            <attacher name="Iñaki Baz">ibc</attacher>
            
              <data encoding="base64">bGV0IG1pY1RyYWNrMTsKbGV0IG1pY1RyYWNrMjsKbGV0IHBjOwpsZXQgbWljVHJhbnNjZWl2ZXI7
CgpQcm9taXNlLnJlc29sdmUoKQogIC50aGVuKCgpID0+IG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWUgfSkpCiAgLnRoZW4oKHN0cmVhbSkgPT4gKG1pY1Ry
YWNrMSA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdKSkKICAudGhlbigoKSA9PiBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB0cnVlIH0pKQogIC50aGVuKChz
dHJlYW0pID0+IChtaWNUcmFjazIgPSBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSkpCiAgLnRo
ZW4oKCkgPT4KICB7CiAgICBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigKICAgICAgewogICAg
ICAgIGljZVNlcnZlcnMgICAgOiBbXSwKICAgICAgICBidW5kbGVQb2xpY3kgIDogJ21heC1idW5k
bGUnLAogICAgICAgIHJ0Y3BNdXhQb2xpY3kgOiAncmVxdWlyZScsCiAgICAgICAgc2RwU2VtYW50
aWNzICA6ICd1bmlmaWVkLXBsYW4nIC8vIE5vdCBuZWVkZWQgaW4gU2FmYXJpCiAgICAgIH0pOwoK
ICAgIGNvbnNvbGUud2FybigncGM6IGFkZGluZyBtaWMgdHJhY2sgMScpOwoKICAgIG1pY1RyYW5z
Y2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIobWljVHJhY2sxLCB7IGRpcmVjdGlvbjogJ3NlbmRv
bmx5JyB9KTsKICB9KQogIC50aGVuKCgpID0+IGRvU2RwU3R1ZmYoKSkKICAudGhlbigoKSA9Pgog
IHsKICAgIGNvbnNvbGUud2FybigncGM6IHJlbW92aW5nIG1pYyB0cmFjayAxJyk7CgogICAgcmV0
dXJuIG1pY1RyYW5zY2VpdmVyLnNlbmRlci5yZXBsYWNlVHJhY2sobnVsbCk7CiAgfSkKICAudGhl
bigoKSA9PgogIHsKICAgIG1pY1RyYW5zY2VpdmVyLmRpcmVjdGlvbiA9ICdpbmFjdGl2ZSc7CiAg
fSkKICAudGhlbigoKSA9PiBkb1NkcFN0dWZmKCkpCiAgLnRoZW4oKCkgPT4KICB7CiAgICBjb25z
b2xlLndhcm4oJ3BjOiBhZGRpbmcgbWljIHRyYWNrIDIgaW4gc2FtZSB0cmFuc2NlaXZlcicpOwoK
ICAgIHJldHVybiBtaWNUcmFuc2NlaXZlci5zZW5kZXIucmVwbGFjZVRyYWNrKG1pY1RyYWNrMik7
CiAgfSkKICAudGhlbigoKSA9PgogIHsKICAgIG1pY1RyYW5zY2VpdmVyLmRpcmVjdGlvbiA9ICdz
ZW5kb25seSc7CiAgfSkKICAudGhlbigoKSA9PiBkb1NkcFN0dWZmKCkpCiAgLmNhdGNoKChlcnJv
cikgPT4KICB7CiAgICBjb25zb2xlLmVycm9yKGVycm9yKTsKICB9KTsKCmZ1bmN0aW9uIGRvU2Rw
U3R1ZmYoKQp7CiAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKCkKICAgIC50aGVuKChvZmZlcikgPT4K
ICAgIHsKICAgICAgY29uc29sZS53YXJuKCdwYy5jcmVhdGVPZmZlcigpIHN1Y2NlZWRlZDpcbiVz
Jywgb2ZmZXIuc2RwKTsKICAgIH0pCiAgICAuY2F0Y2goKGVycm9yKSA9PgogICAgewogICAgICBj
b25zb2xlLmVycm9yKCdwYy5jcmVhdGVPZmZlcigpIGZhaWxlZCcpOwoKICAgICAgdGhyb3cgZXJy
b3I7CiAgICB9KTsKfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>