<?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>82081</bug_id>
          
          <creation_ts>2012-03-23 12:54:42 -0700</creation_ts>
          <short_desc>[SOUP] Implement WebFrameNetworkingContext for soup in WebKit2</short_desc>
          <delta_ts>2012-03-27 08:23:16 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, Soup</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>82082</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>586632</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-23 12:54:42 -0700</bug_when>
    <thetext>It&apos;s currently unimplemented, WebFrameNetworkingContext::create() always returns 0 and it&apos;s in gtk dir while it&apos;s actually soup specific.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586641</commentid>
    <comment_count>1</comment_count>
      <attachid>133543</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-23 12:58:06 -0700</bug_when>
    <thetext>Created attachment 133543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586705</commentid>
    <comment_count>2</comment_count>
      <attachid>133543</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-23 13:58:40 -0700</bug_when>
    <thetext>Comment on attachment 133543
Patch

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

&gt; Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:29
&gt; +
&gt; +#include &lt;WebCore/ResourceHandle.h&gt;

Extra newline here.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:38
&gt; +SoupSession* WebFrameNetworkingContext::soupSession() const
&gt; +{
&gt; +    return ResourceHandle::defaultSession();
&gt; +}

This seems unused. I would prefer adding this when it&apos;s first used instead of introducing dead code now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587285</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-25 07:13:33 -0700</bug_when>
    <thetext>This is not dead code. The frame loader in FrameLoader::init() creates the networking context with 

m_networkingContext = m_client-&gt;createNetworkingContext();

In WebKit2 that calls WebFrameLoaderClient::createNetworkingContext() in Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp

That currently uses Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebFrameNetworkingContext.h that always returns NULL. 

This patch moves the implementation to Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp/h since the implementation is common to all ports using soup, which creates and returns a WebFrameNetworkingContext instead of NULL.

The Networking context is used by CookieJarSoup to get the jar feature of the current soup session. And its also used by ResourceHandleSoup.

So the difference is that the context is not NULL anymore for WebKit2, but a valid one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587295</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-25 08:47:50 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; This is not dead code. The frame loader in FrameLoader::init() creates the networking context with 

If the ::soupSession getter is not used in this patch, I think it should be added in the first patch that uses it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587474</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-25 23:22:48 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; This is not dead code. The frame loader in FrameLoader::init() creates the networking context with 
&gt; 
&gt; If the ::soupSession getter is not used in this patch, I think it should be added in the first patch that uses it.

soupSession is used by the current code, it&apos;s protected by checking whether network context is NULL or not, so currently it&apos;s not called because the network context is always NULL in wk2. Patch attached to bug #82082 doesn&apos;t introduce a new soupSession call and it doesn&apos;t work without this one, that&apos;s why I made this bug depend on bug #82082. You can add a printf there if you want to check this code is not dead code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587768</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-26 08:26:57 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; This is not dead code. The frame loader in FrameLoader::init() creates the networking context with 
&gt; &gt; 
&gt; &gt; If the ::soupSession getter is not used in this patch, I think it should be added in the first patch that uses it.
&gt; 
&gt; soupSession is used by the current code, it&apos;s protected by checking whether network context is NULL or not, so currently it&apos;s not called because the network context is always NULL in wk2. Patch attached to bug #82082 doesn&apos;t introduce a new soupSession call and it doesn&apos;t work without this one, that&apos;s why I made this bug depend on bug #82082. You can add a printf there if you want to check this code is not dead code.

There were a couple pieces of information missing here: 

1. FrameNetworkingContext is an abstract base class with an abstract method ::soupSession. 
2. The old implementation of WebFrameNetworkingContext, Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebFrameNetworkingContext.h, did not implement that method. Normally it&apos;s a compilation error immediately after you try to instantiate a non-concrete implementation of an abstract class. As Carlos said in comment #1 though, the factory method was always returning null.

Without knowing those two things outright, this patch looked very mysterious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587780</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-26 08:39:21 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; &gt; This is not dead code. The frame loader in FrameLoader::init() creates the networking context with 
&gt; &gt; &gt; 
&gt; &gt; &gt; If the ::soupSession getter is not used in this patch, I think it should be added in the first patch that uses it.
&gt; &gt; 
&gt; &gt; soupSession is used by the current code, it&apos;s protected by checking whether network context is NULL or not, so currently it&apos;s not called because the network context is always NULL in wk2. Patch attached to bug #82082 doesn&apos;t introduce a new soupSession call and it doesn&apos;t work without this one, that&apos;s why I made this bug depend on bug #82082. You can add a printf there if you want to check this code is not dead code.
&gt; 
&gt; There were a couple pieces of information missing here: 
&gt; 
&gt; 1. FrameNetworkingContext is an abstract base class with an abstract method ::soupSession. 
&gt; 2. The old implementation of WebFrameNetworkingContext, Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebFrameNetworkingContext.h, did not implement that method. Normally it&apos;s a compilation error immediately after you try to instantiate a non-concrete implementation of an abstract class. As Carlos said in comment #1 though, the factory method was always returning null.
&gt; 

Current code never tries to instantiate a concrete implementation because the static factory method always returns NULL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588701</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-27 03:00:27 -0700</bug_when>
    <thetext>I&apos;ve just landed patch attached to bug #82082, but it requires this patch to work in WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588907</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-27 08:11:52 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; &gt; &gt; This is not dead code. The frame loader in FrameLoader::init() creates the networking context with 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; If the ::soupSession getter is not used in this patch, I think it should be added in the first patch that uses it.
