<?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>180680</bug_id>
          
          <creation_ts>2017-12-11 16:36:40 -0800</creation_ts>
          <short_desc>Allow AudioContext to start when getUserMedia is on</short_desc>
          <delta_ts>2018-09-05 00:02:27 -0700</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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=180522</see_also>
          <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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>ben.browitt</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1380461</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-11 16:36:40 -0800</bug_when>
    <thetext>Allow AudioContext to start when getUserMedia is on</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380464</commentid>
    <comment_count>1</comment_count>
      <attachid>329057</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-11 16:38:21 -0800</bug_when>
    <thetext>Created attachment 329057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380681</commentid>
    <comment_count>2</comment_count>
      <attachid>329057</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-12 09:26:38 -0800</bug_when>
    <thetext>Comment on attachment 329057
Patch

Clearing flags on attachment: 329057

Committed r225785: &lt;https://trac.webkit.org/changeset/225785&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380682</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-12 09:26:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380683</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-12 09:27:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/35995701&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456296</commentid>
    <comment_count>5</comment_count>
    <who name="Ben">ben.browitt</who>
    <bug_when>2018-09-04 06:14:00 -0700</bug_when>
    <thetext>With this fix we could autoplay a video element that has audio as long as the user previously approved a getUserMedia request.

In current Safari stable on desktop it&apos;s not enough to approve a getUserMedia request in the beginning of the session. The user has to actively capture mic or webcam to make video autoplay work.
This a regression. In our app we have one user broadcasting and several viewers. Capturing their mic just to make autoplay work doesn&apos;t make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456310</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-09-04 08:33:34 -0700</bug_when>
    <thetext>&gt; In current Safari stable on desktop it&apos;s not enough to approve a
&gt; getUserMedia request in the beginning of the session. The user has to
&gt; actively capture mic or webcam to make video autoplay work.
&gt; This a regression. In our app we have one user broadcasting and several
&gt; viewers. Capturing their mic just to make autoplay work doesn&apos;t make sense.

The principle is that a user should make a gesture to activate sound.
It can be the getUserMedia prompt, it can also be a click on a video element, play button, &quot;activate sound&quot; button.
Once a page is producing audio content, other video elements should autoplay.

I am not sure what your exact request is and what the regression you are pointing at is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456365</commentid>
    <comment_count>7</comment_count>
    <who name="Ben">ben.browitt</who>
    <bug_when>2018-09-04 10:33:30 -0700</bug_when>
    <thetext>I&apos;m creating AudioContext and playing it as a response of user gesture. I can hear the noise from the AudioContext but later when I&apos;m trying to autoplay a video element with audio it is muted unless I&apos;m actively capturing the local mic/cam. 

This is the callback of click event to enable audio:

