<?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>65202</bug_id>
          
          <creation_ts>2011-07-26 12:52:58 -0700</creation_ts>
          <short_desc>Support moving GPU accelerated canvas to a new document (popup window)</short_desc>
          <delta_ts>2011-08-24 11:35:30 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>65402</dup_id>
          
          <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>0</everconfirmed>
          <reporter name="Tom Hudson">tomhudson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alokp</cc>
    
    <cc>apatrick</cc>
    
    <cc>dglazkov</cc>
    
    <cc>igor.oliveira</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>reed</cc>
    
    <cc>tomhudson</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>442469</commentid>
    <comment_count>0</comment_count>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2011-07-26 12:52:58 -0700</bug_when>
    <thetext>Support moving GPU accelerated canvas to a new document (popup window)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442473</commentid>
    <comment_count>1</comment_count>
      <attachid>102042</attachid>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2011-07-26 12:56:31 -0700</bug_when>
    <thetext>Created attachment 102042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442478</commentid>
    <comment_count>2</comment_count>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2011-07-26 13:02:23 -0700</bug_when>
    <thetext>This is a proof-of-concept patch to solve http://code.google.com/p/chromium/issues/detail?id=86369. The issue is that a webpage that:
1. creates a canvas
2. creates a popup window
3. removes the canvas from the main window
4. adds the canvas to the popup window
did not work using the Chromium accelerated canvas.

The patch has two parts:
1. correctly reinitialize drawing when the canvas is added to a new document (and correspondingly shut down drawing when the canvas is removed from a document)
2. save the image when the canvas is removed from a document, and re-upload it to the graphics hardware when added to a new document

Known problems:
1. we&apos;re not sure how to test aside from manually
2. manual testing is fraught because the GPU renderer is frequently failing over into software</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442483</commentid>
    <comment_count>3</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-07-26 13:08:28 -0700</bug_when>
    <thetext>You would need to sync with TOT. The file has changed since you last synced.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442490</commentid>
    <comment_count>4</comment_count>
      <attachid>102042</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-26 13:32:40 -0700</bug_when>
    <thetext>Comment on attachment 102042
Patch

I&apos;m afraid this won&apos;t handle the case where a document is moved from one Page to another, since in that case nothing changes on the element level.

The only way I can think of to deal with this is to change the shared GraphicsContext3D to be per-process instead of per-Page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442492</commentid>
    <comment_count>5</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-07-26 13:35:49 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 102042 [details])
&gt; I&apos;m afraid this won&apos;t handle the case where a document is moved from one Page to another, since in that case nothing changes on the element level.
&gt; 

I believe this case could be handled by simply re-parenting the shared GraphicsContext3D. Al recently added support for re-parenting off-screen contexts. But it may not be exposed to WebKit yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442498</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-26 13:41:25 -0700</bug_when>
    <thetext>There are potentially multiple canvases using the shared context, however. What do you do when a subset of those canvases move to a different compositor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442503</commentid>
    <comment_count>7</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-07-26 13:47:28 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; There are potentially multiple canvases using the shared context, however. What do you do when a subset of those canvases move to a different compositor?

Yes. I was suggesting re-parenting only in the case when the whole document is moved to another page. When the document moves, don&apos;t all canvases move along as well? I am fuzzy on difference between WebKit&apos;s page and Javascript&apos;s document.

When individual canvases are moved, Tom&apos;s current approach would work.

BTW from resource consumption aspect, there may be benefits of having a shared GraphicsContext3D per process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442507</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-26 13:54:15 -0700</bug_when>
    <thetext>There can be multiple documents in the same compositor context, though.

one render process :: 1-many PageGroups
1 PageGroup :: 1-many Page
1 Page :: 1 WebViewImpl :: 1 LayerRendererChromium :: 1 Compositor context
1 Page :: 1 FrameTree
1 FrameTree :: 1-many Document
1 Document :: 1-many elements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442533</commentid>
    <comment_count>9</comment_count>
      <attachid>102053</attachid>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2011-07-26 14:39:10 -0700</bug_when>
    <thetext>Created attachment 102053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442538</commentid>
    <comment_count>10</comment_count>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2011-07-26 14:42:49 -0700</bug_when>
    <thetext>Merging with Alok&apos;s work from Friday/Saturday made this patch much simpler.

James, can you construct a repro case for the problem you&apos;re worrying about? Maybe then we can create a separate bug to track its solution?

Note: the test posted with the original Chromium bug is now invalid, because 100x100 canvases are generated in software. The canvas size must be increased to at least 128x128 to test hardware acceleration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442540</commentid>
    <comment_count>11</comment_count>
      <attachid>102053</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-07-26 14:42:49 -0700</bug_when>
    <thetext>Comment on attachment 102053
Patch

Attachment 102053 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/9249546</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442543</commentid>
    <comment_count>12</comment_count>
      <attachid>102053</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-07-26 14:44:46 -0700</bug_when>
    <thetext>Comment on attachment 102053
Patch

Attachment 102053 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9250480</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442547</commentid>
    <comment_count>13</comment_count>
      <attachid>102056</attachid>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2011-07-26 14:48:29 -0700</bug_when>
    <thetext>Created attachment 102056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442567</commentid>
    <comment_count>14</comment_count>
      <attachid>102059</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-26 15:19:57 -0700</bug_when>
    <thetext>Created attachment 102059
test page for moving canvas to popup and moving iframe containing canvas to popup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442568</commentid>
    <comment_count>15</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-26 15:20:29 -0700</bug_when>
    <thetext>Test case added that includes an iframe case.  I don&apos;t think it&apos;s a different bug, though, it&apos;s the same issue just in a different form.  Doing this at the per-document level just isn&apos;t gonna work, I&apos;m afraid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442571</commentid>
    <comment_count>16</comment_count>
      <attachid>102056</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-26 15:27:52 -0700</bug_when>
    <thetext>Comment on attachment 102056
Patch

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

