<?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>215012</bug_id>
          
          <creation_ts>2020-07-30 22:40:58 -0700</creation_ts>
          <short_desc>Optimize WebsiteDataStoreConfiguration::copy</short_desc>
          <delta_ts>2020-07-31 10:27:44 -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>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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1676728</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-30 22:40:58 -0700</bug_when>
    <thetext>Optimize WebsiteDataStoreConfiguration::copy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676731</commentid>
    <comment_count>1</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-30 22:41:21 -0700</bug_when>
    <thetext>*** Bug 215011 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676733</commentid>
    <comment_count>2</comment_count>
      <attachid>405670</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-30 22:43:38 -0700</bug_when>
    <thetext>Created attachment 405670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676734</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-30 22:43:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/64263406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676743</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-30 23:16:38 -0700</bug_when>
    <thetext>Committed r265134: &lt;https://trac.webkit.org/changeset/265134&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405670.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676757</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-31 00:17:28 -0700</bug_when>
    <thetext>This actually wasn&apos;t quite enough! Need to apply the flag to the WebsiteDataStore constructor as well:


WebsiteDataStore::WebsiteDataStore(Ref&lt;WebsiteDataStoreConfiguration&gt;&amp;&amp; configuration, PAL::SessionID sessionID)
    : m_sessionID(sessionID)
    , m_resolvedConfiguration(WTFMove(configuration))
    , m_configuration((m_resolvedConfiguration)-&gt;copy()) &lt;-------Here

I&apos;ll followup in the morning</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676825</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-31 08:24:37 -0700</bug_when>
    <thetext>That calls WebsiteDataStoreConfiguration::copy() which benefits from this optimization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676836</commentid>
    <comment_count>7</comment_count>
      <attachid>405670</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-07-31 09:02:33 -0700</bug_when>
    <thetext>Comment on attachment 405670
Patch

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

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:36
&gt; +enum class WillCopyPathsFromExistingConfiguration : bool { No, Yes };

What&apos;s important here is not necessarily that the paths came from some other configuration, but rather that the paths are already fully resolved -- right? If so, perhaps a better enum would be PathsAreFullyResolved { No, Yes }. Global knowledge of the code and logical deduction can tell us that a path from an existing configuration is a fully resolved path, but it is best if reading code doesn&apos;t require global knowledge or logical deduction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676838</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-31 09:08:08 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #6)
&gt; That calls WebsiteDataStoreConfiguration::copy() which benefits from this
&gt; optimization.

Yup I totally misread it late at night, we&apos;re good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676863</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-31 10:27:44 -0700</bug_when>
    <thetext>What&apos;s really important here is that we don&apos;t do disk read and write operations during WebsiteDataStoreConfiguration::copy.  This was one solution, but I think a better one would be do std::call_once in each of the WebsiteDataStore::default*Directory in WebsiteDataStoreCocoa.mm and remove this strange looking code from WebsiteDataStoreConfiguration.  That&apos;s not urgent, though, because this bug is fixed and we don&apos;t touch WebsiteDataStoreConfiguration much.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405670</attachid>
            <date>2020-07-30 22:43:38 -0700</date>
            <delta_ts>2020-07-30 23:16:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215012-20200730224337.patch</filename>
            <type>text/plain</type>
            <size>4069</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjUxMzEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA3LTMwICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgT3B0aW1pemUgV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTAxMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjQyNjM0MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGNvbnN0cnVjdG9yIGRvZXMgc29t
