| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2  * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 
| 3  *           (C) 1999 Antti Koivisto (koivisto@kde.org) | 3  *           (C) 1999 Antti Koivisto (koivisto@kde.org) | 
| 4  *           (C) 2001 Dirk Mueller (mueller@kde.org) | 4  *           (C) 2001 Dirk Mueller (mueller@kde.org) | 
| 5  * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
      ights reserved. | 5  * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
      ights reserved. | 
| 6  *           (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 6  *           (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 
| 7  * Copyright (C) 2007 Samuel Weinig (sam@webkit.org) | 7  * Copyright (C) 2007 Samuel Weinig (sam@webkit.org) | 
| 8  * Copyright (C) 2010 Google Inc. All rights reserved. | 8  * Copyright (C) 2010 Google Inc. All rights reserved. | 
| 9  * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo
      bile.com/) | 9  * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo
      bile.com/) | 
| 10  * Copyright (C) 2012 Samsung Electronics. All rights reserved. | 10  * Copyright (C) 2012 Samsung Electronics. All rights reserved. | 
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 81 #if ENABLE(INPUT_SPEECH) | 81 #if ENABLE(INPUT_SPEECH) | 
| 82 #include "RuntimeEnabledFeatures.h" | 82 #include "RuntimeEnabledFeatures.h" | 
| 83 #endif | 83 #endif | 
| 84 | 84 | 
| 85 using namespace std; | 85 using namespace std; | 
| 86 | 86 | 
| 87 namespace WebCore { | 87 namespace WebCore { | 
| 88 | 88 | 
| 89 using namespace HTMLNames; | 89 using namespace HTMLNames; | 
| 90 | 90 | 
| 91 #if ENABLE(DATALIST_ELEMENT) |  | 
| 92 class ListAttributeTargetObserver : IdTargetObserver { | 91 class ListAttributeTargetObserver : IdTargetObserver { | 
| 93     WTF_MAKE_FAST_ALLOCATED; | 92     WTF_MAKE_FAST_ALLOCATED; | 
| 94 public: | 93 public: | 
| 95     static PassOwnPtr<ListAttributeTargetObserver> create(const AtomicString& id
      , HTMLInputElement*); | 94     static PassOwnPtr<ListAttributeTargetObserver> create(const AtomicString& id
      , HTMLInputElement*); | 
| 96     virtual void idTargetChanged() OVERRIDE; | 95     virtual void idTargetChanged() OVERRIDE; | 
| 97 | 96 | 
| 98 private: | 97 private: | 
| 99     ListAttributeTargetObserver(const AtomicString& id, HTMLInputElement*); | 98     ListAttributeTargetObserver(const AtomicString& id, HTMLInputElement*); | 
| 100 | 99 | 
| 101     HTMLInputElement* m_element; | 100     HTMLInputElement* m_element; | 
| 102 }; | 101 }; | 
| 103 #endif |  | 
| 104 | 102 | 
| 105 // FIXME: According to HTML4, the length attribute's value can be arbitrarily | 103 // FIXME: According to HTML4, the length attribute's value can be arbitrarily | 
| 106 // large. However, due to https://bugs.webkit.org/show_bug.cgi?id=14536 things | 104 // large. However, due to https://bugs.webkit.org/show_bug.cgi?id=14536 things | 
| 107 // get rather sluggish when a text field has a larger number of characters than | 105 // get rather sluggish when a text field has a larger number of characters than | 
| 108 // this, even when just clicking in the text field. | 106 // this, even when just clicking in the text field. | 
| 109 const int HTMLInputElement::maximumLength = 524288; | 107 const int HTMLInputElement::maximumLength = 524288; | 
| 110 const int defaultSize = 20; | 108 const int defaultSize = 20; | 
| 111 const int maxSavedResults = 256; | 109 const int maxSavedResults = 256; | 
| 112 | 110 | 
| 113 HTMLInputElement::HTMLInputElement(const QualifiedName& tagName, Document* docum
      ent, HTMLFormElement* form, bool createdByParser) | 111 HTMLInputElement::HTMLInputElement(const QualifiedName& tagName, Document* docum
      ent, HTMLFormElement* form, bool createdByParser) | 
| 114     : HTMLTextFormControlElement(tagName, document, form) | 112     : HTMLTextFormControlElement(tagName, document, form) | 
| 115     , m_size(defaultSize) | 113     , m_size(defaultSize) | 
| 116     , m_maxLength(maximumLength) | 114     , m_maxLength(maximumLength) | 
| 117     , m_maxResults(-1) | 115     , m_maxResults(-1) | 
| 118     , m_isChecked(false) | 116     , m_isChecked(false) | 
| 119     , m_reflectsCheckedAttribute(true) | 117     , m_reflectsCheckedAttribute(true) | 
| 120     , m_isIndeterminate(false) | 118     , m_isIndeterminate(false) | 
| 121     , m_hasType(false) | 119     , m_hasType(false) | 
| 122     , m_isActivatedSubmit(false) | 120     , m_isActivatedSubmit(false) | 
| 123     , m_autocomplete(Uninitialized) | 121     , m_autocomplete(Uninitialized) | 
| 124     , m_isAutofilled(false) | 122     , m_isAutofilled(false) | 
| 125 #if ENABLE(DATALIST_ELEMENT) |  | 
| 126     , m_hasNonEmptyList(false) | 123     , m_hasNonEmptyList(false) | 
| 127 #endif |  | 
| 128     , m_stateRestored(false) | 124     , m_stateRestored(false) | 
| 129     , m_parsingInProgress(createdByParser) | 125     , m_parsingInProgress(createdByParser) | 
| 130     , m_valueAttributeWasUpdatedAfterParsing(false) | 126     , m_valueAttributeWasUpdatedAfterParsing(false) | 
| 131     , m_wasModifiedByUser(false) | 127     , m_wasModifiedByUser(false) | 
| 132     , m_canReceiveDroppedFiles(false) | 128     , m_canReceiveDroppedFiles(false) | 
| 133     , m_hasTouchEventHandler(false) | 129     , m_hasTouchEventHandler(false) | 
| 134     , m_inputType(InputType::createText(this)) | 130     , m_inputType(InputType::createText(this)) | 
| 135 { | 131 { | 
| 136     ASSERT(hasTagName(inputTag) || hasTagName(isindexTag)); | 132     ASSERT(hasTagName(inputTag) || hasTagName(isindexTag)); | 
| 137 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI) | 133 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI) | 
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 338 bool HTMLInputElement::getAllowedValueStep(Decimal* step) const | 334 bool HTMLInputElement::getAllowedValueStep(Decimal* step) const | 
| 339 { | 335 { | 
| 340     return m_inputType->getAllowedValueStep(step); | 336     return m_inputType->getAllowedValueStep(step); | 
| 341 } | 337 } | 
| 342 | 338 | 
| 343 StepRange HTMLInputElement::createStepRange(AnyStepHandling anyStepHandling) con
      st | 339 StepRange HTMLInputElement::createStepRange(AnyStepHandling anyStepHandling) con
      st | 
| 344 { | 340 { | 
| 345     return m_inputType->createStepRange(anyStepHandling); | 341     return m_inputType->createStepRange(anyStepHandling); | 
| 346 } | 342 } | 
| 347 | 343 | 
| 348 #if ENABLE(DATALIST_ELEMENT) |  | 
| 349 Decimal HTMLInputElement::findClosestTickMarkValue(const Decimal& value) | 344 Decimal HTMLInputElement::findClosestTickMarkValue(const Decimal& value) | 
| 350 { | 345 { | 
| 351     return m_inputType->findClosestTickMarkValue(value); | 346     return m_inputType->findClosestTickMarkValue(value); | 
| 352 } | 347 } | 
| 353 #endif |  | 
| 354 | 348 | 
| 355 void HTMLInputElement::stepUp(int n, ExceptionCode& ec) | 349 void HTMLInputElement::stepUp(int n, ExceptionCode& ec) | 
| 356 { | 350 { | 
| 357     m_inputType->stepUp(n, ec); | 351     m_inputType->stepUp(n, ec); | 
| 358 } | 352 } | 
| 359 | 353 | 
| 360 void HTMLInputElement::stepDown(int n, ExceptionCode& ec) | 354 void HTMLInputElement::stepDown(int n, ExceptionCode& ec) | 
| 361 { | 355 { | 
| 362     m_inputType->stepUp(-n, ec); | 356     m_inputType->stepUp(-n, ec); | 
| 363 } | 357 } | 
| (...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 697     } else if (name == precisionAttr) { | 691     } else if (name == precisionAttr) { | 
| 698         setNeedsValidityCheck(); | 692         setNeedsValidityCheck(); | 
| 699         UseCounter::count(document(), UseCounter::PrecisionAttribute); | 693         UseCounter::count(document(), UseCounter::PrecisionAttribute); | 
| 700     } else if (name == disabledAttr) { | 694     } else if (name == disabledAttr) { | 
| 701         HTMLTextFormControlElement::parseAttribute(name, value); | 695         HTMLTextFormControlElement::parseAttribute(name, value); | 
| 702         m_inputType->disabledAttributeChanged(); | 696         m_inputType->disabledAttributeChanged(); | 
| 703     } else if (name == readonlyAttr) { | 697     } else if (name == readonlyAttr) { | 
| 704         HTMLTextFormControlElement::parseAttribute(name, value); | 698         HTMLTextFormControlElement::parseAttribute(name, value); | 
| 705         m_inputType->readonlyAttributeChanged(); | 699         m_inputType->readonlyAttributeChanged(); | 
| 706     } | 700     } | 
| 707 #if ENABLE(DATALIST_ELEMENT) |  | 
| 708     else if (name == listAttr) { | 701     else if (name == listAttr) { | 
| 709         m_hasNonEmptyList = !value.isEmpty(); | 702         m_hasNonEmptyList = !value.isEmpty(); | 
| 710         if (m_hasNonEmptyList) { | 703         if (m_hasNonEmptyList) { | 
| 711             resetListAttributeTargetObserver(); | 704             resetListAttributeTargetObserver(); | 
| 712             listAttributeTargetChanged(); | 705             listAttributeTargetChanged(); | 
| 713         } | 706         } | 
| 714         UseCounter::count(document(), UseCounter::ListAttribute); | 707         UseCounter::count(document(), UseCounter::ListAttribute); | 
| 715     } | 708     } | 
| 716 #endif |  | 
| 717 #if ENABLE(INPUT_SPEECH) | 709 #if ENABLE(INPUT_SPEECH) | 
| 718     else if (name == webkitspeechAttr) { | 710     else if (name == webkitspeechAttr) { | 
| 719         if (renderer()) { | 711         if (renderer()) { | 
| 720             // This renderer and its children have quite different layouts and s
      tyles depending on | 712             // This renderer and its children have quite different layouts and s
      tyles depending on | 
| 721             // whether the speech button is visible or not. So we reset the whol
      e thing and recreate | 713             // whether the speech button is visible or not. So we reset the whol
      e thing and recreate | 
| 722             // to get the right styles and layout. | 714             // to get the right styles and layout. | 
| 723             detach(); | 715             detach(); | 
| 724             m_inputType->destroyShadowSubtree(); | 716             m_inputType->destroyShadowSubtree(); | 
| 725             m_inputType->createShadowSubtree(); | 717             m_inputType->createShadowSubtree(); | 
| 726             if (!attached()) | 718             if (!attached()) | 
| (...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1428 { | 1420 { | 
| 1429     HTMLTextFormControlElement::didChangeForm(); | 1421     HTMLTextFormControlElement::didChangeForm(); | 
| 1430     addToRadioButtonGroup(); | 1422     addToRadioButtonGroup(); | 
| 1431 } | 1423 } | 
| 1432 | 1424 | 
| 1433 Node::InsertionNotificationRequest HTMLInputElement::insertedInto(ContainerNode*
       insertionPoint) | 1425 Node::InsertionNotificationRequest HTMLInputElement::insertedInto(ContainerNode*
       insertionPoint) | 
| 1434 { | 1426 { | 
| 1435     HTMLTextFormControlElement::insertedInto(insertionPoint); | 1427     HTMLTextFormControlElement::insertedInto(insertionPoint); | 
| 1436     if (insertionPoint->inDocument() && !form()) | 1428     if (insertionPoint->inDocument() && !form()) | 
| 1437         addToRadioButtonGroup(); | 1429         addToRadioButtonGroup(); | 
| 1438 #if ENABLE(DATALIST_ELEMENT) |  | 
| 1439     resetListAttributeTargetObserver(); | 1430     resetListAttributeTargetObserver(); | 
| 1440 #endif |  | 
| 1441     return InsertionDone; | 1431     return InsertionDone; | 
| 1442 } | 1432 } | 
| 1443 | 1433 | 
| 1444 void HTMLInputElement::removedFrom(ContainerNode* insertionPoint) | 1434 void HTMLInputElement::removedFrom(ContainerNode* insertionPoint) | 
| 1445 { | 1435 { | 
| 1446     if (insertionPoint->inDocument() && !form()) | 1436     if (insertionPoint->inDocument() && !form()) | 
| 1447         removeFromRadioButtonGroup(); | 1437         removeFromRadioButtonGroup(); | 
| 1448     HTMLTextFormControlElement::removedFrom(insertionPoint); | 1438     HTMLTextFormControlElement::removedFrom(insertionPoint); | 
| 1449     ASSERT(!inDocument()); | 1439     ASSERT(!inDocument()); | 
| 1450 #if ENABLE(DATALIST_ELEMENT) |  | 
| 1451     resetListAttributeTargetObserver(); | 1440     resetListAttributeTargetObserver(); | 
| 1452 #endif |  | 
| 1453 } | 1441 } | 
| 1454 | 1442 | 
| 1455 void HTMLInputElement::didMoveToNewDocument(Document* oldDocument) | 1443 void HTMLInputElement::didMoveToNewDocument(Document* oldDocument) | 
| 1456 { | 1444 { | 
| 1457     if (hasImageLoader()) | 1445     if (hasImageLoader()) | 
| 1458         imageLoader()->elementDidMoveToNewDocument(); | 1446         imageLoader()->elementDidMoveToNewDocument(); | 
| 1459 | 1447 | 
| 1460     if (oldDocument) { | 1448     if (oldDocument) { | 
| 1461         if (isRadioButton()) | 1449         if (isRadioButton()) | 
| 1462             oldDocument->formController()->checkedRadioButtons().removeButton(th
      is); | 1450             oldDocument->formController()->checkedRadioButtons().removeButton(th
      is); | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 1492 | 1480 | 
| 1493 #if ENABLE(INPUT_TYPE_COLOR) | 1481 #if ENABLE(INPUT_TYPE_COLOR) | 
| 1494 void HTMLInputElement::selectColorInColorChooser(const Color& color) | 1482 void HTMLInputElement::selectColorInColorChooser(const Color& color) | 
| 1495 { | 1483 { | 
| 1496     if (!m_inputType->isColorControl()) | 1484     if (!m_inputType->isColorControl()) | 
| 1497         return; | 1485         return; | 
| 1498     static_cast<ColorInputType*>(m_inputType.get())->didChooseColor(color); | 1486     static_cast<ColorInputType*>(m_inputType.get())->didChooseColor(color); | 
| 1499 } | 1487 } | 
| 1500 #endif | 1488 #endif | 
| 1501 | 1489 | 
| 1502 #if ENABLE(DATALIST_ELEMENT) |  | 
| 1503 HTMLElement* HTMLInputElement::list() const | 1490 HTMLElement* HTMLInputElement::list() const | 
| 1504 { | 1491 { | 
| 1505     return dataList(); | 1492     return dataList(); | 
| 1506 } | 1493 } | 
| 1507 | 1494 | 
| 1508 HTMLDataListElement* HTMLInputElement::dataList() const | 1495 HTMLDataListElement* HTMLInputElement::dataList() const | 
| 1509 { | 1496 { | 
| 1510     if (!m_hasNonEmptyList) | 1497     if (!m_hasNonEmptyList) | 
| 1511         return 0; | 1498         return 0; | 
| 1512 | 1499 | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
| 1527     if (inDocument()) | 1514     if (inDocument()) | 
| 1528         m_listAttributeTargetObserver = ListAttributeTargetObserver::create(fast
      GetAttribute(listAttr), this); | 1515         m_listAttributeTargetObserver = ListAttributeTargetObserver::create(fast
      GetAttribute(listAttr), this); | 
| 1529     else | 1516     else | 
| 1530         m_listAttributeTargetObserver = nullptr; | 1517         m_listAttributeTargetObserver = nullptr; | 
| 1531 } | 1518 } | 
| 1532 | 1519 | 
| 1533 void HTMLInputElement::listAttributeTargetChanged() | 1520 void HTMLInputElement::listAttributeTargetChanged() | 
| 1534 { | 1521 { | 
| 1535     m_inputType->listAttributeTargetChanged(); | 1522     m_inputType->listAttributeTargetChanged(); | 
| 1536 } | 1523 } | 
| 1537 #endif // ENABLE(DATALIST_ELEMENT) |  | 
| 1538 | 1524 | 
| 1539 bool HTMLInputElement::isSteppable() const | 1525 bool HTMLInputElement::isSteppable() const | 
| 1540 { | 1526 { | 
| 1541     return m_inputType->isSteppable(); | 1527     return m_inputType->isSteppable(); | 
| 1542 } | 1528 } | 
| 1543 | 1529 | 
| 1544 #if ENABLE(INPUT_SPEECH) | 1530 #if ENABLE(INPUT_SPEECH) | 
| 1545 | 1531 | 
| 1546 bool HTMLInputElement::isSpeechEnabled() const | 1532 bool HTMLInputElement::isSpeechEnabled() const | 
| 1547 { | 1533 { | 
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1795 void HTMLInputElement::setHeight(unsigned height) | 1781 void HTMLInputElement::setHeight(unsigned height) | 
| 1796 { | 1782 { | 
| 1797     setAttribute(heightAttr, String::number(height)); | 1783     setAttribute(heightAttr, String::number(height)); | 
| 1798 } | 1784 } | 
| 1799 | 1785 | 
| 1800 void HTMLInputElement::setWidth(unsigned width) | 1786 void HTMLInputElement::setWidth(unsigned width) | 
| 1801 { | 1787 { | 
| 1802     setAttribute(widthAttr, String::number(width)); | 1788     setAttribute(widthAttr, String::number(width)); | 
| 1803 } | 1789 } | 
| 1804 | 1790 | 
| 1805 #if ENABLE(DATALIST_ELEMENT) |  | 
| 1806 PassOwnPtr<ListAttributeTargetObserver> ListAttributeTargetObserver::create(cons
      t AtomicString& id, HTMLInputElement* element) | 1791 PassOwnPtr<ListAttributeTargetObserver> ListAttributeTargetObserver::create(cons
      t AtomicString& id, HTMLInputElement* element) | 
| 1807 { | 1792 { | 
| 1808     return adoptPtr(new ListAttributeTargetObserver(id, element)); | 1793     return adoptPtr(new ListAttributeTargetObserver(id, element)); | 
| 1809 } | 1794 } | 
| 1810 | 1795 | 
| 1811 ListAttributeTargetObserver::ListAttributeTargetObserver(const AtomicString& id,
       HTMLInputElement* element) | 1796 ListAttributeTargetObserver::ListAttributeTargetObserver(const AtomicString& id,
       HTMLInputElement* element) | 
| 1812     : IdTargetObserver(element->treeScope()->idTargetObserverRegistry(), id) | 1797     : IdTargetObserver(element->treeScope()->idTargetObserverRegistry(), id) | 
| 1813     , m_element(element) | 1798     , m_element(element) | 
| 1814 { | 1799 { | 
| 1815 } | 1800 } | 
| 1816 | 1801 | 
| 1817 void ListAttributeTargetObserver::idTargetChanged() | 1802 void ListAttributeTargetObserver::idTargetChanged() | 
| 1818 { | 1803 { | 
| 1819     m_element->listAttributeTargetChanged(); | 1804     m_element->listAttributeTargetChanged(); | 
| 1820 } | 1805 } | 
| 1821 #endif |  | 
| 1822 | 1806 | 
| 1823 void HTMLInputElement::setRangeText(const String& replacement, ExceptionCode& ec
      ) | 1807 void HTMLInputElement::setRangeText(const String& replacement, ExceptionCode& ec
      ) | 
| 1824 { | 1808 { | 
| 1825     if (!m_inputType->supportsSelectionAPI()) { | 1809     if (!m_inputType->supportsSelectionAPI()) { | 
| 1826         ec = INVALID_STATE_ERR; | 1810         ec = INVALID_STATE_ERR; | 
| 1827         return; | 1811         return; | 
| 1828     } | 1812     } | 
| 1829 | 1813 | 
| 1830     HTMLTextFormControlElement::setRangeText(replacement, ec); | 1814     HTMLTextFormControlElement::setRangeText(replacement, ec); | 
| 1831 } | 1815 } | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 1861         parameters.step = stepRange.step().toDouble(); | 1845         parameters.step = stepRange.step().toDouble(); | 
| 1862         parameters.stepBase = stepRange.stepBase().toDouble(); | 1846         parameters.stepBase = stepRange.stepBase().toDouble(); | 
| 1863     } else { | 1847     } else { | 
| 1864         parameters.step = 1.0; | 1848         parameters.step = 1.0; | 
| 1865         parameters.stepBase = 0; | 1849         parameters.stepBase = 0; | 
| 1866     } | 1850     } | 
| 1867 | 1851 | 
| 1868     parameters.anchorRectInRootView = document()->view()->contentsToRootView(pix
      elSnappedBoundingBox()); | 1852     parameters.anchorRectInRootView = document()->view()->contentsToRootView(pix
      elSnappedBoundingBox()); | 
| 1869     parameters.currentValue = value(); | 1853     parameters.currentValue = value(); | 
| 1870     parameters.isAnchorElementRTL = computedStyle()->direction() == RTL; | 1854     parameters.isAnchorElementRTL = computedStyle()->direction() == RTL; | 
| 1871 #if ENABLE(DATALIST_ELEMENT) |  | 
| 1872     if (HTMLDataListElement* dataList = this->dataList()) { | 1855     if (HTMLDataListElement* dataList = this->dataList()) { | 
| 1873         RefPtr<HTMLCollection> options = dataList->options(); | 1856         RefPtr<HTMLCollection> options = dataList->options(); | 
| 1874         for (unsigned i = 0; HTMLOptionElement* option = toHTMLOptionElement(opt
      ions->item(i)); ++i) { | 1857         for (unsigned i = 0; HTMLOptionElement* option = toHTMLOptionElement(opt
      ions->item(i)); ++i) { | 
| 1875             if (!isValidValue(option->value())) | 1858             if (!isValidValue(option->value())) | 
| 1876                 continue; | 1859                 continue; | 
| 1877             parameters.suggestionValues.append(sanitizeValue(option->value())); | 1860             parameters.suggestionValues.append(sanitizeValue(option->value())); | 
| 1878             parameters.localizedSuggestionValues.append(localizeValue(option->va
      lue())); | 1861             parameters.localizedSuggestionValues.append(localizeValue(option->va
      lue())); | 
| 1879             parameters.suggestionLabels.append(option->value() == option->label(
      ) ? String() : option->label()); | 1862             parameters.suggestionLabels.append(option->value() == option->label(
      ) ? String() : option->label()); | 
| 1880         } | 1863         } | 
| 1881     } | 1864     } | 
| 1882 #endif |  | 
| 1883     return true; | 1865     return true; | 
| 1884 } | 1866 } | 
| 1885 | 1867 | 
| 1886 void HTMLInputElement::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) con
      st | 1868 void HTMLInputElement::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) con
      st | 
| 1887 { | 1869 { | 
| 1888     MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM); | 1870     MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM); | 
| 1889     HTMLTextFormControlElement::reportMemoryUsage(memoryObjectInfo); | 1871     HTMLTextFormControlElement::reportMemoryUsage(memoryObjectInfo); | 
| 1890     info.addMember(m_name, "name"); | 1872     info.addMember(m_name, "name"); | 
| 1891     info.addMember(m_valueIfDirty, "valueIfDirty"); | 1873     info.addMember(m_valueIfDirty, "valueIfDirty"); | 
| 1892     info.addMember(m_suggestedValue, "suggestedValue"); | 1874     info.addMember(m_suggestedValue, "suggestedValue"); | 
| 1893     info.addMember(m_inputType, "inputType"); | 1875     info.addMember(m_inputType, "inputType"); | 
| 1894 #if ENABLE(DATALIST_ELEMENT) |  | 
| 1895     info.addMember(m_listAttributeTargetObserver, "listAttributeTargetObserver")
      ; | 1876     info.addMember(m_listAttributeTargetObserver, "listAttributeTargetObserver")
      ; | 
| 1896 #endif |  | 
| 1897 } | 1877 } | 
| 1898 | 1878 | 
| 1899 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI) | 1879 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI) | 
| 1900 PassRefPtr<RenderStyle> HTMLInputElement::customStyleForRenderer() | 1880 PassRefPtr<RenderStyle> HTMLInputElement::customStyleForRenderer() | 
| 1901 { | 1881 { | 
| 1902     return m_inputType->customStyleForRenderer(document()->styleResolver()->styl
      eForElement(this)); | 1882     return m_inputType->customStyleForRenderer(document()->styleResolver()->styl
      eForElement(this)); | 
| 1903 } | 1883 } | 
| 1904 #endif | 1884 #endif | 
| 1905 | 1885 | 
| 1906 } // namespace | 1886 } // namespace | 
| OLD | NEW | 
|---|