<?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>235484</bug_id>
          
          <creation_ts>2022-01-22 15:29:37 -0800</creation_ts>
          <short_desc>LocalStorage values should be 8-bit strings in memory if possible</short_desc>
          <delta_ts>2022-02-03 14:13:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Nham">nham</reporter>
          <assigned_to name="Ben Nham">nham</assigned_to>
          <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1833045</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-22 15:29:37 -0800</bug_when>
    <thetext>LocalStorage values should be 8-bit strings in memory if possible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833047</commentid>
    <comment_count>1</comment_count>
      <attachid>449739</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-22 15:34:19 -0800</bug_when>
    <thetext>Created attachment 449739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833298</commentid>
    <comment_count>2</comment_count>
      <attachid>449739</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-01-24 07:26:12 -0800</bug_when>
    <thetext>Comment on attachment 449739
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833398</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-24 11:13:08 -0800</bug_when>
    <thetext>&lt;rdar://problem/87980407&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837086</commentid>
    <comment_count>4</comment_count>
      <attachid>449739</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-03 13:34:20 -0800</bug_when>
    <thetext>Comment on attachment 449739
Patch

This ended up being only neutral on Membuster. One of the websites in the benchmark has 1.4MB of LocalStorage values in its database. Unfortunately, the values are almost-ASCII but not quite; the site seems to store WebFont css in LocalStorage, and the CSS has a non-ASCII smiley face in it:

@font-face {
  // ...
  src: local(&apos;☺︎&apos;),
  // ...
}

See https://www.paulirish.com/2009/bulletproof-font-face-implementation-syntax/#smiley for more details. So the value can&apos;t actually be parsed into an 8-bit string and this optimization does nothing for that website.

This is still worth doing though, so I&apos;ll land it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837101</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-03 14:02:17 -0800</bug_when>
    <thetext>For this kind of long-living values, making it 8bit as much as possible really makes sense! Nice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837109</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-03 14:13:52 -0800</bug_when>
    <thetext>Committed r289078 (246784@main): &lt;https://commits.webkit.org/246784@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449739.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449739</attachid>
            <date>2022-01-22 15:34:19 -0800</date>
            <delta_ts>2022-02-03 14:13:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235484-20220122153418.patch</filename>
            <type>text/plain</type>
            <size>1744</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjg5YWNmNzkzNmM1Mjk4
OTg4ZDNlZjY1OWVlMjMzMzdjYWZjMDZjZC4uZDhiYjYyOTEwMmFkN2VjMjZiYzg1MDhmNjUxYjEz
MzJhZjBlZGZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAxLTIyICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIExvY2FsU3RvcmFnZSB2YWx1ZXMgc2hv
dWxkIGJlIDgtYml0IHN0cmluZ3MgaW4gbWVtb3J5IGlmIHBvc3NpYmxlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU0ODQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMb2NhbFN0b3JhZ2UgdmFsdWVzIGFy
ZSBzdG9yZWQgaW50byBhIFNRTGl0ZSBjb2x1bW4gYXMgMTYtYml0IHN0cmluZ3MgYW5kIGFyZSBk
ZXNlcmlhbGl6ZWQKKyAgICAgICAgYmFjayBpbnRvIG1lbW9yeSBhcyAxNi1iaXQgc3RyaW5ncy4g
VG8gc2F2ZSBtZW1vcnksIHRoaXMgbWFrZXMgaXQgc28gdGhhdCB3ZSBkZXNlcmlhbGl6ZSB0aGUK
KyAgICAgICAgc3RyaW5nIGludG8gYW4gOC1iaXQgc3RyaW5nIGluIG1lbW9yeSBpZiBwb3NzaWJs
ZS4KKworICAgICAgICBFc3RpbWF0ZWQgd2luIG9mIH4zTUIgb24gTWVtYnVzdGVyNS4KKworICAg
ICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1FMaXRlU3RhdGVtZW50Ojpjb2x1bW5CbG9iQXNTdHJpbmcpOgorCiAyMDIyLTAxLTIwICBB
bGV4ZXkgU2h2YXlrYSAgPGFzaHZheWthQGFwcGxlLmNvbT4KIAogICAgICAgICBDYWxsYmFjayBm
dW5jdGlvbnMgLyBpbnRlcmZhY2VzIHNob3VsZCB1c2UgZ2xvYmFsIG9iamVjdCBvZiBpdHMgX3Zh
bHVlXyBmb3IgZXJyb3JzIGFuZCBsaWZlY3ljbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHAKaW5kZXggMTcyYTAwMGI1MTVmMTExNDU2NDA3MzFm
N2M0N2QxNTU5YjZjMTMzNy4uNzI1NTkwYzZmYWI4YTRhMGI2MjM3NzliNzU5N2QxZWE0NjBlM2Fi
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5j
cHAKQEAgLTI4NCw3ICsyODQsNyBAQCBTdHJpbmcgU1FMaXRlU3RhdGVtZW50Ojpjb2x1bW5CbG9i
QXNTdHJpbmcoaW50IGNvbCkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgQVNTRVJU
KCEoc2l6ZSAlIHNpemVvZihVQ2hhcikpKTsKLSAgICByZXR1cm4gU3RyaW5nKHN0YXRpY19jYXN0
PGNvbnN0IFVDaGFyKj4oYmxvYiksIHNpemUgLyBzaXplb2YoVUNoYXIpKTsKKyAgICByZXR1cm4g
U3RyaW5nSW1wbDo6Y3JlYXRlOEJpdElmUG9zc2libGUoc3RhdGljX2Nhc3Q8Y29uc3QgVUNoYXIq
PihibG9iKSwgc2l6ZSAvIHNpemVvZihVQ2hhcikpOwogfQogCiBWZWN0b3I8dWludDhfdD4gU1FM
aXRlU3RhdGVtZW50Ojpjb2x1bW5CbG9iKGludCBjb2wpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>