<?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>180666</bug_id>
          
          <creation_ts>2017-12-11 12:45:21 -0800</creation_ts>
          <short_desc>Playing WebRTC video tracks should prevent from display to going to sleep</short_desc>
          <delta_ts>2017-12-12 18:09:26 -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>Web Audio</component>
          <version>WebKit Nightly Build</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1380348</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-11 12:45:21 -0800</bug_when>
    <thetext>Playing webrtc video tracks should prevent from display to got to sleep.
Current strategy is based on video elements having both audio and video.
For webrtc, the audio might be rendered outside the video element (in another audio element or with web audio for instance).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380358</commentid>
    <comment_count>1</comment_count>
      <attachid>329021</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-11 13:08:11 -0800</bug_when>
    <thetext>Created attachment 329021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380571</commentid>
    <comment_count>2</comment_count>
      <attachid>329021</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-12-11 22:40:17 -0800</bug_when>
    <thetext>Comment on attachment 329021
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=329021&amp;action=review

&gt; Source/WebCore/html/HTMLMediaElement.cpp:6634
&gt; +    // In case of remote media stream video tracks, audio might be rendered outside the corresponding video element.

This comment is mysterious. The code below says that if there is a non-capture, non-canvas video track it should prevent sleep. Is the reason it prevents sleep is that it *might* be playing audio? That really doesn’t explain things well to me.

The comment here should explain why the code below implements the correct rule, and I don’t think the comment does that. Generally speaking it seems we have risky behavior here, where we prevent sleep just because something *might* be audible or visible. That’s not so great, and hard to understand.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:6638
&gt; +    bool hasRemoteMediaStreamVideoTrack = m_mediaStreamSrcObject &amp;&amp; WTF::anyOf(m_mediaStreamSrcObject-&gt;getTracks(), [] (auto&amp; track) {
&gt; +        return track-&gt;privateTrack().type() == RealtimeMediaSource::Type::Video &amp;&amp; !track-&gt;isCaptureTrack() &amp;&amp; !track-&gt;isCanvas();
&gt; +    });
&gt; +    shouldBeAbleToSleep = shouldBeAbleToSleep &amp;&amp; !hasRemoteMediaStreamVideoTrack;

Seems wasteful to do this computation if shouldBeAbleToSleep is already false. Making this a lambda could fix that.

    shouldBeAbleToSleep = shouldBeAbleToSleep &amp;&amp; !([m_mediaStreamSrcObject] {
        return m_mediaStreamSrcObject &amp;&amp; WTF::anyOf(m_mediaStreamSrcObject-&gt;getTracks(), [] (auto&amp; track) {
            return track-&gt;privateTrack().type() == RealtimeMediaSource::Type::Video &amp;&amp; !track-&gt;isCaptureTrack() &amp;&amp; !track-&gt;isCanvas();
        });
    }());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380931</commentid>
    <comment_count>3</comment_count>
      <attachid>329174</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-12 16:15:08 -0800</bug_when>
    <thetext>Created attachment 329174
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380932</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-12 16:20:27 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 329021 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=329021&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:6634
&gt; &gt; +    // In case of remote media stream video tracks, audio might be rendered outside the corresponding video element.
&gt; 
&gt; This comment is mysterious. The code below says that if there is a
&gt; non-capture, non-canvas video track it should prevent sleep. Is the reason
&gt; it prevents sleep is that it *might* be playing audio? That really doesn’t
&gt; explain things well to me.

I tried to beef up the comment here.
I also added a isRemoteMediaStreamVideoTrack helper function to make the intent clearer.

In WebRTC land, we may have multiple video streams coming in, some only video, some only audio. Ideally, we would reason about all of these as a whole with something like: this web page is playing video in a visible element and audio, so let&apos;s not idle the screen. But this is prone to regression.
Hence the minimal fix here: dedicated to webrtc and based on a single media element.

