Code inspection revealed that a Vector of String was being WTFMove'd multiple times in a loop. Don't do that!
<rdar://problem/32936804>
Created attachment 313675 [details] Patch
Comment on attachment 313675 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=313675&action=review > Source/WebKit2/UIProcess/WebProcessProxy.cpp:261 > + Vector<String> topDomains = topPrivatelyControlledDomains; Brady or Darin may have a better idea. Personally, I would pass the Vector as a const Vector& until it actually needs copying (inside WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains()).
Comment on attachment 313675 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=313675&action=review >> Source/WebKit2/UIProcess/WebProcessProxy.cpp:261 >> + Vector<String> topDomains = topPrivatelyControlledDomains; > > Brady or Darin may have a better idea. Personally, I would pass the Vector as a const Vector& until it actually needs copying (inside WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains()). OK. That will make the patch bigger, but might avoid a number of copies if the lowest level of the 'fetch' algorithm skip this work for some reason. I'll try that.
Created attachment 313726 [details] Patch
Comment on attachment 313726 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=313726&action=review > Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp:516 > + for (const auto& topPrivatelyControlledDomain : topPrivatelyControlledDomains) { I think we prefer just "auto&" without const.
Committed r218753: <http://trac.webkit.org/changeset/218753>