<?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>89757</bug_id>
          
          <creation_ts>2012-06-22 06:15:24 -0700</creation_ts>
          <short_desc>Microdata: document.getItems(typeNames) is not returning Microdata items when typeNames argument is not specified</short_desc>
          <delta_ts>2012-06-25 05:12:44 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68609</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Arko Saha">arko</reporter>
          <assigned_to name="Arko Saha">arko</assigned_to>
          <cc>darin</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>655408</commentid>
    <comment_count>0</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-06-22 06:15:24 -0700</bug_when>
    <thetext>document.getItems(typeNames) should return all Microdata top level items if there are no typeNames specified in the aurgument i.e, document.getItems().

Failing test cases:
fast/dom/MicroData/007.html
fast/dom/MicroData/009.html
fast/dom/MicroData/002.html
fast/dom/MicroData/003.html
fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html

In case of documet.getItem() typeNames will be null string. Earlier we used to create MicroDataItemList with m_typeNames = null string. And we used to create an unique string identifier (http://webkit.org/microdata/undefinedItemType) to map such request in the cache.

With r120979 this change it creates MicroDataItemList with m_typeNames = &quot;http://webkit.org/microdata/undefinedItemType&quot;, when typeNames argument is not specified. So we need to modify the check in nodeMatches() accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655410</commentid>
    <comment_count>1</comment_count>
      <attachid>149014</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-06-22 06:23:48 -0700</bug_when>
    <thetext>Created attachment 149014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655494</commentid>
    <comment_count>2</comment_count>
      <attachid>149014</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-22 09:11:35 -0700</bug_when>
    <thetext>Comment on attachment 149014
Patch

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

&gt; Source/WebCore/dom/MicroDataItemList.cpp:62
&gt; -    if (!m_typeNames.size())
&gt; +    if (m_originalTypeNames == &quot;http://webkit.org/microdata/undefinedItemType&quot;)

Can we define this url in some static function of MicroDataItemList (using DEFINE_STATIC_LOCAL) so that we don&apos;t have to do String conversion here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655593</commentid>
    <comment_count>3</comment_count>
      <attachid>149062</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-06-22 10:54:11 -0700</bug_when>
    <thetext>Created attachment 149062
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655596</commentid>
    <comment_count>4</comment_count>
      <attachid>149062</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-06-22 10:55:49 -0700</bug_when>
    <thetext>Comment on attachment 149062
Updated patch

Do we have a regression test that covers this? If not, can we add a new test that shows the bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655598</commentid>
    <comment_count>5</comment_count>
      <attachid>149062</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-06-22 10:58:30 -0700</bug_when>
    <thetext>Comment on attachment 149062
Updated patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        With r120979 change, it creates MicroDataItemList with m_typeNames = &quot;http://webkit.org/microdata/undefinedItemType&quot;,
&gt; +        when typeNames argument is not specified. Modified the check in nodeMatches() accordingly.

Change log should list the regression tests that are failing to make it clear this is covered by tests.

&gt; Source/WebCore/ChangeLog:16
&gt; +        (WebCore::undefinedItemType):
&gt; +        (WebCore):
&gt; +        (WebCore::MicroDataItemList::MicroDataItemList):
&gt; +        (WebCore::MicroDataItemList::~MicroDataItemList):
&gt; +        (WebCore::MicroDataItemList::nodeMatches):

Patches with per-function comments are better. Bogus lines like (WebCore): should be deleted before landing a change.

&gt; Source/WebCore/dom/MicroDataItemList.cpp:41
&gt; +static String&amp; undefinedItemType()

Return type should be const String&amp; because we don’t want the caller to be able to modify it.

&gt; Source/WebCore/dom/MicroDataItemList.cpp:49
&gt; -    , m_typeNames(typeNames, node()-&gt;document()-&gt;inQuirksMode())
&gt; +    , m_typeNames(typeNames, document()-&gt;inQuirksMode())

Seems like unrelated cleanup.

&gt; Source/WebCore/dom/MicroDataItemList.cpp:56
&gt; -    String localTypeNames = m_originalTypeNames.isNull() ? String(&quot;http://webkit.org/microdata/undefinedItemType&quot;) : m_originalTypeNames;
&gt; -    m_node-&gt;nodeLists()-&gt;removeCacheWithName(this, DynamicNodeList::MicroDataItemListType, localTypeNames);
&gt; +    ownerNode()-&gt;nodeLists()-&gt;removeCacheWithName(this, DynamicNodeList::MicroDataItemListType, m_originalTypeNames);

Using ownerNode() instead of m_node seems like unrelated cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655599</commentid>
    <comment_count>6</comment_count>
      <attachid>149062</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-06-22 10:58:48 -0700</bug_when>
    <thetext>Comment on attachment 149062
Updated patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Microdata: document.getItems(typeNames) is not returning Microdata items when typeNames aurgument is not specified.

Typo here: aurgument</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655631</commentid>
    <comment_count>7</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-06-22 11:21:10 -0700</bug_when>
    <thetext>(In reply to comment #5)

Thanks Darin for the review.

&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        With r120979 change, it creates MicroDataItemList with m_typeNames = &quot;http://webkit.org/microdata/undefinedItemType&quot;,
&gt; &gt; +        when typeNames argument is not specified. Modified the check in nodeMatches() accordingly.
&gt; 
&gt; Change log should list the regression tests that are failing to make it clear this is covered by tests.

Ok. I will update the Changelog with failing test cases.

&gt; &gt; Source/WebCore/ChangeLog:16
&gt; &gt; +        (WebCore::undefinedItemType):
&gt; &gt; +        (WebCore):
&gt; &gt; +        (WebCore::MicroDataItemList::MicroDataItemList):
&gt; &gt; +        (WebCore::MicroDataItemList::~MicroDataItemList):
&gt; &gt; +        (WebCore::MicroDataItemList::nodeMatches):
&gt; 
&gt; Patches with per-function comments are better. Bogus lines like (WebCore): should be deleted before landing a change.

Ok.
 
&gt; &gt; Source/WebCore/dom/MicroDataItemList.cpp:41
&gt; &gt; +static String&amp; undefinedItemType()
&gt; 
&gt; Return type should be const String&amp; because we don’t want the caller to be able to modify it.

Yes you are right. Will modify.

&gt; &gt; Source/WebCore/dom/MicroDataItemList.cpp:49
&gt; &gt; -    , m_typeNames(typeNames, node()-&gt;document()-&gt;inQuirksMode())
&gt; &gt; +    , m_typeNames(typeNames, document()-&gt;inQuirksMode())
&gt; 
&gt; Seems like unrelated cleanup.

r121003 revision added document() method which returns the document of owner node.

&gt; &gt; Source/WebCore/dom/MicroDataItemList.cpp:56
&gt; &gt; -    String localTypeNames = m_originalTypeNames.isNull() ? String(&quot;http://webkit.org/microdata/undefinedItemType&quot;) : m_originalTypeNames;
&gt; &gt; -    m_node-&gt;nodeLists()-&gt;removeCacheWithName(this, DynamicNodeList::MicroDataItemListType, localTypeNames);
&gt; &gt; +    ownerNode()-&gt;nodeLists()-&gt;removeCacheWithName(this, DynamicNodeList::MicroDataItemListType, m_originalTypeNames);
&gt; 
&gt; Using ownerNode() instead of m_node seems like unrelated cleanup.

r121003 revision renamed DynamicNodeList&apos;s m_node to m_ownerNode. So we need to use ownerNode() as m_ownerNode private to DynamicNodeList. Made changes accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655671</commentid>
    <comment_count>8</comment_count>
      <attachid>149078</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-06-22 11:55:05 -0700</bug_when>
    <thetext>Created attachment 149078
Updated patch

Incorporated review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656403</commentid>
    <comment_count>9</comment_count>
      <attachid>149078</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-24 23:22:07 -0700</bug_when>
    <thetext>Comment on attachment 149078
Updated patch

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

&gt; Source/WebCore/dom/MicroDataItemList.cpp:41
&gt; +static const String&amp; undefinedItemType()

We should also use this function in Document::getItems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656498</commentid>
    <comment_count>10</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-06-25 05:12:44 -0700</bug_when>
    <thetext>Committed r121149: &lt;http://trac.webkit.org/changeset/121149&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149014</attachid>
            <date>2012-06-22 06:23:48 -0700</date>
            <delta_ts>2012-06-22 10:54:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_89757_20120622.diff</filename>
            <type>text/plain</type>
            <size>2564</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTAxOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA2LTIyICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IGRvY3VtZW50Lmdl
dEl0ZW1zKHR5cGVOYW1lcykgaXMgbm90IHJldHVybmluZyBNaWNyb2RhdGEgaXRlbXMgd2hlbiB0
eXBlTmFtZXMgYXVyZ3VtZW50IGlzIG5vdCBzcGVjaWZpZWQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTc1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdpdGggcjEyMDk3OSBjaGFuZ2UsIGl0IGNyZWF0
ZXMgTWljcm9EYXRhSXRlbUxpc3Qgd2l0aCBtX3R5cGVOYW1lcyA9ICJodHRwOi8vd2Via2l0Lm9y
Zy9taWNyb2RhdGEvdW5kZWZpbmVkSXRlbVR5cGUiLAorICAgICAgICB3aGVuIHR5cGVOYW1lcyBh
cmd1bWVudCBpcyBub3Qgc3BlY2lmaWVkLiBNb2RpZmllZCB0aGUgY2hlY2sgaW4gbm9kZU1hdGNo
ZXMoKSBhY2NvcmRpbmdseS4KKworICAgICAgICAqIGRvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNaWNyb0RhdGFJdGVtTGlzdDo6TWljcm9EYXRhSXRlbUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbUxpc3Q6On5NaWNyb0RhdGFJdGVtTGlz
dCk6CisgICAgICAgIChXZWJDb3JlOjpNaWNyb0RhdGFJdGVtTGlzdDo6bm9kZU1hdGNoZXMpOgor
CiAyMDEyLTA2LTIyICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMTE3NzM4KTpbRm9ybXNdIHZhbGlkYXRpb25NZXNzYWdlIElETCBh
dHRyaWJ1dGUgc2hvdWxkIG5vdCBoYXZlIHJhbmdlIG92ZXJmbG93IG1lc3NhZ2UgaWYgdmFsdWUg
aXNuJ3QgcmFuZ2Ugb3ZlcmZsb3cKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJ
dGVtTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL01pY3JvRGF0YUl0
ZW1MaXN0LmNwcAkocmV2aXNpb24gMTIxMDE5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL01pY3Jv
RGF0YUl0ZW1MaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTUgKzQwLDE0IEBAIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIE1pY3JvRGF0YUl0ZW1MaXN0OjpNaWNyb0RhdGFJdGVt
TGlzdChQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIHR5cGVOYW1lcykK
ICAgICA6IER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qocm9vdE5vZGUpCi0gICAgLCBtX3R5cGVOYW1l
cyh0eXBlTmFtZXMsIG5vZGUoKS0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCisgICAgLCBt
X3R5cGVOYW1lcyh0eXBlTmFtZXMsIGRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQogICAgICwg
bV9vcmlnaW5hbFR5cGVOYW1lcyh0eXBlTmFtZXMpCiB7CiB9CiAKIE1pY3JvRGF0YUl0ZW1MaXN0
Ojp+TWljcm9EYXRhSXRlbUxpc3QoKQogewotICAgIFN0cmluZyBsb2NhbFR5cGVOYW1lcyA9IG1f
b3JpZ2luYWxUeXBlTmFtZXMuaXNOdWxsKCkgPyBTdHJpbmcoImh0dHA6Ly93ZWJraXQub3JnL21p
Y3JvZGF0YS91bmRlZmluZWRJdGVtVHlwZSIpIDogbV9vcmlnaW5hbFR5cGVOYW1lczsKLSAgICBt
X25vZGUtPm5vZGVMaXN0cygpLT5yZW1vdmVDYWNoZVdpdGhOYW1lKHRoaXMsIER5bmFtaWNOb2Rl
TGlzdDo6TWljcm9EYXRhSXRlbUxpc3RUeXBlLCBsb2NhbFR5cGVOYW1lcyk7CisgICAgb3duZXJO
b2RlKCktPm5vZGVMaXN0cygpLT5yZW1vdmVDYWNoZVdpdGhOYW1lKHRoaXMsIER5bmFtaWNOb2Rl
TGlzdDo6TWljcm9EYXRhSXRlbUxpc3RUeXBlLCBtX29yaWdpbmFsVHlwZU5hbWVzKTsKIH0KIAog
Ym9vbCBNaWNyb0RhdGFJdGVtTGlzdDo6bm9kZU1hdGNoZXMoRWxlbWVudCogdGVzdE5vZGUpIGNv
bnN0CkBAIC02MCw3ICs1OSw3IEBAIGJvb2wgTWljcm9EYXRhSXRlbUxpc3Q6Om5vZGVNYXRjaGVz
KEVsZW0KICAgICBpZiAoIXRlc3RFbGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1zY29wZUF0
dHIpIHx8IHRlc3RFbGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1wcm9wQXR0cikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghbV90eXBlTmFtZXMuc2l6ZSgpKQorICAgIGlm
IChtX29yaWdpbmFsVHlwZU5hbWVzID09ICJodHRwOi8vd2Via2l0Lm9yZy9taWNyb2RhdGEvdW5k
ZWZpbmVkSXRlbVR5cGUiKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiB0ZXN0
RWxlbWVudC0+aXRlbVR5cGUoKS0+dG9rZW5zKCkuY29udGFpbnNBbGwobV90eXBlTmFtZXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149062</attachid>
            <date>2012-06-22 10:54:11 -0700</date>
            <delta_ts>2012-06-22 11:55:05 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_89757_20120622.diff</filename>
            <type>text/plain</type>
            <size>2709</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTAzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTIyICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IGRvY3VtZW50Lmdl
dEl0ZW1zKHR5cGVOYW1lcykgaXMgbm90IHJldHVybmluZyBNaWNyb2RhdGEgaXRlbXMgd2hlbiB0
eXBlTmFtZXMgYXVyZ3VtZW50IGlzIG5vdCBzcGVjaWZpZWQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTc1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdpdGggcjEyMDk3OSBjaGFuZ2UsIGl0IGNyZWF0
ZXMgTWljcm9EYXRhSXRlbUxpc3Qgd2l0aCBtX3R5cGVOYW1lcyA9ICJodHRwOi8vd2Via2l0Lm9y
Zy9taWNyb2RhdGEvdW5kZWZpbmVkSXRlbVR5cGUiLAorICAgICAgICB3aGVuIHR5cGVOYW1lcyBh
cmd1bWVudCBpcyBub3Qgc3BlY2lmaWVkLiBNb2RpZmllZCB0aGUgY2hlY2sgaW4gbm9kZU1hdGNo
ZXMoKSBhY2NvcmRpbmdseS4KKworICAgICAgICAqIGRvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp1bmRlZmluZWRJdGVtVHlwZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1MaXN0OjpNaWNyb0RhdGFJdGVtTGlz
dCk6CisgICAgICAgIChXZWJDb3JlOjpNaWNyb0RhdGFJdGVtTGlzdDo6fk1pY3JvRGF0YUl0ZW1M
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvRGF0YUl0ZW1MaXN0Ojpub2RlTWF0Y2hlcyk6
CisKIDIwMTItMDYtMjIgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjEwMjUuCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAJKHJldmlzaW9uIDEyMTAzNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDE3
ICszOCwyMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKK3N0YXRpYyBTdHJpbmcmIHVuZGVmaW5lZEl0ZW1UeXBlKCkKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgdW5kZWZpbmVkSXRlbVR5cGVTdHJpbmcsICgiaHR0cDovL3dl
YmtpdC5vcmcvbWljcm9kYXRhL3VuZGVmaW5lZEl0ZW1UeXBlIikpOworICAgIHJldHVybiB1bmRl
ZmluZWRJdGVtVHlwZVN0cmluZzsKK30KKwogTWljcm9EYXRhSXRlbUxpc3Q6Ok1pY3JvRGF0YUl0
ZW1MaXN0KFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIGNvbnN0IFN0cmluZyYgdHlwZU5hbWVz
KQogICAgIDogRHluYW1pY1N1YnRyZWVOb2RlTGlzdChyb290Tm9kZSkKLSAgICAsIG1fdHlwZU5h
bWVzKHR5cGVOYW1lcywgbm9kZSgpLT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKKyAgICAs
IG1fdHlwZU5hbWVzKHR5cGVOYW1lcywgZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCiAgICAg
LCBtX29yaWdpbmFsVHlwZU5hbWVzKHR5cGVOYW1lcykKIHsKIH0KIAogTWljcm9EYXRhSXRlbUxp
c3Q6On5NaWNyb0RhdGFJdGVtTGlzdCgpCiB7Ci0gICAgU3RyaW5nIGxvY2FsVHlwZU5hbWVzID0g
bV9vcmlnaW5hbFR5cGVOYW1lcy5pc051bGwoKSA/IFN0cmluZygiaHR0cDovL3dlYmtpdC5vcmcv
bWljcm9kYXRhL3VuZGVmaW5lZEl0ZW1UeXBlIikgOiBtX29yaWdpbmFsVHlwZU5hbWVzOwotICAg
IG1fbm9kZS0+bm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlV2l0aE5hbWUodGhpcywgRHluYW1pY05v
ZGVMaXN0OjpNaWNyb0RhdGFJdGVtTGlzdFR5cGUsIGxvY2FsVHlwZU5hbWVzKTsKKyAgICBvd25l
ck5vZGUoKS0+bm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlV2l0aE5hbWUodGhpcywgRHluYW1pY05v
ZGVMaXN0OjpNaWNyb0RhdGFJdGVtTGlzdFR5cGUsIG1fb3JpZ2luYWxUeXBlTmFtZXMpOwogfQog
CiBib29sIE1pY3JvRGF0YUl0ZW1MaXN0Ojpub2RlTWF0Y2hlcyhFbGVtZW50KiB0ZXN0Tm9kZSkg
Y29uc3QKQEAgLTYwLDcgKzY1LDcgQEAgYm9vbCBNaWNyb0RhdGFJdGVtTGlzdDo6bm9kZU1hdGNo
ZXMoRWxlbQogICAgIGlmICghdGVzdEVsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3Bl
QXR0cikgfHwgdGVzdEVsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXByb3BBdHRyKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFtX3R5cGVOYW1lcy5zaXplKCkpCisgICAg
aWYgKG1fb3JpZ2luYWxUeXBlTmFtZXMgPT0gdW5kZWZpbmVkSXRlbVR5cGUoKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gdGVzdEVsZW1lbnQtPml0ZW1UeXBlKCktPnRva2Vu
cygpLmNvbnRhaW5zQWxsKG1fdHlwZU5hbWVzKTsK
</data>
<flag name="review"
          id="156980"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149078</attachid>
            <date>2012-06-22 11:55:05 -0700</date>
            <delta_ts>2012-06-24 23:22:07 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_89757_20120622.diff</filename>
            <type>text/plain</type>
            <size>3351</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA2LTIyICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IGRvY3VtZW50Lmdl
dEl0ZW1zKHR5cGVOYW1lcykgaXMgbm90IHJldHVybmluZyBNaWNyb2RhdGEgaXRlbXMgd2hlbiB0
eXBlTmFtZXMgYXJndW1lbnQgaXMgbm90IHNwZWNpZmllZC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NzU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2l0aCByMTIwOTc5IGNoYW5nZSwgaXQgY3JlYXRl
cyBNaWNyb0RhdGFJdGVtTGlzdCB3aXRoIG1fdHlwZU5hbWVzID0gImh0dHA6Ly93ZWJraXQub3Jn
L21pY3JvZGF0YS91bmRlZmluZWRJdGVtVHlwZSIsCisgICAgICAgIHdoZW4gdHlwZU5hbWVzIGFy
Z3VtZW50IGlzIG5vdCBzcGVjaWZpZWQuIE1vZGlmaWVkIHRoZSBjaGVjayBpbiBub2RlTWF0Y2hl
cygpIGFjY29yZGluZ2x5LgorCisgICAgICAgIFRoaXMgZml4ZXMgdGhlIGZvbGxvd2luZyBmYWls
aW5nIHRlc3RzIDoKKyAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMDIuaHRtbAorICAg
ICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhLzAwMy5odG1sCisgICAgICAgICAgICBmYXN0L2Rv
bS9NaWNyb0RhdGEvMDA3Lmh0bWwKKyAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS8wMDku
aHRtbAorICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlv
bi1tdXN0LXNlZS10aGUtcHJvcGVydGllcy1hZGRlZC1pbi1pdGVtcmVmLmh0bWwKKworICAgICAg
ICAqIGRvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1bmRlZmlu
ZWRJdGVtVHlwZSk6IEl0IGRlZmluZXMgImh0dHA6Ly93ZWJraXQub3JnL21pY3JvZGF0YS91bmRl
ZmluZWRJdGVtVHlwZSIgc3RyaW5nIHVzaW5nCisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwg
dG8gYXZvaWQgU3RyaW5nIGNvbnZlcnNpb24uCisgICAgICAgIChXZWJDb3JlOjpNaWNyb0RhdGFJ
dGVtTGlzdDo6TWljcm9EYXRhSXRlbUxpc3QpOiBVc2UgZG9jdW1lbnQoKSBtZXRob2Qgb2YgRHlu
YW1pY05vZGVMaXN0IHRvIG9idGFpbgorICAgICAgICBkb2N1bWVudCBvZiBvd25lciBlbGVtZW50
LgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRhSXRlbUxpc3Q6On5NaWNyb0RhdGFJdGVtTGlz
dCk6IFJlbW92ZWQgb3JpZ2luYWxUeXBlTmFtZXMgbnVsbCBjaGVjay4KKyAgICAgICAgKFdlYkNv
cmU6Ok1pY3JvRGF0YUl0ZW1MaXN0Ojpub2RlTWF0Y2hlcyk6IFJldHVybiB0cnVlIGlmIG9yaWdp
bmFsVHlwZU5hbWVzIGlzIGVxdWFsIHRvIHVuZGVmaW5lZEl0ZW1UeXBlLgorCiAyMDEyLTA2LTIy
ICBCcmlhbiBTYWxvbW9uICA8YnNhbG9tb25AZ29vZ2xlLmNvbT4KIAogICAgICAgICBJbmNyZWFz
ZSB0aGUgR3JDb250ZXh0IHRleHR1cmUgY2FjaGUgY291bnQgY2FwIHRvIDJLCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAJKHJldmlzaW9uIDEyMTAzNCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDE3ICszOCwyMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKK3N0YXRpYyBjb25zdCBTdHJpbmcmIHVuZGVmaW5lZEl0ZW1UeXBlKCkK
K3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdW5kZWZpbmVkSXRlbVR5cGVTdHJp
bmcsICgiaHR0cDovL3dlYmtpdC5vcmcvbWljcm9kYXRhL3VuZGVmaW5lZEl0ZW1UeXBlIikpOwor
ICAgIHJldHVybiB1bmRlZmluZWRJdGVtVHlwZVN0cmluZzsKK30KKwogTWljcm9EYXRhSXRlbUxp
c3Q6Ok1pY3JvRGF0YUl0ZW1MaXN0KFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIGNvbnN0IFN0
cmluZyYgdHlwZU5hbWVzKQogICAgIDogRHluYW1pY1N1YnRyZWVOb2RlTGlzdChyb290Tm9kZSkK
LSAgICAsIG1fdHlwZU5hbWVzKHR5cGVOYW1lcywgbm9kZSgpLT5kb2N1bWVudCgpLT5pblF1aXJr
c01vZGUoKSkKKyAgICAsIG1fdHlwZU5hbWVzKHR5cGVOYW1lcywgZG9jdW1lbnQoKS0+aW5RdWly
a3NNb2RlKCkpCiAgICAgLCBtX29yaWdpbmFsVHlwZU5hbWVzKHR5cGVOYW1lcykKIHsKIH0KIAog
TWljcm9EYXRhSXRlbUxpc3Q6On5NaWNyb0RhdGFJdGVtTGlzdCgpCiB7Ci0gICAgU3RyaW5nIGxv
Y2FsVHlwZU5hbWVzID0gbV9vcmlnaW5hbFR5cGVOYW1lcy5pc051bGwoKSA/IFN0cmluZygiaHR0
cDovL3dlYmtpdC5vcmcvbWljcm9kYXRhL3VuZGVmaW5lZEl0ZW1UeXBlIikgOiBtX29yaWdpbmFs
VHlwZU5hbWVzOwotICAgIG1fbm9kZS0+bm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlV2l0aE5hbWUo
dGhpcywgRHluYW1pY05vZGVMaXN0OjpNaWNyb0RhdGFJdGVtTGlzdFR5cGUsIGxvY2FsVHlwZU5h
bWVzKTsKKyAgICBvd25lck5vZGUoKS0+bm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlV2l0aE5hbWUo
dGhpcywgRHluYW1pY05vZGVMaXN0OjpNaWNyb0RhdGFJdGVtTGlzdFR5cGUsIG1fb3JpZ2luYWxU
eXBlTmFtZXMpOwogfQogCiBib29sIE1pY3JvRGF0YUl0ZW1MaXN0Ojpub2RlTWF0Y2hlcyhFbGVt
ZW50KiB0ZXN0Tm9kZSkgY29uc3QKQEAgLTYwLDcgKzY1LDcgQEAgYm9vbCBNaWNyb0RhdGFJdGVt
TGlzdDo6bm9kZU1hdGNoZXMoRWxlbQogICAgIGlmICghdGVzdEVsZW1lbnQtPmZhc3RIYXNBdHRy
aWJ1dGUoaXRlbXNjb3BlQXR0cikgfHwgdGVzdEVsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoaXRl
bXByb3BBdHRyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFtX3R5cGVOYW1l
cy5zaXplKCkpCisgICAgaWYgKG1fb3JpZ2luYWxUeXBlTmFtZXMgPT0gdW5kZWZpbmVkSXRlbVR5
cGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gdGVzdEVsZW1lbnQtPml0
ZW1UeXBlKCktPnRva2VucygpLmNvbnRhaW5zQWxsKG1fdHlwZU5hbWVzKTsK
</data>
<flag name="review"
          id="156994"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>