<?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>22659</bug_id>
          
          <creation_ts>2008-12-04 13:35:26 -0800</creation_ts>
          <short_desc>COMPropertyBag template class needs to implement IPropertyBag2 methods</short_desc>
          <delta_ts>2008-12-04 14:02:50 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</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 name="Steve Falkenburg">sfalken</reporter>
          <assigned_to name="Steve Falkenburg">sfalken</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>101384</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Falkenburg">sfalken</who>
    <bug_when>2008-12-04 13:35:26 -0800</bug_when>
    <thetext>COMPropertyBag in WebKit/win doesn&apos;t implement IPropertyBag2::Read.
It also doesn&apos;t fill in the dwType for the PROPBAG2 structure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101385</commentid>
    <comment_count>1</comment_count>
      <attachid>25751</attachid>
    <who name="Steve Falkenburg">sfalken</who>
    <bug_when>2008-12-04 13:41:05 -0800</bug_when>
    <thetext>Created attachment 25751
Implemented method, filled in type field.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101386</commentid>
    <comment_count>2</comment_count>
      <attachid>25751</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2008-12-04 13:58:38 -0800</bug_when>
    <thetext>Comment on attachment 25751
Implemented method, filled in type field.

&gt; Index: ChangeLog
&gt; ===================================================================
&gt; --- ChangeLog	(revision 39005)
&gt; +++ ChangeLog	(working copy)
&gt; @@ -1,3 +1,17 @@
&gt; +2008-12-04  Steve Falkenburg  &lt;sfalken@apple.com&gt;
&gt; +
&gt; +        Implement IPropertyBag2::Read.
&gt; +        Fill in dwType for IPropertyBag2::GetPropertyInfo (we always use PROPBAG2_TYPE_DATA).
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=22659
&gt; +        
&gt; +        This fixes &lt;rdar://problem/6419127&gt; REGRESSION: Forms autocomplete is broken for &quot;other forms&quot;
&gt; +        
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * COMPropertyBag.h:
&gt; +        (::Read): Implemented.
&gt; +        (::GetPropertyInfo): Set dwType to PROPBAG2_TYPE_DATA.
&gt; +
&gt;  2008-12-02  Adam Roben  &lt;aroben@apple.com&gt;
&gt;  
&gt;          Export new-ish JSCore convenience constructor functions
&gt; Index: COMPropertyBag.h
&gt; ===================================================================
&gt; --- COMPropertyBag.h	(revision 38999)
&gt; +++ COMPropertyBag.h	(working copy)
&gt; @@ -158,9 +158,22 @@ HRESULT STDMETHODCALLTYPE COMPropertyBag
&gt;  }
&gt;  
&gt;  template&lt;typename ValueType, typename HashType&gt;
&gt; -HRESULT STDMETHODCALLTYPE COMPropertyBag&lt;ValueType, HashType&gt;::Read(ULONG cProperties, PROPBAG2*, IErrorLog*, VARIANT* pvarValue, HRESULT* phrError)
&gt; +HRESULT STDMETHODCALLTYPE COMPropertyBag&lt;ValueType, HashType&gt;::Read(ULONG cProperties, PROPBAG2* pPropBag, IErrorLog* pErrorLog, VARIANT* pvarValue, HRESULT* phrError)
&gt;  {
&gt; -    return E_NOTIMPL;
&gt; +    if (!pPropBag || !pvarValue || !phrError)

minor pick: If we don&apos;t also check pErrorLog here, isn&apos;t it possible that we&apos;ll erroneously return E_FAIL below, if the Read() fails due to pErrorLog being null?

&gt; +        return E_POINTER;
&gt; +
&gt; +    HRESULT hr = S_OK;
&gt; +
&gt; +    for (ULONG i = 0; i &lt; cProperties; ++i) {
&gt; +        VariantInit(&amp;pvarValue[i]);
&gt; +        pvarValue[i].vt = pPropBag[i].vt;
&gt; +        phrError[i] = Read(pPropBag[i].pstrName, &amp;pvarValue[i], pErrorLog);
&gt; +        if (FAILED(phrError[i]))
&gt; +            hr = E_FAIL;
&gt; +    }
&gt; +
&gt; +    return hr;
&gt;  }
&gt;  
&gt;  template&lt;typename ValueType, typename HashType&gt;
&gt; @@ -196,10 +209,10 @@ HRESULT STDMETHODCALLTYPE COMPropertyBag
&gt;          ;
&gt;      for (ULONG j = 0; j &lt; cProperties &amp;&amp; current != end; ++j, ++current) {
&gt;          // FIXME: the following fields aren&apos;t filled in
&gt; -        //pPropBag[j].dwType;   // (DWORD) Type of property. This will be one of the PROPBAG2_TYPE values.
&gt; -        //pPropBag[j].cfType;   // (CLIPFORMAT) Clipboard format or MIME type of the property.
&gt; -        //pPropBag[j].clsid;    // (CLSID) CLSID of the object. This member is valid only if dwType is PROPBAG2_TYPE_OBJECT.
&gt; +        //pPropBag[j].cfType;   // (CLIPFORMAT) Clipboard format or MIME type of the property.
&gt; +        //pPropBag[j].clsid;    // (CLSID) CLSID of the object. This member is valid only if dwType is PROPBAG2_TYPE_OBJECT.
&gt;  
&gt; +        pPropBag[j].dwType = PROPBAG2_TYPE_DATA;
&gt;          pPropBag[j].vt = COMVariantSetter&lt;ValueType&gt;::VariantType;
&gt;          pPropBag[j].dwHint = iProperty + j;
&gt;          pPropBag[j].pstrName = (LPOLESTR)CoTaskMemAlloc(sizeof(wchar_t)*(current-&gt;first.length()+1));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101388</commentid>
    <comment_count>3</comment_count>
    <who name="Steve Falkenburg">sfalken</who>
    <bug_when>2008-12-04 14:00:31 -0800</bug_when>
    <thetext>pErrorLog is allowed to be 0 according to:
http://msdn.microsoft.com/en-us/library/aa768194(VS.85).aspx

pErrLog
[in] The address of an IErrorlog interface in which the property bag stores any errors that occur during the reads. This argument can be NULL; in which case, the caller receives no logging errors.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101389</commentid>
    <comment_count>4</comment_count>
    <who name="Steve Falkenburg">sfalken</who>
    <bug_when>2008-12-04 14:02:50 -0800</bug_when>
    <thetext>Fixed in r39006.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25751</attachid>
            <date>2008-12-04 13:41:05 -0800</date>
            <delta_ts>2008-12-04 13:54:56 -0800</delta_ts>
            <desc>Implemented method, filled in type field.</desc>
            <filename>diff.txt</filename>
            <type>text/plain</type>
            <size>2939</size>
            <attacher name="Steve Falkenburg">sfalken</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM5MDA1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDgtMTIt
MDQgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBs
ZW1lbnQgSVByb3BlcnR5QmFnMjo6UmVhZC4KKyAgICAgICAgRmlsbCBpbiBkd1R5cGUgZm9yIElQ
cm9wZXJ0eUJhZzI6OkdldFByb3BlcnR5SW5mbyAod2UgYWx3YXlzIHVzZSBQUk9QQkFHMl9UWVBF
X0RBVEEpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI2NTkKKyAgICAgICAgCisgICAgICAgIFRoaXMgZml4ZXMgPHJkYXI6Ly9wcm9ibGVtLzY0MTkx
Mjc+IFJFR1JFU1NJT046IEZvcm1zIGF1dG9jb21wbGV0ZSBpcyBicm9rZW4gZm9yICJvdGhlciBm
b3JtcyIKKyAgICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ09NUHJvcGVydHlCYWcuaDoKKyAgICAgICAgKDo6UmVhZCk6IEltcGxlbWVudGVk
LgorICAgICAgICAoOjpHZXRQcm9wZXJ0eUluZm8pOiBTZXQgZHdUeXBlIHRvIFBST1BCQUcyX1RZ
UEVfREFUQS4KKwogMjAwOC0xMi0wMiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRXhwb3J0IG5ldy1pc2ggSlNDb3JlIGNvbnZlbmllbmNlIGNvbnN0cnVjdG9yIGZ1
bmN0aW9ucwpJbmRleDogQ09NUHJvcGVydHlCYWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDT01Qcm9wZXJ0
eUJhZy5oCShyZXZpc2lvbiAzODk5OSkKKysrIENPTVByb3BlcnR5QmFnLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE1OCw5ICsxNTgsMjIgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDT01Qcm9w
ZXJ0eUJhZwogfQ0KIA0KIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgSGFz
aFR5cGU+DQotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDT01Qcm9wZXJ0eUJhZzxWYWx1ZVR5
cGUsIEhhc2hUeXBlPjo6UmVhZChVTE9ORyBjUHJvcGVydGllcywgUFJPUEJBRzIqLCBJRXJyb3JM
b2cqLCBWQVJJQU5UKiBwdmFyVmFsdWUsIEhSRVNVTFQqIHBockVycm9yKQ0KK0hSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgQ09NUHJvcGVydHlCYWc8VmFsdWVUeXBlLCBIYXNoVHlwZT46OlJlYWQo
VUxPTkcgY1Byb3BlcnRpZXMsIFBST1BCQUcyKiBwUHJvcEJhZywgSUVycm9yTG9nKiBwRXJyb3JM
b2csIFZBUklBTlQqIHB2YXJWYWx1ZSwgSFJFU1VMVCogcGhyRXJyb3IpDQogew0KLSAgICByZXR1
cm4gRV9OT1RJTVBMOw0KKyAgICBpZiAoIXBQcm9wQmFnIHx8ICFwdmFyVmFsdWUgfHwgIXBockVy
cm9yKQ0KKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsNCisNCisgICAgSFJFU1VMVCBociA9IFNf
T0s7DQorDQorICAgIGZvciAoVUxPTkcgaSA9IDA7IGkgPCBjUHJvcGVydGllczsgKytpKSB7DQor
ICAgICAgICBWYXJpYW50SW5pdCgmcHZhclZhbHVlW2ldKTsNCisgICAgICAgIHB2YXJWYWx1ZVtp
XS52dCA9IHBQcm9wQmFnW2ldLnZ0Ow0KKyAgICAgICAgcGhyRXJyb3JbaV0gPSBSZWFkKHBQcm9w
QmFnW2ldLnBzdHJOYW1lLCAmcHZhclZhbHVlW2ldLCBwRXJyb3JMb2cpOw0KKyAgICAgICAgaWYg
KEZBSUxFRChwaHJFcnJvcltpXSkpDQorICAgICAgICAgICAgaHIgPSBFX0ZBSUw7DQorICAgIH0N
CisNCisgICAgcmV0dXJuIGhyOw0KIH0NCiANCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUs
IHR5cGVuYW1lIEhhc2hUeXBlPg0KQEAgLTE5NiwxMCArMjA5LDEwIEBAIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgQ09NUHJvcGVydHlCYWcKICAgICAgICAgOw0KICAgICBmb3IgKFVMT05HIGog
PSAwOyBqIDwgY1Byb3BlcnRpZXMgJiYgY3VycmVudCAhPSBlbmQ7ICsraiwgKytjdXJyZW50KSB7
DQogICAgICAgICAvLyBGSVhNRTogdGhlIGZvbGxvd2luZyBmaWVsZHMgYXJlbid0IGZpbGxlZCBp
bg0KLSAgICAgICAgLy9wUHJvcEJhZ1tqXS5kd1R5cGU7ICAgLy8gKERXT1JEKSBUeXBlIG9mIHBy
b3BlcnR5LiBUaGlzIHdpbGwgYmUgb25lIG9mIHRoZSBQUk9QQkFHMl9UWVBFIHZhbHVlcy4KLSAg
ICAgICAgLy9wUHJvcEJhZ1tqXS5jZlR5cGU7ICAgLy8gKENMSVBGT1JNQVQpIENsaXBib2FyZCBm
b3JtYXQgb3IgTUlNRSB0eXBlIG9mIHRoZSBwcm9wZXJ0eS4KLSAgICAgICAgLy9wUHJvcEJhZ1tq
XS5jbHNpZDsgICAgLy8gKENMU0lEKSBDTFNJRCBvZiB0aGUgb2JqZWN0LiBUaGlzIG1lbWJlciBp
cyB2YWxpZCBvbmx5IGlmIGR3VHlwZSBpcyBQUk9QQkFHMl9UWVBFX09CSkVDVC4KKyAgICAgICAg
Ly9wUHJvcEJhZ1tqXS5jZlR5cGU7ICAgLy8gKENMSVBGT1JNQVQpIENsaXBib2FyZCBmb3JtYXQg
b3IgTUlNRSB0eXBlIG9mIHRoZSBwcm9wZXJ0eS4NCisgICAgICAgIC8vcFByb3BCYWdbal0uY2xz
aWQ7ICAgIC8vIChDTFNJRCkgQ0xTSUQgb2YgdGhlIG9iamVjdC4gVGhpcyBtZW1iZXIgaXMgdmFs
aWQgb25seSBpZiBkd1R5cGUgaXMgUFJPUEJBRzJfVFlQRV9PQkpFQ1QuDQogDQorICAgICAgICBw
UHJvcEJhZ1tqXS5kd1R5cGUgPSBQUk9QQkFHMl9UWVBFX0RBVEE7DQogICAgICAgICBwUHJvcEJh
Z1tqXS52dCA9IENPTVZhcmlhbnRTZXR0ZXI8VmFsdWVUeXBlPjo6VmFyaWFudFR5cGU7DQogICAg
ICAgICBwUHJvcEJhZ1tqXS5kd0hpbnQgPSBpUHJvcGVydHkgKyBqOw0KICAgICAgICAgcFByb3BC
YWdbal0ucHN0ck5hbWUgPSAoTFBPTEVTVFIpQ29UYXNrTWVtQWxsb2Moc2l6ZW9mKHdjaGFyX3Qp
KihjdXJyZW50LT5maXJzdC5sZW5ndGgoKSsxKSk7DQo=
</data>
<flag name="review"
          id="12045"
          type_id="1"
          status="+"
          setter="adachan"
    />
          </attachment>
      

    </bug>

</bugzilla>