We currently initialize m_isPotentiallyTrustworthy in the SecurityOrigin constructor. However, it is a bit expensive to compute and shows on profiles, and we often don't actually use this data member. As a result, this patch makes it so that SecurityOrigin::m_isPotentiallyTrustworthy gets computed lazily.
Created attachment 431240 [details] Patch
Comment on attachment 431240 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=431240&action=review > Source/WebCore/page/SecurityOrigin.cpp:496 > + return m_isPotentiallyTrustworthy; return *m_isPotentiallyTrustworthy; > Source/WebCore/page/SecurityOrigin.h:246 > + std::optional<bool> m_isPotentiallyTrustworthy; This uses more memory. To offset this, could you make some of the surrounding booleans bit fields?
(In reply to Alex Christensen from comment #2) > Comment on attachment 431240 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=431240&action=review > > > Source/WebCore/page/SecurityOrigin.cpp:496 > > + return m_isPotentiallyTrustworthy; > > return *m_isPotentiallyTrustworthy; Indeed, oops. > > > Source/WebCore/page/SecurityOrigin.h:246 > > + std::optional<bool> m_isPotentiallyTrustworthy; > > This uses more memory. To offset this, could you make some of the > surrounding booleans bit fields? sizeof(SecurityOrigin) is 64 before and after my change so let's not?
Created attachment 431242 [details] Patch
Created attachment 431243 [details] Patch
Created attachment 431245 [details] Patch
Committed r278806 (238763@main): <https://commits.webkit.org/238763@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 431245 [details].
<rdar://problem/79228666>