<?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>61894</bug_id>
          
          <creation_ts>2011-06-01 17:14:22 -0700</creation_ts>
          <short_desc>DocumentLoader keeps a reference to all URL strings ever loaded in m_resourcesClientKnowsAbout leading to lots of memory waste</short_desc>
          <delta_ts>2011-07-22 13:18:03 -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>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="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>gregsimon</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>koivisto</cc>
    
    <cc>scottmg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>413775</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-01 17:14:22 -0700</bug_when>
    <thetext>DocumentLoader keeps a reference to all URL strings ever loaded leading to lots of memory waste</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413790</commentid>
    <comment_count>1</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-01 17:48:09 -0700</bug_when>
    <thetext>This set is used in FrameLoader::loadedResourceFromMemoryCache() to control whether the client notifications are sent for loads that go through this codepath.  Possible fixes for the memory waste are:

1.) Preserve current behavior exactly and use a more compact data structure to determine whether a given URL is in the set of URLs the client knows about, for example a HashSet of MD5 hashes.
2.) Decide that we don&apos;t need the current behavior for data: URLs and exclude them from the set since these URLs are generally large and contribute more to WebKit&apos;s excessive memory use than other types of URLs.

The client call this set effects is dispatchDidLoadResourceFromMemoryCache, which is notImplemented() in every in-tree port except for the Mac port (not WebKit2) and Chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413856</commentid>
    <comment_count>2</comment_count>
      <attachid>95708</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-01 20:02:29 -0700</bug_when>
    <thetext>Created attachment 95708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413857</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-01 20:03:42 -0700</bug_when>
    <thetext>Patch posted for consideration.  If someone more familiar with the details of the mac port&apos;s use of this client API can suggest a better solution for that port that would be excellent, but in the meantime I think it&apos;s a clear win to fix this leak for everyone else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413883</commentid>
    <comment_count>4</comment_count>
      <attachid>95708</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-01 21:15:34 -0700</bug_when>
    <thetext>Comment on attachment 95708
Patch

LGTM.  You should file a separate bug for the mac port, or possibly repurpose this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413885</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-01 21:15:52 -0700</bug_when>
    <thetext>Bradee has historically worked on the mac port&apos;s loader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413903</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-01 22:04:55 -0700</bug_when>
    <thetext>Filed https://bugs.webkit.org/show_bug.cgi?id=61904 for Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413906</commentid>
    <comment_count>7</comment_count>
      <attachid>95708</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-06-01 22:11:12 -0700</bug_when>
    <thetext>Comment on attachment 95708
Patch

Especially since we don&apos;t even need it in WK2, we should be able to get away from this in WK1 too.

But clearly we can&apos;t simply remove this concept until someone explores the Mac port&apos;s usage of it.

I&apos;d suggest a better patch for now that would be a greater win for WebCore and all ports as a whole, in readability and prepping for future removal of this code:
- File bugzilla for the Mac port exploration as Eric suggested
- In DocumentLoader.h, put didTellClientAboutLoad, haveToldClientAboutLoad, and m_resourcesClientKnowsAbout in a single #if PLATFORM(MAC) block.  Note that this means for non-Mac platforms, they will be compiled out and not exist.
- Put an #if PLATFORM(MAC) block at the call sites of the two methods.  Without looking at code, I bet this will only be a few places. (you probably already know)
- Take these 3 or 4 #if PLATFORM(MAC) sites with a FIXME that includes the bugzilla you filed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413910</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-06-01 22:13:28 -0700</bug_when>
    <thetext>Heh.  Apparently I can&apos;t clear the commit-queue flag even though I r-&apos;ed, and now I can&apos;t even change the review or commit-queue flags.

We&apos;ll see if the commit-queue lands an r-&apos;ed patch  :)

(BTW, I did think it was worth an r- because of how much fracture this adds to DocumentLoader.h)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413912</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-01 22:16:49 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 95708 [details])
&gt; Especially since we don&apos;t even need it in WK2, we should be able to get away from this in WK1 too.
&gt; 
&gt; But clearly we can&apos;t simply remove this concept until someone explores the Mac port&apos;s usage of it.

I&apos;ve explored it to the extent that I&apos;m able, but all I can tell is that it&apos;s not needed for anything except for Mac WK1 and the Mac WK1 usage is black magic to me.


&gt; 
&gt; I&apos;d suggest a better patch for now that would be a greater win for WebCore and all ports as a whole, in readability and prepping for future removal of this code:
&gt; - File bugzilla for the Mac port exploration as Eric suggested

Done - https://bugs.webkit.org/show_bug.cgi?id=61904

&gt; - In DocumentLoader.h, put didTellClientAboutLoad, haveToldClientAboutLoad, and m_resourcesClientKnowsAbout in a single #if PLATFORM(MAC) block.  Note that this means for non-Mac platforms, they will be compiled out and not exist.
&gt; - Put an #if PLATFORM(MAC) block at the call sites of the two methods.  Without looking at code, I bet this will only be a few places. (you probably already know)
&gt; - Take these 3 or 4 #if PLATFORM(MAC) sites with a FIXME that includes the bugzilla you filed.

These sound nice but the resolution depends on how https://bugs.webkit.org/show_bug.cgi?id=61904 is resolved, which isn&apos;t something I can&apos;t really handle personally.  I hope that we can just delete this all.  In the meantime, however, it seems unfair to penalize all of the other ports (and WK2) with this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413913</commentid>
    <comment_count>10</comment_count>
      <attachid>95708</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-01 22:17:08 -0700</bug_when>
    <thetext>Comment on attachment 95708
Patch

clearin&apos; cq</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413916</commentid>
    <comment_count>11</comment_count>
      <attachid>95722</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-01 22:26:57 -0700</bug_when>
    <thetext>Created attachment 95722
guards entire functions + callsites</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413917</commentid>
    <comment_count>12</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-01 22:27:41 -0700</bug_when>
    <thetext>Added ifdefs to the callsites as suggested.  It&apos;s more #ifdef-age, but I agree that it&apos;s a bit cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413920</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-06-01 22:43:22 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 95708 [details] [details])