&gt; 
&gt; The comment here should explain why the code below implements the correct
&gt; rule, and I don’t think the comment does that. Generally speaking it seems
&gt; we have risky behavior here, where we prevent sleep just because something
&gt; *might* be audible or visible. That’s not so great, and hard to understand.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:6638
&gt; &gt; +    bool hasRemoteMediaStreamVideoTrack = m_mediaStreamSrcObject &amp;&amp; WTF::anyOf(m_mediaStreamSrcObject-&gt;getTracks(), [] (auto&amp; track) {
&gt; &gt; +        return track-&gt;privateTrack().type() == RealtimeMediaSource::Type::Video &amp;&amp; !track-&gt;isCaptureTrack() &amp;&amp; !track-&gt;isCanvas();
&gt; &gt; +    });
&gt; &gt; +    shouldBeAbleToSleep = shouldBeAbleToSleep &amp;&amp; !hasRemoteMediaStreamVideoTrack;
&gt; 
&gt; Seems wasteful to do this computation if shouldBeAbleToSleep is already
&gt; false. Making this a lambda could fix that.
&gt; 
&gt;     shouldBeAbleToSleep = shouldBeAbleToSleep &amp;&amp; !([m_mediaStreamSrcObject] {
&gt;         return m_mediaStreamSrcObject &amp;&amp;
&gt; WTF::anyOf(m_mediaStreamSrcObject-&gt;getTracks(), [] (auto&amp; track) {
&gt;             return track-&gt;privateTrack().type() ==
&gt; RealtimeMediaSource::Type::Video &amp;&amp; !track-&gt;isCaptureTrack() &amp;&amp;
&gt; !track-&gt;isCanvas();
&gt;         });
&gt;     }());


I updated the code by &amp;&amp;ing shouldBeAbleToSleep upfront instead of after the computation of hasRemoteMediaStreamVideoTrack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380933</commentid>
    <comment_count>5</comment_count>
      <attachid>329175</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-12 16:25:07 -0800</bug_when>
    <thetext>Created attachment 329175
Fixing WPE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380950</commentid>
    <comment_count>6</comment_count>
      <attachid>329175</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-12 16:40:12 -0800</bug_when>
    <thetext>Comment on attachment 329175
Fixing WPE

Clearing flags on attachment: 329175

Committed r225822: &lt;https://trac.webkit.org/changeset/225822&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380951</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-12 16:40:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380952</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-12 16:41:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/36008948&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380979</commentid>
    <comment_count>9</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-12-12 17:34:02 -0800</bug_when>
    <thetext>This change broke the Apple Windows build:
https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/6539