&gt; &gt; &gt; 
&gt; &gt; &gt; soupSession is used by the current code, it&apos;s protected by checking whether network context is NULL or not, so currently it&apos;s not called because the network context is always NULL in wk2. Patch attached to bug #82082 doesn&apos;t introduce a new soupSession call and it doesn&apos;t work without this one, that&apos;s why I made this bug depend on bug #82082. You can add a printf there if you want to check this code is not dead code.
&gt; &gt; 
&gt; &gt; There were a couple pieces of information missing here: 
&gt; &gt; 
&gt; &gt; 1. FrameNetworkingContext is an abstract base class with an abstract method ::soupSession. 
&gt; &gt; 2. The old implementation of WebFrameNetworkingContext, Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebFrameNetworkingContext.h, did not implement that method. Normally it&apos;s a compilation error immediately after you try to instantiate a non-concrete implementation of an abstract class. As Carlos said in comment #1 though, the factory method was always returning null.
&gt; &gt; 
&gt; 
&gt; Current code never tries to instantiate a concrete implementation because the static factory method always returns NULL.

Yeah, I just didn&apos;t realize both 1 and 2 until later on. Perhaps some abbreviated form of that could go into the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588925</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-27 08:23:16 -0700</bug_when>
    <thetext>Committed r112273: &lt;http://trac.webkit.org/changeset/112273&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133543</attachid>
            <date>2012-03-23 12:58:06 -0700</date>
            <delta_ts>2012-03-27 08:12:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-frame-networking-context.diff</filename>
            <type>text/plain</type>
            <size>9581</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA5NjI4MDQzLi45ZGY5ZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTItMDMtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIEltcGxlbWVudCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0IGZvciBzb3Vw
IGluIFdlYktpdDIKKworICAgICAgICBbU09VUF0gSW1wbGVtZW50IFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQgZm9yIHNvdXAgaW4gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIwODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBBZGQgbmV3IGZpbGVzIHRvIGNv
bXBpbGF0aW9uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmguCisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNvdXBTZXNzaW9uKTog
UmV0dXJuIHRoZQorICAgICAgICBkZWZhdWx0IFNvdXBTZXNzaW9uLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6IENyZWF0ZSBhIG5ldworICAgICAgICBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0KCkuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgorCiAyMDEyLTAzLTIzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjExMTc1NCk6
IHBsdWdpbnMvcmVsb2FkcGx1Z2lucy1hbmQtcGFnZXMuaHRtbCBmYWlscyBvbiBhbGwgcGxhdGZv
cm1zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9X
ZWJLaXQyL0dOVW1ha2VmaWxlLmFtCmluZGV4IDZkNTE3NzQuLjY0NmY4NDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmFtCkBAIC05MDMsOCArOTAzLDkgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJEcmFnQ2xpZW50R3Rr
LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2Vi
RWRpdG9yQ2xpZW50R3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcCBcCi0JU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJQb3B1cE1lbnVHdGsu
Y3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggXAogCVNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBc
CiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250
ZXh0TWVudUNsaWVudC5jcHAgXApAQCAtMTAzOSw2ICsxMDQwLDcgQEAgbGlid2Via2l0Mmd0a19A
V0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9O
QF9sYV9DUFAKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvZ3RrIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L2d0ayBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9zb3VwIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9ndGsgXAogCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9n
dGsvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjdiZTVkLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogUG9ydGlvbnMgQ29weXJp
Z2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAotI2RlZmlu
ZSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKLQotI2luY2x1ZGUgIldlYkZyYW1lLmgiCi0K
LSNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaD4KLQotY2xhc3MgV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdD
b250ZXh0IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0PiBjcmVhdGUoV2ViS2l0OjpXZWJGcmFtZSopCi0gICAgewotICAgICAgICByZXR1
cm4gMDsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChX
ZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSkKLSAgICAgICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdvcmtp
bmdDb250ZXh0KGZyYW1lLT5jb3JlRnJhbWUoKSkKLSAgICB7Ci0gICAgfQotCi0gICAgdmlydHVh
bCBXVEY6OlN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IHJlZmVycmVyKCkgY29uc3Q7Ci0KLSAgICBXVEY6OlN0cmluZyBtX3VzZXJBZ2VudDsKLX07Ci0K
LSNlbmRpZiAvLyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
c291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi44NzZkZTgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
Y3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4K
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitTb3Vw
U2Vzc2lvbiogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c291cFNlc3Npb24oKSBjb25zdAor
eworICAgIHJldHVybiBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsKK30KKworfQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3Nv
dXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTQyZDM4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdo
dCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAorI2RlZmluZSBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0X2gKKworI2luY2x1ZGUgIldlYkZyYW1lLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dD4gY3JlYXRlKFdlYkZyYW1lKiBmcmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkZyYW1lKiBmcmFtZSkK
KyAgICAgICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lLT5jb3JlRnJh
bWUoKSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCBTb3VwU2Vzc2lvbiogc291cFNlc3Np
b24oKSBjb25zdDsKK307CisKK30KKworI2VuZGlmIC8vIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHRfaAo=
</data>
<flag name="review"
          id="137569"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>