ZSByZWFkL3dyaXRlIGhlYXZ5IHRoaW5ncy4KKyAgICAgICAgV2Ugb25seSB3YW50IHRvIGRvIHRo
ZXNlIHRoaW5ncyBpZiB3ZSBhcmUgbm90IGp1c3QgZ29pbmcgdG8gb3ZlcndyaXRlIHRoZSBzdHJp
bmdzIHdpdGggc3RyaW5ncyBmcm9tIGFub3RoZXIgV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24uCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvciwganVzdCBtYWtpbmcgdGhpbmdzIGZh
c3Rlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uOjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjb3B5IGNvbnN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoK
KyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNyZWF0ZSk6
CisKIDIwMjAtMDctMzAgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBzZWNvbmQgYXR0ZW1wdCB0byBmaXggQ2F0YWx5c3QgYnVpbGQgYWZ0
ZXIgcjI2NTA4NC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5j
cHAJKHJldmlzaW9uIDI2NTA4MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsMTAgKzMwLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbjo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24oSXNQZXJzaXN0ZW50
IGlzUGVyc2lzdGVudCkKK1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbihJc1BlcnNpc3RlbnQgaXNQZXJzaXN0ZW50LCBXaWxsQ29weVBh
dGhzRnJvbUV4aXN0aW5nQ29uZmlndXJhdGlvbiB3aWxsQ29weVBhdGhzKQogICAgIDogbV9pc1Bl
cnNpc3RlbnQoaXNQZXJzaXN0ZW50KQogewotICAgIGlmIChpc1BlcnNpc3RlbnQgPT0gSXNQZXJz
aXN0ZW50OjpZZXMpIHsKKyAgICBpZiAoaXNQZXJzaXN0ZW50ID09IElzUGVyc2lzdGVudDo6WWVz
ICYmIHdpbGxDb3B5UGF0aHMgPT0gV2lsbENvcHlQYXRoc0Zyb21FeGlzdGluZ0NvbmZpZ3VyYXRp
b246Ok5vKSB7CiAgICAgICAgIHNldEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoV2Vic2l0ZURh
dGFTdG9yZTo6ZGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKSk7CiAgICAgICAgIHNl
dENhY2hlU3RvcmFnZURpcmVjdG9yeShXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0Q2FjaGVTdG9y
YWdlRGlyZWN0b3J5KCkpOwogICAgICAgICBzZXROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoV2Vic2l0
ZURhdGFTdG9yZTo6ZGVmYXVsdE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpKTsKQEAgLTUyLDcgKzUy
LDcgQEAgV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OldlYnNpdGVEYQogCiBSZWY8V2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Ojpjb3B5KCkgY29uc3QKIHsKLSAgICBhdXRvIGNvcHkgPSBXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbjo6Y3JlYXRlKG1faXNQZXJzaXN0ZW50KTsKKyAgICBhdXRvIGNvcHkgPSBXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y3JlYXRlKG1faXNQZXJzaXN0ZW50LCBXaWxsQ29weVBh
dGhzRnJvbUV4aXN0aW5nQ29uZmlndXJhdGlvbjo6WWVzKTsKIAogICAgIGNvcHktPm1fc2Vydmlj
ZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCA9IHRoaXMtPm1fc2VydmljZVdv
cmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZDsKICAgICBjb3B5LT5tX2Zhc3RTZXJ2
ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkID0gdGhpcy0+bV9mYXN0U2VydmVyVHJ1c3RFdmFsdWF0
aW9uRW5hYmxlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAko
cmV2aXNpb24gMjY1MDgxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTEg
KzMzLDEyIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZW51bSBjbGFzcyBJc1BlcnNpc3RlbnQg
OiBib29sIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBXaWxsQ29weVBhdGhzRnJvbUV4aXN0aW5n
Q29uZmlndXJhdGlvbiA6IGJvb2wgeyBObywgWWVzIH07CiAKIGNsYXNzIFdlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlw
ZTo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBjcmVhdGUoSXNQZXJzaXN0ZW50IGlz
UGVyc2lzdGVudCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbihpc1BlcnNpc3RlbnQpKTsgfQotICAgIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uKElzUGVyc2lzdGVudCk7CisgICAgc3RhdGljIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbj4gY3JlYXRlKElzUGVyc2lzdGVudCBpc1BlcnNpc3RlbnQsIFdpbGxDb3B5UGF0aHNG
cm9tRXhpc3RpbmdDb25maWd1cmF0aW9uIHdpbGxDb3B5UGF0aHMgPSBXaWxsQ29weVBhdGhzRnJv
bUV4aXN0aW5nQ29uZmlndXJhdGlvbjo6Tm8pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24oaXNQZXJzaXN0ZW50LCB3aWxsQ29weVBhdGhzKSk7IH0K
KyAgICBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbihJc1BlcnNpc3RlbnQsIFdpbGxDb3B5
UGF0aHNGcm9tRXhpc3RpbmdDb25maWd1cmF0aW9uID0gV2lsbENvcHlQYXRoc0Zyb21FeGlzdGlu
Z0NvbmZpZ3VyYXRpb246Ok5vKTsKIAogICAgIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbj4gY29weSgpIGNvbnN0OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>