C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6616): error C2065: &apos;MediaStreamTrack&apos;: undeclared identifier [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6616): error C2923: &apos;WTF::RefPtr&apos;: &apos;MediaStreamTrack&apos; is not a valid template type argument for parameter &apos;T&apos; [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6618): error C2662: &apos;T *WTF::RefPtr&lt;T&gt;::get(void) const&apos;: cannot convert &apos;this&apos; pointer from &apos;WTF::RefPtr&apos; to &apos;const WTF::RefPtr&lt;T&gt; &amp;&apos; [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
  C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6618): note: Reason: cannot convert from &apos;WTF::RefPtr&apos; to &apos;const WTF::RefPtr&lt;T&gt;&apos;
  C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6618): note: Conversion requires a second user-defined-conversion operator or constructor
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6619): error C3536: &apos;track&apos;: cannot be used before it is initialized [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6619): error C2227: left of &apos;-&gt;privateTrack&apos; must point to class/struct/union/generic type [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
  C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6619): note: type is &apos;int&apos;
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6619): error C2228: left of &apos;.type&apos; must have class/struct/union [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6619): error C2653: &apos;RealtimeMediaSource&apos;: is not a class or namespace name [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6619): error C2065: &apos;Video&apos;: undeclared identifier [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6619): error C2227: left of &apos;-&gt;isCaptureTrack&apos; must point to class/struct/union/generic type [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
  C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6619): note: type is &apos;int&apos;
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6619): error C2227: left of &apos;-&gt;isCanvas&apos; must point to class/struct/union/generic type [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
  C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\html/HTMLMediaElement.cpp(6619): note: type is &apos;int&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380991</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-12-12 17:57:49 -0800</bug_when>
    <thetext>Committed r225830: &lt;https://trac.webkit.org/changeset/225830&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380992</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-12-12 17:58:28 -0800</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #9)
&gt; This change broke the Apple Windows build:
&gt; https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/
&gt; 6539

Should be fixed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380993</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-12-12 18:01:36 -0800</bug_when>
    <thetext>BTW Youenn, you might want to look at bug #180197. The HTMLMediaElement sleep disabling code definitely does not work properly for GTK, though I suppose it&apos;s possible there are platform-specific differences that could be at play.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380996</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-12 18:09:26 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #11)
&gt; (In reply to Ryan Haddad from comment #9)
&gt; &gt; This change broke the Apple Windows build:
&gt; &gt; https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/
&gt; &gt; 6539
&gt; 
&gt; Should be fixed now.

Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329021</attachid>
            <date>2017-12-11 13:08:11 -0800</date>
            <delta_ts>2017-12-12 16:15:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180666-20171211130811.patch</filename>
            <type>text/plain</type>
            <size>2253</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTA2MmZhNWVkMDkxYjRj
ZTU4NjQ1NGRkNDEyMmI4NGI4YmUzM2YzYS4uYjI4MDNlNDgwNjU4ODRhNzI2ZDQ2MTU5ODhhOTYy
ZTYyZjBmY2MxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTEyLTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQbGF5aW5nIHdlYnJ0YyB2
aWRlbyB0cmFja3Mgc2hvdWxkIHByZXZlbnQgZnJvbSBkaXNwbGF5IHRvIGdvdCB0byBzbGVlcAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNjY2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uZSB0aHJv
dWdoIG1hbnVhbCB0ZXN0aW5nIGJ5IGNoZWNraW5nIHNjcmVlbiBhc3NlcnRpb25zIHRha2VuIG9u
IHdlYnJ0YyBzaXRlcy4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzaG91bGREaXNhYmxlU2xlZXAgY29u
c3QpOgorCiAyMDE3LTEyLTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTZXJ2aWNlIFdvcmtlciBzaG91bGQgdXNlIGEgY29ycmVjdCB1c2VyIGFnZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBjYTk4MmU4Y2RkN2Ez
ZWZiN2IyYmI3NDk3YjE0ZmFkYmRhMGYyMjgzLi5hMDk0NzVhNDI4NmVkZTNiNjliYmZlOGJiMTA4
NjUzNDk1Zjk3ODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTY2MjksMTUgKzY2MjksMTYgQEAgSFRNTE1lZGlhRWxlbWVudDo6U2xlZXBUeXBlIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNob3VsZERpc2FibGVTbGVlcCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBT
bGVlcFR5cGU6OlN5c3RlbTsKICNlbmRpZgogCisgICAgYm9vbCBzaG91bGRCZUFibGVUb1NsZWVw
ID0gIWhhc1ZpZGVvKCkgfHwgIWhhc0F1ZGlvKCk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LSAgICBpZiAobV9tZWRpYVN0cmVhbVNyY09iamVjdCkgewotICAgICAgICAvLyBEbyBub3QgYmxv
Y2sgc3lzdGVtIGZyb20gc2xlZXBpbmcgaWYgZWxlbWVudCBpcyBvbmx5IHJlbmRlcmluZyBsb2Nh
bCAoY2FwdHVyZSkgc291cmNlcy4KLSAgICAgICAgaWYgKFdURjo6YWxsT2YobV9tZWRpYVN0cmVh
bVNyY09iamVjdC0+Z2V0VHJhY2tzKCksIFtdIChSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mIHRy
YWNrKSB7IHJldHVybiB0cmFjayAmJiB0cmFjay0+aXNDYXB0dXJlVHJhY2soKTsgfSkpCi0gICAg
ICAgICAgICByZXR1cm4gU2xlZXBUeXBlOjpOb25lOwotICAgIH0KKyAgICAvLyBJbiBjYXNlIG9m
IHJlbW90ZSBtZWRpYSBzdHJlYW0gdmlkZW8gdHJhY2tzLCBhdWRpbyBtaWdodCBiZSByZW5kZXJl
ZCBvdXRzaWRlIHRoZSBjb3JyZXNwb25kaW5nIHZpZGVvIGVsZW1lbnQuCisgICAgYm9vbCBoYXNS
ZW1vdGVNZWRpYVN0cmVhbVZpZGVvVHJhY2sgPSBtX21lZGlhU3RyZWFtU3JjT2JqZWN0ICYmIFdU
Rjo6YW55T2YobV9tZWRpYVN0cmVhbVNyY09iamVjdC0+Z2V0VHJhY2tzKCksIFtdIChhdXRvJiB0
cmFjaykgeworICAgICAgICByZXR1cm4gdHJhY2stPnByaXZhdGVUcmFjaygpLnR5cGUoKSA9PSBS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyAmJiAhdHJhY2stPmlzQ2FwdHVyZVRyYWNr
KCkgJiYgIXRyYWNrLT5pc0NhbnZhcygpOworICAgIH0pOworICAgIHNob3VsZEJlQWJsZVRvU2xl
ZXAgPSBzaG91bGRCZUFibGVUb1NsZWVwICYmICFoYXNSZW1vdGVNZWRpYVN0cmVhbVZpZGVvVHJh
Y2s7CiAjZW5kaWYKIAotICAgIGlmICghaGFzVmlkZW8oKSB8fCAhaGFzQXVkaW8oKSkKKyAgICBp
ZiAoc2hvdWxkQmVBYmxlVG9TbGVlcCkKICAgICAgICAgcmV0dXJuIFNsZWVwVHlwZTo6Tm9uZTsK
IAogICAgIGlmIChtX2VsZW1lbnRJc0hpZGRlbikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329174</attachid>
            <date>2017-12-12 16:15:08 -0800</date>
            <delta_ts>2017-12-12 16:25:06 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-180666-20171212161507.patch</filename>
            <type>text/plain</type>
            <size>2851</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1ODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTVlOTAxMjNjYWYxNmFh
NTY0YWMwMWZkOThiNmY5NjM0NDA3YzNhNS4uZjc4MWMwNWI3YzBjYmI1YzJmOWVkYjBiNzM2ZTU3
ZjJiNWZkZjFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDE3LTEyLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBQbGF5aW5nIHdlYnJ0YyB2
aWRlbyB0cmFja3Mgc2hvdWxkIHByZXZlbnQgZnJvbSBkaXNwbGF5IHRvIGdvdCB0byBzbGVlcAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNjY2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgRG9uZSB0aHJvdWdo
IG1hbnVhbCB0ZXN0aW5nIGJ5IGNoZWNraW5nIHNjcmVlbiBhc3NlcnRpb25zIHRha2VuIG9uIHdl
YnJ0YyBzaXRlcy4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzaG91bGREaXNhYmxlU2xlZXAgY29uc3Qp
OgorCisyMDE3LTEyLTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwogICAg
ICAgICBGZXRjaCBFdmVudCBoZWFkZXIgZmlsdGVyaW5nIHNob3VsZCBhcHBseSBpbiBDT1JTIG1v
ZGUgb25seQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgwNzA4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDUz
NGFhOWVjMzM1ZmQ5ZDM5ZjQzMTY2YmQ0NjQzNmYzMWY0ZTY3ZmIuLmQ4OWNhYzk0ZDg4NTAwNmFh
ZTgyNzg4NTExMDk0ODMwOGUxNWY3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcApAQCAtNjYxMyw2ICs2NjEzLDExIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
dXBkYXRlU2xlZXBEaXNhYmxpbmcoKQogICAgICAgICBtX3BsYXllci0+c2V0U2hvdWxkRGlzYWJs
ZVNsZWVwKHNob3VsZERpc2FibGVTbGVlcCA9PSBTbGVlcFR5cGU6OkRpc3BsYXkpOwogfQogCitz
dGF0aWMgaW5saW5lIGJvb2wgaXNSZW1vdGVNZWRpYVN0cmVhbVZpZGVvVHJhY2soUmVmUHRyPE1l
ZGlhU3RyZWFtVHJhY2s+JiB0cmFjaykKK3sKKyAgICByZXR1cm4gdHJhY2stPnByaXZhdGVUcmFj
aygpLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyAmJiAhdHJhY2st
PmlzQ2FwdHVyZVRyYWNrKCkgJiYgIXRyYWNrLT5pc0NhbnZhcygpOworfQorCiBIVE1MTWVkaWFF
bGVtZW50OjpTbGVlcFR5cGUgSFRNTE1lZGlhRWxlbWVudDo6c2hvdWxkRGlzYWJsZVNsZWVwKCkg
Y29uc3QKIHsKICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MDE5NyBiZWZvcmUgcmVtb3ZpbmcgdGhpcyBndWFyZC4KQEAgLTY2MjgsMTUgKzY2MzMs
MTQgQEAgSFRNTE1lZGlhRWxlbWVudDo6U2xlZXBUeXBlIEhUTUxNZWRpYUVsZW1lbnQ6OnNob3Vs
ZERpc2FibGVTbGVlcCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBTbGVlcFR5cGU6OlN5c3RlbTsK
ICNlbmRpZgogCisgICAgYm9vbCBzaG91bGRCZUFibGVUb1NsZWVwID0gIWhhc1ZpZGVvKCkgfHwg
IWhhc0F1ZGlvKCk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBpZiAobV9tZWRpYVN0
cmVhbVNyY09iamVjdCkgewotICAgICAgICAvLyBEbyBub3QgYmxvY2sgc3lzdGVtIGZyb20gc2xl
ZXBpbmcgaWYgZWxlbWVudCBpcyBvbmx5IHJlbmRlcmluZyBsb2NhbCAoY2FwdHVyZSkgc291cmNl
cy4KLSAgICAgICAgaWYgKFdURjo6YWxsT2YobV9tZWRpYVN0cmVhbVNyY09iamVjdC0+Z2V0VHJh
Y2tzKCksIFtdIChSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mIHRyYWNrKSB7IHJldHVybiB0cmFj
ayAmJiB0cmFjay0+aXNDYXB0dXJlVHJhY2soKTsgfSkpCi0gICAgICAgICAgICByZXR1cm4gU2xl
ZXBUeXBlOjpOb25lOwotICAgIH0KKyAgICAvLyBSZW1vdGUgbWVkaWEgc3RyZWFtIHZpZGVvIHRy
YWNrcyBtYXkgaGF2ZSB0aGVpciBjb3JyZXNwb25kaW5nIGF1ZGlvIHRyYWNrcyBiZWluZyBwbGF5
ZWQgb3V0c2lkZSBvZiB0aGUgbWVkaWEgZWxlbWVudC4gTGV0J3MgZW5zdXJlIHRvIG5vdCBJRExF
IHRoZSBzY3JlZW4gaW4gdGhhdCBjYXNlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY2hlY2sg
dGhhdCBhdWRpbyBpcyBiZWluZy90byBiZSBwbGF5ZWQuIElkZWFsbHksIHdlIHdvdWxkIGNvbWUg
dXAgd2l0aCBhIG1lZGlhIHN0cmVhbSBhZ25vc3RpYyBoZXVyaXN0aXNjLgorICAgIHNob3VsZEJl
QWJsZVRvU2xlZXAgPSBzaG91bGRCZUFibGVUb1NsZWVwICYmICEobV9tZWRpYVN0cmVhbVNyY09i
amVjdCAmJiBXVEY6OmFueU9mKG1fbWVkaWFTdHJlYW1TcmNPYmplY3QtPmdldFRyYWNrcygpLCBp
c1JlbW90ZU1lZGlhU3RyZWFtVmlkZW9UcmFjaykpOwogI2VuZGlmCiAKLSAgICBpZiAoIWhhc1Zp
ZGVvKCkgfHwgIWhhc0F1ZGlvKCkpCisgICAgaWYgKHNob3VsZEJlQWJsZVRvU2xlZXApCiAgICAg
ICAgIHJldHVybiBTbGVlcFR5cGU6Ok5vbmU7CiAKICAgICBpZiAobV9lbGVtZW50SXNIaWRkZW4p
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329175</attachid>
            <date>2017-12-12 16:25:07 -0800</date>
            <delta_ts>2017-12-12 16:40:12 -0800</delta_ts>
            <desc>Fixing WPE</desc>
            <filename>bug-180666-20171212162506.patch</filename>
            <type>text/plain</type>
            <size>2881</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1ODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTVlOTAxMjNjYWYxNmFh
NTY0YWMwMWZkOThiNmY5NjM0NDA3YzNhNS4uZjc4MWMwNWI3YzBjYmI1YzJmOWVkYjBiNzM2ZTU3
ZjJiNWZkZjFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDE3LTEyLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBQbGF5aW5nIHdlYnJ0YyB2
aWRlbyB0cmFja3Mgc2hvdWxkIHByZXZlbnQgZnJvbSBkaXNwbGF5IHRvIGdvdCB0byBzbGVlcAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNjY2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgRG9uZSB0aHJvdWdo
IG1hbnVhbCB0ZXN0aW5nIGJ5IGNoZWNraW5nIHNjcmVlbiBhc3NlcnRpb25zIHRha2VuIG9uIHdl
YnJ0YyBzaXRlcy4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzaG91bGREaXNhYmxlU2xlZXAgY29uc3Qp
OgorCisyMDE3LTEyLTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwogICAg
ICAgICBGZXRjaCBFdmVudCBoZWFkZXIgZmlsdGVyaW5nIHNob3VsZCBhcHBseSBpbiBDT1JTIG1v
ZGUgb25seQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgwNzA4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDUz
NGFhOWVjMzM1ZmQ5ZDM5ZjQzMTY2YmQ0NjQzNmYzMWY0ZTY3ZmIuLmZmN2MzYTZlNDA0ZDYwYmM5
ZGY2YzQ5NGIxZGVmOGRlZjE0YjU5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcApAQCAtNjYxMyw2ICs2NjEzLDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
dXBkYXRlU2xlZXBEaXNhYmxpbmcoKQogICAgICAgICBtX3BsYXllci0+c2V0U2hvdWxkRGlzYWJs
ZVNsZWVwKHNob3VsZERpc2FibGVTbGVlcCA9PSBTbGVlcFR5cGU6OkRpc3BsYXkpOwogfQogCitz
dGF0aWMgaW5saW5lIGJvb2wgaXNSZW1vdGVNZWRpYVN0cmVhbVZpZGVvVHJhY2soUmVmUHRyPE1l
ZGlhU3RyZWFtVHJhY2s+JiBpdGVtKQoreworICAgIGF1dG8qIHRyYWNrID0gaXRlbS5nZXQoKTsK
KyAgICByZXR1cm4gdHJhY2stPnByaXZhdGVUcmFjaygpLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbyAmJiAhdHJhY2stPmlzQ2FwdHVyZVRyYWNrKCkgJiYgIXRyYWNr
LT5pc0NhbnZhcygpOworfQorCiBIVE1MTWVkaWFFbGVtZW50OjpTbGVlcFR5cGUgSFRNTE1lZGlh
RWxlbWVudDo6c2hvdWxkRGlzYWJsZVNsZWVwKCkgY29uc3QKIHsKICAgICAvLyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDE5NyBiZWZvcmUgcmVtb3Zpbmcg
dGhpcyBndWFyZC4KQEAgLTY2MjgsMTUgKzY2MzQsMTQgQEAgSFRNTE1lZGlhRWxlbWVudDo6U2xl
ZXBUeXBlIEhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZERpc2FibGVTbGVlcCgpIGNvbnN0CiAgICAg
ICAgIHJldHVybiBTbGVlcFR5cGU6OlN5c3RlbTsKICNlbmRpZgogCisgICAgYm9vbCBzaG91bGRC
ZUFibGVUb1NsZWVwID0gIWhhc1ZpZGVvKCkgfHwgIWhhc0F1ZGlvKCk7CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLSAgICBpZiAobV9tZWRpYVN0cmVhbVNyY09iamVjdCkgewotICAgICAgICAv
LyBEbyBub3QgYmxvY2sgc3lzdGVtIGZyb20gc2xlZXBpbmcgaWYgZWxlbWVudCBpcyBvbmx5IHJl
bmRlcmluZyBsb2NhbCAoY2FwdHVyZSkgc291cmNlcy4KLSAgICAgICAgaWYgKFdURjo6YWxsT2Yo
bV9tZWRpYVN0cmVhbVNyY09iamVjdC0+Z2V0VHJhY2tzKCksIFtdIChSZWZQdHI8TWVkaWFTdHJl
YW1UcmFjaz4mIHRyYWNrKSB7IHJldHVybiB0cmFjayAmJiB0cmFjay0+aXNDYXB0dXJlVHJhY2so
KTsgfSkpCi0gICAgICAgICAgICByZXR1cm4gU2xlZXBUeXBlOjpOb25lOwotICAgIH0KKyAgICAv
LyBSZW1vdGUgbWVkaWEgc3RyZWFtIHZpZGVvIHRyYWNrcyBtYXkgaGF2ZSB0aGVpciBjb3JyZXNw
b25kaW5nIGF1ZGlvIHRyYWNrcyBiZWluZyBwbGF5ZWQgb3V0c2lkZSBvZiB0aGUgbWVkaWEgZWxl
bWVudC4gTGV0J3MgZW5zdXJlIHRvIG5vdCBJRExFIHRoZSBzY3JlZW4gaW4gdGhhdCBjYXNlLgor
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY2hlY2sgdGhhdCBhdWRpbyBpcyBiZWluZy90byBiZSBw
bGF5ZWQuIElkZWFsbHksIHdlIHdvdWxkIGNvbWUgdXAgd2l0aCBhIG1lZGlhIHN0cmVhbSBhZ25v
c3RpYyBoZXVyaXN0aXNjLgorICAgIHNob3VsZEJlQWJsZVRvU2xlZXAgPSBzaG91bGRCZUFibGVU
b1NsZWVwICYmICEobV9tZWRpYVN0cmVhbVNyY09iamVjdCAmJiBXVEY6OmFueU9mKG1fbWVkaWFT
dHJlYW1TcmNPYmplY3QtPmdldFRyYWNrcygpLCBpc1JlbW90ZU1lZGlhU3RyZWFtVmlkZW9UcmFj
aykpOwogI2VuZGlmCiAKLSAgICBpZiAoIWhhc1ZpZGVvKCkgfHwgIWhhc0F1ZGlvKCkpCisgICAg
aWYgKHNob3VsZEJlQWJsZVRvU2xlZXApCiAgICAgICAgIHJldHVybiBTbGVlcFR5cGU6Ok5vbmU7
CiAKICAgICBpZiAobV9lbGVtZW50SXNIaWRkZW4pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>