diff --git a/include/tidyenum.h b/include/tidyenum.h index 36407c1b..111f52b4 100644 --- a/include/tidyenum.h +++ b/include/tidyenum.h @@ -1129,6 +1129,7 @@ typedef enum TidyAttr_PROMPT, /**< PROMPT= */ TidyAttr_RBSPAN, /**< RBSPAN= */ TidyAttr_READONLY, /**< READONLY= */ + TidyAttr_REFERRERPOLICY, /**< REFERRERPOLICY= */ TidyAttr_REL, /**< REL= */ TidyAttr_REV, /**< REV= */ TidyAttr_RIGHTMARGIN, /**< RIGHTMARGIN= */ diff --git a/src/attrdict.c b/src/attrdict.c index e05a3052..fe2f1ff3 100644 --- a/src/attrdict.c +++ b/src/attrdict.c @@ -201,6 +201,7 @@ const AttrVersion TY_(W3CAttrsFor_A)[] = { TidyAttr_OnMOUSEOUT, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ { TidyAttr_OnMOUSEOVER, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ { TidyAttr_OnMOUSEUP, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ + { TidyAttr_REFERRERPOLICY, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, { TidyAttr_REL, HT20|HT32|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|XB10|HT50|XH50 }, { TidyAttr_REV, HT20|HT32|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|XB10|xxxx|xxxx }, { TidyAttr_SDAPREF, HT20|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx }, @@ -357,6 +358,7 @@ const AttrVersion TY_(W3CAttrsFor_AREA)[] = { TidyAttr_OnMOUSEOUT, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ { TidyAttr_OnMOUSEOVER, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ { TidyAttr_OnMOUSEUP, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ + { TidyAttr_REFERRERPOLICY, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, { TidyAttr_REL, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, { TidyAttr_SHAPE, xxxx|HT32|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, { TidyAttr_STYLE, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ @@ -1636,6 +1638,7 @@ const AttrVersion TY_(W3CAttrsFor_IFRAME)[] = { TidyAttr_MARGINHEIGHT, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx }, { TidyAttr_MARGINWIDTH, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx }, { TidyAttr_NAME, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, + { TidyAttr_REFERRERPOLICY, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, { TidyAttr_SANDBOX, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, { TidyAttr_SCROLLING, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx }, { TidyAttr_SEAMLESS, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, @@ -1678,6 +1681,7 @@ const AttrVersion TY_(W3CAttrsFor_IMG)[] = { TidyAttr_OnMOUSEOUT, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ { TidyAttr_OnMOUSEOVER, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ { TidyAttr_OnMOUSEUP, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ + { TidyAttr_REFERRERPOLICY, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, { TidyAttr_SDAPREF, HT20|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx }, { TidyAttr_SIZES, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, { TidyAttr_SRC, HT20|HT32|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|XB10|HT50|XH50 }, @@ -1978,6 +1982,7 @@ const AttrVersion TY_(W3CAttrsFor_LINK)[] = { TidyAttr_OnMOUSEOUT, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ { TidyAttr_OnMOUSEOVER, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ { TidyAttr_OnMOUSEUP, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ + { TidyAttr_REFERRERPOLICY, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, { TidyAttr_REL, HT20|HT32|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|XB10|HT50|XH50 }, { TidyAttr_REV, HT20|HT32|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|XB10|xxxx|xxxx }, { TidyAttr_SDAPREF, HT20|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx }, @@ -2794,6 +2799,7 @@ const AttrVersion TY_(W3CAttrsFor_SCRIPT)[] = { TidyAttr_ID, xxxx|xxxx|xxxx|xxxx|X10T|xxxx|xxxx|X10F|xxxx|xxxx|X10S|xxxx|xxxx|HT50|XH50 }, /* CORE override */ { TidyAttr_INTEGRITY, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, { TidyAttr_LANGUAGE, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx }, + { TidyAttr_REFERRERPOLICY, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, { TidyAttr_SRC, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, { TidyAttr_TYPE, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, { TidyAttr_XMLNS, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|XH11|xxxx|HT50|XH50 }, /* CORE override */ diff --git a/src/attrs.c b/src/attrs.c index 324e205c..dbdee4c1 100644 --- a/src/attrs.c +++ b/src/attrs.c @@ -54,6 +54,7 @@ static AttrCheck CheckRDFaTerm; static AttrCheck CheckRDFaPrefix; static AttrCheck CheckDecimal; static AttrCheck CheckSvgAttr; +static AttrCheck CheckRefPol; #define CH_PCDATA NULL #define CH_CHARSET NULL @@ -101,6 +102,7 @@ static AttrCheck CheckSvgAttr; #define CH_RDFATERMS CheckRDFaTerm #define CH_DECIMAL CheckDecimal #define CH_SVG CheckSvgAttr +#define CH_REFPOL CheckRefPol /* WARNING: This table /must/ be kept in the EXACT order of the TidyAttrId enum! @@ -233,6 +235,7 @@ static const Attribute attribute_defs [] = { TidyAttr_PROMPT, "prompt", CH_PCDATA }, /* ISINDEX */ { TidyAttr_RBSPAN, "rbspan", CH_NUMBER }, /* ruby markup */ { TidyAttr_READONLY, "readonly", CH_BOOL }, /* form fields */ + { TidyAttr_REFERRERPOLICY, "referrerpolicy", CH_REFPOL }, /* form fields */ { TidyAttr_REL, "rel", CH_LINKTYPES }, { TidyAttr_REV, "rev", CH_LINKTYPES }, { TidyAttr_RIGHTMARGIN, "rightmargin", CH_NUMBER }, /* used on BODY */ @@ -2767,6 +2770,12 @@ void CheckRDFaSafeCURIE ( TidyDocImpl* doc, Node *node, AttVal *attval) } +void CheckRefPol ( TidyDocImpl* doc, Node *node, AttVal *attval) +{ + ctmbstr const values[] = {"no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "strict-origin", "origin-when-cross-origin", "strict-origin-when-cross-origin", "unsafe-url", NULL}; + CheckAttrValidity( doc, node, attval, values ); +} + /* * local variables: * mode: c