<?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>80707</bug_id>
          
          <creation_ts>2012-03-09 09:58:50 -0800</creation_ts>
          <short_desc>Presentation attribute cache</short_desc>
          <delta_ts>2012-03-09 12:16:32 -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>CSS</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>kling</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>574970</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-03-09 09:58:50 -0800</bug_when>
    <thetext>It is common for the same presentation attribute values repeat. We should introduce a cache that uses presentation attribute names and values as key. This will help to avoid repeated parsing of the same attribute values, reduce memory consumption and speed up the style resolve .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574981</commentid>
    <comment_count>1</comment_count>
      <attachid>131054</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-03-09 10:20:25 -0800</bug_when>
    <thetext>Created attachment 131054
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574992</commentid>
    <comment_count>2</comment_count>
      <attachid>131054</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-09 10:30:04 -0800</bug_when>
    <thetext>Comment on attachment 131054
patch

Attachment 131054 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/11898650</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574997</commentid>
    <comment_count>3</comment_count>
      <attachid>131054</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-09 10:34:31 -0800</bug_when>
    <thetext>Comment on attachment 131054
patch

Attachment 131054 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11906670</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574998</commentid>
    <comment_count>4</comment_count>
      <attachid>131054</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 10:34:41 -0800</bug_when>
    <thetext>Comment on attachment 131054
patch

Attachment 131054 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11904652</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575001</commentid>
    <comment_count>5</comment_count>
      <attachid>131054</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-03-09 10:43:34 -0800</bug_when>
    <thetext>Comment on attachment 131054
patch

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

&gt; Source/WebCore/dom/StyledElement.cpp:73
&gt; +    static PresentationAttributeCache* cache = new PresentationAttributeCache();
&gt; +    return *cache;

Needs more common WebKit patterns:
DEFINE_STATIC_LOCAL(PresentationAttributeCache, cache, ());
return cache;

&gt; Source/WebCore/dom/StyledElement.cpp:204
&gt; +        if (!attribute-&gt;namespaceURI().isNull())
&gt; +            return;

Perhaps this could be an assertion instead?

