[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
hyatt
hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:39:41 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 3237651b1e2754ceb9306443f61091d137414de5
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu May 1 00:44:06 2003 +0000
Fix for 3210725, invalid n/a selector treated as valid. This
fix also makes the CSS1 test on the test suite for forward-compatible
parsing completely pass (yay!), which was an issue on
diveintomark's list.
Reviewed by gramps
* khtml/css/parser.cpp:
* khtml/css/parser.y:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4233 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index da15c71..8998b11 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,5 +1,17 @@
2003-04-30 David Hyatt <hyatt at apple.com>
+ Fix for 3210725, invalid n/a selector treated as valid. This
+ fix also makes the CSS1 test on the test suite for forward-compatible
+ parsing completely pass (yay!), which was an issue on
+ diveintomark's list.
+
+ Reviewed by gramps
+
+ * khtml/css/parser.cpp:
+ * khtml/css/parser.y:
+
+2003-04-30 David Hyatt <hyatt at apple.com>
+
Fixes for 3227983 and 3224521, both bugs involving bad letter-spacing
property values. This fixes all Movable Type blogs that had this
error in their stylesheets.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index da15c71..8998b11 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,17 @@
2003-04-30 David Hyatt <hyatt at apple.com>
+ Fix for 3210725, invalid n/a selector treated as valid. This
+ fix also makes the CSS1 test on the test suite for forward-compatible
+ parsing completely pass (yay!), which was an issue on
+ diveintomark's list.
+
+ Reviewed by gramps
+
+ * khtml/css/parser.cpp:
+ * khtml/css/parser.y:
+
+2003-04-30 David Hyatt <hyatt at apple.com>
+
Fixes for 3227983 and 3224521, both bugs involving bad letter-spacing
property values. This fixes all Movable Type blogs that had this
error in their stylesheets.
diff --git a/WebCore/khtml/css/parser.cpp b/WebCore/khtml/css/parser.cpp
index 1e1886d..89bee53 100644
--- a/WebCore/khtml/css/parser.cpp
+++ b/WebCore/khtml/css/parser.cpp
@@ -298,16 +298,16 @@ static const short yyrline[] = { 0,
322, 324, 325, 326, 327, 328, 331, 344, 347, 352,
354, 357, 361, 365, 369, 373, 378, 384, 398, 400,
409, 431, 435, 440, 444, 449, 451, 452, 455, 457,
- 460, 480, 494, 508, 514, 518, 537, 543, 548, 553,
- 560, 581, 586, 591, 601, 607, 614, 615, 616, 619,
- 628, 652, 658, 666, 670, 673, 676, 679, 682, 687,
- 689, 692, 698, 704, 712, 716, 721, 724, 730, 738,
- 742, 745, 751, 757, 762, 768, 776, 799, 803, 811,
- 818, 825, 827, 830, 835, 848, 854, 858, 861, 866,
- 868, 869, 870, 876, 877, 878, 880, 885, 887, 888,
- 889, 890, 891, 892, 893, 894, 895, 896, 897, 898,
- 899, 900, 901, 902, 903, 904, 908, 916, 928, 935,
- 942, 950, 976, 978, 981, 983
+ 460, 480, 494, 508, 514, 518, 541, 547, 552, 557,
+ 564, 585, 590, 595, 605, 611, 618, 619, 620, 623,
+ 632, 656, 662, 670, 674, 677, 680, 683, 686, 691,
+ 693, 696, 702, 708, 716, 720, 725, 728, 734, 742,
+ 746, 749, 755, 761, 766, 772, 780, 803, 807, 815,
+ 822, 829, 831, 834, 839, 852, 858, 862, 865, 870,
+ 872, 873, 874, 880, 881, 882, 884, 889, 891, 892,
+ 893, 894, 895, 896, 897, 898, 899, 900, 901, 902,
+ 903, 904, 905, 906, 907, 908, 912, 920, 932, 939,
+ 946, 954, 980, 982, 985, 987
};
#endif
@@ -1411,7 +1411,11 @@ case 56:
#line 518 "parser.y"
{
yyval.selector = yyvsp[0].selector;
- if (yyval.selector) {
+ if (!yyvsp[-2].selector) {
+ delete yyvsp[0].selector;
+ yyval.selector = 0;
+ }
+ else if (yyval.selector) {
CSSSelector *end = yyval.selector;
while( end->tagHistory )
end = end->tagHistory;
@@ -1430,21 +1434,21 @@ case 56:
;
break;}
case 57:
-#line 537 "parser.y"
+#line 541 "parser.y"
{
delete yyvsp[-1].selector;
yyval.selector = 0;
;
break;}
case 58:
-#line 544 "parser.y"
+#line 548 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->tag = yyvsp[-1].element;
;
break;}
case 59:
-#line 548 "parser.y"
+#line 552 "parser.y"
{
yyval.selector = yyvsp[-1].selector;
if ( yyval.selector )
@@ -1452,7 +1456,7 @@ case 59:
;
break;}
case 60:
-#line 553 "parser.y"
+#line 557 "parser.y"
{
yyval.selector = yyvsp[-1].selector;
if ( yyval.selector )
@@ -1460,7 +1464,7 @@ case 60:
;
break;}
case 61:
-#line 561 "parser.y"
+#line 565 "parser.y"
{
CSSParser *p = static_cast<CSSParser *>(parser);
DOM::DocumentImpl *doc = p->document();
@@ -1483,20 +1487,20 @@ case 61:
;
break;}
case 62:
-#line 581 "parser.y"
+#line 585 "parser.y"
{
yyval.element = -1;
;
break;}
case 63:
-#line 587 "parser.y"
+#line 591 "parser.y"
{
yyval.selector = yyvsp[0].selector;
yyval.selector->nonCSSHint = static_cast<CSSParser *>(parser)->nonCSSHint;
;
break;}
case 64:
-#line 591 "parser.y"
+#line 595 "parser.y"
{
yyval.selector = yyvsp[-1].selector;
if (yyval.selector) {
@@ -1509,14 +1513,14 @@ case 64:
;
break;}
case 65:
-#line 601 "parser.y"
+#line 605 "parser.y"
{
delete yyvsp[-1].selector;
yyval.selector = 0;
;
break;}
case 66:
-#line 608 "parser.y"
+#line 612 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->match = CSSSelector::Id;
@@ -1525,7 +1529,7 @@ case 66:
;
break;}
case 70:
-#line 620 "parser.y"
+#line 624 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->match = CSSSelector::List;
@@ -1534,7 +1538,7 @@ case 70:
;
break;}
case 71:
-#line 629 "parser.y"
+#line 633 "parser.y"
{
CSSParser *p = static_cast<CSSParser *>(parser);
DOM::DocumentImpl *doc = p->document();
@@ -1558,7 +1562,7 @@ case 71:
;
break;}
case 72:
-#line 653 "parser.y"
+#line 657 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->attr = yyvsp[-1].attribute;
@@ -1566,7 +1570,7 @@ case 72:
;
break;}
case 73:
-#line 658 "parser.y"
+#line 662 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->attr = yyvsp[-5].attribute;
@@ -1575,43 +1579,43 @@ case 73:
;
break;}
case 74:
-#line 667 "parser.y"
+#line 671 "parser.y"
{
yyval.val = CSSSelector::Exact;
;
break;}
case 75:
-#line 670 "parser.y"
+#line 674 "parser.y"
{
yyval.val = CSSSelector::List;
;
break;}
case 76:
-#line 673 "parser.y"
+#line 677 "parser.y"
{
yyval.val = CSSSelector::Hyphen;
;
break;}
case 77:
-#line 676 "parser.y"
+#line 680 "parser.y"
{
yyval.val = CSSSelector::Begin;
;
break;}
case 78:
-#line 679 "parser.y"
+#line 683 "parser.y"
{
yyval.val = CSSSelector::End;
;
break;}
case 79:
-#line 682 "parser.y"
+#line 686 "parser.y"
{
yyval.val = CSSSelector::Contain;
;
break;}
case 82:
-#line 693 "parser.y"
+#line 697 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->match = CSSSelector::Pseudo;
@@ -1619,7 +1623,7 @@ case 82:
;
break;}
case 83:
-#line 699 "parser.y"
+#line 703 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->match = CSSSelector::Pseudo;
@@ -1627,7 +1631,7 @@ case 83:
;
break;}
case 84:
-#line 704 "parser.y"
+#line 708 "parser.y"
{
yyval.selector = new CSSSelector();
yyval.selector->match = CSSSelector::Pseudo;
@@ -1636,13 +1640,13 @@ case 84:
;
break;}
case 85:
-#line 713 "parser.y"
+#line 717 "parser.y"
{
yyval.ok = yyvsp[0].ok;
;
break;}
case 86:
-#line 716 "parser.y"
+#line 720 "parser.y"
{
yyval.ok = yyvsp[-1].ok;
if ( yyvsp[0].ok )
@@ -1650,13 +1654,13 @@ case 86:
;
break;}
case 87:
-#line 721 "parser.y"
+#line 725 "parser.y"
{
yyval.ok = yyvsp[0].ok;
;
break;}
case 88:
-#line 724 "parser.y"
+#line 728 "parser.y"
{
yyval.ok = false;
#ifdef CSS_DEBUG
@@ -1665,7 +1669,7 @@ case 88:
;
break;}
case 89:
-#line 730 "parser.y"
+#line 734 "parser.y"
{
yyval.ok = false;
#ifdef CSS_DEBUG
@@ -1674,19 +1678,19 @@ case 89:
;
break;}
case 90:
-#line 739 "parser.y"
+#line 743 "parser.y"
{
yyval.ok = yyvsp[-2].ok;
;
break;}
case 91:
-#line 742 "parser.y"
+#line 746 "parser.y"
{
yyval.ok = false;
;
break;}
case 92:
-#line 745 "parser.y"
+#line 749 "parser.y"
{
yyval.ok = false;
#ifdef CSS_DEBUG
@@ -1695,7 +1699,7 @@ case 92:
;
break;}
case 93:
-#line 751 "parser.y"
+#line 755 "parser.y"
{
yyval.ok = false;
#ifdef CSS_DEBUG
@@ -1704,7 +1708,7 @@ case 93:
;
break;}
case 94:
-#line 757 "parser.y"
+#line 761 "parser.y"
{
yyval.ok = yyvsp[-3].ok;
if ( yyvsp[-2].ok )
@@ -1712,7 +1716,7 @@ case 94:
;
break;}
case 95:
-#line 762 "parser.y"
+#line 766 "parser.y"
{
yyval.ok = yyvsp[-3].ok;
#ifdef CSS_DEBUG
@@ -1721,7 +1725,7 @@ case 95:
;
break;}
case 96:
-#line 768 "parser.y"
+#line 772 "parser.y"
{
yyval.ok = yyvsp[-5].ok;
#ifdef CSS_DEBUG
@@ -1730,7 +1734,7 @@ case 96:
;
break;}
case 97:
-#line 777 "parser.y"
+#line 781 "parser.y"
{
yyval.ok = false;
CSSParser *p = static_cast<CSSParser *>(parser);
@@ -1755,13 +1759,13 @@ case 97:
;
break;}
case 98:
-#line 800 "parser.y"
+#line 804 "parser.y"
{
yyval.ok = false;
;
break;}
case 99:
-#line 804 "parser.y"
+#line 808 "parser.y"
{
/* The default movable type template has letter-spacing: .none; Handle this by looking for
error tokens at the start of an expr, recover the expr and then treat as an error, cleaning
@@ -1771,36 +1775,36 @@ case 99:
;
break;}
case 100:
-#line 812 "parser.y"
+#line 816 "parser.y"
{
/* Handle this case: div { text-align: center; !important } Just reduce away the stray !important. */
yyval.ok = false;
;
break;}
case 101:
-#line 819 "parser.y"
+#line 823 "parser.y"
{
QString str = qString(yyvsp[-1].string);
yyval.prop_id = getPropertyID( str.lower().latin1(), str.length() );
;
break;}
case 102:
-#line 826 "parser.y"
+#line 830 "parser.y"
{ yyval.b = true; ;
break;}
case 103:
-#line 827 "parser.y"
+#line 831 "parser.y"
{ yyval.b = false; ;
break;}
case 104:
-#line 831 "parser.y"
+#line 835 "parser.y"
{
yyval.valueList = new ValueList;
yyval.valueList->addValue( yyvsp[0].value );
;
break;}
case 105:
-#line 835 "parser.y"
+#line 839 "parser.y"
{
yyval.valueList = yyvsp[-2].valueList;
if ( yyval.valueList ) {
@@ -1816,44 +1820,44 @@ case 105:
;
break;}
case 106:
-#line 848 "parser.y"
+#line 852 "parser.y"
{
delete yyvsp[-1].valueList;
yyval.valueList = 0;
;
break;}
case 107:
-#line 855 "parser.y"
+#line 859 "parser.y"
{
yyval.tok = '/';
;
break;}
case 108:
-#line 858 "parser.y"
+#line 862 "parser.y"
{
yyval.tok = ',';
;
break;}
case 109:
-#line 861 "parser.y"
+#line 865 "parser.y"
{
yyval.tok = 0;
;
break;}
case 110:
-#line 867 "parser.y"
+#line 871 "parser.y"
{ yyval.value = yyvsp[0].value; ;
break;}
case 111:
-#line 868 "parser.y"
+#line 872 "parser.y"
{ yyval.value = yyvsp[0].value; yyval.value.fValue *= yyvsp[-1].val; ;
break;}
case 112:
-#line 869 "parser.y"
+#line 873 "parser.y"
{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_STRING; ;
break;}
case 113:
-#line 870 "parser.y"
+#line 874 "parser.y"
{
QString str = qString( yyvsp[-1].string );
yyval.value.id = getValueID( str.lower().latin1(), str.length() );
@@ -1862,101 +1866,101 @@ case 113:
;
break;}
case 114:
-#line 876 "parser.y"
+#line 880 "parser.y"
{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_URI; ;
break;}
case 115:
-#line 877 "parser.y"
+#line 881 "parser.y"
{ yyval.value.id = 0; yyval.value.iValue = 0; yyval.value.unit = CSSPrimitiveValue::CSS_UNKNOWN;/* ### */ ;
break;}
case 116:
-#line 878 "parser.y"
+#line 882 "parser.y"
{ yyval.value.id = 0; yyval.value.string = yyvsp[0].string; yyval.value.unit = CSSPrimitiveValue::CSS_RGBCOLOR; ;
break;}
case 117:
-#line 880 "parser.y"
+#line 884 "parser.y"
{
yyval.value = yyvsp[0].value;
;
break;}
case 118:
-#line 886 "parser.y"
+#line 890 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_NUMBER; ;
break;}
case 119:
-#line 887 "parser.y"
+#line 891 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PERCENTAGE; ;
break;}
case 120:
-#line 888 "parser.y"
+#line 892 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PX; ;
break;}
case 121:
-#line 889 "parser.y"
+#line 893 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_CM; ;
break;}
case 122:
-#line 890 "parser.y"
+#line 894 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MM; ;
break;}
case 123:
-#line 891 "parser.y"
+#line 895 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_IN; ;
break;}
case 124:
-#line 892 "parser.y"
+#line 896 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PT; ;
break;}
case 125:
-#line 893 "parser.y"
+#line 897 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PC; ;
break;}
case 126:
-#line 894 "parser.y"
+#line 898 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_DEG; ;
break;}
case 127:
-#line 895 "parser.y"
+#line 899 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_RAD; ;
break;}
case 128:
-#line 896 "parser.y"
+#line 900 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_GRAD; ;
break;}
case 129:
-#line 897 "parser.y"
+#line 901 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MS; ;
break;}
case 130:
-#line 898 "parser.y"
+#line 902 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_S; ;
break;}
case 131:
-#line 899 "parser.y"
+#line 903 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_HZ; ;
break;}
case 132:
-#line 900 "parser.y"
+#line 904 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_KHZ; ;
break;}
case 133:
-#line 901 "parser.y"
+#line 905 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EMS; ;
break;}
case 134:
-#line 902 "parser.y"
+#line 906 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = Value::Q_EMS; ;
break;}
case 135:
-#line 903 "parser.y"
+#line 907 "parser.y"
{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EXS; ;
break;}
case 136:
-#line 904 "parser.y"
+#line 908 "parser.y"
{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_DIMENSION ;
break;}
case 137:
-#line 909 "parser.y"
+#line 913 "parser.y"
{
Function *f = new Function;
f->name = yyvsp[-4].string;
@@ -1967,7 +1971,7 @@ case 137:
;
break;}
case 138:
-#line 917 "parser.y"
+#line 921 "parser.y"
{
yyval.value.id = 0;
yyval.value.unit = Value::Function;
@@ -1975,11 +1979,11 @@ case 138:
;
break;}
case 139:
-#line 929 "parser.y"
+#line 933 "parser.y"
{ yyval.string = yyvsp[-1].string; ;
break;}
case 140:
-#line 936 "parser.y"
+#line 940 "parser.y"
{
yyval.rule = 0;
#ifdef CSS_DEBUG
@@ -1988,7 +1992,7 @@ case 140:
;
break;}
case 141:
-#line 942 "parser.y"
+#line 946 "parser.y"
{
yyval.rule = 0;
#ifdef CSS_DEBUG
@@ -1997,7 +2001,7 @@ case 141:
;
break;}
case 142:
-#line 951 "parser.y"
+#line 955 "parser.y"
{
yyval.rule = 0;
#ifdef CSS_DEBUG
@@ -2227,6 +2231,6 @@ yyerrhandle:
}
return 1;
}
-#line 986 "parser.y"
+#line 990 "parser.y"
diff --git a/WebCore/khtml/css/parser.y b/WebCore/khtml/css/parser.y
index 16c9bbb..0cd5909 100644
--- a/WebCore/khtml/css/parser.y
+++ b/WebCore/khtml/css/parser.y
@@ -517,7 +517,11 @@ selector:
}
| selector combinator simple_selector {
$$ = $3;
- if ($$) {
+ if (!$1) {
+ delete $3;
+ $$ = 0;
+ }
+ else if ($$) {
CSSSelector *end = $$;
while( end->tagHistory )
end = end->tagHistory;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list