summaryrefslogtreecommitdiffstats
path: root/WebCore/html/HTMLInputElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/html/HTMLInputElement.cpp')
-rw-r--r--WebCore/html/HTMLInputElement.cpp42
1 files changed, 18 insertions, 24 deletions
diff --git a/WebCore/html/HTMLInputElement.cpp b/WebCore/html/HTMLInputElement.cpp
index 7994472..9f91277 100644
--- a/WebCore/html/HTMLInputElement.cpp
+++ b/WebCore/html/HTMLInputElement.cpp
@@ -94,23 +94,12 @@ static const double weekDefaultStep = 1.0;
static const double weekStepScaleFactor = 604800000.0;
// Constant values for minimum().
-static const double dateDefaultMinimum = -12219292800000.0; // This means 1582-10-15T00:00Z.
-static const double dateTimeDefaultMinimum = -12219292800000.0; // ditto.
-static const double monthDefaultMinimum = (1582.0 - 1970) * 12 + 10 - 1; // 1582-10
static const double numberDefaultMinimum = -DBL_MAX;
static const double rangeDefaultMinimum = 0.0;
-static const double timeDefaultMinimum = 0.0; // 00:00:00.000
-static const double weekDefaultMinimum = -12212380800000.0; // 1583-01-03, the first Monday of 1583.
// Constant values for maximum().
-static const double dateDefaultMaximum = DBL_MAX;
-static const double dateTimeDefaultMaximum = DBL_MAX;
-// DateComponents::m_year can't represent a year greater than INT_MAX.
-static const double monthDefaultMaximum = (INT_MAX - 1970) * 12.0 + 12 - 1;
static const double numberDefaultMaximum = DBL_MAX;
static const double rangeDefaultMaximum = 100.0;
-static const double timeDefaultMaximum = 86399999.0; // 23:59:59.999
-static const double weekDefaultMaximum = DBL_MAX;
static const double defaultStepBase = 0.0;
static const double weekDefaultStepBase = -259200000.0; // The first day of 1970-W01.
@@ -118,8 +107,8 @@ static const double weekDefaultStepBase = -259200000.0; // The first day of 1970
static const double msecPerMinute = 60 * 1000;
static const double msecPerSecond = 1000;
-HTMLInputElement::HTMLInputElement(const QualifiedName& tagName, Document* doc, HTMLFormElement* f)
- : HTMLTextFormControlElement(tagName, doc, f)
+HTMLInputElement::HTMLInputElement(const QualifiedName& tagName, Document* document, HTMLFormElement* form)
+ : HTMLTextFormControlElement(tagName, document, form)
, m_xPos(0)
, m_yPos(0)
, m_maxResults(-1)
@@ -137,6 +126,11 @@ HTMLInputElement::HTMLInputElement(const QualifiedName& tagName, Document* doc,
ASSERT(hasTagName(inputTag) || hasTagName(isindexTag));
}
+PassRefPtr<HTMLInputElement> HTMLInputElement::create(const QualifiedName& tagName, Document* document, HTMLFormElement* form)
+{
+ return new HTMLInputElement(tagName, document, form);
+}
+
HTMLInputElement::~HTMLInputElement()
{
if (needsActivationCallback())
@@ -381,20 +375,20 @@ double HTMLInputElement::minimum() const
{
switch (inputType()) {
case DATE:
- return parseToDouble(getAttribute(minAttr), dateDefaultMinimum);
+ return parseToDouble(getAttribute(minAttr), DateComponents::minimumDate());
case DATETIME:
case DATETIMELOCAL:
- return parseToDouble(getAttribute(minAttr), dateTimeDefaultMinimum);
+ return parseToDouble(getAttribute(minAttr), DateComponents::minimumDateTime());
case MONTH:
- return parseToDouble(getAttribute(minAttr), monthDefaultMinimum);
+ return parseToDouble(getAttribute(minAttr), DateComponents::minimumMonth());
case NUMBER:
return parseToDouble(getAttribute(minAttr), numberDefaultMinimum);
case RANGE:
return parseToDouble(getAttribute(minAttr), rangeDefaultMinimum);
case TIME:
- return parseToDouble(getAttribute(minAttr), timeDefaultMinimum);
+ return parseToDouble(getAttribute(minAttr), DateComponents::minimumTime());
case WEEK:
- return parseToDouble(getAttribute(minAttr), weekDefaultMinimum);
+ return parseToDouble(getAttribute(minAttr), DateComponents::minimumWeek());
case BUTTON:
case CHECKBOX:
case COLOR:
@@ -421,12 +415,12 @@ double HTMLInputElement::maximum() const
{
switch (inputType()) {
case DATE:
- return parseToDouble(getAttribute(maxAttr), dateDefaultMaximum);
+ return parseToDouble(getAttribute(maxAttr), DateComponents::maximumDate());
case DATETIME:
case DATETIMELOCAL:
- return parseToDouble(getAttribute(maxAttr), dateTimeDefaultMaximum);
+ return parseToDouble(getAttribute(maxAttr), DateComponents::maximumDateTime());
case MONTH:
- return parseToDouble(getAttribute(maxAttr), monthDefaultMaximum);
+ return parseToDouble(getAttribute(maxAttr), DateComponents::maximumMonth());
case NUMBER:
return parseToDouble(getAttribute(maxAttr), numberDefaultMaximum);
case RANGE: {
@@ -439,9 +433,9 @@ double HTMLInputElement::maximum() const
return max;
}
case TIME:
- return parseToDouble(getAttribute(maxAttr), timeDefaultMaximum);
+ return parseToDouble(getAttribute(maxAttr), DateComponents::maximumTime());
case WEEK:
- return parseToDouble(getAttribute(maxAttr), weekDefaultMaximum);
+ return parseToDouble(getAttribute(maxAttr), DateComponents::maximumWeek());
case BUTTON:
case CHECKBOX:
case COLOR:
@@ -2375,7 +2369,7 @@ void HTMLInputElement::defaultEventHandler(Event* evt)
PassRefPtr<HTMLFormElement> HTMLInputElement::createTemporaryFormForIsIndex()
{
- RefPtr<HTMLFormElement> form = new HTMLFormElement(formTag, document());
+ RefPtr<HTMLFormElement> form = HTMLFormElement::create(document());
form->registerFormElement(this);
form->setMethod("GET");
if (!document()->baseURL().isEmpty()) {