New failing tests:
fast/canvas/font-update.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442924</commentid>
    <comment_count>17</comment_count>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2011-07-27 07:32:45 -0700</bug_when>
    <thetext>It looks like my initial set of patches is not the right approach; although I&apos;m pretty confident that the expected png for fast/canvas/font-update.html is wrong, this patch breaks that test. The test implies that it&apos;s valid to draw to a context which doesn&apos;t have a parent, and that when the context is reattached to a parent those changes should be visible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443040</commentid>
    <comment_count>18</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-27 11:37:23 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; It looks like my initial set of patches is not the right approach; although I&apos;m pretty confident that the expected png for fast/canvas/font-update.html is wrong, this patch breaks that test. The test implies that it&apos;s valid to draw to a context which doesn&apos;t have a parent, and that when the context is reattached to a parent those changes should be visible.

That is valid, and it&apos;s done quite a bit.  The context exists to whether the canvas is in the DOM or not and is persistent.

Here&apos;s another case that should work: you should be able to call ctx.drawImage(othercanvas, ...) when othercanvas is in the popup and ctx is for a canvas in the main page and vice versa.  I can whip up a test page real quick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443071</commentid>
    <comment_count>19</comment_count>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2011-07-27 12:20:51 -0700</bug_when>
    <thetext>A really simple change of my patch (moving all of canvasWillBeRemoved into the start of canvasInsertedIntoDocument) seems to address both the original bug and the fast/canvas/font-update.html layout test failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443107</commentid>
    <comment_count>20</comment_count>
      <attachid>102173</attachid>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2011-07-27 12:56:28 -0700</bug_when>
    <thetext>Created attachment 102173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443113</commentid>
    <comment_count>21</comment_count>
      <attachid>102173</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-07-27 13:04:16 -0700</bug_when>
    <thetext>Comment on attachment 102173
Patch

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

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2027
&gt; +    RefPtr&lt;ImageData&gt; imageInPreviousContext = getImageData(0, 0, canvas()-&gt;width(), canvas()-&gt;height(), ec);

For this to succeed, the old context should still be valid. Can we assume this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443147</commentid>
    <comment_count>22</comment_count>
      <attachid>102184</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-27 14:13:44 -0700</bug_when>
    <thetext>Created attachment 102184
test page with canvas-&gt;canvas draws from main doc to poup

load this page up, click &quot;popup&quot;, &quot;move canvas&quot;, then &quot;draw from main document canvas to popup&apos;s canvas&quot;. you should see a yellow square in the popup&apos;s canvas</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443148</commentid>
    <comment_count>23</comment_count>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2011-07-27 14:15:57 -0700</bug_when>
    <thetext>Alok suggested that I look into the 3D canvas case. It displays the same problem: if you move an experimental-webgl context from the main window to a popup, it shows up blank in the popup. Fixing that will be a bit more complicated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443151</commentid>
    <comment_count>24</comment_count>
      <attachid>102173</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-27 14:19:50 -0700</bug_when>
    <thetext>Comment on attachment 102173
Patch

Yeah, the webgl case is another interesting situation.

I really think that doing this at the DOM level will not work and it&apos;s a bad intermediate state to go through.  There are many cases where this will fall over in ways that are completely inexplicable to the author.  I really think that to get this right you&apos;ll need to fix it at the sharedGraphicsContext3D level and make resource sharing Do The Right Thing under the scenes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456257</commentid>
    <comment_count>25</comment_count>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2011-08-24 11:35:30 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 65402 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102042</attachid>
            <date>2011-07-26 12:56:31 -0700</date>
            <delta_ts>2011-07-26 14:39:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65202-20110726155629.patch</filename>
            <type>text/plain</type>
            <size>6664</size>
            <attacher name="Tom Hudson">tomhudson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxNzc1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDctMjYgIFRvbSBIdWRz
