<?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>176204</bug_id>
          
          <creation_ts>2017-08-31 17:30:07 -0700</creation_ts>
          <short_desc>Implement the attribute HTMLImageElement.async</short_desc>
          <delta_ts>2017-11-08 10:51:22 -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>Images</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>https://github.com/whatwg/html/issues/1920</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="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1344233</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-08-31 17:30:07 -0700</bug_when>
    <thetext>This will force async decoding for this image all the times regardless weather the image is large or not. Async decoding will be forced even if it causes the image to flicker momentarily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344239</commentid>
    <comment_count>1</comment_count>
      <attachid>319554</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-08-31 17:35:59 -0700</bug_when>
    <thetext>Created attachment 319554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344244</commentid>
    <comment_count>2</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-08-31 17:39:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/34107641&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345087</commentid>
    <comment_count>3</comment_count>
      <attachid>319554</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-09-03 17:24:38 -0700</bug_when>
    <thetext>Comment on attachment 319554
Patch

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

&gt; Source/WebCore/html/HTMLImageElement.cpp:227
&gt; -    } else {
&gt; +    } else if (name == asyncAttr)
&gt; +        m_async = !value.isNull();

This code isn’t needed. There is no need to store a boolean in a data member just so we can ask the question of an HTMLImageElement. We can find out the correct value at any time by calling hasAttribute(asyncAttr).

&gt; Source/WebCore/html/HTMLImageElement.h:82
&gt; +    bool async() const { return m_async; }

This function isn’t needed. [Reflect] can answer this question without adding a function, and the one caller can just call hasAttribute(asyncAttr).

&gt; Source/WebCore/html/HTMLImageElement.h:146
&gt; +    bool m_async { false };

This data member isn’t needed.

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:330
&gt; +    if (is&lt;HTMLImageElement&gt;(element()) &amp;&amp; downcast&lt;HTMLImageElement&gt;(*element()).async())

Here we can just write:

    if (is&lt;HTMLImageElement&gt;(element()) &amp;&amp; element()-&gt;hasAttribute(asyncAttr))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346985</commentid>
    <comment_count>4</comment_count>
      <attachid>320312</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-09-08 16:04:53 -0700</bug_when>
    <thetext>Created attachment 320312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347007</commentid>
    <comment_count>5</comment_count>
      <attachid>320312</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-08 17:10:48 -0700</bug_when>
    <thetext>Comment on attachment 320312
Patch

Clearing flags on attachment: 320312

Committed r221803: &lt;http://trac.webkit.org/changeset/221803&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347008</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-08 17:10:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369488</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-08 10:51:22 -0800</bug_when>
    <thetext>Followup to support the on/off syntax: 179432</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319554</attachid>
            <date>2017-08-31 17:35:59 -0700</date>
            <delta_ts>2017-09-08 16:04:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176204-20170831173558.patch</filename>
            <type>text/plain</type>
            <size>6763</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMTQ2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE3LTA4LTMxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IHRoZSBhdHRyaWJ1dGUgSFRNTEltYWdlRWxlbWVudC5hc3luYyAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjIwNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyB0aGlzIGF0dHJpYnV0ZSB0byB0
