Code change:
This switches the custom wildcard matching to use with regexp support disabled. URLPattern is being used by the service worker routing API's and is what the web side is standardizing on for anything that pattern-matches URLs. This splits the match pattern into explicit path and search (query param) components and forces the origin to be inherited from the dictionary request URL. Also included here is a new field for to allow for matching on request destinations. The biggest use case for that will be for allowing site-wide HTML dictionaries to do something like and for the dictionary to not be sent for every request across the site (images, etc). See issues , ,

Related discussion:
text: When responding to a HTTP Request, a server can advertise that the response can be used as a dictionary for future requests for URLs <del> that match the pattern specified in the Use-As-Dictionary response </del> <ins> that match the rules specified in the Use-As-Dictionary response </ins> header. The Use-As-Dictionary response header is a Structured Field <del> STRUCTURED-FIELDS sf-dictionary with values for "match", "ttl", "type" and "hashes". </del> <ins> STRUCTURED-FIELDS sf-dictionary with values for "match", "match- query", "match-dest", "ttl", "type" and "hashes". </ins> 2.1.1. The "match" value of the Use-As-Dictionary header is a sf-string <del> value that provides an URL-matching pattern for requests where the dictionary can be used. </del> <ins> value that provides the "pathname" of a URLPattern (https://urlpattern.spec.whatwg.org/#dom-urlpatterninit-pathname). </ins> <del> The sf-string is parsed as a URL URL, and supports absolute URLs as well as relative URLs.  When stored, any relative URLs MUST be expanded so that only absolute URL patterns are used for matching against requests. </del> <ins> The "match" is a URL path relative to the full request URL of the dictionary.  The request URL for the dictionary itself is used as the "baseURL" for constructing the URLPattern (https://urlpattern.spec.whatwg.org/) that is used for matching the dictionary to relevant requests when running dictionary-url-matching. </ins> <del> The match URL supports using * as a wildcard within the match string for pattern-matching multiple URLs.  URLs with a natural * in them are not directly supported unless they can rely on the behavior of * matching an arbitrary string. The Origin of the URL in the "match" pattern MUST be the same as the origin of the request that specifies the "Use-As-Dictionary" response and MUST not include a * wildcard. </del> <ins> The URLPattern used for request matching does not support regular expressions (https://urlpattern.spec.whatwg.org/#token-type-regexp) in the "match". </ins> The "match" value is required and MUST be included in the Use-As- Dictionary sf-dictionary for the dictionary to be considered valid. 2.1.2. <ins> The "match-query" value of the Use-As-Dictionary header is a sf- string value that provides the "search" of a URLPattern (https://urlpattern.spec.whatwg.org/#dom-urlpatterninit-search). The "match-query" is the match pattern for the searchpart of the request URL and does not support regular expressions. The "match-query" value is optional and defaults to the asterisk wildcard token "*". 2.1.3. The "match-dest" value of the Use-As-Dictionary header is a sf-string value that provides a request destination (https://fetch.spec.whatwg.org/#concept-request-destination). An empty string for "match-dest" MUST match all destinations. For clients that do not support request destinations or if the value of "match-dest" is a value that is not supported by the client then the client MUST treat it as an empty string and match all destinations. The "match-dest" value is optional and defaults to the empty string. 2.1.4. </ins> The "ttl" value of the Use-As-Dictionary header is a sf-integer value that provides the time in seconds that the dictionary is valid for (time to live).