webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
WebCore::URLParser Class Reference

#include <URLParser.h>

Public Types

enum  URLPart {
  URLPart::SchemeEnd, URLPart::UserStart, URLPart::UserEnd, URLPart::PasswordEnd,
  URLPart::HostEnd, URLPart::PortEnd, URLPart::PathAfterLastSlash, URLPart::PathEnd,
  URLPart::QueryEnd, URLPart::FragmentEnd
}
 
enum  IPv4PieceParsingError { IPv4PieceParsingError::Failure, IPv4PieceParsingError::Overflow }
 
enum  IPv4ParsingError { IPv4ParsingError::Failure, IPv4ParsingError::NotIPv4 }
 
typedef Vector< WTF::KeyValuePair< String, String > > URLEncodedForm
 
typedef Vector< WTF::KeyValuePair< String, String > > URLEncodedForm
 

Public Member Functions

WEBCORE_EXPORT URLParser (const String &, const URL &={ }, const TextEncoding &=UTF8Encoding())
 
URL result ()
 
WEBCORE_EXPORT URLParser (const String &, const URL &={ }, const TextEncoding &=UTF8Encoding())
 
URL result ()
 
template<typename CharacterType , URLParser::ReportSyntaxViolation reportSyntaxViolation>
ALWAYS_INLINE void advance (CodePointIterator< CharacterType > &iterator, const CodePointIterator< CharacterType > &iteratorForSyntaxViolationPosition)
 
template<typename CharacterType >
ALWAYS_INLINE bool isWindowsDriveLetter (CodePointIterator< CharacterType > iterator)
 
template<bool(*)(UChar32) isInCodeSet, typename CharacterType >
ALWAYS_INLINE void utf8PercentEncode (const CodePointIterator< CharacterType > &iterator)
 
template<typename CharacterType >
ALWAYS_INLINE void utf8QueryEncode (const CodePointIterator< CharacterType > &iterator)
 
template<typename CharacterType >
ALWAYS_INLINE bool isSingleDotPathSegment (CodePointIterator< CharacterType > c)
 
template<typename CharacterType >
ALWAYS_INLINE bool isDoubleDotPathSegment (CodePointIterator< CharacterType > c)
 
template<typename CharacterType >
ALWAYS_INLINE size_t currentPosition (const CodePointIterator< CharacterType > &iterator)
 

Static Public Member Functions

static WEBCORE_EXPORT bool allValuesEqual (const URL &, const URL &)
 
static WEBCORE_EXPORT bool internalValuesConsistent (const URL &)
 
static WEBCORE_EXPORT URLEncodedForm parseURLEncodedForm (StringView)
 
static String serialize (const URLEncodedForm &)
 
static const UIDNAinternationalDomainNameTranscoder ()
 
static WEBCORE_EXPORT bool allValuesEqual (const URL &, const URL &)
 
static WEBCORE_EXPORT bool internalValuesConsistent (const URL &)
 
static WEBCORE_EXPORT URLEncodedForm parseURLEncodedForm (StringView)
 
static String serialize (const URLEncodedForm &)
 
static const UIDNAinternationalDomainNameTranscoder ()
 

Friends

std::optional< uint16_tdefaultPortForProtocol (StringView)
 
std::optional< uint16_tdefaultPortForProtocol (StringView)
 

Member Typedef Documentation

◆ URLEncodedForm [1/2]

◆ URLEncodedForm [2/2]

Member Enumeration Documentation

◆ IPv4ParsingError

Enumerator
Failure 
NotIPv4 

◆ IPv4PieceParsingError

Enumerator
Failure 
Overflow 

◆ URLPart

Enumerator
SchemeEnd 
UserStart 
UserEnd 
PasswordEnd 
HostEnd 
PortEnd 
PathAfterLastSlash 
PathEnd 
QueryEnd 
FragmentEnd 

Constructor & Destructor Documentation

◆ URLParser() [1/2]

WebCore::URLParser::URLParser ( const String input,
const URL base = { },
const TextEncoding encoding = UTF8Encoding() 
)

◆ URLParser() [2/2]

WEBCORE_EXPORT WebCore::URLParser::URLParser ( const String ,
const URL = { },
const TextEncoding = UTF8Encoding() 
)

Member Function Documentation

◆ advance()

template<typename CharacterType , URLParser::ReportSyntaxViolation reportSyntaxViolation>
ALWAYS_INLINE void WebCore::URLParser::advance ( CodePointIterator< CharacterType > &  iterator,
const CodePointIterator< CharacterType > &  iteratorForSyntaxViolationPosition 
)

◆ allValuesEqual() [1/2]

static WEBCORE_EXPORT bool WebCore::URLParser::allValuesEqual ( const URL ,
const URL  
)
static

◆ allValuesEqual() [2/2]

bool WebCore::URLParser::allValuesEqual ( const URL a,
const URL b 
)
static

◆ currentPosition()

template<typename CharacterType >
ALWAYS_INLINE size_t WebCore::URLParser::currentPosition ( const CodePointIterator< CharacterType > &  iterator)

◆ internalValuesConsistent() [1/2]

static WEBCORE_EXPORT bool WebCore::URLParser::internalValuesConsistent ( const URL )
static

◆ internalValuesConsistent() [2/2]

bool WebCore::URLParser::internalValuesConsistent ( const URL url)
static

◆ internationalDomainNameTranscoder() [1/2]

static const UIDNA& WebCore::URLParser::internationalDomainNameTranscoder ( )
static

◆ internationalDomainNameTranscoder() [2/2]

const UIDNA & WebCore::URLParser::internationalDomainNameTranscoder ( )
static

◆ isDoubleDotPathSegment()

template<typename CharacterType >
ALWAYS_INLINE bool WebCore::URLParser::isDoubleDotPathSegment ( CodePointIterator< CharacterType c)

◆ isSingleDotPathSegment()

template<typename CharacterType >
ALWAYS_INLINE bool WebCore::URLParser::isSingleDotPathSegment ( CodePointIterator< CharacterType c)

◆ isWindowsDriveLetter()

template<typename CharacterType >
ALWAYS_INLINE bool WebCore::URLParser::isWindowsDriveLetter ( CodePointIterator< CharacterType iterator)

◆ parseURLEncodedForm() [1/2]

static WEBCORE_EXPORT URLEncodedForm WebCore::URLParser::parseURLEncodedForm ( StringView  )
static

◆ parseURLEncodedForm() [2/2]

auto WebCore::URLParser::parseURLEncodedForm ( StringView  input)
static

◆ result() [1/2]

URL WebCore::URLParser::result ( )
inline

◆ result() [2/2]

URL WebCore::URLParser::result ( )
inline

◆ serialize() [1/2]

static String WebCore::URLParser::serialize ( const URLEncodedForm )
static

◆ serialize() [2/2]

String WebCore::URLParser::serialize ( const URLEncodedForm tuples)
static

◆ utf8PercentEncode()

template<bool(*)(UChar32) isInCodeSet, typename CharacterType >
ALWAYS_INLINE void WebCore::URLParser::utf8PercentEncode ( const CodePointIterator< CharacterType > &  iterator)

◆ utf8QueryEncode()

template<typename CharacterType >
ALWAYS_INLINE void WebCore::URLParser::utf8QueryEncode ( const CodePointIterator< CharacterType > &  iterator)

Friends And Related Function Documentation

◆ defaultPortForProtocol [1/2]

std::optional<uint16_t> defaultPortForProtocol ( StringView  )
friend

◆ defaultPortForProtocol [2/2]

std::optional<uint16_t> defaultPortForProtocol ( StringView  )
friend

The documentation for this class was generated from the following files: