Bug 258603

Summary: Harmonize the hosts/domain name testing in Quirks
Product: WebKit Reporter: Karl Dubost <karlcow>
Component: New BugsAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 17   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 267623, 260938    
Bug Blocks:    

Description Karl Dubost 2023-06-27 22:40:19 PDT
Currently the Quirks.cpp file has a couple of different ways of testing for the domain name of a site where the Quirk should apply. 
https://github.com/WebKit/WebKit/blame/main/Source/WebCore/page/Quirks.cpp

This is probably due to layer of history. 
It would probably be better to choose a "better"/more recent way of doing things. 

top domain equality
   equalLettersIgnoringASCIICase(host, domain)
   host == domain

partial_domain end
   host.endsWithIgnoringASCIICase(partial_domain)
   host.endsWith(partial_domain)

partial_domain start
   startsWithLettersIgnoringASCIICase(host, domain)
   host.toString()).startsWith(partial_domain)


There is also 
   topPrivatelyControlledDomain(host.toString()).startsWith("expedia."_s))


The recommended way is probably to use
   class WebCore::RegistrableDomain and its methods

see
https://github.com/WebKit/WebKit/blob/main/Source/WebCore/platform/RegistrableDomain.h
https://github.com/WebKit/WebKit/blob/main/Tools/TestWebKitAPI/Tests/WebCore/RegistrableDomain.cpp
Comment 1 Radar WebKit Bug Importer 2023-06-27 22:40:31 PDT
<rdar://problem/111433802>
Comment 2 Karl Dubost 2023-11-06 21:41:41 PST
How do we improve this a bit more. 
In Bug 260938 isDomain() was created
but probably, there is a need for more generic functions.