enableAudio() {
  let audioContext = &apos;AudioContext&apos; in window ? new AudioContext() : new window.webkitAudioContext();
  // create 2 seconds buffer
  let buffer = audioContext.createBuffer(2, audioContext.sampleRate*2, audioContext.sampleRate);
  
  // create noise
  for (var channel = 0; channel &lt; 2; channel++) {
    // This gives us the actual ArrayBuffer that contains the data
    var nowBuffering = buffer.getChannelData(channel);
    for (var i = 0; i &lt; audioContext.sampleRate*2; i++) {
      // Math.random() is in [0; 1.0]
      // audio needs to be in [-1.0; 1.0]
      nowBuffering[i] = Math.random() * 2 - 1;
    }
  }

  let source = audioContext.createBufferSource();
  source.buffer = buffer;
  source.connect(audioContext.destination);
  source.start(0);

  // create a PeerConnection and try to autoplay remote video+audio
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456377</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-09-04 11:10:09 -0700</bug_when>
    <thetext>To summarize, your issue is:
- AudioContext is started on user click and produces audio
- video element is being added later on and will not autoplay even though web audio is producing audio

There are two workarounds I can think of right now:
- play the audio of the video element through AudioContext instead of video elements
- When AudioContext is being clicked, call play() on the video element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456654</commentid>
    <comment_count>9</comment_count>
    <who name="Ben">ben.browitt</who>
    <bug_when>2018-09-05 00:02:27 -0700</bug_when>
    <thetext>Thank you for the workaround. Mixing all the audio and playing with a single AudioContext work with WebRTC streams but I think will break lip sync.
It also doesn&apos;t help with autoplay HLS and YouTube videos on the web conference.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329057</attachid>
            <date>2017-12-11 16:38:21 -0800</date>
            <delta_ts>2017-12-12 09:26:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180680-20171211163820.patch</filename>
            <type>text/plain</type>
            <size>5863</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjI4MDNlNDgwNjU4ODRh
NzI2ZDQ2MTU5ODhhOTYyZTYyZjBmY2MxMi4uMWI3YmU5YmI3N2VjMWFkMjk4ZjI4NWVkMGRlOGM2
N2M5OWFkOGEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDE3LTEyLTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBBbGxvdyBBdWRpb0NvbnRl
eHQgdG8gc3RhcnQgd2hlbiBnZXRVc2VyTWVkaWEgaXMgb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDY4MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHdlYnJ0Yy9nZXRVc2VyTWVkaWEtd2Vi
YXVkaW8tYXV0b3BsYXkuaHRtbAorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0Ojp3aWxsQmVnaW5QbGF5
YmFjayk6CisKKzIwMTctMTItMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CiAgICAgICAgIFBsYXlpbmcgd2VicnRjIHZpZGVvIHRyYWNrcyBzaG91bGQgcHJldmVudCBmcm9t
IGRpc3BsYXkgdG8gZ290IHRvIHNsZWVwCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODA2NjYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IGExMTAxYWU4ZTg4Y2VjZWUxM2E3ZTc5ZTg2
YzVjODgyNDFmMDFjODAuLmU1NzMyZGMyN2ZiYjIyYWVhYjk0YWVmYTgzNDRhNmM1NmZhOTk5YWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5j
cHAKQEAgLTk4NCw3ICs5ODQsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6bm9kZVdpbGxCZWdpblBs
YXliYWNrKCkKIGJvb2wgQXVkaW9Db250ZXh0Ojp3aWxsQmVnaW5QbGF5YmFjaygpCiB7CiAgICAg
aWYgKHVzZXJHZXN0dXJlUmVxdWlyZWRGb3JBdWRpb1N0YXJ0KCkpIHsKLSAgICAgICAgaWYgKCFw
cm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgICAgICBpZiAoIXByb2Nlc3NpbmdV
c2VyR2VzdHVyZUZvck1lZGlhKCkgJiYgIWRvY3VtZW50KCktPmlzQ2FwdHVyaW5nKCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24o
QXVkaW9Db250ZXh0OjpSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1N0YXJ0UmVzdHJpY3Rpb24p
OwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA4YTJhZDkzY2QwNzNmZGQwNjJjZWJlMTFkMzIwMzEwMTgzZWE2NWNm
Li44YWEwZWM5ZDdmMzFmZWE1ODNiMDNjNmI3M2UxYTViM2Q0ZmQxMWNhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTctMTItMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFsbG93IEF1ZGlvQ29udGV4dCB0byBzdGFydCB3aGVuIGdldFVzZXJNZWRpYSBp
cyBvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgw
NjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
ZWJydGMvZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLWF1dG9wbGF5LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2VicnRjL2dldFVzZXJNZWRpYS13ZWJhdWRpby1hdXRvcGxheS5odG1sOiBB
ZGRlZC4KKwogMjAxNy0xMi0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgU2VydmljZSBXb3JrZXIgc2hvdWxkIHVzZSBhIGNvcnJlY3QgdXNlciBhZ2VudApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2dldFVzZXJNZWRpYS13ZWJhdWRpby1hdXRv
cGxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvZ2V0VXNlck1lZGlhLXdlYmF1
ZGlvLWF1dG9wbGF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzMzNTM0OGU4MTNjNWZjOTIz
NDRkNjdmZTU0ZDMyOTFiMjk1ZTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
cnRjL2dldFVzZXJNZWRpYS13ZWJhdWRpby1hdXRvcGxheS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2IEBACisKK1BBU1MgRW5zdXJpbmcgYXV0b3BsYXkgZG9lcyBub3Qgd29yayB3aGVuIHN0YXJ0
aW5nIGFuIGF1ZGlvIG5vZGUgYW5kIGdldFVzZXJNZWRpYSBpcyBvZmYgCitQQVNTIEVuc3VyaW5n
IGF1dG9wbGF5IHdvcmtzIHdoZW4gcmVzdW1pbmcgYXVkaW8gY29udGV4dCBhbmQgZ2V0VXNlck1l
ZGlhIGlzIG9mZiAKK1BBU1MgRW5zdXJpbmcgYXV0b3BsYXkgd29ya3Mgd2hlbiBzdGFydGluZyBh
biBhdWRpbyBub2RlIGFuZCBnZXRVc2VyTWVkaWEgaXMgb24gCitQQVNTIEVuc3VyaW5nIGF1dG9w
bGF5IHdvcmtzIHdoZW4gcmVzdW1pbmcgYXVkaW8gY29udGV4dCBhbmQgZ2V0VXNlck1lZGlhIGlz
IG9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvZ2V0VXNlck1lZGlhLXdlYmF1
ZGlvLWF1dG9wbGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvZ2V0VXNlck1lZGlhLXdlYmF1
ZGlvLWF1dG9wbGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIzZTdhOTM5YzMzNDIzOTRlMGM2ZmI4MDUz
Yjk4NmU2MDFhZTUyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9nZXRV
c2VyTWVkaWEtd2ViYXVkaW8tYXV0b3BsYXkuaHRtbApAQCAtMCwwICsxLDczIEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIHdlYmF1ZGlvIGF1dG9wbGF5IGluIGNhc2Ugb2Yg
Y2FtZXJhIGNhcHR1cmU8L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5PgorICAgICAgICA8c2NyaXB0PgordGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0X3RydWUoISF3
aW5kb3cuaW50ZXJuYWxzLCAiVGVzdCByZXF1aXJlcyBpbnRlcm5hbHMgQVBJIik7CisKKyAgICB2
YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICBpbnRlcm5hbHMuc2V0
QXVkaW9Db250ZXh0UmVzdHJpY3Rpb25zKGNvbnRleHQsICdSZXF1aXJlVXNlckdlc3R1cmVGb3JB
dWRpb1N0YXJ0Jyk7CisKKyAgICB2YXIgbm9kZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNl
KCk7CisgICAgbm9kZS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworICAgIG5vZGUuc3Rh
cnQoKTsKK30sICJFbnN1cmluZyBhdXRvcGxheSBkb2VzIG5vdCB3b3JrIHdoZW4gc3RhcnRpbmcg
YW4gYXVkaW8gbm9kZSBhbmQgZ2V0VXNlck1lZGlhIGlzIG9mZiIpOworCitwcm9taXNlX3Rlc3Qo
KHRlc3QpID0+IHsKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHJldHVybiBQ
cm9taXNlLnJlamVjdCgiVGVzdCByZXF1aXJlcyBpbnRlcm5hbHMgQVBJIik7CisKKyAgICB2YXIg
Y29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICBpbnRlcm5hbHMuc2V0QXVk
aW9Db250ZXh0UmVzdHJpY3Rpb25zKGNvbnRleHQsICdSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRp
b1N0YXJ0Jyk7CisKKyAgICB2YXIgbm9kZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7
CisgICAgbm9kZS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgdmFyIHJlc29s
dmUsIHJlamVjdDsKKyAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4g
eworICAgICAgICByZXNvbHZlID0gcmVzOworICAgICAgICByZWplY3QgPSByZWo7CisgICAgfSk7
CisgICAgY29udGV4dC5yZXN1bWUoKS50aGVuKCgpID0+IHsKKyAgICAgICAgcmVqZWN0KCJjb250
ZXh0IHNob3VsZCBub3QgaGF2ZSByZXN1bWVkIik7CisgICAgfSk7CisgICAgc2V0VGltZW91dCgo
KSA9PiB7CisgICAgICAgIHJlc29sdmUoKTsKKyAgICB9LCA1MCk7CisgICAgcmV0dXJuIHByb21p
c2U7Cit9LCAiRW5zdXJpbmcgYXV0b3BsYXkgd29ya3Mgd2hlbiByZXN1bWluZyBhdWRpbyBjb250
ZXh0IGFuZCBnZXRVc2VyTWVkaWEgaXMgb2ZmIik7CisKK3Byb21pc2VfdGVzdCgodGVzdCkgPT4g
eworICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVq
ZWN0KCJUZXN0IHJlcXVpcmVzIGludGVybmFscyBBUEkiKTsKKyAgICByZXR1cm4gbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSkudGhlbigoc3RyZWFtKSA9
PiB7CisgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAg
ICAgICBpbnRlcm5hbHMuc2V0QXVkaW9Db250ZXh0UmVzdHJpY3Rpb25zKGNvbnRleHQsICdSZXF1
aXJlVXNlckdlc3R1cmVGb3JBdWRpb1N0YXJ0Jyk7CisKKyAgICAgICAgdmFyIG5vZGUgPSBjb250
ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBub2RlLmNvbm5lY3QoY29udGV4dC5k
ZXN0aW5hdGlvbik7CisgICAgICAgIG5vZGUuc3RhcnQoKTsKKyAgICB9KTsKK30sICJFbnN1cmlu
ZyBhdXRvcGxheSB3b3JrcyB3aGVuIHN0YXJ0aW5nIGFuIGF1ZGlvIG5vZGUgYW5kIGdldFVzZXJN
ZWRpYSBpcyBvbiIpOworCitwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICBpZiAoIXdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgiVGVzdCByZXF1aXJl
cyBpbnRlcm5hbHMgQVBJIik7CisgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pLnRoZW4oKHN0cmVhbSkgPT4geworICAgICAgICB2YXIg
Y29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNl
dEF1ZGlvQ29udGV4dFJlc3RyaWN0aW9ucyhjb250ZXh0LCAnUmVxdWlyZVVzZXJHZXN0dXJlRm9y
QXVkaW9TdGFydCcpOworCisgICAgICAgIHZhciBub2RlID0gY29udGV4dC5jcmVhdGVCdWZmZXJT
b3VyY2UoKTsKKyAgICAgICAgbm9kZS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworICAg
ICAgICByZXR1cm4gY29udGV4dC5yZXN1bWUoKTsKKyAgICB9KTsKK30sICJFbnN1cmluZyBhdXRv
cGxheSB3b3JrcyB3aGVuIHJlc3VtaW5nIGF1ZGlvIGNvbnRleHQgYW5kIGdldFVzZXJNZWRpYSBp
cyBvbiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>