<?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>69792</bug_id>
          
          <creation_ts>2011-10-10 15:09:29 -0700</creation_ts>
          <short_desc>[V8] CodeGeneratorV8 shouldn&apos;t hardcode the list of ActiveDOMObjects</short_desc>
          <delta_ts>2011-10-11 12:31:10 -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>WebCore JavaScript</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>66878</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>antonm</cc>
    
    <cc>enal</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>481202</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-10 15:09:29 -0700</bug_when>
    <thetext>http://trac.webkit.org/browser/trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm#L2860

sub IsActiveDomType needs to die.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481247</commentid>
    <comment_count>1</comment_count>
      <attachid>110425</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-10 15:52:18 -0700</bug_when>
    <thetext>Created attachment 110425
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481279</commentid>
    <comment_count>2</comment_count>
      <attachid>110432</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-10 16:35:11 -0700</bug_when>
    <thetext>Created attachment 110432
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481285</commentid>
    <comment_count>3</comment_count>
      <attachid>110432</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-10-10 16:41:40 -0700</bug_when>
    <thetext>Comment on attachment 110432
Patch

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

:-D

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:438
&gt; +ALWAYS_INLINE v8::Handle&lt;v8::Object&gt; ${className}::existingWrapper(${nativeType}* impl)
&gt; +{
&gt; +END
&gt; +    my $getWrapper = IsNodeSubType($dataNode) ? &quot;V8DOMWrapper::getWrapper(impl)&quot; : &quot;${domMapFunction}.get(impl)&quot;;
&gt; +    push(@headerContent, &lt;&lt;END);
&gt; +    return ${getWrapper};
&gt; +}

I assume this is just for readability?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481291</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-10 16:45:28 -0700</bug_when>
    <thetext>&gt; I assume this is just for readability?

At this call site:

- my $domMapFunction = GetDomMapFunction(0, $returnType);

It&apos;s hard to figure out whether $returnType is an active DOM object, so we let the C++ compiler figure it out for us using the new existingWrapper function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481315</commentid>
    <comment_count>5</comment_count>
      <attachid>110432</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-10 17:10:25 -0700</bug_when>
    <thetext>Comment on attachment 110432
Patch

Clearing flags on attachment: 110432

Committed r97109: &lt;http://trac.webkit.org/changeset/97109&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481316</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-10 17:10:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481418</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-10 20:44:02 -0700</bug_when>
    <thetext>Looks like this caused a bunch of &quot;binding tests failed&quot; on the bots:
http://build.webkit.org/builders/Leopard%20Intel%20Debug%20%28Tests%29/builds/34194</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481425</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-10 20:59:58 -0700</bug_when>
    <thetext>Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481673</commentid>
    <comment_count>9</comment_count>
      <attachid>110432</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-10-11 09:22:05 -0700</bug_when>
    <thetext>Comment on attachment 110432
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:432
&gt; +ALWAYS_INLINE v8::Handle&lt;v8::Object&gt; ${className}::existingWrapper(${nativeType}* impl)

may this go into common code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481700</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-11 10:07:17 -0700</bug_when>
    <thetext>&gt; may this go into common code?

I&apos;m not sure I understand your question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481747</commentid>
    <comment_count>11</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-10-11 11:15:44 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; may this go into common code?
&gt; 
&gt; I&apos;m not sure I understand your question.

Dreadful sorry, Adam.

I meant may we have this existingWrapper as a template function somewhere in Source/WebCore/bindings/v8 instead in generated files.

The goal is to have as minimum of logic in generated code as possible.

Feel free to ignore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481818</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-11 12:24:18 -0700</bug_when>
    <thetext>Ah, I see.  The advantage of having it in the generated code is that it depends on the ActiveDOMObject IDL attribute.  In some sense, I would have preferred to generate the code inline at the call sites in the code generator, but not all the type information was available, so I made the C++ compiler do that work.

I definitely agree that we should prefer to put as much in non-generated code as possible, but I don&apos;t see a clean way of doing that in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481824</commentid>
    <comment_count>13</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-10-11 12:31:10 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Ah, I see.  The advantage of having it in the generated code is that it depends on the ActiveDOMObject IDL attribute.  In some sense, I would have preferred to generate the code inline at the call sites in the code generator, but not all the type information was available, so I made the C++ compiler do that work.