&gt; &gt; Especially since we don&apos;t even need it in WK2, we should be able to get away from this in WK1 too.
&gt; &gt; 
&gt; &gt; But clearly we can&apos;t simply remove this concept until someone explores the Mac port&apos;s usage of it.
&gt; 
&gt; I&apos;ve explored it to the extent that I&apos;m able, but all I can tell is that it&apos;s not needed for anything except for Mac WK1 and the Mac WK1 usage is black magic to me.

I meant &quot;until someone familiar with it explores the Mac port&apos;s usage&quot;, not you  :)


&gt; 
&gt; &gt; - In DocumentLoader.h, put didTellClientAboutLoad, haveToldClientAboutLoad, and m_resourcesClientKnowsAbout in a single #if PLATFORM(MAC) block.  Note that this means for non-Mac platforms, they will be compiled out and not exist.
&gt; &gt; - Put an #if PLATFORM(MAC) block at the call sites of the two methods.  Without looking at code, I bet this will only be a few places. (you probably already know)
&gt; &gt; - Take these 3 or 4 #if PLATFORM(MAC) sites with a FIXME that includes the bugzilla you filed.
&gt; 
&gt; These sound nice but the resolution depends on how https://bugs.webkit.org/show_bug.cgi?id=61904 is resolved, which isn&apos;t something I can&apos;t really handle personally.  I hope that we can just delete this all.  In the meantime, however, it seems unfair to penalize all of the other ports (and WK2) with this.

I think you misunderstood me here, too.  I am fully in support of cleanup now that removes the penalty for all the other ports.  I, too, hope we can just delete this all.

The patch I suggested moves all of the code that needs to be removed to exactly one place in DocumentLoader.h, and tags the call sites that can be simplified later with the bug # that will simplify them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413923</commentid>
    <comment_count>14</comment_count>
      <attachid>95722</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-06-01 22:45:48 -0700</bug_when>
    <thetext>Comment on attachment 95722
guards entire functions + callsites

I guess this is simply enough that we don&apos;t really need to tag the callsites with the bug #  :)  Thanks for refining it (I hate branched #ifdefs!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414059</commentid>
    <comment_count>15</comment_count>
      <attachid>95722</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-02 05:52:58 -0700</bug_when>
    <thetext>Comment on attachment 95722
guards entire functions + callsites

Clearing flags on attachment: 95722

Committed r87901: &lt;http://trac.webkit.org/changeset/87901&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414060</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-02 05:53:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414621</commentid>
    <comment_count>17</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-02 20:12:59 -0700</bug_when>
    <thetext>Reverted r87901 for reason:

Might

Committed r87990: &lt;http://trac.webkit.org/changeset/87990&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438631</commentid>
    <comment_count>18</comment_count>
      <attachid>101188</attachid>
    <who name="Scott Graham">scottmg</who>
    <bug_when>2011-07-18 12:26:11 -0700</bug_when>
    <thetext>Created attachment 101188
generate large images via data urls

also at www/~scottmg/imgmemory.html inside Google</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438637</commentid>
    <comment_count>19</comment_count>
      <attachid>101189</attachid>
    <who name="Scott Graham">scottmg</who>
    <bug_when>2011-07-18 12:33:44 -0700</bug_when>
    <thetext>Created attachment 101189
exclude data urls from m_resourcesClientKnowsAbout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438641</commentid>
    <comment_count>20</comment_count>
    <who name="Scott Graham">scottmg</who>
    <bug_when>2011-07-18 12:37:37 -0700</bug_when>
    <thetext>Attached test doesn&apos;t leak any longer. There&apos;s still a pretty high high-watermark due to image cache, but can run indefinitely now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438815</commentid>
    <comment_count>21</comment_count>
    <who name="Scott Graham">scottmg</who>
    <bug_when>2011-07-18 16:36:03 -0700</bug_when>
    <thetext>Oops, should have added discussion to comments.

Previous attempt at a fix by removing the cache caused a performance regression of around 3% in Chromium page_cycler tests. New patch instead simply excludes data urls from the cache. This takes care of the majority of unwanted memory usage, while maintaining performance characteristics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440964</commentid>
    <comment_count>22</comment_count>
      <attachid>101735</attachid>
    <who name="Scott Graham">scottmg</who>
    <bug_when>2011-07-22 08:32:32 -0700</bug_when>
    <thetext>Created attachment 101735
exclude data urls from m_resourcesClientKnowsAbout (except on MAC pending bug 61904)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440967</commentid>
    <comment_count>23</comment_count>
    <who name="Scott Graham">scottmg</who>
    <bug_when>2011-07-22 08:34:51 -0700</bug_when>
    <thetext>Same as previous patch, but exclude PLATFORM(MAC) until someone has time to look at https://bugs.webkit.org/show_bug.cgi?id=61904

Now only affects Chromium based on previous discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441096</commentid>
    <comment_count>24</comment_count>
      <attachid>101735</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-22 12:34:32 -0700</bug_when>
    <thetext>Comment on attachment 101735
exclude data urls from m_resourcesClientKnowsAbout (except on MAC pending bug 61904)

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441123</commentid>
    <comment_count>25</comment_count>
      <attachid>101735</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-22 13:17:57 -0700</bug_when>
    <thetext>Comment on attachment 101735
exclude data urls from m_resourcesClientKnowsAbout (except on MAC pending bug 61904)

Clearing flags on attachment: 101735

Committed r91600: &lt;http://trac.webkit.org/changeset/91600&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441124</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-22 13:18:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95708</attachid>
            <date>2011-06-01 20:02:29 -0700</date>
            <delta_ts>2011-06-01 22:26:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61894-20110601200227.patch</filename>
            <type>text/plain</type>
            <size>3476</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc4NDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZmQ1MTA3NDQwZGM5Y2Fj