b24gIDx0b21odWRzb25AZ29vZ2xlLmNvbT4KKworICAgICAgICBTdXBwb3J0IG1vdmluZyBHUFUg
YWNjZWxlcmF0ZWQgY2FudmFzIHRvIGEgbmV3IGRvY3VtZW50IChwb3B1cCB3aW5kb3cpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIwMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4g
KE9PUFMhKQorCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6d2lsbFJlbW92ZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAq
IGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjphc3NvY2lhdGVDb250ZXh0MkQpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkaXNzb2NpYXRlQ29udGV4dDJEKToK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaDoKKwogMjAx
MS0wNy0yNiAgVmlldC1UcnVuZyBMdXUgIDx2aWV0dHJ1bmdsdXVAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIEltcHJvdmUgKGkuZS4sIHNwZWVkIHVwKSAuZ3lwKGkpIGZpbGVzIGZvciBDaHJvbWl1
bQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHJldmlz
aW9uIDkxNDk3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUsMzggQEAgSFRNTENhbnZhc0VsZW1lbnQ6On5I
VE1MQ2FudmFzRWxlbWVudCgpCiAgICAgbV9jb250ZXh0LmNsZWFyKCk7IC8vIEVuc3VyZSB0aGlz
IGdvZXMgYXdheSBiZWZvcmUgdGhlIEltYWdlQnVmZmVyLgogfQogCit2b2lkIEhUTUxDYW52YXNF
bGVtZW50Ojp3aWxsUmVtb3ZlKCkKK3sKKyAgICBIVE1MRWxlbWVudDo6d2lsbFJlbW92ZSgpOwor
ICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyNpZiBFTkFCTEUoQUNDRUxF
UkFURURfMkRfQ0FOVkFTKQorICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pczJkKCkp
IHsKKyAgICAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBjb250ZXh0MmQgPSAKKyAgICAg
ICAgICAgIHN0YXRpY19jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCo+IChtX2NvbnRleHQu
Z2V0KCkpOworICAgICAgICBpZiAoY29udGV4dDJkKQorICAgICAgICAgICAgY29udGV4dDJkLT5k
aXNzb2NpYXRlQ29udGV4dDJEKCk7CisgICAgfQorI2VuZGlmCit9CisKK3ZvaWQgSFRNTENhbnZh
c0VsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKK3sKKyAgICBIVE1MRWxlbWVudDo6aW5z
ZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJu
OworCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyAgICBpZiAobV9jb250ZXh0
ICYmIG1fY29udGV4dC0+aXMyZCgpKSB7CisgICAgICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCogY29udGV4dDJkID0gCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQqPiAobV9jb250ZXh0LmdldCgpKTsKKyAgICAgICAgaWYgKGNvbnRleHQyZCkKKyAg
ICAgICAgICAgIGNvbnRleHQyZC0+YXNzb2NpYXRlQ29udGV4dDJEKCk7CisgICAgfQorI2VuZGlm
Cit9CisKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSogYXR0cikKIHsKICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSA9IGF0dHIt
Pm5hbWUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHJl
dmlzaW9uIDkxNDk3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwogICAgIHZpcnR1YWwgfkhUTUxDYW52YXNFbGVtZW50KCk7CiAKKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbFJlbW92ZSgpOworICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1
bWVudCgpOworCiAgICAgdm9pZCBhZGRPYnNlcnZlcihDYW52YXNPYnNlcnZlciopOwogICAgIHZv
aWQgcmVtb3ZlT2JzZXJ2ZXIoQ2FudmFzT2JzZXJ2ZXIqKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
CShyZXZpc2lvbiA5MTQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNSw2ICsxMjUsNyBAQCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OkNhbnZhc1JlbmRlcmluCiAjZW5kaWYKICNpZiBFTkFC
TEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgICwgbV9jb250ZXh0M0QoMCkKKyAgICAsIG1f
b2xkRG9jdW1lbnRJbWFnZSgwKQogI2VuZGlmCiB7CiAjaWYgIUVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKQEAgLTEzNiwyMiArMTM3LDcgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpDYW52
YXNSZW5kZXJpbgogICAgIHNldExpbmVXaWR0aChsaW5lV2lkdGgoKSk7CiAKICNpZiBFTkFCTEUo
QUNDRUxFUkFURURfMkRfQ0FOVkFTKQotICAgIFBhZ2UqIHAgPSBjYW52YXMtPmRvY3VtZW50KCkt
PnBhZ2UoKTsKLSAgICBpZiAoIXApCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoIShwLT5zZXR0
aW5ncygpLT5hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCgpIHx8IHAtPnNldHRpbmdzKCktPmxl
Z2FjeUFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKCkpKQotICAgICAgICByZXR1cm47Ci0gICAg
aWYgKEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCkpIHsKLSAgICAgICAgbV9j
b250ZXh0M0QgPSBwLT5zaGFyZWRHcmFwaGljc0NvbnRleHQzRCgpOwotICAgICAgICBpZiAobV9j
b250ZXh0M0QpIHsKLSAgICAgICAgICAgIG1fZHJhd2luZ0J1ZmZlciA9IG1fY29udGV4dDNELT5j
cmVhdGVEcmF3aW5nQnVmZmVyKEludFNpemUoY2FudmFzLT53aWR0aCgpLCBjYW52YXMtPmhlaWdo
dCgpKSk7Ci0gICAgICAgICAgICBpZiAoIW1fZHJhd2luZ0J1ZmZlcikgewotICAgICAgICAgICAg
ICAgIGMtPnNldEdyYXBoaWNzQ29udGV4dDNEKDAsIDAsIEludFNpemUoKSk7Ci0gICAgICAgICAg
ICAgICAgbV9jb250ZXh0M0QuY2xlYXIoKTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgICAgIGMtPnNldEdyYXBoaWNzQ29udGV4dDNEKG1fY29udGV4dDNELmdldCgpLCBtX2RyYXdp
bmdCdWZmZXIuZ2V0KCksIEludFNpemUoY2FudmFzLT53aWR0aCgpLCBjYW52YXMtPmhlaWdodCgp
KSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgYXNzb2NpYXRlQ29udGV4dDJEKCk7CiAjZW5kaWYK
IH0KIApAQCAtMjAyMyw2ICsyMDA5LDQ0IEBAIGNvbnN0IEZvbnQmIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6YWMKICAgICByZXR1cm4gc3RhdGUoKS5tX2ZvbnQ7CiB9CiAKKyNpZiBFTkFCTEUo
QUNDRUxFUkFURURfMkRfQ0FOVkFTKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFz
c29jaWF0ZUNvbnRleHQyRCgpCit7CisgICAgUGFnZSogcCA9IGNhbnZhcygpLT5kb2N1bWVudCgp
LT5wYWdlKCk7CisgICAgaWYgKCFwKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCEocC0+c2V0
dGluZ3MoKS0+YWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoKSB8fCBwLT5zZXR0aW5ncygpLT5s
ZWdhY3lBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCgpKSkKKyAgICAgICAgcmV0dXJuOworICAg
IGlmIChHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpKSB7CisgICAgICAgIG1f
Y29udGV4dDNEID0gcC0+c2hhcmVkR3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICAgICAgaWYgKG1f
Y29udGV4dDNEKSB7CisgICAgICAgICAgICBtX2RyYXdpbmdCdWZmZXIgPSBtX2NvbnRleHQzRC0+
Y3JlYXRlRHJhd2luZ0J1ZmZlcihJbnRTaXplKGNhbnZhcygpLT53aWR0aCgpLCBjYW52YXMoKS0+
aGVpZ2h0KCkpKTsKKyAgICAgICAgICAgIGlmICghbV9kcmF3aW5nQnVmZmVyKSB7CisgICAgICAg
ICAgICAgICAgYy0+c2V0R3JhcGhpY3NDb250ZXh0M0QoMCwgMCwgSW50U2l6ZSgpKTsKKyAgICAg
ICAgICAgICAgICBtX2NvbnRleHQzRC5jbGVhcigpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgYy0+c2V0R3JhcGhpY3NDb250ZXh0M0QobV9jb250ZXh0M0QuZ2V0KCksIG1f
ZHJhd2luZ0J1ZmZlci5nZXQoKSwgSW50U2l6ZShjYW52YXMoKS0+d2lkdGgoKSwgY2FudmFzKCkt
PmhlaWdodCgpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobV9vbGREb2N1bWVudElt
YWdlKSB7CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAgICAgIHB1dEltYWdlRGF0YSht
X29sZERvY3VtZW50SW1hZ2UuZ2V0KCksIDAsIDAsIGVjKTsKKyAgICB9Cit9CisKK3ZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkaXNzb2NpYXRlQ29udGV4dDJEKCkKK3sKKyAgICBFeGNl
cHRpb25Db2RlIGVjOworICAgIG1fb2xkRG9jdW1lbnRJbWFnZSA9IGdldEltYWdlRGF0YSgwLCAw
LCBjYW52YXMoKS0+d2lkdGgoKSwgY2FudmFzKCktPmhlaWdodCgpLCBlYyk7CisKKyAgICBtX2Ry
YXdpbmdCdWZmZXIuY2xlYXIoKTsKKyAgICBtX2NvbnRleHQzRC5jbGVhcigpOworfQorCisjZW5k
aWYKKworCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJiYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCShyZXZpc2lvbiA5MTQ5
NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTksNiArMjE5LDExIEBAIHB1YmxpYzoKICAgICBMaW5l
Q2FwIGdldExpbmVDYXAoKSBjb25zdCB7IHJldHVybiBzdGF0ZSgpLm1fbGluZUNhcDsgfQogICAg
IExpbmVKb2luIGdldExpbmVKb2luKCkgY29uc3QgeyByZXR1cm4gc3RhdGUoKS5tX2xpbmVKb2lu
OyB9CiAKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorICAgIHZvaWQgYXNzb2Np
YXRlQ29udGV4dDJEKCk7CisgICAgdm9pZCBkaXNzb2NpYXRlQ29udGV4dDJEKCk7CisjZW5kaWYK
KwogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICYmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBj
b25zdDsKICNlbmRpZgpAQCAtMzA0LDYgKzMwOSw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEFD
Q0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBSZWZQdHI8RHJhd2luZ0J1ZmZlcj4gbV9kcmF3aW5n
QnVmZmVyOwogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0M0Q7CisgICAg
UmVmUHRyPEltYWdlRGF0YT4gbV9vbGREb2N1bWVudEltYWdlOwogI2VuZGlmCiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102053</attachid>
            <date>2011-07-26 14:39:10 -0700</date>
            <delta_ts>2011-07-26 14:48:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65202-20110726173909.patch</filename>
            <type>text/plain</type>
            <size>5486</size>
            <attacher name="Tom Hudson">tomhudson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxNzc2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDctMjYgIFRvbSBIdWRz
b24gIDx0b21odWRzb25AZ29vZ2xlLmNvbT4KKworICAgICAgICBTdXBwb3J0IG1vdmluZyBHUFUg
YWNjZWxlcmF0ZWQgY2FudmFzIHRvIGEgbmV3IGRvY3VtZW50IChwb3B1cCB3aW5kb3cpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIwMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4g
KE9PUFMhKQorCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6d2lsbFJlbW92ZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAq
IGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0OjpjYW52YXNJbnNlcnRlZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNSZW5kZXJpbmdDb250ZXh0OjpjYW52YXNXaWxsQmVSZW1vdmVkKToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjYW52YXNJbnNlcnRlZEludG9Eb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNhbnZhc1dpbGxCZVJl
bW92ZWQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
OgorCiAyMDExLTA3LTI2ICBWaWV0LVRydW5nIEx1dSAgPHZpZXR0cnVuZ2x1dUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgSW1wcm92ZSAoaS5lLiwgc3BlZWQgdXApIC5neXAoaSkgZmlsZXMgZm9y
IENocm9taXVtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cAkocmV2aXNpb24gOTE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSwyNCBAQCBIVE1MQ2FudmFzRWxl
bWVudDo6fkhUTUxDYW52YXNFbGVtZW50KCkKICAgICBtX2NvbnRleHQuY2xlYXIoKTsgLy8gRW5z
dXJlIHRoaXMgZ29lcyBhd2F5IGJlZm9yZSB0aGUgSW1hZ2VCdWZmZXIuCiB9CiAKK3ZvaWQgSFRN
TENhbnZhc0VsZW1lbnQ6OndpbGxSZW1vdmUoKQoreworICAgIEhUTUxFbGVtZW50Ojp3aWxsUmVt
b3ZlKCk7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29u
dGV4dC0+Y2FudmFzV2lsbEJlUmVtb3ZlZCgpOworfQorCit2b2lkIEhUTUxDYW52YXNFbGVtZW50
OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgSFRNTEVsZW1lbnQ6Omluc2VydGVkSW50
b0RvY3VtZW50KCk7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fY29udGV4dC0+Y2FudmFzSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKK30KKwogdm9pZCBIVE1M
Q2FudmFzRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogewog
ICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lID0gYXR0ci0+bmFtZSgpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAkocmV2aXNpb24gOTE3NzYpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTY2LDYgKzY2LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxDYW52
YXNFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAg
dmlydHVhbCB+SFRNTENhbnZhc0VsZW1lbnQoKTsKIAorICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVt
b3ZlKCk7CisgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CisKICAgICB2
b2lkIGFkZE9ic2VydmVyKENhbnZhc09ic2VydmVyKik7CiAgICAgdm9pZCByZW1vdmVPYnNlcnZl
cihDYW52YXNPYnNlcnZlciopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHJldmlzaW9uIDkxNzc2
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDYgKzE0NCw3IEBAIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Q2FudmFzUmVuZGVyaW4KICNlbmRpZgogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8y
RF9DQU5WQVMpCiAgICAgLCBtX2NvbnRleHQzRCgwKQorICAgICwgbV9vbGREb2N1bWVudEltYWdl
KDApCiAjZW5kaWYKIHsKICNpZiAhRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQpAQCAtMjAxNyw2
ICsyMDE4LDI0IEBAIGNvbnN0IEZvbnQmIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YWMKICAg
ICByZXR1cm4gc3RhdGUoKS5tX2ZvbnQ7CiB9CiAKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpjYW52YXNJbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgcmVzZXRBY2NlbGVyYXRp
b24oKTsKKworICAgIGlmIChtX29sZERvY3VtZW50SW1hZ2UpIHsKKyAgICAgICAgRXhjZXB0aW9u
Q29kZSBlYzsKKyAgICAgICAgcHV0SW1hZ2VEYXRhKG1fb2xkRG9jdW1lbnRJbWFnZS5nZXQoKSwg
MCwgMCwgZWMpOworICAgIH0KK30KKwordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNh
bnZhc1dpbGxCZVJlbW92ZWQoKQoreworICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAgbV9vbGRE
b2N1bWVudEltYWdlID0gZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcygpLT53aWR0aCgpLCBjYW52
YXMoKS0+aGVpZ2h0KCksIGVjKTsKKworICAgIGNsZWFyQWNjZWxlcmF0aW9uKCk7Cit9CisKICNp
ZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKIFBsYXRmb3JtTGF5ZXIqIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cGxhdGZv
cm1MYXllcigpIGNvbnN0CkBAIC0yMDI3LDYgKzIwNDYsNyBAQCBQbGF0Zm9ybUxheWVyKiBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpj
bGVhckFjY2VsZXJhdGlvbigpCiB7CisKICAgICBpZiAoR3JhcGhpY3NDb250ZXh0KiBjdHggPSBk
cmF3aW5nQ29udGV4dCgpKQogICAgICAgICBjdHgtPnNldEdyYXBoaWNzQ29udGV4dDNEKDAsIDAs
IEludFNpemUoKSk7CiAKQEAgLTIwNzUsMyArMjA5NSw0IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpyZXNldEFjY2UKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5oCShyZXZpc2lvbiA5MTc3NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTks
NiArMjE5LDkgQEAgcHVibGljOgogICAgIExpbmVDYXAgZ2V0TGluZUNhcCgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRlKCkubV9saW5lQ2FwOyB9CiAgICAgTGluZUpvaW4gZ2V0TGluZUpvaW4oKSBjb25z
dCB7IHJldHVybiBzdGF0ZSgpLm1fbGluZUpvaW47IH0KIAorICAgIHZpcnR1YWwgdm9pZCBjYW52
YXNJbnNlcnRlZEludG9Eb2N1bWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBjYW52YXNXaWxsQmVS
ZW1vdmVkKCk7CisKICNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAmJiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9y
bUxheWVyKCkgY29uc3Q7CiAjZW5kaWYKQEAgLTMwOSw2ICszMTIsNyBAQCBwcml2YXRlOgogI2lm
IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCiAgICAgUmVmUHRyPERyYXdpbmdCdWZmZXI+
IG1fZHJhd2luZ0J1ZmZlcjsKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4
dDNEOworICAgIFJlZlB0cjxJbWFnZURhdGE+IG1fb2xkRG9jdW1lbnRJbWFnZTsKICNlbmRpZgog
fTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQuaAkocmV2aXNpb24gOTE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYg
KzYxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXll
cigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIGNhbnZh
c0luc2VydGVkSW50b0RvY3VtZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGNhbnZhc1dpbGxC
ZVJlbW92ZWQoKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQo
SFRNTENhbnZhc0VsZW1lbnQqKTsKICAgICBib29sIHdvdWxkVGFpbnRPcmlnaW4oY29uc3QgQ2Fu
dmFzUGF0dGVybiopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102056</attachid>
            <date>2011-07-26 14:48:29 -0700</date>
            <delta_ts>2011-07-27 12:56:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65202-20110726174828.patch</filename>
            <type>text/plain</type>
            <size>5572</size>
            <attacher name="Tom Hudson">tomhudson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxNzc2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDctMjYgIFRvbSBIdWRz
b24gIDx0b21odWRzb25AZ29vZ2xlLmNvbT4KKworICAgICAgICBTdXBwb3J0IG1vdmluZyBHUFUg
YWNjZWxlcmF0ZWQgY2FudmFzIHRvIGEgbmV3IGRvY3VtZW50IChwb3B1cCB3aW5kb3cpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIwMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4g
KE9PUFMhKQorCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6d2lsbFJlbW92ZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAq
IGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0OjpjYW52YXNJbnNlcnRlZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNSZW5kZXJpbmdDb250ZXh0OjpjYW52YXNXaWxsQmVSZW1vdmVkKToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjYW52YXNJbnNlcnRlZEludG9Eb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNhbnZhc1dpbGxCZVJl
bW92ZWQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
OgorCiAyMDExLTA3LTI2ICBWaWV0LVRydW5nIEx1dSAgPHZpZXR0cnVuZ2x1dUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgSW1wcm92ZSAoaS5lLiwgc3BlZWQgdXApIC5neXAoaSkgZmlsZXMgZm9y
IENocm9taXVtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cAkocmV2aXNpb24gOTE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSwyNCBAQCBIVE1MQ2FudmFzRWxl
bWVudDo6fkhUTUxDYW52YXNFbGVtZW50KCkKICAgICBtX2NvbnRleHQuY2xlYXIoKTsgLy8gRW5z
dXJlIHRoaXMgZ29lcyBhd2F5IGJlZm9yZSB0aGUgSW1hZ2VCdWZmZXIuCiB9CiAKK3ZvaWQgSFRN
TENhbnZhc0VsZW1lbnQ6OndpbGxSZW1vdmUoKQoreworICAgIEhUTUxFbGVtZW50Ojp3aWxsUmVt
b3ZlKCk7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29u
dGV4dC0+Y2FudmFzV2lsbEJlUmVtb3ZlZCgpOworfQorCit2b2lkIEhUTUxDYW52YXNFbGVtZW50
OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgSFRNTEVsZW1lbnQ6Omluc2VydGVkSW50
b0RvY3VtZW50KCk7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fY29udGV4dC0+Y2FudmFzSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKK30KKwogdm9pZCBIVE1M
Q2FudmFzRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogewog
ICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lID0gYXR0ci0+bmFtZSgpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAkocmV2aXNpb24gOTE3NzYpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTY2LDYgKzY2LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxDYW52
YXNFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAg
dmlydHVhbCB+SFRNTENhbnZhc0VsZW1lbnQoKTsKIAorICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVt
b3ZlKCk7CisgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CisKICAgICB2
b2lkIGFkZE9ic2VydmVyKENhbnZhc09ic2VydmVyKik7CiAgICAgdm9pZCByZW1vdmVPYnNlcnZl
cihDYW52YXNPYnNlcnZlciopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHJldmlzaW9uIDkxNzc2
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDYgKzE0NCw3IEBAIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Q2FudmFzUmVuZGVyaW4KICNlbmRpZgogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8y
RF9DQU5WQVMpCiAgICAgLCBtX2NvbnRleHQzRCgwKQorICAgICwgbV9vbGREb2N1bWVudEltYWdl
KDApCiAjZW5kaWYKIHsKICNpZiAhRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQpAQCAtMjAxNyw2
ICsyMDE4LDI4IEBAIGNvbnN0IEZvbnQmIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YWMKICAg
ICByZXR1cm4gc3RhdGUoKS5tX2ZvbnQ7CiB9CiAKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpjYW52YXNJbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisjaWYgRU5BQkxFKEFDQ0VMRVJB
VEVEXzJEX0NBTlZBUykKKyAgICByZXNldEFjY2VsZXJhdGlvbigpOworCisgICAgaWYgKG1fb2xk
RG9jdW1lbnRJbWFnZSkgeworICAgICAgICBFeGNlcHRpb25Db2RlIGVjOworICAgICAgICBwdXRJ
bWFnZURhdGEobV9vbGREb2N1bWVudEltYWdlLmdldCgpLCAwLCAwLCBlYyk7CisgICAgfQorI2Vu
ZGlmCit9CisKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjYW52YXNXaWxsQmVSZW1v
dmVkKCkKK3sKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorICAgIEV4Y2VwdGlv
bkNvZGUgZWM7CisgICAgbV9vbGREb2N1bWVudEltYWdlID0gZ2V0SW1hZ2VEYXRhKDAsIDAsIGNh
bnZhcygpLT53aWR0aCgpLCBjYW52YXMoKS0+aGVpZ2h0KCksIGVjKTsKKworICAgIGNsZWFyQWNj
ZWxlcmF0aW9uKCk7CisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciogQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKQEAgLTIwMjcsNiAr
MjA1MCw3IEBAIFBsYXRmb3JtTGF5ZXIqIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDoKIAogdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNsZWFyQWNjZWxlcmF0aW9uKCkKIHsKKwogICAg
IGlmIChHcmFwaGljc0NvbnRleHQqIGN0eCA9IGRyYXdpbmdDb250ZXh0KCkpCiAgICAgICAgIGN0
eC0+c2V0R3JhcGhpY3NDb250ZXh0M0QoMCwgMCwgSW50U2l6ZSgpKTsKIApAQCAtMjA3NSwzICsy
MDk5LDQgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0QWNjZQogI2VuZGlm
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgJKHJldmlzaW9uIDkx
Nzc2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw2ICsyMTksOSBAQCBwdWJsaWM6CiAgICAgTGlu
ZUNhcCBnZXRMaW5lQ2FwKCkgY29uc3QgeyByZXR1cm4gc3RhdGUoKS5tX2xpbmVDYXA7IH0KICAg
ICBMaW5lSm9pbiBnZXRMaW5lSm9pbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRlKCkubV9saW5lSm9p
bjsgfQogCisgICAgdmlydHVhbCB2b2lkIGNhbnZhc0luc2VydGVkSW50b0RvY3VtZW50KCk7Cisg
ICAgdmlydHVhbCB2b2lkIGNhbnZhc1dpbGxCZVJlbW92ZWQoKTsKKwogI2lmIEVOQUJMRShBQ0NF
TEVSQVRFRF8yRF9DQU5WQVMpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2
aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKICNlbmRpZgpAQCAt
MzA5LDYgKzMxMiw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZB
UykKICAgICBSZWZQdHI8RHJhd2luZ0J1ZmZlcj4gbV9kcmF3aW5nQnVmZmVyOwogICAgIFJlZlB0
cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0M0Q7CisgICAgUmVmUHRyPEltYWdlRGF0YT4g
bV9vbGREb2N1bWVudEltYWdlOwogI2VuZGlmCiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCShyZXZpc2lvbiA5
MTc3NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogI2Vu
ZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgY2FudmFzSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgY2FudmFzV2lsbEJlUmVtb3ZlZCgpIHsgfQorCiBwcm90ZWN0ZWQ6
CiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCopOwogICAgIGJv
b2wgd291bGRUYWludE9yaWdpbihjb25zdCBDYW52YXNQYXR0ZXJuKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>102059</attachid>
            <date>2011-07-26 15:19:57 -0700</date>
            <delta_ts>2011-07-26 15:19:57 -0700</delta_ts>
            <desc>test page for moving canvas to popup and moving iframe containing canvas to popup</desc>
            <filename>canvas-reparent.html</filename>
            <type>text/html</type>
            <size>1155</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUw+CjxodG1sPgo8aGVhZD4KPHNjcmlwdD4KZnVuY3Rpb24gcG9wdXAoKQp7