aGUgPGltZz4gZWxlbWVudCB3aWxsIGZvcmNlIGFzeW5jIGRlY29kaW5nIGZvcgorICAgICAgICB0
aGlzIGltYWdlIGFsbCB0aGUgdGltZXMuIE5vbmUgb2YgdGhlIGhldXJpc3RpY3MsIHdoaWNoICBw
cmV2ZW50cyBmbGlja2VyaW5nCisgICAgICAgIHRoZSBpbWFnZSwgd2lsbCBiZSBjaGVja2VkLgor
CisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL2FzeW5jLWF0dHJpYnV0ZS13aXRoLXNtYWxsLWlt
YWdlLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICog
aHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVt
ZW50Ojphc3luYyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmlkbDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmRlY29kaW5nTW9kZUZvckltYWdlRHJhdyBj
b25zdCk6CisKIDIwMTctMDgtMzEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBJbXBsZW1lbnQgRE9NTWF0cml4MkRJbml0IGZvciBzZXRUcmFuc2Zvcm0oKS9hZGRQYXRo
KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNp
b24gMjIxMzg0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjIzLDcgKzIyMyw5IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY28KICAgICAgICAgbV9leHBlcmltZW50YWxJbWFnZU1lbnVFbmFibGVk
ID0gIXZhbHVlLmlzTnVsbCgpOwogICAgICAgICB1cGRhdGVJbWFnZUNvbnRyb2xzKCk7CiAjZW5k
aWYKLSAgICB9IGVsc2UgeworICAgIH0gZWxzZSBpZiAobmFtZSA9PSBhc3luY0F0dHIpCisgICAg
ICAgIG1fYXN5bmMgPSAhdmFsdWUuaXNOdWxsKCk7CisgICAgZWxzZSB7CiAgICAgICAgIGlmIChu
YW1lID09IG5hbWVBdHRyKSB7CiAgICAgICAgICAgICBib29sIHdpbGxIYXZlTmFtZSA9ICF2YWx1
ZS5pc051bGwoKTsKICAgICAgICAgICAgIGlmIChtX2hhZE5hbWVCZWZvcmVBdHRyaWJ1dGVDaGFu
Z2VkICE9IHdpbGxIYXZlTmFtZSAmJiBpc0Nvbm5lY3RlZCgpICYmICFpc0luU2hhZG93VHJlZSgp
ICYmIGlzPEhUTUxEb2N1bWVudD4oZG9jdW1lbnQoKSkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEltYWdlRWxlbWVudC5oCShyZXZpc2lvbiAyMjEzODQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksOCBA
QCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbXBsZXRlKCkgY29uc3Q7CiAK
KyAgICBib29sIGFzeW5jKCkgY29uc3QgeyByZXR1cm4gbV9hc3luYzsgfQorCiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBvdmVycmlk
ZTsKICNlbmRpZgpAQCAtMTQxLDYgKzE0Myw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9pbWFn
ZURldmljZVBpeGVsUmF0aW87CiAgICAgYm9vbCBtX2V4cGVyaW1lbnRhbEltYWdlTWVudUVuYWJs
ZWQ7CiAgICAgYm9vbCBtX2hhZE5hbWVCZWZvcmVBdHRyaWJ1dGVDaGFuZ2VkIHsgZmFsc2UgfTsg
Ly8gRklYTUU6IFdlIG9ubHkgbmVlZCB0aGlzIGJlY2F1c2UgcGFyc2VBdHRyaWJ1dGUoKSBjYW4n
dCBzZWUgdGhlIG9sZCB2YWx1ZS4KKyAgICBib29sIG1fYXN5bmMgeyBmYWxzZSB9OwogCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgdm9pZCB1cGRhdGVJbWFnZUNvbnRyb2xzKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5pZGwJKHJldmlzaW9u
IDIyMTM4NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERP
TVN0cmluZyB1c2VNYXA7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHZz
cGFjZTsKICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aWR0aDsKKyAgICBbUmVmbGVjdF0g
YXR0cmlidXRlIGJvb2xlYW4gYXN5bmM7CiAKICAgICAvLyBFeHRlbnNpb25zCiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcGxldGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDIyMTM4NCkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRnJh
bWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VR
dWFsaXR5Q29udHJvbGxlci5oIgpAQCAtMzI2LDYgKzMyNyw4IEBAIERlY29kaW5nTW9kZSBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6ZGVjb2QKICNlbmRpZgogICAgIGlmIChiaXRtYXBJbWFnZS5pc0xh
cmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZEZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJu
IERlY29kaW5nTW9kZTo6QXN5bmNocm9ub3VzOworICAgIGlmIChpczxIVE1MSW1hZ2VFbGVtZW50
PihlbGVtZW50KCkpICYmIGRvd25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+KCplbGVtZW50KCkpLmFz
eW5jKCkpCisgICAgICAgIHJldHVybiBEZWNvZGluZ01vZGU6OkFzeW5jaHJvbm91czsKICAgICBp
ZiAoZG9jdW1lbnQoKS5pc0ltYWdlRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIERlY29kaW5n
TW9kZTo6U3luY2hyb25vdXM7CiAgICAgaWYgKHBhaW50SW5mby5wYWludEJlaGF2aW9yICYgUGFp
bnRCZWhhdmlvclNuYXBzaG90dGluZykKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMTM4NCkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE3
LTA4LTMxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IHRoZSBhdHRyaWJ1dGUgSFRNTEltYWdlRWxlbWVudC5hc3luYyAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjIwNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9pbWFn
ZXMvYXN5bmMtYXR0cmlidXRlLXdpdGgtc21hbGwtaW1hZ2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9pbWFnZXMvYXN5bmMtYXR0cmlidXRlLXdpdGgtc21hbGwtaW1hZ2Uu
aHRtbDogQWRkZWQuCisKIDIwMTctMDgtMzAgIEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIHRlc3QgZ2FyZGVuaW5nLgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYXN5bmMtYXR0cmlidXRlLXdpdGgtc21hbGwtaW1h
Z2UtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9h
c3luYy1hdHRyaWJ1dGUtd2l0aC1zbWFsbC1pbWFnZS1leHBlY3RlZC5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FzeW5jLWF0dHJpYnV0ZS13aXRoLXNtYWxs
LWltYWdlLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzIEBACis8Ym9k
eT4KKyAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2dyZWVuLTI0eDI0LmpwZyI+CisgPC9ib2R5PgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYXN5bmMtYXR0cmlidXRlLXdpdGgtc21hbGwt
aW1hZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9hc3luYy1h
dHRyaWJ1dGUtd2l0aC1zbWFsbC1pbWFnZS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2FzeW5jLWF0dHJpYnV0ZS13aXRoLXNtYWxsLWltYWdlLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorPGJvZHk+CisgICAgPGltZyBhc3luYz4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBsb2FkSW1hZ2UoaW1hZ2UsIHNyYykgeworICAg
ICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgICAgICAg
ICAgaW1hZ2Uub25sb2FkID0gKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMgJiYgd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEZvcmNlIGxheW91dCBhbmQgZGlzcGxheSBzbyB0aGUgaW1hZ2UgZ2V0cyBkcmF3bi4K
KyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworCisgICAgICAgICAgICAgICAg
ICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRJbWFnZUZyYW1lUmVhZHkiLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9LCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIGltYWdlLnNyYyA9IHNyYzsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzICYmIHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxz
LmNsZWFyTWVtb3J5Q2FjaGUoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0V2Via2l0SW1hZ2VSZWFkeUV2ZW50RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAg
IHZhciBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgICAgICAgICAg
bG9hZEltYWdlKGltYWdlLCAicmVzb3VyY2VzL2dyZWVuLTI0eDI0LmpwZyIsIHRydWUpLnRoZW4o
KCkgPT4geworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSkoKTsKKyAgICA8L3NjcmlwdD4KKyA8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320312</attachid>
            <date>2017-09-08 16:04:53 -0700</date>
            <delta_ts>2017-09-08 17:10:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176204-20170908160452.patch</filename>
            <type>text/plain</type>
            <size>5390</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMTgwMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE3LTA5LTA4ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IHRoZSBhdHRyaWJ1dGUgSFRNTEltYWdlRWxlbWVudC5hc3luYyAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjIwNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZGluZyB0aGlzIGF0dHJpYnV0ZSB0byB0aGUg