N2UzYjUyZGMzMTA5Mjg3ODMyMWJlNTNiLi4zY2Y4YTI1NmVlODc1MTE4NWE0NzVlODVjOTIzNWJl
ZDk2ZmVjMTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDYtMDEgIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb2N1bWVudExvYWRlciBrZWVwcyBhIHJlZmVyZW5j
ZSB0byBhbGwgVVJMIHN0cmluZ3MgZXZlciBsb2FkZWQgbGVhZGluZyB0byBsb3RzIG9mIG1lbW9y
eSB3YXN0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjE4OTQKKworICAgICAgICBEb2N1bWVudExvYWRlcjo6bV9yZXNvdXJjZXNDbGllbnRLbm93c0Fi
b3V0IGlzIGEgc2V0IG9mIGFsbCB0aGUgVVJMcyB0aGF0IGhhdmUgcGFzc2VkIHRocm91Z2gKKyAg
ICAgICAgRnJhbWVMb2FkZXI6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KCkgYW5kIGlzIHVzZWQg
YnkgRnJhbWVMb2FkZXI6OmxvYWRlZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlZCB0byBkZWNpZGUK
KyAgICAgICAgd2hldGhlciB0byBpbmZvcm0gdGhlIEZyYW1lTG9hZGVyJ3MgbV9jbGllbnQgYWJv
dXQgdGhpcyBsb2FkLiAgVW5mb3J0dW5hdGVseSwgdGhpcyBzZXQgaG9sZHMgYSByZWZlcmVuY2Ug
dG8gdGhlCisgICAgICAgIFVSTCBzdHJpbmcgZm9yIGV2ZXJ5IHJlc291cmNlIGxvYWRlZCwgc28g
b24gcGFnZXMgdGhhdCB1c2UgZGF0YSBVUkxzIHRvICJsb2FkIiBsYXJnZSBhbW91bnRzIG9mIGRh
dGEgdGhpcyBsZWFrcworICAgICAgICBsb3RzIG9mIG1lbW9yeS4KKworICAgICAgICBUaGlzIHNl
dCBvbmx5IGhhcyBhbiBlZmZlY3Qgb24gdGhlIE1hYyBwb3J0LCBhcyB0aGUgb25seSB0d28gcG9y
dHMgdGhhdCBpbXBsZW1lbnQKKyAgICAgICAgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
TG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKCkgYXJlIENocm9taXVtIGFuZCBNYWMgYW5kIHRo
ZSBDaHJvbWl1bSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjYW4gY29ycmVjdGx5IGhhbmRsZSBy
ZWNlaXZpbmcgbXVsdGlwbGUgY2FsbGJhY2tzLiAgVGhpcyBwYXRjaCBsaW1pdHMgdGhlIHNldCB0
byBvbmx5IFBMQVRGT1JNKE1BQykgc28gb3RoZXIKKyAgICAgICAgcG9ydHMgZG8gbm90IGhhdmUg
dG8gcGF5IHRoaXMgbWVtb3J5IGNvc3QuICBJdCdzIHBvc3NpYmxlIHRoYXQgYSBiZXR0ZXIgZml4
IGV4aXN0cyBzcGVjaWZpY2FsbHkgZm9yIHRoZSBNYWMgcG9ydAorICAgICAgICBpbXBsZW1lbnRh
dGlvbiwgYnV0IHRoYXQgd291bGQgaGF2ZSB0byBkZXRlcm1pbmVkIGJ5IHNvbWVvbmUgd2hvIHdv
cmtzIG9uIHRoYXQgcG9ydCBzcGVjaWZpY2FsbHkuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpkaWRUZWxsQ2xp
ZW50QWJvdXRMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpoYXZlVG9s
ZENsaWVudEFib3V0TG9hZCk6CisKIDIwMTEtMDYtMDEgIEtlbm5ldGggUnVzc2VsbCAgPGtickBn
b29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5hdGUgQ2hhcGluLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBmMWIwMWNmYmU3Mjg2ZGUwMmU1NjFhNGY5
MDJkMjU3MjAyOTBjMWMxLi5hZTI1ZDYwM2Q5MmI5YzFkYmQ3YjFlZDUzNjM3OTMzNzc0OTczMTRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNDIsNiArNDIsNyBA
QAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMjUsMTEgKzIyNiwyMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgZGVmZXJNYWluUmVzb3VyY2VEYXRh
TG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZDsgfQogICAg
ICAgICAKICAgICAgICAgdm9pZCBkaWRUZWxsQ2xpZW50QWJvdXRMb2FkKGNvbnN0IFN0cmluZyYg
dXJsKQotICAgICAgICB7IAorICAgICAgICB7CisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICAg
ICAgaWYgKCF1cmwuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIG1fcmVzb3VyY2VzQ2xpZW50
S25vd3NBYm91dC5hZGQodXJsKTsKKyNlbHNlCisgICAgICAgICAgICBVTlVTRURfUEFSQU0odXJs
KTsKKyNlbmRpZgorICAgICAgICB9CisgICAgICAgIGJvb2wgaGF2ZVRvbGRDbGllbnRBYm91dExv
YWQoY29uc3QgU3RyaW5nJiB1cmwpCisgICAgICAgIHsKKyNpZiBQTEFURk9STShNQUMpCisgICAg
ICAgICAgICByZXR1cm4gbV9yZXNvdXJjZXNDbGllbnRLbm93c0Fib3V0LmNvbnRhaW5zKHVybCk7
CisjZWxzZQorICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHVybCk7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKICAgICAgICAgfQotICAgICAgICBib29sIGhhdmVUb2xkQ2xpZW50
QWJvdXRMb2FkKGNvbnN0IFN0cmluZyYgdXJsKSB7IHJldHVybiBtX3Jlc291cmNlc0NsaWVudEtu
b3dzQWJvdXQuY29udGFpbnModXJsKTsgfQogICAgICAgICB2b2lkIHJlY29yZE1lbW9yeUNhY2hl
TG9hZEZvckZ1dHVyZUNsaWVudE5vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHVybCk7CiAgICAg
ICAgIHZvaWQgdGFrZU1lbW9yeUNhY2hlTG9hZHNGb3JDbGllbnROb3RpZmljYXRpb24oVmVjdG9y
PFN0cmluZz4mIGxvYWRzKTsKIApAQCAtMzI4LDcgKzM0MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9wYXJzZWRBcmNoaXZlRGF0YTsKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBIYXNoU2V0PFN0cmluZz4gbV9yZXNv
dXJjZXNDbGllbnRLbm93c0Fib3V0OworI2VuZGlmCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IG1f
cmVzb3VyY2VzTG9hZGVkRnJvbU1lbW9yeUNhY2hlRm9yQ2xpZW50Tm90aWZpY2F0aW9uOwogICAg
ICAgICAKICAgICAgICAgU3RyaW5nIG1fY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95722</attachid>
            <date>2011-06-01 22:26:57 -0700</date>
            <delta_ts>2011-06-02 05:52:58 -0700</delta_ts>
            <desc>guards entire functions + callsites</desc>
            <filename>bug-61894-20110601222749.patch</filename>
            <type>text/plain</type>
            <size>6044</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc4NzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0YmJmNDk2NDY0NWI3Njhi
OTQ1YzBiNGJlY2YxMGNiYWVhN2UxZWI4Li45MzQwMzA5ODdhZTJmOGIyNzc3ODhlZGZkMGRmZTE2
ZGNjOTliN2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDYtMDEgIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb2N1bWVudExvYWRlciBrZWVwcyBhIHJlZmVyZW5j
ZSB0byBhbGwgVVJMIHN0cmluZ3MgZXZlciBsb2FkZWQgbGVhZGluZyB0byBsb3RzIG9mIG1lbW9y
eSB3YXN0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjE4OTQKKworICAgICAgICBEb2N1bWVudExvYWRlcjo6bV9yZXNvdXJjZXNDbGllbnRLbm93c0Fi
b3V0IGlzIGEgc2V0IG9mIGFsbCB0aGUgVVJMcyB0aGF0IGhhdmUgcGFzc2VkIHRocm91Z2gKKyAg
ICAgICAgRnJhbWVMb2FkZXI6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KCkgYW5kIGlzIHVzZWQg
YnkgRnJhbWVMb2FkZXI6OmxvYWRlZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlZCB0byBkZWNpZGUK
KyAgICAgICAgd2hldGhlciB0byBpbmZvcm0gdGhlIEZyYW1lTG9hZGVyJ3MgbV9jbGllbnQgYWJv
dXQgdGhpcyBsb2FkLiAgVW5mb3J0dW5hdGVseSwgdGhpcyBzZXQgaG9sZHMgYSByZWZlcmVuY2Ug
dG8gdGhlCisgICAgICAgIFVSTCBzdHJpbmcgZm9yIGV2ZXJ5IHJlc291cmNlIGxvYWRlZCwgc28g
b24gcGFnZXMgdGhhdCB1c2UgZGF0YSBVUkxzIHRvICJsb2FkIiBsYXJnZSBhbW91bnRzIG9mIGRh
dGEgdGhpcyBsZWFrcworICAgICAgICBsb3RzIG9mIG1lbW9yeS4KKworICAgICAgICBUaGlzIHNl
dCBvbmx5IGhhcyBhbiBlZmZlY3Qgb24gdGhlIE1hYyBwb3J0LCBhcyB0aGUgb25seSB0d28gcG9y
dHMgdGhhdCBpbXBsZW1lbnQKKyAgICAgICAgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
TG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKCkgYXJlIENocm9taXVtIGFuZCBNYWMgYW5kIHRo
ZSBDaHJvbWl1bSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBjYW4gY29ycmVjdGx5IGhhbmRsZSBy
ZWNlaXZpbmcgbXVsdGlwbGUgY2FsbGJhY2tzLiAgVGhpcyBwYXRjaCBsaW1pdHMgdGhlIHNldCB0
byBvbmx5IFBMQVRGT1JNKE1BQykgc28gb3RoZXIKKyAgICAgICAgcG9ydHMgZG8gbm90IGhhdmUg
dG8gcGF5IHRoaXMgbWVtb3J5IGNvc3QuICBJdCdzIHBvc3NpYmxlIHRoYXQgYSBiZXR0ZXIgZml4
IGV4aXN0cyBzcGVjaWZpY2FsbHkgZm9yIHRoZSBNYWMgcG9ydAorICAgICAgICBpbXBsZW1lbnRh
dGlvbiwgYnV0IHRoYXQgd291bGQgaGF2ZSB0byBkZXRlcm1pbmVkIGJ5IHNvbWVvbmUgd2hvIHdv
cmtzIG9uIHRoYXQgcG9ydCBzcGVjaWZpY2FsbHkuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpkaWRUZWxsQ2xp
ZW50QWJvdXRMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpoYXZlVG9s
ZENsaWVudEFib3V0TG9hZCk6CisKIDIwMTEtMDYtMDEgIExldmkgV2VpbnRyYXViICA8bGV2aXdA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhhamltZSBNb3JpdGEuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IGYxYjAxY2ZiZTcyODZkZTAyZTU2
MWE0ZjkwMmQyNTcyMDI5MGMxYzEuLjY3OTFiOGUzYjJmMDJjNzlhYTI0NTI4OWY3MjFlNTViYTEz
N2YwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC0yMjQsMTIg
KzIyNCwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0RGVmZXJNYWlu
UmVzb3VyY2VEYXRhTG9hZChib29sIGRlZmVyKSB7IG1fZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9h
ZCA9IGRlZmVyOyB9CiAgICAgICAgIGJvb2wgZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZDsgfQogICAgICAgICAKKyNp
ZiBQTEFURk9STShNQUMpCiAgICAgICAgIHZvaWQgZGlkVGVsbENsaWVudEFib3V0TG9hZChjb25z
dCBTdHJpbmcmIHVybCkKLSAgICAgICAgeyAKKyAgICAgICAgewogICAgICAgICAgICAgaWYgKCF1
cmwuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIG1fcmVzb3VyY2VzQ2xpZW50S25vd3NBYm91
dC5hZGQodXJsKTsKICAgICAgICAgfQotICAgICAgICBib29sIGhhdmVUb2xkQ2xpZW50QWJvdXRM
b2FkKGNvbnN0IFN0cmluZyYgdXJsKSB7IHJldHVybiBtX3Jlc291cmNlc0NsaWVudEtub3dzQWJv
dXQuY29udGFpbnModXJsKTsgfQorICAgICAgICBib29sIGhhdmVUb2xkQ2xpZW50QWJvdXRMb2Fk
KGNvbnN0IFN0cmluZyYgdXJsKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9yZXNv
dXJjZXNDbGllbnRLbm93c0Fib3V0LmNvbnRhaW5zKHVybCk7CisgICAgICAgIH0KKyNlbmRpZgor
CiAgICAgICAgIHZvaWQgcmVjb3JkTWVtb3J5Q2FjaGVMb2FkRm9yRnV0dXJlQ2xpZW50Tm90aWZp
Y2F0aW9uKGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICAgICAgdm9pZCB0YWtlTWVtb3J5Q2FjaGVM
b2Fkc0ZvckNsaWVudE5vdGlmaWNhdGlvbihWZWN0b3I8U3RyaW5nPiYgbG9hZHMpOwogCkBAIC0z
MjgsNyArMzM0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBtX3BhcnNlZEFyY2hpdmVEYXRhOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMp
CiAgICAgICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3Jlc291cmNlc0NsaWVudEtub3dzQWJvdXQ7Cisj
ZW5kaWYKICAgICAgICAgVmVjdG9yPFN0cmluZz4gbV9yZXNvdXJjZXNMb2FkZWRGcm9tTWVtb3J5
Q2FjaGVGb3JDbGllbnROb3RpZmljYXRpb247CiAgICAgICAgIAogICAgICAgICBTdHJpbmcgbV9j
bGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCAyZDkyYjMxYjMzYTNiYjIxMDQ2MDEyNTBlZGRkMTU0NWY0YTA0ZjljLi4x
ZWU4ZjYyODM5NzgzNDJlN2Y1MzJmOGJlMTI5YTBiM2FkN2M5ZTc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTMxNDEsMjAgKzMxNDEsMjkgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZGVkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoY29uc3QgQ2FjaGVkUmVzb3VyY2Uq
IHJlc291cmNlKQogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFy
ZXNvdXJjZS0+c2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygpIHx8IG1fZG9jdW1lbnRMb2FkZXIt
PmhhdmVUb2xkQ2xpZW50QWJvdXRMb2FkKHJlc291cmNlLT51cmwoKSkpCisgICAgaWYgKCFyZXNv
dXJjZS0+c2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygpKQogICAgICAgICByZXR1cm47CiAKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXItPmhhdmVUb2xkQ2xpZW50
QWJvdXRMb2FkKHJlc291cmNlLT51cmwoKSkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCiAg
ICAgaWYgKCFwYWdlLT5hcmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxlZCgpKSB7CiAgICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNh
Y2hlKHBhZ2UsIG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCksIHJlc291cmNlKTsKICAgICAgICAgbV9k
b2N1bWVudExvYWRlci0+cmVjb3JkTWVtb3J5Q2FjaGVMb2FkRm9yRnV0dXJlQ2xpZW50Tm90aWZp
Y2F0aW9uKHJlc291cmNlLT51cmwoKSk7CisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBtX2Rv
Y3VtZW50TG9hZGVyLT5kaWRUZWxsQ2xpZW50QWJvdXRMb2FkKHJlc291cmNlLT51cmwoKSk7Cisj
ZW5kaWYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1
ZXN0KHJlc291cmNlLT51cmwoKSk7CiAgICAgaWYgKG1fY2xpZW50LT5kaXNwYXRjaERpZExvYWRS
ZXNvdXJjZUZyb21NZW1vcnlDYWNoZShtX2RvY3VtZW50TG9hZGVyLmdldCgpLCByZXF1ZXN0LCBy
ZXNvdXJjZS0+cmVzcG9uc2UoKSwgcmVzb3VyY2UtPmVuY29kZWRTaXplKCkpKSB7CiAgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hl
KHBhZ2UsIG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCksIHJlc291cmNlKTsKKyNpZiBQTEFURk9STShN
QUMpCiAgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPmRpZFRlbGxDbGllbnRBYm91dExvYWQocmVz
b3VyY2UtPnVybCgpKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcAppbmRleCBlYTZjZjIy
ZmM2ZGI5MWNmMTAzM2FkODU4NGEyOGE1ZjA2YjEwZjY2Li5kZGY3Y2NhZTNjZWFhMWRkZTg5NGE5
ZWNmYTQ2MzhjZjM3NjQ4YTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkTm90aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWROb3RpZmllci5jcHAKQEAgLTEwNywxNCArMTA3LDE4IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
Tm90aWZpZXI6OmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcg
aWRlbnRpCiAKIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0KERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJl
c3BvbnNlKQogeworI2lmIFBMQVRGT1JNKE1BQykKICAgICBTdHJpbmdJbXBsKiBvbGRSZXF1ZXN0
VVJMID0gcmVxdWVzdC51cmwoKS5zdHJpbmcoKS5pbXBsKCk7CiAgICAgbV9mcmFtZS0+bG9hZGVy
KCktPmRvY3VtZW50TG9hZGVyKCktPmRpZFRlbGxDbGllbnRBYm91dExvYWQocmVxdWVzdC51cmwo
KSk7CisjZW5kaWYKIAogICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hX
aWxsU2VuZFJlcXVlc3QobG9hZGVyLCBpZGVudGlmaWVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3Bv
bnNlKTsKIAorI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBJZiB0aGUgVVJMIGNoYW5nZWQsIHRo
ZW4gd2Ugd2FudCB0byBwdXQgdGhhdCBuZXcgVVJMIGluIHRoZSAiZGlkIHRlbGwgY2xpZW50IiBz
ZXQgdG9vLgogICAgIGlmICghcmVxdWVzdC5pc051bGwoKSAmJiBvbGRSZXF1ZXN0VVJMICE9IHJl
cXVlc3QudXJsKCkuc3RyaW5nKCkuaW1wbCgpKQogICAgICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+
ZG9jdW1lbnRMb2FkZXIoKS0+ZGlkVGVsbENsaWVudEFib3V0TG9hZChyZXF1ZXN0LnVybCgpKTsK
KyNlbmRpZgogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3Qo
bV9mcmFtZSwgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>101188</attachid>
            <date>2011-07-18 12:26:11 -0700</date>
            <delta_ts>2011-07-18 12:26:11 -0700</delta_ts>
            <desc>generate large images via data urls</desc>
            <filename>imgmemory.html</filename>
            <type>text/html</type>
            <size>2689</size>
            <attacher name="Scott Graham">scottmg</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgoJPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTUwMHB4