CiAgICBwb3B1cCA9IHdpbmRvdy5vcGVuKCIiLCIiLCJ3aWR0aD0yMDAsaGVpZ2h0PTIwMCIpOwp9
CgpmdW5jdGlvbiBtb3ZlKCkKewogICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChjYW52YXMp
OwogICAgcG9wdXAuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjYW52YXMpOwp9CgpmdW5jdGlv
biBpbml0KCkKewogICAgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15Q2FudmFz
Iik7CiAgICBjYW52YXMud2lkdGggPSAyMDA7CiAgICBjYW52YXMuaGVpZ2h0ID0gMjAwOwogICAg
Y3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CiAgICBjdHguZmlsbFN0eWxlID0gInJnYigy
NTUsMTY1LDApIjsKICAgIGN0eC5maWxsUmVjdCgwLCAwLCAyMDAsIDIwMCk7CiAgICBpZnIgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaWZyKTsKICAgIHZhciBpZnJDYW52YXMgPSBpZnIuY29udGVudERvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2NhbnZhcycpOwogICAgaWZyLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGlmckNhbnZhcyk7CiAgICBpZnJDYW52YXMud2lkdGggPSAyMDA7CiAgICBpZnJDYW52YXMu
aGVpZ2h0ID0gMjAwOwogICAgdmFyIGlmckN0eCA9IGlmckNhbnZhcy5nZXRDb250ZXh0KCcyZCcp
OwogICAgaWZyQ3R4LmZpbGxTdHlsZSA9ICJyZ2IoMTY1LCAwLCAyNTUpIjsKICAgIGlmckN0eC5m
aWxsUmVjdCgwLCAwLCAyMDAsIDIwMCk7Cn0KCmZ1bmN0aW9uIG1vdmVJZnJhbWUoKQp7CiAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlmcik7CiAgICBwb3B1cC5kb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGlmcik7Cn0KPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHkgb25sb2FkPSJpbml0KCki
Pgo8YSBocmVmPSJqYXZhc2NyaXB0OnBvcHVwKCk7Ij5wb3B1cDwvYT4KPGEgaHJlZj0iamF2YXNj
cmlwdDptb3ZlKCk7Ij5tb3ZlIGNhbnZhczwvYT4KPGEgaHJlZj0iamF2YXNjcmlwdDptb3ZlSWZy
YW1lKCk7Ij5tb3ZlIGlmcmFtZTwvYT4KPGNhbnZhcyBpZD0ibXlDYW52YXMiPjwvY2FudmFzPgo8
L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102173</attachid>
            <date>2011-07-27 12:56:28 -0700</date>
            <delta_ts>2011-07-27 14:19:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65202-20110727155626.patch</filename>
            <type>text/plain</type>
            <size>4613</size>
            <attacher name="Tom Hudson">tomhudson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxODU3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDctMjcgIFRvbSBIdWRz
b24gIDx0b21odWRzb25AZ29vZ2xlLmNvbT4KKworICAgICAgICBTdXBwb3J0IG1vdmluZyBHUFUg
YWNjZWxlcmF0ZWQgY2FudmFzIHRvIGEgbmV3IGRvY3VtZW50IChwb3B1cCB3aW5kb3cpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIwMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyB5
ZXQuIFBhcnRpYWxseSBjb3ZlcmVkIGJ5IGZhc3QvY2FudmFzL2ZvbnQtdXBkYXRlLgorCisgICAg
ICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Q2FudmFzRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpjYW52
YXNJbnNlcnRlZEludG9Eb2N1bWVudCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Y2FudmFzSW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorCiAyMDExLTA3LTI3ICBSb2IgQnVpcyAg
PHJidWlzQHJpbS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGdldEludGVyc2VjdGlvbkxpc3Qo
KSwgZ2V0RW5jbG9zdXJlTGlzdCgpLCBjaGVja0ludGVyc2VjdGlvbigpIGFuZCBjaGVja0VuY2xv
c3VyZSgpIGluIFNWR1NWR0VsZW1lbnQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCShyZXZpc2lvbiA5MTg1NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDE1IEBA
IEhUTUxDYW52YXNFbGVtZW50Ojp+SFRNTENhbnZhc0VsZW1lbnQoKQogICAgIG1fY29udGV4dC5j
bGVhcigpOyAvLyBFbnN1cmUgdGhpcyBnb2VzIGF3YXkgYmVmb3JlIHRoZSBJbWFnZUJ1ZmZlci4K
IH0KIAordm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQorewor
ICAgIEhUTUxFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpOworICAgIGlmICghbV9jb250
ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NvbnRleHQtPmNhbnZhc0luc2VydGVkSW50
b0RvY3VtZW50KCk7Cit9CisKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0
cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSA9IGF0dHItPm5hbWUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmgJKHJldmlzaW9uIDkxODU3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw4IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwgfkhUTUxDYW52YXNFbGVtZW50KCk7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKwogICAgIHZvaWQg
YWRkT2JzZXJ2ZXIoQ2FudmFzT2JzZXJ2ZXIqKTsKICAgICB2b2lkIHJlbW92ZU9ic2VydmVyKENh
bnZhc09ic2VydmVyKik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAkocmV2aXNpb24gOTE4NTcpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMDE3LDYgKzIwMTcsMjMgQEAgY29uc3QgRm9udCYgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjphYwogICAgIHJldHVybiBzdGF0ZSgpLm1fZm9udDsKIH0KIAor
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNhbnZhc0luc2VydGVkSW50b0RvY3VtZW50
KCkKK3sKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorICAgIC8vIEV2ZW4gaWYg
dGhlIGNhbnZhcyB3YXMgbm90IGF0dGFjaGVkIHRvIGEgZG9jdW1lbnQsIGl0IGNvdWxkIGhhdmUg
YmVlbgorICAgIC8vIGRyYXduIG9uIHdoaWxlIGRldGFjaGVkOyBnZXQgdGhlIGltYWdlIHRoZXJl
ICpub3cqIHRvIGRpc3BsYXkgaW4gdGhlCisgICAgLy8gbmV3IGNvbnRleHQuCisgICAgRXhjZXB0
aW9uQ29kZSBlYygwKTsKKyAgICBSZWZQdHI8SW1hZ2VEYXRhPiBpbWFnZUluUHJldmlvdXNDb250
ZXh0ID0gZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcygpLT53aWR0aCgpLCBjYW52YXMoKS0+aGVp
Z2h0KCksIGVjKTsKKworICAgIGNsZWFyQWNjZWxlcmF0aW9uKCk7CisgICAgcmVzZXRBY2NlbGVy
YXRpb24oKTsKKworICAgIGlmICghZWMpCisgICAgICAgIHB1dEltYWdlRGF0YShpbWFnZUluUHJl
dmlvdXNDb250ZXh0LmdldCgpLCAwLCAwLCBlYyk7CisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShB
Q0NFTEVSQVRFRF8yRF9DQU5WQVMpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
UGxhdGZvcm1MYXllciogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpwbGF0Zm9ybUxheWVyKCkg
Y29uc3QKQEAgLTIwNzUsMyArMjA5Miw0IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
OjpyZXNldEFjY2UKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oCShyZXZpc2lvbiA5MTg1NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTksNiArMjE5LDgg
QEAgcHVibGljOgogICAgIExpbmVDYXAgZ2V0TGluZUNhcCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRl
KCkubV9saW5lQ2FwOyB9CiAgICAgTGluZUpvaW4gZ2V0TGluZUpvaW4oKSBjb25zdCB7IHJldHVy
biBzdGF0ZSgpLm1fbGluZUpvaW47IH0KIAorICAgIHZpcnR1YWwgdm9pZCBjYW52YXNJbnNlcnRl
ZEludG9Eb2N1bWVudCgpOworCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJiYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciog
cGxhdGZvcm1MYXllcigpIGNvbnN0OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCShyZXZpc2lvbiA5MTg1
NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQ
bGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogI2VuZGlm
CiAKKyAgICB2aXJ0dWFsIHZvaWQgY2FudmFzSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKSB7IH0KKwog
cHJvdGVjdGVkOgogICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQq
KTsKICAgICBib29sIHdvdWxkVGFpbnRPcmlnaW4oY29uc3QgQ2FudmFzUGF0dGVybiopOwo=
</data>
<flag name="review"
          id="97346"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>102184</attachid>
            <date>2011-07-27 14:13:44 -0700</date>
            <delta_ts>2011-07-27 14:13:44 -0700</delta_ts>
            <desc>test page with canvas-&gt;canvas draws from main doc to poup</desc>
            <filename>canvas-reparent.html</filename>
            <type>text/html</type>
            <size>1558</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUw+CjxodG1sPgo8aGVhZD4KPHNjcmlwdD4KZnVuY3Rpb24gcG9wdXAoKQp7