PGltZz4gZWxlbWVudCB3aWxsIGZvcmNlIGFzeW5jIGRlY29kaW5nIGZvcgorICAgICAgICB0aGlz
IGltYWdlIGFsbCB0aGUgdGltZXMuIE5vbmUgb2YgdGhlIGhldXJpc3RpY3MsIHdoaWNoICBwcmV2
ZW50cyBmbGlja2VyaW5nCisgICAgICAgIHRoZSBpbWFnZSwgd2lsbCBiZSBjaGVja2VkLgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL2FzeW5jLWF0dHJpYnV0ZS13aXRoLXNtYWxsLWltYWdl
Lmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRt
bC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50
Ojphc3luYyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmRlY29kaW5nTW9kZUZvckltYWdlRHJhdyBjb25z
dCk6CisKIDIwMTctMDktMDggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMjE3NzMuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5pZGwJKHJldmlzaW9uIDIyMTgwMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTQwLDYgKzQwLDcgQEAKICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB1c2VN
YXA7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHZzcGFjZTsKICAgICBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aWR0aDsKKyAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJv
b2xlYW4gYXN5bmM7CiAKICAgICAvLyBFeHRlbnNpb25zCiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gY29tcGxldGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDIyMTgwMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVTZXRFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VRdWFsaXR5Q29udHJv
bGxlci5oIgpAQCAtMzI2LDYgKzMyNyw4IEBAIERlY29kaW5nTW9kZSBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6ZGVjb2QKICNlbmRpZgogICAgIGlmIChiaXRtYXBJbWFnZS5pc0xhcmdlSW1hZ2VBc3lu
Y0RlY29kaW5nRW5hYmxlZEZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuIERlY29kaW5nTW9k
ZTo6QXN5bmNocm9ub3VzOworICAgIGlmIChpczxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KCkp
ICYmIGVsZW1lbnQoKS0+aGFzQXR0cmlidXRlKGFzeW5jQXR0cikpCisgICAgICAgIHJldHVybiBE
ZWNvZGluZ01vZGU6OkFzeW5jaHJvbm91czsKICAgICBpZiAoZG9jdW1lbnQoKS5pc0ltYWdlRG9j
dW1lbnQoKSkKICAgICAgICAgcmV0dXJuIERlY29kaW5nTW9kZTo6U3luY2hyb25vdXM7CiAgICAg
aWYgKHBhaW50SW5mby5wYWludEJlaGF2aW9yICYgUGFpbnRCZWhhdmlvclNuYXBzaG90dGluZykK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIyMTgwMCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA5LTA4ICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBhdHRy
aWJ1dGUgSFRNTEltYWdlRWxlbWVudC5hc3luYyAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjIwNAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgICogZmFzdC9pbWFnZXMvYXN5bmMtYXR0cmlidXRlLXdpdGgtc21h
bGwtaW1hZ2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvYXN5
bmMtYXR0cmlidXRlLXdpdGgtc21hbGwtaW1hZ2UuaHRtbDogQWRkZWQuCisKIDIwMTctMDktMDgg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1hcmsgaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5o
dG1sIGFzIGEgZmxha3kgY3Jhc2guCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9hc3lu
Yy1hdHRyaWJ1dGUtd2l0aC1zbWFsbC1pbWFnZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FzeW5jLWF0dHJpYnV0ZS13aXRoLXNtYWxsLWltYWdl
LWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
YXN5bmMtYXR0cmlidXRlLXdpdGgtc21hbGwtaW1hZ2UtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDMgQEAKKzxib2R5PgorICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZ3Jl
ZW4tMjR4MjQuanBnIj4KKyA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9h
c3luYy1hdHRyaWJ1dGUtd2l0aC1zbWFsbC1pbWFnZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2FzeW5jLWF0dHJpYnV0ZS13aXRoLXNtYWxsLWltYWdlLmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYXN5bmMtYXR0cmlidXRl
LXdpdGgtc21hbGwtaW1hZ2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBACis8
Ym9keT4KKyAgICA8aW1nIGFzeW5jPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGxv
YWRJbWFnZShpbWFnZSwgc3JjKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsKKyAgICAgICAgICAgICAgICBpbWFnZS5vbmxvYWQgPSAoKCkgPT4geworICAg
ICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9yY2UgbGF5b3V0IGFuZCBkaXNwbGF5
IHNvIHRoZSBpbWFnZSBnZXRzIGRyYXduLgorICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGlzdGVuIGZvciB0aGUg
d2Via2l0SW1hZ2VGcmFtZVJlYWR5IGV2ZW50IGFmdGVyIHJlcXVlc3RpbmcKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHRoZSBpbWFnZSBkZWNvZGluZy4KKyAgICAgICAgICAgICAgICAgICAg
ICAgIGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdEltYWdlRnJhbWVSZWFkeSIsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0sIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgaW1hZ2Uuc3JjID0gc3JjOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0KKyAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMgJiYgd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuY2xl
YXJNZW1vcnlDYWNoZSgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRX
ZWJraXRJbWFnZVJlYWR5RXZlbnRFbmFibGVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorIAorICAgICAgICAgICAgdmFy
IGltYWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgICAgICAgICBsb2Fk
SW1hZ2UoaW1hZ2UsICJyZXNvdXJjZXMvZ3JlZW4tMjR4MjQuanBnIiwgdHJ1ZSkudGhlbigoKSA9
PiB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KSgpOworICAgIDwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>