IiAvPgoJPG1ldGEgbmFtZT0iSGFuZGhlbGRGcmllbmRseSIgY29udGVudD0idHJ1ZSIgLz4KPC9o
ZWFkPgo8Ym9keT4KCgk8IS0tIFJlZHVjZWQgYW5kIHNwZWQgdXAgdGVzdCBjYXNlIGJhc2VkIG9u
IGh0dHA6Ly93YWxkaGVpbnouZGUvMjAxMC8wNi93ZWJraXQtbGVha3MtZGF0YS11cmlzLyAtLT4K
Cgk8IS0tIFF1aWNrIGFuZCBkaXJ0eTogYWRkIGFuIGltYWdlIHBsYWNlaG9sZGVyIGludG8gd2hp
Y2ggd2UgZHJvcCBnZW5lcmF0ZWQgaW1hZ2VzIC0tPgoJPGRpdiBpZD0iaW1hZ2VDb250YWluZXIi
IHN0eWxlPSJoZWlnaHQ6IDMwMHB4OyB3aWR0aDogNDAwcHg7IG1hcmdpbjogMTBweCBhdXRvOyBi
b3JkZXI6IDJweCBzb2xpZCBibGFjazsgYmFja2dyb3VuZDogcmdiKDEyOCwgMTI4LCAxMjgpIj4K
CQk8aDI+UHJlc3MgIlN0YXJ0IiB0byBzdGFydCBjaGFuZ2luZyBpbWFnZS48L2gyPgoJPC9kaXY+
CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCXZhciBjb250YWluZXIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2VDb250YWluZXIiKTsKCQl2YXIgcnVubmluZyA9IGZh
bHNlOwoJCXZhciBzdGFydFRpbWU7CgoJCS8qKgoJCSAqIFNldCB1cCBhIHF1aWNrIGFuZCBkaXJ0
eSByZWRyYXcgbG9vcDsgdXBkYXRlIHRoZSBpbWFnZSwgYWxsb3dpbmcgMTAwbXMgaW4gYmV0d2Vl
biBwYWludHMgZm9yCgkJICogYW55IGJyb3dzZXIgdGFza3MuCgkJICovCgkJZnVuY3Rpb24gc3Rh
cnRQYWludGluZygpIHsKCQkJaWYgKCFydW5uaW5nKSB7CgkJCQlydW5uaW5nID0gdHJ1ZTsKCQkJ
CXN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwoJCQkJc2NoZWR1bGVVcGRhdGUoKTsK
CQkJfQoJCX0KCQkKCQlmdW5jdGlvbiBzY2hlZHVsZVVwZGF0ZSgpIHsKCQkJaWYgKCFydW5uaW5n
KSByZXR1cm47CgkJCXNldFRpbWVvdXQodXBkYXRlSW1hZ2UsIDEwMCk7CgkJfQoJCQoJCS8qKgoJ
CSAqIEdlbmVyYXRlIGEgbmV3IHJhbmRvbSBiaXRtYXAgYW5kIGFkZCBpdCB0byB0aGUgRE9NIHZp
YSBpbm5lckhUTUwsIHJlcGxhY2luZyBwcmV2aW91cyBpbWFnZS4KCQkgKiBJIGFsc28gZXhwZXJp
bWVudGVkIHdpdGggcmVtb3ZlQ2hpbGQsIHJlcGxhY2VDaGlsZCwgdGltZW91dHMsIGNsZWFycywg
ZG9jdW1lbnQgZnJhZ21lbnRzIGV0YwoJCSAqIC0gZGlkbid0IHNlZW0gdG8gYmUgYWJsZSB0byB3
b3JrIGFyb3VuZCB0aGUgY2FjaGUuCgkJICovCgkJZnVuY3Rpb24gdXBkYXRlSW1hZ2UoKSB7CgkJ
CQoJCQl2YXIgYnVmZmVyID0gW107CgkJCgkJCS8vIERhdGEgVVJJIHByZWFtYmxlCgkJCWJ1ZmZl
ci5wdXNoKCJkYXRhOmltYWdlL2JtcDtiYXNlNjQsIik7CgkJCgkJCS8vIEJNUCBmaWxlIGhlYWRl
cgoJCQlidWZmZXIucHVzaCgiUWsxMmZnVUFBQUFBQURZQUFBQW9BQUFBa0FFQUFDd0JBQUFCQUJn
QUFBQUFBRUIrQlFBVEN3QUFFd3NBQUFBQUFBQUFBQUFBIik7CgoJCQkvLyBDcmVhdGUgdGhlIGlt
YWdlIHVzaW5nIGEgbGFyZ2UgY2h1bmsgc2l6ZSBmb3Igc3BlZWQKCQkJdmFyIGNodW5rU2l6ZSA9
IDcyOwoJCQl2YXIgd2hpdGVDaHVuayA9IG5ldyBBcnJheShjaHVua1NpemUgKyAxKS5qb2luKCcv
Ly8vJyk7CgkJCXZhciBibGFja0NodW5rID0gbmV3IEFycmF5KGNodW5rU2l6ZSArIDEpLmpvaW4o
J0FBQUEnKTsKCQkJdmFyIGl0ZXJhdGlvbnMgPSA0MDAgKiAzMDAgLyBjaHVua1NpemU7CgkJCWZv
ciAodmFyIGk9MDsgaSA8IGl0ZXJhdGlvbnM7IGkrKykgewoJCQkJaWYgKE1hdGgucmFuZG9tKCkg
PiAwLjUpIHsKCQkJCQlidWZmZXIucHVzaCh3aGl0ZUNodW5rKTsKCQkJCX0gZWxzZSB7CgkJCQkJ
YnVmZmVyLnB1c2goYmxhY2tDaHVuayk7CgkJCQl9CgkJCX0KCQkJdmFyIGZvbyA9IGJ1ZmZlci5q
b2luKCIiKTsKCgkJCWNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGltZyBzcmM9IicrZm9vKyciIGlk
PSJ0aGVJbWFnZSIgb25sb2FkPSJzY2hlZHVsZVVwZGF0ZSgpIiBzdHlsZT0id2lkdGg6IDQwMHB4
OyBoZWlnaHQ6IDMwMHB4OyIgLz4nOwoKCQkJLy8gVXBkYXRlIHRpbWluZyBkaXNwbGF5CgkJCWRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aW1lIikuaW5uZXJIVE1MID0gJ1J1bm5pbmcgZm9yICcr
TWF0aC5yb3VuZCgobmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGFydFRpbWUpLzEwMDApKycgc2Vj
b25kcyc7CgkJfQoJCQoJCWZ1bmN0aW9uIHN0b3BQYWludGluZygpIHsKCQkJcnVubmluZyA9IGZh
bHNlOwoJCX0JCgk8L3NjcmlwdD4KCQoJPGZvcm0gbmFtZT0iY29udHJvbHMiIGFjdGlvbj0iIiBz
dHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nLXRvcDogMC41ZW07Ij4KCQk8aW5wdXQg
dHlwZT0iYnV0dG9uIiB2YWx1ZT0iIFNUQVJUICIgb25jbGljaz0ic3RhcnRQYWludGluZygpIiAv
PgoJCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSIgUGxlYXNlIHN0b3AgYmF0dGVyaW5nIG15
IG1lbW9yeSAiIG9uY2xpY2s9InN0b3BQYWludGluZygpIiAvPgoJCTxkaXYgaWQ9InRpbWUiPjwv
ZGl2PgoJCTxzbWFsbD48ZW0+KFVzdWFsbHkgfjkwIHNlY3MgdW50aWwgYnJvd3NlciBjcmFzaCBv
biBhbiBpUGFkIDIgd2l0aCBpT1MgNS4wYjIpPC9lbT48L3NtYWxsPgoJPC9mb3JtPgoKPC9ib2R5
Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101189</attachid>
            <date>2011-07-18 12:33:44 -0700</date>
            <delta_ts>2011-07-22 08:32:28 -0700</delta_ts>
            <desc>exclude data urls from m_resourcesClientKnowsAbout</desc>
            <filename>bug-61894-20110718123343.patch</filename>
            <type>text/plain</type>
            <size>2293</size>
            <attacher name="Scott Graham">scottmg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTExODcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OWE5OGQ5NzdlOTVkZGVh
