Changeset 237366 in webkit
- Timestamp:
- Oct 23, 2018 1:53:20 PM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r237364 r237366 1 2018-10-23 Truitt Savell <tsavell@apple.com> 2 3 Unreviewed, rolling out r237357. 4 5 API test is now failing on all platforms. 6 7 Reverted changeset: 8 9 "topPrivatelyControlledDomain is slow" 10 https://bugs.webkit.org/show_bug.cgi?id=190792 11 https://trac.webkit.org/changeset/237357 12 1 13 2018-10-23 Truitt Savell <tsavell@apple.com> 2 14 -
trunk/Source/WebCore/platform/mac/PublicSuffixMac.mm
r237357 r237366 32 32 #import "WebCoreNSURLExtras.h" 33 33 #import <pal/spi/cf/CFNetworkSPI.h> 34 #import <wtf/HashMap.h>35 #import <wtf/text/StringHash.h>36 34 37 35 namespace WebCore { … … 46 44 String topPrivatelyControlledDomain(const String& domain) 47 45 { 48 if ( domain.isEmpty() || !domain.isAllASCII())46 if (URL::hostIsIPAddress(domain)) 49 47 return domain; 50 48 51 static NeverDestroyed<HashMap<String, String, ASCIICaseInsensitiveHash>> cache; 52 static Lock cacheLock; 49 if (!domain.isAllASCII()) 50 return domain; 51 52 const auto& lowercaseDomain = domain.convertToASCIILowercase(); 53 if (lowercaseDomain == "localhost") 54 return lowercaseDomain; 53 55 54 auto isolatedDomain = domain.isolatedCopy(); 55 56 auto locker = holdLock(cacheLock); 57 58 constexpr auto maximumSizeToPreventUnlimitedGrowth = 128; 59 if (cache.get().size() == maximumSizeToPreventUnlimitedGrowth) 60 cache.get().clear(); 61 62 return cache.get().ensure(isolatedDomain, [&isolatedDomain] { 63 const auto lowercaseDomain = isolatedDomain.convertToASCIILowercase(); 64 if (lowercaseDomain == "localhost") 65 return lowercaseDomain; 66 67 if (URL::hostIsIPAddress(lowercaseDomain)) 68 return lowercaseDomain; 69 70 size_t separatorPosition; 71 for (unsigned labelStart = 0; (separatorPosition = lowercaseDomain.find('.', labelStart)) != notFound; labelStart = separatorPosition + 1) { 72 if (isPublicSuffix(lowercaseDomain.substring(separatorPosition + 1))) 73 return lowercaseDomain.substring(labelStart); 74 } 75 return String(); 76 }).iterator->value.isolatedCopy(); 56 size_t separatorPosition; 57 for (unsigned labelStart = 0; (separatorPosition = lowercaseDomain.find('.', labelStart)) != notFound; labelStart = separatorPosition + 1) { 58 if (isPublicSuffix(lowercaseDomain.substring(separatorPosition + 1))) 59 return lowercaseDomain.substring(labelStart); 60 } 61 return String(); 77 62 } 78 63
Note: See TracChangeset
for help on using the changeset viewer.