&gt; 
&gt; I definitely agree that we should prefer to put as much in non-generated code as possible, but I don&apos;t see a clean way of doing that in this case.

ok</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110425</attachid>
            <date>2011-10-10 15:52:18 -0700</date>
            <delta_ts>2011-10-10 16:35:07 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-69792-20111010155216.patch</filename>
            <type>text/plain</type>
            <size>5376</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCShyZXZpc2lvbiA5NzA3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0yNjUsNyArMjY1LDcg
QEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgIyBFdmVudFRhcmdldC4KICAgICAkY29kZUdlbmVy
YXRvci0+QWRkTWV0aG9kc0NvbnN0YW50c0FuZEF0dHJpYnV0ZXNGcm9tUGFyZW50Q2xhc3Nlcygk
ZGF0YU5vZGUsIFxAYWxsUGFyZW50cywgMSk7CiAKLSAgICBteSAkaGFzRGVwZW5kZW50TGlmZXRp
bWUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOERlcGVuZGVudExpZmV0aW1l
In0gfHwgSXNBY3RpdmVEb21UeXBlKCRpbnRlcmZhY2VOYW1lKSB8fCAkY2xhc3NOYW1lID1+IC9T
VkcvOworICAgIG15ICRoYXNEZXBlbmRlbnRMaWZldGltZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlY4RGVwZW5kZW50TGlmZXRpbWUifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifSB8fCAkY2xhc3NOYW1lID1+IC9TVkcvOwog
ICAgIGlmICghJGhhc0RlcGVuZGVudExpZmV0aW1lKSB7CiAgICAgICAgIGZvcmVhY2ggKEB7JGRh
dGFOb2RlLT5wYXJlbnRzfSkgewogICAgICAgICAgICAgbXkgJHBhcmVudCA9ICRjb2RlR2VuZXJh
dG9yLT5TdHJpcE1vZHVsZSgkXyk7CkBAIC0zNDksNyArMzQ5LDcgQEAgc3ViIEdlbmVyYXRlSGVh
ZGVyCiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwogICAgIHN0YXRpYyBXcmFw
cGVyVHlwZUluZm8gaW5mbzsKIEVORAotICAgIGlmIChJc0FjdGl2ZURvbVR5cGUoJGltcGxDbGFz
c05hbWUpKSB7CisgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFjdGl2
ZURPTU9iamVjdCJ9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGlj
IEFjdGl2ZURPTU9iamVjdCogdG9BY3RpdmVET01PYmplY3Qodjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pik7XG4iKTsKICAgICB9CiAKQEAgLTQyMCw2ICs0MjAsOCBAQCBFTkQKICAgICB9CiAKICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7CisgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gZXhpc3RpbmdXcmFwcGVyKCR7bmF0aXZlVHlwZX0qKTsKKwogcHJpdmF0ZToKICAgICBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwU2xvdygke25hdGl2ZVR5cGV9Kik7CiB9
OwpAQCAtNDI3LDE0ICs0MjksMjAgQEAgcHJpdmF0ZToKIEVORAogCiAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgPDxFTkQpOworQUxXQVlTX0lOTElORSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+ICR7
Y2xhc3NOYW1lfTo6ZXhpc3RpbmdXcmFwcGVyKCR7bmF0aXZlVHlwZX0qIGltcGwpCit7CitFTkQK
KyAgICBteSAkZ2V0V3JhcHBlciA9IElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSA/ICJWOERPTVdy
YXBwZXI6OmdldFdyYXBwZXIoaW1wbCkiIDogIiR7ZG9tTWFwRnVuY3Rpb259LmdldChpbXBsKSI7
CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOworICAgIHJldHVybiAke2dldFdyYXBw
ZXJ9OworfQogCiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+ICR7Y2xhc3NOYW1lfTo6d3JhcCgke25h
dGl2ZVR5cGV9KiBpbXBsJHtmb3JjZU5ld09iamVjdElucHV0fSkKIHsKIEVORAogICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgaWYgKCFmb3JjZU5ld09iamVjdCkge1xuIikgaWYgSXNET01O
b2RlVHlwZSgkaW50ZXJmYWNlTmFtZSk7Ci0gICAgbXkgJGdldFdyYXBwZXIgPSBJc05vZGVTdWJU
eXBlKCRkYXRhTm9kZSkgPyAiVjhET01XcmFwcGVyOjpnZXRXcmFwcGVyKGltcGwpIiA6ICIke2Rv
bU1hcEZ1bmN0aW9ufS5nZXQoaW1wbCkiOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5E
KTsKLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gJHtnZXRXcmFwcGVy
fTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZXhpc3RpbmdXcmFw
cGVyKGltcGwpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQogICAgICAgICAgICAg
cmV0dXJuIHdyYXBwZXI7CiBFTkQKQEAgLTg4MCwxMSArODg4LDEwIEBAIEVORAogICAgICAgICAm
JiAkcmV0dXJuVHlwZSBuZSAiRXZlbnRUYXJnZXQiICYmICRyZXR1cm5UeXBlIG5lICJTZXJpYWxp
emVkU2NyaXB0VmFsdWUiICYmICRyZXR1cm5UeXBlIG5lICJET01XaW5kb3ciIAogICAgICAgICAm
JiAkcmV0dXJuVHlwZSAhfiAvU1ZHLyAmJiAkcmV0dXJuVHlwZSAhfiAvSFRNTC8gJiYgIUlzRE9N
Tm9kZVR5cGUoJHJldHVyblR5cGUpKSkgewogICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGUoJHJl
dHVyblR5cGUpOwotICAgICAgICBteSAkZG9tTWFwRnVuY3Rpb24gPSBHZXREb21NYXBGdW5jdGlv
bigwLCAkcmV0dXJuVHlwZSk7CiAgICAgICAgICMgQ2hlY2sgZm9yIGEgd3JhcHBlciBpbiB0aGUg
d3JhcHBlciBjYWNoZS4gSWYgdGhlcmUgaXMgb25lLCB3ZSBrbm93IHRoYXQgYSBoaWRkZW4gcmVm
ZXJlbmNlIGhhcyBhbHJlYWR5CiAgICAgICAgICMgYmVlbiBjcmVhdGVkLiBJZiB3ZSBkb24ndCBm
aW5kIGEgd3JhcHBlciwgd2UgY3JlYXRlIGJvdGggYSB3cmFwcGVyIGFuZCBhIGhpZGRlbiByZWZl
cmVuY2UuCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgUmVmUHRyPCRyZXR1
cm5UeXBlPiByZXN1bHQgPSAke2dldHRlclN0cmluZ307XG4iKTsKLSAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgIiAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlciA9IHJlc3Vs
dC5nZXQoKSA/ICR7ZG9tTWFwRnVuY3Rpb259LmdldChyZXN1bHQuZ2V0KCkpIDogdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KCk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAg
ICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlciA9IHJlc3VsdC5nZXQoKSA/IFY4JHtyZXR1
cm5UeXBlfTo6ZXhpc3RpbmdXcmFwcGVyKHJlc3VsdC5nZXQoKSkgOiB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+KCk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAo
d3JhcHBlci5Jc0VtcHR5KCkpIHtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xz
LCAiICAgICAgICB3cmFwcGVyID0gdG9WOChyZXN1bHQuZ2V0KCkpO1xuIik7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpXG4i
KTsKQEAgLTE5MTYsNyArMTkyMyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAg
ICBBZGRJbmNsdWRlc0ZvclR5cGUoJGludGVyZmFjZU5hbWUpOwogCi0gICAgbXkgJHRvQWN0aXZl
ID0gSXNBY3RpdmVEb21UeXBlKCRpbnRlcmZhY2VOYW1lKSA/ICIke2NsYXNzTmFtZX06OnRvQWN0
aXZlRE9NT2JqZWN0IiA6ICIwIjsKKyAgICBteSAkdG9BY3RpdmUgPSAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifSA/ICIke2NsYXNzTmFtZX06OnRvQWN0
aXZlRE9NT2JqZWN0IiA6ICIwIjsKIAogICAgICMgRmluZCB0aGUgc3VwZXIgZGVzY3JpcHRvci4K
ICAgICBteSAkcGFyZW50Q2xhc3MgPSAiIjsKQEAgLTI0NDIsNyArMjQ0OSw3IEBAIGJvb2wgJHtj
bGFzc05hbWV9OjpIYXNJbnN0YW5jZSh2ODo6SGFuZGwKIAogRU5ECiAKLSAgICBpZiAoSXNBY3Rp
dmVEb21UeXBlKCRpbnRlcmZhY2VOYW1lKSkgeworICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifSkgewogICAgICAgICAjIE1lc3NhZ2VQb3J0
IGlzIGhhbmRsZWQgbGlrZSBhbiBhY3RpdmUgZG9tIG9iamVjdCBldmVuIHRob3VnaCBpdCBkb2Vz
bid0IGluaGVyaXQKICAgICAgICAgIyBmcm9tIEFjdGl2ZURPTU9iamVjdCwgc28gZG9uJ3QgdHJ5
IHRvIGNhc3QgaXQgdG8gQWN0aXZlRE9NT2JqZWN0LgogICAgICAgICBteSAkcmV0dXJuVmFsdWUg
PSAkaW50ZXJmYWNlTmFtZSBlcSAiTWVzc2FnZVBvcnQiID8gIjAiIDogInRvTmF0aXZlKG9iamVj
dCkiOwpAQCAtMjg1MiwyOCArMjg1OSwxMSBAQCBzdWIgR2V0RG9tTWFwRnVuY3Rpb24KICAgICBt
eSAkZGF0YU5vZGUgPSBzaGlmdDsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwogICAgIHJldHVybiAi
Z2V0RE9NU1ZHRWxlbWVudEluc3RhbmNlTWFwKCkiIGlmICR0eXBlIGVxICJTVkdFbGVtZW50SW5z
dGFuY2UiOwotICAgIHJldHVybiAiZ2V0RE9NTm9kZU1hcCgpIiBpZiAoJGRhdGFOb2RlICYmIElz
Tm9kZVN1YlR5cGUoJGRhdGFOb2RlKSk7Ci0gICAgcmV0dXJuICJnZXRBY3RpdmVET01PYmplY3RN
YXAoKSIgaWYgSXNBY3RpdmVEb21UeXBlKCR0eXBlKTsKKyAgICByZXR1cm4gImdldERPTU5vZGVN
YXAoKSIgaWYgKElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSk7CisgICAgcmV0dXJuICJnZXRBY3Rp
dmVET01PYmplY3RNYXAoKSIgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0
aXZlRE9NT2JqZWN0In07CiAgICAgcmV0dXJuICJnZXRET01PYmplY3RNYXAoKSI7CiB9CiAKLXN1
YiBJc0FjdGl2ZURvbVR5cGUKLXsKLSAgICAjIEZJWE1FOiBDb25zaWRlciBtYWtpbmcgdGhpcyBh
biAuaWRsIGF0dHJpYnV0ZS4KLSAgICBteSAkdHlwZSA9IHNoaWZ0OwotICAgIHJldHVybiAxIGlm
ICR0eXBlIGVxICJFdmVudFNvdXJjZSI7Ci0gICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIk1lc3Nh
Z2VQb3J0IjsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiWE1MSHR0cFJlcXVlc3QiOwotICAg
IHJldHVybiAxIGlmICR0eXBlIGVxICJXZWJTb2NrZXQiOwotICAgIHJldHVybiAxIGlmICR0eXBl
IGVxICJXb3JrZXIiOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJTaGFyZWRXb3JrZXIiOwot
ICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJJREJSZXF1ZXN0IjsKLSAgICByZXR1cm4gMSBpZiAk
dHlwZSBlcSAiSURCVHJhbnNhY3Rpb24iOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJGaWxl
UmVhZGVyIjsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiRmlsZVdyaXRlciI7Ci0gICAgcmV0
dXJuIDA7Ci19Ci0KIHN1YiBHZXROYXRpdmVUeXBlRm9yQ29udmVyc2lvbnMKIHsKICAgICBteSAk
ZGF0YU5vZGUgPSBzaGlmdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110432</attachid>
            <date>2011-10-10 16:35:11 -0700</date>
            <delta_ts>2011-10-11 09:22:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69792-20111010163510.patch</filename>
            <type>text/plain</type>
            <size>6328</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3MTAyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTAtMTAgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBbVjhdIENvZGVHZW5lcmF0b3JWOCBz