ZDkzYmMzODAyMjYyYzhhZjdhNzg4NGFlLi4yYWVmY2FjMzJjODdlZjk4ZWU3OTRiZWFjZTcyZjM2
YjliZjJjODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDctMTggIFNjb3R0
IEdyYWhhbSAgPHNjb3R0bWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIERvY3VtZW50TG9hZGVy
IGtlZXBzIGEgcmVmZXJlbmNlIHRvIGFsbCBVUkwgc3RyaW5ncyBldmVyIGxvYWRlZAorICAgICAg
ICBsZWFkaW5nIHRvIGxvdHMgb2YgbWVtb3J5IHdhc3RlLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4OTQKKworICAgICAgICBEb2N1bWVudExvYWRl
cjo6bV9yZXNvdXJjZXNDbGllbnRLbm93c0Fib3V0IGlzIGEgc2V0IG9mIGFsbCB0aGUgVVJMcwor
ICAgICAgICB0aGF0IGhhdmUgcGFzc2VkIHRocm91Z2ggRnJhbWVMb2FkZXI6OmRpc3BhdGNoV2ls
bFNlbmRSZXF1ZXN0KCkgYW5kIGlzCisgICAgICAgIHVzZWQgYnkgRnJhbWVMb2FkZXI6OmxvYWRl
ZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlZCB0byBkZWNpZGUgd2hldGhlcgorICAgICAgICB0byBp
bmZvcm0gdGhlIEZyYW1lTG9hZGVyJ3MgbV9jbGllbnQgYWJvdXQgdGhpcyBsb2FkLiAgVW5mb3J0
dW5hdGVseSwKKyAgICAgICAgdGhpcyBzZXQgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIFVSTCBz
dHJpbmcgZm9yIGV2ZXJ5IHJlc291cmNlCisgICAgICAgIGxvYWRlZCwgc28gb24gcGFnZXMgdGhh
dCB1c2UgZGF0YSBVUkxzIHRvICJsb2FkIiBsYXJnZSBhbW91bnRzIG9mIGRhdGEKKyAgICAgICAg
dGhpcyBsZWFrcyBsb3RzIG9mIG1lbW9yeS4gVGhlIGNhY2hlIGltcHJvdmVzIHBlcmZvcm1hbmNl
IGdvaW5nIHRocm91Z2gKKyAgICAgICAgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZUZyb21NZW1v
cnlDYWNoZSwgc28gcmF0aGVyIHRoYW4gcmVtb3ZpbmcgaXQsCisgICAgICAgIHNpbXBseSBleGNs
dWRlICdkYXRhOicgdXJscyBmcm9tIHRoZSBjYWNoZSB0byBzYXZlIHRoZSBtYWpvcml0eSBvZgor
ICAgICAgICBtZW1vcnkgdGhhdCBpcyBoZWxkIGZvciB0b28gbG9uZy4KKworICAgICAgICAqIGxv
YWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6
OmRpZFRlbGxDbGllbnRBYm91dExvYWQpOgorCiAyMDExLTA3LTE4ICBZb3VuZyBIYW4gTGVlICA8
am95YnJvQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIEFuaW1hdGlvbkJhc2UgYXNzZXJ0cyBp
ZiBhIHRlc3QgdHJpZXMgdG8gcGF1c2UgZHVyaW5nIHRoZSBkZWxheSBwaGFzZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCAzZmVhZDEwZjk4NmJjM2VlZjY4NjE0ODY2
MGQ3NDg4NDQzYzY5ZTE1Li4wNDg3ZjQyOTZlNGQ1ZWZmNDIyNzNlNDViZGNiZDFjNGY2Y2IyYmY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtMjMwLDcgKzIzMCw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgCiAgICAgICAgIHZvaWQgZGlkVGVsbENs
aWVudEFib3V0TG9hZChjb25zdCBTdHJpbmcmIHVybCkKICAgICAgICAgeyAKLSAgICAgICAgICAg
IGlmICghdXJsLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIC8vIERvbid0IGluY2x1ZGUgZGF0YSB1
cmxzIGhlcmUsIGFzIGlmIGEgbG90IG9mIGRhdGEgaXMgbG9hZGVkCisgICAgICAgICAgICAvLyB0
aGF0IHdheSwgd2UgaG9sZCBvbiB0byB0aGUgKGxhcmdlKSB1cmwgc3RyaW5nIGZvciB0b28gbG9u
Zy4KKyAgICAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSAmJiAhcHJvdG9jb2xJcyh1cmwsICJk
YXRhIikpCiAgICAgICAgICAgICAgICAgbV9yZXNvdXJjZXNDbGllbnRLbm93c0Fib3V0LmFkZCh1
cmwpOwogICAgICAgICB9CiAgICAgICAgIGJvb2wgaGF2ZVRvbGRDbGllbnRBYm91dExvYWQoY29u
c3QgU3RyaW5nJiB1cmwpIHsgcmV0dXJuIG1fcmVzb3VyY2VzQ2xpZW50S25vd3NBYm91dC5jb250
YWlucyh1cmwpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101735</attachid>
            <date>2011-07-22 08:32:32 -0700</date>
            <delta_ts>2011-07-22 13:17:57 -0700</delta_ts>
            <desc>exclude data urls from m_resourcesClientKnowsAbout (except on MAC pending bug 61904)</desc>
            <filename>bug-61894-20110722083231.patch</filename>
            <type>text/plain</type>
            <size>2265</size>
            <attacher name="Scott Graham">scottmg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE0NzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjODI0NTFmOWQ1NjhjNDM0
