Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Side by Side Diff: Source/core/html/HTMLInputElement.cpp

Issue 19509003: [oilpan] Completely move HTMLFormControlElement's hierarchy to the managed heap (Closed) Base URL: svn://svn.chromium.org/blink/branches/oilpan
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
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) 91 #if ENABLE(DATALIST_ELEMENT)
92 class ListAttributeTargetObserver : IdTargetObserver { 92 class ListAttributeTargetObserver : IdTargetObserver {
93 WTF_MAKE_FAST_ALLOCATED; 93 WTF_MAKE_FAST_ALLOCATED;
94 public: 94 public:
95 static PassOwnPtr<ListAttributeTargetObserver> create(const AtomicString& id , HTMLInputElement*); 95 static PassOwnPtr<ListAttributeTargetObserver> create(const AtomicString& id , Handle<HTMLInputElement>);
96 virtual void idTargetChanged() OVERRIDE; 96 virtual void idTargetChanged() OVERRIDE;
97 97
98 private: 98 private:
99 ListAttributeTargetObserver(const AtomicString& id, HTMLInputElement*); 99 ListAttributeTargetObserver(const AtomicString& id, Handle<HTMLInputElement> );
100 100
101 // FIXME(oilpan): Move ListAttributeTargetObserver to the heap and use a Mem ber.
101 HTMLInputElement* m_element; 102 HTMLInputElement* m_element;
102 }; 103 };
103 #endif 104 #endif
104 105
105 // FIXME: According to HTML4, the length attribute's value can be arbitrarily 106 // 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 107 // 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 108 // get rather sluggish when a text field has a larger number of characters than
108 // this, even when just clicking in the text field. 109 // this, even when just clicking in the text field.
109 const int HTMLInputElement::maximumLength = 524288; 110 const int HTMLInputElement::maximumLength = 524288;
110 const int defaultSize = 20; 111 const int defaultSize = 20;
(...skipping 13 matching lines...) Expand all
124 , m_isAutofilled(false) 125 , m_isAutofilled(false)
125 #if ENABLE(DATALIST_ELEMENT) 126 #if ENABLE(DATALIST_ELEMENT)
126 , m_hasNonEmptyList(false) 127 , m_hasNonEmptyList(false)
127 #endif 128 #endif
128 , m_stateRestored(false) 129 , m_stateRestored(false)
129 , m_parsingInProgress(createdByParser) 130 , m_parsingInProgress(createdByParser)
130 , m_valueAttributeWasUpdatedAfterParsing(false) 131 , m_valueAttributeWasUpdatedAfterParsing(false)
131 , m_wasModifiedByUser(false) 132 , m_wasModifiedByUser(false)
132 , m_canReceiveDroppedFiles(false) 133 , m_canReceiveDroppedFiles(false)
133 , m_hasTouchEventHandler(false) 134 , m_hasTouchEventHandler(false)
134 , m_inputType(InputType::createText(this)) 135 , m_inputType(InputType::createText(Handle<HTMLInputElement>(this)))
135 { 136 {
136 ASSERT(hasTagName(inputTag) || hasTagName(isindexTag)); 137 ASSERT(hasTagName(inputTag) || hasTagName(isindexTag));
137 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI) 138 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI)
138 setHasCustomStyleCallbacks(); 139 setHasCustomStyleCallbacks();
139 #endif 140 #endif
140 ScriptWrappable::init(this); 141 ScriptWrappable::init(this);
141 } 142 }
142 143
143 PassRefPtr<HTMLInputElement> HTMLInputElement::create(const QualifiedName& tagNa me, Document* document, HTMLFormElement* form, bool createdByParser) 144 Result<HTMLInputElement> HTMLInputElement::create(const QualifiedName& tagName, Document* document, HTMLFormElement* form, bool createdByParser)
144 { 145 {
145 RefPtr<HTMLInputElement> inputElement = adoptRef(new HTMLInputElement(tagNam e, document, form, createdByParser)); 146 Handle<HTMLInputElement> inputElement = adoptNode(new HTMLInputElement(tagNa me, document, form, createdByParser));
146 inputElement->ensureUserAgentShadowRoot(); 147 inputElement->ensureUserAgentShadowRoot();
147 return inputElement.release(); 148 return inputElement;
148 } 149 }
149 150
150 HTMLImageLoader* HTMLInputElement::imageLoader() 151 HTMLImageLoader* HTMLInputElement::imageLoader()
151 { 152 {
152 if (!m_imageLoader) 153 if (!m_imageLoader)
153 m_imageLoader = adoptPtr(new HTMLImageLoader(this)); 154 m_imageLoader = adoptPtr(new HTMLImageLoader(this));
154 return m_imageLoader.get(); 155 return m_imageLoader.get();
155 } 156 }
156 157
157 void HTMLInputElement::didAddUserAgentShadowRoot(ShadowRoot*) 158 void HTMLInputElement::didAddUserAgentShadowRoot(ShadowRoot*)
158 { 159 {
159 m_inputType->createShadowSubtree(); 160 m_inputType->createShadowSubtree();
160 } 161 }
161 162
162 HTMLInputElement::~HTMLInputElement() 163 HTMLInputElement::~HTMLInputElement()
163 { 164 {
164 // Need to remove form association while this is still an HTMLInputElement 165 // Need to remove form association while this is still an HTMLInputElement
165 // so that virtual functions are called correctly. 166 // so that virtual functions are called correctly.
166 setForm(0); 167 setForm(0);
167 // setForm(0) may register this to a document-level radio button group. 168 // setForm(0) may register this to a document-level radio button group.
168 // We should unregister it to avoid accessing a deleted object. 169 // We should unregister it to avoid accessing a deleted object.
169 if (isRadioButton()) 170 if (isRadioButton())
170 document()->formController()->checkedRadioButtons().removeButton(this); 171 document()->formController()->checkedRadioButtons().removeButton(Handle< HTMLInputElement>(this));
171 if (m_hasTouchEventHandler) 172 if (m_hasTouchEventHandler)
172 document()->didRemoveEventTargetNode(this); 173 document()->didRemoveEventTargetNode(this);
173 } 174 }
174 175
175 const AtomicString& HTMLInputElement::name() const 176 const AtomicString& HTMLInputElement::name() const
176 { 177 {
177 return m_name.isNull() ? emptyAtom : m_name; 178 return m_name.isNull() ? emptyAtom : m_name;
178 } 179 }
179 180
180 Vector<FileChooserFileInfo> HTMLInputElement::filesFromFileInputFormControlState (const FormControlState& state) 181 Vector<FileChooserFileInfo> HTMLInputElement::filesFromFileInputFormControlState (const FormControlState& state)
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 // attribute in other browsers and then fix this. Note that setting to null *does* remove 442 // attribute in other browsers and then fix this. Note that setting to null *does* remove
442 // the attribute and setAttribute implements that. 443 // the attribute and setAttribute implements that.
443 if (type.isEmpty()) 444 if (type.isEmpty())
444 removeAttribute(typeAttr); 445 removeAttribute(typeAttr);
445 else 446 else
446 setAttribute(typeAttr, type); 447 setAttribute(typeAttr, type);
447 } 448 }
448 449
449 void HTMLInputElement::updateType() 450 void HTMLInputElement::updateType()
450 { 451 {
451 OwnPtr<InputType> newType = InputType::create(this, fastGetAttribute(typeAtt r)); 452 OwnPtr<InputType> newType = InputType::create(Handle<HTMLInputElement>(this) , fastGetAttribute(typeAttr));
452 bool hadType = m_hasType; 453 bool hadType = m_hasType;
453 m_hasType = true; 454 m_hasType = true;
454 if (m_inputType->formControlType() == newType->formControlType()) 455 if (m_inputType->formControlType() == newType->formControlType())
455 return; 456 return;
456 457
457 if (hadType && !newType->canChangeFromAnotherType()) { 458 if (hadType && !newType->canChangeFromAnotherType()) {
458 // Set the attribute back to the old value. 459 // Set the attribute back to the old value.
459 // Useful in case we were called from inside parseAttribute. 460 // Useful in case we were called from inside parseAttribute.
460 setAttribute(typeAttr, type()); 461 setAttribute(typeAttr, type());
461 return; 462 return;
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 void HTMLInputElement::setChecked(bool nowChecked, TextFieldEventBehavior eventB ehavior) 850 void HTMLInputElement::setChecked(bool nowChecked, TextFieldEventBehavior eventB ehavior)
850 { 851 {
851 if (checked() == nowChecked) 852 if (checked() == nowChecked)
852 return; 853 return;
853 854
854 m_reflectsCheckedAttribute = false; 855 m_reflectsCheckedAttribute = false;
855 m_isChecked = nowChecked; 856 m_isChecked = nowChecked;
856 setNeedsStyleRecalc(); 857 setNeedsStyleRecalc();
857 858
858 if (CheckedRadioButtons* buttons = checkedRadioButtons()) 859 if (CheckedRadioButtons* buttons = checkedRadioButtons())
859 buttons->updateCheckedState(this); 860 buttons->updateCheckedState(Handle<HTMLInputElement>(this));
860 if (renderer() && renderer()->style()->hasAppearance()) 861 if (renderer() && renderer()->style()->hasAppearance())
861 renderer()->theme()->stateChanged(renderer(), CheckedState); 862 renderer()->theme()->stateChanged(renderer(), CheckedState);
862 setNeedsValidityCheck(); 863 setNeedsValidityCheck();
863 864
864 // Ideally we'd do this from the render tree (matching 865 // Ideally we'd do this from the render tree (matching
865 // RenderTextView), but it's not possible to do it at the moment 866 // RenderTextView), but it's not possible to do it at the moment
866 // because of the way the code is structured. 867 // because of the way the code is structured.
867 if (renderer()) { 868 if (renderer()) {
868 if (AXObjectCache* cache = renderer()->document()->existingAXObjectCache ()) 869 if (AXObjectCache* cache = renderer()->document()->existingAXObjectCache ())
869 cache->checkedStateChanged(this); 870 cache->checkedStateChanged(this);
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
1255 Vector<String> HTMLInputElement::acceptMIMETypes() 1256 Vector<String> HTMLInputElement::acceptMIMETypes()
1256 { 1257 {
1257 return parseAcceptAttribute(fastGetAttribute(acceptAttr), isValidMIMEType); 1258 return parseAcceptAttribute(fastGetAttribute(acceptAttr), isValidMIMEType);
1258 } 1259 }
1259 1260
1260 Vector<String> HTMLInputElement::acceptFileExtensions() 1261 Vector<String> HTMLInputElement::acceptFileExtensions()
1261 { 1262 {
1262 return parseAcceptAttribute(fastGetAttribute(acceptAttr), isValidFileExtensi on); 1263 return parseAcceptAttribute(fastGetAttribute(acceptAttr), isValidFileExtensi on);
1263 } 1264 }
1264 1265
1265 String HTMLInputElement::accept() const
1266 {
1267 return fastGetAttribute(acceptAttr);
1268 }
1269
1270 String HTMLInputElement::alt() const 1266 String HTMLInputElement::alt() const
1271 { 1267 {
1272 return fastGetAttribute(altAttr); 1268 return fastGetAttribute(altAttr);
1273 } 1269 }
1274 1270
1275 int HTMLInputElement::maxLength() const 1271 int HTMLInputElement::maxLength() const
1276 { 1272 {
1277 return m_maxLength; 1273 return m_maxLength;
1278 } 1274 }
1279 1275
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
1452 #endif 1448 #endif
1453 } 1449 }
1454 1450
1455 void HTMLInputElement::didMoveToNewDocument(Document* oldDocument) 1451 void HTMLInputElement::didMoveToNewDocument(Document* oldDocument)
1456 { 1452 {
1457 if (hasImageLoader()) 1453 if (hasImageLoader())
1458 imageLoader()->elementDidMoveToNewDocument(); 1454 imageLoader()->elementDidMoveToNewDocument();
1459 1455
1460 if (oldDocument) { 1456 if (oldDocument) {
1461 if (isRadioButton()) 1457 if (isRadioButton())
1462 oldDocument->formController()->checkedRadioButtons().removeButton(th is); 1458 oldDocument->formController()->checkedRadioButtons().removeButton(Ha ndle<HTMLInputElement>(this));
1463 if (m_hasTouchEventHandler) 1459 if (m_hasTouchEventHandler)
1464 oldDocument->didRemoveEventTargetNode(this); 1460 oldDocument->didRemoveEventTargetNode(this);
1465 } 1461 }
1466 1462
1467 if (m_hasTouchEventHandler) 1463 if (m_hasTouchEventHandler)
1468 document()->didAddTouchEventHandler(this); 1464 document()->didAddTouchEventHandler(this);
1469 1465
1470 HTMLTextFormControlElement::didMoveToNewDocument(oldDocument); 1466 HTMLTextFormControlElement::didMoveToNewDocument(oldDocument);
1471 } 1467 }
1472 1468
1473 void HTMLInputElement::addSubresourceAttributeURLs(ListHashSet<KURL>& urls) cons t 1469 void HTMLInputElement::addSubresourceAttributeURLs(ListHashSet<KURL>& urls) cons t
1474 { 1470 {
1475 HTMLTextFormControlElement::addSubresourceAttributeURLs(urls); 1471 HTMLTextFormControlElement::addSubresourceAttributeURLs(urls);
1476 1472
1477 addSubresourceURL(urls, src()); 1473 addSubresourceURL(urls, src());
1478 } 1474 }
1479 1475
1480 bool HTMLInputElement::recalcWillValidate() const 1476 bool HTMLInputElement::recalcWillValidate() const
1481 { 1477 {
1482 return m_inputType->supportsValidation() && HTMLTextFormControlElement::reca lcWillValidate(); 1478 return m_inputType->supportsValidation() && HTMLTextFormControlElement::reca lcWillValidate();
1483 } 1479 }
1484 1480
1485 void HTMLInputElement::requiredAttributeChanged() 1481 void HTMLInputElement::requiredAttributeChanged()
1486 { 1482 {
1487 HTMLTextFormControlElement::requiredAttributeChanged(); 1483 HTMLTextFormControlElement::requiredAttributeChanged();
1488 if (CheckedRadioButtons* buttons = checkedRadioButtons()) 1484 if (CheckedRadioButtons* buttons = checkedRadioButtons())
1489 buttons->requiredAttributeChanged(this); 1485 buttons->requiredAttributeChanged(Handle<HTMLInputElement>(this));
1490 m_inputType->requiredAttributeChanged(); 1486 m_inputType->requiredAttributeChanged();
1491 } 1487 }
1492 1488
1493 #if ENABLE(INPUT_TYPE_COLOR) 1489 #if ENABLE(INPUT_TYPE_COLOR)
1494 void HTMLInputElement::selectColorInColorChooser(const Color& color) 1490 void HTMLInputElement::selectColorInColorChooser(const Color& color)
1495 { 1491 {
1496 if (!m_inputType->isColorControl()) 1492 if (!m_inputType->isColorControl())
1497 return; 1493 return;
1498 static_cast<ColorInputType*>(m_inputType.get())->didChooseColor(color); 1494 static_cast<ColorInputType*>(m_inputType.get())->didChooseColor(color);
1499 } 1495 }
(...skipping 18 matching lines...) Expand all
1518 return 0; 1514 return 0;
1519 if (!element->hasTagName(datalistTag)) 1515 if (!element->hasTagName(datalistTag))
1520 return 0; 1516 return 0;
1521 1517
1522 return static_cast<HTMLDataListElement*>(element); 1518 return static_cast<HTMLDataListElement*>(element);
1523 } 1519 }
1524 1520
1525 void HTMLInputElement::resetListAttributeTargetObserver() 1521 void HTMLInputElement::resetListAttributeTargetObserver()
1526 { 1522 {
1527 if (inDocument()) 1523 if (inDocument())
1528 m_listAttributeTargetObserver = ListAttributeTargetObserver::create(fast GetAttribute(listAttr), this); 1524 m_listAttributeTargetObserver = ListAttributeTargetObserver::create(fast GetAttribute(listAttr), Handle<HTMLInputElement>(this));
1529 else 1525 else
1530 m_listAttributeTargetObserver = nullptr; 1526 m_listAttributeTargetObserver = nullptr;
1531 } 1527 }
1532 1528
1533 void HTMLInputElement::listAttributeTargetChanged() 1529 void HTMLInputElement::listAttributeTargetChanged()
1534 { 1530 {
1535 m_inputType->listAttributeTargetChanged(); 1531 m_inputType->listAttributeTargetChanged();
1536 } 1532 }
1537 #endif // ENABLE(DATALIST_ELEMENT) 1533 #endif // ENABLE(DATALIST_ELEMENT)
1538 1534
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1741 { 1737 {
1742 setAttribute(captureAttr, value); 1738 setAttribute(captureAttr, value);
1743 } 1739 }
1744 1740
1745 #endif 1741 #endif
1746 1742
1747 bool HTMLInputElement::isInRequiredRadioButtonGroup() 1743 bool HTMLInputElement::isInRequiredRadioButtonGroup()
1748 { 1744 {
1749 ASSERT(isRadioButton()); 1745 ASSERT(isRadioButton());
1750 if (CheckedRadioButtons* buttons = checkedRadioButtons()) 1746 if (CheckedRadioButtons* buttons = checkedRadioButtons())
1751 return buttons->isInRequiredGroup(this); 1747 return buttons->isInRequiredGroup(Handle<HTMLInputElement>(this));
1752 return false; 1748 return false;
1753 } 1749 }
1754 1750
1755 HTMLInputElement* HTMLInputElement::checkedRadioButtonForGroup() const 1751 Result<HTMLInputElement> HTMLInputElement::checkedRadioButtonForGroup() const
1756 { 1752 {
1757 if (CheckedRadioButtons* buttons = checkedRadioButtons()) 1753 if (CheckedRadioButtons* buttons = checkedRadioButtons())
1758 return buttons->checkedButtonForGroup(name()); 1754 return buttons->checkedButtonForGroup(name());
1759 return 0; 1755 return nullptr;
1760 } 1756 }
1761 1757
1762 CheckedRadioButtons* HTMLInputElement::checkedRadioButtons() const 1758 CheckedRadioButtons* HTMLInputElement::checkedRadioButtons() const
1763 { 1759 {
1764 if (!isRadioButton()) 1760 if (!isRadioButton())
1765 return 0; 1761 return 0;
1766 if (HTMLFormElement* formElement = form()) 1762 if (HTMLFormElement* formElement = form())
1767 return &formElement->checkedRadioButtons(); 1763 return &formElement->checkedRadioButtons();
1768 if (inDocument()) 1764 if (inDocument())
1769 return &document()->formController()->checkedRadioButtons(); 1765 return &document()->formController()->checkedRadioButtons();
1770 return 0; 1766 return 0;
1771 } 1767 }
1772 1768
1773 inline void HTMLInputElement::addToRadioButtonGroup() 1769 inline void HTMLInputElement::addToRadioButtonGroup()
1774 { 1770 {
1775 if (CheckedRadioButtons* buttons = checkedRadioButtons()) 1771 if (CheckedRadioButtons* buttons = checkedRadioButtons())
1776 buttons->addButton(this); 1772 buttons->addButton(Handle<HTMLInputElement>(this));
1777 } 1773 }
1778 1774
1779 inline void HTMLInputElement::removeFromRadioButtonGroup() 1775 inline void HTMLInputElement::removeFromRadioButtonGroup()
1780 { 1776 {
1781 if (CheckedRadioButtons* buttons = checkedRadioButtons()) 1777 if (CheckedRadioButtons* buttons = checkedRadioButtons())
1782 buttons->removeButton(this); 1778 buttons->removeButton(Handle<HTMLInputElement>(this));
1783 } 1779 }
1784 1780
1785 unsigned HTMLInputElement::height() const 1781 unsigned HTMLInputElement::height() const
1786 { 1782 {
1787 return m_inputType->height(); 1783 return m_inputType->height();
1788 } 1784 }
1789 1785
1790 unsigned HTMLInputElement::width() const 1786 unsigned HTMLInputElement::width() const
1791 { 1787 {
1792 return m_inputType->width(); 1788 return m_inputType->width();
1793 } 1789 }
1794 1790
1795 void HTMLInputElement::setHeight(unsigned height) 1791 void HTMLInputElement::setHeight(unsigned height)
1796 { 1792 {
1797 setAttribute(heightAttr, String::number(height)); 1793 setAttribute(heightAttr, String::number(height));
1798 } 1794 }
1799 1795
1800 void HTMLInputElement::setWidth(unsigned width) 1796 void HTMLInputElement::setWidth(unsigned width)
1801 { 1797 {
1802 setAttribute(widthAttr, String::number(width)); 1798 setAttribute(widthAttr, String::number(width));
1803 } 1799 }
1804 1800
1805 #if ENABLE(DATALIST_ELEMENT) 1801 #if ENABLE(DATALIST_ELEMENT)
1806 PassOwnPtr<ListAttributeTargetObserver> ListAttributeTargetObserver::create(cons t AtomicString& id, HTMLInputElement* element) 1802 PassOwnPtr<ListAttributeTargetObserver> ListAttributeTargetObserver::create(cons t AtomicString& id, Handle<HTMLInputElement> element)
1807 { 1803 {
1808 return adoptPtr(new ListAttributeTargetObserver(id, element)); 1804 return adoptPtr(new ListAttributeTargetObserver(id, element));
1809 } 1805 }
1810 1806
1811 ListAttributeTargetObserver::ListAttributeTargetObserver(const AtomicString& id, HTMLInputElement* element) 1807 ListAttributeTargetObserver::ListAttributeTargetObserver(const AtomicString& id, Handle<HTMLInputElement> element)
1812 : IdTargetObserver(element->treeScope()->idTargetObserverRegistry(), id) 1808 : IdTargetObserver(element->treeScope()->idTargetObserverRegistry(), id)
1813 , m_element(element) 1809 , m_element(element.raw())
1814 { 1810 {
1815 } 1811 }
1816 1812
1817 void ListAttributeTargetObserver::idTargetChanged() 1813 void ListAttributeTargetObserver::idTargetChanged()
1818 { 1814 {
1819 m_element->listAttributeTargetChanged(); 1815 m_element->listAttributeTargetChanged();
1820 } 1816 }
1821 #endif 1817 #endif
1822 1818
1823 void HTMLInputElement::setRangeText(const String& replacement, ExceptionCode& ec ) 1819 void HTMLInputElement::setRangeText(const String& replacement, ExceptionCode& ec )
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1896 #endif 1892 #endif
1897 } 1893 }
1898 1894
1899 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI) 1895 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI)
1900 PassRefPtr<RenderStyle> HTMLInputElement::customStyleForRenderer() 1896 PassRefPtr<RenderStyle> HTMLInputElement::customStyleForRenderer()
1901 { 1897 {
1902 return m_inputType->customStyleForRenderer(document()->styleResolver()->styl eForElement(this)); 1898 return m_inputType->customStyleForRenderer(document()->styleResolver()->styl eForElement(this));
1903 } 1899 }
1904 #endif 1900 #endif
1905 1901
1902 void HTMLInputElement::acceptHeapVisitor(Visitor* visitor) const
1903 {
1904 HTMLTextFormControlElement::acceptHeapVisitor(visitor);
1905 }
1906
1906 } // namespace 1907 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698