&gt; Source/WebCore/dom/StyledElement.cpp:236
&gt; +    PresentationAttributeCache::iterator cacheIterator;
&gt; +    if (cacheHash) {
&gt; +        cacheIterator = presentationAttributeCache().add(cacheHash, nullptr).first;

We could grab the PresentationAttributeCacheEntry* instead of holding on to a PresentationAttributeCache::iterator here to make the following code a little prettier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575008</commentid>
    <comment_count>6</comment_count>
      <attachid>131063</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-03-09 10:58:50 -0800</bug_when>
    <thetext>Created attachment 131063
try to silence the gcc warning, implement some comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575012</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-03-09 11:01:22 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; We could grab the PresentationAttributeCacheEntry* instead of holding on to a PresentationAttributeCache::iterator here to make the following code a little prettier.

I need the iterator to avoid the second hash lookup in case of insertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575027</commentid>
    <comment_count>8</comment_count>
      <attachid>131063</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-03-09 11:27:50 -0800</bug_when>
    <thetext>Comment on attachment 131063
try to silence the gcc warning, implement some comments

r=me.

I wonder if we can make this cache case-insensitive. That should provide a solid increase in sharing on Y2K content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575046</commentid>
    <comment_count>9</comment_count>
      <attachid>131063</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 11:57:38 -0800</bug_when>
    <thetext>Comment on attachment 131063
try to silence the gcc warning, implement some comments

Attachment 131063 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11894738

New failing tests:
fast/forms/input-type-change.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575067</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-03-09 12:16:32 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/110316 (with a fix for the failing test)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131054</attachid>
            <date>2012-03-09 10:20:25 -0800</date>
            <delta_ts>2012-03-09 10:58:50 -0800</delta_ts>
            <desc>patch</desc>
            <filename>presentation-attribute-cache-6.patch</filename>
            <type>text/plain</type>
            <size>7750</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDMwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAzLTA5ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVzZW50YXRpb24gYXR0cmli
dXRlIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MDcwNworCisgICAgICAgIEl0IGlzIGNvbW1vbiBmb3IgdGhlIHNhbWUgcHJlc2VudGF0aW9u
IGF0dHJpYnV0ZSB2YWx1ZXMgcmVwZWF0LiBXZSBzaG91bGQgaW50cm9kdWNlIGEgY2FjaGUgdGhh
dCB1c2VzIAorICAgICAgICBwcmVzZW50YXRpb24gYXR0cmlidXRlIG5hbWVzIGFuZCB2YWx1ZXMg
YXMga2V5LiBUaGlzIHdpbGwgaGVscCB0byBhdm9pZCByZXBlYXRlZCBwYXJzaW5nIG9mIHRoZSAK
KyAgICAgICAgc2FtZSBhdHRyaWJ1dGUgdmFsdWVzLCByZWR1Y2UgbWVtb3J5IGNvbnN1bXB0aW9u
IGFuZCBzcGVlZCB1cCB0aGUgc3R5bGUgcmVzb2x2ZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
cGF0Y2ggaW50cm9kdWNlcyBhIHNpbXBsZSBhbmQgc21hbGwgKDEyOCBlbnRyaWVzKSBnbG9iYWwg
Y2FjaGUuIEluIGdlbmVyYWwgd2ViIGJyb3dzaW5nIGl0IHNlZW1zCisgICAgICAgIHRvIGdpdmUg
c2hhcmluZyByYXRlIG9mID43NSUgKGFuIGF2ZXJhZ2UgcHJlc2VudGF0aW9uIGF0dHJpYnV0ZSBw
cm9wZXJ0eSBzZXQgaXMgc2hhcmVkIGJldHdlZW4gPjQgZWxlbWVudHMpLgorCisgICAgICAgICog
ZG9tL1N0eWxlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uQXR0
cmlidXRlQ2FjaGVLZXk6OlByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlS2V5KToKKyAgICAgICAg
KFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlS2V5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgIChQcmVzZW50YXRpb25BdHRyaWJ1
dGVDYWNoZUVudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnByZXNlbnRhdGlvbkF0dHJpYnV0ZUNh
Y2hlKToKKyAgICAgICAgKFdlYkNvcmU6OmF0dHJpYnV0ZU5hbWVTb3J0KToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlZEVsZW1lbnQ6Om1ha2VQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleSk6
CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVIYXNo
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnVwZGF0ZUF0dHJpYnV0ZVN0eWxl
KToKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChTdHlsZWRFbGVtZW50KToKKwogMjAxMi0wMy0wOSAgTmF0ZSBDaGFwaW4gIDxqYXBo
ZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENhY2hlZFJhd1Jlc291cmNlIGJyZWFrcyB3aGVu
IHRyeWluZyB0byBsb2FkCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxMTAyOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDMzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAorc3RydWN0IFByZXNlbnRhdGlvbkF0dHJpYnV0
ZUNhY2hlS2V5IHsKKyAgICBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleSgpIDogdGFnTmFt
ZSgwKSB7IH0KKyAgICBBdG9taWNTdHJpbmdJbXBsKiB0YWdOYW1lOworICAgIC8vIE9ubHkgdGhl
IHZhbHVlcyBuZWVkIHJlZmNvdW50aW5nLgorICAgIFZlY3RvcjxwYWlyPEF0b21pY1N0cmluZ0lt
cGwqLCBBdG9taWNTdHJpbmc+LCAzPiBhdHRyaWJ1dGVzQW5kVmFsdWVzOworfTsKKworc3RydWN0
IFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlRW50cnkgeworICAgIFByZXNlbnRhdGlvbkF0dHJp
YnV0ZUNhY2hlS2V5IGtleTsKKyAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gdmFsdWU7Cit9
OworCit0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIE93blB0cjxQcmVzZW50YXRpb25BdHRyaWJ1
dGVDYWNoZUVudHJ5PiwgQWxyZWFkeUhhc2hlZD4gUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGU7
CisgICAgCitzdGF0aWMgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFByZXNlbnRhdGlvbkF0dHJpYnV0
ZUNhY2hlS2V5JiBhLCBjb25zdCBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleSYgYikKK3sK
KyAgICBpZiAoYS50YWdOYW1lICE9IGIudGFnTmFtZSkKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgcmV0dXJuIGEuYXR0cmlidXRlc0FuZFZhbHVlcyAhPSBiLmF0dHJpYnV0ZXNBbmRWYWx1ZXM7
Cit9CisKK3N0YXRpYyBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSYgcHJlc2VudGF0aW9uQXR0
cmlidXRlQ2FjaGUoKQoreworICAgIHN0YXRpYyBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSog
Y2FjaGUgPSBuZXcgUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGUoKTsKKyAgICByZXR1cm4gKmNh
Y2hlOworfQorCiB2b2lkIFN0eWxlZEVsZW1lbnQ6OnVwZGF0ZVN0eWxlQXR0cmlidXRlKCkgY29u
c3QKIHsKICAgICBBU1NFUlQoIWlzU3R5bGVBdHRyaWJ1dGVWYWxpZCgpKTsKQEAgLTE1NywxMiAr
MTg0LDcwIEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6YWRkU3VicmVzb3VyY2VBdHRyaWIKICAgICAg
ICAgaW5saW5lU3R5bGUtPmFkZFN1YnJlc291cmNlU3R5bGVVUkxzKHVybHMsIGRvY3VtZW50KCkt
PmVsZW1lbnRTaGVldCgpKTsKIH0KIAotdm9pZCBTdHlsZWRFbGVtZW50Ojp1cGRhdGVBdHRyaWJ1
dGVTdHlsZSgpCitzdGF0aWMgaW5saW5lIGJvb2wgYXR0cmlidXRlTmFtZVNvcnQoY29uc3QgcGFp
cjxBdG9taWNTdHJpbmdJbXBsKiwgQXRvbWljU3RyaW5nPiYgcDEsIGNvbnN0IHBhaXI8QXRvbWlj
U3RyaW5nSW1wbCosIEF0b21pY1N0cmluZz4mIHAyKQogewotICAgIFJlZlB0cjxTdHlsZVByb3Bl
cnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwotICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVDb3VudCgpOyArK2kpIHsKKyAgICAvLyBTb3J0IGJh
c2VkIG9uIHRoZSBhdHRyaWJ1dGUgbmFtZSBwb2ludGVycy4gSXQgZG9lc24ndCBtYXR0ZXIgd2hh
dCB0aGUgb3JkZXIgaXMgYXMgbG9uZyBhcyBpdCBpcyBhbHdheXMgdGhlIHNhbWUuIAorICAgIHJl
dHVybiBwMS5maXJzdCA8IHAyLmZpcnN0OworfQorCit2b2lkIFN0eWxlZEVsZW1lbnQ6Om1ha2VQ
cmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleShQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtl
eSYgcmVzdWx0KSBjb25zdAoreyAgICAKKyAgICAvLyBGSVhNRTogRW5hYmxlIGZvciBTVkcuCisg
ICAgaWYgKG5hbWVzcGFjZVVSSSgpICE9IHhodG1sTmFtZXNwYWNlVVJJKQorICAgICAgICByZXR1
cm47CisgICAgdW5zaWduZWQgc2l6ZSA9IGF0dHJpYnV0ZUNvdW50KCk7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBBdHRyaWJ1dGUqIGF0dHJpYnV0
ZSA9IGF0dHJpYnV0ZUl0ZW0oaSk7Ci0gICAgICAgIGNvbGxlY3RTdHlsZUZvckF0dHJpYnV0ZShh
dHRyaWJ1dGUsIHN0eWxlLmdldCgpKTsKKyAgICAgICAgaWYgKCFpc1ByZXNlbnRhdGlvbkF0dHJp
YnV0ZShhdHRyaWJ1dGUtPm5hbWUoKSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
aWYgKCFhdHRyaWJ1dGUtPm5hbWVzcGFjZVVSSSgpLmlzTnVsbCgpKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAvLyBGSVhNRTogQmFja2dyb3VuZCBVUkwgbWF5IGRlcGVuZCBvbiB0aGUg
YmFzZSBVUkwgYW5kIGNhbid0IGJlIHNoYXJlZC4gRGlzYWxsb3cgY2FjaGluZy4KKyAgICAgICAg
aWYgKGF0dHJpYnV0ZS0+bmFtZSgpID09IGJhY2tncm91bmRBdHRyKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICByZXN1bHQuYXR0cmlidXRlc0FuZFZhbHVlcy5hcHBlbmQobWFrZV9wYWly
KGF0dHJpYnV0ZS0+bG9jYWxOYW1lKCkuaW1wbCgpLCBhdHRyaWJ1dGUtPnZhbHVlKCkpKTsKKyAg
ICB9CisgICAgaWYgKHJlc3VsdC5hdHRyaWJ1dGVzQW5kVmFsdWVzLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIC8vIEF0dHJpYnV0ZSBvcmRlciBkb2Vzbid0IG1hdHRlci4gU29ydCBm
b3IgZWFzeSBlcXVhbGl0eSBjb21wYXJpc29uLgorICAgIHN0ZDo6c29ydChyZXN1bHQuYXR0cmli
dXRlc0FuZFZhbHVlcy5iZWdpbigpLCByZXN1bHQuYXR0cmlidXRlc0FuZFZhbHVlcy5lbmQoKSwg
YXR0cmlidXRlTmFtZVNvcnQpOworICAgIC8vIFRoZSBjYWNoZSBrZXkgaXMgbm9uLW51bGwgd2hl
biB0aGUgdGFnTmFtZSBpcyBzZXQuCisgICAgcmVzdWx0LnRhZ05hbWUgPSBsb2NhbE5hbWUoKS5p
bXBsKCk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBjb21wdXRlUHJlc2VudGF0aW9uQXR0cmlidXRl
Q2FjaGVIYXNoKGNvbnN0IFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlS2V5JiBrZXkpCit7Cisg
ICAgaWYgKCFrZXkudGFnTmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgQVNTRVJUKGtleS5h
dHRyaWJ1dGVzQW5kVmFsdWVzLnNpemUoKSk7CisgICAgdW5zaWduZWQgYXR0cmlidXRlSGFzaCA9
IFN0cmluZ0hhc2hlcjo6aGFzaE1lbW9yeShrZXkuYXR0cmlidXRlc0FuZFZhbHVlcy5kYXRhKCks
IGtleS5hdHRyaWJ1dGVzQW5kVmFsdWVzLnNpemUoKSAqIHNpemVvZihrZXkuYXR0cmlidXRlc0Fu
ZFZhbHVlc1swXSkpOworICAgIHJldHVybiBXVEY6OmludEhhc2goKHN0YXRpY19jYXN0PHVpbnQ2
NF90PihrZXkudGFnTmFtZS0+ZXhpc3RpbmdIYXNoKCkpIDw8IDMyIHwgYXR0cmlidXRlSGFzaCkp
OworfQorCit2b2lkIFN0eWxlZEVsZW1lbnQ6OnVwZGF0ZUF0dHJpYnV0ZVN0eWxlKCkKK3sKKyAg
ICBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleSBjYWNoZUtleTsKKyAgICBtYWtlUHJlc2Vu
dGF0aW9uQXR0cmlidXRlQ2FjaGVLZXkoY2FjaGVLZXkpOworCisgICAgdW5zaWduZWQgY2FjaGVI
YXNoID0gY29tcHV0ZVByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlSGFzaChjYWNoZUtleSk7CisK
KyAgICBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZTo6aXRlcmF0b3IgY2FjaGVJdGVyYXRvcjsK
KyAgICBpZiAoY2FjaGVIYXNoKSB7CisgICAgICAgIGNhY2hlSXRlcmF0b3IgPSBwcmVzZW50YXRp
b25BdHRyaWJ1dGVDYWNoZSgpLmFkZChjYWNoZUhhc2gsIG51bGxwdHIpLmZpcnN0OworICAgICAg
ICBpZiAoY2FjaGVJdGVyYXRvci0+c2Vjb25kICYmIGNhY2hlSXRlcmF0b3ItPnNlY29uZC0+a2V5
ICE9IGNhY2hlS2V5KQorICAgICAgICAgICAgY2FjaGVIYXNoID0gMDsKKyAgICB9CisKKyAgICBS
ZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGU7CisgICAgaWYgKGNhY2hlSGFzaCAmJiBjYWNo
ZUl0ZXJhdG9yLT5zZWNvbmQpIAorICAgICAgICBzdHlsZSA9IGNhY2hlSXRlcmF0b3ItPnNlY29u
ZC0+dmFsdWU7CisgICAgZWxzZSB7CisgICAgICAgIHN0eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6
Y3JlYXRlKCk7CisgICAgICAgIHVuc2lnbmVkIHNpemUgPSBhdHRyaWJ1dGVDb3VudCgpOworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICBB
dHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZUl0ZW0oaSk7CisgICAgICAgICAgICBjb2xs
ZWN0U3R5bGVGb3JBdHRyaWJ1dGUoYXR0cmlidXRlLCBzdHlsZS5nZXQoKSk7CisgICAgICAgIH0K
ICAgICB9CiAgICAgY2xlYXJBdHRyaWJ1dGVTdHlsZURpcnR5KCk7CiAKQEAgLTE3MCw4ICsyNTUs
MjMgQEAgdm9pZCBTdHlsZWRFbGVtZW50Ojp1cGRhdGVBdHRyaWJ1dGVTdHlsZQogICAgICAgICBh
dHRyaWJ1dGVEYXRhKCktPnNldEF0dHJpYnV0ZVN0eWxlKDApOwogICAgIGVsc2UgewogICAgICAg
ICBzdHlsZS0+c2hyaW5rVG9GaXQoKTsKLSAgICAgICAgYXR0cmlidXRlRGF0YSgpLT5zZXRBdHRy
aWJ1dGVTdHlsZShzdHlsZS5yZWxlYXNlKCkpOworICAgICAgICBhdHRyaWJ1dGVEYXRhKCktPnNl
dEF0dHJpYnV0ZVN0eWxlKHN0eWxlKTsKICAgICB9CisKKyAgICBpZiAoIWNhY2hlSGFzaCB8fCBj
YWNoZUl0ZXJhdG9yLT5zZWNvbmQpCisgICAgICAgIHJldHVybjsKKworICAgIE93blB0cjxQcmVz
ZW50YXRpb25BdHRyaWJ1dGVDYWNoZUVudHJ5PiBuZXdFbnRyeSA9IGFkb3B0UHRyKG5ldyBQcmVz
ZW50YXRpb25BdHRyaWJ1dGVDYWNoZUVudHJ5KTsKKyAgICBuZXdFbnRyeS0+a2V5ID0gY2FjaGVL
ZXk7CisgICAgbmV3RW50cnktPnZhbHVlID0gc3R5bGUucmVsZWFzZSgpOworCisgICAgc3RhdGlj
IGNvbnN0IGludCBwcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZU1heGltdW1TaXplID0gMTI4Owor
ICAgIGlmIChwcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSgpLnNpemUoKSA+IHByZXNlbnRhdGlv
bkF0dHJpYnV0ZUNhY2hlTWF4aW11bVNpemUpIHsKKyAgICAgICAgLy8gU3RhcnQgYnVpbGRpbmcg
ZnJvbSBzY3JhdGNoIGlmIHRoZSBjYWNoZSBldmVyIGdldHMgYmlnLgorICAgICAgICBwcmVzZW50
YXRpb25BdHRyaWJ1dGVDYWNoZSgpLmNsZWFyKCk7CisgICAgICAgIHByZXNlbnRhdGlvbkF0dHJp
YnV0ZUNhY2hlKCkuc2V0KGNhY2hlSGFzaCwgbmV3RW50cnkucmVsZWFzZSgpKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgY2FjaGVJdGVyYXRvci0+c2Vjb25kID0gbmV3RW50cnkucmVsZWFzZSgpOwog
fQogCiB2b2lkIFN0eWxlZEVsZW1lbnQ6OmFkZFByb3BlcnR5VG9BdHRyaWJ1dGVTdHlsZShTdHls
ZVByb3BlcnR5U2V0KiBzdHlsZSwgaW50IHByb3BlcnR5SUQsIGludCBpZGVudGlmaWVyKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCShyZXZpc2lvbiAxMTAyOTgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF0dHJpYnV0ZTsKK3N0cnVjdCBQ
cmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleTsKIAogY2xhc3MgU3R5bGVkRWxlbWVudCA6IHB1
YmxpYyBFbGVtZW50IHsKIHB1YmxpYzoKQEAgLTgyLDYgKzgzLDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlU3R5bGVBdHRyaWJ1dGUoKSBjb25zdDsKICAgICB2b2lkIGlubGlu
ZVN0eWxlQ2hhbmdlZCgpOwogCisgICAgdm9pZCBtYWtlUHJlc2VudGF0aW9uQXR0cmlidXRlQ2Fj
aGVLZXkoUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVLZXkmKSBjb25zdDsKICAgICB2b2lkIHVw
ZGF0ZUF0dHJpYnV0ZVN0eWxlKCk7CiAKICAgICB2b2lkIGRlc3Ryb3lJbmxpbmVTdHlsZSgpCg==
</data>
<flag name="commit-queue"
          id="134240"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131063</attachid>
            <date>2012-03-09 10:58:50 -0800</date>
            <delta_ts>2012-03-09 11:57:38 -0800</delta_ts>
            <desc>try to silence the gcc warning, implement some comments</desc>
            <filename>presentation-attribute-cache-7.patch</filename>
            <type>text/plain</type>
            <size>7780</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDMwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAzLTA5ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVzZW50YXRpb24gYXR0cmli
dXRlIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MDcwNworCisgICAgICAgIEl0IGlzIGNvbW1vbiBmb3IgdGhlIHNhbWUgcHJlc2VudGF0aW9u
IGF0dHJpYnV0ZSB2YWx1ZXMgcmVwZWF0LiBXZSBzaG91bGQgaW50cm9kdWNlIGEgY2FjaGUgdGhh
dCB1c2VzIAorICAgICAgICBwcmVzZW50YXRpb24gYXR0cmlidXRlIG5hbWVzIGFuZCB2YWx1ZXMg
YXMga2V5LiBUaGlzIHdpbGwgaGVscCB0byBhdm9pZCByZXBlYXRlZCBwYXJzaW5nIG9mIHRoZSAK
KyAgICAgICAgc2FtZSBhdHRyaWJ1dGUgdmFsdWVzLCByZWR1Y2UgbWVtb3J5IGNvbnN1bXB0aW9u
IGFuZCBzcGVlZCB1cCB0aGUgc3R5bGUgcmVzb2x2ZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
cGF0Y2ggaW50cm9kdWNlcyBhIHNpbXBsZSBhbmQgc21hbGwgKDEyOCBlbnRyaWVzKSBnbG9iYWwg
Y2FjaGUuIEluIGdlbmVyYWwgd2ViIGJyb3dzaW5nIGl0IHNlZW1zCisgICAgICAgIHRvIGdpdmUg
c2hhcmluZyByYXRlIG9mID43NSUgKGFuIGF2ZXJhZ2UgcHJlc2VudGF0aW9uIGF0dHJpYnV0ZSBw
cm9wZXJ0eSBzZXQgaXMgc2hhcmVkIGJldHdlZW4gPjQgZWxlbWVudHMpLgorCisgICAgICAgICog
ZG9tL1N0eWxlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uQXR0
cmlidXRlQ2FjaGVLZXk6OlByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlS2V5KToKKyAgICAgICAg
KFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlS2V5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgIChQcmVzZW50YXRpb25BdHRyaWJ1
dGVDYWNoZUVudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnByZXNlbnRhdGlvbkF0dHJpYnV0ZUNh
Y2hlKToKKyAgICAgICAgKFdlYkNvcmU6OmF0dHJpYnV0ZU5hbWVTb3J0KToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlZEVsZW1lbnQ6Om1ha2VQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleSk6
CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVIYXNo
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnVwZGF0ZUF0dHJpYnV0ZVN0eWxl
KToKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChTdHlsZWRFbGVtZW50KToKKwogMjAxMi0wMy0wOSAgTmF0ZSBDaGFwaW4gIDxqYXBo
ZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENhY2hlZFJhd1Jlc291cmNlIGJyZWFrcyB3aGVu
IHRyeWluZyB0byBsb2FkCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxMTAyOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDMzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAorc3RydWN0IFByZXNlbnRhdGlvbkF0dHJpYnV0
ZUNhY2hlS2V5IHsKKyAgICBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleSgpIDogdGFnTmFt
ZSgwKSB7IH0KKyAgICBBdG9taWNTdHJpbmdJbXBsKiB0YWdOYW1lOworICAgIC8vIE9ubHkgdGhl
IHZhbHVlcyBuZWVkIHJlZmNvdW50aW5nLgorICAgIFZlY3RvcjxwYWlyPEF0b21pY1N0cmluZ0lt
cGwqLCBBdG9taWNTdHJpbmc+LCAzPiBhdHRyaWJ1dGVzQW5kVmFsdWVzOworfTsKKworc3RydWN0
IFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlRW50cnkgeworICAgIFByZXNlbnRhdGlvbkF0dHJp
YnV0ZUNhY2hlS2V5IGtleTsKKyAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gdmFsdWU7Cit9
OworCit0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIE93blB0cjxQcmVzZW50YXRpb25BdHRyaWJ1
dGVDYWNoZUVudHJ5PiwgQWxyZWFkeUhhc2hlZD4gUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGU7
CisgICAgCitzdGF0aWMgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFByZXNlbnRhdGlvbkF0dHJpYnV0
ZUNhY2hlS2V5JiBhLCBjb25zdCBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleSYgYikKK3sK
KyAgICBpZiAoYS50YWdOYW1lICE9IGIudGFnTmFtZSkKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgcmV0dXJuIGEuYXR0cmlidXRlc0FuZFZhbHVlcyAhPSBiLmF0dHJpYnV0ZXNBbmRWYWx1ZXM7
Cit9CisKK3N0YXRpYyBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSYgcHJlc2VudGF0aW9uQXR0
cmlidXRlQ2FjaGUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoUHJlc2VudGF0aW9uQXR0
cmlidXRlQ2FjaGUsIGNhY2hlLCAoKSk7CisgICAgcmV0dXJuIGNhY2hlOworfQorCiB2b2lkIFN0
eWxlZEVsZW1lbnQ6OnVwZGF0ZVN0eWxlQXR0cmlidXRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
IWlzU3R5bGVBdHRyaWJ1dGVWYWxpZCgpKTsKQEAgLTE1NywxMiArMTg0LDcwIEBAIHZvaWQgU3R5
bGVkRWxlbWVudDo6YWRkU3VicmVzb3VyY2VBdHRyaWIKICAgICAgICAgaW5saW5lU3R5bGUtPmFk
ZFN1YnJlc291cmNlU3R5bGVVUkxzKHVybHMsIGRvY3VtZW50KCktPmVsZW1lbnRTaGVldCgpKTsK
IH0KIAotdm9pZCBTdHlsZWRFbGVtZW50Ojp1cGRhdGVBdHRyaWJ1dGVTdHlsZSgpCitzdGF0aWMg
aW5saW5lIGJvb2wgYXR0cmlidXRlTmFtZVNvcnQoY29uc3QgcGFpcjxBdG9taWNTdHJpbmdJbXBs
KiwgQXRvbWljU3RyaW5nPiYgcDEsIGNvbnN0IHBhaXI8QXRvbWljU3RyaW5nSW1wbCosIEF0b21p
Y1N0cmluZz4mIHAyKQogewotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0
eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBh
dHRyaWJ1dGVDb3VudCgpOyArK2kpIHsKKyAgICAvLyBTb3J0IGJhc2VkIG9uIHRoZSBhdHRyaWJ1
dGUgbmFtZSBwb2ludGVycy4gSXQgZG9lc24ndCBtYXR0ZXIgd2hhdCB0aGUgb3JkZXIgaXMgYXMg
bG9uZyBhcyBpdCBpcyBhbHdheXMgdGhlIHNhbWUuIAorICAgIHJldHVybiBwMS5maXJzdCA8IHAy
LmZpcnN0OworfQorCit2b2lkIFN0eWxlZEVsZW1lbnQ6Om1ha2VQcmVzZW50YXRpb25BdHRyaWJ1
dGVDYWNoZUtleShQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleSYgcmVzdWx0KSBjb25zdAor
eyAgICAKKyAgICAvLyBGSVhNRTogRW5hYmxlIGZvciBTVkcuCisgICAgaWYgKG5hbWVzcGFjZVVS
SSgpICE9IHhodG1sTmFtZXNwYWNlVVJJKQorICAgICAgICByZXR1cm47CisgICAgdW5zaWduZWQg
c2l6ZSA9IGF0dHJpYnV0ZUNvdW50KCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNp
emU7ICsraSkgewogICAgICAgICBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZUl0ZW0o
aSk7Ci0gICAgICAgIGNvbGxlY3RTdHlsZUZvckF0dHJpYnV0ZShhdHRyaWJ1dGUsIHN0eWxlLmdl
dCgpKTsKKyAgICAgICAgaWYgKCFpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShhdHRyaWJ1dGUtPm5h
bWUoKSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgQVNTRVJUKGF0dHJpYnV0ZS0+
bmFtZXNwYWNlVVJJKCkuaXNOdWxsKCkpOworICAgICAgICAvLyBGSVhNRTogQmFja2dyb3VuZCBV
UkwgbWF5IGRlcGVuZCBvbiB0aGUgYmFzZSBVUkwgYW5kIGNhbid0IGJlIHNoYXJlZC4gRGlzYWxs
b3cgY2FjaGluZy4KKyAgICAgICAgaWYgKGF0dHJpYnV0ZS0+bmFtZSgpID09IGJhY2tncm91bmRB
dHRyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICByZXN1bHQuYXR0cmlidXRlc0FuZFZh
bHVlcy5hcHBlbmQobWFrZV9wYWlyKGF0dHJpYnV0ZS0+bG9jYWxOYW1lKCkuaW1wbCgpLCBhdHRy
aWJ1dGUtPnZhbHVlKCkpKTsKKyAgICB9CisgICAgaWYgKHJlc3VsdC5hdHRyaWJ1dGVzQW5kVmFs
dWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEF0dHJpYnV0ZSBvcmRlciBk
b2Vzbid0IG1hdHRlci4gU29ydCBmb3IgZWFzeSBlcXVhbGl0eSBjb21wYXJpc29uLgorICAgIHN0
ZDo6c29ydChyZXN1bHQuYXR0cmlidXRlc0FuZFZhbHVlcy5iZWdpbigpLCByZXN1bHQuYXR0cmli
dXRlc0FuZFZhbHVlcy5lbmQoKSwgYXR0cmlidXRlTmFtZVNvcnQpOworICAgIC8vIFRoZSBjYWNo
ZSBrZXkgaXMgbm9uLW51bGwgd2hlbiB0aGUgdGFnTmFtZSBpcyBzZXQuCisgICAgcmVzdWx0LnRh
Z05hbWUgPSBsb2NhbE5hbWUoKS5pbXBsKCk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBjb21wdXRl
UHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVIYXNoKGNvbnN0IFByZXNlbnRhdGlvbkF0dHJpYnV0
ZUNhY2hlS2V5JiBrZXkpCit7CisgICAgaWYgKCFrZXkudGFnTmFtZSkKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgQVNTRVJUKGtleS5hdHRyaWJ1dGVzQW5kVmFsdWVzLnNpemUoKSk7CisgICAgdW5z
aWduZWQgYXR0cmlidXRlSGFzaCA9IFN0cmluZ0hhc2hlcjo6aGFzaE1lbW9yeShrZXkuYXR0cmli
dXRlc0FuZFZhbHVlcy5kYXRhKCksIGtleS5hdHRyaWJ1dGVzQW5kVmFsdWVzLnNpemUoKSAqIHNp
emVvZihrZXkuYXR0cmlidXRlc0FuZFZhbHVlc1swXSkpOworICAgIHJldHVybiBXVEY6OmludEhh
c2goKHN0YXRpY19jYXN0PHVpbnQ2NF90PihrZXkudGFnTmFtZS0+ZXhpc3RpbmdIYXNoKCkpIDw8
IDMyIHwgYXR0cmlidXRlSGFzaCkpOworfQorCit2b2lkIFN0eWxlZEVsZW1lbnQ6OnVwZGF0ZUF0
dHJpYnV0ZVN0eWxlKCkKK3sKKyAgICBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleSBjYWNo
ZUtleTsKKyAgICBtYWtlUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVLZXkoY2FjaGVLZXkpOwor
CisgICAgdW5zaWduZWQgY2FjaGVIYXNoID0gY29tcHV0ZVByZXNlbnRhdGlvbkF0dHJpYnV0ZUNh
Y2hlSGFzaChjYWNoZUtleSk7CisKKyAgICBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZTo6aXRl
cmF0b3IgY2FjaGVJdGVyYXRvcjsKKyAgICBpZiAoY2FjaGVIYXNoKSB7CisgICAgICAgIGNhY2hl
SXRlcmF0b3IgPSBwcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSgpLmFkZChjYWNoZUhhc2gsIG51
bGxwdHIpLmZpcnN0OworICAgICAgICBpZiAoY2FjaGVJdGVyYXRvci0+c2Vjb25kICYmIGNhY2hl
SXRlcmF0b3ItPnNlY29uZC0+a2V5ICE9IGNhY2hlS2V5KQorICAgICAgICAgICAgY2FjaGVIYXNo
ID0gMDsKKyAgICB9IGVsc2UKKyAgICAgICAgY2FjaGVJdGVyYXRvciA9IHByZXNlbnRhdGlvbkF0
dHJpYnV0ZUNhY2hlKCkuZW5kKCk7CisKKyAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5
bGU7CisgICAgaWYgKGNhY2hlSGFzaCAmJiBjYWNoZUl0ZXJhdG9yLT5zZWNvbmQpIAorICAgICAg
ICBzdHlsZSA9IGNhY2hlSXRlcmF0b3ItPnNlY29uZC0+dmFsdWU7CisgICAgZWxzZSB7CisgICAg
ICAgIHN0eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgICAgIHVuc2lnbmVk
IHNpemUgPSBhdHRyaWJ1dGVDb3VudCgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IGF0dHJp
YnV0ZUl0ZW0oaSk7CisgICAgICAgICAgICBjb2xsZWN0U3R5bGVGb3JBdHRyaWJ1dGUoYXR0cmli
dXRlLCBzdHlsZS5nZXQoKSk7CisgICAgICAgIH0KICAgICB9CiAgICAgY2xlYXJBdHRyaWJ1dGVT
dHlsZURpcnR5KCk7CiAKQEAgLTE3MCw4ICsyNTUsMjMgQEAgdm9pZCBTdHlsZWRFbGVtZW50Ojp1
cGRhdGVBdHRyaWJ1dGVTdHlsZQogICAgICAgICBhdHRyaWJ1dGVEYXRhKCktPnNldEF0dHJpYnV0
ZVN0eWxlKDApOwogICAgIGVsc2UgewogICAgICAgICBzdHlsZS0+c2hyaW5rVG9GaXQoKTsKLSAg
ICAgICAgYXR0cmlidXRlRGF0YSgpLT5zZXRBdHRyaWJ1dGVTdHlsZShzdHlsZS5yZWxlYXNlKCkp
OworICAgICAgICBhdHRyaWJ1dGVEYXRhKCktPnNldEF0dHJpYnV0ZVN0eWxlKHN0eWxlKTsKICAg
ICB9CisKKyAgICBpZiAoIWNhY2hlSGFzaCB8fCBjYWNoZUl0ZXJhdG9yLT5zZWNvbmQpCisgICAg
ICAgIHJldHVybjsKKworICAgIE93blB0cjxQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUVudHJ5
PiBuZXdFbnRyeSA9IGFkb3B0UHRyKG5ldyBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUVudHJ5
KTsKKyAgICBuZXdFbnRyeS0+a2V5ID0gY2FjaGVLZXk7CisgICAgbmV3RW50cnktPnZhbHVlID0g
c3R5bGUucmVsZWFzZSgpOworCisgICAgc3RhdGljIGNvbnN0IGludCBwcmVzZW50YXRpb25BdHRy
aWJ1dGVDYWNoZU1heGltdW1TaXplID0gMTI4OworICAgIGlmIChwcmVzZW50YXRpb25BdHRyaWJ1
dGVDYWNoZSgpLnNpemUoKSA+IHByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlTWF4aW11bVNpemUp
IHsKKyAgICAgICAgLy8gU3RhcnQgYnVpbGRpbmcgZnJvbSBzY3JhdGNoIGlmIHRoZSBjYWNoZSBl
dmVyIGdldHMgYmlnLgorICAgICAgICBwcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSgpLmNsZWFy
KCk7CisgICAgICAgIHByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlKCkuc2V0KGNhY2hlSGFzaCwg
bmV3RW50cnkucmVsZWFzZSgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgY2FjaGVJdGVyYXRvci0+
c2Vjb25kID0gbmV3RW50cnkucmVsZWFzZSgpOwogfQogCiB2b2lkIFN0eWxlZEVsZW1lbnQ6OmFk
ZFByb3BlcnR5VG9BdHRyaWJ1dGVTdHlsZShTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgaW50IHBy
b3BlcnR5SUQsIGludCBpZGVudGlmaWVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1N0eWxl
ZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVu
dC5oCShyZXZpc2lvbiAxMTAyOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEF0dHJpYnV0ZTsKK3N0cnVjdCBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtl
eTsKIAogY2xhc3MgU3R5bGVkRWxlbWVudCA6IHB1YmxpYyBFbGVtZW50IHsKIHB1YmxpYzoKQEAg
LTgyLDYgKzgzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3R5bGVBdHRy
aWJ1dGUoKSBjb25zdDsKICAgICB2b2lkIGlubGluZVN0eWxlQ2hhbmdlZCgpOwogCisgICAgdm9p
ZCBtYWtlUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVLZXkoUHJlc2VudGF0aW9uQXR0cmlidXRl
Q2FjaGVLZXkmKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUF0dHJpYnV0ZVN0eWxlKCk7CiAKICAg
ICB2b2lkIGRlc3Ryb3lJbmxpbmVTdHlsZSgpCg==
</data>
<flag name="review"
          id="134247"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="134255"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>