YzkyNzA0NzY2YmNjYmVmZDJhYzRiYmMzLi4yZGZhYTVmNDc0NjczY2ZhYTg1NDBiYzUwNjU0NWY0
ZWM5ODE0MjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDctMjIgIFNjb3R0
IEdyYWhhbSAgPHNjb3R0bWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIERvY3VtZW50TG9hZGVy
IGtlZXBzIGEgcmVmZXJlbmNlIHRvIGFsbCBVUkwgc3RyaW5ncyBldmVyIGxvYWRlZCBpbiBtX3Jl
c291cmNlc0NsaWVudEtub3dzQWJvdXQgbGVhZGluZyB0byBsb3RzIG9mIG1lbW9yeSB3YXN0ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4OTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb2N1bWVudExv
YWRlcjo6bV9yZXNvdXJjZXNDbGllbnRLbm93c0Fib3V0IGlzIGEgc2V0IG9mIGFsbCB0aGUgVVJM
cworICAgICAgICB0aGF0IGhhdmUgcGFzc2VkIHRocm91Z2ggRnJhbWVMb2FkZXI6OmRpc3BhdGNo
V2lsbFNlbmRSZXF1ZXN0KCkgYW5kIGlzCisgICAgICAgIHVzZWQgYnkgRnJhbWVMb2FkZXI6Omxv
YWRlZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlZCB0byBkZWNpZGUgd2hldGhlcgorICAgICAgICB0
byBpbmZvcm0gdGhlIEZyYW1lTG9hZGVyJ3MgbV9jbGllbnQgYWJvdXQgdGhpcyBsb2FkLiAgVW5m
b3J0dW5hdGVseSwKKyAgICAgICAgdGhpcyBzZXQgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIFVS
TCBzdHJpbmcgZm9yIGV2ZXJ5IHJlc291cmNlCisgICAgICAgIGxvYWRlZCwgc28gb24gcGFnZXMg
dGhhdCB1c2UgZGF0YSBVUkxzIHRvICJsb2FkIiBsYXJnZSBhbW91bnRzIG9mIGRhdGEKKyAgICAg
ICAgdGhpcyBsZWFrcyBsb3RzIG9mIG1lbW9yeS4gVGhlIGNhY2hlIGltcHJvdmVzIHBlcmZvcm1h
bmNlIGdvaW5nIHRocm91Z2gKKyAgICAgICAgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZUZyb21N
ZW1vcnlDYWNoZSwgc28gcmF0aGVyIHRoYW4gcmVtb3ZpbmcgaXQsCisgICAgICAgIHNpbXBseSBl
eGNsdWRlICdkYXRhOicgdXJscyBmcm9tIHRoZSBjYWNoZSB0byBzYXZlIHRoZSBtYWpvcml0eSBv
ZgorICAgICAgICBtZW1vcnkgdGhhdCBpcyBoZWxkIGZvciB0b28gbG9uZy4KKworICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXI6OmRpZFRlbGxDbGllbnRBYm91dExvYWQpOgorCiAyMDExLTA3LTIxICBBbmRyZXcgV2Fzb24g
IDxyZWN0YWxvZ2ljQHJlY3RhbG9naWMuY29tPgogCiAgICAgICAgIFtRdF0gQWRvcHQgZXhpc3Rp
bmcgR3JhcGhpY3NDb250ZXh0M0QgbWVtYmVycyAocGFydCAxKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuaAppbmRleCAzZmVhZDEwZjk4NmJjM2VlZjY4NjE0ODY2MGQ3NDg4NDQz
YzY5ZTE1Li4xOWU4MTg5NzU2NzMxM2I5YjBjYjQ3M2E0NDI0MzU5MjhhOGE5Mjc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtMjMwLDYgKzIzMCwxMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIAogICAgICAgICB2b2lkIGRpZFRlbGxDbGllbnRBYm91
dExvYWQoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgICAgIHsgCisjaWYgIVBMQVRGT1JNKE1BQykK
KyAgICAgICAgICAgIC8vIERvbid0IGluY2x1ZGUgZGF0YSB1cmxzIGhlcmUsIGFzIGlmIGEgbG90
IG9mIGRhdGEgaXMgbG9hZGVkCisgICAgICAgICAgICAvLyB0aGF0IHdheSwgd2UgaG9sZCBvbiB0
byB0aGUgKGxhcmdlKSB1cmwgc3RyaW5nIGZvciB0b28gbG9uZy4KKyAgICAgICAgICAgIGlmIChw
cm90b2NvbElzKHVybCwgImRhdGEiKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisjZW5kaWYK
ICAgICAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBtX3Jlc291
cmNlc0NsaWVudEtub3dzQWJvdXQuYWRkKHVybCk7CiAgICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>