[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 08:32:19 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 0189f803253a2aa608c69dc1c028ab4a29b14fe9
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Apr 5 21:35:05 2004 +0000

    	Implement overflow: overlay so that a scrollbar can show/hide without causing a layout.
    
            Reviewed by darin
    
            * ChangeLog:
            * khtml/css/css_computedstyle.cpp:
            (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
            * khtml/css/cssparser.cpp:
            (CSSParser::parseValue):
            * khtml/css/cssstyleselector.cpp:
            (khtml::CSSStyleSelector::applyProperty):
            * khtml/css/cssvalues.c:
            (hash_val):
            (findValue):
            * khtml/css/cssvalues.h:
            * khtml/css/cssvalues.in:
            * khtml/rendering/render_block.cpp:
            (khtml::RenderBlock::layoutBlock):
            (khtml::RenderBlock::layoutBlockChildren):
            (khtml::RenderBlock::rightOffset):
            * khtml/rendering/render_box.cpp:
            (RenderBox::contentWidth):
            (RenderBox::contentHeight):
            * khtml/rendering/render_layer.cpp:
            (RenderLayer::updateScrollInfoAfterLayout):
            * khtml/rendering/render_object.cpp:
            (RenderObject::clientWidth):
            (RenderObject::clientHeight):
            * khtml/rendering/render_style.h:
            (khtml::):
            (khtml::RenderStyle::hasAutoScrollbars):
            (khtml::RenderStyle::scrollsOverflow):
            (khtml::RenderStyle::includeScrollbarSize):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6311 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 08bfc24..dd591da 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,103 @@
+2004-04-05  David Hyatt  <hyatt at apple.com>
+
+	Implement overflow: overlay so that a scrollbar can show/hide without causing a layout.
+	
+        Reviewed by darin
+
+        * ChangeLog:
+        * khtml/css/css_computedstyle.cpp:
+        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
+        * khtml/css/cssparser.cpp:
+        (CSSParser::parseValue):
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::CSSStyleSelector::applyProperty):
+        * khtml/css/cssvalues.c:
+        (hash_val):
+        (findValue):
+        * khtml/css/cssvalues.h:
+        * khtml/css/cssvalues.in:
+        * khtml/rendering/render_block.cpp:
+        (khtml::RenderBlock::layoutBlock):
+        (khtml::RenderBlock::layoutBlockChildren):
+        (khtml::RenderBlock::rightOffset):
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::contentWidth):
+        (RenderBox::contentHeight):
+        * khtml/rendering/render_layer.cpp:
+        (RenderLayer::updateScrollInfoAfterLayout):
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::clientWidth):
+        (RenderObject::clientHeight):
+        * khtml/rendering/render_style.h:
+        (khtml::):
+        (khtml::RenderStyle::hasAutoScrollbars):
+        (khtml::RenderStyle::scrollsOverflow):
+        (khtml::RenderStyle::includeScrollbarSize):
+
+2004-04-03  David Hyatt  <hyatt at apple.com>
+
+	Implementation of <input type=range>, which makes sliders available in Web pages.
+	
+        Reviewed by john
+
+        * WebCore.pbproj/project.pbxproj:
+        * khtml/ecma/kjs_dom.cpp:
+        (DOMNode::getValueProperty):
+        (DOMNode::putValue):
+        * khtml/ecma/kjs_dom.h:
+        (KJS::DOMNode::):
+        * khtml/ecma/kjs_dom.lut.h:
+        (KJS::):
+        * khtml/html/html_formimpl.cpp:
+        (HTMLInputElementImpl::setType):
+        (HTMLInputElementImpl::type):
+        (HTMLInputElementImpl::click):
+        (HTMLInputElementImpl::accessKeyAction):
+        (HTMLInputElementImpl::parseHTMLAttribute):
+        (HTMLInputElementImpl::rendererIsNeeded):
+        (HTMLInputElementImpl::createRenderer):
+        (HTMLInputElementImpl::encoding):
+        * khtml/html/html_formimpl.h:
+        (DOM::HTMLInputElementImpl::):
+        * khtml/misc/htmlattrs.c:
+        (hash_attr):
+        (findAttr):
+        * khtml/misc/htmlattrs.h:
+        * khtml/misc/htmlattrs.in:
+        * khtml/rendering/render_form.cpp:
+        (RenderLineEdit::slotTextChanged):
+        (:RenderFormElement):
+        (RenderSlider::calcMinMaxWidth):
+        (RenderSlider::updateFromElement):
+        (RenderSlider::slotSliderValueChanged):
+        * khtml/rendering/render_form.h:
+        (khtml::RenderSlider::element):
+        (khtml::RenderSlider::renderName):
+        (khtml::RenderSlider::canHaveIntrinsicMargins):
+        * khtml/xml/dom2_eventsimpl.cpp:
+        (EventImpl::typeToId):
+        (EventImpl::idToType):
+        * khtml/xml/dom2_eventsimpl.h:
+        (DOM::EventImpl::):
+        * kwq/KWQSlider.h: Added.
+        * kwq/KWQSlider.mm: Added.
+        (-[KWQSlider initWithQSlider:]):
+        (-[KWQSlider slide:]):
+        (m_val):
+        (QSlider::setFont):
+        (QSlider::sizeHint):
+        (QSlider::setValue):
+        (QSlider::setMinValue):
+        (QSlider::setMaxValue):
+        (QSlider::value):
+        (QSlider::minValue):
+        (QSlider::maxValue):
+        (QSlider::sliderValueChanged):
+        (QSlider::dimensions):
+        * kwq/KWQSlot.mm:
+        (KWQSlot::KWQSlot):
+        (KWQSlot::call):
+
 2004-04-05  Chris Blumenberg  <cblu at apple.com>
 
 	Fixed: <rdar://problem/3612580>: SPI: WebPlugin selection
diff --git a/WebCore/WebCore.pbproj/project.pbxproj b/WebCore/WebCore.pbproj/project.pbxproj
index fa98855..d7f374f 100644
--- a/WebCore/WebCore.pbproj/project.pbxproj
+++ b/WebCore/WebCore.pbproj/project.pbxproj
@@ -531,7 +531,7 @@
 				BE91FC8D06133666005E3790,
 				BE91FC9206133697005E3790,
 				832556E5061DF155007B8054,
-				832557C4061E3172007B8054,
+				BC86FB8F061F5C23006BB822,
 			);
 			isa = PBXHeadersBuildPhase;
 			runOnlyForDeploymentPostprocessing = 0;
@@ -812,6 +812,7 @@
 				BE91FC8E06133666005E3790,
 				BE91FC9106133697005E3790,
 				832556E7061DF161007B8054,
+				BC86FB90061F5C23006BB822,
 			);
 			isa = PBXSourcesBuildPhase;
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2369,6 +2370,34 @@
 			settings = {
 			};
 		};
+		BC86FB8D061F5C23006BB822 = {
+			fileEncoding = 30;
+			isa = PBXFileReference;
+			lastKnownFileType = sourcecode.c.h;
+			path = KWQSlider.h;
+			refType = 4;
+			sourceTree = "<group>";
+		};
+		BC86FB8E061F5C23006BB822 = {
+			fileEncoding = 30;
+			isa = PBXFileReference;
+			lastKnownFileType = sourcecode.cpp.objcpp;
+			path = KWQSlider.mm;
+			refType = 4;
+			sourceTree = "<group>";
+		};
+		BC86FB8F061F5C23006BB822 = {
+			fileRef = BC86FB8D061F5C23006BB822;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		BC86FB90061F5C23006BB822 = {
+			fileRef = BC86FB8E061F5C23006BB822;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
 		BC8CAEC705BF251000E11F1B = {
 			isa = PBXFileReference;
 			lastKnownFileType = "compiled.mach-o.dylib";
@@ -10175,6 +10204,8 @@
 				F58786B602DE3B8601EA4122,
 				F587853002DE375901EA4122,
 				F58786B702DE3B8601EA4122,
+				BC86FB8D061F5C23006BB822,
+				BC86FB8E061F5C23006BB822,
 				F58786B802DE3B8601EA4122,
 				F58786B902DE3B8601EA4122,
 				F58784CA02DE375901EA4122,
diff --git a/WebCore/khtml/css/css_computedstyle.cpp b/WebCore/khtml/css/css_computedstyle.cpp
index 6724801..2aa0d40 100644
--- a/WebCore/khtml/css/css_computedstyle.cpp
+++ b/WebCore/khtml/css/css_computedstyle.cpp
@@ -427,6 +427,8 @@ CSSValueImpl *CSSComputedStyleDeclarationImpl::getPropertyCSSValue(int propertyI
                 return new CSSPrimitiveValueImpl("auto", CSSPrimitiveValue::CSS_STRING);
             case khtml::OMARQUEE:
                 return new CSSPrimitiveValueImpl("marquee", CSSPrimitiveValue::CSS_STRING);
+            case khtml::OOVERLAY:
+                return new CSSPrimitiveValueImpl("overlay", CSSPrimitiveValue::CSS_STRING);
         }
     }
     case CSS_PROP_PADDING_TOP:
diff --git a/WebCore/khtml/css/cssparser.cpp b/WebCore/khtml/css/cssparser.cpp
index 1daec8e..8e326ac 100644
--- a/WebCore/khtml/css/cssparser.cpp
+++ b/WebCore/khtml/css/cssparser.cpp
@@ -513,9 +513,9 @@ bool CSSParser::parseValue( int propId, bool important )
 	    valid_primitive = true;
 	break;
 
-    case CSS_PROP_OVERFLOW:             // visible | hidden | scroll | auto | inherit
+    case CSS_PROP_OVERFLOW:             // visible | hidden | scroll | auto | marquee | overlay | inherit
 	if (id == CSS_VAL_VISIBLE || id == CSS_VAL_HIDDEN || id == CSS_VAL_SCROLL || id == CSS_VAL_AUTO ||
-            id == CSS_VAL_MARQUEE)
+            id == CSS_VAL_MARQUEE || id == CSS_VAL_OVERLAY)
 	    valid_primitive = true;
 	break;
 
diff --git a/WebCore/khtml/css/cssstyleselector.cpp b/WebCore/khtml/css/cssstyleselector.cpp
index 53dafc4..84b74e0 100644
--- a/WebCore/khtml/css/cssstyleselector.cpp
+++ b/WebCore/khtml/css/cssstyleselector.cpp
@@ -1868,6 +1868,8 @@ void CSSStyleSelector::applyProperty( int id, DOM::CSSValueImpl *value )
             o = OAUTO; break;
         case CSS_VAL_MARQUEE:
             o = OMARQUEE; break;
+        case CSS_VAL_OVERLAY:
+            o = OOVERLAY; break;
         default:
             return;
         }
diff --git a/WebCore/khtml/css/cssvalues.c b/WebCore/khtml/css/cssvalues.c
index bd53e7b..fd6e5b4 100644
--- a/WebCore/khtml/css/cssvalues.c
+++ b/WebCore/khtml/css/cssvalues.c
@@ -33,7 +33,7 @@ hash_val (register const char *str, register unsigned int len)
       1609, 1609, 1609, 1609, 1609, 1609, 1609,    0,   73,  242,
         15,    4,   30,  250,  145,   65,    0,  215,    0,  153,
         40,    5,  200,  120,  135,   10,    0,  154,  113,  201,
-       190,  104,  144, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
+       190,  234,  144, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
       1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
       1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
       1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