CiAgICBwb3B1cCA9IHdpbmRvdy5vcGVuKCIiLCIiLCJ3aWR0aD0yMDAsaGVpZ2h0PTIwMCIpOwp9
CgpmdW5jdGlvbiBtb3ZlKCkKewogICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChjYW52YXMp
OwogICAgcG9wdXAuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjYW52YXMpOwp9CgpmdW5jdGlv
biBpbml0KCkKewogICAgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15Q2FudmFz
Iik7CiAgICBjYW52YXMud2lkdGggPSAyMDA7CiAgICBjYW52YXMuaGVpZ2h0ID0gMjAwOwogICAg
Y3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CiAgICBjdHguZmlsbFN0eWxlID0gInJnYigy
NTUsMTY1LDApIjsKICAgIGN0eC5maWxsUmVjdCgwLCAwLCAyMDAsIDIwMCk7CiAgICBpZnIgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaWZyKTsKICAgIHZhciBpZnJDYW52YXMgPSBpZnIuY29udGVudERvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2NhbnZhcycpOwogICAgaWZyLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGlmckNhbnZhcyk7CiAgICBpZnJDYW52YXMud2lkdGggPSAyMDA7CiAgICBpZnJDYW52YXMu
aGVpZ2h0ID0gMjAwOwogICAgdmFyIGlmckN0eCA9IGlmckNhbnZhcy5nZXRDb250ZXh0KCcyZCcp
OwogICAgaWZyQ3R4LmZpbGxTdHlsZSA9ICJyZ2IoMTY1LCAwLCAyNTUpIjsKICAgIGlmckN0eC5m
aWxsUmVjdCgwLCAwLCAyMDAsIDIwMCk7Cn0KCmZ1bmN0aW9uIG1vdmVJZnJhbWUoKQp7CiAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlmcik7CiAgICBwb3B1cC5kb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGlmcik7Cn0KCmZ1bmN0aW9uIGRyYXdUb1BvcHVwQ2FudmFzKCkKewogICAgdmFy
IHRlbXBDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKICAgIHRlbXBD
YW52YXMud2lkdGggPSB0ZW1wQ2FudmFzLmhlaWdodCA9IDIwMDsKICAgIHZhciB0ZW1wQ3R4ID0g
dGVtcENhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwogICAgdGVtcEN0eC5maWxsU3R5bGUgPSAieWVs
bG93IjsKICAgIHRlbXBDdHguZmlsbFJlY3QoNTAsIDUwLCAxMDAsIDEwMCk7CiAgICBjdHguZHJh
d0ltYWdlKHRlbXBDYW52YXMsIDIwLCAyMCwgMTUwLCAxNTApOwp9Cgo8L3NjcmlwdD4KPC9oZWFk
Pgo8Ym9keSBvbmxvYWQ9ImluaXQoKSI+CjxhIGhyZWY9ImphdmFzY3JpcHQ6cG9wdXAoKTsiPnBv
cHVwPC9hPgo8YSBocmVmPSJqYXZhc2NyaXB0Om1vdmUoKTsiPm1vdmUgY2FudmFzPC9hPgo8YSBo
cmVmPSJqYXZhc2NyaXB0Om1vdmVJZnJhbWUoKTsiPm1vdmUgaWZyYW1lPC9hPgo8YSBocmVmPSJq
YXZhc2NyaXB0OmRyYXdUb1BvcHVwQ2FudmFzKCk7Ij5kcmF3IGZyb20gbWFpbiBkb2N1bWVudCBj
YW52YXMgdG8gcG9wdXAncyBjYW52YXM8L2E+CjxjYW52YXMgaWQ9Im15Q2FudmFzIj48L2NhbnZh
cz4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>