aG91bGRuJ3QgaGFyZGNvZGUgdGhlIGxpc3Qgb2YgQWN0aXZlRE9NT2JqZWN0cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3OTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSB1c2VkIHRvIGhhcmQgY29k
ZSB0aGUgbGlzdCBvZiBhY3RpdmUgRE9NIG9iamVjdHMgaW4gdGhlIGNvZGUKKyAgICAgICAgZ2Vu
ZXJhdG9yLCBidXQgbm93IHdlIGhhdmUgYW4gSURMIGF0dHJpYnV0ZS4gIFRoaXMgcGF0Y2ggc3dp
dGNoZXMgdGhlCisgICAgICAgIGNvZGUgZ2VuZXJhdG9yIG92ZXIgdG8gdXNpbmcgdGhlIElETCBh
dHRyaWJ1dGUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlTm9ybWFsQXR0
ckdldHRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdl
dERvbU1hcEZ1bmN0aW9uKToKKwogMjAxMS0xMC0xMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHI5Njg3MCk6IGVkaXRpbmcvcGFzdGVib2Fy
ZC9zbWFydC1wYXN0ZS0wMDguaHRtbCBmYWlscyBvbiBub24tTWFjCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkocmV2aXNp
b24gOTcwNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtMjY1LDcgKzI2NSw3IEBAIHN1YiBHZW5lcmF0ZUhl
YWRlcgogICAgICMgRXZlbnRUYXJnZXQuCiAgICAgJGNvZGVHZW5lcmF0b3ItPkFkZE1ldGhvZHND
b25zdGFudHNBbmRBdHRyaWJ1dGVzRnJvbVBhcmVudENsYXNzZXMoJGRhdGFOb2RlLCBcQGFsbFBh
cmVudHMsIDEpOwogCi0gICAgbXkgJGhhc0RlcGVuZGVudExpZmV0aW1lID0gJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhEZXBlbmRlbnRMaWZldGltZSJ9IHx8IElzQWN0aXZlRG9t
VHlwZSgkaW50ZXJmYWNlTmFtZSkgfHwgJGNsYXNzTmFtZSA9fiAvU1ZHLzsKKyAgICBteSAkaGFz
RGVwZW5kZW50TGlmZXRpbWUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOERl
cGVuZGVudExpZmV0aW1lIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0
aXZlRE9NT2JqZWN0In0gfHwgJGNsYXNzTmFtZSA9fiAvU1ZHLzsKICAgICBpZiAoISRoYXNEZXBl
bmRlbnRMaWZldGltZSkgewogICAgICAgICBmb3JlYWNoIChAeyRkYXRhTm9kZS0+cGFyZW50c30p
IHsKICAgICAgICAgICAgIG15ICRwYXJlbnQgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUo
JF8pOwpAQCAtMzQ5LDcgKzM0OSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHN0YXRpYyB2
b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGluZm87
CiBFTkQKLSAgICBpZiAoSXNBY3RpdmVEb21UeXBlKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgIGlm
ICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifSkgewog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBBY3RpdmVET01PYmplY3Qq
IHRvQWN0aXZlRE9NT2JqZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4pO1xuIik7CiAgICAgfQog
CkBAIC00MjAsNiArNDIwLDggQEAgRU5ECiAgICAgfQogCiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgPDxFTkQpOworICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGV4aXN0aW5nV3Jh
cHBlcigke25hdGl2ZVR5cGV9Kik7CisKIHByaXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gd3JhcFNsb3coJHtuYXRpdmVUeXBlfSopOwogfTsKQEAgLTQyNywxNCArNDI5
LDIwIEBAIHByaXZhdGU6CiBFTkQKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsK
K0FMV0FZU19JTkxJTkUgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiAke2NsYXNzTmFtZX06OmV4aXN0
aW5nV3JhcHBlcigke25hdGl2ZVR5cGV9KiBpbXBsKQoreworRU5ECisgICAgbXkgJGdldFdyYXBw
ZXIgPSBJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSkgPyAiVjhET01XcmFwcGVyOjpnZXRXcmFwcGVy
KGltcGwpIiA6ICIke2RvbU1hcEZ1bmN0aW9ufS5nZXQoaW1wbCkiOworICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsIDw8RU5EKTsKKyAgICByZXR1cm4gJHtnZXRXcmFwcGVyfTsKK30KIAogdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiAke2NsYXNzTmFtZX06OndyYXAoJHtuYXRpdmVUeXBlfSogaW1wbCR7
Zm9yY2VOZXdPYmplY3RJbnB1dH0pCiB7CiBFTkQKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIGlmICghZm9yY2VOZXdPYmplY3QpIHtcbiIpIGlmIElzRE9NTm9kZVR5cGUoJGludGVyZmFj
ZU5hbWUpOwotICAgIG15ICRnZXRXcmFwcGVyID0gSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpID8g
IlY4RE9NV3JhcHBlcjo6Z2V0V3JhcHBlcihpbXBsKSIgOiAiJHtkb21NYXBGdW5jdGlvbn0uZ2V0
KGltcGwpIjsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7Ci0gICAgICAgIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9ICR7Z2V0V3JhcHBlcn07CisgICAgICAgIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGV4aXN0aW5nV3JhcHBlcihpbXBsKTsKICAgICAg
ICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiB3cmFwcGVyOwog
RU5ECkBAIC04ODAsMTEgKzg4OCwxMCBAQCBFTkQKICAgICAgICAgJiYgJHJldHVyblR5cGUgbmUg
IkV2ZW50VGFyZ2V0IiAmJiAkcmV0dXJuVHlwZSBuZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiAm
JiAkcmV0dXJuVHlwZSBuZSAiRE9NV2luZG93IiAKICAgICAgICAgJiYgJHJldHVyblR5cGUgIX4g
L1NWRy8gJiYgJHJldHVyblR5cGUgIX4gL0hUTUwvICYmICFJc0RPTU5vZGVUeXBlKCRyZXR1cm5U
eXBlKSkpIHsKICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCRyZXR1cm5UeXBlKTsKLSAgICAg
ICAgbXkgJGRvbU1hcEZ1bmN0aW9uID0gR2V0RG9tTWFwRnVuY3Rpb24oMCwgJHJldHVyblR5cGUp
OwogICAgICAgICAjIENoZWNrIGZvciBhIHdyYXBwZXIgaW4gdGhlIHdyYXBwZXIgY2FjaGUuIElm
IHRoZXJlIGlzIG9uZSwgd2Uga25vdyB0aGF0IGEgaGlkZGVuIHJlZmVyZW5jZSBoYXMgYWxyZWFk
eQogICAgICAgICAjIGJlZW4gY3JlYXRlZC4gSWYgd2UgZG9uJ3QgZmluZCBhIHdyYXBwZXIsIHdl
IGNyZWF0ZSBib3RoIGEgd3JhcHBlciBhbmQgYSBoaWRkZW4gcmVmZXJlbmNlLgogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIFJlZlB0cjwkcmV0dXJuVHlwZT4gcmVzdWx0ID0g
JHtnZXR0ZXJTdHJpbmd9O1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIg
ICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBwZXIgPSByZXN1bHQuZ2V0KCkgPyAke2RvbU1h
cEZ1bmN0aW9ufS5nZXQocmVzdWx0LmdldCgpKSA6IHY4OjpIYW5kbGU8djg6OlZhbHVlPigpO1xu
Iik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHdyYXBwZXIgPSByZXN1bHQuZ2V0KCkgPyBWOCR7cmV0dXJuVHlwZX06OmV4aXN0aW5n
V3JhcHBlcihyZXN1bHQuZ2V0KCkpIDogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpO1xuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgp
KSB7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgd3JhcHBl
ciA9IHRvVjgocmVzdWx0LmdldCgpKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERl
Y2xzLCAiICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKVxuIik7CkBAIC0xOTE2LDcgKzE5
MjMsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgQWRkSW5jbHVkZXNGb3JU
eXBlKCRpbnRlcmZhY2VOYW1lKTsKIAotICAgIG15ICR0b0FjdGl2ZSA9IElzQWN0aXZlRG9tVHlw
ZSgkaW50ZXJmYWNlTmFtZSkgPyAiJHtjbGFzc05hbWV9Ojp0b0FjdGl2ZURPTU9iamVjdCIgOiAi
MCI7CisgICAgbXkgJHRvQWN0aXZlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
QWN0aXZlRE9NT2JqZWN0In0gPyAiJHtjbGFzc05hbWV9Ojp0b0FjdGl2ZURPTU9iamVjdCIgOiAi
MCI7CiAKICAgICAjIEZpbmQgdGhlIHN1cGVyIGRlc2NyaXB0b3IuCiAgICAgbXkgJHBhcmVudENs
YXNzID0gIiI7CkBAIC0yNDQyLDcgKzI0NDksNyBAQCBib29sICR7Y2xhc3NOYW1lfTo6SGFzSW5z
dGFuY2Uodjg6OkhhbmRsCiAKIEVORAogCi0gICAgaWYgKElzQWN0aXZlRG9tVHlwZSgkaW50ZXJm
YWNlTmFtZSkpIHsKKyAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0
aXZlRE9NT2JqZWN0In0pIHsKICAgICAgICAgIyBNZXNzYWdlUG9ydCBpcyBoYW5kbGVkIGxpa2Ug
YW4gYWN0aXZlIGRvbSBvYmplY3QgZXZlbiB0aG91Z2ggaXQgZG9lc24ndCBpbmhlcml0CiAgICAg
ICAgICMgZnJvbSBBY3RpdmVET01PYmplY3QsIHNvIGRvbid0IHRyeSB0byBjYXN0IGl0IHRvIEFj
dGl2ZURPTU9iamVjdC4KICAgICAgICAgbXkgJHJldHVyblZhbHVlID0gJGludGVyZmFjZU5hbWUg
ZXEgIk1lc3NhZ2VQb3J0IiA/ICIwIiA6ICJ0b05hdGl2ZShvYmplY3QpIjsKQEAgLTI4NTIsMjgg
KzI4NTksMTEgQEAgc3ViIEdldERvbU1hcEZ1bmN0aW9uCiAgICAgbXkgJGRhdGFOb2RlID0gc2hp
ZnQ7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKICAgICByZXR1cm4gImdldERPTVNWR0VsZW1lbnRJ
bnN0YW5jZU1hcCgpIiBpZiAkdHlwZSBlcSAiU1ZHRWxlbWVudEluc3RhbmNlIjsKLSAgICByZXR1
cm4gImdldERPTU5vZGVNYXAoKSIgaWYgKCRkYXRhTm9kZSAmJiBJc05vZGVTdWJUeXBlKCRkYXRh
Tm9kZSkpOwotICAgIHJldHVybiAiZ2V0QWN0aXZlRE9NT2JqZWN0TWFwKCkiIGlmIElzQWN0aXZl
RG9tVHlwZSgkdHlwZSk7CisgICAgcmV0dXJuICJnZXRET01Ob2RlTWFwKCkiIGlmIChJc05vZGVT
dWJUeXBlKCRkYXRhTm9kZSkpOworICAgIHJldHVybiAiZ2V0QWN0aXZlRE9NT2JqZWN0TWFwKCki
IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9Owog
ICAgIHJldHVybiAiZ2V0RE9NT2JqZWN0TWFwKCkiOwogfQogCi1zdWIgSXNBY3RpdmVEb21UeXBl
Ci17Ci0gICAgIyBGSVhNRTogQ29uc2lkZXIgbWFraW5nIHRoaXMgYW4gLmlkbCBhdHRyaWJ1dGUu
Ci0gICAgbXkgJHR5cGUgPSBzaGlmdDsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiRXZlbnRT
b3VyY2UiOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJNZXNzYWdlUG9ydCI7Ci0gICAgcmV0
dXJuIDEgaWYgJHR5cGUgZXEgIlhNTEh0dHBSZXF1ZXN0IjsKLSAgICByZXR1cm4gMSBpZiAkdHlw
ZSBlcSAiV2ViU29ja2V0IjsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiV29ya2VyIjsKLSAg
ICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiU2hhcmVkV29ya2VyIjsKLSAgICByZXR1cm4gMSBpZiAk
dHlwZSBlcSAiSURCUmVxdWVzdCI7Ci0gICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIklEQlRyYW5z
YWN0aW9uIjsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiRmlsZVJlYWRlciI7Ci0gICAgcmV0
dXJuIDEgaWYgJHR5cGUgZXEgIkZpbGVXcml0ZXIiOwotICAgIHJldHVybiAwOwotfQotCiBzdWIg
R2V0TmF0aXZlVHlwZUZvckNvbnZlcnNpb25zCiB7CiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>