@@ -110,7 +110,7 @@ findValue (register const char *str, register unsigned int len)
 {
   enum
     {
-      TOTAL_KEYWORDS = 256,
+      TOTAL_KEYWORDS = 257,
       MIN_WORD_LENGTH = 2,
       MAX_WORD_LENGTH = 22,
       MIN_HASH_VALUE = 0,
@@ -150,7 +150,6 @@ findValue (register const char *str, register unsigned int len)
       {"outset", CSS_VAL_OUTSET},
       {"loud", CSS_VAL_LOUD},
       {"alternate", CSS_VAL_ALTERNATE},
-      {"fantasy", CSS_VAL_FANTASY},
       {"olive", CSS_VAL_OLIVE},
       {"dashed", CSS_VAL_DASHED},
       {"text", CSS_VAL_TEXT},
@@ -178,7 +177,6 @@ findValue (register const char *str, register unsigned int len)
       {"double", CSS_VAL_DOUBLE},
       {"middle", CSS_VAL_MIDDLE},
       {"outside", CSS_VAL_OUTSIDE},
-      {"navy", CSS_VAL_NAVY},
       {"down", CSS_VAL_DOWN},
       {"wait", CSS_VAL_WAIT},
       {"aqua", CSS_VAL_AQUA},
@@ -188,14 +186,12 @@ findValue (register const char *str, register unsigned int len)
       {"smaller", CSS_VAL_SMALLER},
       {"fixed", CSS_VAL_FIXED},
       {"infinite", CSS_VAL_INFINITE},
-      {"yellow", CSS_VAL_YELLOW},
-      {"always", CSS_VAL_ALWAYS},
+      {"fantasy", CSS_VAL_FANTASY},
       {"inline-table", CSS_VAL_INLINE_TABLE},
       {"static", CSS_VAL_STATIC},
       {"relative", CSS_VAL_RELATIVE},
       {"list-item", CSS_VAL_LIST_ITEM},
       {"silver", CSS_VAL_SILVER},
-      {"read-only", CSS_VAL_READ_ONLY},
       {"sans-serif", CSS_VAL_SANS_SERIF},
       {"visible", CSS_VAL_VISIBLE},
       {"disc", CSS_VAL_DISC},
@@ -213,12 +209,12 @@ findValue (register const char *str, register unsigned int len)
       {"up", CSS_VAL_UP},
       {"invert", CSS_VAL_INVERT},
       {"show", CSS_VAL_SHOW},
-      {"justify", CSS_VAL_JUSTIFY},
       {"overline", CSS_VAL_OVERLINE},
       {"single", CSS_VAL_SINGLE},
       {"italic", CSS_VAL_ITALIC},
       {"condensed", CSS_VAL_CONDENSED},
       {"x-small", CSS_VAL_X_SMALL},
+      {"navy", CSS_VAL_NAVY},
       {"large", CSS_VAL_LARGE},
       {"e-resize", CSS_VAL_E_RESIZE},
       {"scroll", CSS_VAL_SCROLL},
@@ -242,21 +238,23 @@ findValue (register const char *str, register unsigned int len)
       {"orange", CSS_VAL_ORANGE},
       {"armenian", CSS_VAL_ARMENIAN},
       {"table-row", CSS_VAL_TABLE_ROW},
+      {"yellow", CSS_VAL_YELLOW},
+      {"always", CSS_VAL_ALWAYS},
       {"pointer", CSS_VAL_POINTER},
       {"inherit", CSS_VAL_INHERIT},
       {"text-bottom", CSS_VAL_TEXT_BOTTOM},
       {"underline", CSS_VAL_UNDERLINE},
+      {"read-only", CSS_VAL_READ_ONLY},
       {"run-in", CSS_VAL_RUN_IN},
       {"collapse", CSS_VAL_COLLAPSE},
       {"buttontext", CSS_VAL_BUTTONTEXT},
       {"expanded", CSS_VAL_EXPANDED},
       {"ridge", CSS_VAL_RIDGE},
       {"katakana", CSS_VAL_KATAKANA},
-      {"repeat-y", CSS_VAL_REPEAT_Y},
       {"lower-latin", CSS_VAL_LOWER_LATIN},
       {"decimal", CSS_VAL_DECIMAL},
-      {"gray", CSS_VAL_GRAY},
-      {"grey", CSS_VAL_GREY},
+      {"overlay", CSS_VAL_OVERLAY},
+      {"justify", CSS_VAL_JUSTIFY},
       {"super", CSS_VAL_SUPER},
       {"inline-axis", CSS_VAL_INLINE_AXIS},
       {"landscape", CSS_VAL_LANDSCAPE},
@@ -294,7 +292,10 @@ findValue (register const char *str, register unsigned int len)
       {"lighter", CSS_VAL_LIGHTER},
       {"scrollbar", CSS_VAL_SCROLLBAR},
       {"lowercase", CSS_VAL_LOWERCASE},
+      {"repeat-y", CSS_VAL_REPEAT_Y},
       {"x-large", CSS_VAL_X_LARGE},
+      {"gray", CSS_VAL_GRAY},
+      {"grey", CSS_VAL_GREY},
       {"no-open-quote", CSS_VAL_NO_OPEN_QUOTE},
       {"nw-resize", CSS_VAL_NW_RESIZE},
       {"semi-condensed", CSS_VAL_SEMI_CONDENSED},
@@ -308,7 +309,6 @@ findValue (register const char *str, register unsigned int len)
       {"monospace", CSS_VAL_MONOSPACE},
       {"thick", CSS_VAL_THICK},
       {"threedshadow", CSS_VAL_THREEDSHADOW},
-      {"graytext", CSS_VAL_GRAYTEXT},
       {"circle", CSS_VAL_CIRCLE},
       {"ultra-condensed", CSS_VAL_ULTRA_CONDENSED},
       {"purple", CSS_VAL_PURPLE},
@@ -329,11 +329,11 @@ findValue (register const char *str, register unsigned int len)
       {"crosshair", CSS_VAL_CROSSHAIR},
       {"georgian", CSS_VAL_GEORGIAN},
       {"-khtml-text", CSS_VAL__KHTML_TEXT},
-      {"-khtml-body", CSS_VAL__KHTML_BODY},
       {"inline-block", CSS_VAL_INLINE_BLOCK},
       {"ultra-expanded", CSS_VAL_ULTRA_EXPANDED},
       {"activeborder", CSS_VAL_ACTIVEBORDER},
       {"xx-large", CSS_VAL_XX_LARGE},
+      {"graytext", CSS_VAL_GRAYTEXT},
       {"extra-expanded", CSS_VAL_EXTRA_EXPANDED},
       {"upper-latin", CSS_VAL_UPPER_LATIN},
       {"block-axis", CSS_VAL_BLOCK_AXIS},
@@ -342,6 +342,7 @@ findValue (register const char *str, register unsigned int len)
       {"katakana-iroha", CSS_VAL_KATAKANA_IROHA},
       {"windowframe", CSS_VAL_WINDOWFRAME},
       {"-khtml-link", CSS_VAL__KHTML_LINK},
+      {"-khtml-body", CSS_VAL__KHTML_BODY},
       {"backwards", CSS_VAL_BACKWARDS},
       {"inactiveborder", CSS_VAL_INACTIVEBORDER},
       {"uppercase", CSS_VAL_UPPERCASE},
@@ -395,76 +396,76 @@ findValue (register const char *str, register unsigned int len)
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   19,
         -1,   20,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1, -393,
-      -235,   -2,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1, -394,
+      -236,   -2,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   23,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   24,   -1,   -1,   -1,   -1,   25,
         -1,   -1,   -1,   26,   27,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   28,   29,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   30,
-        31,   -1,   -1,   32,   -1,   33,   -1,   -1,
-        -1,   -1,   34,   35,   36,   -1,   37,   38,
-        39,   -1,   -1,   40,   -1,   41,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   42,   -1,
-        43,   -1,   -1,   -1,   -1,   -1,   44,   45,
-        -1,   -1,   -1,   -1,   -1,   46,   -1,   47,
-        48,   -1,   -1,   49,   50,   51,   -1,   -1,
-        -1,   -1,   -1,   -1,   52,   -1,   53,   -1,
-        -1,   54,   55,   56,   57,   58,   -1,   -1,
-        -1,   59,   -1,   -1,   -1,   60,   -1,   -1,
-        -1,   -1,   61,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   62,   63,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   64,   65,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   66,   -1,
-        67,   -1,   -1,   -1,   -1,   68,   -1,   -1,
-        -1,   -1,   69,   70,   71,   72,   -1,   -1,
-        -1,   73,   74,   -1,   -1,   -1,   -1,   75,
-        76,   77,   78,   -1,   79,   80,   81,   -1,
-        -1,   -1,   82,   83,   -1,   -1,   -1,   84,
-        -1,   85,   -1,   -1,   86,   87,   -1,   88,
-        89,   90,   91,   -1,   -1,   92,   -1,   -1,
-        -1,   93,   -1,   94,   -1,   -1,   95,   -1,
-        -1,   96,   -1,   -1,   97,   -1,   -1,   98,
-        -1,   -1,   99,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  100,   -1,  101,
-       102,  103,   -1,   -1,   -1,  104,   -1,   -1,
-        -1,  105,  106,   -1,   -1,  107,   -1,  108,
-       109,   -1,   -1,   -1,   -1,  110,   -1,  111,
-        -1,   -1,   -1,   -1,  112,  113,   -1,  114,
-       115,  116,   -1,  117,   -1,   -1,   -1,  118,
-        -1,  119,  120,   -1,   -1,  121,   -1,   -1,
-        -1,   -1,   -1,  122,   -1,   -1,   -1,   -1,
-        -1,  123,   -1,   -1,   -1,   -1,  124,  125,
-        -1,  126,   -1,  127,   -1,  128,   -1,   -1,
-        -1,   -1,  129,   -1,  130,  131,  132,   -1,
-       133,   -1,   -1,  134,   -1,   -1,   -1,  135,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  136,   -1,   -1,   -1,  137,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  138,
-       139,   -1,   -1,   -1,   -1,   -1,   -1,  140,
-       141,  142,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  143,   -1,   -1,  144,
-        -1,   -1,  145,  146,   -1,   -1,   -1,  147,
-       148,   -1,   -1,  149,  150,   -1,   -1,   -1,
-       151,  152,   -1,   -1,  153,   -1,   -1,   -1,
-       154,   -1,   -1,   -1,   -1,  155,  156,  157,
-        -1,   -1,  158,   -1,  159,   -1,   -1,   -1,
-       160,  161,  162,   -1,   -1,   -1,   -1,   -1,
-       163,   -1,   -1,  164,   -1,  165,  166,   -1,
-       167,   -1,   -1,   -1,  168,   -1,   -1,   -1,
-        -1,   -1,   -1,  169,   -1,  170,  171,  172,
-       173,  174,   -1,   -1,  175,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  176,  177,   -1,   -1,   -1,
-       178,   -1,   -1,  179,   -1,   -1,   -1,  180,
-       181,   -1,   -1,   -1,   -1,   -1,  182,   -1,
-       183,   -1,   -1,   -1,   -1,   -1,  184,  185,
-        -1,   -1,   -1,  186,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   31,   -1,   32,   -1,   -1,
+        -1,   -1,   33,   34,   35,   -1,   36,   37,
+        38,   -1,   -1,   39,   -1,   40,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,
+        42,   -1,   -1,   -1,   -1,   -1,   43,   44,
+        -1,   -1,   -1,   -1,   -1,   45,   -1,   46,
+        47,   -1,   -1,   48,   49,   50,   -1,   -1,
+        -1,   -1,   -1,   -1,   51,   -1,   52,   -1,
+        -1,   53,   54,   55,   56,   57,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   58,   -1,   -1,
+        -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   60,   61,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   62,   63,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   64,   -1,
+        65,   -1,   -1,   -1,   -1,   66,   -1,   -1,
+        -1,   -1,   67,   -1,   68,   69,   -1,   -1,
+        -1,   70,   71,   -1,   -1,   -1,   -1,   72,
+        -1,   73,   74,   -1,   75,   76,   77,   -1,
+        -1,   -1,   78,   79,   -1,   -1,   -1,   80,
+        -1,   81,   -1,   -1,   82,   83,   -1,   84,
+        85,   86,   87,   -1,   -1,   88,   -1,   -1,
+        -1,   89,   -1,   -1,   -1,   -1,   90,   -1,
+        -1,   91,   -1,   -1,   92,   -1,   -1,   93,
+        -1,   -1,   94,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   95,   -1,   96,   -1,   97,
+        98,   99,   -1,   -1,   -1,  100,   -1,   -1,
+        -1,  101,  102,   -1,   -1,  103,   -1,  104,
+       105,   -1,   -1,   -1,   -1,  106,   -1,  107,
+        -1,   -1,   -1,   -1,  108,  109,   -1,  110,
+       111,  112,   -1,  113,   -1,   -1,   -1,  114,
+        -1,  115,  116,   -1,   -1,  117,   -1,   -1,
+        -1,   -1,   -1,  118,  119,  120,   -1,   -1,
+        -1,  121,   -1,   -1,   -1,   -1,  122,  123,
+        -1,  124,  125,  126,   -1,  127,   -1,   -1,
+        -1,   -1,  128,   -1,  129,  130,  131,   -1,
+        -1,   -1,   -1,  132,   -1,   -1,   -1,  133,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  134,   -1,  135,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  136,
+       137,   -1,   -1,   -1,   -1,   -1,   -1,  138,
+       139,  140,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  141,   -1,   -1,  142,
+        -1,   -1,  143,  144,   -1,   -1,   -1,  145,
+       146,   -1,   -1,  147,  148,   -1,   -1,   -1,
+       149,  150,   -1,   -1,  151,   -1,   -1,   -1,
+       152,   -1,   -1,   -1,   -1,  153,  154,  155,
+        -1,   -1,  156,   -1,  157,   -1,   -1,   -1,
+       158,  159,  160,   -1,   -1,   -1,   -1,   -1,
+       161,   -1,   -1,  162,   -1,  163,  164,   -1,
+       165,   -1,   -1,   -1,  166,   -1,   -1,   -1,
+        -1,   -1,   -1,  167,   -1,  168,  169,  170,
+       171,  172,  173,   -1,  174,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  175,   -1,   -1,   -1,  176,
+        -1,   -1,   -1,  177,  178,   -1,   -1,   -1,
+       179,   -1,   -1,  180,   -1,   -1,   -1,  181,
+       182,   -1,   -1,   -1,   -1,   -1,  183,   -1,
+       184,   -1,   -1,   -1,   -1,   -1,  185,  186,
         -1,   -1,   -1,  187,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  188,
-        -1,   -1,   -1,  189,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  188,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  189,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        190,  191,   -1,   -1,   -1,  192,   -1,   -1,
        193,   -1,   -1,   -1,   -1,   -1,   -1,  194,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
@@ -474,13 +475,13 @@ findValue (register const char *str, register unsigned int len)
         -1,   -1,   -1,   -1,  204,   -1,   -1,   -1,
        205,   -1,  206,  207,   -1,  208,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,  209,   -1,   -1,
-       210,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  211,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  212,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  213,
-        -1,   -1,  214,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  210,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  211,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  212,
+        -1,   -1,  213,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  214,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,  215,  216,
         -1,  217,   -1,   -1,   -1,   -1,   -1,  218,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
@@ -490,79 +491,79 @@ findValue (register const char *str, register unsigned int len)
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,  222,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  223,   -1,   -1,   -1,   -1,
-       224,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  223,  224,   -1,   -1,   -1,   -1,
+       225,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  225,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  226,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       226,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       227,   -1,  228,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  229,   -1,   -1,   -1,
+       227,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       228,   -1,  229,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  230,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  230,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  231,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  231,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,  232,   -1,   -1,   -1,
-        -1,   -1,  233,  234,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  235,
-        -1,  236,   -1,   -1,   -1,   -1,  237,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  238,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  233,   -1,   -1,   -1,
+        -1,   -1,  234,  235,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  236,
+        -1,  237,   -1,   -1,   -1,   -1,  238,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  239,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  239,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  240,   -1,   -1,   -1,   -1,
-       241,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  242,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  240,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  241,   -1,   -1,   -1,   -1,
+       242,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,  243,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  244,
+        -1,   -1,   -1,   -1,   -1,   -1,  244,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  245,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  245,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  246,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  246,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  247,   -1,   -1,
-        -1,   -1,   -1,  248,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  247,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  248,   -1,   -1,
+        -1,   -1,   -1,  249,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  249,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  250,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  250,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  251,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       251,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       252,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  252,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  253,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  253,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  254,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
@@ -572,7 +573,7 @@ findValue (register const char *str, register unsigned int len)
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  254,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  255,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
@@ -580,7 +581,7 @@ findValue (register const char *str, register unsigned int len)
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       255
+       256
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -840,6 +841,7 @@ static const char * const valueList[] = {
 "no-open-quote", 
 "nowrap", 
 "open-quote", 
+"overlay", 
 "overline", 
 "portrait", 
 "pre", 
diff --git a/WebCore/khtml/css/cssvalues.h b/WebCore/khtml/css/cssvalues.h
index 466c89d..7abf9f5 100644
--- a/WebCore/khtml/css/cssvalues.h
+++ b/WebCore/khtml/css/cssvalues.h
@@ -230,42 +230,43 @@ DOM::DOMString getValueName(unsigned short id);
 #define CSS_VAL_NO_OPEN_QUOTE 219
 #define CSS_VAL_NOWRAP 220
 #define CSS_VAL_OPEN_QUOTE 221
-#define CSS_VAL_OVERLINE 222
-#define CSS_VAL_PORTRAIT 223
-#define CSS_VAL_PRE 224
-#define CSS_VAL_RELATIVE 225
-#define CSS_VAL_SCROLL 226
-#define CSS_VAL_SEPARATE 227
-#define CSS_VAL_SHOW 228
-#define CSS_VAL_STATIC 229
-#define CSS_VAL_THICK 230
-#define CSS_VAL_THIN 231
-#define CSS_VAL_UNDERLINE 232
-#define CSS_VAL__KHTML_NOWRAP 233
-#define CSS_VAL_STRETCH 234
-#define CSS_VAL_START 235
-#define CSS_VAL_END 236
-#define CSS_VAL_REVERSE 237
-#define CSS_VAL_HORIZONTAL 238
-#define CSS_VAL_VERTICAL 239
-#define CSS_VAL_INLINE_AXIS 240
-#define CSS_VAL_BLOCK_AXIS 241
-#define CSS_VAL_SINGLE 242
-#define CSS_VAL_MULTIPLE 243
-#define CSS_VAL_FORWARDS 244
-#define CSS_VAL_BACKWARDS 245
-#define CSS_VAL_AHEAD 246
-#define CSS_VAL_UP 247
-#define CSS_VAL_DOWN 248
-#define CSS_VAL_SLOW 249
-#define CSS_VAL_FAST 250
-#define CSS_VAL_INFINITE 251
-#define CSS_VAL_SLIDE 252
-#define CSS_VAL_ALTERNATE 253
-#define CSS_VAL_UNFURL 254
-#define CSS_VAL_READ_ONLY 255
-#define CSS_VAL_READ_WRITE 256
+#define CSS_VAL_OVERLAY 222
+#define CSS_VAL_OVERLINE 223
+#define CSS_VAL_PORTRAIT 224
+#define CSS_VAL_PRE 225
+#define CSS_VAL_RELATIVE 226
+#define CSS_VAL_SCROLL 227
+#define CSS_VAL_SEPARATE 228
+#define CSS_VAL_SHOW 229
+#define CSS_VAL_STATIC 230
+#define CSS_VAL_THICK 231
+#define CSS_VAL_THIN 232
+#define CSS_VAL_UNDERLINE 233
+#define CSS_VAL__KHTML_NOWRAP 234
+#define CSS_VAL_STRETCH 235
+#define CSS_VAL_START 236
+#define CSS_VAL_END 237
+#define CSS_VAL_REVERSE 238
+#define CSS_VAL_HORIZONTAL 239
+#define CSS_VAL_VERTICAL 240
+#define CSS_VAL_INLINE_AXIS 241
+#define CSS_VAL_BLOCK_AXIS 242
+#define CSS_VAL_SINGLE 243
+#define CSS_VAL_MULTIPLE 244
+#define CSS_VAL_FORWARDS 245
+#define CSS_VAL_BACKWARDS 246
+#define CSS_VAL_AHEAD 247
+#define CSS_VAL_UP 248
+#define CSS_VAL_DOWN 249
+#define CSS_VAL_SLOW 250
+#define CSS_VAL_FAST 251
+#define CSS_VAL_INFINITE 252
+#define CSS_VAL_SLIDE 253
+#define CSS_VAL_ALTERNATE 254
+#define CSS_VAL_UNFURL 255
+#define CSS_VAL_READ_ONLY 256
+#define CSS_VAL_READ_WRITE 257
 
-#define CSS_VAL_TOTAL 257
+#define CSS_VAL_TOTAL 258
 #endif
 
diff --git a/WebCore/khtml/css/cssvalues.in b/WebCore/khtml/css/cssvalues.in
index 391a721..f9c91d7 100644
--- a/WebCore/khtml/css/cssvalues.in
+++ b/WebCore/khtml/css/cssvalues.in
@@ -303,6 +303,7 @@ no-close-quote
 no-open-quote
 nowrap
 open-quote
+overlay
 overline
 portrait
 pre
diff --git a/WebCore/khtml/ecma/kjs_dom.cpp b/WebCore/khtml/ecma/kjs_dom.cpp
index 1340601..ba37766 100644
--- a/WebCore/khtml/ecma/kjs_dom.cpp
+++ b/WebCore/khtml/ecma/kjs_dom.cpp
@@ -120,6 +120,7 @@ bool DOMNode::toBoolean(ExecState *) const
   ondragdrop	DOMNode::OnDragDrop		DontDelete
   onerror	DOMNode::OnError		DontDelete
   onfocus	DOMNode::OnFocus       		DontDelete
+  oninput       DOMNode::OnInput                DontDelete
   onkeydown	DOMNode::OnKeyDown		DontDelete
   onkeypress	DOMNode::OnKeyPress		DontDelete
   onkeyup	DOMNode::OnKeyUp		DontDelete
@@ -210,6 +211,8 @@ Value DOMNode::getValueProperty(ExecState *exec, int token) const
     return getListener(DOM::EventImpl::KHTML_ERROR_EVENT);
   case OnFocus:
     return getListener(DOM::EventImpl::FOCUS_EVENT);
+  case OnInput:
+    return getListener(DOM::EventImpl::INPUT_EVENT);
   case OnKeyDown:
     return getListener(DOM::EventImpl::KEYDOWN_EVENT);
   case OnKeyPress:
@@ -336,6 +339,9 @@ void DOMNode::putValue(ExecState *exec, int token, const Value& value, int /*att
   case OnFocus:
     setListener(exec,DOM::EventImpl::FOCUS_EVENT,value);
     break;
+  case OnInput:
+    setListener(exec,DOM::EventImpl::INPUT_EVENT,value);
+    break;
   case OnKeyDown:
     setListener(exec,DOM::EventImpl::KEYDOWN_EVENT,value);
     break;
diff --git a/WebCore/khtml/ecma/kjs_dom.h b/WebCore/khtml/ecma/kjs_dom.h
index fd6e060..19d4371 100644
--- a/WebCore/khtml/ecma/kjs_dom.h
+++ b/WebCore/khtml/ecma/kjs_dom.h
@@ -60,7 +60,7 @@ namespace KJS {
            CloneNode, Normalize, IsSupported, AddEventListener, RemoveEventListener,
            DispatchEvent, Contains,
            OnAbort, OnBlur, OnChange, OnClick, OnContextMenu, OnDblClick, OnDragDrop, OnError,
-           OnFocus, OnKeyDown, OnKeyPress, OnKeyUp, OnLoad, OnMouseDown,
+           OnFocus, OnInput, OnKeyDown, OnKeyPress, OnKeyUp, OnLoad, OnMouseDown,
            OnMouseMove, OnMouseOut, OnMouseOver, OnMouseUp, OnMove, OnReset,
            OnResize, OnScroll, OnSearch, OnSelect, OnSubmit, OnUnload,
            OffsetLeft, OffsetTop, OffsetWidth, OffsetHeight, OffsetParent,
diff --git a/WebCore/khtml/ecma/kjs_dom.lut.h b/WebCore/khtml/ecma/kjs_dom.lut.h
index 959d253..28ade16 100644
--- a/WebCore/khtml/ecma/kjs_dom.lut.h
+++ b/WebCore/khtml/ecma/kjs_dom.lut.h
@@ -82,7 +82,7 @@ const struct HashEntry DOMNodeTableEntries[] = {
    { 0, 0, 0, 0, 0 },
    { "onchange", DOMNode::OnChange, DontDelete, 0, &DOMNodeTableEntries[61] },
    { 0, 0, 0, 0, 0 },
-   { 0, 0, 0, 0, 0 },
+   { "oninput", DOMNode::OnInput, DontDelete, 0, 0 },
    { "onmouseout", DOMNode::OnMouseOut, DontDelete, 0, 0 },
    { 0, 0, 0, 0, 0 },
    { "onblur", DOMNode::OnBlur, DontDelete, 0, &DOMNodeTableEntries[64] },
diff --git a/WebCore/khtml/html/html_formimpl.cpp b/WebCore/khtml/html/html_formimpl.cpp
index cd210e0..326dfca 100644
--- a/WebCore/khtml/html/html_formimpl.cpp
+++ b/WebCore/khtml/html/html_formimpl.cpp
@@ -1218,8 +1218,12 @@ void HTMLInputElementImpl::setType(const DOMString& t)
         newType = BUTTON;
     else if ( strcasecmp( t, "khtml_isindex" ) == 0 )
         newType = ISINDEX;
+#if APPLE_CHANGES
     else if ( strcasecmp( t, "search" ) == 0 )
         newType = SEARCH;
+    else if ( strcasecmp( t, "range" ) == 0 )
+        newType = RANGE;
+#endif
     else
         newType = TEXT;
 
@@ -1252,7 +1256,10 @@ DOMString HTMLInputElementImpl::type() const
     case HIDDEN: return "hidden";
     case IMAGE: return "image";
     case BUTTON: return "button";
+#if APPLE_CHANGES
     case SEARCH: return "search";
+    case RANGE: return "range";
+#endif
     default: return "";
     }
 }
@@ -1334,7 +1341,10 @@ void HTMLInputElementImpl::click()
         case IMAGE:
         case ISINDEX:
         case PASSWORD:
+#if APPLE_CHANGES
         case SEARCH:
+        case RANGE:
+#endif
         case TEXT:
             HTMLGenericFormElementImpl::click();
             break;
@@ -1349,7 +1359,9 @@ void HTMLInputElementImpl::accessKeyAction()
             break;
         case TEXT:
         case PASSWORD:
+#if APPLE_CHANGES
         case SEARCH:
+#endif
         case ISINDEX:
             focus();
             break;
@@ -1360,6 +1372,9 @@ void HTMLInputElementImpl::accessKeyAction()
         case IMAGE:
         case BUTTON:
         case FILE:
+#if APPLE_CHANGES
+        case RANGE:
+#endif
             // focus and click
             focus();
             click();
@@ -1453,8 +1468,12 @@ void HTMLInputElementImpl::parseHTMLAttribute(HTMLAttributeImpl *attr)
         setHTMLEventListener(EventImpl::CHANGE_EVENT,
             getDocument()->createHTMLEventListener(attr->value().string()));
         break;
+    case ATTR_ONINPUT:
+        setHTMLEventListener(EventImpl::INPUT_EVENT,
+                             getDocument()->createHTMLEventListener(attr->value().string()));
+        break;
 #if APPLE_CHANGES
-    // Search field attributes all just cause updateFromElement to be called through style
+    // Search field and slider attributes all just cause updateFromElement to be called through style
     // recalcing.
     case ATTR_ONSEARCH:
         setHTMLEventListener(EventImpl::SEARCH_EVENT,
@@ -1466,6 +1485,9 @@ void HTMLInputElementImpl::parseHTMLAttribute(HTMLAttributeImpl *attr)
     case ATTR_AUTOSAVE:
     case ATTR_INCREMENTAL:
     case ATTR_PLACEHOLDER:
+    case ATTR_MIN:
+    case ATTR_MAX:
+    case ATTR_PRECISION:
         setChanged();
         break;
 #endif
@@ -1480,7 +1502,10 @@ bool HTMLInputElementImpl::rendererIsNeeded(RenderStyle *style)
     {
     case TEXT:
     case PASSWORD:
+#if APPLE_CHANGES
     case SEARCH:
+    case RANGE:
+#endif
     case ISINDEX:
     case CHECKBOX:
     case RADIO:
@@ -1501,7 +1526,9 @@ RenderObject *HTMLInputElementImpl::createRenderer(RenderArena *arena, RenderSty
     {
     case TEXT:
     case PASSWORD:
+#if APPLE_CHANGES
     case SEARCH:
+#endif
     case ISINDEX:  return new (arena) RenderLineEdit(this);
     case CHECKBOX: return new (arena) RenderCheckBox(this);
     case RADIO:    return new (arena) RenderRadioButton(this);
@@ -1510,6 +1537,9 @@ RenderObject *HTMLInputElementImpl::createRenderer(RenderArena *arena, RenderSty
     case RESET:    return new (arena) RenderResetButton(this);
     case FILE:     return new (arena) RenderFileButton(this);
     case BUTTON:   return new (arena) RenderPushButton(this);
+#if APPLE_CHANGES
+    case RANGE:    return new (arena) RenderSlider(this);
+#endif
     case HIDDEN:   break;
     }
     assert(false);
@@ -1614,7 +1644,10 @@ bool HTMLInputElementImpl::encoding(const QTextCodec* codec, khtml::encodingList
     switch (m_type) {
         case HIDDEN:
         case TEXT:
+#if APPLE_CHANGES
         case SEARCH:
+        case RANGE:
+#endif
         case PASSWORD:
             // always successful
             encoding += fixUpfromUnicode(codec, value().string());
diff --git a/WebCore/khtml/html/html_formimpl.h b/WebCore/khtml/html/html_formimpl.h
index 5d2a81f..c1af88a 100644
--- a/WebCore/khtml/html/html_formimpl.h
+++ b/WebCore/khtml/html/html_formimpl.h
@@ -44,6 +44,9 @@ namespace khtml
     class RenderLineEdit;
     class RenderRadioButton;
     class RenderFileButton;
+#if APPLE_CHANGES
+    class RenderSlider;
+#endif
 
     typedef QValueList<QCString> encodingList;
 }
@@ -261,6 +264,7 @@ class HTMLInputElementImpl : public HTMLGenericFormElementImpl
 
 #if APPLE_CHANGES
     friend class HTMLSelectElementImpl;
+    friend class khtml::RenderSlider;
 #endif
 
 public:
@@ -276,8 +280,11 @@ public:
         FILE,
         HIDDEN,
         IMAGE,
-        BUTTON,
-        SEARCH
+        BUTTON
+#if APPLE_CHANGES
+        ,SEARCH,
+        RANGE
+#endif
     };
 
     HTMLInputElementImpl(DocumentPtr *doc, HTMLFormElementImpl *f = 0);
diff --git a/WebCore/khtml/misc/htmlattrs.c b/WebCore/khtml/misc/htmlattrs.c
index 259221c..3612641 100644
--- a/WebCore/khtml/misc/htmlattrs.c
+++ b/WebCore/khtml/misc/htmlattrs.c
@@ -8,7 +8,7 @@ struct attrs {
     const char *name;
     int id;
 };
-/* maximum key range = 894, duplicates = 1 */
+/* maximum key range = 708, duplicates = 1 */
 
 #ifdef __GNUC__
 __inline
@@ -22,32 +22,32 @@ hash_attr (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903,  10, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903,  25, 180,  10,
-       75,   0, 235, 195, 125,   0,  10, 265,   0, 150,
-        0,   0,  35,   0,  30,   5,  45,  20, 135, 150,
-        0,  20,   0, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
-      903, 903, 903, 903, 903, 903
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712,   0, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712,  10, 125,  10,
+       95,   0,  70, 180,  70,   0,   0,   0,   0,  35,
+        0,   0,  80,   5,  40,  25,  50,  40, 220, 220,
+       40,  90,   0, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+      712, 712, 712, 712, 712, 712
     };
   register int hval = len;
 
@@ -97,286 +97,266 @@ findAttr (register const char *str, register unsigned int len)
 {
   enum
     {
-      TOTAL_KEYWORDS = 162,
+      TOTAL_KEYWORDS = 166,
       MIN_WORD_LENGTH = 2,
       MAX_WORD_LENGTH = 15,
-      MIN_HASH_VALUE = 9,
-      MAX_HASH_VALUE = 902
+      MIN_HASH_VALUE = 4,
+      MAX_HASH_VALUE = 711
     };
 
   static const struct attrs wordlist_attr[] =
     {
+      {"link", ATTR_LINK},
+      {"alink", ATTR_ALINK},
+      {"onclick", ATTR_ONCLICK},
       {"size", ATTR_SIZE},
+      {"min", ATTR_MIN},
       {"cols", ATTR_COLS},
       {"rel", ATTR_REL},
-      {"axis", ATTR_AXIS},
-      {"loop", ATTR_LOOP},
+      {"name", ATTR_NAME},
+      {"color", ATTR_COLOR},
+      {"alt", ATTR_ALT},
+      {"cite", ATTR_CITE},
+      {"clear", ATTR_CLEAR},
       {"noresize", ATTR_NORESIZE},
       {"onresize", ATTR_ONRESIZE},
-      {"color", ATTR_COLOR},
-      {"src", ATTR_SRC},
       {"class", ATTR_CLASS},
+      {"action", ATTR_ACTION},
+      {"src", ATTR_SRC},
+      {"axis", ATTR_AXIS},
       {"onscroll", ATTR_ONSCROLL},
-      {"scope", ATTR_SCOPE},
-      {"cite", ATTR_CITE},
-      {"rules", ATTR_RULES},
-      {"plain", ATTR_PLAIN},
+      {"loop", ATTR_LOOP},
+      {"max", ATTR_MAX},
       {"onselect", ATTR_ONSELECT},
-      {"span", ATTR_SPAN},
-      {"clear", ATTR_CLEAR},
-      {"alt", ATTR_ALT},
-      {"style", ATTR_STYLE},
+      {"face", ATTR_FACE},
+      {"plain", ATTR_PLAIN},
       {"id", ATTR_ID},
-      {"colspan", ATTR_COLSPAN},
-      {"top", ATTR_TOP},
-      {"action", ATTR_ACTION},
-      {"onreset", ATTR_ONRESET},
-      {"code", ATTR_CODE},
-      {"z-index", ATTR_Z_INDEX},
-      {"text", ATTR_TEXT},
       {"title", ATTR_TITLE},
-      {"onerror", ATTR_ONERROR},
-      {"type", ATTR_TYPE},
+      {"code", ATTR_CODE},
+      {"rules", ATTR_RULES},
       {"onload", ATTR_ONLOAD},
+      {"for", ATTR_FOR},
       {"content", ATTR_CONTENT},
+      {"span", ATTR_SPAN},
+      {"scope", ATTR_SCOPE},
+      {"onreset", ATTR_ONRESET},
+      {"left", ATTR_LEFT},
+      {"onerror", ATTR_ONERROR},
+      {"colspan", ATTR_COLSPAN},
+      {"top", ATTR_TOP},
+      {"char", ATTR_CHAR},
       {"dir", ATTR_DIR},
-      {"results", ATTR_RESULTS},
-      {"enctype", ATTR_ENCTYPE},
-      {"coords", ATTR_COORDS},
-      {"classid", ATTR_CLASSID},
+      {"label", ATTR_LABEL},
+      {"z-index", ATTR_Z_INDEX},
+      {"text", ATTR_TEXT},
+      {"media", ATTR_MEDIA},
+      {"scheme", ATTR_SCHEME},
+      {"onfocus", ATTR_ONFOCUS},
       {"onunload", ATTR_ONUNLOAD},
-      {"accept", ATTR_ACCEPT},
-      {"selected", ATTR_SELECTED},
+      {"ismap", ATTR_ISMAP},
+      {"incremental", ATTR_INCREMENTAL},
+      {"html", ATTR_HTML},
+      {"frame", ATTR_FRAME},
       {"declare", ATTR_DECLARE},
-      {"start", ATTR_START},
-      {"readonly", ATTR_READONLY},
-      {"rev", ATTR_REV},
-      {"direction", ATTR_DIRECTION},
-      {"nosave", ATTR_NOSAVE},
+      {"onsearch", ATTR_ONSEARCH},
+      {"precision", ATTR_PRECISION},
+      {"accept", ATTR_ACCEPT},
       {"data", ATTR_DATA},
-      {"scrolldelay", ATTR_SCROLLDELAY},
-      {"version", ATTR_VERSION},
-      {"name", ATTR_NAME},
-      {"value", ATTR_VALUE},
-      {"rows", ATTR_ROWS},
-      {"codetype", ATTR_CODETYPE},
-      {"char", ATTR_CHAR},
+      {"style", ATTR_STYLE},
+      {"classid", ATTR_CLASSID},
+      {"coords", ATTR_COORDS},
+      {"oninput", ATTR_ONINPUT},
+      {"accesskey", ATTR_ACCESSKEY},
+      {"start", ATTR_START},
+      {"href", ATTR_HREF},
+      {"nohref", ATTR_NOHREF},
+      {"results", ATTR_RESULTS},
+      {"selected", ATTR_SELECTED},
       {"shape", ATTR_SHAPE},
-      {"onsearch", ATTR_ONSEARCH},
-      {"hspace", ATTR_HSPACE},
-      {"label", ATTR_LABEL},
-      {"vspace", ATTR_VSPACE},
-      {"oversrc", ATTR_OVERSRC},
-      {"truespeed", ATTR_TRUESPEED},
-      {"ismap", ATTR_ISMAP},
+      {"object", ATTR_OBJECT},
+      {"checked", ATTR_CHECKED},
       {"lang", ATTR_LANG},
       {"align", ATTR_ALIGN},
-      {"onblur", ATTR_ONBLUR},
-      {"noshade", ATTR_NOSHADE},
-      {"onmouseup", ATTR_ONMOUSEUP},
       {"usemap", ATTR_USEMAP},
-      {"wrap", ATTR_WRAP},
-      {"nowrap", ATTR_NOWRAP},
-      {"charset", ATTR_CHARSET},
-      {"scrolling", ATTR_SCROLLING},
+      {"profile", ATTR_PROFILE},
       {"onmouseout", ATTR_ONMOUSEOUT},
-      {"object", ATTR_OBJECT},
-      {"rowspan", ATTR_ROWSPAN},
-      {"media", ATTR_MEDIA},
-      {"multiple", ATTR_MULTIPLE},
-      {"pagex", ATTR_PAGEX},
-      {"autosave", ATTR_AUTOSAVE},
-      {"headers", ATTR_HEADERS},
-      {"for", ATTR_FOR},
-      {"link", ATTR_LINK},
-      {"incremental", ATTR_INCREMENTAL},
-      {"face", ATTR_FACE},
-      {"onfocus", ATTR_ONFOCUS},
-      {"pagey", ATTR_PAGEY},
-      {"hidden", ATTR_HIDDEN},
+      {"hspace", ATTR_HSPACE},
       {"compact", ATTR_COMPACT},
-      {"oncontextmenu", ATTR_ONCONTEXTMENU},
-      {"left", ATTR_LEFT},
-      {"onabort", ATTR_ONABORT},
-      {"valuetype", ATTR_VALUETYPE},
-      {"cellspacing", ATTR_CELLSPACING},
-      {"onclick", ATTR_ONCLICK},
-      {"longdesc", ATTR_LONGDESC},
-      {"alink", ATTR_ALINK},
-      {"scheme", ATTR_SCHEME},
-      {"scrollamount", ATTR_SCROLLAMOUNT},
-      {"prompt", ATTR_PROMPT},
-      {"codebase", ATTR_CODEBASE},
-      {"profile", ATTR_PROFILE},
-      {"pluginurl", ATTR_PLUGINURL},
-      {"placeholder", ATTR_PLACEHOLDER},
-      {"border", ATTR_BORDER},
-      {"html", ATTR_HTML},
-      {"mayscript", ATTR_MAYSCRIPT},
-      {"archive", ATTR_ARCHIVE},
-      {"tabindex", ATTR_TABINDEX},
-      {"cellborder", ATTR_CELLBORDER},
-      {"autocomplete", ATTR_AUTOCOMPLETE},
+      {"direction", ATTR_DIRECTION},
+      {"noshade", ATTR_NOSHADE},
       {"defer", ATTR_DEFER},
-      {"target", ATTR_TARGET},
+      {"onblur", ATTR_ONBLUR},
+      {"charset", ATTR_CHARSET},
+      {"multiple", ATTR_MULTIPLE},
       {"onkeyup", ATTR_ONKEYUP},
+      {"scrollamount", ATTR_SCROLLAMOUNT},
+      {"type", ATTR_TYPE},
+      {"vlink", ATTR_VLINK},
+      {"onmouseup", ATTR_ONMOUSEUP},
+      {"onabort", ATTR_ONABORT},
+      {"enctype", ATTR_ENCTYPE},
+      {"oncontextmenu", ATTR_ONCONTEXTMENU},
+      {"readonly", ATTR_READONLY},
+      {"headers", ATTR_HEADERS},
       {"datetime", ATTR_DATETIME},
-      {"accesskey", ATTR_ACCESSKEY},
-      {"onmouseover", ATTR_ONMOUSEOVER},
-      {"standby", ATTR_STANDBY},
-      {"valign", ATTR_VALIGN},
+      {"ondblclick", ATTR_ONDBLCLICK},
+      {"method", ATTR_METHOD},
+      {"nosave", ATTR_NOSAVE},
+      {"rev", ATTR_REV},
+      {"scrolling", ATTR_SCROLLING},
+      {"hidden", ATTR_HIDDEN},
+      {"unknown", ATTR_UNKNOWN},
+      {"onkeypress", ATTR_ONKEYPRESS},
+      {"codebase", ATTR_CODEBASE},
+      {"value", ATTR_VALUE},
+      {"charoff", ATTR_CHAROFF},
       {"onchange", ATTR_ONCHANGE},
       {"challenge", ATTR_CHALLENGE},
-      {"bordercolor", ATTR_BORDERCOLOR},
-      {"disabled", ATTR_DISABLED},
-      {"onkeypress", ATTR_ONKEYPRESS},
-      {"accept-charset", ATTR_ACCEPT_CHARSET},
-      {"keytype", ATTR_KEYTYPE},
-      {"href", ATTR_HREF},
-      {"visibility", ATTR_VISIBILITY},
-      {"nohref", ATTR_NOHREF},
-      {"width", ATTR_WIDTH},
-      {"method", ATTR_METHOD},
-      {"vlink", ATTR_VLINK},
+      {"scrolldelay", ATTR_SCROLLDELAY},
       {"summary", ATTR_SUMMARY},
       {"onsubmit", ATTR_ONSUBMIT},
-      {"onmousedown", ATTR_ONMOUSEDOWN},
+      {"autocomplete", ATTR_AUTOCOMPLETE},
+      {"rows", ATTR_ROWS},
+      {"prompt", ATTR_PROMPT},
+      {"version", ATTR_VERSION},
       {"abbr", ATTR_ABBR},
+      {"border", ATTR_BORDER},
+      {"pagex", ATTR_PAGEX},
+      {"placeholder", ATTR_PLACEHOLDER},
+      {"keytype", ATTR_KEYTYPE},
+      {"longdesc", ATTR_LONGDESC},
+      {"cellborder", ATTR_CELLBORDER},
+      {"cellspacing", ATTR_CELLSPACING},
+      {"tabindex", ATTR_TABINDEX},
+      {"codetype", ATTR_CODETYPE},
+      {"target", ATTR_TARGET},
+      {"truespeed", ATTR_TRUESPEED},
+      {"oversrc", ATTR_OVERSRC},
+      {"mayscript", ATTR_MAYSCRIPT},
+      {"vspace", ATTR_VSPACE},
+      {"wrap", ATTR_WRAP},
+      {"nowrap", ATTR_NOWRAP},
+      {"archive", ATTR_ARCHIVE},
+      {"disabled", ATTR_DISABLED},
+      {"bordercolor", ATTR_BORDERCOLOR},
       {"bgcolor", ATTR_BGCOLOR},
-      {"http-equiv", ATTR_HTTP_EQUIV},
-      {"cellpadding", ATTR_CELLPADDING},
-      {"contenteditable", ATTR_CONTENTEDITABLE},
-      {"unknown", ATTR_UNKNOWN},
-      {"frame", ATTR_FRAME},
-      {"language", ATTR_LANGUAGE},
+      {"autosave", ATTR_AUTOSAVE},
+      {"pagey", ATTR_PAGEY},
       {"onmousemove", ATTR_ONMOUSEMOVE},
-      {"topmargin", ATTR_TOPMARGIN},
-      {"checked", ATTR_CHECKED},
+      {"onmouseover", ATTR_ONMOUSEOVER},
       {"height", ATTR_HEIGHT},
-      {"behavior", ATTR_BEHAVIOR},
-      {"pluginpage", ATTR_PLUGINPAGE},
-      {"onkeydown", ATTR_ONKEYDOWN},
-      {"pluginspage", ATTR_PLUGINSPAGE},
-      {"maxlength", ATTR_MAXLENGTH},
-      {"ondblclick", ATTR_ONDBLCLICK},
-      {"bgproperties", ATTR_BGPROPERTIES},
-      {"tableborder", ATTR_TABLEBORDER},
       {"hreflang", ATTR_HREFLANG},
-      {"charoff", ATTR_CHAROFF},
+      {"accept-charset", ATTR_ACCEPT_CHARSET},
+      {"rowspan", ATTR_ROWSPAN},
+      {"pluginurl", ATTR_PLUGINURL},
+      {"maxlength", ATTR_MAXLENGTH},
       {"leftmargin", ATTR_LEFTMARGIN},
+      {"standby", ATTR_STANDBY},
+      {"topmargin", ATTR_TOPMARGIN},
+      {"contenteditable", ATTR_CONTENTEDITABLE},
+      {"onkeydown", ATTR_ONKEYDOWN},
+      {"valign", ATTR_VALIGN},
+      {"onmousedown", ATTR_ONMOUSEDOWN},
+      {"language", ATTR_LANGUAGE},
+      {"width", ATTR_WIDTH},
       {"frameborder", ATTR_FRAMEBORDER},
-      {"marginwidth", ATTR_MARGINWIDTH},
+      {"behavior", ATTR_BEHAVIOR},
+      {"cellpadding", ATTR_CELLPADDING},
+      {"tableborder", ATTR_TABLEBORDER},
+      {"valuetype", ATTR_VALUETYPE},
       {"background", ATTR_BACKGROUND},
-      {"marginheight", ATTR_MARGINHEIGHT}
+      {"visibility", ATTR_VISIBILITY},
+      {"http-equiv", ATTR_HTTP_EQUIV},
+      {"pluginpage", ATTR_PLUGINPAGE},
+      {"pluginspage", ATTR_PLUGINSPAGE},
+      {"bgproperties", ATTR_BGPROPERTIES},
+      {"marginheight", ATTR_MARGINHEIGHT},
+      {"marginwidth", ATTR_MARGINWIDTH}
     };
 
   static const short lookup[] =
     {
+        -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,    1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,    2,   -1,    3,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,    4,    5,
+        -1,   -1,   -1,    6,   -1,   -1,   -1,   -1,
+        -1,    7,   -1,   -1,   -1,   -1,   -1,    8,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,    9,
+        10,   11,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1, -247,   -1,   14,   15,   -1,   16,   17,
+      -154,   -2,   -1,   18,   19,   -1,   -1,   -1,
+        20,   -1,   -1,   -1,   -1,   21,   22,   23,
+        -1,   24,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   25,   -1,   -1,   -1,   26,   27,   28,
+        -1,   29,   -1,   -1,   -1,   30,   -1,   31,
+        32,   -1,   33,   -1,   34,   -1,   -1,   35,
+        -1,   -1,   -1,   -1,   36,   37,   38,   -1,
+        -1,   -1,   39,   -1,   40,   -1,   41,   -1,
+        42,   43,   44,   -1,   -1,   -1,   -1,   -1,
+        45,   46,   -1,   47,   48,   -1,   -1,   49,
+        50,   -1,   51,   52,   53,   -1,   54,   -1,
+        -1,   55,   56,   -1,   57,   -1,   -1,   -1,
+        58,   59,   -1,   60,   61,   -1,   -1,   -1,
+        62,   -1,   63,   64,   65,   -1,   66,   67,
+        68,   -1,   69,   70,   71,   72,   -1,   -1,
+        73,   74,   75,   -1,   76,   -1,   -1,   77,
+        -1,   -1,   78,   79,   80,   81,   -1,   -1,
+        -1,   82,   -1,   -1,   -1,   -1,   83,   -1,
+        84,   85,   -1,   -1,   -1,   86,   -1,   -1,
+        87,   -1,   -1,   -1,   -1,   88,   89,   -1,
+        -1,   -1,   -1,   90,   -1,   -1,   -1,   91,
+        92,   -1,   93,   -1,   -1,   -1,   -1,   -1,
+        94,   -1,   -1,   -1,   -1,   95,   -1,   96,
+        97,   -1,   98,   99,   -1,   -1,  100,   -1,
+        -1,  101,   -1,  102,   -1,  103,  104,  105,
+        -1,  106,  107,  108,   -1,   -1,   -1,  109,
+        -1,  110,   -1,  111,  112,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       113,   -1,  114,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  115,  116,  117,  118,   -1,
+       119,   -1,   -1,   -1,   -1,   -1,  120,   -1,
+       121,   -1,   -1,   -1,   -1,  122,   -1,   -1,
+       123,   -1,   -1,  124,   -1,   -1,  125,   -1,
+        -1,   -1,   -1,   -1,   -1,  126,   -1,  127,
+        -1,   -1,  128,   -1,  129,  130,  131,   -1,
+        -1,  132,  133,  134,   -1,  135,  136,   -1,
+        -1,   -1,   -1,  137,   -1,   -1,   -1,   -1,
+       138,   -1,  139,  140,   -1,   -1,  141,   -1,
+        -1,   -1,   -1,   -1,   -1,  142,   -1,   -1,
+        -1,   -1,  143,  144,   -1,   -1,   -1,   -1,
+        -1,   -1,  145,   -1,  146,  147,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  148,   -1,
+       149,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  150,   -1,  151,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       152,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  153,   -1,   -1,   -1,   -1,   -1,
+        -1,  154,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  155,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       156,   -1,   -1,  157,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  158,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,    1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,    2,    3,   -1,   -1,   -1,   -1,    4,
-        -1,   -1,   -1, -209,   -1,    7, -157,   -2,
-         8,   -1,    9,   -1,   -1,   10,   -1,   11,
-        -1,   -1,   -1,   12,   13,   -1,   -1,   -1,
-        -1,   14,   -1,   -1,   15,   16,   17,   -1,
-        -1,   18,   -1,   19,   -1,   20,   -1,   -1,
-        -1,   -1,   21,   22,   -1,   -1,   23,   24,
-        -1,   25,   -1,   -1,   26,   -1,   27,   28,
-        -1,   29,   -1,   -1,   -1,   -1,   -1,   -1,
-        30,   -1,   31,   32,   33,   -1,   -1,   -1,
-        34,   -1,   -1,   -1,   -1,   35,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   36,   37,
-        38,   -1,   -1,   39,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
-        -1,   -1,   -1,   41,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   42,   -1,   -1,   43,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        44,   45,   -1,   46,   -1,   -1,   47,   -1,
-        48,   49,   -1,   50,   -1,   -1,   -1,   -1,
-        -1,   51,   -1,   -1,   -1,   52,   -1,   -1,
-        -1,   53,   54,   55,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   56,   -1,   -1,   57,   -1,
-        -1,   -1,   58,   -1,   -1,   -1,   -1,   -1,
-        59,   60,   -1,   61,   62,   -1,   -1,   -1,
-        63,   64,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   65,   66,   -1,   67,
-        -1,   68,   -1,   -1,   69,   -1,   70,   71,
-        -1,   72,   73,   74,   75,   -1,   -1,   76,
-        -1,   -1,   77,   -1,   78,   -1,   -1,   79,
-        -1,   -1,   -1,   80,   81,   82,   -1,   83,
-        -1,   -1,   84,   -1,   -1,   85,   -1,   -1,
-        86,   87,   88,   89,   90,   -1,   -1,   91,
-        -1,   92,   -1,   93,   94,   95,   -1,   96,
-        97,   98,   -1,   -1,   -1,   99,   -1,  100,
-        -1,   -1,   -1,  101,   -1,  102,   -1,  103,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  104,   -1,   -1,  105,   -1,   -1,   -1,
-        -1,  106,   -1,   -1,  107,  108,   -1,  109,
-        -1,   -1,   -1,   -1,   -1,   -1,  110,   -1,
-        -1,  111,  112,  113,  114,  115,   -1,  116,
-        -1,   -1,   -1,   -1,   -1,  117,   -1,   -1,
-        -1,  118,   -1,  119,  120,   -1,  121,   -1,
-       122,   -1,  123,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  124,   -1,   -1,
-       125,   -1,  126,  127,  128,   -1,   -1,   -1,
-       129,  130,   -1,   -1,   -1,  131,   -1,  132,
-       133,   -1,   -1,  134,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  135,   -1,   -1,  136,   -1,
-        -1,  137,  138,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       139,   -1,  140,   -1,   -1,  141,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  142,   -1,   -1,  143,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  144,   -1,   -1,  145,   -1,   -1,   -1,
-       146,   -1,   -1,   -1,   -1,   -1,   -1,  147,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  148,   -1,   -1,   -1,  149,
-        -1,  150,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  151,  152,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  153,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       154,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  155,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  156,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  157,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       159,   -1,   -1,   -1,   -1,  160,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  158,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  161,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  159,   -1,
-        -1,   -1,  160,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  162,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       163,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  164,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
@@ -384,7 +364,7 @@ findAttr (register const char *str, register unsigned int len)
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  161
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  165
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -498,10 +478,12 @@ static const char * const attrList[] = {
     "LOOP",
     "MARGINHEIGHT",
     "MARGINWIDTH",
+    "MAX",
     "MAXLENGTH",
     "MAYSCRIPT",
     "MEDIA",
     "METHOD",
+    "MIN",
     "MULTIPLE",
     "NAME",
     "NOHREF",
@@ -518,6 +500,7 @@ static const char * const attrList[] = {
     "ONDBLCLICK",
     "ONERROR",
     "ONFOCUS",
+    "ONINPUT",
     "ONKEYDOWN",
     "ONKEYPRESS",
     "ONKEYUP",
@@ -542,6 +525,7 @@ static const char * const attrList[] = {
     "PLUGINPAGE",
     "PLUGINSPAGE",
     "PLUGINURL",
+    "PRECISION",
     "PROFILE",
     "PROMPT",
     "READONLY",
diff --git a/WebCore/khtml/misc/htmlattrs.h b/WebCore/khtml/misc/htmlattrs.h
index 14bcd7d..63df6a5 100644
--- a/WebCore/khtml/misc/htmlattrs.h
+++ b/WebCore/khtml/misc/htmlattrs.h
@@ -81,95 +81,99 @@ htmlattrs.in by makeattrs, do not edit */
 #define ATTR_LOOP 72
 #define ATTR_MARGINHEIGHT 73
 #define ATTR_MARGINWIDTH 74
-#define ATTR_MAXLENGTH 75
-#define ATTR_MAYSCRIPT 76
-#define ATTR_MEDIA 77
-#define ATTR_METHOD 78
-#define ATTR_MULTIPLE 79
-#define ATTR_NAME 80
-#define ATTR_NOHREF 81
-#define ATTR_NORESIZE 82
-#define ATTR_NOSAVE 83
-#define ATTR_NOSHADE 84
-#define ATTR_NOWRAP 85
-#define ATTR_OBJECT 86
-#define ATTR_ONABORT 87
-#define ATTR_ONBLUR 88
-#define ATTR_ONCHANGE 89
-#define ATTR_ONCLICK 90
-#define ATTR_ONCONTEXTMENU 91
-#define ATTR_ONDBLCLICK 92
-#define ATTR_ONERROR 93
-#define ATTR_ONFOCUS 94
-#define ATTR_ONKEYDOWN 95
-#define ATTR_ONKEYPRESS 96
-#define ATTR_ONKEYUP 97
-#define ATTR_ONLOAD 98
-#define ATTR_ONMOUSEDOWN 99
-#define ATTR_ONMOUSEMOVE 100
-#define ATTR_ONMOUSEOUT 101
-#define ATTR_ONMOUSEOVER 102
-#define ATTR_ONMOUSEUP 103
-#define ATTR_ONRESET 104
-#define ATTR_ONRESIZE 105
-#define ATTR_ONSCROLL 106
-#define ATTR_ONSEARCH 107
-#define ATTR_ONSELECT 108
-#define ATTR_ONSUBMIT 109
-#define ATTR_ONUNLOAD 110
-#define ATTR_OVERSRC 111
-#define ATTR_PAGEX 112
-#define ATTR_PAGEY 113
-#define ATTR_PLACEHOLDER 114
-#define ATTR_PLAIN 115
-#define ATTR_PLUGINPAGE 116
-#define ATTR_PLUGINSPAGE 117
-#define ATTR_PLUGINURL 118
-#define ATTR_PROFILE 119
-#define ATTR_PROMPT 120
-#define ATTR_READONLY 121
-#define ATTR_REL 122
-#define ATTR_RESULTS 123
-#define ATTR_REV 124
-#define ATTR_ROWS 125
-#define ATTR_ROWSPAN 126
-#define ATTR_RULES 127
-#define ATTR_SCHEME 128
-#define ATTR_SCOPE 129
-#define ATTR_SCROLLAMOUNT 130
-#define ATTR_SCROLLDELAY 131
-#define ATTR_SCROLLING 132
-#define ATTR_SELECTED 133
-#define ATTR_SHAPE 134
-#define ATTR_SIZE 135
-#define ATTR_SPAN 136
-#define ATTR_SRC 137
-#define ATTR_STANDBY 138
-#define ATTR_START 139
-#define ATTR_STYLE 140
-#define ATTR_SUMMARY 141
-#define ATTR_TABINDEX 142
-#define ATTR_TABLEBORDER 143
-#define ATTR_TARGET 144
-#define ATTR_TEXT 145
-#define ATTR_TITLE 146
-#define ATTR_TOP 147
-#define ATTR_TOPMARGIN 148
-#define ATTR_TRUESPEED 149
-#define ATTR_TYPE 150
-#define ATTR_UNKNOWN 151
-#define ATTR_USEMAP 152
-#define ATTR_VALIGN 153
-#define ATTR_VALUE 154
-#define ATTR_VALUETYPE 155
-#define ATTR_VERSION 156
-#define ATTR_VISIBILITY 157
-#define ATTR_VLINK 158
-#define ATTR_VSPACE 159
-#define ATTR_WIDTH 160
-#define ATTR_WRAP 161
-#define ATTR_Z_INDEX 162
-#define ATTR_LAST_ATTR 162
+#define ATTR_MAX 75
+#define ATTR_MAXLENGTH 76
+#define ATTR_MAYSCRIPT 77
+#define ATTR_MEDIA 78
+#define ATTR_METHOD 79
+#define ATTR_MIN 80
+#define ATTR_MULTIPLE 81
+#define ATTR_NAME 82
+#define ATTR_NOHREF 83
+#define ATTR_NORESIZE 84
+#define ATTR_NOSAVE 85
+#define ATTR_NOSHADE 86
+#define ATTR_NOWRAP 87
+#define ATTR_OBJECT 88
+#define ATTR_ONABORT 89
+#define ATTR_ONBLUR 90
+#define ATTR_ONCHANGE 91
+#define ATTR_ONCLICK 92
+#define ATTR_ONCONTEXTMENU 93
+#define ATTR_ONDBLCLICK 94
+#define ATTR_ONERROR 95
+#define ATTR_ONFOCUS 96
+#define ATTR_ONINPUT 97
+#define ATTR_ONKEYDOWN 98
+#define ATTR_ONKEYPRESS 99
+#define ATTR_ONKEYUP 100
+#define ATTR_ONLOAD 101
+#define ATTR_ONMOUSEDOWN 102
+#define ATTR_ONMOUSEMOVE 103
+#define ATTR_ONMOUSEOUT 104
+#define ATTR_ONMOUSEOVER 105
+#define ATTR_ONMOUSEUP 106
+#define ATTR_ONRESET 107
+#define ATTR_ONRESIZE 108
+#define ATTR_ONSCROLL 109
+#define ATTR_ONSEARCH 110
+#define ATTR_ONSELECT 111
+#define ATTR_ONSUBMIT 112
+#define ATTR_ONUNLOAD 113
+#define ATTR_OVERSRC 114
+#define ATTR_PAGEX 115
+#define ATTR_PAGEY 116
+#define ATTR_PLACEHOLDER 117
+#define ATTR_PLAIN 118
+#define ATTR_PLUGINPAGE 119
+#define ATTR_PLUGINSPAGE 120
+#define ATTR_PLUGINURL 121
+#define ATTR_PRECISION 122
+#define ATTR_PROFILE 123
+#define ATTR_PROMPT 124
+#define ATTR_READONLY 125
+#define ATTR_REL 126
+#define ATTR_RESULTS 127
+#define ATTR_REV 128
+#define ATTR_ROWS 129
+#define ATTR_ROWSPAN 130
+#define ATTR_RULES 131
+#define ATTR_SCHEME 132
+#define ATTR_SCOPE 133
+#define ATTR_SCROLLAMOUNT 134
+#define ATTR_SCROLLDELAY 135
+#define ATTR_SCROLLING 136
+#define ATTR_SELECTED 137
+#define ATTR_SHAPE 138
+#define ATTR_SIZE 139
+#define ATTR_SPAN 140
+#define ATTR_SRC 141
+#define ATTR_STANDBY 142
+#define ATTR_START 143
+#define ATTR_STYLE 144
+#define ATTR_SUMMARY 145
+#define ATTR_TABINDEX 146
+#define ATTR_TABLEBORDER 147
+#define ATTR_TARGET 148
+#define ATTR_TEXT 149
+#define ATTR_TITLE 150
+#define ATTR_TOP 151
+#define ATTR_TOPMARGIN 152
+#define ATTR_TRUESPEED 153
+#define ATTR_TYPE 154
+#define ATTR_UNKNOWN 155
+#define ATTR_USEMAP 156
+#define ATTR_VALIGN 157
+#define ATTR_VALUE 158
+#define ATTR_VALUETYPE 159
+#define ATTR_VERSION 160
+#define ATTR_VISIBILITY 161
+#define ATTR_VLINK 162
+#define ATTR_VSPACE 163
+#define ATTR_WIDTH 164
+#define ATTR_WRAP 165
+#define ATTR_Z_INDEX 166
+#define ATTR_LAST_ATTR 166
 DOM::DOMString getAttrName(unsigned short id);
 
 #endif
diff --git a/WebCore/khtml/misc/htmlattrs.in b/WebCore/khtml/misc/htmlattrs.in
index 7f06bac..cbac734 100644
--- a/WebCore/khtml/misc/htmlattrs.in
+++ b/WebCore/khtml/misc/htmlattrs.in
@@ -72,10 +72,12 @@ longdesc
 loop
 marginheight
 marginwidth
+max
 maxlength
 mayscript
 media
 method
+min
 multiple
 name
 nohref
@@ -92,6 +94,7 @@ oncontextmenu
 ondblclick
 onerror
 onfocus
+oninput
 onkeydown
 onkeypress
 onkeyup
@@ -116,6 +119,7 @@ plain
 pluginpage
 pluginspage
 pluginurl
+precision
 profile
 prompt
 readonly
diff --git a/WebCore/khtml/rendering/render_block.cpp b/WebCore/khtml/rendering/render_block.cpp
index 0ff858e..0154eaa 100644
--- a/WebCore/khtml/rendering/render_block.cpp
+++ b/WebCore/khtml/rendering/render_block.cpp
@@ -457,7 +457,7 @@ void RenderBlock::layoutBlock(bool relayoutChildren)
 
     // Expand our intrinsic height to encompass floats.
     int toAdd = borderBottom() + paddingBottom();
-    if (style()->hidesOverflow() && m_layer)
+    if (style()->includeScrollbarSize() && m_layer)
         toAdd += m_layer->horizontalScrollbarHeight();
     if ( hasOverhangingFloats() && (isInlineBlockOrInlineTable() || isFloatingOrPositioned() || style()->hidesOverflow() ||
                                     (parent() && parent()->isFlexibleBox())) )
@@ -533,7 +533,7 @@ void RenderBlock::layoutBlockChildren( bool relayoutChildren )
         xPos = m_width - paddingRight() - borderRight();
 
     int toAdd = borderBottom() + paddingBottom();
-    if (style()->hidesOverflow() && m_layer)
+    if (style()->includeScrollbarSize() && m_layer)
         toAdd += m_layer->horizontalScrollbarHeight();
     
     m_height = borderTop() + paddingTop();
@@ -1590,7 +1590,7 @@ int
 RenderBlock::rightOffset() const
 {
     int right = m_width - borderRight() - paddingRight();
-    if (style()->scrollsOverflow() && m_layer)
+    if (style()->includeScrollbarSize() && m_layer)
         right -= m_layer->verticalScrollbarWidth();
     return right;
 }
diff --git a/WebCore/khtml/rendering/render_box.cpp b/WebCore/khtml/rendering/render_box.cpp
index ea45ecb..4b19878 100644
--- a/WebCore/khtml/rendering/render_box.cpp
+++ b/WebCore/khtml/rendering/render_box.cpp
@@ -141,7 +141,7 @@ int RenderBox::contentWidth() const
     int w = m_width - borderLeft() - borderRight();
     w -= paddingLeft() + paddingRight();
 
-    if (style()->scrollsOverflow() && m_layer)
+    if (style()->includeScrollbarSize() && m_layer)
         w -= m_layer->verticalScrollbarWidth();
     
     //kdDebug( 6040 ) << "RenderBox::contentWidth(2) = " << w << endl;
@@ -153,7 +153,7 @@ int RenderBox::contentHeight() const
     int h = m_height - borderTop() - borderBottom();
     h -= paddingTop() + paddingBottom();
 
-    if (style()->scrollsOverflow() && m_layer)
+    if (style()->includeScrollbarSize() && m_layer)
         h -= m_layer->horizontalScrollbarHeight();
 
     return h;
diff --git a/WebCore/khtml/rendering/render_form.cpp b/WebCore/khtml/rendering/render_form.cpp
index 5117da3..16b9e02 100644
--- a/WebCore/khtml/rendering/render_form.cpp
+++ b/WebCore/khtml/rendering/render_form.cpp
@@ -47,6 +47,7 @@
 
 #if APPLE_CHANGES
 #include "KWQFileButton.h"
+#include "KWQSlider.h"
 #endif
 
 using namespace khtml;
@@ -711,6 +712,9 @@ void RenderLineEdit::slotTextChanged(const QString &string)
     QString newText = string.isNull() ? "" : string;
     newText.replace(backslashAsCurrencySymbol(), '\\');
     element()->m_value = newText;
+    
+    // Fire the "input" DOM event.
+    element()->dispatchHTMLEvent(EventImpl::INPUT_EVENT, true, false);
 }
 
 void RenderLineEdit::select()
@@ -1625,4 +1629,78 @@ void RenderTextArea::select()
 
 // ---------------------------------------------------------------------------
 
+#if APPLE_CHANGES
+RenderSlider::RenderSlider(HTMLInputElementImpl* element)
+:RenderFormElement(element)
+{
+    QSlider* slider = new QSlider();
+    setQWidget(slider);
+    connect(slider, SIGNAL(sliderValueChanged()), this, SLOT(slotSliderValueChanged()));
+}
+
+void RenderSlider::calcMinMaxWidth()
+{
+    KHTMLAssert(!minMaxKnown());
+    
+    // Let the widget tell us how big it wants to be.
+    QSize s(widget()->sizeHint());
+    bool widthSet = !style()->width().isVariable();
+    bool heightSet = !style()->height().isVariable();
+    if (heightSet && !widthSet) {
+        // Flip the intrinsic dimensions.
+        int barLength = s.width();
+        s = QSize(s.height(), barLength);
+    }
+    setIntrinsicWidth(s.width());
+    setIntrinsicHeight(s.height());
+    
+    RenderFormElement::calcMinMaxWidth();
+}
+
+void RenderSlider::updateFromElement()
+{
+    const DOMString& value = element()->value();
+    const DOMString& min = element()->getAttribute(ATTR_MIN);
+    const DOMString& max = element()->getAttribute(ATTR_MAX);
+    const DOMString& precision = element()->getAttribute(ATTR_PRECISION);
+    
+    double minVal = min.isNull() ? 0.0 : min.string().toDouble();
+    double maxVal = max.isNull() ? 100.0 : max.string().toDouble();
+    minVal = kMin(minVal, maxVal); // Make sure the range is sane.
+    
+    double val = value.isNull() ? (maxVal + minVal)/2.0 : value.string().toDouble();
+    val = kMax(minVal, kMin(val, maxVal)); // Make sure val is within min/max.
+    
+    if (strcasecmp(precision, "float"))
+        // Force integer value.
+        element()->m_value = DOMString(QString::number((int)(val+0.5)));
+    else
+        element()->m_value = DOMString(QString::number(val));
+
+    QSlider* slider = (QSlider*)widget();
+     
+    slider->setMinValue(minVal);
+    slider->setMaxValue(maxVal);
+    slider->setValue(val);
+
+    RenderFormElement::updateFromElement();
+}
+
+void RenderSlider::slotSliderValueChanged()
+{
+    QSlider* slider = (QSlider*)widget();
+    double val = slider->value();
+    const DOMString& precision = element()->getAttribute(ATTR_PRECISION);
+    if (strcasecmp(precision, "float"))
+        // Force integer value.
+        element()->m_value = DOMString(QString::number((int)(val+0.5)));
+    else
+        element()->m_value = DOMString(QString::number(val));
+    
+    // Fire the "input" DOM event.
+    element()->dispatchHTMLEvent(EventImpl::INPUT_EVENT, true, false);
+}
+
+#endif
+
 #include "render_form.moc"
diff --git a/WebCore/khtml/rendering/render_form.h b/WebCore/khtml/rendering/render_form.h
index fee2595..b50407a 100644
--- a/WebCore/khtml/rendering/render_form.h
+++ b/WebCore/khtml/rendering/render_form.h
@@ -492,6 +492,25 @@ protected:
 
 // -------------------------------------------------------------------------
 
+#if APPLE_CHANGES
+class RenderSlider : public RenderFormElement
+{
+public:
+    RenderSlider(DOM::HTMLInputElementImpl *element);
+    
+    DOM::HTMLInputElementImpl* element() const
+    { return static_cast<DOM::HTMLInputElementImpl*>(RenderObject::element()); }
+
+    virtual const char *renderName() const { return "RenderSlider"; }
+    virtual bool canHaveIntrinsicMargins() const { return true; }
+    virtual void calcMinMaxWidth();
+    virtual void updateFromElement();
+
+protected slots:
+    void slotSliderValueChanged();
+};
+#endif
+
 }; //namespace
 
 #endif
diff --git a/WebCore/khtml/rendering/render_layer.cpp b/WebCore/khtml/rendering/render_layer.cpp
index 363688e..0622b8d 100644
--- a/WebCore/khtml/rendering/render_layer.cpp
+++ b/WebCore/khtml/rendering/render_layer.cpp
@@ -640,17 +640,20 @@ RenderLayer::updateScrollInfoAfterLayout()
     }
 
     // overflow:auto may need to lay out again if scrollbars got added/removed.
-    bool scrollbarsChanged = (m_object->style()->overflow() == OAUTO) &&
+    bool scrollbarsChanged = (m_object->style()->hasAutoScrollbars()) &&
         (haveHorizontalBar != needHorizontalBar || haveVerticalBar != needVerticalBar);    
     if (scrollbarsChanged) {
         setHasHorizontalScrollbar(needHorizontalBar);
         setHasVerticalScrollbar(needVerticalBar);
        
-        m_object->setNeedsLayout(true);
-	if (m_object->isRenderBlock())
-            static_cast<RenderBlock*>(m_object)->layoutBlock(true);
-        else
-            m_object->layout();
+        if (m_object->style()->overflow() == OAUTO) {
+            // Our proprietary overflow: overlay value doesn't trigger a layout.
+            m_object->setNeedsLayout(true);
+            if (m_object->isRenderBlock())
+                static_cast<RenderBlock*>(m_object)->layoutBlock(true);
+            else
+                m_object->layout();
+        }
 	return;
     }
 
diff --git a/WebCore/khtml/rendering/render_object.cpp b/WebCore/khtml/rendering/render_object.cpp
index 8a2dff6..e16c724 100644
--- a/WebCore/khtml/rendering/render_object.cpp
+++ b/WebCore/khtml/rendering/render_object.cpp
@@ -537,14 +537,14 @@ int
 RenderObject::clientWidth() const
 {
     return width() - borderLeft() - borderRight() -
-        (layer() ? layer()->verticalScrollbarWidth() : 0);
+        (style()->includeScrollbarSize() && layer() ? layer()->verticalScrollbarWidth() : 0);
 }
 
 int
 RenderObject::clientHeight() const
 {
     return height() - borderTop() - borderBottom() -
-      (layer() ? layer()->horizontalScrollbarHeight() : 0);
+      (style()->includeScrollbarSize() && layer() ? layer()->horizontalScrollbarHeight() : 0);
 }
 
 // scrollWidth/scrollHeight will be the same as clientWidth/clientHeight unless the
diff --git a/WebCore/khtml/rendering/render_style.h b/WebCore/khtml/rendering/render_style.h
index 035cd2e..b470169 100644
--- a/WebCore/khtml/rendering/render_style.h
+++ b/WebCore/khtml/rendering/render_style.h
@@ -340,7 +340,7 @@ public:
 // Random visual rendering model attributes. Not inherited.
 
 enum EOverflow {
-    OVISIBLE, OHIDDEN, OSCROLL, OAUTO, OMARQUEE
+    OVISIBLE, OHIDDEN, OSCROLL, OAUTO, OMARQUEE, OOVERLAY
 };
 
 enum EVerticalAlign {
@@ -976,7 +976,9 @@ public:
 
     EOverflow overflow() const { return  noninherited_flags._overflow; }
     bool hidesOverflow() const { return overflow() != OVISIBLE; }
-    bool scrollsOverflow() const { return overflow() == OSCROLL || overflow() == OAUTO; }
+    bool hasAutoScrollbars() const { return overflow() == OAUTO || overflow() == OOVERLAY; }
+    bool scrollsOverflow() const { return overflow() == OSCROLL || hasAutoScrollbars(); }
+    bool includeScrollbarSize() const { return overflow() == OSCROLL || overflow() == OAUTO; }
 
     EVisibility visibility() const { return inherited_flags._visibility; }
     EVerticalAlign verticalAlign() const { return  noninherited_flags._vertical_align; }
diff --git a/WebCore/khtml/xml/dom2_eventsimpl.cpp b/WebCore/khtml/xml/dom2_eventsimpl.cpp
index eb0f08d..d4e6e89 100644
--- a/WebCore/khtml/xml/dom2_eventsimpl.cpp
+++ b/WebCore/khtml/xml/dom2_eventsimpl.cpp
@@ -231,6 +231,8 @@ EventImpl::EventId EventImpl::typeToId(DOMString type)
     else if (type == "search")
 	return SEARCH_EVENT;
 #endif
+    else if (type == "input")
+        return INPUT_EVENT;
     else if (type == "textInput")
 	return TEXTINPUT_EVENT;
     else if (type == "readystatechange")
@@ -313,6 +315,8 @@ DOMString EventImpl::idToType(EventImpl::EventId id)
         case SEARCH_EVENT:
             return "search";
 #endif
+        case INPUT_EVENT:
+            return "input";
 	// khtml extensions
 	case KHTML_DBLCLICK_EVENT:
             return "dblclick";
diff --git a/WebCore/khtml/xml/dom2_eventsimpl.h b/WebCore/khtml/xml/dom2_eventsimpl.h
index 9ff14d1..5a19456 100644
--- a/WebCore/khtml/xml/dom2_eventsimpl.h
+++ b/WebCore/khtml/xml/dom2_eventsimpl.h
@@ -82,6 +82,7 @@ public:
 #if APPLE_CHANGES
         SEARCH_EVENT,
 #endif
+        INPUT_EVENT,
         // Keyboard events
 	KEYDOWN_EVENT,
 	KEYUP_EVENT,
diff --git a/WebCore/kwq/KWQPen.h b/WebCore/kwq/KWQSlider.h
similarity index 70%
copy from WebCore/kwq/KWQPen.h
copy to WebCore/kwq/KWQSlider.h
index 2e2b3c5..8e71447 100644
--- a/WebCore/kwq/KWQPen.h
+++ b/WebCore/kwq/KWQSlider.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2001, 2002 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -23,31 +23,36 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-#ifndef QPEN_H_
-#define QPEN_H_
+#ifndef KWQSLIDER_H_
+#define KWQSLIDER_H_
 
+#include <qwidget.h>
 #include "KWQNamespace.h"
-#include "KWQColor.h"
 
-class QPen : public Qt {
+class QSlider : public QWidget {
 public:
-    QPen(const QColor &c = Qt::black, uint w = 0, PenStyle ps = SolidLine);
+    QSlider();
 
-    const QColor &color() const;
-    uint width() const;
-    PenStyle style() const;
+    QSize sizeHint() const;
+    virtual void setFont(const QFont &f);
 
-    void setColor(const QColor &);
-    void setWidth(uint);
-    void setStyle(PenStyle);
-
-    bool operator==(const QPen &) const;
-    bool operator!=(const QPen &) const;
+    void setValue(double v);
+    void setMinValue(double v);
+    void setMaxValue(double v);
+    
+    double value() const;
+    double minValue() const;
+    double maxValue() const;
     
+    void sliderValueChanged();
+
+    const int* dimensions() const;
+
 private:
-    PenStyle  penStyle;
-    uint      penWidth;
-    QColor    penColor;
+    KWQSignal m_sliderValueChanged;
+    double m_minVal;
+    double m_maxVal;
+    double m_val;
 };
 
 #endif
diff --git a/WebCore/kwq/KWQSlider.mm b/WebCore/kwq/KWQSlider.mm
new file mode 100644
index 0000000..4b91b42
--- /dev/null
+++ b/WebCore/kwq/KWQSlider.mm
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+                                        * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+                                        * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "KWQButton.h"
+#import "KWQSlider.h"
+
+#import "KWQExceptions.h"
+
+ at interface KWQSlider : NSSlider
+{
+    QSlider* slider;
+}
+
+- (id)initWithQSlider:(QSlider*)s;
+
+ at end
+
+ at implementation KWQSlider
+
+- (id)initWithQSlider:(QSlider*)s
+{
+    slider = s;
+
+    id result = [self init];
+    [self setTarget:self];
+    [self setAction:@selector(slide:)];
+    [self setContinuous: YES]; // Our sliders are always continuous by default.
+    [self setMinValue: 0.0];
+    [self setMaxValue: 100.0];
+    [self setDoubleValue: 50.0];
+    return result;
+}
+
+-(IBAction)slide:(NSSlider*)sender
+{
+    slider->sliderValueChanged();
+}
+ at end
+
+enum {
+    dimWidth,
+    dimHeight
+};
+
+QSlider::QSlider()
+:m_sliderValueChanged(this, SIGNAL(sliderValueChanged())), m_minVal(0.0), m_maxVal(100.0), m_val(50.0)
+{
+    KWQ_BLOCK_EXCEPTIONS;
+    KWQSlider* slider = [[KWQSlider alloc] initWithQSlider:this];
+    [[slider cell] setControlSize:NSSmallControlSize];
+    setView(slider);
+    [slider release];
+    KWQ_UNBLOCK_EXCEPTIONS;
+}
+
+void QSlider::setFont(const QFont &f)
+{
+    KWQ_BLOCK_EXCEPTIONS;
+    
+    QWidget::setFont(f);
+    
+    const NSControlSize size = KWQNSControlSizeForFont(f);    
+    NSControl * const slider = static_cast<NSControl *>(getView());
+    [[slider cell] setControlSize:size];
+    [slider setFont:[NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:size]]];
+    
+    KWQ_UNBLOCK_EXCEPTIONS;
+}
+
+QSize QSlider::sizeHint() const 
+{
+    return QSize(dimensions()[dimWidth], dimensions()[dimHeight]);
+}
+
+void QSlider::setValue(double v)
+{
+    double val = kMax(m_minVal, kMin(v, m_maxVal));
+    
+    KWQSlider* slider = (KWQSlider*)getView();
+    [slider setDoubleValue: val];
+    
+    sliderValueChanged(); // Emit the signal that indicates our value has changed.
+}
+
+void QSlider::setMinValue(double v)
+{
+    if (v == m_minVal) return;
+
+    KWQSlider* slider = (KWQSlider*)getView();
+    [slider setMinValue: v];
+}
+
+void QSlider::setMaxValue(double v)
+{
+    if (v == m_maxVal) return;
+
+    KWQSlider* slider = (KWQSlider*)getView();
+    [slider setMaxValue: v];
+}
+
+double QSlider::value() const
+{
+    return m_val;
+}
+
+double QSlider::minValue() const
+{
+    return m_minVal;
+}
+
+double QSlider::maxValue() const
+{
+    return m_maxVal;
+}
+
+void QSlider::sliderValueChanged()
+{
+    KWQSlider* slider = (KWQSlider*)getView();
+    double v = [slider doubleValue];
+    if (m_val != v) {
+        m_val = v;
+        m_sliderValueChanged.call();
+    }
+}
+
+const int* QSlider::dimensions() const
+{
+    // We empirically determined these dimensions.
+    // It would be better to get this info from AppKit somehow.
+    static const int w[3][2] = {
+    { 129, 21 },
+    { 129, 15 },
+    { 129, 12 },
+    };
+    NSControl * const slider = static_cast<NSControl *>(getView());
+    
+    KWQ_BLOCK_EXCEPTIONS;
+    return w[[[slider cell] controlSize]];
+    KWQ_UNBLOCK_EXCEPTIONS;
+    
+    return w[NSSmallControlSize];
+}
diff --git a/WebCore/kwq/KWQSlot.mm b/WebCore/kwq/KWQSlot.mm
index adf794d..a61c05a 100644
--- a/WebCore/kwq/KWQSlot.mm
+++ b/WebCore/kwq/KWQSlot.mm
@@ -43,6 +43,7 @@ using khtml::RenderFileButton;
 using khtml::RenderFormElement;
 using khtml::RenderLineEdit;
 using khtml::RenderSelect;
+using khtml::RenderSlider;
 using khtml::RenderTextArea;
 using khtml::RenderWidget;
 using khtml::RenderScrollMediator;
@@ -67,6 +68,7 @@ enum FunctionNumber {
     slotReturnPressed,
     slotSelected,
     slotSelectionChanged,
+    slotSliderValueChanged,
     slotStateChanged,
     slotSubmitFormAgain,
     slotTextChanged,
@@ -105,6 +107,7 @@ KWQSlot::KWQSlot(QObject *object, const char *member)
     CASE(slotReturnPressed, (), RenderLineEdit)
     CASE(slotSelected, (int), RenderSelect)
     CASE(slotSelectionChanged, (), RenderSelect)
+    CASE(slotSliderValueChanged, (), RenderSlider)
     CASE(slotStateChanged, (int), RenderCheckBox)
     CASE(slotTextChanged, (), RenderTextArea)
     CASE(slotValueChanged, (int), RenderScrollMediator)
@@ -188,6 +191,7 @@ void KWQSlot::call() const
         CASE(slotRedirect, KHTMLPart, slotRedirect)
         CASE(slotReturnPressed, RenderLineEdit, slotReturnPressed)
         CASE(slotSelectionChanged, RenderSelect, slotSelectionChanged)
+        CASE(slotSliderValueChanged, RenderSlider, slotSliderValueChanged)
         CASE(slotSubmitFormAgain, KHTMLPart, submitFormAgain)
         CASE(slotTextChanged, RenderTextArea, slotTextChanged)
         CASE(slotWidgetDestructed, RenderWidget, slotWidgetDestructed)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list