[webkit-reviews] review granted: [Bug 213631] Convert ContentSecurityPolicy related parsers over to using StringParsingBuffer : [Attachment 402874] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Jun 26 10:00:29 PDT 2020
Darin Adler <darin at apple.com> has granted Sam Weinig <sam at webkit.org>'s request
for review:
Bug 213631: Convert ContentSecurityPolicy related parsers over to using
StringParsingBuffer
https://bugs.webkit.org/show_bug.cgi?id=213631
Attachment 402874: Patch
https://bugs.webkit.org/attachment.cgi?id=402874&action=review
--- Comment #4 from Darin Adler <darin at apple.com> ---
Comment on attachment 402874
--> https://bugs.webkit.org/attachment.cgi?id=402874
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=402874&action=review
> Source/WebCore/html/parser/ParsingUtilities.h:38
> +template<typename CharType>
> +inline bool isNotASCIISpace(CharType c)
CharacterType, single line, constexpr?
> Source/WebCore/html/parser/ParsingUtilities.h:44
> +template<typename CharType, typename DelimiterType>
> +bool skipExactly(const CharType*& position, const CharType* end,
DelimiterType delimiter)
CharacterType, single line?
> Source/WebCore/html/parser/ParsingUtilities.h:54
> +template<typename CharType, typename DelimiterType>
> +bool skipExactly(StringParsingBuffer<CharType>& parsingBuffer, DelimiterType
delimiter)
CharacterType, single line?
I suggest naming the local variable just "buffer". Single words seem to work
well in short functions.
> Source/WebCore/html/parser/ParsingUtilities.h:74
> +template<typename CharType, bool characterPredicate(CharType)>
> +bool skipExactly(StringParsingBuffer<CharType>& parsingBuffer)
CharacterType, single line?
I suggest naming the local variable just "buffer". Single words seem to work
well in short functions.
> Source/WebCore/html/parser/ParsingUtilities.h:84
> +template<typename CharType, typename DelimiterType>
> +void skipUntil(const CharType*& position, const CharType* end, DelimiterType
delimiter)
CharacterType, single line?
> Source/WebCore/html/parser/ParsingUtilities.h:91
> +template<typename CharType, typename DelimiterType>
> +void skipUntil(StringParsingBuffer<CharType>& parsingBuffer, DelimiterType
delimiter)
CharacterType, single line?
> Source/WebCore/html/parser/ParsingUtilities.h:105
> template<typename CharType, bool characterPredicate(CharType)>
> +void skipUntil(StringParsingBuffer<CharType>& parsingBuffer)
CharacterType, single line, "buffer"?
> Source/WebCore/html/parser/ParsingUtilities.h:119
> template<typename CharType, bool characterPredicate(CharType)>
> +void skipWhile(StringParsingBuffer<CharType>& parsingBuffer)
CharacterType, single line, "buffer"?
> Source/WebCore/html/parser/ParsingUtilities.h:143
> +template<typename CharacterType, unsigned lowercaseLettersLength>
I think that "length" is not a great name for the size of an array that
contains a null-terminated string. We use it elsewhere, but it seems like a
mistake.
> Source/WebCore/html/parser/ParsingUtilities.h:146
> + if (parsingBuffer.lengthRemaining() < lowercaseLettersLength - 1)
Seems like the whole function would be better if it said:
constexpr auto lowercaseLettersLength = lowercaseLettersArraySize - 1;
ASSERT(!lowercaseLetters[lowercaseLettersLength]);
Maybe with some kind of comment, and might need to be the right kind of assert,
maybe not ASSERT.
> Source/WebCore/html/parser/ParsingUtilities.h:150
> + parsingBuffer += (lowercaseLettersLength - 1);
Not sure the parentheses make this clearer.
> Source/WebCore/loader/ResourceCryptographicDigest.cpp:37
> +template<typename CharacterType> static
Optional<ResourceCryptographicDigest::Algorithm>
parseHashAlgorithmAdvancingPosition(StringParsingBuffer<CharacterType>&
parsingBuffer)
"buffer"
> Source/WebCore/loader/ResourceCryptographicDigest.cpp:52
> +template<typename CharacterType> static
Optional<ResourceCryptographicDigest>
parseCryptographicDigestImpl(StringParsingBuffer<CharacterType>& parsingBuffer)
"buffer"
> Source/WebCore/loader/ResourceCryptographicDigest.cpp:67
> + skipExactly<CharacterType>(parsingBuffer, '=');
> + skipExactly<CharacterType>(parsingBuffer, '=');
Compiler can’t deduce CharacterType?
> Source/WebCore/loader/ResourceCryptographicDigest.cpp:82
> +Optional<ResourceCryptographicDigest>
parseCryptographicDigest(StringParsingBuffer<UChar>& parsingBuffer)
"buffer" (I’ll stop commenting this each time)
> Source/WebCore/page/csp/ContentSecurityPolicyMediaListDirective.cpp:39
> +template<typename CharacterType>
> +static bool isMediaTypeCharacter(CharacterType c)
Single-line?
More information about the webkit-reviews
mailing list