[webkit-changes] [WebKit/WebKit] efab24: Optimize matchIntegrityMetadata()

Chris Dumez noreply at github.com
Wed Mar 8 17:12:03 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: efab2420412f966978181e4acf1dac6f3c63c049
      https://github.com/WebKit/WebKit/commit/efab2420412f966978181e4acf1dac6f3c63c049
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-03-08 (Wed, 08 Mar 2023)

  Changed paths:
    M Source/WebCore/loader/ResourceCryptographicDigest.h
    M Source/WebCore/loader/SubresourceIntegrity.cpp
    M Source/WebCore/loader/SubresourceIntegrity.h
    M Source/WebCore/loader/cache/CachedResource.cpp
    M Source/WebCore/loader/cache/CachedResource.h

  Log Message:
  -----------
  Optimize matchIntegrityMetadata()
https://bugs.webkit.org/show_bug.cgi?id=253528

Reviewed by Ryosuke Niwa.

Optimize matchIntegrityMetadata():
- Avoid a function call when the integrityMetadata string is empty, which is the
  common case.
- Cache the cryptographic digest on the CachedResource to avoid repeated crypto
  operations for the same resource. This impacts 3 sub-resources on Speedometer
  which now leverage the cache instead of recomputing every time.

* Source/WebCore/loader/ResourceCryptographicDigest.h:
* Source/WebCore/loader/SubresourceIntegrity.cpp:
(WebCore::matchIntegrityMetadataSlow):
(WebCore::matchIntegrityMetadata): Deleted.
* Source/WebCore/loader/SubresourceIntegrity.h:
(WebCore::matchIntegrityMetadata):
* Source/WebCore/loader/cache/CachedResource.cpp:
(WebCore::CachedResource::setBodyDataFrom):
(WebCore::CachedResource::finishLoading):
(WebCore::CachedResource::error):
(WebCore::CachedResource::clearCachedCryptographicDigests):
(WebCore::CachedResource::cryptographicDigest const):
* Source/WebCore/loader/cache/CachedResource.h:

Canonical link: https://commits.webkit.org/261392@main




More information about the webkit-changes mailing list