<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[173893] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/173893">173893</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2014-09-23 15:03:15 -0700 (Tue, 23 Sep 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element()
https://bugs.webkit.org/show_bug.cgi?id=137007

Reviewed by Benjamin Poulain.

Source/WebCore:

Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element() and drop
transition macros for toHTML*Element().

This patch also cleans up the surrounding code.

No new tests, no behavior change.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::labelChanged):
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::canSetSelectedChildrenAttribute):
(WebCore::AccessibilityListBox::addChildren):
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::isSelected):
(WebCore::AccessibilityListBoxOption::stringValue):
(WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
* accessibility/AccessibilityMediaControls.cpp:
(WebCore::AccessibilityMediaTimeline::valueDescription):
* accessibility/AccessibilityMenuListOption.cpp:
(WebCore::AccessibilityMenuListOption::isEnabled):
(WebCore::AccessibilityMenuListOption::isSelected):
(WebCore::AccessibilityMenuListOption::setSelected):
(WebCore::AccessibilityMenuListOption::stringValue):
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::addChildren):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::isNativeTextControl):
(WebCore::AccessibilityNodeObject::isNativeImage):
(WebCore::AccessibilityNodeObject::isInputImage):
(WebCore::AccessibilityNodeObject::isMultiSelectable):
(WebCore::AccessibilityNodeObject::isReadOnly):
(WebCore::AccessibilityNodeObject::valueForRange):
(WebCore::AccessibilityNodeObject::maxValueForRange):
(WebCore::AccessibilityNodeObject::minValueForRange):
(WebCore::isNodeActionElement):
(WebCore::AccessibilityNodeObject::alternativeText):
(WebCore::AccessibilityNodeObject::visibleText):
(WebCore::AccessibilityNodeObject::title):
(WebCore::AccessibilityNodeObject::text):
(WebCore::AccessibilityNodeObject::stringValue):
(WebCore::AccessibilityNodeObject::colorValue):
(WebCore::accessibleNameForNode):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isFileUploadButton):
(WebCore::AccessibilityRenderObject::stringValue):
(WebCore::AccessibilityRenderObject::labelElementContainer):
(WebCore::AccessibilityRenderObject::internalLinkElement):
(WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
(WebCore::AccessibilityRenderObject::url):
(WebCore::AccessibilityRenderObject::setValue):
(WebCore::AccessibilityRenderObject::getDocumentLinks):
(WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
(WebCore::AccessibilityRenderObject::accessibilityHitTest):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::addTextFieldChildren):
(WebCore::AccessibilityRenderObject::stringValueForMSAA):
(WebCore::AccessibilityRenderObject::isLinked):
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::inputElement):
(WebCore::AccessibilitySliderThumb::elementRect):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::tableElement):
(WebCore::AccessibilityTable::title):
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::notifyChildrenSelectionChange):
* accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
(optionFromSelection):
(webkitAccessibleSelectionGetSelectionCount):
* accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
(webkitAccessibleTableGetCaption):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetDescription):
* accessibility/ios/AccessibilityObjectIOS.mm:
(WebCore::AccessibilityObject::accessibilityPasswordFieldLength):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::namedItemGetter):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::nameGetter):
* bindings/js/JSHTMLFrameSetElementCustom.cpp:
(WebCore::JSHTMLFrameSetElement::nameGetter):
* bindings/js/JSNodeCustom.cpp:
(WebCore::isReachableFromDOM):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* css/SelectorCheckerTestFunctions.h:
(WebCore::isChecked):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
* css/StyleSheetList.cpp:
(WebCore::StyleSheetList::getNamedItem):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::makeContextStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
(WebCore::SelectorCompiler::makeElementStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
(WebCore::SelectorCompiler::isPlaceholderShown):
* dom/CurrentScriptIncrementer.h:
(WebCore::CurrentScriptIncrementer::CurrentScriptIncrementer):
* dom/DataTransfer.cpp:
(WebCore::DataTransfer::setDragImage):
* dom/Document.cpp:
(WebCore::Document::setTitle):
(WebCore::Document::processHttpEquiv):
(WebCore::Document::iconURLs):
* dom/DocumentOrderedMap.cpp:
(WebCore::keyMatchesMapName):
(WebCore::keyMatchesLowercasedMapName):
(WebCore::keyMatchesLowercasedUsemap):
(WebCore::DocumentOrderedMap::getElementByMapName):
(WebCore::DocumentOrderedMap::getElementByLowercasedMapName):
(WebCore::DocumentOrderedMap::getElementByLowercasedUsemap):
(WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
* dom/Element.cpp:
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
(WebCore::Element::updateName):
(WebCore::Element::updateId):
(WebCore::Element::updateLabel):
(WebCore::Element::ensureCachedHTMLCollection):
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
* dom/ScriptElement.cpp:
(WebCore::toScriptElementIfPossible):
* dom/VisitedLinkState.cpp:
(WebCore::linkHashForElement):
(WebCore::VisitedLinkState::determineLinkStateSlowCase):
* dom/make_names.pl:
(printTypeHelpers):
* editing/Editor.cpp:
(WebCore::Editor::selectionForCommand):
(WebCore::imageElementFromImageDocument):
(WebCore::findFirstMarkable):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::selectAll):
(WebCore::scanForForm):
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::shouldPerformSmartReplace):
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::nonBoundaryShadowTreeRootNode):
(WebCore::VisibleSelection::isInPasswordField):
* editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_processElement):
* editing/ios/EditorIOS.mm:
(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
* editing/markup.cpp:
(WebCore::isPlainTextMarkup):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::suggestions):
* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):
* html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::findAssociatedForm):
* html/HTMLAnchorElement.cpp:
(WebCore::appendServerMapMousePosition):
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::imageElement):
* html/HTMLCollection.cpp:
(WebCore::isMatchingElement):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::matchesReadWritePseudoClass):
(WebCore::HTMLElement::setInnerHTML):
(WebCore::HTMLElement::directionality):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::rendererIsNeeded):
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor):
(WebCore::shouldAutofocus):
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::formControlElements):
(WebCore::HTMLFormControlsCollection::formImageElements):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::getTextFieldValues):
(WebCore::HTMLFormElement::assertItemCanBeInPastNamesMap):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::notifyFinished):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::dataList):
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::shadowSelect):
* html/HTMLLegendElement.cpp:
(WebCore::HTMLLegendElement::virtualForm):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLNameCollection.cpp:
(WebCore::DocumentNameCollection::elementMatchesIfIdAttributeMatch):
(WebCore::DocumentNameCollection::elementMatchesIfNameAttributeMatch):
(WebCore::DocumentNameCollection::elementMatches):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::updateDocNamedItem):
(WebCore::HTMLObjectElement::containsJavaApplet):
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::recalcSelectOptions):
(WebCore::HTMLOptGroupElement::ownerSelectElement):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::ownerDataListElement):
(WebCore::HTMLOptionElement::ownerSelectElement):
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::add):
* html/HTMLOptionsCollection.h:
* html/HTMLPlugInImageElement.cpp:
(WebCore::addPlugInsFromNodeListMatchingPlugInOrigin):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::hasPlaceholderLabelOption):
(WebCore::HTMLSelectElement::value):
(WebCore::HTMLSelectElement::setValue):
(WebCore::HTMLSelectElement::saveLastSelection):
(WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
(WebCore::HTMLSelectElement::updateListBoxSelection):
(WebCore::HTMLSelectElement::listBoxOnChange):
(WebCore::HTMLSelectElement::recalcListItems):
(WebCore::HTMLSelectElement::selectedIndex):
(WebCore::HTMLSelectElement::selectOption):
(WebCore::HTMLSelectElement::deselectItemsWithoutValidation):
(WebCore::HTMLSelectElement::saveFormControlState):
(WebCore::HTMLSelectElement::searchOptionsForValue):
(WebCore::HTMLSelectElement::restoreFormControlState):
(WebCore::HTMLSelectElement::appendFormData):
(WebCore::HTMLSelectElement::reset):
(WebCore::HTMLSelectElement::updateSelectedState):
(WebCore::HTMLSelectElement::lastSelectedListIndex):
(WebCore::HTMLSelectElement::optionAtIndex):
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::detailsElement):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::caption):
* html/HTMLTablePartElement.cpp:
(WebCore::HTMLTablePartElement::findParentTable):
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::rowIndex):
* html/HTMLTableRowsCollection.cpp:
(WebCore::HTMLTableRowsCollection::rowAfter):
(WebCore::HTMLTableRowsCollection::lastRow):
(WebCore::HTMLTableRowsCollection::customElementAfter):
* html/HTMLTableRowsCollection.h:
* html/HTMLTemplateElement.cpp:
(WebCore::HTMLTemplateElement::cloneNode):
* html/HTMLTextFormControlElement.cpp:
(WebCore::enclosingTextFormControl):
* html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::elementMatches):
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::descendentVideoElement):
(WebCore::ancestorVideoElement):
(WebCore::MediaDocument::replaceMediaElementTimerFired):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* html/RadioInputType.cpp:
(WebCore::RadioInputType::handleKeydownEvent):
(WebCore::RadioInputType::isKeyboardFocusable):
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::updateTickMarkValues):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::insert):
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::ownerDocumentForCurrentNode):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
* html/shadow/DetailsMarkerControl.cpp:
(WebCore::DetailsMarkerControl::rendererIsNeeded):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
* html/shadow/MeterShadowElement.cpp:
(WebCore::MeterShadowElement::meterElement):
* html/shadow/ProgressShadowElement.cpp:
(WebCore::ProgressShadowElement::progressElement):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
(WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
(WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::handleFallbackContent):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::requestObject):
* page/Chrome.cpp:
(WebCore::Chrome::setToolTip):
* page/DragController.cpp:
(WebCore::DragController::draggableElement):
* page/EventHandler.cpp:
(WebCore::isSubmitImage):
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocusDirectionally):
* page/FrameView.cpp:
(WebCore::FrameView::addEmbeddedObjectToUpdate):
(WebCore::FrameView::updateEmbeddedObject):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeFrame):
* page/SpatialNavigation.cpp:
(WebCore::FocusCandidate::FocusCandidate):
* page/ios/FrameIOS.mm:
(WebCore::ancestorRespondingToClickEvents):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::altDisplayString):
(WebCore::HitTestResult::absolutePDFURL):
(WebCore::HitTestResult::enterFullscreenForVideo):
(WebCore::HitTestResult::mediaControlsEnabled):
(WebCore::HitTestResult::isLiveLink):
(WebCore::HitTestResult::isContentEditable):
* rendering/RenderButton.cpp:
(WebCore::RenderButton::updateFromElement):
* rendering/RenderCounter.cpp:
(WebCore::planCounter):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintContents):
(WebCore::RenderEmbeddedObject::layout):
* rendering/RenderFieldset.h:
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::inputElement):
(WebCore::RenderFileUploadControl::uploadButton):
* rendering/RenderFrame.cpp:
(WebCore::RenderFrame::frameElement):
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::frameSetElement):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::canvasElement):
* rendering/RenderIFrame.cpp:
(WebCore::RenderIFrame::iframeElement):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage):
(WebCore::RenderImage::paintAreaElementFocusRing):
(WebCore::RenderImage::paintIntoRect):
(WebCore::RenderImage::imageMap):
(WebCore::RenderImage::updateAltText):
* rendering/RenderLayerBacking.cpp:
(WebCore::canvasCompositingStrategy):
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::updateConfiguration):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::selectElement):
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::paintItemForeground):
(WebCore::RenderListBox::paintItemBackground):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::calcValue):
(WebCore::RenderListItem::updateListMarkerNumbers):
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::marqueeSpeed):
* rendering/RenderMenuList.cpp:
(WebCore::selectedOptionCount):
(RenderMenuList::selectElement):
(RenderMenuList::updateOptionsWidth):
(RenderMenuList::setTextFromOption):
(RenderMenuList::itemText):
(RenderMenuList::itemIsSelected):
* rendering/RenderMeter.cpp:
(WebCore::RenderMeter::meterElement):
* rendering/RenderProgress.cpp:
(WebCore::RenderProgress::progressElement):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::element):
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::plugInImageElement):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::textFormControlElement):
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::textAreaElement):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::inputElement):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paintSliderTicks):
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::videoElement):
* svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::imageForRenderer):
* svg/svgtags.in:
Generate helpers to SVGAElement so that isSVGAElement() can be used
instead of hasTagName(SVGNames::aTag). I did such update in this
patch.

* testing/Internals.cpp:
(WebCore::Internals::visiblePlaceholder):
(WebCore::Internals::wasLastChangeUserEdit):
(WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
(WebCore::Internals::isSelectPopupVisible):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):

Source/WebKit/ios:

Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element().

* WebCoreSupport/WebChromeClientIOS.mm:
(WebChromeClientIOS::focusedElementChanged):

Source/WebKit/mac:

Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element().

* DOM/WebDOMOperations.mm:
(-[DOMHTMLInputElement _setAutofilled:]):
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::focusedElementChanged):
* WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::textFieldDidBeginEditing):
(WebEditorClient::textFieldDidEndEditing):
(WebEditorClient::textDidChangeInTextField):
(WebEditorClient::doTextFieldCommandFromEvent):
(WebEditorClient::textWillBeDeletedInTextField):
(WebEditorClient::textDidChangeInTextArea):
* WebView/WebHTMLRepresentation.mm:
(inputElementFromDOMElement):

Source/WebKit/win:

Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element().

* DOMHTMLClasses.cpp:
(DOMHTMLDocument::URL):
(DOMHTMLDocument::body):
(DOMHTMLDocument::forms):
(DOMHTMLFormElement::action):
(DOMHTMLFormElement::method):
(DOMHTMLSelectElement::options):
(DOMHTMLSelectElement::activateItemAtIndex):
(DOMHTMLOptionElement::text):
(DOMHTMLOptionElement::label):
(DOMHTMLInputElement::form):
(DOMHTMLInputElement::disabled):
(DOMHTMLInputElement::readOnly):
(DOMHTMLInputElement::setType):
(DOMHTMLInputElement::value):
(DOMHTMLInputElement::setValue):
(DOMHTMLInputElement::setValueForUser):
(DOMHTMLInputElement::select):
(DOMHTMLInputElement::setSelectionStart):
(DOMHTMLInputElement::selectionStart):
(DOMHTMLInputElement::setSelectionEnd):
(DOMHTMLInputElement::selectionEnd):
(DOMHTMLInputElement::isTextField):
(DOMHTMLInputElement::replaceCharactersInRange):
(DOMHTMLInputElement::selectedRange):
(DOMHTMLInputElement::setAutofilled):
(DOMHTMLInputElement::isAutofilled):
(DOMHTMLInputElement::isUserEdited):
(DOMHTMLTextAreaElement::form):
(DOMHTMLTextAreaElement::value):
(DOMHTMLTextAreaElement::setValue):
(DOMHTMLTextAreaElement::select):
(DOMHTMLTextAreaElement::isUserEdited):
(DOMHTMLIFrameElement::contentFrame):
* WebFrame.cpp:
(formElementFromDOMElement):
(inputElementFromDOMElement):

Source/WebKit2:

Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element().

* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementValueForUser):
(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutofilled):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutofilled):
(WebKit::InjectedBundleNodeHandle::htmlInputElementLastChangeWasUserEdit):
(WebKit::InjectedBundleNodeHandle::htmlTextAreaElementLastChangeWasUserEdit):
(WebKit::InjectedBundleNodeHandle::isTextField):
(WebKit::InjectedBundleNodeHandle::htmlTableCellElementCellAbove):
(WebKit::InjectedBundleNodeHandle::htmlIFrameElementContentFrame):
* WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
(WebKit::PDFPluginChoiceAnnotation::commit):
* WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
(WebKit::PDFPluginTextAnnotation::createAnnotationElement):
(WebKit::PDFPluginTextAnnotation::value):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::initializePlugin):
(WebKit::PluginView::pluginSnapshotTimerFired):
(WebKit::PluginView::pluginDidReceiveUserInteraction):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::focusedElementChanged):
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::textFieldDidBeginEditing):
(WebKit::WebEditorClient::textFieldDidEndEditing):
(WebKit::WebEditorClient::textDidChangeInTextField):
(WebKit::WebEditorClient::textDidChangeInTextArea):
(WebKit::WebEditorClient::doTextFieldCommandFromEvent):
(WebKit::WebEditorClient::textWillBeDeletedInTextField):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::setAssistedNodeValue):
(WebKit::WebPage::setAssistedNodeValueAsNumber):
(WebKit::WebPage::setAssistedNodeSelectedIndex):
(WebKit::isAssistableNode): Deleted.
(WebKit::WebPage::getAssistedNodeInformation): Deleted.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAXObjectCachecpp">trunk/Source/WebCore/accessibility/AXObjectCache.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityListBoxcpp">trunk/Source/WebCore/accessibility/AccessibilityListBox.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityListBoxOptioncpp">trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityMediaControlscpp">trunk/Source/WebCore/accessibility/AccessibilityMediaControls.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityMenuListOptioncpp">trunk/Source/WebCore/accessibility/AccessibilityMenuListOption.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityMenuListPopupcpp">trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityNodeObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilitySlidercpp">trunk/Source/WebCore/accessibility/AccessibilitySlider.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityTablecpp">trunk/Source/WebCore/accessibility/AccessibilityTable.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityatkAXObjectCacheAtkcpp">trunk/Source/WebCore/accessibility/atk/AXObjectCacheAtk.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityatkWebKitAccessibleInterfaceSelectioncpp">trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceSelection.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityatkWebKitAccessibleInterfaceTablecpp">trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceTable.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityatkWebKitAccessibleWrapperAtkcpp">trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityiosAccessibilityObjectIOSmm">trunk/Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMWindowCustomcpp">trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLDocumentCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLDocumentCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLFrameSetElementCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSNodeCustomcpp">trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorecssSelectorCheckercpp">trunk/Source/WebCore/css/SelectorChecker.cpp</a></li>
<li><a href="#trunkSourceWebCorecssSelectorCheckerTestFunctionsh">trunk/Source/WebCore/css/SelectorCheckerTestFunctions.h</a></li>
<li><a href="#trunkSourceWebCorecssStyleResolvercpp">trunk/Source/WebCore/css/StyleResolver.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStyleSheetListcpp">trunk/Source/WebCore/css/StyleSheetList.cpp</a></li>
<li><a href="#trunkSourceWebCorecssjitSelectorCompilercpp">trunk/Source/WebCore/cssjit/SelectorCompiler.cpp</a></li>
<li><a href="#trunkSourceWebCoredomCurrentScriptIncrementerh">trunk/Source/WebCore/dom/CurrentScriptIncrementer.h</a></li>
<li><a href="#trunkSourceWebCoredomDataTransfercpp">trunk/Source/WebCore/dom/DataTransfer.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentOrderedMapcpp">trunk/Source/WebCore/dom/DocumentOrderedMap.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentStyleSheetCollectioncpp">trunk/Source/WebCore/dom/DocumentStyleSheetCollection.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomEventDispatchercpp">trunk/Source/WebCore/dom/EventDispatcher.cpp</a></li>
<li><a href="#trunkSourceWebCoredomScriptElementcpp">trunk/Source/WebCore/dom/ScriptElement.cpp</a></li>
<li><a href="#trunkSourceWebCoredomVisitedLinkStatecpp">trunk/Source/WebCore/dom/VisitedLinkState.cpp</a></li>
<li><a href="#trunkSourceWebCoredommake_namespl">trunk/Source/WebCore/dom/make_names.pl</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorcpp">trunk/Source/WebCore/editing/Editor.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingFrameSelectioncpp">trunk/Source/WebCore/editing/FrameSelection.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingMarkupAccumulatorcpp">trunk/Source/WebCore/editing/MarkupAccumulator.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingReplaceSelectionCommandcpp">trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingVisibleSelectioncpp">trunk/Source/WebCore/editing/VisibleSelection.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingcocoaHTMLConvertermm">trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingiosEditorIOSmm">trunk/Source/WebCore/editing/ios/EditorIOS.mm</a></li>
<li><a href="#trunkSourceWebCorehtmlColorInputTypecpp">trunk/Source/WebCore/html/ColorInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlFTPDirectoryDocumentcpp">trunk/Source/WebCore/html/FTPDirectoryDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlFormAssociatedElementcpp">trunk/Source/WebCore/html/FormAssociatedElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAnchorElementcpp">trunk/Source/WebCore/html/HTMLAnchorElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAreaElementcpp">trunk/Source/WebCore/html/HTMLAreaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLCollectioncpp">trunk/Source/WebCore/html/HTMLCollection.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLElementcpp">trunk/Source/WebCore/html/HTMLElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLEmbedElementcpp">trunk/Source/WebCore/html/HTMLEmbedElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFieldSetElementcpp">trunk/Source/WebCore/html/HTMLFieldSetElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormControlElementcpp">trunk/Source/WebCore/html/HTMLFormControlElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormControlsCollectioncpp">trunk/Source/WebCore/html/HTMLFormControlsCollection.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormElementcpp">trunk/Source/WebCore/html/HTMLFormElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLImageElementcpp">trunk/Source/WebCore/html/HTMLImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLImageLoadercpp">trunk/Source/WebCore/html/HTMLImageLoader.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementcpp">trunk/Source/WebCore/html/HTMLInputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLKeygenElementcpp">trunk/Source/WebCore/html/HTMLKeygenElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLLegendElementcpp">trunk/Source/WebCore/html/HTMLLegendElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLNameCollectioncpp">trunk/Source/WebCore/html/HTMLNameCollection.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLObjectElementcpp">trunk/Source/WebCore/html/HTMLObjectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLOptGroupElementcpp">trunk/Source/WebCore/html/HTMLOptGroupElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLOptionElementcpp">trunk/Source/WebCore/html/HTMLOptionElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLOptionsCollectioncpp">trunk/Source/WebCore/html/HTMLOptionsCollection.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLOptionsCollectionh">trunk/Source/WebCore/html/HTMLOptionsCollection.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLPlugInImageElementcpp">trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementcpp">trunk/Source/WebCore/html/HTMLSelectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSummaryElementcpp">trunk/Source/WebCore/html/HTMLSummaryElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableElementcpp">trunk/Source/WebCore/html/HTMLTableElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTablePartElementcpp">trunk/Source/WebCore/html/HTMLTablePartElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableRowElementcpp">trunk/Source/WebCore/html/HTMLTableRowElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableRowsCollectioncpp">trunk/Source/WebCore/html/HTMLTableRowsCollection.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableRowsCollectionh">trunk/Source/WebCore/html/HTMLTableRowsCollection.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTemplateElementcpp">trunk/Source/WebCore/html/HTMLTemplateElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTextFormControlElementcpp">trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlImageDocumentcpp">trunk/Source/WebCore/html/ImageDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlLabelsNodeListcpp">trunk/Source/WebCore/html/LabelsNodeList.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlMediaDocumentcpp">trunk/Source/WebCore/html/MediaDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlPluginDocumentcpp">trunk/Source/WebCore/html/PluginDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlRadioInputTypecpp">trunk/Source/WebCore/html/RadioInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlRadioNodeListcpp">trunk/Source/WebCore/html/RadioNodeList.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlRangeInputTypecpp">trunk/Source/WebCore/html/RangeInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLConstructionSitecpp">trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLTreeBuildercpp">trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowDetailsMarkerControlcpp">trunk/Source/WebCore/html/shadow/DetailsMarkerControl.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlElementscpp">trunk/Source/WebCore/html/shadow/MediaControlElements.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMeterShadowElementcpp">trunk/Source/WebCore/html/shadow/MeterShadowElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowProgressShadowElementcpp">trunk/Source/WebCore/html/shadow/ProgressShadowElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowTextControlInnerElementscpp">trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorCSSAgentcpp">trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMAgentcpp">trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFormSubmissioncpp">trunk/Source/WebCore/loader/FormSubmission.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoadercpp">trunk/Source/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderImageLoadercpp">trunk/Source/WebCore/loader/ImageLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderSubframeLoadercpp">trunk/Source/WebCore/loader/SubframeLoader.cpp</a></li>
<li><a href="#trunkSourceWebCorepageChromecpp">trunk/Source/WebCore/page/Chrome.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDragControllercpp">trunk/Source/WebCore/page/DragController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlercpp">trunk/Source/WebCore/page/EventHandler.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFocusControllercpp">trunk/Source/WebCore/page/FocusController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewcpp">trunk/Source/WebCore/page/FrameView.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageSerializercpp">trunk/Source/WebCore/page/PageSerializer.cpp</a></li>
<li><a href="#trunkSourceWebCorepageSpatialNavigationcpp">trunk/Source/WebCore/page/SpatialNavigation.cpp</a></li>
<li><a href="#trunkSourceWebCorepageiosFrameIOSmm">trunk/Source/WebCore/page/ios/FrameIOS.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingHitTestResultcpp">trunk/Source/WebCore/rendering/HitTestResult.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderButtoncpp">trunk/Source/WebCore/rendering/RenderButton.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderCountercpp">trunk/Source/WebCore/rendering/RenderCounter.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderEmbeddedObjectcpp">trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFieldseth">trunk/Source/WebCore/rendering/RenderFieldset.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFileUploadControlcpp">trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFramecpp">trunk/Source/WebCore/rendering/RenderFrame.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFrameSetcpp">trunk/Source/WebCore/rendering/RenderFrameSet.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderHTMLCanvascpp">trunk/Source/WebCore/rendering/RenderHTMLCanvas.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderIFramecpp">trunk/Source/WebCore/rendering/RenderIFrame.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderImagecpp">trunk/Source/WebCore/rendering/RenderImage.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerBackingcpp">trunk/Source/WebCore/rendering/RenderLayerBacking.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerCompositorcpp">trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderListBoxcpp">trunk/Source/WebCore/rendering/RenderListBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderListItemcpp">trunk/Source/WebCore/rendering/RenderListItem.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMarqueecpp">trunk/Source/WebCore/rendering/RenderMarquee.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMenuListcpp">trunk/Source/WebCore/rendering/RenderMenuList.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMetercpp">trunk/Source/WebCore/rendering/RenderMeter.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderProgresscpp">trunk/Source/WebCore/rendering/RenderProgress.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderSlidercpp">trunk/Source/WebCore/rendering/RenderSlider.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderSnapshottedPlugIncpp">trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlcpp">trunk/Source/WebCore/rendering/RenderTextControl.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlMultiLinecpp">trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlSingleLinecpp">trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemecpp">trunk/Source/WebCore/rendering/RenderTheme.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeIOSmm">trunk/Source/WebCore/rendering/RenderThemeIOS.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeMacmm">trunk/Source/WebCore/rendering/RenderThemeMac.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderVideocpp">trunk/Source/WebCore/rendering/RenderVideo.cpp</a></li>
<li><a href="#trunkSourceWebCoresvggraphicsSVGImageCachecpp">trunk/Source/WebCore/svg/graphics/SVGImageCache.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgsvgtagsin">trunk/Source/WebCore/svg/svgtags.in</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlparserXMLDocumentParserLibxml2cpp">trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp</a></li>
<li><a href="#trunkSourceWebKitiosChangeLog">trunk/Source/WebKit/ios/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitiosWebCoreSupportWebChromeClientIOSmm">trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.mm</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacDOMWebDOMOperationsmm">trunk/Source/WebKit/mac/DOM/WebDOMOperations.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebChromeClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebEditorClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebHTMLRepresentationmm">trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinDOMHTMLClassescpp">trunk/Source/WebKit/win/DOMHTMLClasses.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebFramecpp">trunk/Source/WebKit/win/WebFrame.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleDOMInjectedBundleNodeHandlecpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFPDFPluginChoiceAnnotationmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFPDFPluginTextAnnotationmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginViewcpp">trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebEditorClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageiosWebPageIOSmm">trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/ChangeLog        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1,5 +1,421 @@
</span><span class="cx"> 2014-09-23  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element()
+        https://bugs.webkit.org/show_bug.cgi?id=137007
+
+        Reviewed by Benjamin Poulain.
+
+        Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element() and drop
+        transition macros for toHTML*Element().
+
+        This patch also cleans up the surrounding code.
+
+        No new tests, no behavior change.
+
+        * accessibility/AXObjectCache.cpp:
+        (WebCore::AXObjectCache::focusedUIElementForPage):
+        (WebCore::AXObjectCache::labelChanged):
+        * accessibility/AccessibilityListBox.cpp:
+        (WebCore::AccessibilityListBox::canSetSelectedChildrenAttribute):
+        (WebCore::AccessibilityListBox::addChildren):
+        * accessibility/AccessibilityListBoxOption.cpp:
+        (WebCore::AccessibilityListBoxOption::isSelected):
+        (WebCore::AccessibilityListBoxOption::stringValue):
+        (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
+        * accessibility/AccessibilityMediaControls.cpp:
+        (WebCore::AccessibilityMediaTimeline::valueDescription):
+        * accessibility/AccessibilityMenuListOption.cpp:
+        (WebCore::AccessibilityMenuListOption::isEnabled):
+        (WebCore::AccessibilityMenuListOption::isSelected):
+        (WebCore::AccessibilityMenuListOption::setSelected):
+        (WebCore::AccessibilityMenuListOption::stringValue):
+        * accessibility/AccessibilityMenuListPopup.cpp:
+        (WebCore::AccessibilityMenuListPopup::addChildren):
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
+        (WebCore::AccessibilityNodeObject::isNativeTextControl):
+        (WebCore::AccessibilityNodeObject::isNativeImage):
+        (WebCore::AccessibilityNodeObject::isInputImage):
+        (WebCore::AccessibilityNodeObject::isMultiSelectable):
+        (WebCore::AccessibilityNodeObject::isReadOnly):
+        (WebCore::AccessibilityNodeObject::valueForRange):
+        (WebCore::AccessibilityNodeObject::maxValueForRange):
+        (WebCore::AccessibilityNodeObject::minValueForRange):
+        (WebCore::isNodeActionElement):
+        (WebCore::AccessibilityNodeObject::alternativeText):
+        (WebCore::AccessibilityNodeObject::visibleText):
+        (WebCore::AccessibilityNodeObject::title):
+        (WebCore::AccessibilityNodeObject::text):
+        (WebCore::AccessibilityNodeObject::stringValue):
+        (WebCore::AccessibilityNodeObject::colorValue):
+        (WebCore::accessibleNameForNode):
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::isFileUploadButton):
+        (WebCore::AccessibilityRenderObject::stringValue):
+        (WebCore::AccessibilityRenderObject::labelElementContainer):
+        (WebCore::AccessibilityRenderObject::internalLinkElement):
+        (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
+        (WebCore::AccessibilityRenderObject::url):
+        (WebCore::AccessibilityRenderObject::setValue):
+        (WebCore::AccessibilityRenderObject::getDocumentLinks):
+        (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
+        (WebCore::AccessibilityRenderObject::accessibilityHitTest):
+        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+        (WebCore::AccessibilityRenderObject::addTextFieldChildren):
+        (WebCore::AccessibilityRenderObject::stringValueForMSAA):
+        (WebCore::AccessibilityRenderObject::isLinked):
+        * accessibility/AccessibilitySlider.cpp:
+        (WebCore::AccessibilitySlider::inputElement):
+        (WebCore::AccessibilitySliderThumb::elementRect):
+        * accessibility/AccessibilityTable.cpp:
+        (WebCore::AccessibilityTable::tableElement):
+        (WebCore::AccessibilityTable::title):
+        * accessibility/atk/AXObjectCacheAtk.cpp:
+        (WebCore::notifyChildrenSelectionChange):
+        * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
+        (optionFromSelection):
+        (webkitAccessibleSelectionGetSelectionCount):
+        * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
+        (webkitAccessibleTableGetCaption):
+        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
+        (webkitAccessibleGetDescription):
+        * accessibility/ios/AccessibilityObjectIOS.mm:
+        (WebCore::AccessibilityObject::accessibilityPasswordFieldLength):
+        * bindings/js/JSDOMWindowCustom.cpp:
+        (WebCore::namedItemGetter):
+        (WebCore::JSDOMWindow::getOwnPropertySlot):
+        (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
+        * bindings/js/JSHTMLDocumentCustom.cpp:
+        (WebCore::JSHTMLDocument::nameGetter):
+        * bindings/js/JSHTMLFrameSetElementCustom.cpp:
+        (WebCore::JSHTMLFrameSetElement::nameGetter):
+        * bindings/js/JSNodeCustom.cpp:
+        (WebCore::isReachableFromDOM):
+        * css/SelectorChecker.cpp:
+        (WebCore::SelectorChecker::checkOne):
+        * css/SelectorCheckerTestFunctions.h:
+        (WebCore::isChecked):
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::adjustRenderStyle):
+        * css/StyleSheetList.cpp:
+        (WebCore::StyleSheetList::getNamedItem):
+        * cssjit/SelectorCompiler.cpp:
+        (WebCore::SelectorCompiler::makeContextStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
+        (WebCore::SelectorCompiler::makeElementStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
+        (WebCore::SelectorCompiler::isPlaceholderShown):
+        * dom/CurrentScriptIncrementer.h:
+        (WebCore::CurrentScriptIncrementer::CurrentScriptIncrementer):
+        * dom/DataTransfer.cpp:
+        (WebCore::DataTransfer::setDragImage):
+        * dom/Document.cpp:
+        (WebCore::Document::setTitle):
+        (WebCore::Document::processHttpEquiv):
+        (WebCore::Document::iconURLs):
+        * dom/DocumentOrderedMap.cpp:
+        (WebCore::keyMatchesMapName):
+        (WebCore::keyMatchesLowercasedMapName):
+        (WebCore::keyMatchesLowercasedUsemap):
+        (WebCore::DocumentOrderedMap::getElementByMapName):
+        (WebCore::DocumentOrderedMap::getElementByLowercasedMapName):
+        (WebCore::DocumentOrderedMap::getElementByLowercasedUsemap):
+        (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
+        * dom/DocumentStyleSheetCollection.cpp:
+        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
+        * dom/Element.cpp:
+        (WebCore::Element::insertedInto):
+        (WebCore::Element::removedFrom):
+        (WebCore::Element::updateName):
+        (WebCore::Element::updateId):
+        (WebCore::Element::updateLabel):
+        (WebCore::Element::ensureCachedHTMLCollection):
+        * dom/EventDispatcher.cpp:
+        (WebCore::EventDispatcher::dispatchEvent):
+        * dom/ScriptElement.cpp:
+        (WebCore::toScriptElementIfPossible):
+        * dom/VisitedLinkState.cpp:
+        (WebCore::linkHashForElement):
+        (WebCore::VisitedLinkState::determineLinkStateSlowCase):
+        * dom/make_names.pl:
+        (printTypeHelpers):
+        * editing/Editor.cpp:
+        (WebCore::Editor::selectionForCommand):
+        (WebCore::imageElementFromImageDocument):
+        (WebCore::findFirstMarkable):
+        * editing/FrameSelection.cpp:
+        (WebCore::FrameSelection::selectAll):
+        (WebCore::scanForForm):
+        * editing/MarkupAccumulator.cpp:
+        (WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
+        * editing/ReplaceSelectionCommand.cpp:
+        (WebCore::ReplaceSelectionCommand::shouldPerformSmartReplace):
+        * editing/VisibleSelection.cpp:
+        (WebCore::VisibleSelection::nonBoundaryShadowTreeRootNode):
+        (WebCore::VisibleSelection::isInPasswordField):
+        * editing/cocoa/HTMLConverter.mm:
+        (HTMLConverter::_processElement):
+        * editing/ios/EditorIOS.mm:
+        (WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
+        * editing/markup.cpp:
+        (WebCore::isPlainTextMarkup):
+        * html/ColorInputType.cpp:
+        (WebCore::ColorInputType::suggestions):
+        * html/FTPDirectoryDocument.cpp:
+        (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
+        (WebCore::FTPDirectoryDocumentParser::createBasicDocument):
+        * html/FormAssociatedElement.cpp:
+        (WebCore::FormAssociatedElement::findAssociatedForm):
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::appendServerMapMousePosition):
+        * html/HTMLAreaElement.cpp:
+        (WebCore::HTMLAreaElement::imageElement):
+        * html/HTMLCollection.cpp:
+        (WebCore::isMatchingElement):
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::matchesReadWritePseudoClass):
+        (WebCore::HTMLElement::setInnerHTML):
+        (WebCore::HTMLElement::directionality):
+        * html/HTMLEmbedElement.cpp:
+        (WebCore::HTMLEmbedElement::rendererIsNeeded):
+        * html/HTMLFieldSetElement.cpp:
+        (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
+        * html/HTMLFormControlElement.cpp:
+        (WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor):
+        (WebCore::shouldAutofocus):
+        * html/HTMLFormControlsCollection.cpp:
+        (WebCore::HTMLFormControlsCollection::formControlElements):
+        (WebCore::HTMLFormControlsCollection::formImageElements):
+        * html/HTMLFormElement.cpp:
+        (WebCore::HTMLFormElement::getTextFieldValues):
+        (WebCore::HTMLFormElement::assertItemCanBeInPastNamesMap):
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::parseAttribute):
+        * html/HTMLImageLoader.cpp:
+        (WebCore::HTMLImageLoader::notifyFinished):
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::dataList):
+        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
+        * html/HTMLKeygenElement.cpp:
+        (WebCore::HTMLKeygenElement::shadowSelect):
+        * html/HTMLLegendElement.cpp:
+        (WebCore::HTMLLegendElement::virtualForm):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::parseAttribute):
+        * html/HTMLNameCollection.cpp:
+        (WebCore::DocumentNameCollection::elementMatchesIfIdAttributeMatch):
+        (WebCore::DocumentNameCollection::elementMatchesIfNameAttributeMatch):
+        (WebCore::DocumentNameCollection::elementMatches):
+        * html/HTMLObjectElement.cpp:
+        (WebCore::HTMLObjectElement::updateDocNamedItem):
+        (WebCore::HTMLObjectElement::containsJavaApplet):
+        * html/HTMLOptGroupElement.cpp:
+        (WebCore::HTMLOptGroupElement::recalcSelectOptions):
+        (WebCore::HTMLOptGroupElement::ownerSelectElement):
+        * html/HTMLOptionElement.cpp:
+        (WebCore::HTMLOptionElement::ownerDataListElement):
+        (WebCore::HTMLOptionElement::ownerSelectElement):
+        * html/HTMLOptionsCollection.cpp:
+        (WebCore::HTMLOptionsCollection::add):
+        * html/HTMLOptionsCollection.h:
+        * html/HTMLPlugInImageElement.cpp:
+        (WebCore::addPlugInsFromNodeListMatchingPlugInOrigin):
+        * html/HTMLSelectElement.cpp:
+        (WebCore::HTMLSelectElement::hasPlaceholderLabelOption):
+        (WebCore::HTMLSelectElement::value):
+        (WebCore::HTMLSelectElement::setValue):
+        (WebCore::HTMLSelectElement::saveLastSelection):
+        (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
+        (WebCore::HTMLSelectElement::updateListBoxSelection):
+        (WebCore::HTMLSelectElement::listBoxOnChange):
+        (WebCore::HTMLSelectElement::recalcListItems):
+        (WebCore::HTMLSelectElement::selectedIndex):
+        (WebCore::HTMLSelectElement::selectOption):
+        (WebCore::HTMLSelectElement::deselectItemsWithoutValidation):
+        (WebCore::HTMLSelectElement::saveFormControlState):
+        (WebCore::HTMLSelectElement::searchOptionsForValue):
+        (WebCore::HTMLSelectElement::restoreFormControlState):
+        (WebCore::HTMLSelectElement::appendFormData):
+        (WebCore::HTMLSelectElement::reset):
+        (WebCore::HTMLSelectElement::updateSelectedState):
+        (WebCore::HTMLSelectElement::lastSelectedListIndex):
+        (WebCore::HTMLSelectElement::optionAtIndex):
+        (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
+        * html/HTMLSummaryElement.cpp:
+        (WebCore::HTMLSummaryElement::detailsElement):
+        * html/HTMLTableElement.cpp:
+        (WebCore::HTMLTableElement::caption):
+        * html/HTMLTablePartElement.cpp:
+        (WebCore::HTMLTablePartElement::findParentTable):
+        * html/HTMLTableRowElement.cpp:
+        (WebCore::HTMLTableRowElement::rowIndex):
+        * html/HTMLTableRowsCollection.cpp:
+        (WebCore::HTMLTableRowsCollection::rowAfter):
+        (WebCore::HTMLTableRowsCollection::lastRow):
+        (WebCore::HTMLTableRowsCollection::customElementAfter):
+        * html/HTMLTableRowsCollection.h:
+        * html/HTMLTemplateElement.cpp:
+        (WebCore::HTMLTemplateElement::cloneNode):
+        * html/HTMLTextFormControlElement.cpp:
+        (WebCore::enclosingTextFormControl):
+        * html/ImageDocument.cpp:
+        (WebCore::ImageDocument::createDocumentStructure):
+        * html/LabelsNodeList.cpp:
+        (WebCore::LabelsNodeList::elementMatches):
+        * html/MediaDocument.cpp:
+        (WebCore::MediaDocumentParser::createDocumentStructure):
+        (WebCore::descendentVideoElement):
+        (WebCore::ancestorVideoElement):
+        (WebCore::MediaDocument::replaceMediaElementTimerFired):
+        * html/PluginDocument.cpp:
+        (WebCore::PluginDocumentParser::createDocumentStructure):
+        * html/RadioInputType.cpp:
+        (WebCore::RadioInputType::handleKeydownEvent):
+        (WebCore::RadioInputType::isKeyboardFocusable):
+        * html/RadioNodeList.cpp:
+        (WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
+        * html/RangeInputType.cpp:
+        (WebCore::RangeInputType::updateTickMarkValues):
+        * html/parser/HTMLConstructionSite.cpp:
+        (WebCore::insert):
+        (WebCore::HTMLConstructionSite::insertTextNode):
+        (WebCore::HTMLConstructionSite::ownerDocumentForCurrentNode):
+        * html/parser/HTMLTreeBuilder.cpp:
+        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
+        * html/shadow/DetailsMarkerControl.cpp:
+        (WebCore::DetailsMarkerControl::rendererIsNeeded):
+        * html/shadow/MediaControlElements.cpp:
+        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
+        * html/shadow/MeterShadowElement.cpp:
+        (WebCore::MeterShadowElement::meterElement):
+        * html/shadow/ProgressShadowElement.cpp:
+        (WebCore::ProgressShadowElement::progressElement):
+        * html/shadow/TextControlInnerElements.cpp:
+        (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
+        (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
+        (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents):
+        * inspector/InspectorCSSAgent.cpp:
+        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
+        * inspector/InspectorDOMAgent.cpp:
+        (WebCore::InspectorDOMAgent::buildObjectForNode):
+        * loader/FormSubmission.cpp:
+        (WebCore::FormSubmission::create):
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::handleFallbackContent):
+        * loader/ImageLoader.cpp:
+        (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
+        * loader/SubframeLoader.cpp:
+        (WebCore::SubframeLoader::requestObject):
+        * page/Chrome.cpp:
+        (WebCore::Chrome::setToolTip):
+        * page/DragController.cpp:
+        (WebCore::DragController::draggableElement):
+        * page/EventHandler.cpp:
+        (WebCore::isSubmitImage):
+        * page/FocusController.cpp:
+        (WebCore::FocusController::advanceFocusDirectionally):
+        * page/FrameView.cpp:
+        (WebCore::FrameView::addEmbeddedObjectToUpdate):
+        (WebCore::FrameView::updateEmbeddedObject):
+        * page/PageSerializer.cpp:
+        (WebCore::PageSerializer::serializeFrame):
+        * page/SpatialNavigation.cpp:
+        (WebCore::FocusCandidate::FocusCandidate):
+        * page/ios/FrameIOS.mm:
+        (WebCore::ancestorRespondingToClickEvents):
+        * rendering/HitTestResult.cpp:
+        (WebCore::HitTestResult::altDisplayString):
+        (WebCore::HitTestResult::absolutePDFURL):
+        (WebCore::HitTestResult::enterFullscreenForVideo):
+        (WebCore::HitTestResult::mediaControlsEnabled):
+        (WebCore::HitTestResult::isLiveLink):
+        (WebCore::HitTestResult::isContentEditable):
+        * rendering/RenderButton.cpp:
+        (WebCore::RenderButton::updateFromElement):
+        * rendering/RenderCounter.cpp:
+        (WebCore::planCounter):
+        * rendering/RenderEmbeddedObject.cpp:
+        (WebCore::RenderEmbeddedObject::paintContents):
+        (WebCore::RenderEmbeddedObject::layout):
+        * rendering/RenderFieldset.h:
+        * rendering/RenderFileUploadControl.cpp:
+        (WebCore::RenderFileUploadControl::inputElement):
+        (WebCore::RenderFileUploadControl::uploadButton):
+        * rendering/RenderFrame.cpp:
+        (WebCore::RenderFrame::frameElement):
+        * rendering/RenderFrameSet.cpp:
+        (WebCore::RenderFrameSet::frameSetElement):
+        * rendering/RenderHTMLCanvas.cpp:
+        (WebCore::RenderHTMLCanvas::canvasElement):
+        * rendering/RenderIFrame.cpp:
+        (WebCore::RenderIFrame::iframeElement):
+        * rendering/RenderImage.cpp:
+        (WebCore::RenderImage::RenderImage):
+        (WebCore::RenderImage::paintAreaElementFocusRing):
+        (WebCore::RenderImage::paintIntoRect):
+        (WebCore::RenderImage::imageMap):
+        (WebCore::RenderImage::updateAltText):
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::canvasCompositingStrategy):
+        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
+        (WebCore::RenderLayerBacking::updateConfiguration):
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
+        * rendering/RenderListBox.cpp:
+        (WebCore::RenderListBox::selectElement):
+        (WebCore::RenderListBox::updateFromElement):
+        (WebCore::RenderListBox::paintItemForeground):
+        (WebCore::RenderListBox::paintItemBackground):
+        * rendering/RenderListItem.cpp:
+        (WebCore::RenderListItem::calcValue):
+        (WebCore::RenderListItem::updateListMarkerNumbers):
+        * rendering/RenderMarquee.cpp:
+        (WebCore::RenderMarquee::marqueeSpeed):
+        * rendering/RenderMenuList.cpp:
+        (WebCore::selectedOptionCount):
+        (RenderMenuList::selectElement):
+        (RenderMenuList::updateOptionsWidth):
+        (RenderMenuList::setTextFromOption):
+        (RenderMenuList::itemText):
+        (RenderMenuList::itemIsSelected):
+        * rendering/RenderMeter.cpp:
+        (WebCore::RenderMeter::meterElement):
+        * rendering/RenderProgress.cpp:
+        (WebCore::RenderProgress::progressElement):
+        * rendering/RenderSlider.cpp:
+        (WebCore::RenderSlider::element):
+        * rendering/RenderSnapshottedPlugIn.cpp:
+        (WebCore::RenderSnapshottedPlugIn::plugInImageElement):
+        * rendering/RenderTextControl.cpp:
+        (WebCore::RenderTextControl::textFormControlElement):
+        * rendering/RenderTextControlMultiLine.cpp:
+        (WebCore::RenderTextControlMultiLine::textAreaElement):
+        * rendering/RenderTextControlSingleLine.cpp:
+        (WebCore::RenderTextControlSingleLine::inputElement):
+        * rendering/RenderTheme.cpp:
+        (WebCore::RenderTheme::paintSliderTicks):
+        * rendering/RenderThemeIOS.mm:
+        (WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
+        * rendering/RenderThemeMac.mm:
+        (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
+        (WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
+        * rendering/RenderVideo.cpp:
+        (WebCore::RenderVideo::videoElement):
+        * svg/graphics/SVGImageCache.cpp:
+        (WebCore::SVGImageCache::imageForRenderer):
+        * svg/svgtags.in:
+        Generate helpers to SVGAElement so that isSVGAElement() can be used
+        instead of hasTagName(SVGNames::aTag). I did such update in this
+        patch.
+
+        * testing/Internals.cpp:
+        (WebCore::Internals::visiblePlaceholder):
+        (WebCore::Internals::wasLastChangeUserEdit):
+        (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
+        (WebCore::Internals::isSelectPopupVisible):
+        * xml/parser/XMLDocumentParserLibxml2.cpp:
+        (WebCore::XMLDocumentParser::startElementNs):
+
+2014-09-23  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Have DataTransfer::files() return a reference
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=137039
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAXObjectCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AXObjectCache.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AXObjectCache.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -177,7 +177,7 @@
</span><span class="cx">     Document* focusedDocument = page-&gt;focusController().focusedOrMainFrame().document();
</span><span class="cx">     Element* focusedElement = focusedDocument-&gt;focusedElement();
</span><span class="cx">     if (focusedElement &amp;&amp; isHTMLAreaElement(focusedElement))
</span><del>-        return focusedImageMapUIElement(toHTMLAreaElement(focusedElement));
</del><ins>+        return focusedImageMapUIElement(downcast&lt;HTMLAreaElement&gt;(focusedElement));
</ins><span class="cx"> 
</span><span class="cx">     AccessibilityObject* obj = focusedDocument-&gt;axObjectCache()-&gt;getOrCreate(focusedElement ? static_cast&lt;Node*&gt;(focusedElement) : focusedDocument);
</span><span class="cx">     if (!obj)
</span><span class="lines">@@ -948,7 +948,7 @@
</span><span class="cx"> void AXObjectCache::labelChanged(Element* element)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isHTMLLabelElement(element));
</span><del>-    HTMLElement* correspondingControl = toHTMLLabelElement(element)-&gt;control();
</del><ins>+    HTMLElement* correspondingControl = downcast&lt;HTMLLabelElement&gt;(element)-&gt;control();
</ins><span class="cx">     textChanged(correspondingControl);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityListBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityListBox.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityListBox.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/AccessibilityListBox.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">     if (!selectNode)
</span><span class="cx">         return false;
</span><span class="cx">     
</span><del>-    return !toHTMLSelectElement(selectNode)-&gt;isDisabledFormControl();
</del><ins>+    return !downcast&lt;HTMLSelectElement&gt;(*selectNode).isDisabledFormControl();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void AccessibilityListBox::addChildren()
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx">     
</span><span class="cx">     m_haveChildren = true;
</span><span class="cx">     
</span><del>-    for (const auto&amp; listItem : toHTMLSelectElement(selectNode)-&gt;listItems()) {
</del><ins>+    for (const auto&amp; listItem : downcast&lt;HTMLSelectElement&gt;(*selectNode).listItems()) {
</ins><span class="cx">         // The cast to HTMLElement below is safe because the only other possible listItem type
</span><span class="cx">         // would be a WMLElement, but WML builds don't use accessibility features at all.
</span><span class="cx">         AccessibilityObject* listOption = listBoxOptionAccessibilityObject(listItem);
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityListBoxOptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx">     if (!isHTMLOptionElement(m_optionElement))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return toHTMLOptionElement(m_optionElement)-&gt;selected();
</del><ins>+    return downcast&lt;HTMLOptionElement&gt;(*m_optionElement).selected();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool AccessibilityListBoxOption::isSelectedOptionActive() const
</span><span class="lines">@@ -157,10 +157,10 @@
</span><span class="cx">         return ariaLabel;
</span><span class="cx">     
</span><span class="cx">     if (isHTMLOptionElement(m_optionElement))
</span><del>-        return toHTMLOptionElement(m_optionElement)-&gt;text();
</del><ins>+        return downcast&lt;HTMLOptionElement&gt;(*m_optionElement).text();
</ins><span class="cx">     
</span><span class="cx">     if (isHTMLOptGroupElement(m_optionElement))
</span><del>-        return toHTMLOptGroupElement(m_optionElement)-&gt;groupLabelText();
</del><ins>+        return downcast&lt;HTMLOptGroupElement&gt;(*m_optionElement).groupLabelText();
</ins><span class="cx">     
</span><span class="cx">     return String();
</span><span class="cx"> }
</span><span class="lines">@@ -203,10 +203,10 @@
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     if (isHTMLOptionElement(m_optionElement))
</span><del>-        return toHTMLOptionElement(m_optionElement)-&gt;ownerSelectElement();
</del><ins>+        return downcast&lt;HTMLOptionElement&gt;(*m_optionElement).ownerSelectElement();
</ins><span class="cx"> 
</span><span class="cx">     if (isHTMLOptGroupElement(m_optionElement))
</span><del>-        return toHTMLOptGroupElement(m_optionElement)-&gt;ownerSelectElement();
</del><ins>+        return downcast&lt;HTMLOptGroupElement&gt;(*m_optionElement).ownerSelectElement();
</ins><span class="cx"> 
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityMediaControlscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityMediaControls.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityMediaControls.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/AccessibilityMediaControls.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -277,7 +277,7 @@
</span><span class="cx">     if (!isHTMLInputElement(node))
</span><span class="cx">         return String();
</span><span class="cx"> 
</span><del>-    float time = toHTMLInputElement(node)-&gt;value().toFloat();
</del><ins>+    float time = downcast&lt;HTMLInputElement&gt;(*node).value().toFloat();
</ins><span class="cx">     return localizedMediaTimeDescription(time);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityMenuListOptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityMenuListOption.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityMenuListOption.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/AccessibilityMenuListOption.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> {
</span><span class="cx">     // isDisabledFormControl() returns true if the parent &lt;select&gt; element is disabled,
</span><span class="cx">     // which we don't want.
</span><del>-    return !toHTMLOptionElement(m_element.get())-&gt;ownElementDisabled();
</del><ins>+    return !downcast&lt;HTMLOptionElement&gt;(*m_element).ownElementDisabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool AccessibilityMenuListOption::isVisible() const
</span><span class="lines">@@ -75,15 +75,15 @@
</span><span class="cx"> 
</span><span class="cx"> bool AccessibilityMenuListOption::isSelected() const
</span><span class="cx"> {
</span><del>-    return toHTMLOptionElement(m_element.get())-&gt;selected();
</del><ins>+    return downcast&lt;HTMLOptionElement&gt;(*m_element).selected();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AccessibilityMenuListOption::setSelected(bool b)
</del><ins>+void AccessibilityMenuListOption::setSelected(bool selected)
</ins><span class="cx"> {
</span><span class="cx">     if (!canSetSelectedAttribute())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    toHTMLOptionElement(m_element.get())-&gt;setSelected(b);
</del><ins>+    downcast&lt;HTMLOptionElement&gt;(*m_element).setSelected(selected);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String AccessibilityMenuListOption::nameForMSAA() const
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx"> 
</span><span class="cx"> String AccessibilityMenuListOption::stringValue() const
</span><span class="cx"> {
</span><del>-    return toHTMLOptionElement(m_element.get())-&gt;text();
</del><ins>+    return downcast&lt;HTMLOptionElement&gt;(*m_element).text();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityMenuListPopupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_haveChildren = true;
</span><span class="cx"> 
</span><del>-    for (const auto&amp; listItem : toHTMLSelectElement(selectNode)-&gt;listItems()) {
</del><ins>+    for (const auto&amp; listItem : downcast&lt;HTMLSelectElement&gt;(*selectNode).listItems()) {
</ins><span class="cx">         AccessibilityMenuListOption* option = menuListOptionAccessibilityObject(listItem);
</span><span class="cx">         if (option) {
</span><span class="cx">             option-&gt;setParent(this);
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityNodeObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -291,18 +291,18 @@
</span><span class="cx">     if (node()-&gt;hasTagName(buttonTag))
</span><span class="cx">         return buttonRoleType();
</span><span class="cx">     if (isHTMLInputElement(node())) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(node());
-        if (input-&gt;isCheckbox())
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node());
+        if (input.isCheckbox())
</ins><span class="cx">             return CheckBoxRole;
</span><del>-        if (input-&gt;isRadioButton())
</del><ins>+        if (input.isRadioButton())
</ins><span class="cx">             return RadioButtonRole;
</span><del>-        if (input-&gt;isTextButton())
</del><ins>+        if (input.isTextButton())
</ins><span class="cx">             return buttonRoleType();
</span><del>-        if (input-&gt;isRangeControl())
</del><ins>+        if (input.isRangeControl())
</ins><span class="cx">             return SliderRole;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><del>-        const AtomicString&amp; type = input-&gt;getAttribute(typeAttr);
</del><ins>+        const AtomicString&amp; type = input.getAttribute(typeAttr);
</ins><span class="cx">         if (equalIgnoringCase(type, &quot;color&quot;))
</span><span class="cx">             return ColorWellRole;
</span><span class="cx"> #endif
</span><span class="lines">@@ -310,8 +310,8 @@
</span><span class="cx">         return TextFieldRole;
</span><span class="cx">     }
</span><span class="cx">     if (node()-&gt;hasTagName(selectTag)) {
</span><del>-        HTMLSelectElement* selectElement = toHTMLSelectElement(node());
-        return selectElement-&gt;multiple() ? ListBoxRole : PopUpButtonRole;
</del><ins>+        HTMLSelectElement&amp; selectElement = downcast&lt;HTMLSelectElement&gt;(*node());
+        return selectElement.multiple() ? ListBoxRole : PopUpButtonRole;
</ins><span class="cx">     }
</span><span class="cx">     if (isHTMLTextAreaElement(node()))
</span><span class="cx">         return TextAreaRole;
</span><span class="lines">@@ -469,8 +469,8 @@
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     if (isHTMLInputElement(node)) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(node);
-        return input-&gt;isText() || input-&gt;isNumberField();
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node);
+        return input.isText() || input.isNumberField();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return false;
</span><span class="lines">@@ -519,8 +519,8 @@
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     if (isHTMLInputElement(node)) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(node);
-        return input-&gt;isImageButton();
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node);
+        return input.isImageButton();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return false;
</span><span class="lines">@@ -554,8 +554,8 @@
</span><span class="cx">         return false;
</span><span class="cx">  
</span><span class="cx">     if (roleValue() == ButtonRole &amp;&amp; isHTMLInputElement(node)) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(node);
-        return input-&gt;isImageButton();
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node);
+        return input.isImageButton();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return false;
</span><span class="lines">@@ -729,7 +729,7 @@
</span><span class="cx">     if (equalIgnoringCase(ariaMultiSelectable, &quot;false&quot;))
</span><span class="cx">         return false;
</span><span class="cx">     
</span><del>-    return node() &amp;&amp; node()-&gt;hasTagName(selectTag) &amp;&amp; toHTMLSelectElement(node())-&gt;multiple();
</del><ins>+    return node() &amp;&amp; node()-&gt;hasTagName(selectTag) &amp;&amp; downcast&lt;HTMLSelectElement&gt;(*node()).multiple();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool AccessibilityNodeObject::isReadOnly() const
</span><span class="lines">@@ -742,9 +742,9 @@
</span><span class="cx">         return toHTMLFormControlElement(node)-&gt;isReadOnly();
</span><span class="cx"> 
</span><span class="cx">     if (isHTMLInputElement(node)) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(node);
-        if (input-&gt;isTextField())
-            return input-&gt;isReadOnly();
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node);
+        if (input.isTextField())
+            return input.isReadOnly();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return !node-&gt;hasEditableStyle();
</span><span class="lines">@@ -838,9 +838,9 @@
</span><span class="cx"> float AccessibilityNodeObject::valueForRange() const
</span><span class="cx"> {
</span><span class="cx">     if (node() &amp;&amp; isHTMLInputElement(node())) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(node());
-        if (input-&gt;isRangeControl())
-            return input-&gt;valueAsNumber();
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node());
+        if (input.isRangeControl())
+            return input.valueAsNumber();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!isRangeControl())
</span><span class="lines">@@ -852,9 +852,9 @@
</span><span class="cx"> float AccessibilityNodeObject::maxValueForRange() const
</span><span class="cx"> {
</span><span class="cx">     if (node() &amp;&amp; isHTMLInputElement(node())) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(node());
-        if (input-&gt;isRangeControl())
-            return input-&gt;maximum();
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node());
+        if (input.isRangeControl())
+            return input.maximum();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!isRangeControl())
</span><span class="lines">@@ -866,9 +866,9 @@
</span><span class="cx"> float AccessibilityNodeObject::minValueForRange() const
</span><span class="cx"> {
</span><span class="cx">     if (node() &amp;&amp; isHTMLInputElement(node())) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(node());
-        if (input-&gt;isRangeControl())
-            return input-&gt;minimum();
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node());
+        if (input.isRangeControl())
+            return input.minimum();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!isRangeControl())
</span><span class="lines">@@ -974,8 +974,8 @@
</span><span class="cx"> static bool isNodeActionElement(Node* node)
</span><span class="cx"> {
</span><span class="cx">     if (isHTMLInputElement(node)) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(node);
-        if (!input-&gt;isDisabledFormControl() &amp;&amp; (input-&gt;isRadioButton() || input-&gt;isCheckbox() || input-&gt;isTextButton() || input-&gt;isFileUpload() || input-&gt;isImageButton()))
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node);
+        if (!input.isDisabledFormControl() &amp;&amp; (input.isRadioButton() || input.isCheckbox() || input.isTextButton() || input.isFileUpload() || input.isImageButton()))
</ins><span class="cx">             return true;
</span><span class="cx">     } else if (node-&gt;hasTagName(buttonTag) || node-&gt;hasTagName(selectTag))
</span><span class="cx">         return true;
</span><span class="lines">@@ -1307,7 +1307,7 @@
</span><span class="cx">     
</span><span class="cx">     // The fieldset element derives its alternative text from the first associated legend element if one is available.
</span><span class="cx">     if (isHTMLFieldSetElement(node)) {
</span><del>-        AccessibilityObject* object = axObjectCache()-&gt;getOrCreate(toHTMLFieldSetElement(node)-&gt;legend());
</del><ins>+        AccessibilityObject* object = axObjectCache()-&gt;getOrCreate(downcast&lt;HTMLFieldSetElement&gt;(*node).legend());
</ins><span class="cx">         if (object &amp;&amp; !object-&gt;isHidden())
</span><span class="cx">             textOrder.append(AccessibilityText(accessibleNameForNode(object-&gt;node()), AlternativeText));
</span><span class="cx">     }
</span><span class="lines">@@ -1330,9 +1330,9 @@
</span><span class="cx">     
</span><span class="cx">     bool isInputTag = isHTMLInputElement(node);
</span><span class="cx">     if (isInputTag) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(node);
-        if (input-&gt;isTextButton()) {
-            textOrder.append(AccessibilityText(input-&gt;valueWithDefault(), VisibleText));
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node);
+        if (input.isTextButton()) {
+            textOrder.append(AccessibilityText(input.valueWithDefault(), VisibleText));
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -1685,9 +1685,9 @@
</span><span class="cx"> 
</span><span class="cx">     bool isInputTag = isHTMLInputElement(node);
</span><span class="cx">     if (isInputTag) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(node);
-        if (input-&gt;isTextButton())
-            return input-&gt;valueWithDefault();
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node);
+        if (input.isTextButton())
+            return input.valueWithDefault();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (isInputTag || AccessibilityObject::isARIAInput(ariaRoleAttribute()) || isControl()) {
</span><span class="lines">@@ -1751,8 +1751,8 @@
</span><span class="cx">     if (!node)
</span><span class="cx">         return String();
</span><span class="cx"> 
</span><del>-    if (isNativeTextControl() &amp;&amp; (isHTMLTextAreaElement(node) || isHTMLInputElement(node)))
-        return toHTMLTextFormControlElement(node)-&gt;value();
</del><ins>+    if (isNativeTextControl() &amp;&amp; isHTMLTextFormControlElement(*node))
+        return downcast&lt;HTMLTextFormControlElement&gt;(*node).value();
</ins><span class="cx"> 
</span><span class="cx">     if (!node-&gt;isElementNode())
</span><span class="cx">         return String();
</span><span class="lines">@@ -1777,16 +1777,16 @@
</span><span class="cx">         return textUnderElement();
</span><span class="cx"> 
</span><span class="cx">     if (node-&gt;hasTagName(selectTag)) {
</span><del>-        HTMLSelectElement* selectElement = toHTMLSelectElement(node);
-        int selectedIndex = selectElement-&gt;selectedIndex();
-        const Vector&lt;HTMLElement*&gt;&amp; listItems = selectElement-&gt;listItems();
</del><ins>+        HTMLSelectElement&amp; selectElement = downcast&lt;HTMLSelectElement&gt;(*node);
+        int selectedIndex = selectElement.selectedIndex();
+        const Vector&lt;HTMLElement*&gt;&amp; listItems = selectElement.listItems();
</ins><span class="cx">         if (selectedIndex &gt;= 0 &amp;&amp; static_cast&lt;size_t&gt;(selectedIndex) &lt; listItems.size()) {
</span><span class="cx">             const AtomicString&amp; overriddenDescription = listItems[selectedIndex]-&gt;fastGetAttribute(aria_labelAttr);
</span><span class="cx">             if (!overriddenDescription.isNull())
</span><span class="cx">                 return overriddenDescription;
</span><span class="cx">         }
</span><del>-        if (!selectElement-&gt;multiple())
-            return selectElement-&gt;value();
</del><ins>+        if (!selectElement.multiple())
+            return selectElement.value();
</ins><span class="cx">         return String();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1812,13 +1812,13 @@
</span><span class="cx">     if (!node() || !isHTMLInputElement(node()))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    HTMLInputElement* input = toHTMLInputElement(node());
-    const AtomicString&amp; type = input-&gt;getAttribute(typeAttr);
</del><ins>+    HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node());
+    const AtomicString&amp; type = input.getAttribute(typeAttr);
</ins><span class="cx">     if (!equalIgnoringCase(type, &quot;color&quot;))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // HTMLInputElement::value always returns a string parseable by Color().
</span><del>-    Color color(input-&gt;value());
</del><ins>+    Color color(input.value());
</ins><span class="cx">     r = color.red();
</span><span class="cx">     g = color.green();
</span><span class="cx">     b = color.blue();
</span><span class="lines">@@ -1842,7 +1842,7 @@
</span><span class="cx">         return alt;
</span><span class="cx">     
</span><span class="cx">     if (isHTMLInputElement(node))
</span><del>-        return toHTMLInputElement(node)-&gt;value();
</del><ins>+        return downcast&lt;HTMLInputElement&gt;(*node).value();
</ins><span class="cx">     
</span><span class="cx">     // If the node can be turned into an AX object, we can use standard name computation rules.
</span><span class="cx">     // If however, the node cannot (because there's no renderer e.g.) fallback to using the basic text underneath.
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -524,8 +524,8 @@
</span><span class="cx"> bool AccessibilityRenderObject::isFileUploadButton() const
</span><span class="cx"> {
</span><span class="cx">     if (m_renderer &amp;&amp; m_renderer-&gt;node() &amp;&amp; isHTMLInputElement(m_renderer-&gt;node())) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(m_renderer-&gt;node());
-        return input-&gt;isFileUpload();
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*m_renderer-&gt;node());
+        return input.isFileUpload();
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     return false;
</span><span class="lines">@@ -741,9 +741,9 @@
</span><span class="cx">     if (cssBox &amp;&amp; cssBox-&gt;isMenuList()) {
</span><span class="cx">         // RenderMenuList will go straight to the text() of its selected item.
</span><span class="cx">         // This has to be overridden in the case where the selected item has an ARIA label.
</span><del>-        HTMLSelectElement* selectElement = toHTMLSelectElement(m_renderer-&gt;node());
-        int selectedIndex = selectElement-&gt;selectedIndex();
-        const Vector&lt;HTMLElement*&gt;&amp; listItems = selectElement-&gt;listItems();
</del><ins>+        HTMLSelectElement&amp; selectElement = downcast&lt;HTMLSelectElement&gt;(*m_renderer-&gt;node());
+        int selectedIndex = selectElement.selectedIndex();
+        const Vector&lt;HTMLElement*&gt;&amp; listItems = selectElement.listItems();
</ins><span class="cx">         if (selectedIndex &gt;= 0 &amp;&amp; static_cast&lt;size_t&gt;(selectedIndex) &lt; listItems.size()) {
</span><span class="cx">             const AtomicString&amp; overriddenDescription = listItems[selectedIndex]-&gt;fastGetAttribute(aria_labelAttr);
</span><span class="cx">             if (!overriddenDescription.isNull())
</span><span class="lines">@@ -783,7 +783,7 @@
</span><span class="cx">     // find if this has a parent that is a label
</span><span class="cx">     for (Node* parentNode = m_renderer-&gt;node(); parentNode; parentNode = parentNode-&gt;parentNode()) {
</span><span class="cx">         if (isHTMLLabelElement(parentNode))
</span><del>-            return toHTMLLabelElement(parentNode);
</del><ins>+            return downcast&lt;HTMLLabelElement&gt;(parentNode);
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     return nullptr;
</span><span class="lines">@@ -916,9 +916,9 @@
</span><span class="cx">     // Right now, we do not support ARIA links as internal link elements
</span><span class="cx">     if (!isHTMLAnchorElement(element))
</span><span class="cx">         return nullptr;
</span><del>-    HTMLAnchorElement* anchor = toHTMLAnchorElement(element);
</del><ins>+    HTMLAnchorElement&amp; anchor = downcast&lt;HTMLAnchorElement&gt;(*element);
</ins><span class="cx">     
</span><del>-    URL linkURL = anchor-&gt;href();
</del><ins>+    URL linkURL = anchor.href();
</ins><span class="cx">     String fragmentIdentifier = linkURL.fragmentIdentifier();
</span><span class="cx">     if (fragmentIdentifier.isEmpty())
</span><span class="cx">         return nullptr;
</span><span class="lines">@@ -953,24 +953,25 @@
</span><span class="cx">     if (!node || !isHTMLInputElement(node))
</span><span class="cx">         return;
</span><span class="cx">     
</span><del>-    HTMLInputElement* input = toHTMLInputElement(node);
</del><ins>+    HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node);
</ins><span class="cx">     // if there's a form, then this is easy
</span><del>-    if (input-&gt;form()) {
</del><ins>+    if (input.form()) {
</ins><span class="cx">         Vector&lt;Ref&lt;Element&gt;&gt; formElements;
</span><del>-        input-&gt;form()-&gt;getNamedElements(input-&gt;name(), formElements);
</del><ins>+        input.form()-&gt;getNamedElements(input.name(), formElements);
</ins><span class="cx">         
</span><span class="cx">         for (auto&amp; associateElement : formElements) {
</span><span class="cx">             if (AccessibilityObject* object = axObjectCache()-&gt;getOrCreate(&amp;associateElement.get()))
</span><span class="cx">                 linkedUIElements.append(object);        
</span><span class="cx">         } 
</span><span class="cx">     } else {
</span><del>-        RefPtr&lt;NodeList&gt; list = node-&gt;document().getElementsByTagName(&quot;input&quot;);
-        unsigned len = list-&gt;length();
-        for (unsigned i = 0; i &lt; len; ++i) {
-            if (isHTMLInputElement(list-&gt;item(i))) {
-                HTMLInputElement* associateElement = toHTMLInputElement(list-&gt;item(i));
-                if (associateElement-&gt;isRadioButton() &amp;&amp; associateElement-&gt;name() == input-&gt;name()) {
-                    if (AccessibilityObject* object = axObjectCache()-&gt;getOrCreate(associateElement))
</del><ins>+        RefPtr&lt;NodeList&gt; list = node-&gt;document().getElementsByTagName(inputTag.localName());
+        unsigned length = list-&gt;length();
+        for (unsigned i = 0; i &lt; length; ++i) {
+            Node* item = list-&gt;item(i);
+            if (isHTMLInputElement(item)) {
+                HTMLInputElement&amp; associateElement = downcast&lt;HTMLInputElement&gt;(*item);
+                if (associateElement.isRadioButton() &amp;&amp; associateElement.name() == input.name()) {
+                    if (AccessibilityObject* object = axObjectCache()-&gt;getOrCreate(&amp;associateElement))
</ins><span class="cx">                         linkedUIElements.append(object);
</span><span class="cx">                 }
</span><span class="cx">             }
</span><span class="lines">@@ -1507,7 +1508,7 @@
</span><span class="cx"> URL AccessibilityRenderObject::url() const
</span><span class="cx"> {
</span><span class="cx">     if (isAnchor() &amp;&amp; isHTMLAnchorElement(m_renderer-&gt;node())) {
</span><del>-        if (HTMLAnchorElement* anchor = toHTMLAnchorElement(anchorElement()))
</del><ins>+        if (HTMLAnchorElement* anchor = downcast&lt;HTMLAnchorElement&gt;(anchorElement()))
</ins><span class="cx">             return anchor-&gt;href();
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="lines">@@ -1515,10 +1516,10 @@
</span><span class="cx">         return m_renderer-&gt;document().url();
</span><span class="cx">     
</span><span class="cx">     if (isImage() &amp;&amp; m_renderer-&gt;node() &amp;&amp; isHTMLImageElement(m_renderer-&gt;node()))
</span><del>-        return toHTMLImageElement(m_renderer-&gt;node())-&gt;src();
</del><ins>+        return downcast&lt;HTMLImageElement&gt;(*m_renderer-&gt;node()).src();
</ins><span class="cx">     
</span><span class="cx">     if (isInputImage())
</span><del>-        return toHTMLInputElement(m_renderer-&gt;node())-&gt;src();
</del><ins>+        return downcast&lt;HTMLInputElement&gt;(*m_renderer-&gt;node()).src();
</ins><span class="cx">     
</span><span class="cx">     return URL();
</span><span class="cx"> }
</span><span class="lines">@@ -1679,20 +1680,17 @@
</span><span class="cx"> {
</span><span class="cx">     if (!m_renderer || !m_renderer-&gt;node() || !m_renderer-&gt;node()-&gt;isElementNode())
</span><span class="cx">         return;
</span><del>-    Element* element = toElement(m_renderer-&gt;node());
</del><ins>+    Element&amp; element = toElement(*m_renderer-&gt;node());
</ins><span class="cx"> 
</span><span class="cx">     if (!m_renderer-&gt;isBoxModelObject())
</span><span class="cx">         return;
</span><span class="cx">     RenderBoxModelObject* renderer = toRenderBoxModelObject(m_renderer);
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Do we want to do anything here for ARIA textboxes?
</span><del>-    if (renderer-&gt;isTextField()) {
-        // FIXME: This is not safe!  Other elements could have a TextField renderer.
-        toHTMLInputElement(element)-&gt;setValue(string);
-    } else if (renderer-&gt;isTextArea()) {
-        // FIXME: This is not safe!  Other elements could have a TextArea renderer.
-        toHTMLTextAreaElement(element)-&gt;setValue(string);
-    }
</del><ins>+    if (renderer-&gt;isTextField() &amp;&amp; isHTMLInputElement(element))
+        downcast&lt;HTMLInputElement&gt;(element).setValue(string);
+    else if (renderer-&gt;isTextArea() &amp;&amp; isHTMLTextAreaElement(element))
+        downcast&lt;HTMLTextAreaElement&gt;(element).setValue(string);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void AccessibilityRenderObject::ariaOwnsElements(AccessibilityChildrenVector&amp; axObjects) const
</span><span class="lines">@@ -1763,10 +1761,10 @@
</span><span class="cx">             Node* parent = curr-&gt;parentNode();
</span><span class="cx">             if (parent &amp;&amp; isHTMLAreaElement(curr) &amp;&amp; isHTMLMapElement(parent)) {
</span><span class="cx">                 AccessibilityImageMapLink* areaObject = toAccessibilityImageMapLink(axObjectCache()-&gt;getOrCreate(ImageMapLinkRole));
</span><del>-                HTMLMapElement* map = toHTMLMapElement(parent);
-                areaObject-&gt;setHTMLAreaElement(toHTMLAreaElement(curr));
-                areaObject-&gt;setHTMLMapElement(map);
-                areaObject-&gt;setParent(accessibilityParentForImageMap(map));
</del><ins>+                HTMLMapElement&amp; map = downcast&lt;HTMLMapElement&gt;(*parent);
+                areaObject-&gt;setHTMLAreaElement(downcast&lt;HTMLAreaElement&gt;(curr));
+                areaObject-&gt;setHTMLMapElement(&amp;map);
+                areaObject-&gt;setParent(accessibilityParentForImageMap(&amp;map));
</ins><span class="cx"> 
</span><span class="cx">                 result.append(areaObject);
</span><span class="cx">             }
</span><span class="lines">@@ -2161,7 +2159,7 @@
</span><span class="cx">     AccessibilityObject* parent = nullptr;
</span><span class="cx">     for (Element* mapParent = area-&gt;parentElement(); mapParent; mapParent = mapParent-&gt;parentElement()) {
</span><span class="cx">         if (isHTMLMapElement(mapParent)) {
</span><del>-            parent = accessibilityParentForImageMap(toHTMLMapElement(mapParent));
</del><ins>+            parent = accessibilityParentForImageMap(downcast&lt;HTMLMapElement&gt;(mapParent));
</ins><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -2211,10 +2209,10 @@
</span><span class="cx">     Node* node = hitTestResult.innerNode()-&gt;deprecatedShadowAncestorNode();
</span><span class="cx"> 
</span><span class="cx">     if (isHTMLAreaElement(node))
</span><del>-        return accessibilityImageMapHitTest(toHTMLAreaElement(node), point);
</del><ins>+        return accessibilityImageMapHitTest(downcast&lt;HTMLAreaElement&gt;(node), point);
</ins><span class="cx">     
</span><span class="cx">     if (isHTMLOptionElement(node))
</span><del>-        node = toHTMLOptionElement(node)-&gt;ownerSelectElement();
</del><ins>+        node = downcast&lt;HTMLOptionElement&gt;(*node).ownerSelectElement();
</ins><span class="cx">     
</span><span class="cx">     RenderObject* obj = node-&gt;renderer();
</span><span class="cx">     if (!obj)
</span><span class="lines">@@ -2505,21 +2503,22 @@
</span><span class="cx">         return TextAreaRole;
</span><span class="cx"> 
</span><span class="cx">     if (node &amp;&amp; isHTMLInputElement(node)) {
</span><del>-        HTMLInputElement* input = toHTMLInputElement(node);
-        if (input-&gt;isCheckbox())
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node);
+        if (input.isCheckbox())
</ins><span class="cx">             return CheckBoxRole;
</span><del>-        if (input-&gt;isRadioButton())
</del><ins>+        if (input.isRadioButton())
</ins><span class="cx">             return RadioButtonRole;
</span><del>-        if (input-&gt;isTextButton())
</del><ins>+        if (input.isTextButton())
</ins><span class="cx">             return buttonRoleType();
</span><span class="cx">         // On iOS, the date field is a popup button. On other platforms this is a text field.
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-        if (input-&gt;isDateField())
</del><ins>+        if (input.isDateField())
</ins><span class="cx">             return PopUpButtonRole;
</span><span class="cx"> #endif
</span><span class="cx">         
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><del>-        const AtomicString&amp; type = input-&gt;getAttribute(typeAttr);
</del><ins>+        // FIXME: Shouldn't this use input.isColorControl()?
+        const AtomicString&amp; type = input.getAttribute(typeAttr);
</ins><span class="cx">         if (equalIgnoringCase(type, &quot;color&quot;))
</span><span class="cx">             return ColorWellRole;
</span><span class="cx"> #endif
</span><span class="lines">@@ -2840,8 +2839,8 @@
</span><span class="cx">     if (!node || !isHTMLInputElement(node))
</span><span class="cx">         return;
</span><span class="cx">     
</span><del>-    HTMLInputElement* input = toHTMLInputElement(node);
-    HTMLElement* spinButtonElement = input-&gt;innerSpinButtonElement();
</del><ins>+    HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node);
+    HTMLElement* spinButtonElement = input.innerSpinButtonElement();
</ins><span class="cx">     if (!spinButtonElement || !spinButtonElement-&gt;isSpinButtonElement())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -3271,7 +3270,7 @@
</span><span class="cx">     if (isLinkable(*this)) {
</span><span class="cx">         Element* anchor = anchorElement();
</span><span class="cx">         if (anchor &amp;&amp; isHTMLAnchorElement(anchor))
</span><del>-            return toHTMLAnchorElement(anchor)-&gt;href();
</del><ins>+            return downcast&lt;HTMLAnchorElement&gt;(*anchor).href();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return stringValue();
</span><span class="lines">@@ -3286,7 +3285,7 @@
</span><span class="cx">     if (!anchor || !isHTMLAnchorElement(anchor))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return !toHTMLAnchorElement(anchor)-&gt;href().isEmpty();
</del><ins>+    return !downcast&lt;HTMLAnchorElement&gt;(*anchor).href().isEmpty();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool AccessibilityRenderObject::hasBoldFont() const
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilitySlidercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilitySlider.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilitySlider.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/AccessibilitySlider.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLInputElement* AccessibilitySlider::inputElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLInputElement(m_renderer-&gt;node());
</del><ins>+    return downcast&lt;HTMLInputElement&gt;(m_renderer-&gt;node());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx">     RenderObject* sliderRenderer = m_parent-&gt;renderer();
</span><span class="cx">     if (!sliderRenderer || !sliderRenderer-&gt;isSlider())
</span><span class="cx">         return LayoutRect();
</span><del>-    return toHTMLInputElement(sliderRenderer-&gt;node())-&gt;sliderThumbElement()-&gt;boundingBox();
</del><ins>+    return downcast&lt;HTMLInputElement&gt;(sliderRenderer-&gt;node())-&gt;sliderThumbElement()-&gt;boundingBox();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool AccessibilitySliderThumb::computeAccessibilityIsIgnored() const
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityTablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityTable.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityTable.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/AccessibilityTable.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx">     
</span><span class="cx">     RenderTable* table = toRenderTable(m_renderer);
</span><span class="cx">     if (table-&gt;element() &amp;&amp; isHTMLTableElement(table-&gt;element()))
</span><del>-        return toHTMLTableElement(table-&gt;element());
</del><ins>+        return downcast&lt;HTMLTableElement&gt;(table-&gt;element());
</ins><span class="cx">     
</span><span class="cx">     // If the table has a display:table-row-group, then the RenderTable does not have a pointer to it's HTMLTableElement.
</span><span class="cx">     // We can instead find it by asking the firstSection for its parent.
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx">     if (!actualTable || !isHTMLTableElement(actualTable))
</span><span class="cx">         return nullptr;
</span><span class="cx">     
</span><del>-    return toHTMLTableElement(actualTable);
</del><ins>+    return downcast&lt;HTMLTableElement&gt;(actualTable);
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> bool AccessibilityTable::isDataTable() const
</span><span class="lines">@@ -608,8 +608,7 @@
</span><span class="cx">     // see if there is a caption
</span><span class="cx">     Node* tableElement = m_renderer-&gt;node();
</span><span class="cx">     if (tableElement &amp;&amp; isHTMLTableElement(tableElement)) {
</span><del>-        HTMLTableCaptionElement* caption = toHTMLTableElement(tableElement)-&gt;caption();
-        if (caption)
</del><ins>+        if (HTMLTableCaptionElement* caption = downcast&lt;HTMLTableElement&gt;(*tableElement).caption())
</ins><span class="cx">             title = caption-&gt;innerText();
</span><span class="cx">     }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityatkAXObjectCacheAtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/atk/AXObjectCacheAtk.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/atk/AXObjectCacheAtk.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/atk/AXObjectCacheAtk.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -140,10 +140,8 @@
</span><span class="cx">     g_signal_emit_by_name(object-&gt;wrapper(), &quot;selection-changed&quot;);
</span><span class="cx"> 
</span><span class="cx">     // Find the item where the selection change was triggered from.
</span><del>-    HTMLSelectElement* select = toHTMLSelectElement(node);
-    if (!select)
-        return;
-    int changedItemIndex = select-&gt;activeSelectionStartListIndex();
</del><ins>+    HTMLSelectElement&amp; select = downcast&lt;HTMLSelectElement&gt;(*node);
+    int changedItemIndex = select.activeSelectionStartListIndex();
</ins><span class="cx"> 
</span><span class="cx">     AccessibilityObject* listObject = getListObject(object);
</span><span class="cx">     if (!listObject) {
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityatkWebKitAccessibleInterfaceSelectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceSelection.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceSelection.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceSelection.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">         if (!renderer)
</span><span class="cx">             return nullptr;
</span><span class="cx"> 
</span><del>-        HTMLSelectElement* selectNode = toHTMLSelectElement(renderer-&gt;node());
</del><ins>+        HTMLSelectElement* selectNode = downcast&lt;HTMLSelectElement&gt;(renderer-&gt;node());
</ins><span class="cx">         if (!selectNode)
</span><span class="cx">             return nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -195,8 +195,8 @@
</span><span class="cx">         if (!renderer)
</span><span class="cx">             return 0;
</span><span class="cx"> 
</span><del>-        int selectedIndex = toHTMLSelectElement(renderer-&gt;node())-&gt;selectedIndex();
-        return selectedIndex &gt;= 0 &amp;&amp; selectedIndex &lt; static_cast&lt;int&gt;(toHTMLSelectElement(renderer-&gt;node())-&gt;listItems().size());
</del><ins>+        int selectedIndex = downcast&lt;HTMLSelectElement&gt;(renderer-&gt;node())-&gt;selectedIndex();
+        return selectedIndex &gt;= 0 &amp;&amp; selectedIndex &lt; static_cast&lt;int&gt;(downcast&lt;HTMLSelectElement&gt;(renderer-&gt;node())-&gt;listItems().size());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityatkWebKitAccessibleInterfaceTablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceTable.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceTable.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceTable.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -238,19 +238,19 @@
</span><span class="cx"> 
</span><span class="cx"> static AtkObject* webkitAccessibleTableGetCaption(AtkTable* table)
</span><span class="cx"> {
</span><del>-    g_return_val_if_fail(ATK_TABLE(table), 0);
-    returnValIfWebKitAccessibleIsInvalid(WEBKIT_ACCESSIBLE(table), 0);
</del><ins>+    g_return_val_if_fail(ATK_TABLE(table), nullptr);
+    returnValIfWebKitAccessibleIsInvalid(WEBKIT_ACCESSIBLE(table), nullptr);
</ins><span class="cx"> 
</span><span class="cx">     AccessibilityObject* accTable = core(table);
</span><span class="cx">     if (accTable-&gt;isAccessibilityRenderObject()) {
</span><span class="cx">         Node* node = accTable-&gt;node();
</span><span class="cx">         if (node &amp;&amp; isHTMLTableElement(node)) {
</span><del>-            HTMLTableCaptionElement* caption = toHTMLTableElement(node)-&gt;caption();
</del><ins>+            HTMLTableCaptionElement* caption = downcast&lt;HTMLTableElement&gt;(*node).caption();
</ins><span class="cx">             if (caption)
</span><span class="cx">                 return AccessibilityObject::firstAccessibleObjectFromNode(caption-&gt;renderer()-&gt;element())-&gt;wrapper();
</span><span class="cx">         }
</span><span class="cx">     }
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static const gchar* webkitAccessibleTableGetColumnDescription(AtkTable* table, gint column)
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityatkWebKitAccessibleWrapperAtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -171,7 +171,7 @@
</span><span class="cx">     returnValIfWebKitAccessibleIsInvalid(WEBKIT_ACCESSIBLE(object), 0);
</span><span class="cx"> 
</span><span class="cx">     AccessibilityObject* coreObject = core(object);
</span><del>-    Node* node = 0;
</del><ins>+    Node* node = nullptr;
</ins><span class="cx">     if (coreObject-&gt;isAccessibilityRenderObject())
</span><span class="cx">         node = coreObject-&gt;node();
</span><span class="cx">     if (!node || !node-&gt;isHTMLElement() || coreObject-&gt;ariaRoleAttribute() != UnknownRole || coreObject-&gt;isImage())
</span><span class="lines">@@ -179,7 +179,7 @@
</span><span class="cx"> 
</span><span class="cx">     // atk_table_get_summary returns an AtkObject. We have no summary object, so expose summary here.
</span><span class="cx">     if (coreObject-&gt;roleValue() == TableRole) {
</span><del>-        String summary = toHTMLTableElement(node)-&gt;summary();
</del><ins>+        const AtomicString&amp; summary = downcast&lt;HTMLTableElement&gt;(*node).summary();
</ins><span class="cx">         if (!summary.isEmpty())
</span><span class="cx">             return cacheAndReturnAtkProperty(object, AtkCachedAccessibleDescription, summary);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityiosAccessibilityObjectIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -67,11 +67,8 @@
</span><span class="cx">     if (!renderObject || !renderObject-&gt;node() || !renderObject-&gt;node()-&gt;isHTMLElement())
</span><span class="cx">         return false;
</span><span class="cx">     
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(renderObject-&gt;node());
-    if (!inputElement)
-        return false;
-    
-    return inputElement-&gt;value().length();
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*renderObject-&gt;node());
+    return inputElement.value().length();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool AccessibilityObject::accessibilityIgnoreAttachment() const
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMWindowCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -83,16 +83,16 @@
</span><span class="cx">     ASSERT(document-&gt;isHTMLDocument());
</span><span class="cx"> 
</span><span class="cx">     AtomicStringImpl* atomicPropertyName = propertyName.publicName();
</span><del>-    if (!atomicPropertyName || !toHTMLDocument(document)-&gt;hasWindowNamedItem(*atomicPropertyName))
</del><ins>+    if (!atomicPropertyName || !downcast&lt;HTMLDocument&gt;(*document).hasWindowNamedItem(*atomicPropertyName))
</ins><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx"> 
</span><del>-    if (UNLIKELY(toHTMLDocument(document)-&gt;windowNamedItemContainsMultipleElements(*atomicPropertyName))) {
</del><ins>+    if (UNLIKELY(downcast&lt;HTMLDocument&gt;(*document).windowNamedItemContainsMultipleElements(*atomicPropertyName))) {
</ins><span class="cx">         RefPtr&lt;HTMLCollection&gt; collection = document-&gt;windowNamedItems(atomicPropertyName);
</span><span class="cx">         ASSERT(collection-&gt;length() &gt; 1);
</span><span class="cx">         return JSValue::encode(toJS(exec, thisObj-&gt;globalObject(), WTF::getPtr(collection)));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return JSValue::encode(toJS(exec, thisObj-&gt;globalObject(), toHTMLDocument(document)-&gt;windowNamedItem(*atomicPropertyName)));
</del><ins>+    return JSValue::encode(toJS(exec, thisObj-&gt;globalObject(), downcast&lt;HTMLDocument&gt;(*document).windowNamedItem(*atomicPropertyName)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(USER_MESSAGE_HANDLERS)
</span><span class="lines">@@ -246,7 +246,7 @@
</span><span class="cx">     Document* document = thisObject-&gt;impl().frame()-&gt;document();
</span><span class="cx">     if (document-&gt;isHTMLDocument()) {
</span><span class="cx">         AtomicStringImpl* atomicPropertyName = propertyName.publicName();
</span><del>-        if (atomicPropertyName &amp;&amp; toHTMLDocument(document)-&gt;hasWindowNamedItem(*atomicPropertyName)) {
</del><ins>+        if (atomicPropertyName &amp;&amp; downcast&lt;HTMLDocument&gt;(*document).hasWindowNamedItem(*atomicPropertyName)) {
</ins><span class="cx">             slot.setCustom(thisObject, ReadOnly | DontDelete | DontEnum, namedItemGetter);
</span><span class="cx">             return true;
</span><span class="cx">         }
</span><span class="lines">@@ -323,7 +323,7 @@
</span><span class="cx">     Document* document = thisObject-&gt;impl().frame()-&gt;document();
</span><span class="cx">     if (document-&gt;isHTMLDocument()) {
</span><span class="cx">         AtomicStringImpl* atomicPropertyName = propertyName.publicName();
</span><del>-        if (atomicPropertyName &amp;&amp; toHTMLDocument(document)-&gt;hasWindowNamedItem(*atomicPropertyName)) {
</del><ins>+        if (atomicPropertyName &amp;&amp; downcast&lt;HTMLDocument&gt;(*document).hasWindowNamedItem(*atomicPropertyName)) {
</ins><span class="cx">             slot.setCustom(thisObject, ReadOnly | DontDelete | DontEnum, namedItemGetter);
</span><span class="cx">             return true;
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLDocumentCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLDocumentCustom.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLDocumentCustom.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/bindings/js/JSHTMLDocumentCustom.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -73,8 +73,8 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     Element* element = document.documentNamedItem(*atomicPropertyName);
</span><del>-    if (UNLIKELY(element-&gt;hasTagName(iframeTag))) {
-        if (Frame* frame = toHTMLIFrameElement(element)-&gt;contentFrame())
</del><ins>+    if (UNLIKELY(isHTMLIFrameElement(element))) {
+        if (Frame* frame = downcast&lt;HTMLIFrameElement&gt;(*element).contentFrame())
</ins><span class="cx">             return JSValue::encode(toJS(exec, frame));
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLFrameSetElementCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> {
</span><span class="cx">     HTMLElement&amp; element = jsCast&lt;JSHTMLElement*&gt;(slotBase)-&gt;impl();
</span><span class="cx">     Node* frameElement = element.children()-&gt;namedItem(propertyNameToAtomicString(propertyName));
</span><del>-    if (Document* document = toHTMLFrameElement(frameElement)-&gt;contentDocument()) {
</del><ins>+    if (Document* document = downcast&lt;HTMLFrameElement&gt;(frameElement)-&gt;contentDocument()) {
</ins><span class="cx">         if (JSDOMWindowShell* window = toJSDOMWindowShell(document-&gt;frame(), currentWorld(exec)))
</span><span class="cx">             return JSValue::encode(window);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSNodeCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -106,12 +106,12 @@
</span><span class="cx">             // the element is destroyed, its load event will not fire.
</span><span class="cx">             // FIXME: The DOM should manage this issue without the help of JavaScript wrappers.
</span><span class="cx">             if (isHTMLImageElement(element)) {
</span><del>-                if (toHTMLImageElement(element).hasPendingActivity())
</del><ins>+                if (downcast&lt;HTMLImageElement&gt;(element).hasPendingActivity())
</ins><span class="cx">                     return true;
</span><span class="cx">             }
</span><span class="cx"> #if ENABLE(VIDEO)
</span><span class="cx">             else if (isHTMLAudioElement(element)) {
</span><del>-                if (!toHTMLAudioElement(element).paused())
</del><ins>+                if (!downcast&lt;HTMLAudioElement&gt;(element).paused())
</ins><span class="cx">                     return true;
</span><span class="cx">             }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorecssSelectorCheckercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/SelectorChecker.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SelectorChecker.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/css/SelectorChecker.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -655,7 +655,7 @@
</span><span class="cx">                     if (RenderStyle* style = context.elementStyle ? context.elementStyle : element-&gt;renderStyle())
</span><span class="cx">                         style-&gt;setUnique();
</span><span class="cx">                 }
</span><del>-                return toHTMLTextFormControlElement(*element).isPlaceholderVisible();
</del><ins>+                return downcast&lt;HTMLTextFormControlElement&gt;(*element).isPlaceholderVisible();
</ins><span class="cx">             }
</span><span class="cx">             return false;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorecssSelectorCheckerTestFunctionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/SelectorCheckerTestFunctions.h (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SelectorCheckerTestFunctions.h        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/css/SelectorCheckerTestFunctions.h        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx">     const HTMLInputElement* inputElement = element-&gt;toInputElement();
</span><span class="cx">     if (inputElement &amp;&amp; inputElement-&gt;shouldAppearChecked() &amp;&amp; !inputElement-&gt;shouldAppearIndeterminate())
</span><span class="cx">         return true;
</span><del>-    if (isHTMLOptionElement(element) &amp;&amp; toHTMLOptionElement(element)-&gt;selected())
</del><ins>+    if (isHTMLOptionElement(element) &amp;&amp; downcast&lt;HTMLOptionElement&gt;(*element).selected())
</ins><span class="cx">         return true;
</span><span class="cx">     return false;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/css/StyleResolver.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1338,7 +1338,7 @@
</span><span class="cx">     if (e &amp;&amp; e-&gt;isFormControlElement() &amp;&amp; style.fontSize() &gt;= 11) {
</span><span class="cx">         // Don't apply intrinsic margins to image buttons. The designer knows how big the images are,
</span><span class="cx">         // so we have to treat all image buttons as though they were explicitly sized.
</span><del>-        if (!isHTMLInputElement(e) || !toHTMLInputElement(e)-&gt;isImageButton())
</del><ins>+        if (!isHTMLInputElement(e) || !downcast&lt;HTMLInputElement&gt;(*e).isImageButton())
</ins><span class="cx">             addIntrinsicMargins(style);
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleSheetListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleSheetList.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleSheetList.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/css/StyleSheetList.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx"> HTMLStyleElement* StyleSheetList::getNamedItem(const String&amp; name) const
</span><span class="cx"> {
</span><span class="cx">     if (!m_document)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     // IE also supports retrieving a stylesheet by name, using the name/id of the &lt;style&gt; tag
</span><span class="cx">     // (this is consistent with all the other collections)
</span><span class="lines">@@ -77,8 +77,8 @@
</span><span class="cx">     // But unicity of stylesheet ids is good practice anyway ;)
</span><span class="cx">     Element* element = m_document-&gt;getElementById(name);
</span><span class="cx">     if (element &amp;&amp; isHTMLStyleElement(element))
</span><del>-        return toHTMLStyleElement(element);
-    return 0;
</del><ins>+        return downcast&lt;HTMLStyleElement&gt;(element);
+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorecssjitSelectorCompilercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/cssjit/SelectorCompiler.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/cssjit/SelectorCompiler.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/cssjit/SelectorCompiler.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -2785,7 +2785,7 @@
</span><span class="cx">     if (isHTMLTextFormControlElement(*element)) {
</span><span class="cx">         if (checkingContext-&gt;resolvingMode == SelectorChecker::Mode::ResolvingStyle)
</span><span class="cx">             checkingContext-&gt;elementStyle-&gt;setUnique();
</span><del>-        return toHTMLTextFormControlElement(*element).isPlaceholderVisible();
</del><ins>+        return downcast&lt;HTMLTextFormControlElement&gt;(*element).isPlaceholderVisible();
</ins><span class="cx">     }
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="lines">@@ -2797,14 +2797,14 @@
</span><span class="cx">             if (RenderStyle* style = element-&gt;renderStyle())
</span><span class="cx">                 style-&gt;setUnique();
</span><span class="cx">         }
</span><del>-        return toHTMLTextFormControlElement(*element).isPlaceholderVisible();
</del><ins>+        return downcast&lt;HTMLTextFormControlElement&gt;(*element).isPlaceholderVisible();
</ins><span class="cx">     }
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool isPlaceholderShown(Element* element)
</span><span class="cx"> {
</span><del>-    return isHTMLTextFormControlElement(*element) &amp;&amp; toHTMLTextFormControlElement(*element).isPlaceholderVisible();
</del><ins>+    return isHTMLTextFormControlElement(*element) &amp;&amp; downcast&lt;HTMLTextFormControlElement&gt;(*element).isPlaceholderVisible();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SelectorCodeGenerator::generateElementHasPlaceholderShown(Assembler::JumpList&amp; failureCases, const SelectorFragment&amp; fragment)
</span></span></pre></div>
<a id="trunkSourceWebCoredomCurrentScriptIncrementerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/CurrentScriptIncrementer.h (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/CurrentScriptIncrementer.h        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/dom/CurrentScriptIncrementer.h        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx">         , m_isHTMLScriptElement(isHTMLScriptElement(element))
</span><span class="cx">     {
</span><span class="cx">         if (m_isHTMLScriptElement)
</span><del>-            m_document-&gt;pushCurrentScript(toHTMLScriptElement(element));
</del><ins>+            m_document-&gt;pushCurrentScript(downcast&lt;HTMLScriptElement&gt;(element));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ~CurrentScriptIncrementer()
</span></span></pre></div>
<a id="trunkSourceWebCoredomDataTransfercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DataTransfer.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DataTransfer.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/dom/DataTransfer.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -253,11 +253,9 @@
</span><span class="cx">     if (!canSetDragImage())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    CachedImage* image;
</del><ins>+    CachedImage* image = nullptr;
</ins><span class="cx">     if (element &amp;&amp; isHTMLImageElement(element) &amp;&amp; !element-&gt;inDocument())
</span><del>-        image = toHTMLImageElement(element)-&gt;cachedImage();
-    else
-        image = 0;
</del><ins>+        image = downcast&lt;HTMLImageElement&gt;(*element).cachedImage();
</ins><span class="cx"> 
</span><span class="cx">     m_dragLocation = IntPoint(x, y);
</span><span class="cx"> 
</span><span class="lines">@@ -270,7 +268,7 @@
</span><span class="cx">         m_dragImageLoader-&gt;startLoading(m_dragImage);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_dragImageElement = image ? 0 : element;
</del><ins>+    m_dragImageElement = image ? nullptr : element;
</ins><span class="cx"> 
</span><span class="cx">     updateDragImage();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/dom/Document.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1551,8 +1551,8 @@
</span><span class="cx">     // The DOM API has no method of specifying direction, so assume LTR.
</span><span class="cx">     updateTitle(StringWithDirection(title, LTR));
</span><span class="cx"> 
</span><del>-    if (m_titleElement &amp;&amp; isHTMLTitleElement(m_titleElement.get()))
-        toHTMLTitleElement(m_titleElement.get())-&gt;setText(title);
</del><ins>+    if (m_titleElement &amp;&amp; isHTMLTitleElement(*m_titleElement))
+        downcast&lt;HTMLTitleElement&gt;(*m_titleElement).setText(title);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Document::setTitleElement(const StringWithDirection&amp; title, Element* titleElement)
</span><span class="lines">@@ -2881,7 +2881,7 @@
</span><span class="cx">         // FIXME: make setCookie work on XML documents too; e.g. in case of &lt;html:meta .....&gt;
</span><span class="cx">         if (isHTMLDocument()) {
</span><span class="cx">             // Exception (for sandboxed documents) ignored.
</span><del>-            toHTMLDocument(this)-&gt;setCookie(content, IGNORE_EXCEPTION);
</del><ins>+            downcast&lt;HTMLDocument&gt;(*this).setCookie(content, IGNORE_EXCEPTION);
</ins><span class="cx">         }
</span><span class="cx">         break;
</span><span class="cx"> 
</span><span class="lines">@@ -4652,14 +4652,14 @@
</span><span class="cx">         Node* child = children-&gt;item(i);
</span><span class="cx">         if (!child-&gt;hasTagName(linkTag))
</span><span class="cx">             continue;
</span><del>-        HTMLLinkElement* linkElement = toHTMLLinkElement(child);
-        if (!(linkElement-&gt;iconType() &amp; iconTypesMask))
</del><ins>+        HTMLLinkElement&amp; linkElement = downcast&lt;HTMLLinkElement&gt;(*child);
+        if (!(linkElement.iconType() &amp; iconTypesMask))
</ins><span class="cx">             continue;
</span><del>-        if (linkElement-&gt;href().isEmpty())
</del><ins>+        if (linkElement.href().isEmpty())
</ins><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         // Put it at the front to ensure that icons seen later take precedence as required by the spec.
</span><del>-        IconURL newURL(linkElement-&gt;href(), linkElement-&gt;iconSizes(), linkElement-&gt;type(), linkElement-&gt;iconType());
</del><ins>+        IconURL newURL(linkElement.href(), linkElement.iconSizes(), linkElement.type(), linkElement.iconType());
</ins><span class="cx">         m_iconURLs.append(newURL);
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentOrderedMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DocumentOrderedMap.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DocumentOrderedMap.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/dom/DocumentOrderedMap.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -53,18 +53,18 @@
</span><span class="cx"> 
</span><span class="cx"> inline bool keyMatchesMapName(const AtomicStringImpl&amp; key, const Element&amp; element)
</span><span class="cx"> {
</span><del>-    return isHTMLMapElement(element) &amp;&amp; toHTMLMapElement(element).getName().impl() == &amp;key;
</del><ins>+    return isHTMLMapElement(element) &amp;&amp; downcast&lt;HTMLMapElement&gt;(element).getName().impl() == &amp;key;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline bool keyMatchesLowercasedMapName(const AtomicStringImpl&amp; key, const Element&amp; element)
</span><span class="cx"> {
</span><del>-    return isHTMLMapElement(element) &amp;&amp; toHTMLMapElement(element).getName().lower().impl() == &amp;key;
</del><ins>+    return isHTMLMapElement(element) &amp;&amp; downcast&lt;HTMLMapElement&gt;(element).getName().lower().impl() == &amp;key;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline bool keyMatchesLowercasedUsemap(const AtomicStringImpl&amp; key, const Element&amp; element)
</span><span class="cx"> {
</span><span class="cx">     // FIXME: HTML5 specification says we should match both image and object elements.
</span><del>-    return isHTMLImageElement(element) &amp;&amp; toHTMLImageElement(element).matchesLowercasedUsemap(key);
</del><ins>+    return isHTMLImageElement(element) &amp;&amp; downcast&lt;HTMLImageElement&gt;(element).matchesLowercasedUsemap(key);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline bool keyMatchesLabelForAttribute(const AtomicStringImpl&amp; key, const Element&amp; element)
</span><span class="lines">@@ -168,22 +168,22 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLMapElement* DocumentOrderedMap::getElementByMapName(const AtomicStringImpl&amp; key, const TreeScope&amp; scope) const
</span><span class="cx"> {
</span><del>-    return toHTMLMapElement(get&lt;keyMatchesMapName&gt;(key, scope));
</del><ins>+    return downcast&lt;HTMLMapElement&gt;(get&lt;keyMatchesMapName&gt;(key, scope));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HTMLMapElement* DocumentOrderedMap::getElementByLowercasedMapName(const AtomicStringImpl&amp; key, const TreeScope&amp; scope) const
</span><span class="cx"> {
</span><del>-    return toHTMLMapElement(get&lt;keyMatchesLowercasedMapName&gt;(key, scope));
</del><ins>+    return downcast&lt;HTMLMapElement&gt;(get&lt;keyMatchesLowercasedMapName&gt;(key, scope));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HTMLImageElement* DocumentOrderedMap::getElementByLowercasedUsemap(const AtomicStringImpl&amp; key, const TreeScope&amp; scope) const
</span><span class="cx"> {
</span><del>-    return toHTMLImageElement(get&lt;keyMatchesLowercasedUsemap&gt;(key, scope));
</del><ins>+    return downcast&lt;HTMLImageElement&gt;(get&lt;keyMatchesLowercasedUsemap&gt;(key, scope));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HTMLLabelElement* DocumentOrderedMap::getElementByLabelForAttribute(const AtomicStringImpl&amp; key, const TreeScope&amp; scope) const
</span><span class="cx"> {
</span><del>-    return toHTMLLabelElement(get&lt;keyMatchesLabelForAttribute&gt;(key, scope));
</del><ins>+    return downcast&lt;HTMLLabelElement&gt;(get&lt;keyMatchesLabelForAttribute&gt;(key, scope));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Element* DocumentOrderedMap::getElementByWindowNamedItem(const AtomicStringImpl&amp; key, const TreeScope&amp; scope) const
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentStyleSheetCollectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DocumentStyleSheetCollection.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DocumentStyleSheetCollection.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/dom/DocumentStyleSheetCollection.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -286,7 +286,7 @@
</span><span class="cx">             bool enabledViaScript = false;
</span><span class="cx">             if (isHTMLLinkElement(element)) {
</span><span class="cx">                 // &lt;LINK&gt; element
</span><del>-                HTMLLinkElement&amp; linkElement = toHTMLLinkElement(element);
</del><ins>+                HTMLLinkElement&amp; linkElement = downcast&lt;HTMLLinkElement&gt;(element);
</ins><span class="cx">                 if (linkElement.isDisabled())
</span><span class="cx">                     continue;
</span><span class="cx">                 enabledViaScript = linkElement.isEnabledViaScript();
</span><span class="lines">@@ -308,9 +308,9 @@
</span><span class="cx">             if (isSVGStyleElement(element))
</span><span class="cx">                 sheet = downcast&lt;SVGStyleElement&gt;(element).sheet();
</span><span class="cx">             else if (isHTMLLinkElement(element))
</span><del>-                sheet = toHTMLLinkElement(element).sheet();
</del><ins>+                sheet = downcast&lt;HTMLLinkElement&gt;(element).sheet();
</ins><span class="cx">             else
</span><del>-                sheet = toHTMLStyleElement(element).sheet();
</del><ins>+                sheet = downcast&lt;HTMLStyleElement&gt;(element).sheet();
</ins><span class="cx">             // Check to see if this sheet belongs to a styleset
</span><span class="cx">             // (thus making it PREFERRED or ALTERNATE rather than
</span><span class="cx">             // PERSISTENT).
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/dom/Element.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1338,7 +1338,7 @@
</span><span class="cx">         elementRareData()-&gt;clearClassListValueForQuirksMode();
</span><span class="cx"> 
</span><span class="cx">     TreeScope* newScope = &amp;insertionPoint.treeScope();
</span><del>-    HTMLDocument* newDocument = !wasInDocument &amp;&amp; inDocument() &amp;&amp; newScope-&gt;documentScope().isHTMLDocument() ? toHTMLDocument(&amp;newScope-&gt;documentScope()) : nullptr;
</del><ins>+    HTMLDocument* newDocument = !wasInDocument &amp;&amp; inDocument() &amp;&amp; newScope-&gt;documentScope().isHTMLDocument() ? downcast&lt;HTMLDocument&gt;(&amp;newScope-&gt;documentScope()) : nullptr;
</ins><span class="cx">     if (newScope != &amp;treeScope())
</span><span class="cx">         newScope = nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -1381,7 +1381,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (insertionPoint.isInTreeScope()) {
</span><span class="cx">         TreeScope* oldScope = &amp;insertionPoint.treeScope();
</span><del>-        HTMLDocument* oldDocument = inDocument() &amp;&amp; oldScope-&gt;documentScope().isHTMLDocument() ? toHTMLDocument(&amp;oldScope-&gt;documentScope()) : nullptr;
</del><ins>+        HTMLDocument* oldDocument = inDocument() &amp;&amp; oldScope-&gt;documentScope().isHTMLDocument() ? downcast&lt;HTMLDocument&gt;(&amp;oldScope-&gt;documentScope()) : nullptr;
</ins><span class="cx">         if (oldScope != &amp;treeScope() || !isInTreeScope())
</span><span class="cx">             oldScope = nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -2590,7 +2590,7 @@
</span><span class="cx">         return;
</span><span class="cx">     if (!document().isHTMLDocument())
</span><span class="cx">         return;
</span><del>-    updateNameForDocument(toHTMLDocument(document()), oldName, newName);
</del><ins>+    updateNameForDocument(downcast&lt;HTMLDocument&gt;(document()), oldName, newName);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Element::updateNameForTreeScope(TreeScope&amp; scope, const AtomicString&amp; oldName, const AtomicString&amp; newName)
</span><span class="lines">@@ -2638,7 +2638,7 @@
</span><span class="cx">         return;
</span><span class="cx">     if (!document().isHTMLDocument())
</span><span class="cx">         return;
</span><del>-    updateIdForDocument(toHTMLDocument(document()), oldId, newId, UpdateHTMLDocumentNamedItemMapsOnlyIfDiffersFromNameAttribute);
</del><ins>+    updateIdForDocument(downcast&lt;HTMLDocument&gt;(document()), oldId, newId, UpdateHTMLDocumentNamedItemMapsOnlyIfDiffersFromNameAttribute);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Element::updateIdForTreeScope(TreeScope&amp; scope, const AtomicString&amp; oldId, const AtomicString&amp; newId)
</span><span class="lines">@@ -2685,9 +2685,9 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (!oldForAttributeValue.isEmpty())
</span><del>-        scope.removeLabel(*oldForAttributeValue.impl(), *toHTMLLabelElement(this));
</del><ins>+        scope.removeLabel(*oldForAttributeValue.impl(), downcast&lt;HTMLLabelElement&gt;(*this));
</ins><span class="cx">     if (!newForAttributeValue.isEmpty())
</span><del>-        scope.addLabel(*newForAttributeValue.impl(), *toHTMLLabelElement(this));
</del><ins>+        scope.addLabel(*newForAttributeValue.impl(), downcast&lt;HTMLLabelElement&gt;(*this));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Element::willModifyAttribute(const QualifiedName&amp; name, const AtomicString&amp; oldValue, const AtomicString&amp; newValue)
</span><span class="lines">@@ -2741,11 +2741,10 @@
</span><span class="cx">     if (HTMLCollection* collection = cachedHTMLCollection(type))
</span><span class="cx">         return collection;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;HTMLCollection&gt; collection;
</del><span class="cx">     if (type == TableRows) {
</span><del>-        return ensureRareData().ensureNodeLists().addCachedCollection&lt;HTMLTableRowsCollection&gt;(toHTMLTableElement(*this), type);
</del><ins>+        return ensureRareData().ensureNodeLists().addCachedCollection&lt;HTMLTableRowsCollection&gt;(downcast&lt;HTMLTableElement&gt;(*this), type);
</ins><span class="cx">     } else if (type == SelectOptions) {
</span><del>-        return ensureRareData().ensureNodeLists().addCachedCollection&lt;HTMLOptionsCollection&gt;(toHTMLSelectElement(*this), type);
</del><ins>+        return ensureRareData().ensureNodeLists().addCachedCollection&lt;HTMLOptionsCollection&gt;(downcast&lt;HTMLSelectElement&gt;(*this), type);
</ins><span class="cx">     } else if (type == FormControls) {
</span><span class="cx">         ASSERT(hasTagName(formTag) || hasTagName(fieldsetTag));
</span><span class="cx">         return ensureRareData().ensureNodeLists().addCachedCollection&lt;HTMLFormControlsCollection&gt;(*this, type);
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventDispatcher.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventDispatcher.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/dom/EventDispatcher.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -357,17 +357,17 @@
</span><span class="cx"> 
</span><span class="cx">     InputElementClickState clickHandlingState;
</span><span class="cx">     if (isHTMLInputElement(node.get()))
</span><del>-        toHTMLInputElement(*node).willDispatchEvent(*event, clickHandlingState);
</del><ins>+        downcast&lt;HTMLInputElement&gt;(*node).willDispatchEvent(*event, clickHandlingState);
</ins><span class="cx"> 
</span><span class="cx">     if (!event-&gt;propagationStopped() &amp;&amp; !eventPath.isEmpty())
</span><span class="cx">         dispatchEventInDOM(*event, eventPath, windowEventContext);
</span><span class="cx"> 
</span><span class="cx">     event-&gt;setTarget(&amp;eventTargetRespectingTargetRules(*node));
</span><del>-    event-&gt;setCurrentTarget(0);
</del><ins>+    event-&gt;setCurrentTarget(nullptr);
</ins><span class="cx">     event-&gt;setEventPhase(0);
</span><span class="cx"> 
</span><span class="cx">     if (clickHandlingState.stateful)
</span><del>-        toHTMLInputElement(*node).didDispatchClickEvent(*event, clickHandlingState);
</del><ins>+        downcast&lt;HTMLInputElement&gt;(*node).didDispatchClickEvent(*event, clickHandlingState);
</ins><span class="cx"> 
</span><span class="cx">     // Call default event handlers. While the DOM does have a concept of preventing
</span><span class="cx">     // default handling, the detail of which handlers are called is an internal
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/dom/ScriptElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -383,7 +383,7 @@
</span><span class="cx"> ScriptElement* toScriptElementIfPossible(Element* element)
</span><span class="cx"> {
</span><span class="cx">     if (isHTMLScriptElement(element))
</span><del>-        return toHTMLScriptElement(element);
</del><ins>+        return downcast&lt;HTMLScriptElement&gt;(element);
</ins><span class="cx"> 
</span><span class="cx">     if (isSVGScriptElement(element))
</span><span class="cx">         return downcast&lt;SVGScriptElement&gt;(element);
</span></span></pre></div>
<a id="trunkSourceWebCoredomVisitedLinkStatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/VisitedLinkState.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/VisitedLinkState.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/dom/VisitedLinkState.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> inline static LinkHash linkHashForElement(Document&amp; document, Element&amp; element)
</span><span class="cx"> {
</span><span class="cx">     if (isHTMLAnchorElement(element))
</span><del>-        return toHTMLAnchorElement(element).visitedLinkHash();
</del><ins>+        return downcast&lt;HTMLAnchorElement&gt;(element).visitedLinkHash();
</ins><span class="cx">     if (const AtomicString* attribute = linkAttribute(element))
</span><span class="cx">         return WebCore::visitedLinkHash(document.baseURL(), *attribute);
</span><span class="cx">     return 0;
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx"> 
</span><span class="cx">     LinkHash hash;
</span><span class="cx">     if (isHTMLAnchorElement(element))
</span><del>-        hash = toHTMLAnchorElement(element).visitedLinkHash();
</del><ins>+        hash = downcast&lt;HTMLAnchorElement&gt;(element).visitedLinkHash();
</ins><span class="cx">     else
</span><span class="cx">         hash = WebCore::visitedLinkHash(element.document().baseURL(), *attribute);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredommake_namespl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/make_names.pl (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/make_names.pl        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/dom/make_names.pl        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -666,14 +666,6 @@
</span><span class="cx"> };
</span><span class="cx"> END
</span><span class="cx">         ;
</span><del>-        if ($parameters{namespace} eq &quot;HTML&quot;) {
-            print F &lt;&lt;END
-// FIXME: Remove these macros once the code has been ported to using
-// downcast&lt;*Element&gt;().
-#define to$class(x) WebCore::downcast&lt;WebCore::$class&gt;(x)
-END
-            ;
-        }
</del><span class="cx">         print F &quot;\n&quot;;
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/Editor.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/Editor.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/editing/Editor.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -209,7 +209,7 @@
</span><span class="cx">     // If the target is a text control, and the current selection is outside of its shadow tree,
</span><span class="cx">     // then use the saved selection for that text control.
</span><span class="cx">     HTMLTextFormControlElement* textFormControlOfSelectionStart = enclosingTextFormControl(selection.start());
</span><del>-    HTMLTextFormControlElement* textFromControlOfTarget = isHTMLTextFormControlElement(*event-&gt;target()-&gt;toNode()) ? toHTMLTextFormControlElement(event-&gt;target()-&gt;toNode()) : nullptr;
</del><ins>+    HTMLTextFormControlElement* textFromControlOfTarget = isHTMLTextFormControlElement(*event-&gt;target()-&gt;toNode()) ? downcast&lt;HTMLTextFormControlElement&gt;(event-&gt;target()-&gt;toNode()) : nullptr;
</ins><span class="cx">     if (textFromControlOfTarget &amp;&amp; (selection.start().isNull() || textFromControlOfTarget != textFormControlOfSelectionStart)) {
</span><span class="cx">         if (RefPtr&lt;Range&gt; range = textFromControlOfTarget-&gt;selection())
</span><span class="cx">             return VisibleSelection(range.get(), DOWNSTREAM, selection.isDirectional());
</span><span class="lines">@@ -321,18 +321,18 @@
</span><span class="cx"> static HTMLImageElement* imageElementFromImageDocument(Document&amp; document)
</span><span class="cx"> {
</span><span class="cx">     if (!document.isImageDocument())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     
</span><span class="cx">     HTMLElement* body = document.body();
</span><span class="cx">     if (!body)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     
</span><span class="cx">     Node* node = body-&gt;firstChild();
</span><span class="cx">     if (!node)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     if (!isHTMLImageElement(node))
</span><del>-        return 0;
-    return toHTMLImageElement(node);
</del><ins>+        return nullptr;
+    return downcast&lt;HTMLImageElement&gt;(node);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Editor::canCopy() const
</span><span class="lines">@@ -3533,18 +3533,18 @@
</span><span class="cx"> {
</span><span class="cx">     while (node) {
</span><span class="cx">         if (!node-&gt;renderer())
</span><del>-            return 0;
</del><ins>+            return nullptr;
</ins><span class="cx">         if (node-&gt;renderer()-&gt;isTextOrLineBreak())
</span><span class="cx">             return node;
</span><span class="cx">         if (isHTMLTextFormControlElement(*node))
</span><del>-            node = toHTMLTextFormControlElement(node)-&gt;visiblePositionForIndex(1).deepEquivalent().deprecatedNode();
</del><ins>+            node = downcast&lt;HTMLTextFormControlElement&gt;(*node).visiblePositionForIndex(1).deepEquivalent().deprecatedNode();
</ins><span class="cx">         else if (node-&gt;firstChild())
</span><span class="cx">             node = node-&gt;firstChild();
</span><span class="cx">         else
</span><span class="cx">             node = node-&gt;nextSibling();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Editor::selectionStartHasMarkerFor(DocumentMarker::MarkerType markerType, int from, int length) const
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingFrameSelectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/FrameSelection.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/FrameSelection.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/editing/FrameSelection.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1670,16 +1670,16 @@
</span><span class="cx">     Document* document = m_frame-&gt;document();
</span><span class="cx"> 
</span><span class="cx">     Element* focusedElement = document-&gt;focusedElement();
</span><del>-    if (focusedElement &amp;&amp; focusedElement-&gt;hasTagName(selectTag)) {
-        HTMLSelectElement* selectElement = toHTMLSelectElement(document-&gt;focusedElement());
-        if (selectElement-&gt;canSelectAll()) {
-            selectElement-&gt;selectAll();
</del><ins>+    if (focusedElement &amp;&amp; isHTMLSelectElement(focusedElement)) {
+        HTMLSelectElement&amp; selectElement = downcast&lt;HTMLSelectElement&gt;(*focusedElement);
+        if (selectElement.canSelectAll()) {
+            selectElement.selectAll();
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Node&gt; root = 0;
-    Node* selectStartTarget = 0;
</del><ins>+    RefPtr&lt;Node&gt; root;
+    Node* selectStartTarget = nullptr;
</ins><span class="cx">     if (m_selection.isContentEditable()) {
</span><span class="cx">         root = highestEditableRoot(m_selection.start());
</span><span class="cx">         if (Node* shadowRoot = m_selection.nonBoundaryShadowTreeRootNode())
</span><span class="lines">@@ -1689,7 +1689,7 @@
</span><span class="cx">     } else {
</span><span class="cx">         if (m_selection.isNone() &amp;&amp; focusedElement) {
</span><span class="cx">             if (focusedElement-&gt;isTextFormControl()) {
</span><del>-                toHTMLTextFormControlElement(focusedElement)-&gt;select();
</del><ins>+                downcast&lt;HTMLTextFormControlElement&gt;(*focusedElement).select();
</ins><span class="cx">                 return;
</span><span class="cx">             }
</span><span class="cx">             root = focusedElement-&gt;nonBoundaryShadowTreeRootNode();
</span><span class="lines">@@ -2024,7 +2024,7 @@
</span><span class="cx">     for (auto it = descendants.from(*start), end = descendants.end(); it != end; ++it) {
</span><span class="cx">         HTMLElement&amp; element = *it;
</span><span class="cx">         if (isHTMLFormElement(&amp;element))
</span><del>-            return toHTMLFormElement(&amp;element);
</del><ins>+            return downcast&lt;HTMLFormElement&gt;(&amp;element);
</ins><span class="cx">         if (isHTMLFormControlElement(element))
</span><span class="cx">             return toHTMLFormControlElement(element).form();
</span><span class="cx">         if (isHTMLFrameElementBase(element)) {
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingMarkupAccumulatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/MarkupAccumulator.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/MarkupAccumulator.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/editing/MarkupAccumulator.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!(targetNode.document().isHTMLDocument() &amp;&amp; elementCannotHaveEndTag(targetNode))) {
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>-        Node* current = targetNode.hasTagName(templateTag) ? toHTMLTemplateElement(targetNode).content()-&gt;firstChild() : targetNode.firstChild();
</del><ins>+        Node* current = targetNode.hasTagName(templateTag) ? downcast&lt;HTMLTemplateElement&gt;(targetNode).content()-&gt;firstChild() : targetNode.firstChild();
</ins><span class="cx"> #else
</span><span class="cx">         Node* current = targetNode.firstChild();
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingReplaceSelectionCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1273,7 +1273,7 @@
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     Element* textControl = enclosingTextFormControl(positionAtStartOfInsertedContent().deepEquivalent());
</span><del>-    if (textControl &amp;&amp; isHTMLInputElement(textControl) &amp;&amp; toHTMLInputElement(textControl)-&gt;isPasswordField())
</del><ins>+    if (textControl &amp;&amp; isHTMLInputElement(textControl) &amp;&amp; downcast&lt;HTMLInputElement&gt;(*textControl).isPasswordField())
</ins><span class="cx">         return false; // Disable smart replace for password fields.
</span><span class="cx"> 
</span><span class="cx">     return true;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingVisibleSelectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/VisibleSelection.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/VisibleSelection.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/editing/VisibleSelection.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -658,13 +658,13 @@
</span><span class="cx"> 
</span><span class="cx"> Node* VisibleSelection::nonBoundaryShadowTreeRootNode() const
</span><span class="cx"> {
</span><del>-    return start().deprecatedNode() ? start().deprecatedNode()-&gt;nonBoundaryShadowTreeRootNode() : 0;
</del><ins>+    return start().deprecatedNode() ? start().deprecatedNode()-&gt;nonBoundaryShadowTreeRootNode() : nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool VisibleSelection::isInPasswordField() const
</span><span class="cx"> {
</span><span class="cx">     HTMLTextFormControlElement* textControl = enclosingTextFormControl(start());
</span><del>-    return textControl &amp;&amp; isHTMLInputElement(textControl) &amp;&amp; toHTMLInputElement(textControl)-&gt;isPasswordField();
</del><ins>+    return textControl &amp;&amp; isHTMLInputElement(textControl) &amp;&amp; downcast&lt;HTMLInputElement&gt;(*textControl).isPasswordField();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #ifndef NDEBUG
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingcocoaHTMLConvertermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -2035,7 +2035,7 @@
</span><span class="cx">             listStyleType = &quot;decimal&quot;;
</span><span class="cx">         list = adoptNS([[PlatformNSTextList alloc] initWithMarkerFormat:String(&quot;{&quot; + listStyleType + &quot;}&quot;) options:0]);
</span><span class="cx">         if (isHTMLOListElement(element)) {
</span><del>-            NSInteger startingItemNumber = toHTMLOListElement(element).start();;
</del><ins>+            NSInteger startingItemNumber = downcast&lt;HTMLOListElement&gt;(element).start();
</ins><span class="cx">             [list setStartingItemNumber:startingItemNumber];
</span><span class="cx">         }
</span><span class="cx">         [_textLists addObject:list.get()];
</span><span class="lines">@@ -2043,7 +2043,7 @@
</span><span class="cx">         _addQuoteForElement(element, YES, _quoteLevel++);
</span><span class="cx">     } else if (element.hasTagName(inputTag)) {
</span><span class="cx">         if (isHTMLInputElement(element)) {
</span><del>-            HTMLInputElement&amp; inputElement = toHTMLInputElement(element);
</del><ins>+            HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(element);
</ins><span class="cx">             if (inputElement.type() == &quot;text&quot;) {
</span><span class="cx">                 NSString *value = inputElement.value();
</span><span class="cx">                 if (value &amp;&amp; [value length] &gt; 0)
</span><span class="lines">@@ -2052,7 +2052,7 @@
</span><span class="cx">         }
</span><span class="cx">     } else if (element.hasTagName(textareaTag)) {
</span><span class="cx">         if (isHTMLTextAreaElement(element)) {
</span><del>-            HTMLTextAreaElement&amp; textAreaElement = toHTMLTextAreaElement(element);
</del><ins>+            HTMLTextAreaElement&amp; textAreaElement = downcast&lt;HTMLTextAreaElement&gt;(element);
</ins><span class="cx">             NSString *value = textAreaElement.value();
</span><span class="cx">             if (value &amp;&amp; [value length] &gt; 0)
</span><span class="cx">                 _addValue(value, element);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingiosEditorIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ios/EditorIOS.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ios/EditorIOS.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/editing/ios/EditorIOS.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -181,12 +181,12 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     Element* focusedElement = m_frame.document()-&gt;focusedElement();
</span><del>-    if (focusedElement &amp;&amp; (focusedElement-&gt;hasTagName(textareaTag) || (focusedElement-&gt;hasTagName(inputTag) &amp;&amp;
-        (toHTMLInputElement(focusedElement)-&gt;isTextField() ||
-         toHTMLInputElement(focusedElement)-&gt;isSearchField())))) {
</del><ins>+    if (focusedElement &amp;&amp; (isHTMLTextAreaElement(focusedElement) || (isHTMLInputElement(focusedElement)
+        &amp;&amp; (downcast&lt;HTMLInputElement&gt;(*focusedElement).isTextField()
+            || downcast&lt;HTMLInputElement&gt;(*focusedElement).isSearchField())))) {
</ins><span class="cx">         if (direction == NaturalWritingDirection)
</span><span class="cx">             return;
</span><del>-        toHTMLElement(focusedElement)-&gt;setAttribute(alignAttr, newValue);
</del><ins>+        toHTMLElement(*focusedElement).setAttribute(alignAttr, newValue);
</ins><span class="cx">         m_frame.document()-&gt;updateStyleIfNeeded();
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlColorInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ColorInputType.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ColorInputType.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/ColorInputType.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -228,7 +228,7 @@
</span><span class="cx">     HTMLDataListElement* dataList = element().dataList();
</span><span class="cx">     if (dataList) {
</span><span class="cx">         RefPtr&lt;HTMLCollection&gt; options = dataList-&gt;options();
</span><del>-        for (unsigned i = 0; HTMLOptionElement* option = toHTMLOptionElement(options-&gt;item(i)); i++) {
</del><ins>+        for (unsigned i = 0; HTMLOptionElement* option = downcast&lt;HTMLOptionElement&gt;(options-&gt;item(i)); ++i) {
</ins><span class="cx">             if (!element().isValidValue(option-&gt;value()))
</span><span class="cx">                 continue;
</span><span class="cx">             Color color(option-&gt;value());
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlFTPDirectoryDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/FTPDirectoryDocument.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/FTPDirectoryDocument.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/FTPDirectoryDocument.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -303,7 +303,7 @@
</span><span class="cx">     else if (!isHTMLTableElement(tableElement.get()))
</span><span class="cx">         LOG_ERROR(&quot;Element of id \&quot;ftpDirectoryTable\&quot; is not a table element&quot;);
</span><span class="cx">     else 
</span><del>-        m_tableElement = toHTMLTableElement(tableElement.get());
</del><ins>+        m_tableElement = downcast&lt;HTMLTableElement&gt;(tableElement.get());
</ins><span class="cx"> 
</span><span class="cx">     // Bail if we found the table element
</span><span class="cx">     if (m_tableElement)
</span><span class="lines">@@ -311,7 +311,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Otherwise create one manually
</span><span class="cx">     tableElement = document()-&gt;createElement(tableTag, false);
</span><del>-    m_tableElement = toHTMLTableElement(tableElement.get());
</del><ins>+    m_tableElement = downcast&lt;HTMLTableElement&gt;(tableElement.get());
</ins><span class="cx">     m_tableElement-&gt;setAttribute(HTMLNames::idAttr, &quot;ftpDirectoryTable&quot;);
</span><span class="cx"> 
</span><span class="cx">     // If we didn't find the table element, lets try to append our own to the body
</span><span class="lines">@@ -336,7 +336,7 @@
</span><span class="cx">     document()-&gt;appendChild(bodyElement, IGNORE_EXCEPTION);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Element&gt; tableElement = document()-&gt;createElement(tableTag, false);
</span><del>-    m_tableElement = toHTMLTableElement(tableElement.get());
</del><ins>+    m_tableElement = downcast&lt;HTMLTableElement&gt;(tableElement.get());
</ins><span class="cx">     m_tableElement-&gt;setAttribute(HTMLNames::idAttr, &quot;ftpDirectoryTable&quot;);
</span><span class="cx">     m_tableElement-&gt;setAttribute(HTMLNames::styleAttr, &quot;width:100%&quot;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlFormAssociatedElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/FormAssociatedElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/FormAssociatedElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/FormAssociatedElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -96,10 +96,10 @@
</span><span class="cx">         // the first element in the document to have an ID that equal to
</span><span class="cx">         // the value of form attribute, so we put the result of
</span><span class="cx">         // treeScope().getElementById() over the given element.
</span><del>-        HTMLFormElement* newForm = 0;
</del><ins>+        HTMLFormElement* newForm = nullptr;
</ins><span class="cx">         Element* newFormCandidate = element-&gt;treeScope().getElementById(formId);
</span><span class="cx">         if (newFormCandidate &amp;&amp; isHTMLFormElement(newFormCandidate))
</span><del>-            newForm = toHTMLFormElement(newFormCandidate);
</del><ins>+            newForm = downcast&lt;HTMLFormElement&gt;(newFormCandidate);
</ins><span class="cx">         return newForm;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAnchorElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -161,16 +161,16 @@
</span><span class="cx">     if (!isHTMLImageElement(target))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    HTMLImageElement* imageElement = toHTMLImageElement(target);
-    if (!imageElement || !imageElement-&gt;isServerMap())
</del><ins>+    HTMLImageElement&amp; imageElement = downcast&lt;HTMLImageElement&gt;(*target);
+    if (!imageElement.isServerMap())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (!imageElement-&gt;renderer() || !imageElement-&gt;renderer()-&gt;isRenderImage())
</del><ins>+    if (!imageElement.renderer() || !imageElement.renderer()-&gt;isRenderImage())
</ins><span class="cx">         return;
</span><del>-    RenderImage* renderer = toRenderImage(imageElement-&gt;renderer());
</del><ins>+    RenderImage&amp; renderer = toRenderImage(*imageElement.renderer());
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: This should probably pass true for useTransforms.
</span><del>-    FloatPoint absolutePosition = renderer-&gt;absoluteToLocal(FloatPoint(toMouseEvent(event)-&gt;pageX(), toMouseEvent(event)-&gt;pageY()));
</del><ins>+    FloatPoint absolutePosition = renderer.absoluteToLocal(FloatPoint(toMouseEvent(event)-&gt;pageX(), toMouseEvent(event)-&gt;pageY()));
</ins><span class="cx">     int x = absolutePosition.x();
</span><span class="cx">     int y = absolutePosition.y();
</span><span class="cx">     url.append('?');
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAreaElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAreaElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLAreaElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -183,9 +183,9 @@
</span><span class="cx"> {
</span><span class="cx">     Node* mapElement = parentNode();
</span><span class="cx">     if (!mapElement || !isHTMLMapElement(mapElement))
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     
</span><del>-    return toHTMLMapElement(mapElement)-&gt;imageElement();
</del><ins>+    return downcast&lt;HTMLMapElement&gt;(*mapElement).imageElement();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLAreaElement::isKeyboardFocusable(KeyboardEvent*) const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLCollectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLCollection.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLCollection.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLCollection.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -191,10 +191,10 @@
</span><span class="cx">     case SelectOptions:
</span><span class="cx">         return element.hasTagName(optionTag);
</span><span class="cx">     case SelectedOptions:
</span><del>-        return element.hasTagName(optionTag) &amp;&amp; toHTMLOptionElement(element).selected();
</del><ins>+        return isHTMLOptionElement(element) &amp;&amp; downcast&lt;HTMLOptionElement&gt;(element).selected();
</ins><span class="cx">     case DataListOptions:
</span><del>-        if (element.hasTagName(optionTag)) {
-            HTMLOptionElement&amp; option = toHTMLOptionElement(element);
</del><ins>+        if (isHTMLOptionElement(element)) {
+            HTMLOptionElement&amp; option = downcast&lt;HTMLOptionElement&gt;(element);
</ins><span class="cx">             if (!option.isDisabledFormControl() &amp;&amp; !option.value().isEmpty())
</span><span class="cx">                 return true;
</span><span class="cx">         }
</span><span class="lines">@@ -202,7 +202,7 @@
</span><span class="cx">     case MapAreas:
</span><span class="cx">         return element.hasTagName(areaTag);
</span><span class="cx">     case DocApplets:
</span><del>-        return element.hasTagName(appletTag) || (element.hasTagName(objectTag) &amp;&amp; toHTMLObjectElement(element).containsJavaApplet());
</del><ins>+        return element.hasTagName(appletTag) || (isHTMLObjectElement(element) &amp;&amp; downcast&lt;HTMLObjectElement&gt;(element).containsJavaApplet());
</ins><span class="cx">     case DocEmbeds:
</span><span class="cx">         return element.hasTagName(embedTag);
</span><span class="cx">     case DocLinks:
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -379,7 +379,7 @@
</span><span class="cx"> 
</span><span class="cx">     const Document&amp; document = this-&gt;document();
</span><span class="cx">     if (document.isHTMLDocument()) {
</span><del>-        const HTMLDocument&amp; htmlDocument = toHTMLDocument(document);
</del><ins>+        const HTMLDocument&amp; htmlDocument = downcast&lt;HTMLDocument&gt;(document);
</ins><span class="cx">         return htmlDocument.inDesignMode();
</span><span class="cx">     }
</span><span class="cx">     return false;
</span><span class="lines">@@ -427,8 +427,8 @@
</span><span class="cx">     if (RefPtr&lt;DocumentFragment&gt; fragment = createFragmentForInnerOuterHTML(html, this, AllowScriptingContent, ec)) {
</span><span class="cx">         ContainerNode* container = this;
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>-        if (hasTagName(templateTag))
-            container = toHTMLTemplateElement(this)-&gt;content();
</del><ins>+        if (isHTMLTemplateElement(*this))
+            container = downcast&lt;HTMLTemplateElement&gt;(*this).content();
</ins><span class="cx"> #endif
</span><span class="cx">         replaceChildrenWithFragment(*container, fragment.release(), ec);
</span><span class="cx">     }
</span><span class="lines">@@ -920,11 +920,11 @@
</span><span class="cx"> TextDirection HTMLElement::directionality(Node** strongDirectionalityTextNode) const
</span><span class="cx"> {
</span><span class="cx">     if (isHTMLTextFormControlElement(*this)) {
</span><del>-        HTMLTextFormControlElement* textElement = toHTMLTextFormControlElement(const_cast&lt;HTMLElement*&gt;(this));
</del><ins>+        HTMLTextFormControlElement&amp; textElement = downcast&lt;HTMLTextFormControlElement&gt;(const_cast&lt;HTMLElement&amp;&gt;(*this));
</ins><span class="cx">         bool hasStrongDirectionality;
</span><del>-        UCharDirection textDirection = textElement-&gt;value().defaultWritingDirection(&amp;hasStrongDirectionality);
</del><ins>+        UCharDirection textDirection = textElement.value().defaultWritingDirection(&amp;hasStrongDirectionality);
</ins><span class="cx">         if (strongDirectionalityTextNode)
</span><del>-            *strongDirectionalityTextNode = hasStrongDirectionality ? textElement : nullptr;
</del><ins>+            *strongDirectionalityTextNode = hasStrongDirectionality ? &amp;textElement : nullptr;
</ins><span class="cx">         return (textDirection == U_LEFT_TO_RIGHT) ? LTR : RTL;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLEmbedElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLEmbedElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLEmbedElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLEmbedElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -188,12 +188,12 @@
</span><span class="cx"> 
</span><span class="cx">     // If my parent is an &lt;object&gt; and is not set to use fallback content, I
</span><span class="cx">     // should be ignored and not get a renderer.
</span><del>-    ContainerNode* p = parentNode();
-    if (p &amp;&amp; p-&gt;hasTagName(objectTag)) {
-        if (!p-&gt;renderer())
</del><ins>+    ContainerNode* parent = parentNode();
+    if (parent &amp;&amp; isHTMLObjectElement(parent)) {
+        if (!parent-&gt;renderer())
</ins><span class="cx">             return false;
</span><del>-        if (!toHTMLObjectElement(p)-&gt;useFallbackContent()) {
-            ASSERT(!p-&gt;renderer()-&gt;isEmbeddedObject());
</del><ins>+        if (!downcast&lt;HTMLObjectElement&gt;(*parent).useFallbackContent()) {
+            ASSERT(!parent-&gt;renderer()-&gt;isEmbeddedObject());
</ins><span class="cx">             return false;
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFieldSetElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFieldSetElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFieldSetElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLFieldSetElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; element : descendantsOfType&lt;Element&gt;(const_cast&lt;HTMLFieldSetElement&amp;&gt;(*this))) {
</span><span class="cx">         if (element.hasTagName(objectTag))
</span><del>-            m_associatedElements.append(&amp;toHTMLObjectElement(element));
</del><ins>+            m_associatedElements.append(&amp;downcast&lt;HTMLObjectElement&gt;(element));
</ins><span class="cx">         else if (element.isFormControlElement())
</span><span class="cx">             m_associatedElements.append(&amp;toHTMLFormControlElement(element));
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormControlElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormControlElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormControlElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLFormControlElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx">     Element* previousAncestor = nullptr;
</span><span class="cx">     for (Element* ancestor = parentElement(); ancestor; ancestor = ancestor-&gt;parentElement()) {
</span><span class="cx">         if (isHTMLFieldSetElement(ancestor) &amp;&amp; ancestor-&gt;fastHasAttribute(disabledAttr)) {
</span><del>-            HTMLFieldSetElement&amp; fieldSetAncestor = toHTMLFieldSetElement(*ancestor);
</del><ins>+            HTMLFieldSetElement&amp; fieldSetAncestor = downcast&lt;HTMLFieldSetElement&gt;(*ancestor);
</ins><span class="cx">             bool isInFirstLegend = previousAncestor &amp;&amp; isHTMLLegendElement(previousAncestor) &amp;&amp; previousAncestor == fieldSetAncestor.legend();
</span><span class="cx">             return !isInFirstLegend;
</span><span class="cx">         }
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx">     // FIXME: Should this set of hasTagName checks be replaced by a
</span><span class="cx">     // virtual member function?
</span><span class="cx">     if (isHTMLInputElement(element))
</span><del>-        return !toHTMLInputElement(element)-&gt;isInputTypeHidden();
</del><ins>+        return !downcast&lt;HTMLInputElement&gt;(*element).isInputTypeHidden();
</ins><span class="cx">     if (element-&gt;hasTagName(selectTag))
</span><span class="cx">         return true;
</span><span class="cx">     if (element-&gt;hasTagName(keygenTag))
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormControlsCollectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormControlsCollection.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormControlsCollection.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLFormControlsCollection.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -56,14 +56,14 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isHTMLFormElement(ownerNode()) || ownerNode().hasTagName(fieldsetTag));
</span><span class="cx">     if (isHTMLFormElement(ownerNode()))
</span><del>-        return toHTMLFormElement(ownerNode()).associatedElements();
-    return toHTMLFieldSetElement(ownerNode()).associatedElements();
</del><ins>+        return downcast&lt;HTMLFormElement&gt;(ownerNode()).associatedElements();
+    return downcast&lt;HTMLFieldSetElement&gt;(ownerNode()).associatedElements();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const Vector&lt;HTMLImageElement*&gt;&amp; HTMLFormControlsCollection::formImageElements() const
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isHTMLFormElement(ownerNode()));
</span><del>-    return toHTMLFormElement(ownerNode()).imageElements();
</del><ins>+    return downcast&lt;HTMLFormElement&gt;(ownerNode()).imageElements();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static unsigned findFormAssociatedElement(const Vector&lt;FormAssociatedElement*&gt;&amp; elements, const Element&amp; element)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLFormElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -318,7 +318,7 @@
</span><span class="cx">         HTMLElement&amp; element = control.asHTMLElement();
</span><span class="cx">         if (!isHTMLInputElement(element))
</span><span class="cx">             continue;
</span><del>-        HTMLInputElement&amp; input = toHTMLInputElement(element);
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(element);
</ins><span class="cx">         if (!input.isTextField())
</span><span class="cx">             continue;
</span><span class="cx">         fieldNamesAndValues.append(std::make_pair(input.name().string(), input.value()));
</span><span class="lines">@@ -745,7 +745,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ASSERT_WITH_SECURITY_IMPLICATION(element.hasTagName(imgTag));
</span><del>-    ASSERT_WITH_SECURITY_IMPLICATION(m_imageElements.find(&amp;toHTMLImageElement(element)) != notFound);
</del><ins>+    ASSERT_WITH_SECURITY_IMPLICATION(m_imageElements.find(&amp;downcast&lt;HTMLImageElement&gt;(element)) != notFound);
</ins><span class="cx"> }
</span><span class="cx"> #else
</span><span class="cx"> inline void HTMLFormElement::assertItemCanBeInPastNamesMap(FormNamedItem*) const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLImageElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -183,13 +183,13 @@
</span><span class="cx">         if (name == nameAttr) {
</span><span class="cx">             bool willHaveName = !value.isNull();
</span><span class="cx">             if (hasName() != willHaveName &amp;&amp; inDocument() &amp;&amp; document().isHTMLDocument()) {
</span><del>-                HTMLDocument* document = toHTMLDocument(&amp;this-&gt;document());
</del><ins>+                HTMLDocument&amp; document = downcast&lt;HTMLDocument&gt;(this-&gt;document());
</ins><span class="cx">                 const AtomicString&amp; id = getIdAttribute();
</span><span class="cx">                 if (!id.isEmpty() &amp;&amp; id != getNameAttribute()) {
</span><span class="cx">                     if (willHaveName)
</span><del>-                        document-&gt;addDocumentNamedItem(*id.impl(), *this);
</del><ins>+                        document.addDocumentNamedItem(*id.impl(), *this);
</ins><span class="cx">                     else
</span><del>-                        document-&gt;removeDocumentNamedItem(*id.impl(), *this);
</del><ins>+                        document.removeDocumentNamedItem(*id.impl(), *this);
</ins><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageLoader.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageLoader.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLImageLoader.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (loadError &amp;&amp; isHTMLObjectElement(element()))
</span><del>-        toHTMLObjectElement(element()).renderFallbackContent();
</del><ins>+        downcast&lt;HTMLObjectElement&gt;(element()).renderFallbackContent();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1515,18 +1515,16 @@
</span><span class="cx"> HTMLDataListElement* HTMLInputElement::dataList() const
</span><span class="cx"> {
</span><span class="cx">     if (!m_hasNonEmptyList)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     if (!m_inputType-&gt;shouldRespectListAttribute())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     Element* element = treeScope().getElementById(fastGetAttribute(listAttr));
</span><del>-    if (!element)
-        return 0;
-    if (!element-&gt;hasTagName(datalistTag))
-        return 0;
</del><ins>+    if (!element || !isHTMLDataListElement(element))
+        return nullptr;
</ins><span class="cx"> 
</span><del>-    return toHTMLDataListElement(element);
</del><ins>+    return downcast&lt;HTMLDataListElement&gt;(element);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLInputElement::resetListAttributeTargetObserver()
</span><span class="lines">@@ -1855,7 +1853,7 @@
</span><span class="cx"> #if ENABLE(DATALIST_ELEMENT)
</span><span class="cx">     if (HTMLDataListElement* dataList = this-&gt;dataList()) {
</span><span class="cx">         RefPtr&lt;HTMLCollection&gt; options = dataList-&gt;options();
</span><del>-        for (unsigned i = 0; HTMLOptionElement* option = toHTMLOptionElement(options-&gt;item(i)); ++i) {
</del><ins>+        for (unsigned i = 0; HTMLOptionElement* option = downcast&lt;HTMLOptionElement&gt;(options-&gt;item(i)); ++i) {
</ins><span class="cx">             if (!isValidValue(option-&gt;value()))
</span><span class="cx">                 continue;
</span><span class="cx">             parameters.suggestionValues.append(sanitizeValue(option-&gt;value()));
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLKeygenElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLKeygenElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLKeygenElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLKeygenElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -129,7 +129,7 @@
</span><span class="cx"> HTMLSelectElement* HTMLKeygenElement::shadowSelect() const
</span><span class="cx"> {
</span><span class="cx">     ShadowRoot* root = userAgentShadowRoot();
</span><del>-    return root ? toHTMLSelectElement(root-&gt;firstChild()) : 0;
</del><ins>+    return root ? downcast&lt;HTMLSelectElement&gt;(root-&gt;firstChild()) : nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLLegendElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLLegendElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLLegendElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLLegendElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -79,10 +79,10 @@
</span><span class="cx">     // its parent, then the form attribute must return the same value as the
</span><span class="cx">     // form attribute on that fieldset element. Otherwise, it must return null.
</span><span class="cx">     ContainerNode* fieldset = parentNode();
</span><del>-    if (!fieldset || !fieldset-&gt;hasTagName(fieldsetTag))
-        return 0;
</del><ins>+    if (!fieldset || !isHTMLFieldSetElement(fieldset))
+        return nullptr;
</ins><span class="cx"> 
</span><del>-    return toHTMLFieldSetElement(fieldset)-&gt;form();
</del><ins>+    return downcast&lt;HTMLFieldSetElement&gt;(*fieldset).form();
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> } // namespace
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -3876,7 +3876,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     URL mediaURL;
</span><del>-    HTMLSourceElement* source = 0;
</del><ins>+    HTMLSourceElement* source = nullptr;
</ins><span class="cx">     String type;
</span><span class="cx">     String system;
</span><span class="cx">     bool lookingForStartNode = m_nextChildNodeToConsider;
</span><span class="lines">@@ -3897,7 +3897,7 @@
</span><span class="cx">         if (node.parentNode() != this)
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        source = toHTMLSourceElement(&amp;node);
</del><ins>+        source = downcast&lt;HTMLSourceElement&gt;(&amp;node);
</ins><span class="cx"> 
</span><span class="cx">         // If candidate does not have a src attribute, or if its src attribute's value is the empty string ... jump down to the failed step below
</span><span class="cx">         mediaURL = source-&gt;getNonEmptyURLAttribute(srcAttr);
</span><span class="lines">@@ -4883,9 +4883,9 @@
</span><span class="cx">     if (hasMediaControls())
</span><span class="cx">         mediaControls()-&gt;enteredFullscreen();
</span><span class="cx">     if (document().page() &amp;&amp; isHTMLVideoElement(this)) {
</span><del>-        HTMLVideoElement* asVideo = toHTMLVideoElement(this);
</del><ins>+        HTMLVideoElement&amp; asVideo = downcast&lt;HTMLVideoElement&gt;(*this);
</ins><span class="cx">         if (document().page()-&gt;chrome().client().supportsVideoFullscreen()) {
</span><del>-            document().page()-&gt;chrome().client().enterVideoFullscreenForVideoElement(asVideo);
</del><ins>+            document().page()-&gt;chrome().client().enterVideoFullscreenForVideoElement(&amp;asVideo);
</ins><span class="cx">             scheduleEvent(eventNames().webkitbeginfullscreenEvent);
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLNameCollectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLNameCollection.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLNameCollection.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLNameCollection.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -66,14 +66,14 @@
</span><span class="cx"> bool DocumentNameCollection::elementMatchesIfIdAttributeMatch(const Element&amp; element)
</span><span class="cx"> {
</span><span class="cx">     // FIXME: we need to fix HTMLImageElement to update the hash map for us when name attribute has been removed.
</span><del>-    return element.hasTagName(appletTag) || (element.hasTagName(objectTag) &amp;&amp; toHTMLObjectElement(element).isDocNamedItem())
</del><ins>+    return element.hasTagName(appletTag) || (isHTMLObjectElement(element) &amp;&amp; downcast&lt;HTMLObjectElement&gt;(element).isDocNamedItem())
</ins><span class="cx">         || (isHTMLImageElement(element) &amp;&amp; element.hasName());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DocumentNameCollection::elementMatchesIfNameAttributeMatch(const Element&amp; element)
</span><span class="cx"> {
</span><span class="cx">     return isHTMLFormElement(element) || element.hasTagName(embedTag) || element.hasTagName(iframeTag)
</span><del>-        || element.hasTagName(appletTag) || (element.hasTagName(objectTag) &amp;&amp; toHTMLObjectElement(element).isDocNamedItem())
</del><ins>+        || element.hasTagName(appletTag) || (isHTMLObjectElement(element) &amp;&amp; downcast&lt;HTMLObjectElement&gt;(element).isDocNamedItem())
</ins><span class="cx">         || isHTMLImageElement(element);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -85,8 +85,8 @@
</span><span class="cx">         return element.getNameAttribute().impl() == name;
</span><span class="cx">     if (element.hasTagName(appletTag))
</span><span class="cx">         return element.getNameAttribute().impl() == name || element.getIdAttribute().impl() == name;
</span><del>-    if (element.hasTagName(objectTag))
-        return (element.getNameAttribute().impl() == name || element.getIdAttribute().impl() == name) &amp;&amp; toHTMLObjectElement(element).isDocNamedItem();
</del><ins>+    if (isHTMLObjectElement(element))
+        return (element.getNameAttribute().impl() == name || element.getIdAttribute().impl() == name) &amp;&amp; downcast&lt;HTMLObjectElement&gt;(element).isDocNamedItem();
</ins><span class="cx">     if (isHTMLImageElement(element))
</span><span class="cx">         return element.getNameAttribute().impl() == name || (element.getIdAttribute().impl() == name &amp;&amp; element.hasName());
</span><span class="cx">     return false;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLObjectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLObjectElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLObjectElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLObjectElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -436,22 +436,22 @@
</span><span class="cx">         child = child-&gt;nextSibling();
</span><span class="cx">     }
</span><span class="cx">     if (isNamedItem != wasNamedItem &amp;&amp; inDocument() &amp;&amp; document().isHTMLDocument()) {
</span><del>-        HTMLDocument* document = toHTMLDocument(&amp;this-&gt;document());
</del><ins>+        HTMLDocument&amp; document = downcast&lt;HTMLDocument&gt;(this-&gt;document());
</ins><span class="cx"> 
</span><span class="cx">         const AtomicString&amp; id = getIdAttribute();
</span><span class="cx">         if (!id.isEmpty()) {
</span><span class="cx">             if (isNamedItem)
</span><del>-                document-&gt;addDocumentNamedItem(*id.impl(), *this);
</del><ins>+                document.addDocumentNamedItem(*id.impl(), *this);
</ins><span class="cx">             else
</span><del>-                document-&gt;removeDocumentNamedItem(*id.impl(), *this);
</del><ins>+                document.removeDocumentNamedItem(*id.impl(), *this);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         const AtomicString&amp; name = getNameAttribute();
</span><span class="cx">         if (!name.isEmpty() &amp;&amp; id != name) {
</span><span class="cx">             if (isNamedItem)
</span><del>-                document-&gt;addDocumentNamedItem(*name.impl(), *this);
</del><ins>+                document.addDocumentNamedItem(*name.impl(), *this);
</ins><span class="cx">             else
</span><del>-                document-&gt;removeDocumentNamedItem(*name.impl(), *this);
</del><ins>+                document.removeDocumentNamedItem(*name.impl(), *this);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     m_docNamedItem = isNamedItem;
</span><span class="lines">@@ -466,7 +466,7 @@
</span><span class="cx">         if (child.hasTagName(paramTag) &amp;&amp; equalIgnoringCase(child.getNameAttribute(), &quot;type&quot;)
</span><span class="cx">             &amp;&amp; MIMETypeRegistry::isJavaAppletMIMEType(child.getAttribute(valueAttr).string()))
</span><span class="cx">             return true;
</span><del>-        if (child.hasTagName(objectTag) &amp;&amp; toHTMLObjectElement(child).containsJavaApplet())
</del><ins>+        if (child.hasTagName(objectTag) &amp;&amp; downcast&lt;HTMLObjectElement&gt;(child).containsJavaApplet())
</ins><span class="cx">             return true;
</span><span class="cx">         if (child.hasTagName(appletTag))
</span><span class="cx">             return true;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptGroupElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptGroupElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptGroupElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLOptGroupElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -86,10 +86,10 @@
</span><span class="cx"> void HTMLOptGroupElement::recalcSelectOptions()
</span><span class="cx"> {
</span><span class="cx">     ContainerNode* select = parentNode();
</span><del>-    while (select &amp;&amp; !select-&gt;hasTagName(selectTag))
</del><ins>+    while (select &amp;&amp; !isHTMLSelectElement(select))
</ins><span class="cx">         select = select-&gt;parentNode();
</span><span class="cx">     if (select)
</span><del>-        toHTMLSelectElement(select)-&gt;setRecalcListItems();
</del><ins>+        downcast&lt;HTMLSelectElement&gt;(*select).setRecalcListItems();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLOptGroupElement::groupLabelText() const
</span><span class="lines">@@ -107,13 +107,13 @@
</span><span class="cx"> HTMLSelectElement* HTMLOptGroupElement::ownerSelectElement() const
</span><span class="cx"> {
</span><span class="cx">     ContainerNode* select = parentNode();
</span><del>-    while (select &amp;&amp; !select-&gt;hasTagName(selectTag))
</del><ins>+    while (select &amp;&amp; !isHTMLSelectElement(select))
</ins><span class="cx">         select = select-&gt;parentNode();
</span><span class="cx">     
</span><span class="cx">     if (!select)
</span><del>-       return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     
</span><del>-    return toHTMLSelectElement(select);
</del><ins>+    return downcast&lt;HTMLSelectElement&gt;(select);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLOptGroupElement::accessKeyAction(bool)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptionElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptionElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptionElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLOptionElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -257,23 +257,23 @@
</span><span class="cx"> HTMLDataListElement* HTMLOptionElement::ownerDataListElement() const
</span><span class="cx"> {
</span><span class="cx">     for (ContainerNode* parent = parentNode(); parent ; parent = parent-&gt;parentNode()) {
</span><del>-        if (parent-&gt;hasTagName(datalistTag))
-            return toHTMLDataListElement(parent);
</del><ins>+        if (isHTMLDataListElement(parent))
+            return downcast&lt;HTMLDataListElement&gt;(parent);
</ins><span class="cx">     }
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> HTMLSelectElement* HTMLOptionElement::ownerSelectElement() const
</span><span class="cx"> {
</span><span class="cx">     ContainerNode* select = parentNode();
</span><del>-    while (select &amp;&amp; !select-&gt;hasTagName(selectTag))
</del><ins>+    while (select &amp;&amp; !isHTMLSelectElement(select))
</ins><span class="cx">         select = select-&gt;parentNode();
</span><span class="cx"> 
</span><span class="cx">     if (!select)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><del>-    return toHTMLSelectElement(select);
</del><ins>+    return downcast&lt;HTMLSelectElement&gt;(select);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLOptionElement::label() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptionsCollectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptionsCollection.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptionsCollection.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLOptionsCollection.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -58,9 +58,9 @@
</span><span class="cx">     ec = 0;
</span><span class="cx"> 
</span><span class="cx">     if (index == -1 || unsigned(index) &gt;= length())
</span><del>-        selectElement().add(newOption, 0, ec);
</del><ins>+        selectElement().add(newOption, nullptr, ec);
</ins><span class="cx">     else
</span><del>-        selectElement().add(newOption, toHTMLOptionElement(item(index)), ec);
</del><ins>+        selectElement().add(newOption, downcast&lt;HTMLOptionElement&gt;(item(index)), ec);
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(!ec);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptionsCollectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptionsCollection.h (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptionsCollection.h        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLOptionsCollection.h        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -37,8 +37,8 @@
</span><span class="cx"> public:
</span><span class="cx">     static PassRef&lt;HTMLOptionsCollection&gt; create(HTMLSelectElement&amp;, CollectionType);
</span><span class="cx"> 
</span><del>-    HTMLSelectElement&amp; selectElement() { return toHTMLSelectElement(ownerNode()); }
-    const HTMLSelectElement&amp; selectElement() const { return toHTMLSelectElement(ownerNode()); }
</del><ins>+    HTMLSelectElement&amp; selectElement() { return downcast&lt;HTMLSelectElement&gt;(ownerNode()); }
+    const HTMLSelectElement&amp; selectElement() const { return downcast&lt;HTMLSelectElement&gt;(ownerNode()); }
</ins><span class="cx"> 
</span><span class="cx">     void add(PassRefPtr&lt;HTMLOptionElement&gt;, ExceptionCode&amp;);
</span><span class="cx">     void add(PassRefPtr&lt;HTMLOptionElement&gt;, int index, ExceptionCode&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLPlugInImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -417,11 +417,11 @@
</span><span class="cx">         if (node-&gt;isPluginElement()) {
</span><span class="cx">             HTMLPlugInElement* plugInElement = toHTMLPlugInElement(node);
</span><span class="cx">             if (plugInElement-&gt;isPlugInImageElement()) {
</span><del>-                HTMLPlugInImageElement* plugInImageElement = toHTMLPlugInImageElement(node);
-                const URL&amp; loadedURL = plugInImageElement-&gt;loadedUrl();
-                String otherMimeType = plugInImageElement-&gt;loadedMimeType();
</del><ins>+                HTMLPlugInImageElement&amp; plugInImageElement = downcast&lt;HTMLPlugInImageElement&gt;(*node);
+                const URL&amp; loadedURL = plugInImageElement.loadedUrl();
+                String otherMimeType = plugInImageElement.loadedMimeType();
</ins><span class="cx">                 if (plugInOrigin == loadedURL.host() &amp;&amp; mimeType == otherMimeType)
</span><del>-                    plugInList.append(plugInImageElement);
</del><ins>+                    plugInList.append(&amp;plugInImageElement);
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLSelectElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -149,8 +149,8 @@
</span><span class="cx">     ASSERT(listIndex &gt;= 0);
</span><span class="cx">     if (listIndex &lt; 0)
</span><span class="cx">         return false;
</span><del>-    HTMLOptionElement* option = toHTMLOptionElement(listItems()[listIndex]);
-    return !listIndex &amp;&amp; option-&gt;value().isEmpty();
</del><ins>+    HTMLOptionElement&amp; option = downcast&lt;HTMLOptionElement&gt;(*listItems()[listIndex]);
+    return !listIndex &amp;&amp; option.value().isEmpty();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLSelectElement::validationMessage() const
</span><span class="lines">@@ -251,7 +251,7 @@
</span><span class="cx"> {
</span><span class="cx">     for (auto* item : listItems()) {
</span><span class="cx">         if (isHTMLOptionElement(*item)) {
</span><del>-            HTMLOptionElement&amp; option = toHTMLOptionElement(*item);
</del><ins>+            HTMLOptionElement&amp; option = downcast&lt;HTMLOptionElement&gt;(*item);
</ins><span class="cx">             if (option.selected())
</span><span class="cx">                 return option.value();
</span><span class="cx">         }
</span><span class="lines">@@ -271,7 +271,7 @@
</span><span class="cx">     unsigned optionIndex = 0;
</span><span class="cx">     for (auto* item : listItems()) {
</span><span class="cx">         if (isHTMLOptionElement(*item)) {
</span><del>-            if (toHTMLOptionElement(*item).value() == value) {
</del><ins>+            if (downcast&lt;HTMLOptionElement&gt;(*item).value() == value) {
</ins><span class="cx">                 setSelectedIndex(optionIndex);
</span><span class="cx">                 return;
</span><span class="cx">             }
</span><span class="lines">@@ -605,7 +605,7 @@
</span><span class="cx">     const Vector&lt;HTMLElement*&gt;&amp; items = listItems();
</span><span class="cx">     for (unsigned i = 0; i &lt; items.size(); ++i) {
</span><span class="cx">         HTMLElement* element = items[i];
</span><del>-        m_lastOnChangeSelection.append(isHTMLOptionElement(element) &amp;&amp; toHTMLOptionElement(element)-&gt;selected());
</del><ins>+        m_lastOnChangeSelection.append(isHTMLOptionElement(element) &amp;&amp; downcast&lt;HTMLOptionElement&gt;(element)-&gt;selected());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -620,7 +620,7 @@
</span><span class="cx">     const Vector&lt;HTMLElement*&gt;&amp; items = listItems();
</span><span class="cx">     for (unsigned i = 0; i &lt; items.size(); ++i) {
</span><span class="cx">         HTMLElement* element = items[i];
</span><del>-        m_cachedStateForActiveSelection.append(isHTMLOptionElement(element) &amp;&amp; toHTMLOptionElement(element)-&gt;selected());
</del><ins>+        m_cachedStateForActiveSelection.append(isHTMLOptionElement(element) &amp;&amp; downcast&lt;HTMLOptionElement&gt;(element)-&gt;selected());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -644,15 +644,15 @@
</span><span class="cx">     const Vector&lt;HTMLElement*&gt;&amp; items = listItems();
</span><span class="cx">     for (unsigned i = 0; i &lt; items.size(); ++i) {
</span><span class="cx">         HTMLElement* element = items[i];
</span><del>-        if (!isHTMLOptionElement(element) || toHTMLOptionElement(element)-&gt;isDisabledFormControl())
</del><ins>+        if (!isHTMLOptionElement(element) || downcast&lt;HTMLOptionElement&gt;(*element).isDisabledFormControl())
</ins><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         if (i &gt;= start &amp;&amp; i &lt;= end)
</span><del>-            toHTMLOptionElement(element)-&gt;setSelectedState(m_activeSelectionState);
</del><ins>+            downcast&lt;HTMLOptionElement&gt;(*element).setSelectedState(m_activeSelectionState);
</ins><span class="cx">         else if (deselectOtherOptions || i &gt;= m_cachedStateForActiveSelection.size())
</span><del>-            toHTMLOptionElement(element)-&gt;setSelectedState(false);
</del><ins>+            downcast&lt;HTMLOptionElement&gt;(*element).setSelectedState(false);
</ins><span class="cx">         else
</span><del>-            toHTMLOptionElement(element)-&gt;setSelectedState(m_cachedStateForActiveSelection[i]);
</del><ins>+            downcast&lt;HTMLOptionElement&gt;(*element).setSelectedState(m_cachedStateForActiveSelection[i]);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     scrollToSelection();
</span><span class="lines">@@ -676,7 +676,7 @@
</span><span class="cx">     bool fireOnChange = false;
</span><span class="cx">     for (unsigned i = 0; i &lt; items.size(); ++i) {
</span><span class="cx">         HTMLElement* element = items[i];
</span><del>-        bool selected = isHTMLOptionElement(element) &amp;&amp; toHTMLOptionElement(element)-&gt;selected();
</del><ins>+        bool selected = isHTMLOptionElement(element) &amp;&amp; downcast&lt;HTMLOptionElement&gt;(*element).selected();
</ins><span class="cx">         if (selected != m_lastOnChangeSelection[i])
</span><span class="cx">             fireOnChange = true;
</span><span class="cx">         m_lastOnChangeSelection[i] = selected;
</span><span class="lines">@@ -802,15 +802,15 @@
</span><span class="cx">             m_listItems.append(current);
</span><span class="cx"> 
</span><span class="cx">             if (updateSelectedStates &amp;&amp; !m_multiple) {
</span><del>-                HTMLOptionElement* option = toHTMLOptionElement(current);
</del><ins>+                HTMLOptionElement&amp; option = downcast&lt;HTMLOptionElement&gt;(*current);
</ins><span class="cx">                 if (!firstOption)
</span><del>-                    firstOption = option;
-                if (option-&gt;selected()) {
</del><ins>+                    firstOption = &amp;option;
+                if (option.selected()) {
</ins><span class="cx">                     if (foundSelected)
</span><span class="cx">                         foundSelected-&gt;setSelectedState(false);
</span><del>-                    foundSelected = option;
-                } else if (m_size &lt;= 1 &amp;&amp; !foundSelected &amp;&amp; !option-&gt;isDisabledFormControl()) {
-                    foundSelected = option;
</del><ins>+                    foundSelected = &amp;option;
+                } else if (m_size &lt;= 1 &amp;&amp; !foundSelected &amp;&amp; !option.isDisabledFormControl()) {
+                    foundSelected = &amp;option;
</ins><span class="cx">                     foundSelected-&gt;setSelectedState(true);
</span><span class="cx">                 }
</span><span class="cx">             }
</span><span class="lines">@@ -841,7 +841,7 @@
</span><span class="cx">     for (size_t i = 0; i &lt; items.size(); ++i) {
</span><span class="cx">         HTMLElement* element = items[i];
</span><span class="cx">         if (isHTMLOptionElement(element)) {
</span><del>-            if (toHTMLOptionElement(element)-&gt;selected())
</del><ins>+            if (downcast&lt;HTMLOptionElement&gt;(*element).selected())
</ins><span class="cx">                 return index;
</span><span class="cx">             ++index;
</span><span class="cx">         }
</span><span class="lines">@@ -873,7 +873,7 @@
</span><span class="cx">     const Vector&lt;HTMLElement*&gt;&amp; items = listItems();
</span><span class="cx">     int listIndex = optionToListIndex(optionIndex);
</span><span class="cx"> 
</span><del>-    HTMLElement* element = 0;
</del><ins>+    HTMLElement* element = nullptr;
</ins><span class="cx">     if (listIndex &gt;= 0) {
</span><span class="cx">         element = items[listIndex];
</span><span class="cx">         if (isHTMLOptionElement(element)) {
</span><span class="lines">@@ -881,7 +881,7 @@
</span><span class="cx">                 setActiveSelectionAnchorIndex(listIndex);
</span><span class="cx">             if (m_activeSelectionEndIndex &lt; 0 || shouldDeselect)
</span><span class="cx">                 setActiveSelectionEndIndex(listIndex);
</span><del>-            toHTMLOptionElement(element)-&gt;setSelectedState(true);
</del><ins>+            downcast&lt;HTMLOptionElement&gt;(*element).setSelectedState(true);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -969,7 +969,7 @@
</span><span class="cx">     for (unsigned i = 0; i &lt; items.size(); ++i) {
</span><span class="cx">         HTMLElement* element = items[i];
</span><span class="cx">         if (element != excludeElement &amp;&amp; isHTMLOptionElement(element))
</span><del>-            toHTMLOptionElement(element)-&gt;setSelectedState(false);
</del><ins>+            downcast&lt;HTMLOptionElement&gt;(*element).setSelectedState(false);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -981,10 +981,10 @@
</span><span class="cx">     for (unsigned i = 0; i &lt; length; ++i) {
</span><span class="cx">         if (!isHTMLOptionElement(items[i]))
</span><span class="cx">             continue;
</span><del>-        HTMLOptionElement* option = toHTMLOptionElement(items[i]);
-        if (!option-&gt;selected())
</del><ins>+        HTMLOptionElement&amp; option = downcast&lt;HTMLOptionElement&gt;(*items[i]);
+        if (!option.selected())
</ins><span class="cx">             continue;
</span><del>-        state.append(option-&gt;value());
</del><ins>+        state.append(option.value());
</ins><span class="cx">         if (!multiple())
</span><span class="cx">             break;
</span><span class="cx">     }
</span><span class="lines">@@ -998,7 +998,7 @@
</span><span class="cx">     for (size_t i = listIndexStart; i &lt; loopEndIndex; ++i) {
</span><span class="cx">         if (!isHTMLOptionElement(items[i]))
</span><span class="cx">             continue;
</span><del>-        if (toHTMLOptionElement(items[i])-&gt;value() == value)
</del><ins>+        if (downcast&lt;HTMLOptionElement&gt;(*items[i]).value() == value)
</ins><span class="cx">             return i;
</span><span class="cx">     }
</span><span class="cx">     return notFound;
</span><span class="lines">@@ -1016,13 +1016,13 @@
</span><span class="cx">     for (size_t i = 0; i &lt; itemsSize; ++i) {
</span><span class="cx">         if (!isHTMLOptionElement(items[i]))
</span><span class="cx">             continue;
</span><del>-        toHTMLOptionElement(items[i])-&gt;setSelectedState(false);
</del><ins>+        downcast&lt;HTMLOptionElement&gt;(*items[i]).setSelectedState(false);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!multiple()) {
</span><span class="cx">         size_t foundIndex = searchOptionsForValue(state[0], 0, itemsSize);
</span><span class="cx">         if (foundIndex != notFound)
</span><del>-            toHTMLOptionElement(items[foundIndex])-&gt;setSelectedState(true);
</del><ins>+            downcast&lt;HTMLOptionElement&gt;(*items[foundIndex]).setSelectedState(true);
</ins><span class="cx">     } else {
</span><span class="cx">         size_t startIndex = 0;
</span><span class="cx">         for (size_t i = 0; i &lt; state.valueSize(); ++i) {
</span><span class="lines">@@ -1032,7 +1032,7 @@
</span><span class="cx">                 foundIndex = searchOptionsForValue(value, 0, startIndex);
</span><span class="cx">             if (foundIndex == notFound)
</span><span class="cx">                 continue;
</span><del>-            toHTMLOptionElement(items[foundIndex])-&gt;setSelectedState(true);
</del><ins>+            downcast&lt;HTMLOptionElement&gt;(*items[foundIndex]).setSelectedState(true);
</ins><span class="cx">             startIndex = foundIndex + 1;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -1061,8 +1061,8 @@
</span><span class="cx"> 
</span><span class="cx">     for (unsigned i = 0; i &lt; items.size(); ++i) {
</span><span class="cx">         HTMLElement* element = items[i];
</span><del>-        if (isHTMLOptionElement(element) &amp;&amp; toHTMLOptionElement(element)-&gt;selected() &amp;&amp; !toHTMLOptionElement(element)-&gt;isDisabledFormControl()) {
-            list.appendData(name, toHTMLOptionElement(element)-&gt;value());
</del><ins>+        if (isHTMLOptionElement(element) &amp;&amp; downcast&lt;HTMLOptionElement&gt;(*element).selected() &amp;&amp; !downcast&lt;HTMLOptionElement&gt;(*element).isDisabledFormControl()) {
+            list.appendData(name, downcast&lt;HTMLOptionElement&gt;(*element).value());
</ins><span class="cx">             successful = true;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -1075,8 +1075,8 @@
</span><span class="cx"> 
</span><span class="cx"> void HTMLSelectElement::reset()
</span><span class="cx"> {
</span><del>-    HTMLOptionElement* firstOption = 0;
-    HTMLOptionElement* selectedOption = 0;
</del><ins>+    HTMLOptionElement* firstOption = nullptr;
+    HTMLOptionElement* selectedOption = nullptr;
</ins><span class="cx"> 
</span><span class="cx">     const Vector&lt;HTMLElement*&gt;&amp; items = listItems();
</span><span class="cx">     for (unsigned i = 0; i &lt; items.size(); ++i) {
</span><span class="lines">@@ -1084,16 +1084,17 @@
</span><span class="cx">         if (!isHTMLOptionElement(element))
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        if (items[i]-&gt;fastHasAttribute(selectedAttr)) {
</del><ins>+        HTMLOptionElement&amp; option = downcast&lt;HTMLOptionElement&gt;(*element);
+        if (option.fastHasAttribute(selectedAttr)) {
</ins><span class="cx">             if (selectedOption &amp;&amp; !m_multiple)
</span><span class="cx">                 selectedOption-&gt;setSelectedState(false);
</span><del>-            toHTMLOptionElement(element)-&gt;setSelectedState(true);
-            selectedOption = toHTMLOptionElement(element);
</del><ins>+            option.setSelectedState(true);
+            selectedOption = &amp;option;
</ins><span class="cx">         } else
</span><del>-            toHTMLOptionElement(element)-&gt;setSelectedState(false);
</del><ins>+            option.setSelectedState(false);
</ins><span class="cx"> 
</span><span class="cx">         if (!firstOption)
</span><del>-            firstOption = toHTMLOptionElement(element);
</del><ins>+            firstOption = &amp;option;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!selectedOption &amp;&amp; firstOption &amp;&amp; !m_multiple &amp;&amp; m_size &lt;= 1)
</span><span class="lines">@@ -1299,10 +1300,10 @@
</span><span class="cx">     if (isHTMLOptionElement(clickedElement)) {
</span><span class="cx">         // Keep track of whether an active selection (like during drag
</span><span class="cx">         // selection), should select or deselect.
</span><del>-        if (toHTMLOptionElement(clickedElement)-&gt;selected() &amp;&amp; multiSelect)
</del><ins>+        if (downcast&lt;HTMLOptionElement&gt;(*clickedElement).selected() &amp;&amp; multiSelect)
</ins><span class="cx">             m_activeSelectionState = false;
</span><span class="cx">         if (!m_activeSelectionState)
</span><del>-            toHTMLOptionElement(clickedElement)-&gt;setSelectedState(false);
</del><ins>+            downcast&lt;HTMLOptionElement&gt;(*clickedElement).setSelectedState(false);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // If we're not in any special multiple selection mode, then deselect all
</span><span class="lines">@@ -1317,8 +1318,8 @@
</span><span class="cx">         setActiveSelectionAnchorIndex(selectedIndex());
</span><span class="cx"> 
</span><span class="cx">     // Set the selection state of the clicked option.
</span><del>-    if (isHTMLOptionElement(clickedElement) &amp;&amp; !toHTMLOptionElement(clickedElement)-&gt;isDisabledFormControl())
-        toHTMLOptionElement(clickedElement)-&gt;setSelectedState(true);
</del><ins>+    if (isHTMLOptionElement(clickedElement) &amp;&amp; !downcast&lt;HTMLOptionElement&gt;(*clickedElement).isDisabledFormControl())
+        downcast&lt;HTMLOptionElement&gt;(*clickedElement).setSelectedState(true);
</ins><span class="cx"> 
</span><span class="cx">     // If there was no selectedIndex() for the previous initialization, or If
</span><span class="cx">     // we're doing a single selection, or a multiple selection (using cmd or
</span><span class="lines">@@ -1538,7 +1539,7 @@
</span><span class="cx">     const Vector&lt;HTMLElement*&gt;&amp; items = listItems();
</span><span class="cx">     for (size_t i = items.size(); i;) {
</span><span class="cx">         HTMLElement* element = items[--i];
</span><del>-        if (isHTMLOptionElement(element) &amp;&amp; toHTMLOptionElement(element)-&gt;selected())
</del><ins>+        if (isHTMLOptionElement(element) &amp;&amp; downcast&lt;HTMLOptionElement&gt;(*element).selected())
</ins><span class="cx">             return i;
</span><span class="cx">     }
</span><span class="cx">     return -1;
</span><span class="lines">@@ -1559,9 +1560,9 @@
</span><span class="cx">     const Vector&lt;HTMLElement*&gt;&amp; items = listItems();
</span><span class="cx">     
</span><span class="cx">     HTMLElement* element = items[index];
</span><del>-    if (!isHTMLOptionElement(element) || toHTMLOptionElement(element)-&gt;isDisabledFormControl())
</del><ins>+    if (!isHTMLOptionElement(element) || downcast&lt;HTMLOptionElement&gt;(*element).isDisabledFormControl())
</ins><span class="cx">         return String();
</span><del>-    return toHTMLOptionElement(element)-&gt;textIndentedToRespectGroupLabel();
</del><ins>+    return downcast&lt;HTMLOptionElement&gt;(*element).textIndentedToRespectGroupLabel();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLSelectElement::typeAheadFind(KeyboardEvent* event)
</span><span class="lines">@@ -1596,8 +1597,8 @@
</span><span class="cx">     if (listIndex &gt;= 0) {
</span><span class="cx">         HTMLElement* element = items[listIndex];
</span><span class="cx">         if (isHTMLOptionElement(element)) {
</span><del>-            if (toHTMLOptionElement(element)-&gt;selected())
-                toHTMLOptionElement(element)-&gt;setSelectedState(false);
</del><ins>+            if (downcast&lt;HTMLOptionElement&gt;(*element).selected())
+                downcast&lt;HTMLOptionElement&gt;(*element).setSelectedState(false);
</ins><span class="cx">             else
</span><span class="cx">                 selectOption(index, DispatchChangeEvent | UserDriven);
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSummaryElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSummaryElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSummaryElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLSummaryElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -87,8 +87,8 @@
</span><span class="cx"> {
</span><span class="cx">     Node* mayDetails = NodeRenderingTraversal::parent(this);
</span><span class="cx">     if (!mayDetails || !mayDetails-&gt;hasTagName(detailsTag))
</span><del>-        return 0;
-    return toHTMLDetailsElement(mayDetails);
</del><ins>+        return nullptr;
+    return downcast&lt;HTMLDetailsElement&gt;(mayDetails);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLSummaryElement::isMainSummary() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLTableElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -70,10 +70,10 @@
</span><span class="cx"> HTMLTableCaptionElement* HTMLTableElement::caption() const
</span><span class="cx"> {
</span><span class="cx">     for (Node* child = firstChild(); child; child = child-&gt;nextSibling()) {
</span><del>-        if (child-&gt;hasTagName(captionTag))
-            return toHTMLTableCaptionElement(child);
</del><ins>+        if (isHTMLTableCaptionElement(child))
+            return downcast&lt;HTMLTableCaptionElement&gt;(child);
</ins><span class="cx">     }
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTableElement::setCaption(PassRefPtr&lt;HTMLTableCaptionElement&gt; newCaption, ExceptionCode&amp; ec)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTablePartElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTablePartElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTablePartElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLTablePartElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">     ContainerNode* parent = parentNode();
</span><span class="cx">     while (parent &amp;&amp; !isHTMLTableElement(parent))
</span><span class="cx">         parent = parent-&gt;parentNode();
</span><del>-    return toHTMLTableElement(parent);
</del><ins>+    return downcast&lt;HTMLTableElement&gt;(parent);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableRowElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableRowElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableRowElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLTableRowElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> 
</span><span class="cx">     int rIndex = 0;
</span><span class="cx"> 
</span><del>-    if (HTMLTableSectionElement* head = toHTMLTableElement(table)-&gt;tHead()) {
</del><ins>+    if (HTMLTableSectionElement* head = downcast&lt;HTMLTableElement&gt;(*table).tHead()) {
</ins><span class="cx">         for (Node *row = head-&gt;firstChild(); row; row = row-&gt;nextSibling()) {
</span><span class="cx">             if (row == this)
</span><span class="cx">                 return rIndex;
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (HTMLTableSectionElement* foot = toHTMLTableElement(table)-&gt;tFoot()) {
</del><ins>+    if (HTMLTableSectionElement* foot = downcast&lt;HTMLTableElement&gt;(*table).tFoot()) {
</ins><span class="cx">         for (Node *row = foot-&gt;firstChild(); row; row = row-&gt;nextSibling()) {
</span><span class="cx">             if (row == this)
</span><span class="cx">                 return rIndex;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableRowsCollectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableRowsCollection.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableRowsCollection.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLTableRowsCollection.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx">         child = ElementTraversal::nextSibling(previous-&gt;parentNode());
</span><span class="cx">     for (; child; child = ElementTraversal::nextSibling(child)) {
</span><span class="cx">         if (isHTMLTableRowElement(child))
</span><del>-            return toHTMLTableRowElement(child);
</del><ins>+            return downcast&lt;HTMLTableRowElement&gt;(child);
</ins><span class="cx">         if (child-&gt;hasTagName(tbodyTag)) {
</span><span class="cx">             if (auto row = childrenOfType&lt;HTMLTableRowElement&gt;(*child).first())
</span><span class="cx">                 return row;
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx"> 
</span><span class="cx">     for (auto* child = ElementTraversal::lastChild(table); child; child = ElementTraversal::previousSibling(child)) {
</span><span class="cx">         if (isHTMLTableRowElement(child))
</span><del>-            return toHTMLTableRowElement(child);
</del><ins>+            return downcast&lt;HTMLTableRowElement&gt;(child);
</ins><span class="cx">         if (child-&gt;hasTagName(tbodyTag)) {
</span><span class="cx">             if (auto* row = childrenOfType&lt;HTMLTableRowElement&gt;(*child).last())
</span><span class="cx">                 return row;
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx"> 
</span><span class="cx"> Element* HTMLTableRowsCollection::customElementAfter(Element* previous) const
</span><span class="cx"> {
</span><del>-    return rowAfter(const_cast&lt;HTMLTableElement*&gt;(&amp;tableElement()), toHTMLTableRowElement(previous));
</del><ins>+    return rowAfter(const_cast&lt;HTMLTableElement*&gt;(&amp;tableElement()), downcast&lt;HTMLTableRowElement&gt;(previous));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableRowsCollectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableRowsCollection.h (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableRowsCollection.h        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLTableRowsCollection.h        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -40,8 +40,8 @@
</span><span class="cx"> public:
</span><span class="cx">     static PassRef&lt;HTMLTableRowsCollection&gt; create(HTMLTableElement&amp;, CollectionType);
</span><span class="cx"> 
</span><del>-    HTMLTableElement&amp; tableElement() { return toHTMLTableElement(ownerNode()); }
-    const HTMLTableElement&amp; tableElement() const { return toHTMLTableElement(ownerNode()); }
</del><ins>+    HTMLTableElement&amp; tableElement() { return downcast&lt;HTMLTableElement&gt;(ownerNode()); }
+    const HTMLTableElement&amp; tableElement() const { return downcast&lt;HTMLTableElement&gt;(ownerNode()); }
</ins><span class="cx"> 
</span><span class="cx">     static HTMLTableRowElement* rowAfter(HTMLTableElement*, HTMLTableRowElement*);
</span><span class="cx">     static HTMLTableRowElement* lastRow(HTMLTableElement*);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTemplateElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTemplateElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTemplateElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLTemplateElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Node&gt; clone = cloneElementWithChildren();
</span><span class="cx">     if (m_content)
</span><del>-        content()-&gt;cloneChildNodes(toHTMLTemplateElement(clone.get())-&gt;content());
</del><ins>+        content()-&gt;cloneChildNodes(downcast&lt;HTMLTemplateElement&gt;(clone.get())-&gt;content());
</ins><span class="cx">     return clone.release();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextFormControlElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -717,7 +717,7 @@
</span><span class="cx">     if (!container)
</span><span class="cx">         return nullptr;
</span><span class="cx">     Element* ancestor = container-&gt;shadowHost();
</span><del>-    return ancestor &amp;&amp; isHTMLTextFormControlElement(*ancestor) ? toHTMLTextFormControlElement(ancestor) : nullptr;
</del><ins>+    return ancestor &amp;&amp; isHTMLTextFormControlElement(*ancestor) ? downcast&lt;HTMLTextFormControlElement&gt;(ancestor) : nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static const Element* parentHTMLElement(const Element* element)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlImageDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ImageDocument.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ImageDocument.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/ImageDocument.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -211,14 +211,14 @@
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Element&gt; rootElement = Document::createElement(htmlTag, false);
</span><span class="cx">     appendChild(rootElement);
</span><del>-    toHTMLHtmlElement(rootElement.get())-&gt;insertedByParser();
</del><ins>+    downcast&lt;HTMLHtmlElement&gt;(*rootElement).insertedByParser();
</ins><span class="cx"> 
</span><span class="cx">     frame()-&gt;injectUserScripts(InjectAtDocumentStart);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Element&gt; body = Document::createElement(bodyTag, false);
</span><span class="cx">     body-&gt;setAttribute(styleAttr, &quot;margin: 0px&quot;);
</span><span class="cx">     if (MIMETypeRegistry::isPDFMIMEType(document().loader()-&gt;responseMIMEType()))
</span><del>-        toHTMLBodyElement(body.get())-&gt;setInlineStyleProperty(CSSPropertyBackgroundColor, &quot;white&quot;, CSSPrimitiveValue::CSS_IDENT);
</del><ins>+        downcast&lt;HTMLBodyElement&gt;(*body).setInlineStyleProperty(CSSPropertyBackgroundColor, &quot;white&quot;, CSSPrimitiveValue::CSS_IDENT);
</ins><span class="cx">     rootElement-&gt;appendChild(body);
</span><span class="cx">     
</span><span class="cx">     RefPtr&lt;ImageDocumentElement&gt; imageElement = ImageDocumentElement::create(*this);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlLabelsNodeListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/LabelsNodeList.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/LabelsNodeList.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/LabelsNodeList.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">     
</span><span class="cx"> bool LabelsNodeList::elementMatches(Element&amp; testNode) const
</span><span class="cx"> {
</span><del>-    return isHTMLLabelElement(testNode) &amp;&amp; toHTMLLabelElement(testNode).control() == &amp;ownerNode();
</del><ins>+    return isHTMLLabelElement(testNode) &amp;&amp; downcast&lt;HTMLLabelElement&gt;(testNode).control() == &amp;ownerNode();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaDocument.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaDocument.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/MediaDocument.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx">     RefPtr&lt;Element&gt; rootElement = document()-&gt;createElement(htmlTag, false);
</span><span class="cx">     document()-&gt;appendChild(rootElement, IGNORE_EXCEPTION);
</span><span class="cx">     document()-&gt;setCSSTarget(rootElement.get());
</span><del>-    toHTMLHtmlElement(rootElement.get())-&gt;insertedByParser();
</del><ins>+    downcast&lt;HTMLHtmlElement&gt;(*rootElement).insertedByParser();
</ins><span class="cx"> 
</span><span class="cx">     if (document()-&gt;frame())
</span><span class="cx">         document()-&gt;frame()-&gt;injectUserScripts(InjectAtDocumentStart);
</span><span class="lines">@@ -98,9 +98,9 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Element&gt; mediaElement = document()-&gt;createElement(videoTag, false);
</span><span class="cx"> 
</span><del>-    m_mediaElement = toHTMLVideoElement(mediaElement.get());
-    m_mediaElement-&gt;setAttribute(controlsAttr, &quot;&quot;);
-    m_mediaElement-&gt;setAttribute(autoplayAttr, &quot;&quot;);
</del><ins>+    m_mediaElement = downcast&lt;HTMLVideoElement&gt;(mediaElement.get());
+    m_mediaElement-&gt;setAttribute(controlsAttr, emptyAtom);
+    m_mediaElement-&gt;setAttribute(autoplayAttr, emptyAtom);
</ins><span class="cx"> 
</span><span class="cx">     m_mediaElement-&gt;setAttribute(nameAttr, &quot;media&quot;);
</span><span class="cx"> 
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx">     m_mediaElement-&gt;setAttribute(styleAttr, elementStyle.toString());
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Element&gt; sourceElement = document()-&gt;createElement(sourceTag, false);
</span><del>-    HTMLSourceElement&amp; source = toHTMLSourceElement(*sourceElement);
</del><ins>+    HTMLSourceElement&amp; source = downcast&lt;HTMLSourceElement&gt;(*sourceElement);
</ins><span class="cx">     source.setSrc(document()-&gt;url());
</span><span class="cx"> 
</span><span class="cx">     if (DocumentLoader* loader = document()-&gt;loader())
</span><span class="lines">@@ -161,22 +161,22 @@
</span><span class="cx"> static inline HTMLVideoElement* descendentVideoElement(ContainerNode&amp; node)
</span><span class="cx"> {
</span><span class="cx">     if (isHTMLVideoElement(node))
</span><del>-        return toHTMLVideoElement(&amp;node);
</del><ins>+        return downcast&lt;HTMLVideoElement&gt;(&amp;node);
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;NodeList&gt; nodeList = node.getElementsByTagNameNS(videoTag.namespaceURI(), videoTag.localName());
</span><span class="cx">    
</span><del>-    if (nodeList.get()-&gt;length() &gt; 0)
-        return toHTMLVideoElement(nodeList.get()-&gt;item(0));
</del><ins>+    if (nodeList-&gt;length() &gt; 0)
+        return downcast&lt;HTMLVideoElement&gt;(nodeList-&gt;item(0));
</ins><span class="cx"> 
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline HTMLVideoElement* ancestorVideoElement(Node* node)
</span><span class="cx"> {
</span><del>-    while (node &amp;&amp; !node-&gt;hasTagName(videoTag))
</del><ins>+    while (node &amp;&amp; !isHTMLVideoElement(node))
</ins><span class="cx">         node = node-&gt;parentOrShadowHostNode();
</span><span class="cx"> 
</span><del>-    return toHTMLVideoElement(node);
</del><ins>+    return downcast&lt;HTMLVideoElement&gt;(node);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MediaDocument::defaultEventHandler(Event* event)
</span><span class="lines">@@ -243,19 +243,19 @@
</span><span class="cx"> 
</span><span class="cx">     if (HTMLVideoElement* videoElement = descendentVideoElement(*htmlBody)) {
</span><span class="cx">         RefPtr&lt;Element&gt; element = Document::createElement(embedTag, false);
</span><del>-        HTMLEmbedElement* embedElement = toHTMLEmbedElement(element.get());
</del><ins>+        HTMLEmbedElement&amp; embedElement = downcast&lt;HTMLEmbedElement&gt;(*element);
</ins><span class="cx"> 
</span><del>-        embedElement-&gt;setAttribute(widthAttr, &quot;100%&quot;);
-        embedElement-&gt;setAttribute(heightAttr, &quot;100%&quot;);
-        embedElement-&gt;setAttribute(nameAttr, &quot;plugin&quot;);
-        embedElement-&gt;setAttribute(srcAttr, url().string());
</del><ins>+        embedElement.setAttribute(widthAttr, &quot;100%&quot;);
+        embedElement.setAttribute(heightAttr, &quot;100%&quot;);
+        embedElement.setAttribute(nameAttr, &quot;plugin&quot;);
+        embedElement.setAttribute(srcAttr, url().string());
</ins><span class="cx"> 
</span><span class="cx">         DocumentLoader* documentLoader = loader();
</span><span class="cx">         ASSERT(documentLoader);
</span><span class="cx">         if (documentLoader)
</span><del>-            embedElement-&gt;setAttribute(typeAttr, documentLoader-&gt;writer().mimeType());
</del><ins>+            embedElement.setAttribute(typeAttr, documentLoader-&gt;writer().mimeType());
</ins><span class="cx"> 
</span><del>-        videoElement-&gt;parentNode()-&gt;replaceChild(embedElement, videoElement, IGNORE_EXCEPTION);
</del><ins>+        videoElement-&gt;parentNode()-&gt;replaceChild(&amp;embedElement, videoElement, IGNORE_EXCEPTION);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlPluginDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/PluginDocument.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/PluginDocument.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/PluginDocument.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Element&gt; rootElement = document()-&gt;createElement(htmlTag, false);
</span><span class="cx">     document()-&gt;appendChild(rootElement, IGNORE_EXCEPTION);
</span><del>-    toHTMLHtmlElement(rootElement.get())-&gt;insertedByParser();
</del><ins>+    downcast&lt;HTMLHtmlElement&gt;(*rootElement).insertedByParser();
</ins><span class="cx"> 
</span><span class="cx">     if (document()-&gt;frame())
</span><span class="cx">         document()-&gt;frame()-&gt;injectUserScripts(InjectAtDocumentStart);
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">         
</span><span class="cx">     RefPtr&lt;Element&gt; embedElement = document()-&gt;createElement(embedTag, false);
</span><span class="cx">         
</span><del>-    m_embedElement = toHTMLEmbedElement(embedElement.get());
</del><ins>+    m_embedElement = downcast&lt;HTMLEmbedElement&gt;(embedElement.get());
</ins><span class="cx">     m_embedElement-&gt;setAttribute(widthAttr, &quot;100%&quot;);
</span><span class="cx">     m_embedElement-&gt;setAttribute(heightAttr, &quot;100%&quot;);
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlRadioInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/RadioInputType.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/RadioInputType.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/RadioInputType.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx">         // Look for more radio buttons.
</span><span class="cx">         if (!isHTMLInputElement(node))
</span><span class="cx">             continue;
</span><del>-        RefPtr&lt;HTMLInputElement&gt; inputElement = toHTMLInputElement(node);
</del><ins>+        RefPtr&lt;HTMLInputElement&gt; inputElement = downcast&lt;HTMLInputElement&gt;(node);
</ins><span class="cx">         if (inputElement-&gt;form() != element().form())
</span><span class="cx">             break;
</span><span class="cx">         if (inputElement-&gt;isRadioButton() &amp;&amp; inputElement-&gt;name() == element().name() &amp;&amp; inputElement-&gt;isFocusable()) {
</span><span class="lines">@@ -123,8 +123,8 @@
</span><span class="cx">     // skip any other elements in the group.
</span><span class="cx">     Element* currentFocusedNode = element().document().focusedElement();
</span><span class="cx">     if (currentFocusedNode &amp;&amp; isHTMLInputElement(currentFocusedNode)) {
</span><del>-        HTMLInputElement* focusedInput = toHTMLInputElement(currentFocusedNode);
-        if (focusedInput-&gt;isRadioButton() &amp;&amp; focusedInput-&gt;form() == element().form() &amp;&amp; focusedInput-&gt;name() == element().name())
</del><ins>+        HTMLInputElement&amp; focusedInput = downcast&lt;HTMLInputElement&gt;(*currentFocusedNode);
+        if (focusedInput.isRadioButton() &amp;&amp; focusedInput.form() == element().form() &amp;&amp; focusedInput.name() == element().name())
</ins><span class="cx">             return false;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlRadioNodeListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/RadioNodeList.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/RadioNodeList.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/RadioNodeList.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -87,9 +87,9 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(testElement.hasTagName(objectTag) || testElement.isFormControlElement());
</span><span class="cx">     if (isHTMLFormElement(ownerNode())) {
</span><del>-        HTMLFormElement* formElement = 0;
</del><ins>+        HTMLFormElement* formElement = nullptr;
</ins><span class="cx">         if (testElement.hasTagName(objectTag))
</span><del>-            formElement = toHTMLObjectElement(testElement).form();
</del><ins>+            formElement = downcast&lt;HTMLObjectElement&gt;(testElement).form();
</ins><span class="cx">         else
</span><span class="cx">             formElement = toHTMLFormControlElement(testElement).form();
</span><span class="cx">         if (!formElement || formElement != &amp;ownerNode())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlRangeInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/RangeInputType.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/RangeInputType.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/RangeInputType.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -372,8 +372,8 @@
</span><span class="cx">     m_tickMarkValues.reserveCapacity(options-&gt;length());
</span><span class="cx">     for (unsigned i = 0; i &lt; options-&gt;length(); ++i) {
</span><span class="cx">         Node* node = options-&gt;item(i);
</span><del>-        HTMLOptionElement* optionElement = toHTMLOptionElement(node);
-        String optionValue = optionElement-&gt;value();
</del><ins>+        HTMLOptionElement&amp; optionElement = downcast&lt;HTMLOptionElement&gt;(*node);
+        String optionValue = optionElement.value();
</ins><span class="cx">         if (!element().isValidValue(optionValue))
</span><span class="cx">             continue;
</span><span class="cx">         m_tickMarkValues.append(parseToNumber(optionValue, Decimal::nan()));
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLConstructionSitecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -85,8 +85,8 @@
</span><span class="cx"> static inline void insert(HTMLConstructionSiteTask&amp; task)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>-    if (task.parent-&gt;hasTagName(templateTag))
-        task.parent = toHTMLTemplateElement(task.parent.get())-&gt;content();
</del><ins>+    if (isHTMLTemplateElement(*task.parent))
+        task.parent = downcast&lt;HTMLTemplateElement&gt;(*task.parent).content();
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     if (ContainerNode* parent = task.child-&gt;parentNode())
</span><span class="lines">@@ -531,8 +531,8 @@
</span><span class="cx">         findFosterSite(task);
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>-    if (task.parent-&gt;hasTagName(templateTag))
-        task.parent = toHTMLTemplateElement(task.parent.get())-&gt;content();
</del><ins>+    if (isHTMLTemplateElement(*task.parent))
+        task.parent = downcast&lt;HTMLTemplateElement&gt;(*task.parent).content();
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     // Strings composed entirely of whitespace are likely to be repeated.
</span><span class="lines">@@ -618,8 +618,8 @@
</span><span class="cx"> inline Document&amp; HTMLConstructionSite::ownerDocumentForCurrentNode()
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>-    if (currentNode()-&gt;hasTagName(templateTag))
-        return toHTMLTemplateElement(currentElement())-&gt;content()-&gt;document();
</del><ins>+    if (isHTMLTemplateElement(currentNode()))
+        return downcast&lt;HTMLTemplateElement&gt;(*currentElement()).content()-&gt;document();
</ins><span class="cx"> #endif
</span><span class="cx">     return currentNode()-&gt;document();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLTreeBuildercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -297,7 +297,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">         resetInsertionModeAppropriately();
</span><del>-        m_tree.setForm(!contextElement || isHTMLFormElement(contextElement) ? toHTMLFormElement(contextElement) : HTMLFormElement::findClosestFormAncestor(*contextElement));
</del><ins>+        m_tree.setForm(!contextElement || isHTMLFormElement(contextElement) ? downcast&lt;HTMLFormElement&gt;(contextElement) : HTMLFormElement::findClosestFormAncestor(*contextElement));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowDetailsMarkerControlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/DetailsMarkerControl.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/DetailsMarkerControl.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/shadow/DetailsMarkerControl.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool DetailsMarkerControl::rendererIsNeeded(const RenderStyle&amp; style)
</span><span class="cx"> {
</span><del>-    return toHTMLSummaryElement(shadowHost())-&gt;isMainSummary() &amp;&amp; HTMLDivElement::rendererIsNeeded(style);
</del><ins>+    return downcast&lt;HTMLSummaryElement&gt;(shadowHost())-&gt;isMainSummary() &amp;&amp; HTMLDivElement::rendererIsNeeded(style);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlElementscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1111,7 +1111,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // 2. Let video be the media element or other playback mechanism.
</span><del>-    HTMLVideoElement* video = toHTMLVideoElement(mediaElement);
</del><ins>+    HTMLVideoElement&amp; video = downcast&lt;HTMLVideoElement&gt;(*mediaElement);
</ins><span class="cx"> 
</span><span class="cx">     // 3. Let output be an empty list of absolutely positioned CSS block boxes.
</span><span class="cx">     Vector&lt;RefPtr&lt;HTMLDivElement&gt;&gt; output;
</span><span class="lines">@@ -1135,7 +1135,7 @@
</span><span class="cx">     // 7. Let cues be an empty list of text track cues.
</span><span class="cx">     // 8. For each track track in tracks, append to cues all the cues from
</span><span class="cx">     // track's list of cues that have their text track cue active flag set.
</span><del>-    CueList activeCues = video-&gt;currentlyActiveCues();
</del><ins>+    CueList activeCues = video.currentlyActiveCues();
</ins><span class="cx"> 
</span><span class="cx">     // 9. If reset is false, then, for each text track cue cue in cues: if cue's
</span><span class="cx">     // text track cue display state has a set of CSS boxes, then add those boxes
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMeterShadowElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MeterShadowElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MeterShadowElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/shadow/MeterShadowElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLMeterElement* MeterShadowElement::meterElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLMeterElement(shadowHost());
</del><ins>+    return downcast&lt;HTMLMeterElement&gt;(shadowHost());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool MeterShadowElement::rendererIsNeeded(const RenderStyle&amp; style)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowProgressShadowElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/ProgressShadowElement.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/ProgressShadowElement.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/shadow/ProgressShadowElement.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLProgressElement* ProgressShadowElement::progressElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLProgressElement(shadowHost());
</del><ins>+    return downcast&lt;HTMLProgressElement&gt;(shadowHost());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool ProgressShadowElement::rendererIsNeeded(const RenderStyle&amp; style)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowTextControlInnerElementscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -141,7 +141,7 @@
</span><span class="cx"> void SearchFieldResultsButtonElement::defaultEventHandler(Event* event)
</span><span class="cx"> {
</span><span class="cx">     // On mousedown, bring up a menu, if needed
</span><del>-    HTMLInputElement* input = toHTMLInputElement(shadowHost());
</del><ins>+    HTMLInputElement* input = downcast&lt;HTMLInputElement&gt;(shadowHost());
</ins><span class="cx">     if (input &amp;&amp; event-&gt;type() == eventNames().mousedownEvent &amp;&amp; event-&gt;isMouseEvent() &amp;&amp; toMouseEvent(event)-&gt;button() == LeftButton) {
</span><span class="cx">         input-&gt;focus();
</span><span class="cx">         input-&gt;select();
</span><span class="lines">@@ -192,7 +192,7 @@
</span><span class="cx"> void SearchFieldCancelButtonElement::defaultEventHandler(Event* event)
</span><span class="cx"> {
</span><span class="cx">     // If the element is visible, on mouseup, clear the value, and set selection
</span><del>-    RefPtr&lt;HTMLInputElement&gt; input(toHTMLInputElement(shadowHost()));
</del><ins>+    RefPtr&lt;HTMLInputElement&gt; input(downcast&lt;HTMLInputElement&gt;(shadowHost()));
</ins><span class="cx">     if (!input || input-&gt;isDisabledOrReadOnly()) {
</span><span class="cx">         if (!event-&gt;defaultHandled())
</span><span class="cx">             HTMLDivElement::defaultEventHandler(event);
</span><span class="lines">@@ -232,7 +232,7 @@
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx"> bool SearchFieldCancelButtonElement::willRespondToMouseClickEvents()
</span><span class="cx"> {
</span><del>-    const HTMLInputElement* input = toHTMLInputElement(shadowHost());
</del><ins>+    const HTMLInputElement* input = downcast&lt;HTMLInputElement&gt;(shadowHost());
</ins><span class="cx">     if (input &amp;&amp; !input-&gt;isDisabledOrReadOnly())
</span><span class="cx">         return true;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorCSSAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -975,7 +975,7 @@
</span><span class="cx"> 
</span><span class="cx">     CSSStyleSheet* cssStyleSheet = nullptr;
</span><span class="cx">     if (styleElement-&gt;isHTMLElement())
</span><del>-        cssStyleSheet = toHTMLStyleElement(styleElement.get())-&gt;sheet();
</del><ins>+        cssStyleSheet = downcast&lt;HTMLStyleElement&gt;(*styleElement).sheet();
</ins><span class="cx">     else if (styleElement-&gt;isSVGElement())
</span><span class="cx">         cssStyleSheet = downcast&lt;SVGStyleElement&gt;(*styleElement).sheet();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1297,8 +1297,8 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>-        if (element-&gt;hasTagName(HTMLNames::templateTag))
-            value-&gt;setTemplateContent(buildObjectForNode(toHTMLTemplateElement(element)-&gt;content(), 0, nodesMap));
</del><ins>+        if (isHTMLTemplateElement(element))
+            value-&gt;setTemplateContent(buildObjectForNode(downcast&lt;HTMLTemplateElement&gt;(*element).content(), 0, nodesMap));
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     } else if (node-&gt;isDocumentNode()) {
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFormSubmissioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FormSubmission.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FormSubmission.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/loader/FormSubmission.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -190,7 +190,7 @@
</span><span class="cx">         if (!element.isDisabledFormControl())
</span><span class="cx">             control.appendFormData(*domFormData, isMultiPartForm);
</span><span class="cx">         if (isHTMLInputElement(element)) {
</span><del>-            HTMLInputElement&amp; input = toHTMLInputElement(element);
</del><ins>+            HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(element);
</ins><span class="cx">             if (input.isTextField()) {
</span><span class="cx">                 formValues.append(std::pair&lt;String, String&gt;(input.name().string(), input.value()));
</span><span class="cx">                 input.addSearchResult();
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1033,9 +1033,9 @@
</span><span class="cx"> void FrameLoader::handleFallbackContent()
</span><span class="cx"> {
</span><span class="cx">     HTMLFrameOwnerElement* owner = m_frame.ownerElement();
</span><del>-    if (!owner || !owner-&gt;hasTagName(objectTag))
</del><ins>+    if (!owner || !isHTMLObjectElement(owner))
</ins><span class="cx">         return;
</span><del>-    toHTMLObjectElement(owner)-&gt;renderFallbackContent();
</del><ins>+    downcast&lt;HTMLObjectElement&gt;(*owner).renderFallbackContent();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FrameLoader::provisionalLoadStarted()
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderImageLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ImageLoader.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ImageLoader.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/loader/ImageLoader.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -406,14 +406,14 @@
</span><span class="cx">     }
</span><span class="cx">     if (m_image) {
</span><span class="cx">         m_image-&gt;removeClient(this);
</span><del>-        m_image = 0;
</del><ins>+        m_image = nullptr;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     loadEventSender().cancelEvent(*this);
</span><span class="cx">     m_hasPendingLoadEvent = false;
</span><span class="cx">     
</span><span class="cx">     if (isHTMLObjectElement(element()))
</span><del>-        toHTMLObjectElement(element()).renderFallbackContent();
</del><ins>+        downcast&lt;HTMLObjectElement&gt;(element()).renderFallbackContent();
</ins><span class="cx"> 
</span><span class="cx">     // Only consider updating the protection ref-count of the Element immediately before returning
</span><span class="cx">     // from this function as doing so might result in the destruction of this ImageLoader.
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderSubframeLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/SubframeLoader.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/SubframeLoader.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/loader/SubframeLoader.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -213,7 +213,7 @@
</span><span class="cx">     if (!url.isEmpty())
</span><span class="cx">         completedURL = completeURL(url);
</span><span class="cx"> 
</span><del>-    bool hasFallbackContent = isHTMLObjectElement(ownerElement) &amp;&amp; toHTMLObjectElement(ownerElement).hasFallbackContent();
</del><ins>+    bool hasFallbackContent = isHTMLObjectElement(ownerElement) &amp;&amp; downcast&lt;HTMLObjectElement&gt;(ownerElement).hasFallbackContent();
</ins><span class="cx"> 
</span><span class="cx">     bool useFallback;
</span><span class="cx">     if (shouldUsePlugin(completedURL, mimeType, ownerElement.shouldPreferPlugInsForImages(), hasFallbackContent, useFallback)) {
</span></span></pre></div>
<a id="trunkSourceWebCorepageChromecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Chrome.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Chrome.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/page/Chrome.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -409,9 +409,9 @@
</span><span class="cx">         if (Element* element = result.innerNonSharedElement()) {
</span><span class="cx">             // Get tooltip representing form action, if relevant
</span><span class="cx">             if (isHTMLInputElement(element)) {
</span><del>-                HTMLInputElement* input = toHTMLInputElement(element);
-                if (input-&gt;isSubmitButton()) {
-                    if (HTMLFormElement* form = input-&gt;form()) {
</del><ins>+                HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*element);
+                if (input.isSubmitButton()) {
+                    if (HTMLFormElement* form = input.form()) {
</ins><span class="cx">                         toolTip = form-&gt;action();
</span><span class="cx">                         if (form-&gt;renderer())
</span><span class="cx">                             toolTipDirection = form-&gt;renderer()-&gt;style().direction();
</span><span class="lines">@@ -442,7 +442,7 @@
</span><span class="cx">     if (toolTip.isEmpty()) {
</span><span class="cx">         if (Element* element = result.innerNonSharedElement()) {
</span><span class="cx">             if (isHTMLInputElement(element)) {
</span><del>-                toolTip = toHTMLInputElement(element)-&gt;defaultToolTip();
</del><ins>+                toolTip = downcast&lt;HTMLInputElement&gt;(*element).defaultToolTip();
</ins><span class="cx"> 
</span><span class="cx">                 // FIXME: We should obtain text direction of tooltip from
</span><span class="cx">                 // ChromeClient or platform. As of October 2011, all client
</span></span></pre></div>
<a id="trunkSourceWebCorepageDragControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DragController.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DragController.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/page/DragController.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -623,7 +623,7 @@
</span><span class="cx"> {
</span><span class="cx">     state.type = (sourceFrame-&gt;selection().contains(dragOrigin)) ? DragSourceActionSelection : DragSourceActionNone;
</span><span class="cx">     if (!startElement)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     for (auto renderer = startElement-&gt;renderer(); renderer; renderer = renderer-&gt;parent()) {
</span><span class="cx">         Element* element = renderer-&gt;nonPseudoElement();
</span><span class="lines">@@ -646,7 +646,7 @@
</span><span class="cx">             }
</span><span class="cx">             if ((m_dragSourceAction &amp; DragSourceActionLink)
</span><span class="cx">                 &amp;&amp; isHTMLAnchorElement(element)
</span><del>-                &amp;&amp; toHTMLAnchorElement(element)-&gt;isLiveLink()) {
</del><ins>+                &amp;&amp; downcast&lt;HTMLAnchorElement&gt;(*element).isLiveLink()) {
</ins><span class="cx">                 state.type = static_cast&lt;DragSourceAction&gt;(state.type | DragSourceActionLink);
</span><span class="cx">                 return element;
</span><span class="cx">             }
</span><span class="lines">@@ -654,7 +654,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // We either have nothing to drag or we have a selection and we're not over a draggable element.
</span><del>-    return (state.type &amp; DragSourceActionSelection) ? startElement : 0;
</del><ins>+    return (state.type &amp; DragSourceActionSelection) ? startElement : nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static CachedImage* getCachedImage(Element&amp; element)
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/page/EventHandler.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1267,7 +1267,7 @@
</span><span class="cx"> #if ENABLE(CURSOR_SUPPORT)
</span><span class="cx"> static bool isSubmitImage(Node* node)
</span><span class="cx"> {
</span><del>-    return node &amp;&amp; isHTMLInputElement(node) &amp;&amp; toHTMLInputElement(node)-&gt;isImageButton();
</del><ins>+    return node &amp;&amp; isHTMLInputElement(node) &amp;&amp; downcast&lt;HTMLInputElement&gt;(*node).isImageButton();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Returns true if the node's editable block is not current focused for editing
</span></span></pre></div>
<a id="trunkSourceWebCorepageFocusControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FocusController.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FocusController.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/page/FocusController.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -885,9 +885,9 @@
</span><span class="cx">             container = scrollableEnclosingBoxOrParentFrameForNodeInDirection(direction, focusedElement);
</span><span class="cx">             startingRect = nodeRectInAbsoluteCoordinates(focusedElement, true /* ignore border */);
</span><span class="cx">         } else if (isHTMLAreaElement(focusedElement)) {
</span><del>-            HTMLAreaElement* area = toHTMLAreaElement(focusedElement);
-            container = scrollableEnclosingBoxOrParentFrameForNodeInDirection(direction, area-&gt;imageElement());
-            startingRect = virtualRectForAreaElementAndDirection(area, direction);
</del><ins>+            HTMLAreaElement&amp; area = downcast&lt;HTMLAreaElement&gt;(*focusedElement);
+            container = scrollableEnclosingBoxOrParentFrameForNodeInDirection(direction, area.imageElement());
+            startingRect = virtualRectForAreaElementAndDirection(&amp;area, direction);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/page/FrameView.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1416,7 +1416,7 @@
</span><span class="cx">     HTMLFrameOwnerElement&amp; element = embeddedObject.frameOwnerElement();
</span><span class="cx">     if (isHTMLObjectElement(element) || isHTMLEmbedElement(element)) {
</span><span class="cx">         // Tell the DOM element that it needs a widget update.
</span><del>-        HTMLPlugInImageElement&amp; pluginElement = toHTMLPlugInImageElement(element);
</del><ins>+        HTMLPlugInImageElement&amp; pluginElement = downcast&lt;HTMLPlugInImageElement&gt;(element);
</ins><span class="cx">         if (!pluginElement.needsCheckForSizeChange())
</span><span class="cx">             pluginElement.setNeedsWidgetUpdate(true);
</span><span class="cx">     }
</span><span class="lines">@@ -2789,7 +2789,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (embeddedObject.isSnapshottedPlugIn()) {
</span><span class="cx">         if (isHTMLObjectElement(element) || isHTMLEmbedElement(element)) {
</span><del>-            HTMLPlugInImageElement&amp; pluginElement = toHTMLPlugInImageElement(element);
</del><ins>+            HTMLPlugInImageElement&amp; pluginElement = downcast&lt;HTMLPlugInImageElement&gt;(element);
</ins><span class="cx">             pluginElement.checkSnapshotStatus();
</span><span class="cx">         }
</span><span class="cx">         return;
</span><span class="lines">@@ -2800,7 +2800,7 @@
</span><span class="cx">     // FIXME: This could turn into a real virtual dispatch if we defined
</span><span class="cx">     // updateWidget(PluginCreationOption) on HTMLElement.
</span><span class="cx">     if (isHTMLObjectElement(element) || isHTMLEmbedElement(element) || isHTMLAppletElement(element)) {
</span><del>-        HTMLPlugInImageElement&amp; pluginElement = toHTMLPlugInImageElement(element);
</del><ins>+        HTMLPlugInImageElement&amp; pluginElement = downcast&lt;HTMLPlugInImageElement&gt;(element);
</ins><span class="cx">         if (pluginElement.needsCheckForSizeChange()) {
</span><span class="cx">             pluginElement.checkSnapshotStatus();
</span><span class="cx">             return;
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageSerializercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageSerializer.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageSerializer.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/page/PageSerializer.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -231,19 +231,19 @@
</span><span class="cx">             retrieveResourcesForProperties(toStyledElement(element)-&gt;inlineStyle(), document);
</span><span class="cx"> 
</span><span class="cx">         if (isHTMLImageElement(element)) {
</span><del>-            HTMLImageElement* imageElement = toHTMLImageElement(element);
-            URL url = document-&gt;completeURL(imageElement-&gt;fastGetAttribute(HTMLNames::srcAttr));
-            CachedImage* cachedImage = imageElement-&gt;cachedImage();
-            addImageToResources(cachedImage, imageElement-&gt;renderer(), url);
-        } else if (element-&gt;hasTagName(HTMLNames::linkTag)) {
-            HTMLLinkElement* linkElement = toHTMLLinkElement(element);
-            if (CSSStyleSheet* sheet = linkElement-&gt;sheet()) {
-                URL url = document-&gt;completeURL(linkElement-&gt;getAttribute(HTMLNames::hrefAttr));
</del><ins>+            HTMLImageElement&amp; imageElement = downcast&lt;HTMLImageElement&gt;(*element);
+            URL url = document-&gt;completeURL(imageElement.fastGetAttribute(HTMLNames::srcAttr));
+            CachedImage* cachedImage = imageElement.cachedImage();
+            addImageToResources(cachedImage, imageElement.renderer(), url);
+        } else if (isHTMLLinkElement(element)) {
+            HTMLLinkElement&amp; linkElement = downcast&lt;HTMLLinkElement&gt;(*element);
+            if (CSSStyleSheet* sheet = linkElement.sheet()) {
+                URL url = document-&gt;completeURL(linkElement.getAttribute(HTMLNames::hrefAttr));
</ins><span class="cx">                 serializeCSSStyleSheet(sheet, url);
</span><span class="cx">                 ASSERT(m_resourceURLs.contains(url));
</span><span class="cx">             }
</span><span class="cx">         } else if (isHTMLStyleElement(element)) {
</span><del>-            if (CSSStyleSheet* sheet = toHTMLStyleElement(element)-&gt;sheet())
</del><ins>+            if (CSSStyleSheet* sheet = downcast&lt;HTMLStyleElement&gt;(*element).sheet())
</ins><span class="cx">                 serializeCSSStyleSheet(sheet, URL());
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorepageSpatialNavigationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SpatialNavigation.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SpatialNavigation.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/page/SpatialNavigation.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -67,13 +67,13 @@
</span><span class="cx">     ASSERT(node-&gt;isElementNode());
</span><span class="cx"> 
</span><span class="cx">     if (isHTMLAreaElement(node)) {
</span><del>-        HTMLAreaElement* area = toHTMLAreaElement(node);
-        HTMLImageElement* image = area-&gt;imageElement();
</del><ins>+        HTMLAreaElement&amp; area = downcast&lt;HTMLAreaElement&gt;(*node);
+        HTMLImageElement* image = area.imageElement();
</ins><span class="cx">         if (!image || !image-&gt;renderer())
</span><span class="cx">             return;
</span><span class="cx"> 
</span><span class="cx">         visibleNode = image;
</span><del>-        rect = virtualRectForAreaElementAndDirection(area, direction);
</del><ins>+        rect = virtualRectForAreaElementAndDirection(&amp;area, direction);
</ins><span class="cx">     } else {
</span><span class="cx">         if (!node-&gt;renderer())
</span><span class="cx">             return;
</span></span></pre></div>
<a id="trunkSourceWebCorepageiosFrameIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ios/FrameIOS.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ios/FrameIOS.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/page/ios/FrameIOS.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -351,8 +351,8 @@
</span><span class="cx">             // If we are interested about the frame, use it.
</span><span class="cx">             if (nodeBounds) {
</span><span class="cx">                 // This is a check to see whether this node is an area element.  The only way this can happen is if this is the first check.
</span><del>-                if (node == hitTestResult.innerNode() &amp;&amp; node != hitTestResult.innerNonSharedNode() &amp;&amp; node-&gt;hasTagName(HTMLNames::areaTag))
-                    *nodeBounds = snappedIntRect(toHTMLAreaElement(node)-&gt;computeRect(hitTestResult.innerNonSharedNode()-&gt;renderer()));
</del><ins>+                if (node == hitTestResult.innerNode() &amp;&amp; node != hitTestResult.innerNonSharedNode() &amp;&amp; isHTMLAreaElement(node))
+                    *nodeBounds = snappedIntRect(downcast&lt;HTMLAreaElement&gt;(*node).computeRect(hitTestResult.innerNonSharedNode()-&gt;renderer()));
</ins><span class="cx">                 else if (node &amp;&amp; node-&gt;renderer())
</span><span class="cx">                     *nodeBounds = node-&gt;renderer()-&gt;absoluteBoundingBoxRect(true);
</span><span class="cx">             }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingHitTestResultcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/HitTestResult.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/HitTestResult.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/HitTestResult.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -44,10 +44,11 @@
</span><span class="cx"> #include &quot;RenderBlockFlow.h&quot;
</span><span class="cx"> #include &quot;RenderImage.h&quot;
</span><span class="cx"> #include &quot;RenderInline.h&quot;
</span><ins>+#include &quot;SVGAElement.h&quot;
+#include &quot;SVGImageElement.h&quot;
+#include &quot;SVGNames.h&quot;
</ins><span class="cx"> #include &quot;Scrollbar.h&quot;
</span><span class="cx"> #include &quot;ShadowRoot.h&quot;
</span><del>-#include &quot;SVGImageElement.h&quot;
-#include &quot;SVGNames.h&quot;
</del><span class="cx"> #include &quot;UserGestureIndicator.h&quot;
</span><span class="cx"> #include &quot;XLinkNames.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -272,14 +273,14 @@
</span><span class="cx">     if (!m_innerNonSharedNode)
</span><span class="cx">         return String();
</span><span class="cx">     
</span><del>-    if (isHTMLImageElement(m_innerNonSharedNode.get())) {
-        HTMLImageElement* image = toHTMLImageElement(m_innerNonSharedNode.get());
-        return displayString(image-&gt;fastGetAttribute(altAttr), m_innerNonSharedNode.get());
</del><ins>+    if (isHTMLImageElement(*m_innerNonSharedNode)) {
+        HTMLImageElement&amp; image = downcast&lt;HTMLImageElement&gt;(*m_innerNonSharedNode);
+        return displayString(image.fastGetAttribute(altAttr), m_innerNonSharedNode.get());
</ins><span class="cx">     }
</span><span class="cx">     
</span><del>-    if (isHTMLInputElement(m_innerNonSharedNode.get())) {
-        HTMLInputElement* input = toHTMLInputElement(m_innerNonSharedNode.get());
-        return displayString(input-&gt;alt(), m_innerNonSharedNode.get());
</del><ins>+    if (isHTMLInputElement(*m_innerNonSharedNode)) {
+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*m_innerNonSharedNode);
+        return displayString(input.alt(), m_innerNonSharedNode.get());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return String();
</span><span class="lines">@@ -335,15 +336,15 @@
</span><span class="cx">     if (!m_innerNonSharedNode)
</span><span class="cx">         return URL();
</span><span class="cx"> 
</span><del>-    if (!m_innerNonSharedNode-&gt;hasTagName(embedTag) &amp;&amp; !m_innerNonSharedNode-&gt;hasTagName(objectTag))
</del><ins>+    if (!isHTMLEmbedElement(*m_innerNonSharedNode) &amp;&amp; !isHTMLObjectElement(*m_innerNonSharedNode))
</ins><span class="cx">         return URL();
</span><span class="cx"> 
</span><del>-    HTMLPlugInImageElement* element = toHTMLPlugInImageElement(m_innerNonSharedNode.get());
-    URL url = m_innerNonSharedNode-&gt;document().completeURL(stripLeadingAndTrailingHTMLSpaces(element-&gt;url()));
</del><ins>+    HTMLPlugInImageElement&amp; element = downcast&lt;HTMLPlugInImageElement&gt;(*m_innerNonSharedNode);
+    URL url = m_innerNonSharedNode-&gt;document().completeURL(stripLeadingAndTrailingHTMLSpaces(element.url()));
</ins><span class="cx">     if (!url.isValid())
</span><span class="cx">         return URL();
</span><span class="cx"> 
</span><del>-    if (element-&gt;serviceType() == &quot;application/pdf&quot; || (element-&gt;serviceType().isEmpty() &amp;&amp; url.path().lower().endsWith(&quot;.pdf&quot;)))
</del><ins>+    if (element.serviceType() == &quot;application/pdf&quot; || (element.serviceType().isEmpty() &amp;&amp; url.path().endsWith(&quot;.pdf&quot;, false)))
</ins><span class="cx">         return url;
</span><span class="cx">     return URL();
</span><span class="cx"> }
</span><span class="lines">@@ -424,12 +425,12 @@
</span><span class="cx"> void HitTestResult::enterFullscreenForVideo() const
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(VIDEO)
</span><del>-    HTMLMediaElement* mediaElt(mediaElement());
-    if (mediaElt &amp;&amp; isHTMLVideoElement(mediaElt)) {
-        HTMLVideoElement* videoElt = toHTMLVideoElement(mediaElt);
-        if (!videoElt-&gt;isFullscreen() &amp;&amp; mediaElt-&gt;supportsFullscreen()) {
</del><ins>+    HTMLMediaElement* mediaElement(this-&gt;mediaElement());
+    if (mediaElement &amp;&amp; isHTMLVideoElement(mediaElement)) {
+        HTMLVideoElement&amp; videoElement = downcast&lt;HTMLVideoElement&gt;(*mediaElement);
+        if (!videoElement.isFullscreen() &amp;&amp; mediaElement-&gt;supportsFullscreen()) {
</ins><span class="cx">             UserGestureIndicator indicator(DefinitelyProcessingUserGesture);
</span><del>-            videoElt-&gt;enterFullscreen();
</del><ins>+            videoElement.enterFullscreen();
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="lines">@@ -438,8 +439,8 @@
</span><span class="cx"> bool HitTestResult::mediaControlsEnabled() const
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(VIDEO)
</span><del>-    if (HTMLMediaElement* mediaElt = mediaElement())
-        return mediaElt-&gt;controls();
</del><ins>+    if (HTMLMediaElement* mediaElement = this-&gt;mediaElement())
+        return mediaElement-&gt;controls();
</ins><span class="cx"> #endif
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="lines">@@ -517,10 +518,10 @@
</span><span class="cx">     if (!m_innerURLElement)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (isHTMLAnchorElement(m_innerURLElement.get()))
-        return toHTMLAnchorElement(m_innerURLElement.get())-&gt;isLiveLink();
</del><ins>+    if (isHTMLAnchorElement(*m_innerURLElement))
+        return downcast&lt;HTMLAnchorElement&gt;(*m_innerURLElement).isLiveLink();
</ins><span class="cx"> 
</span><del>-    if (m_innerURLElement-&gt;hasTagName(SVGNames::aTag))
</del><ins>+    if (isSVGAElement(*m_innerURLElement))
</ins><span class="cx">         return m_innerURLElement-&gt;isLink();
</span><span class="cx"> 
</span><span class="cx">     return false;
</span><span class="lines">@@ -555,11 +556,11 @@
</span><span class="cx">     if (!m_innerNonSharedNode)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (isHTMLTextAreaElement(m_innerNonSharedNode.get()))
</del><ins>+    if (isHTMLTextAreaElement(*m_innerNonSharedNode))
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    if (isHTMLInputElement(m_innerNonSharedNode.get()))
-        return toHTMLInputElement(m_innerNonSharedNode.get())-&gt;isTextField();
</del><ins>+    if (isHTMLInputElement(*m_innerNonSharedNode))
+        return downcast&lt;HTMLInputElement&gt;(*m_innerNonSharedNode).isTextField();
</ins><span class="cx"> 
</span><span class="cx">     return m_innerNonSharedNode-&gt;hasEditableStyle();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderButtoncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderButton.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderButton.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderButton.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx"> {
</span><span class="cx">     // If we're an input element, we may need to change our button text.
</span><span class="cx">     if (isHTMLInputElement(formControlElement())) {
</span><del>-        HTMLInputElement&amp; input = toHTMLInputElement(formControlElement());
</del><ins>+        HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(formControlElement());
</ins><span class="cx">         String value = input.valueWithDefault();
</span><span class="cx">         setText(value);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderCountercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderCounter.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderCounter.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderCounter.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -142,8 +142,8 @@
</span><span class="cx">             return true;
</span><span class="cx">         }
</span><span class="cx">         if (Element* element = renderer.element()) {
</span><del>-            if (element-&gt;hasTagName(olTag)) {
-                value = toHTMLOListElement(element)-&gt;start();
</del><ins>+            if (isHTMLOListElement(element)) {
+                value = downcast&lt;HTMLOListElement&gt;(*element).start();
</ins><span class="cx">                 isReset = true;
</span><span class="cx">                 return true;
</span><span class="cx">             }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderEmbeddedObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -238,8 +238,7 @@
</span><span class="cx">     if (!plugInElement.isPlugInImageElement())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Image* snapshot = toHTMLPlugInImageElement(plugInElement).snapshotImage();
-    if (snapshot)
</del><ins>+    if (Image* snapshot = downcast&lt;HTMLPlugInImageElement&gt;(plugInElement).snapshotImage())
</ins><span class="cx">         paintSnapshotImage(paintInfo, paintOffset, snapshot);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -495,7 +494,7 @@
</span><span class="cx">     if (!wasMissingWidget &amp;&amp; newSize.width() &gt;= oldSize.width() &amp;&amp; newSize.height() &gt;= oldSize.height()) {
</span><span class="cx">         HTMLFrameOwnerElement&amp; element = frameOwnerElement();
</span><span class="cx">         if (element.isPluginElement() &amp;&amp; toHTMLPlugInElement(element).isPlugInImageElement()) {
</span><del>-            HTMLPlugInImageElement&amp; plugInImageElement = toHTMLPlugInImageElement(element);
</del><ins>+            HTMLPlugInImageElement&amp; plugInImageElement = downcast&lt;HTMLPlugInImageElement&gt;(element);
</ins><span class="cx">             if (plugInImageElement.displayState() &gt; HTMLPlugInElement::DisplayingSnapshot &amp;&amp; plugInImageElement.snapshotDecision() == HTMLPlugInImageElement::MaySnapshotWhenResized) {
</span><span class="cx">                 plugInImageElement.setNeedsCheckForSizeChange();
</span><span class="cx">                 view().frameView().addEmbeddedObjectToUpdate(*this);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFieldseth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFieldset.h (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFieldset.h        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderFieldset.h        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx">     enum FindLegendOption { IgnoreFloatingOrOutOfFlow, IncludeFloatingOrOutOfFlow };
</span><span class="cx">     RenderBox* findLegend(FindLegendOption = IgnoreFloatingOrOutOfFlow) const;
</span><span class="cx"> 
</span><del>-    HTMLFieldSetElement&amp; fieldSetElement() const { return toHTMLFieldSetElement(nodeForNonAnonymous()); }
</del><ins>+    HTMLFieldSetElement&amp; fieldSetElement() const { return downcast&lt;HTMLFieldSetElement&gt;(nodeForNonAnonymous()); }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     void element() const = delete;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFileUploadControlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLInputElement&amp; RenderFileUploadControl::inputElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLInputElement(nodeForNonAnonymous());
</del><ins>+    return downcast&lt;HTMLInputElement&gt;(nodeForNonAnonymous());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderFileUploadControl::updateFromElement()
</span><span class="lines">@@ -255,7 +255,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(inputElement().shadowRoot());
</span><span class="cx">     Node* buttonNode = inputElement().shadowRoot()-&gt;firstChild();
</span><del>-    return buttonNode &amp;&amp; buttonNode-&gt;isHTMLElement() &amp;&amp; isHTMLInputElement(buttonNode) ? toHTMLInputElement(buttonNode) : 0;
</del><ins>+    return buttonNode &amp;&amp; buttonNode-&gt;isHTMLElement() &amp;&amp; isHTMLInputElement(buttonNode) ? downcast&lt;HTMLInputElement&gt;(buttonNode) : nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String RenderFileUploadControl::buttonValue()
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFrame.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFrame.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderFrame.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLFrameElement&amp; RenderFrame::frameElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLFrameElement(RenderFrameBase::frameOwnerElement());
</del><ins>+    return downcast&lt;HTMLFrameElement&gt;(RenderFrameBase::frameOwnerElement());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> FrameEdgeInfo RenderFrame::edgeInfo() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFrameSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFrameSet.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFrameSet.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderFrameSet.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLFrameSetElement&amp; RenderFrameSet::frameSetElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLFrameSetElement(nodeForNonAnonymous());
</del><ins>+    return downcast&lt;HTMLFrameSetElement&gt;(nodeForNonAnonymous());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RenderFrameSet::GridAxis::GridAxis()
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderHTMLCanvascpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderHTMLCanvas.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderHTMLCanvas.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderHTMLCanvas.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLCanvasElement&amp; RenderHTMLCanvas::canvasElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLCanvasElement(nodeForNonAnonymous());
</del><ins>+    return downcast&lt;HTMLCanvasElement&gt;(nodeForNonAnonymous());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderHTMLCanvas::requiresLayer() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderIFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderIFrame.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderIFrame.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderIFrame.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLIFrameElement&amp; RenderIFrame::iframeElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLIFrameElement(RenderFrameBase::frameOwnerElement());
</del><ins>+    return downcast&lt;HTMLIFrameElement&gt;(RenderFrameBase::frameOwnerElement());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderIFrame::shouldComputeSizeAsReplaced() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderImage.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderImage.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderImage.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx">     imageResource().initialize(this);
</span><span class="cx"> 
</span><span class="cx">     if (isHTMLImageElement(element))
</span><del>-        m_hasShadowControls = toHTMLImageElement(element).hasShadowControls();
</del><ins>+        m_hasShadowControls = downcast&lt;HTMLImageElement&gt;(element).hasShadowControls();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RenderImage::RenderImage(Document&amp; document, PassRef&lt;RenderStyle&gt; style, StyleImage* styleImage)
</span><span class="lines">@@ -517,20 +517,20 @@
</span><span class="cx">     if (!focusedElement || !isHTMLAreaElement(focusedElement))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    HTMLAreaElement* areaElement = toHTMLAreaElement(focusedElement);
-    if (areaElement-&gt;imageElement() != element())
</del><ins>+    HTMLAreaElement&amp; areaElement = downcast&lt;HTMLAreaElement&gt;(*focusedElement);
+    if (areaElement.imageElement() != element())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // Even if the theme handles focus ring drawing for entire elements, it won't do it for
</span><span class="cx">     // an area within an image, so we don't call RenderTheme::supportsFocusRing here.
</span><span class="cx"> 
</span><del>-    Path path = areaElement-&gt;computePath(this);
</del><ins>+    Path path = areaElement.computePath(this);
</ins><span class="cx">     if (path.isEmpty())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Do we need additional code to clip the path to the image's bounding box?
</span><span class="cx"> 
</span><del>-    RenderStyle* areaElementStyle = areaElement-&gt;computedStyle();
</del><ins>+    RenderStyle* areaElementStyle = areaElement.computedStyle();
</ins><span class="cx">     unsigned short outlineWidth = areaElementStyle-&gt;outlineWidth();
</span><span class="cx">     if (!outlineWidth)
</span><span class="cx">         return;
</span><span class="lines">@@ -560,8 +560,8 @@
</span><span class="cx">     if (!img || img-&gt;isNull())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    HTMLImageElement* imageElt = (element() &amp;&amp; isHTMLImageElement(element())) ? toHTMLImageElement(element()) : 0;
-    CompositeOperator compositeOperator = imageElt ? imageElt-&gt;compositeOperator() : CompositeSourceOver;
</del><ins>+    HTMLImageElement* imageElement = (element() &amp;&amp; isHTMLImageElement(element())) ? downcast&lt;HTMLImageElement&gt;(element()) : nullptr;
+    CompositeOperator compositeOperator = imageElement ? imageElement-&gt;compositeOperator() : CompositeSourceOver;
</ins><span class="cx">     Image* image = imageResource().image().get();
</span><span class="cx">     bool useLowQualityScaling = shouldPaintAtLowQuality(context, image, image, LayoutSize(rect.size()));
</span><span class="cx">     ImageOrientationDescription orientationDescription(shouldRespectImageOrientation());
</span><span class="lines">@@ -622,8 +622,8 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLMapElement* RenderImage::imageMap() const
</span><span class="cx"> {
</span><del>-    HTMLImageElement* i = element() &amp;&amp; isHTMLImageElement(element()) ? toHTMLImageElement(element()) : 0;
-    return i ? i-&gt;treeScope().getImageMap(i-&gt;fastGetAttribute(usemapAttr)) : 0;
</del><ins>+    HTMLImageElement* image = element() &amp;&amp; isHTMLImageElement(element()) ? downcast&lt;HTMLImageElement&gt;(element()) : nullptr;
+    return image ? image-&gt;treeScope().getImageMap(image-&gt;fastGetAttribute(usemapAttr)) : nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderImage::nodeAtPoint(const HitTestRequest&amp; request, HitTestResult&amp; result, const HitTestLocation&amp; locationInContainer, const LayoutPoint&amp; accumulatedOffset, HitTestAction hitTestAction)
</span><span class="lines">@@ -655,10 +655,10 @@
</span><span class="cx">     if (!element())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (isHTMLInputElement(element()))
-        m_altText = toHTMLInputElement(element())-&gt;altText();
-    else if (isHTMLImageElement(element()))
-        m_altText = toHTMLImageElement(element())-&gt;altText();
</del><ins>+    if (isHTMLInputElement(*element()))
+        m_altText = downcast&lt;HTMLInputElement&gt;(*element()).altText();
+    else if (isHTMLImageElement(*element()))
+        m_altText = downcast&lt;HTMLImageElement&gt;(*element()).altText();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderImage::canHaveChildren() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(renderer.isCanvas());
</span><span class="cx">     
</span><del>-    const HTMLCanvasElement* canvas = toHTMLCanvasElement(renderer.node());
</del><ins>+    const HTMLCanvasElement* canvas = downcast&lt;HTMLCanvasElement&gt;(renderer.node());
</ins><span class="cx">     CanvasRenderingContext* context = canvas-&gt;renderingContext();
</span><span class="cx">     if (!context || !context-&gt;isAccelerated())
</span><span class="cx">         return UnacceleratedCanvas;
</span><span class="lines">@@ -300,7 +300,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA) &amp;&amp; USE(CA)
</span><span class="cx">     if (!compositor().acceleratedDrawingEnabled() &amp;&amp; renderer().isCanvas()) {
</span><del>-        const HTMLCanvasElement* canvas = toHTMLCanvasElement(renderer().element());
</del><ins>+        const HTMLCanvasElement* canvas = downcast&lt;HTMLCanvasElement&gt;(renderer().element());
</ins><span class="cx">         if (canvas-&gt;shouldAccelerate(canvas-&gt;size()))
</span><span class="cx">             m_graphicsLayer-&gt;setAcceleratesDrawing(true);
</span><span class="cx">     }
</span><span class="lines">@@ -592,7 +592,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(WEBGL) || ENABLE(ACCELERATED_2D_CANVAS)
</span><span class="cx">     else if (renderer().isCanvas() &amp;&amp; canvasCompositingStrategy(renderer()) == CanvasAsLayerContents) {
</span><del>-        const HTMLCanvasElement* canvas = toHTMLCanvasElement(renderer().element());
</del><ins>+        const HTMLCanvasElement* canvas = downcast&lt;HTMLCanvasElement&gt;(renderer().element());
</ins><span class="cx">         if (CanvasRenderingContext* context = canvas-&gt;renderingContext())
</span><span class="cx">             m_graphicsLayer-&gt;setContentsToPlatformLayer(context-&gt;platformLayer(), GraphicsLayer::ContentsLayerForCanvas);
</span><span class="cx">         layerConfigChanged = true;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerCompositorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -2435,7 +2435,7 @@
</span><span class="cx"> #if USE(COMPOSITING_FOR_SMALL_CANVASES)
</span><span class="cx">         bool isCanvasLargeEnoughToForceCompositing = true;
</span><span class="cx"> #else
</span><del>-        HTMLCanvasElement* canvas = toHTMLCanvasElement(renderer.element());
</del><ins>+        HTMLCanvasElement* canvas = downcast&lt;HTMLCanvasElement&gt;(renderer.element());
</ins><span class="cx">         bool isCanvasLargeEnoughToForceCompositing = canvas-&gt;size().area() &gt;= canvasAreaThresholdRequiringCompositing;
</span><span class="cx"> #endif
</span><span class="cx">         CanvasCompositingStrategy compositingStrategy = canvasCompositingStrategy(renderer);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderListBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderListBox.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderListBox.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderListBox.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLSelectElement&amp; RenderListBox::selectElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLSelectElement(nodeForNonAnonymous());
</del><ins>+    return downcast&lt;HTMLSelectElement&gt;(nodeForNonAnonymous());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderListBox::updateFromElement()
</span><span class="lines">@@ -117,9 +117,9 @@
</span><span class="cx">             String text;
</span><span class="cx">             Font itemFont = style().font();
</span><span class="cx">             if (isHTMLOptionElement(element))
</span><del>-                text = toHTMLOptionElement(element)-&gt;textIndentedToRespectGroupLabel();
</del><ins>+                text = downcast&lt;HTMLOptionElement&gt;(*element).textIndentedToRespectGroupLabel();
</ins><span class="cx">             else if (isHTMLOptGroupElement(element)) {
</span><del>-                text = toHTMLOptGroupElement(element)-&gt;groupLabelText();
</del><ins>+                text = downcast&lt;HTMLOptGroupElement&gt;(*element).groupLabelText();
</ins><span class="cx">                 FontDescription d = itemFont.fontDescription();
</span><span class="cx">                 d.setWeight(d.bolderWeight());
</span><span class="cx">                 itemFont = Font(d, itemFont.letterSpacing(), itemFont.wordSpacing());
</span><span class="lines">@@ -387,13 +387,13 @@
</span><span class="cx">     String itemText;
</span><span class="cx">     bool isOptionElement = isHTMLOptionElement(listItemElement);
</span><span class="cx">     if (isOptionElement)
</span><del>-        itemText = toHTMLOptionElement(listItemElement)-&gt;textIndentedToRespectGroupLabel();
</del><ins>+        itemText = downcast&lt;HTMLOptionElement&gt;(*listItemElement).textIndentedToRespectGroupLabel();
</ins><span class="cx">     else if (isHTMLOptGroupElement(listItemElement))
</span><del>-        itemText = toHTMLOptGroupElement(listItemElement)-&gt;groupLabelText();
</del><ins>+        itemText = downcast&lt;HTMLOptGroupElement&gt;(*listItemElement).groupLabelText();
</ins><span class="cx">     applyTextTransform(style(), itemText, ' ');
</span><span class="cx"> 
</span><span class="cx">     Color textColor = listItemElement-&gt;renderStyle() ? listItemElement-&gt;renderStyle()-&gt;visitedDependentColor(CSSPropertyColor) : style().visitedDependentColor(CSSPropertyColor);
</span><del>-    if (isOptionElement &amp;&amp; toHTMLOptionElement(listItemElement)-&gt;selected()) {
</del><ins>+    if (isOptionElement &amp;&amp; downcast&lt;HTMLOptionElement&gt;(*listItemElement).selected()) {
</ins><span class="cx">         if (frame().selection().isFocusedAndActive() &amp;&amp; document().focusedElement() == &amp;selectElement())
</span><span class="cx">             textColor = theme().activeListBoxSelectionForegroundColor();
</span><span class="cx">         // Honor the foreground color for disabled items
</span><span class="lines">@@ -426,7 +426,7 @@
</span><span class="cx">     HTMLElement* listItemElement = listItems[listIndex];
</span><span class="cx"> 
</span><span class="cx">     Color backColor;
</span><del>-    if (isHTMLOptionElement(listItemElement) &amp;&amp; toHTMLOptionElement(listItemElement)-&gt;selected()) {
</del><ins>+    if (isHTMLOptionElement(listItemElement) &amp;&amp; downcast&lt;HTMLOptionElement&gt;(*listItemElement).selected()) {
</ins><span class="cx">         if (frame().selection().isFocusedAndActive() &amp;&amp; document().focusedElement() == &amp;selectElement())
</span><span class="cx">             backColor = theme().activeListBoxSelectionBackgroundColor();
</span><span class="cx">         else
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderListItemcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderListItem.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderListItem.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderListItem.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -189,7 +189,7 @@
</span><span class="cx">         return m_explicitValue;
</span><span class="cx"> 
</span><span class="cx">     Element* list = enclosingList(this);
</span><del>-    HTMLOListElement* oListElement = (list &amp;&amp; list-&gt;hasTagName(olTag)) ? toHTMLOListElement(list) : nullptr;
</del><ins>+    HTMLOListElement* oListElement = (list &amp;&amp; list-&gt;hasTagName(olTag)) ? downcast&lt;HTMLOListElement&gt;(list) : nullptr;
</ins><span class="cx">     int valueStep = 1;
</span><span class="cx">     if (oListElement &amp;&amp; oListElement-&gt;isReversed())
</span><span class="cx">         valueStep = -1;
</span><span class="lines">@@ -501,7 +501,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     bool isListReversed = false;
</span><del>-    HTMLOListElement* oListElement = (listNode &amp;&amp; listNode-&gt;hasTagName(olTag)) ? toHTMLOListElement(listNode) : nullptr;
</del><ins>+    HTMLOListElement* oListElement = (listNode &amp;&amp; listNode-&gt;hasTagName(olTag)) ? downcast&lt;HTMLOListElement&gt;(listNode) : nullptr;
</ins><span class="cx">     if (oListElement) {
</span><span class="cx">         oListElement-&gt;itemCountChanged();
</span><span class="cx">         isListReversed = oListElement-&gt;isReversed();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMarqueecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMarquee.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMarquee.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderMarquee.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -73,8 +73,8 @@
</span><span class="cx"> {
</span><span class="cx">     int result = m_layer-&gt;renderer().style().marqueeSpeed();
</span><span class="cx">     Element* element = m_layer-&gt;renderer().element();
</span><del>-    if (element &amp;&amp; element-&gt;hasTagName(marqueeTag))
-        result = std::max(result, toHTMLMarqueeElement(element)-&gt;minimumDelay());
</del><ins>+    if (element &amp;&amp; isHTMLMarqueeElement(element))
+        result = std::max(result, downcast&lt;HTMLMarqueeElement&gt;(*element).minimumDelay());
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMenuListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMenuList.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMenuList.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderMenuList.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> 
</span><span class="cx">     size_t count = 0;
</span><span class="cx">     for (size_t i = 0; i &lt; numberOfItems; ++i) {
</span><del>-        if (listItems[i]-&gt;hasTagName(optionTag) &amp;&amp; toHTMLOptionElement(listItems[i])-&gt;selected())
</del><ins>+        if (isHTMLOptionElement(listItems[i]) &amp;&amp; downcast&lt;HTMLOptionElement&gt;(*listItems[i]).selected())
</ins><span class="cx">             ++count;
</span><span class="cx">     }
</span><span class="cx">     return count;
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLSelectElement&amp; RenderMenuList::selectElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLSelectElement(nodeForNonAnonymous());
</del><ins>+    return downcast&lt;HTMLSelectElement&gt;(nodeForNonAnonymous());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderMenuList::addChild(RenderObject* newChild, RenderObject* beforeChild)
</span><span class="lines">@@ -217,7 +217,7 @@
</span><span class="cx">         if (!isHTMLOptionElement(element))
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        String text = toHTMLOptionElement(element)-&gt;textIndentedToRespectGroupLabel();
</del><ins>+        String text = downcast&lt;HTMLOptionElement&gt;(*element).textIndentedToRespectGroupLabel();
</ins><span class="cx">         applyTextTransform(style(), text, ' ');
</span><span class="cx">         if (theme().popupOptionSupportsTextIndent()) {
</span><span class="cx">             // Add in the option's text indent.  We can't calculate percentage values for now.
</span><span class="lines">@@ -271,7 +271,7 @@
</span><span class="cx">     if (i &gt;= 0 &amp;&amp; i &lt; size) {
</span><span class="cx">         Element* element = listItems[i];
</span><span class="cx">         if (isHTMLOptionElement(element)) {
</span><del>-            text = toHTMLOptionElement(element)-&gt;textIndentedToRespectGroupLabel();
</del><ins>+            text = downcast&lt;HTMLOptionElement&gt;(*element).textIndentedToRespectGroupLabel();
</ins><span class="cx">             m_optionStyle = element-&gt;computedStyle();
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -451,9 +451,9 @@
</span><span class="cx">     String itemString;
</span><span class="cx">     Element* element = listItems[listIndex];
</span><span class="cx">     if (isHTMLOptGroupElement(element))
</span><del>-        itemString = toHTMLOptGroupElement(element)-&gt;groupLabelText();
</del><ins>+        itemString = downcast&lt;HTMLOptGroupElement&gt;(*element).groupLabelText();
</ins><span class="cx">     else if (isHTMLOptionElement(element))
</span><del>-        itemString = toHTMLOptionElement(element)-&gt;textIndentedToRespectGroupLabel();
</del><ins>+        itemString = downcast&lt;HTMLOptionElement&gt;(*element).textIndentedToRespectGroupLabel();
</ins><span class="cx"> 
</span><span class="cx">     applyTextTransform(style(), itemString, ' ');
</span><span class="cx">     return itemString;
</span><span class="lines">@@ -654,7 +654,7 @@
</span><span class="cx">     if (listIndex &gt;= listItems.size())
</span><span class="cx">         return false;
</span><span class="cx">     HTMLElement* element = listItems[listIndex];
</span><del>-    return isHTMLOptionElement(element) &amp;&amp; toHTMLOptionElement(element)-&gt;selected();
</del><ins>+    return isHTMLOptionElement(element) &amp;&amp; downcast&lt;HTMLOptionElement&gt;(*element).selected();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderMenuList::setTextFromItem(unsigned listIndex)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMetercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMeter.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMeter.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderMeter.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -44,10 +44,10 @@
</span><span class="cx">     ASSERT(element());
</span><span class="cx"> 
</span><span class="cx">     if (isHTMLMeterElement(element()))
</span><del>-        return toHTMLMeterElement(element());
</del><ins>+        return downcast&lt;HTMLMeterElement&gt;(element());
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(element()-&gt;shadowHost());
</span><del>-    return toHTMLMeterElement(element()-&gt;shadowHost());
</del><ins>+    return downcast&lt;HTMLMeterElement&gt;(element()-&gt;shadowHost());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderMeter::updateLogicalWidth()
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderProgresscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderProgress.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderProgress.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderProgress.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -108,13 +108,13 @@
</span><span class="cx"> HTMLProgressElement* RenderProgress::progressElement() const
</span><span class="cx"> {
</span><span class="cx">     if (!element())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     if (isHTMLProgressElement(element()))
</span><del>-        return toHTMLProgressElement(element());
</del><ins>+        return downcast&lt;HTMLProgressElement&gt;(element());
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(element()-&gt;shadowHost());
</span><del>-    return toHTMLProgressElement(element()-&gt;shadowHost());
</del><ins>+    return downcast&lt;HTMLProgressElement&gt;(element()-&gt;shadowHost());
</ins><span class="cx"> }    
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderSlidercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderSlider.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderSlider.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderSlider.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLInputElement&amp; RenderSlider::element() const
</span><span class="cx"> {
</span><del>-    return toHTMLInputElement(nodeForNonAnonymous());
</del><ins>+    return downcast&lt;HTMLInputElement&gt;(nodeForNonAnonymous());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int RenderSlider::baselinePosition(FontBaseline, bool /*firstLine*/, LineDirectionMode, LinePositionMode) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderSnapshottedPlugIncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLPlugInImageElement&amp; RenderSnapshottedPlugIn::plugInImageElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLPlugInImageElement(RenderEmbeddedObject::frameOwnerElement());
</del><ins>+    return downcast&lt;HTMLPlugInImageElement&gt;(RenderEmbeddedObject::frameOwnerElement());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderSnapshottedPlugIn::layout()
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControl.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControl.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderTextControl.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLTextFormControlElement&amp; RenderTextControl::textFormControlElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLTextFormControlElement(nodeForNonAnonymous());
</del><ins>+    return downcast&lt;HTMLTextFormControlElement&gt;(nodeForNonAnonymous());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> TextControlInnerTextElement* RenderTextControl::innerTextElement() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlMultiLinecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLTextAreaElement&amp; RenderTextControlMultiLine::textAreaElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLTextAreaElement(RenderTextControl::textFormControlElement());
</del><ins>+    return downcast&lt;HTMLTextAreaElement&gt;(RenderTextControl::textFormControlElement());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderTextControlMultiLine::nodeAtPoint(const HitTestRequest&amp; request, HitTestResult&amp; result, const HitTestLocation&amp; locationInContainer, const LayoutPoint&amp; accumulatedOffset, HitTestAction hitTestAction)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlSingleLinecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -481,7 +481,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLInputElement&amp; RenderTextControlSingleLine::inputElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLInputElement(RenderTextControl::textFormControlElement());
</del><ins>+    return downcast&lt;HTMLInputElement&gt;(RenderTextControl::textFormControlElement());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTheme.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTheme.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderTheme.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -980,7 +980,7 @@
</span><span class="cx">     if (!input)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    HTMLDataListElement* dataList = toHTMLDataListElement(input-&gt;list());
</del><ins>+    HTMLDataListElement* dataList = downcast&lt;HTMLDataListElement&gt;(input-&gt;list());
</ins><span class="cx">     if (!dataList)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -1036,8 +1036,8 @@
</span><span class="cx">     paintInfo.context-&gt;setFillColor(o.style().visitedDependentColor(CSSPropertyColor), ColorSpaceDeviceRGB);
</span><span class="cx">     for (unsigned i = 0; Node* node = options-&gt;item(i); i++) {
</span><span class="cx">         ASSERT(isHTMLOptionElement(node));
</span><del>-        HTMLOptionElement* optionElement = toHTMLOptionElement(node);
-        String value = optionElement-&gt;value();
</del><ins>+        HTMLOptionElement&amp; optionElement = downcast&lt;HTMLOptionElement&gt;(*node);
+        String value = optionElement.value();
</ins><span class="cx">         if (!input-&gt;isValidValue(value))
</span><span class="cx">             continue;
</span><span class="cx">         double parsedValue = parseToDoubleForNumberType(input-&gt;sanitizeValue(value));
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -672,7 +672,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Paint Indicators.
</span><span class="cx"> 
</span><del>-    if (box.isMenuList() &amp;&amp; toHTMLSelectElement(box.node())-&gt;multiple()) {
</del><ins>+    if (box.isMenuList() &amp;&amp; downcast&lt;HTMLSelectElement&gt;(box.node())-&gt;multiple()) {
</ins><span class="cx">         int size = 2;
</span><span class="cx">         int count = 3;
</span><span class="cx">         int padding = 3;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeMac.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeMac.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1678,7 +1678,7 @@
</span><span class="cx"> 
</span><span class="cx">     NSSearchFieldCell* search = this-&gt;search();
</span><span class="cx"> 
</span><del>-    if (!input-&gt;isDisabledFormControl() &amp;&amp; (input-&gt;isTextFormControl() &amp;&amp; !toHTMLTextFormControlElement(input)-&gt;isReadOnly()))
</del><ins>+    if (!input-&gt;isDisabledFormControl() &amp;&amp; (input-&gt;isTextFormControl() &amp;&amp; !downcast&lt;HTMLTextFormControlElement&gt;(*input).isReadOnly()))
</ins><span class="cx">         updatePressedState([search cancelButtonCell], o);
</span><span class="cx">     else if ([[search cancelButtonCell] isHighlighted])
</span><span class="cx">         [[search cancelButtonCell] setHighlighted:NO];
</span><span class="lines">@@ -1861,13 +1861,13 @@
</span><span class="cx">     if (!plugInElement-&gt;isPlugInImageElement())
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    HTMLPlugInImageElement* plugInImageElement = toHTMLPlugInImageElement(plugInElement);
</del><ins>+    HTMLPlugInImageElement&amp; plugInImageElement = downcast&lt;HTMLPlugInImageElement&gt;(*plugInElement);
</ins><span class="cx"> 
</span><del>-    Image* snapshot = plugInImageElement-&gt;snapshotImage();
</del><ins>+    Image* snapshot = plugInImageElement.snapshotImage();
</ins><span class="cx">     if (!snapshot)
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    RenderSnapshottedPlugIn* plugInRenderer = toRenderSnapshottedPlugIn(plugInImageElement-&gt;renderer());
</del><ins>+    RenderSnapshottedPlugIn* plugInRenderer = toRenderSnapshottedPlugIn(plugInImageElement.renderer());
</ins><span class="cx">     FloatPoint snapshotAbsPos = plugInRenderer-&gt;localToAbsolute();
</span><span class="cx">     snapshotAbsPos.move(plugInRenderer-&gt;borderLeft() + plugInRenderer-&gt;paddingLeft(), plugInRenderer-&gt;borderTop() + plugInRenderer-&gt;paddingTop());
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderVideocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderVideo.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderVideo.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/rendering/RenderVideo.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -205,7 +205,7 @@
</span><span class="cx">     
</span><span class="cx"> HTMLVideoElement&amp; RenderVideo::videoElement() const
</span><span class="cx"> {
</span><del>-    return toHTMLVideoElement(RenderMedia::mediaElement());
</del><ins>+    return downcast&lt;HTMLVideoElement&gt;(RenderMedia::mediaElement());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderVideo::updateFromElement()
</span></span></pre></div>
<a id="trunkSourceWebCoresvggraphicsSVGImageCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/graphics/SVGImageCache.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/graphics/SVGImageCache.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/svg/graphics/SVGImageCache.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx">     
</span><span class="cx">     Node* node = renderer-&gt;node();
</span><span class="cx">     if (node &amp;&amp; isHTMLImageElement(node)) {
</span><del>-        const AtomicString&amp; urlString = toHTMLImageElement(node)-&gt;imageSourceURL();
</del><ins>+        const AtomicString&amp; urlString = downcast&lt;HTMLImageElement&gt;(*node).imageSourceURL();
</ins><span class="cx">         URL url = node-&gt;document().completeURL(urlString);
</span><span class="cx">         imageForContainer-&gt;setURL(url);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgsvgtagsin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/svgtags.in (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/svgtags.in        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/svg/svgtags.in        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> fallbackInterfaceName=&quot;SVGUnknownElement&quot;
</span><span class="cx"> fallbackJSInterfaceName=&quot;SVGElement&quot;
</span><span class="cx"> 
</span><del>-a
</del><ins>+a generateTypeHelpers
</ins><span class="cx"> #if ENABLE_SVG_FONTS
</span><span class="cx"> altGlyph generateTypeHelpers
</span><span class="cx"> altGlyphDef generateTypeHelpers
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/testing/Internals.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -624,7 +624,7 @@
</span><span class="cx"> String Internals::visiblePlaceholder(Element* element)
</span><span class="cx"> {
</span><span class="cx">     if (element &amp;&amp; isHTMLTextFormControlElement(*element)) {
</span><del>-        const HTMLTextFormControlElement&amp; textFormControlElement = toHTMLTextFormControlElement(*element);
</del><ins>+        const HTMLTextFormControlElement&amp; textFormControlElement = downcast&lt;HTMLTextFormControlElement&gt;(*element);
</ins><span class="cx">         if (!textFormControlElement.isPlaceholderVisible())
</span><span class="cx">             return String();
</span><span class="cx">         if (HTMLElement* placeholderElement = textFormControlElement.placeholderElement())
</span><span class="lines">@@ -912,9 +912,8 @@
</span><span class="cx">     if (HTMLInputElement* inputElement = textField-&gt;toInputElement())
</span><span class="cx">         return inputElement-&gt;lastChangeWasUserEdit();
</span><span class="cx"> 
</span><del>-    // FIXME: We should be using hasTagName instead but Windows port doesn't link QualifiedNames properly.
-    if (textField-&gt;tagName() == &quot;TEXTAREA&quot;)
-        return toHTMLTextAreaElement(textField)-&gt;lastChangeWasUserEdit();
</del><ins>+    if (isHTMLTextAreaElement(textField))
+        return downcast&lt;HTMLTextAreaElement&gt;(*textField).lastChangeWasUserEdit();
</ins><span class="cx"> 
</span><span class="cx">     ec = INVALID_NODE_TYPE_ERR;
</span><span class="cx">     return false;
</span><span class="lines">@@ -1920,8 +1919,8 @@
</span><span class="cx">         document = contextDocument();
</span><span class="cx">     else if (node-&gt;isDocumentNode())
</span><span class="cx">         document = toDocument(node);
</span><del>-    else if (node-&gt;hasTagName(HTMLNames::iframeTag))
-        document = toHTMLIFrameElement(node)-&gt;contentDocument();
</del><ins>+    else if (isHTMLIFrameElement(node))
+        document = downcast&lt;HTMLIFrameElement&gt;(*node).contentDocument();
</ins><span class="cx">     else {
</span><span class="cx">         ec = TypeError;
</span><span class="cx">         return;
</span><span class="lines">@@ -2088,9 +2087,9 @@
</span><span class="cx">     if (!isHTMLSelectElement(node))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    HTMLSelectElement* select = toHTMLSelectElement(node);
</del><ins>+    HTMLSelectElement&amp; select = downcast&lt;HTMLSelectElement&gt;(*node);
</ins><span class="cx"> 
</span><del>-    auto renderer = select-&gt;renderer();
</del><ins>+    auto renderer = select.renderer();
</ins><span class="cx">     if (!renderer-&gt;isMenuList())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorexmlparserXMLDocumentParserLibxml2cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -850,16 +850,16 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>-    if (newElement-&gt;hasTagName(HTMLNames::templateTag))
-        pushCurrentNode(toHTMLTemplateElement(newElement.get())-&gt;content());
</del><ins>+    if (isHTMLTemplateElement(*newElement))
+        pushCurrentNode(downcast&lt;HTMLTemplateElement&gt;(*newElement).content());
</ins><span class="cx">     else
</span><span class="cx">         pushCurrentNode(newElement.get());
</span><span class="cx"> #else
</span><span class="cx">     pushCurrentNode(newElement.get());
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    if (newElement-&gt;hasTagName(HTMLNames::htmlTag))
-        toHTMLHtmlElement(newElement.get())-&gt;insertedByParser();
</del><ins>+    if (isHTMLHtmlElement(*newElement))
+        downcast&lt;HTMLHtmlElement&gt;(*newElement).insertedByParser();
</ins><span class="cx"> 
</span><span class="cx">     if (!m_parsingFragment &amp;&amp; isFirstElement &amp;&amp; document()-&gt;frame())
</span><span class="cx">         document()-&gt;frame()-&gt;injectUserScripts(InjectAtDocumentStart);
</span></span></pre></div>
<a id="trunkSourceWebKitiosChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/ChangeLog (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/ChangeLog        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit/ios/ChangeLog        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2014-09-23  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element()
+        https://bugs.webkit.org/show_bug.cgi?id=137007
+
+        Reviewed by Benjamin Poulain.
+
+        Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element().
+
+        * WebCoreSupport/WebChromeClientIOS.mm:
+        (WebChromeClientIOS::focusedElementChanged):
+
</ins><span class="cx"> 2014-09-17  Daniel Bates  &lt;dabates@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r173695.
</span></span></pre></div>
<a id="trunkSourceWebKitiosWebCoreSupportWebChromeClientIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -314,11 +314,11 @@
</span><span class="cx">     if (!isHTMLInputElement(element))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(element);
-    if (!inputElement-&gt;isText())
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*element);
+    if (!inputElement.isText())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    CallFormDelegate(webView(), @selector(didFocusTextField:inFrame:), kit(inputElement), kit(inputElement-&gt;document().frame()));
</del><ins>+    CallFormDelegate(webView(), @selector(didFocusTextField:inFrame:), kit(&amp;inputElement), kit(inputElement.document().frame()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClientIOS::showPlaybackTargetPicker(bool hasVideo)
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit/mac/ChangeLog        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1,3 +1,26 @@
</span><ins>+2014-09-23  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element()
+        https://bugs.webkit.org/show_bug.cgi?id=137007
+
+        Reviewed by Benjamin Poulain.
+
+        Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element().
+
+        * DOM/WebDOMOperations.mm:
+        (-[DOMHTMLInputElement _setAutofilled:]):
+        * WebCoreSupport/WebChromeClient.mm:
+        (WebChromeClient::focusedElementChanged):
+        * WebCoreSupport/WebEditorClient.mm:
+        (WebEditorClient::textFieldDidBeginEditing):
+        (WebEditorClient::textFieldDidEndEditing):
+        (WebEditorClient::textDidChangeInTextField):
+        (WebEditorClient::doTextFieldCommandFromEvent):
+        (WebEditorClient::textWillBeDeletedInTextField):
+        (WebEditorClient::textDidChangeInTextArea):
+        * WebView/WebHTMLRepresentation.mm:
+        (inputElementFromDOMElement):
+
</ins><span class="cx"> 2014-09-21  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Generate Element casting helper functions
</span></span></pre></div>
<a id="trunkSourceWebKitmacDOMWebDOMOperationsmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/DOM/WebDOMOperations.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/DOM/WebDOMOperations.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit/mac/DOM/WebDOMOperations.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -214,7 +214,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)_setAutofilled:(BOOL)autofilled
</span><span class="cx"> {
</span><del>-    toHTMLInputElement(core((DOMElement *)self))-&gt;setAutofilled(autofilled);
</del><ins>+    downcast&lt;HTMLInputElement&gt;(core((DOMElement *)self))-&gt;setAutofilled(autofilled);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebChromeClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -223,11 +223,11 @@
</span><span class="cx">     if (!isHTMLInputElement(element))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(element);
-    if (!inputElement-&gt;isText())
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*element);
+    if (!inputElement.isText())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    CallFormDelegate(m_webView, @selector(didFocusTextField:inFrame:), kit(inputElement), kit(inputElement-&gt;document().frame()));
</del><ins>+    CallFormDelegate(m_webView, @selector(didFocusTextField:inFrame:), kit(&amp;inputElement), kit(inputElement.document().frame()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::focusedFrameChanged(Frame*)
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebEditorClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -708,7 +708,7 @@
</span><span class="cx">     if (!isHTMLInputElement(element))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    DOMHTMLInputElement* inputElement = kit(toHTMLInputElement(element));
</del><ins>+    DOMHTMLInputElement* inputElement = kit(downcast&lt;HTMLInputElement&gt;(element));
</ins><span class="cx">     FormDelegateLog(inputElement);
</span><span class="cx">     CallFormDelegate(m_webView, @selector(textFieldDidBeginEditing:inFrame:), inputElement, kit(element-&gt;document().frame()));
</span><span class="cx"> }
</span><span class="lines">@@ -718,7 +718,7 @@
</span><span class="cx">     if (!isHTMLInputElement(element))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    DOMHTMLInputElement* inputElement = kit(toHTMLInputElement(element));
</del><ins>+    DOMHTMLInputElement* inputElement = kit(downcast&lt;HTMLInputElement&gt;(element));
</ins><span class="cx">     FormDelegateLog(inputElement);
</span><span class="cx">     CallFormDelegate(m_webView, @selector(textFieldDidEndEditing:inFrame:), inputElement, kit(element-&gt;document().frame()));
</span><span class="cx"> }
</span><span class="lines">@@ -733,7 +733,7 @@
</span><span class="cx">         return;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    DOMHTMLInputElement* inputElement = kit(toHTMLInputElement(element));
</del><ins>+    DOMHTMLInputElement* inputElement = kit(downcast&lt;HTMLInputElement&gt;(element));
</ins><span class="cx">     FormDelegateLog(inputElement);
</span><span class="cx">     CallFormDelegate(m_webView, @selector(textDidChangeInTextField:inFrame:), inputElement, kit(element-&gt;document().frame()));
</span><span class="cx"> }
</span><span class="lines">@@ -766,7 +766,7 @@
</span><span class="cx">     if (!isHTMLInputElement(element))
</span><span class="cx">         return NO;
</span><span class="cx"> 
</span><del>-    DOMHTMLInputElement* inputElement = kit(toHTMLInputElement(element));
</del><ins>+    DOMHTMLInputElement* inputElement = kit(downcast&lt;HTMLInputElement&gt;(element));
</ins><span class="cx">     FormDelegateLog(inputElement);
</span><span class="cx">     if (SEL commandSelector = selectorForKeyEvent(event))
</span><span class="cx">         return CallFormDelegateReturningBoolean(NO, m_webView, @selector(textField:doCommandBySelector:inFrame:), inputElement, commandSelector, kit(element-&gt;document().frame()));
</span><span class="lines">@@ -778,7 +778,7 @@
</span><span class="cx">     if (!isHTMLInputElement(element))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    DOMHTMLInputElement* inputElement = kit(toHTMLInputElement(element));
</del><ins>+    DOMHTMLInputElement* inputElement = kit(downcast&lt;HTMLInputElement&gt;(element));
</ins><span class="cx">     FormDelegateLog(inputElement);
</span><span class="cx">     // We're using the deleteBackward selector for all deletion operations since the autofill code treats all deletions the same way.
</span><span class="cx">     CallFormDelegateReturningBoolean(NO, m_webView, @selector(textField:doCommandBySelector:inFrame:), inputElement, @selector(deleteBackward:), kit(element-&gt;document().frame()));
</span><span class="lines">@@ -789,7 +789,7 @@
</span><span class="cx">     if (!isHTMLTextAreaElement(element))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    DOMHTMLTextAreaElement* textAreaElement = kit(toHTMLTextAreaElement(element));
</del><ins>+    DOMHTMLTextAreaElement* textAreaElement = kit(downcast&lt;HTMLTextAreaElement&gt;(element));
</ins><span class="cx">     FormDelegateLog(textAreaElement);
</span><span class="cx">     CallFormDelegate(m_webView, @selector(textDidChangeInTextArea:inFrame:), textAreaElement, kit(element-&gt;document().frame()));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebHTMLRepresentationmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -305,7 +305,7 @@
</span><span class="cx"> static HTMLInputElement* inputElementFromDOMElement(DOMElement* element)
</span><span class="cx"> {
</span><span class="cx">     Element* node = core(element);
</span><del>-    return node &amp;&amp; isHTMLInputElement(node) ? toHTMLInputElement(node) : 0;
</del><ins>+    return node &amp;&amp; isHTMLInputElement(node) ? downcast&lt;HTMLInputElement&gt;(node) : nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)elementDoesAutoComplete:(DOMElement *)element
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit/win/ChangeLog        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1,3 +1,50 @@
</span><ins>+2014-09-23  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element()
+        https://bugs.webkit.org/show_bug.cgi?id=137007
+
+        Reviewed by Benjamin Poulain.
+
+        Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element().
+
+        * DOMHTMLClasses.cpp:
+        (DOMHTMLDocument::URL):
+        (DOMHTMLDocument::body):
+        (DOMHTMLDocument::forms):
+        (DOMHTMLFormElement::action):
+        (DOMHTMLFormElement::method):
+        (DOMHTMLSelectElement::options):
+        (DOMHTMLSelectElement::activateItemAtIndex):
+        (DOMHTMLOptionElement::text):
+        (DOMHTMLOptionElement::label):
+        (DOMHTMLInputElement::form):
+        (DOMHTMLInputElement::disabled):
+        (DOMHTMLInputElement::readOnly):
+        (DOMHTMLInputElement::setType):
+        (DOMHTMLInputElement::value):
+        (DOMHTMLInputElement::setValue):
+        (DOMHTMLInputElement::setValueForUser):
+        (DOMHTMLInputElement::select):
+        (DOMHTMLInputElement::setSelectionStart):
+        (DOMHTMLInputElement::selectionStart):
+        (DOMHTMLInputElement::setSelectionEnd):
+        (DOMHTMLInputElement::selectionEnd):
+        (DOMHTMLInputElement::isTextField):
+        (DOMHTMLInputElement::replaceCharactersInRange):
+        (DOMHTMLInputElement::selectedRange):
+        (DOMHTMLInputElement::setAutofilled):
+        (DOMHTMLInputElement::isAutofilled):
+        (DOMHTMLInputElement::isUserEdited):
+        (DOMHTMLTextAreaElement::form):
+        (DOMHTMLTextAreaElement::value):
+        (DOMHTMLTextAreaElement::setValue):
+        (DOMHTMLTextAreaElement::select):
+        (DOMHTMLTextAreaElement::isUserEdited):
+        (DOMHTMLIFrameElement::contentFrame):
+        * WebFrame.cpp:
+        (formElementFromDOMElement):
+        (inputElementFromDOMElement):
+
</ins><span class="cx"> 2014-09-21  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Generate Element casting helper functions
</span></span></pre></div>
<a id="trunkSourceWebKitwinDOMHTMLClassescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/DOMHTMLClasses.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/DOMHTMLClasses.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit/win/DOMHTMLClasses.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -250,7 +250,7 @@
</span><span class="cx">     if (!result)
</span><span class="cx">         return E_POINTER;
</span><span class="cx"> 
</span><del>-    *result = BString(toHTMLDocument(m_document)-&gt;url()).release();
</del><ins>+    *result = BString(downcast&lt;HTMLDocument&gt;(m_document)-&gt;url()).release();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -261,9 +261,9 @@
</span><span class="cx">     if (!m_document || !m_document-&gt;isHTMLDocument())
</span><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><del>-    HTMLDocument* htmlDoc = toHTMLDocument(m_document);
</del><ins>+    HTMLDocument&amp; htmlDoc = downcast&lt;HTMLDocument&gt;(*m_document);
</ins><span class="cx">     COMPtr&lt;IDOMElement&gt; domElement;
</span><del>-    domElement.adoptRef(DOMHTMLElement::createInstance(htmlDoc-&gt;body()));
</del><ins>+    domElement.adoptRef(DOMHTMLElement::createInstance(htmlDoc.body()));
</ins><span class="cx">     if (domElement)
</span><span class="cx">         return domElement-&gt;QueryInterface(IID_IDOMHTMLElement, (void**) bodyElement);
</span><span class="cx">     return E_FAIL;
</span><span class="lines">@@ -304,8 +304,8 @@
</span><span class="cx">     if (!m_document || !m_document-&gt;isHTMLDocument())
</span><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><del>-    HTMLDocument* htmlDoc = toHTMLDocument(m_document);
-    RefPtr&lt;HTMLCollection&gt; forms = htmlDoc-&gt;forms();
</del><ins>+    HTMLDocument&amp; htmlDoc = downcast&lt;HTMLDocument&gt;(*m_document);
+    RefPtr&lt;HTMLCollection&gt; forms = htmlDoc.forms();
</ins><span class="cx">     *collection = DOMHTMLCollection::createInstance(forms.get());
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -560,7 +560,7 @@
</span><span class="cx">         /* [retval][out] */ BSTR* result)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLFormElement(m_element));
</span><del>-    WTF::String actionString = toHTMLFormElement(m_element)-&gt;action();
</del><ins>+    WTF::String actionString = downcast&lt;HTMLFormElement&gt;(*m_element).action();
</ins><span class="cx">     *result = BString(actionString).release();
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -590,7 +590,7 @@
</span><span class="cx">         /* [retval][out] */ BSTR* result)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLFormElement(m_element));
</span><del>-    WTF::String methodString = toHTMLFormElement(m_element)-&gt;method();
</del><ins>+    WTF::String methodString = downcast&lt;HTMLFormElement&gt;(*m_element).method();
</ins><span class="cx">     *result = BString(methodString).release();
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -702,13 +702,13 @@
</span><span class="cx">         return E_POINTER;
</span><span class="cx"> 
</span><span class="cx">     ASSERT(m_element);
</span><del>-    HTMLSelectElement* selectElement = toHTMLSelectElement(m_element);
</del><ins>+    HTMLSelectElement&amp; selectElement = downcast&lt;HTMLSelectElement&gt;(*m_element);
</ins><span class="cx"> 
</span><del>-    if (!selectElement-&gt;options())
</del><ins>+    if (!selectElement.options())
</ins><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><del>-    *result = 0;
-    RefPtr&lt;HTMLOptionsCollection&gt; options = selectElement-&gt;options();
</del><ins>+    *result = nullptr;
+    RefPtr&lt;HTMLOptionsCollection&gt; options = selectElement.options();
</ins><span class="cx">     *result = DOMHTMLOptionsCollection::createInstance(options.get());
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -804,12 +804,12 @@
</span><span class="cx">     /* [in] */ int index)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element);
</span><del>-    HTMLSelectElement* selectElement = toHTMLSelectElement(m_element);
</del><ins>+    HTMLSelectElement&amp; selectElement = downcast&lt;HTMLSelectElement&gt;(*m_element);
</ins><span class="cx"> 
</span><del>-    if (index &gt;= selectElement-&gt;length())
</del><ins>+    if (index &gt;= selectElement.length())
</ins><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><del>-    selectElement-&gt;setSelectedIndex(index);
</del><ins>+    selectElement.setSelectedIndex(index);
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -860,9 +860,9 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(m_element);
</span><span class="cx">     ASSERT(isHTMLOptionElement(m_element));
</span><del>-    HTMLOptionElement* optionElement = toHTMLOptionElement(m_element);
</del><ins>+    HTMLOptionElement&amp; optionElement = downcast&lt;HTMLOptionElement&gt;(*m_element);
</ins><span class="cx"> 
</span><del>-    *result = BString(optionElement-&gt;text()).release();
</del><ins>+    *result = BString(optionElement.text()).release();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -897,9 +897,9 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(m_element);
</span><span class="cx">     ASSERT(isHTMLOptionElement(m_element));
</span><del>-    HTMLOptionElement* optionElement = toHTMLOptionElement(m_element);
</del><ins>+    HTMLOptionElement&amp; optionElement = downcast&lt;HTMLOptionElement&gt;(*m_element);
</ins><span class="cx"> 
</span><del>-    *result = BString(optionElement-&gt;label()).release();
</del><ins>+    *result = BString(optionElement.label()).release();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -991,11 +991,11 @@
</span><span class="cx"> {
</span><span class="cx">     if (!result)
</span><span class="cx">         return E_POINTER;
</span><del>-    *result = 0;
</del><ins>+    *result = nullptr;
</ins><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
</ins><span class="cx">     COMPtr&lt;IDOMElement&gt; domElement;
</span><del>-    domElement.adoptRef(DOMHTMLElement::createInstance(inputElement-&gt;form()));
</del><ins>+    domElement.adoptRef(DOMHTMLElement::createInstance(inputElement.form()));
</ins><span class="cx">     if (domElement)
</span><span class="cx">         return domElement-&gt;QueryInterface(IID_IDOMHTMLElement, (void**) result);
</span><span class="cx">     return E_FAIL;
</span><span class="lines">@@ -1075,8 +1075,8 @@
</span><span class="cx">         /* [retval][out] */ BOOL* result)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    *result = inputElement-&gt;isDisabledFormControl() ? TRUE : FALSE;
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    *result = inputElement.isDisabledFormControl() ? TRUE : FALSE;
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -1119,8 +1119,8 @@
</span><span class="cx">         /* [retval][out] */ BOOL* result)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    *result = inputElement-&gt;isReadOnly() ? TRUE : FALSE;
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    *result = inputElement.isReadOnly() ? TRUE : FALSE;
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -1184,9 +1184,9 @@
</span><span class="cx">         /* [in] */ BSTR type)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
</ins><span class="cx">     WTF::String typeString(type, SysStringLen(type));
</span><del>-    inputElement-&gt;setType(typeString);
</del><ins>+    inputElement.setType(typeString);
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -1208,8 +1208,8 @@
</span><span class="cx">         /* [retval][out] */ BSTR* result)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    WTF::String valueString = inputElement-&gt;value();
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    WTF::String valueString = inputElement.value();
</ins><span class="cx">     *result = BString(valueString).release();
</span><span class="cx">     if (valueString.length() &amp;&amp; !*result)
</span><span class="cx">         return E_OUTOFMEMORY;
</span><span class="lines">@@ -1220,8 +1220,8 @@
</span><span class="cx">         /* [in] */ BSTR value)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    inputElement-&gt;setValue(String((UChar*) value, SysStringLen(value)));
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    inputElement.setValue(String((UChar*) value, SysStringLen(value)));
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1230,16 +1230,16 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element);
</span><span class="cx">     ASSERT(isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    inputElement-&gt;setValueForUser(String(static_cast&lt;UChar*&gt;(value), SysStringLen(value)));
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    inputElement.setValueForUser(String(static_cast&lt;UChar*&gt;(value), SysStringLen(value)));
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HRESULT STDMETHODCALLTYPE DOMHTMLInputElement::select( void)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    inputElement-&gt;select();
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    inputElement.select();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -1253,8 +1253,8 @@
</span><span class="cx">     /* [in] */ long start)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    inputElement-&gt;setSelectionStart(start);
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    inputElement.setSelectionStart(start);
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1262,8 +1262,8 @@
</span><span class="cx">     /* [retval][out] */ long *start)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    *start = inputElement-&gt;selectionStart();
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    *start = inputElement.selectionStart();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1271,8 +1271,8 @@
</span><span class="cx">     /* [in] */ long end)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    inputElement-&gt;setSelectionEnd(end);
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    inputElement.setSelectionEnd(end);
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1280,8 +1280,8 @@
</span><span class="cx">     /* [retval][out] */ long *end)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    *end = inputElement-&gt;selectionEnd();
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    *end = inputElement.selectionEnd();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1292,8 +1292,8 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element);
</span><span class="cx">     ASSERT(isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    *result = inputElement-&gt;isTextField() ? TRUE : FALSE;
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    *result = inputElement.isTextField() ? TRUE : FALSE;
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1328,13 +1328,13 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(m_element);
</span><span class="cx">     ASSERT(isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
</ins><span class="cx"> 
</span><del>-    String newValue = inputElement-&gt;value();
</del><ins>+    String newValue = inputElement.value();
</ins><span class="cx">     String webCoreReplacementString(static_cast&lt;UChar*&gt;(replacementString), SysStringLen(replacementString));
</span><span class="cx">     newValue.replace(startTarget, endTarget - startTarget, webCoreReplacementString);
</span><del>-    inputElement-&gt;setValue(newValue);
-    inputElement-&gt;setSelectionRange(index, newValue.length());
</del><ins>+    inputElement.setValue(newValue);
+    inputElement.setSelectionRange(index, newValue.length());
</ins><span class="cx"> 
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -1345,9 +1345,9 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element);
</span><span class="cx">     ASSERT(isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    *start = inputElement-&gt;selectionStart();
-    *end = inputElement-&gt;selectionEnd();
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    *start = inputElement.selectionStart();
+    *end = inputElement.selectionEnd();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1356,8 +1356,8 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element);
</span><span class="cx">     ASSERT(isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    inputElement-&gt;setAutofilled(!!filled);
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    inputElement.setAutofilled(!!filled);
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1366,8 +1366,8 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element);
</span><span class="cx">     ASSERT(isHTMLInputElement(m_element));
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(m_element);
-    *result = inputElement-&gt;isAutofilled() ? TRUE : FALSE;
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*m_element);
+    *result = inputElement.isAutofilled() ? TRUE : FALSE;
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1384,7 +1384,7 @@
</span><span class="cx">     BOOL textField = FALSE;
</span><span class="cx">     if (FAILED(isTextField(&amp;textField)) || !textField)
</span><span class="cx">         return S_OK;
</span><del>-    if (toHTMLInputElement(m_element)-&gt;lastChangeWasUserEdit())
</del><ins>+    if (downcast&lt;HTMLInputElement&gt;(*m_element).lastChangeWasUserEdit())
</ins><span class="cx">         *result = TRUE;
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -1428,9 +1428,9 @@
</span><span class="cx">         return E_POINTER;
</span><span class="cx">     *result = 0;
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLTextAreaElement(m_element));
</span><del>-    HTMLTextAreaElement* textareaElement = toHTMLTextAreaElement(m_element);
</del><ins>+    HTMLTextAreaElement&amp; textareaElement = downcast&lt;HTMLTextAreaElement&gt;(*m_element);
</ins><span class="cx">     COMPtr&lt;IDOMElement&gt; domElement;
</span><del>-    domElement.adoptRef(DOMHTMLElement::createInstance(textareaElement-&gt;form()));
</del><ins>+    domElement.adoptRef(DOMHTMLElement::createInstance(textareaElement.form()));
</ins><span class="cx">     if (domElement)
</span><span class="cx">         return domElement-&gt;QueryInterface(IID_IDOMHTMLElement, (void**) result);
</span><span class="cx">     return E_FAIL;
</span><span class="lines">@@ -1545,8 +1545,8 @@
</span><span class="cx">         /* [retval][out] */ BSTR* result)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLTextAreaElement(m_element));
</span><del>-    HTMLTextAreaElement* textareaElement = toHTMLTextAreaElement(m_element);
-    WTF::String valueString = textareaElement-&gt;value();
</del><ins>+    HTMLTextAreaElement&amp; textareaElement = downcast&lt;HTMLTextAreaElement&gt;(*m_element);
+    WTF::String valueString = textareaElement.value();
</ins><span class="cx">     *result = BString(valueString).release();
</span><span class="cx">     if (valueString.length() &amp;&amp; !*result)
</span><span class="cx">         return E_OUTOFMEMORY;
</span><span class="lines">@@ -1557,16 +1557,16 @@
</span><span class="cx">         /* [in] */ BSTR value)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLTextAreaElement(m_element));
</span><del>-    HTMLTextAreaElement* textareaElement = toHTMLTextAreaElement(m_element);
-    textareaElement-&gt;setValue(String((UChar*) value, SysStringLen(value)));
</del><ins>+    HTMLTextAreaElement&amp; textareaElement = downcast&lt;HTMLTextAreaElement&gt;(*m_element);
+    textareaElement.setValue(String((UChar*) value, SysStringLen(value)));
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> HRESULT STDMETHODCALLTYPE DOMHTMLTextAreaElement::select( void)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLTextAreaElement(m_element));
</span><del>-    HTMLTextAreaElement* textareaElement = toHTMLTextAreaElement(m_element);
-    textareaElement-&gt;select();
</del><ins>+    HTMLTextAreaElement&amp; textareaElement = downcast&lt;HTMLTextAreaElement&gt;(*m_element);
+    textareaElement.select();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1580,7 +1580,7 @@
</span><span class="cx"> 
</span><span class="cx">     *result = FALSE;
</span><span class="cx">     ASSERT(m_element &amp;&amp; isHTMLTextAreaElement(m_element));
</span><del>-    if (toHTMLTextAreaElement(m_element)-&gt;lastChangeWasUserEdit())
</del><ins>+    if (downcast&lt;HTMLTextAreaElement&gt;(*m_element).lastChangeWasUserEdit())
</ins><span class="cx">         *result = TRUE;
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -1606,10 +1606,10 @@
</span><span class="cx"> {
</span><span class="cx">     if (!result)
</span><span class="cx">         return E_POINTER;
</span><del>-    *result = 0;
</del><ins>+    *result = nullptr;
</ins><span class="cx">     ASSERT(m_element);
</span><del>-    HTMLIFrameElement* iFrameElement = toHTMLIFrameElement(m_element);
-    COMPtr&lt;IWebFrame&gt; webFrame = kit(iFrameElement-&gt;contentFrame());
</del><ins>+    HTMLIFrameElement&amp; iFrameElement = downcast&lt;HTMLIFrameElement&gt;(*m_element);
+    COMPtr&lt;IWebFrame&gt; webFrame = kit(iFrameElement.contentFrame());
</ins><span class="cx">     if (!webFrame)
</span><span class="cx">         return E_FAIL;
</span><span class="cx">     return webFrame.copyRefTo(result);
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebFrame.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebFrame.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit/win/WebFrame.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -194,7 +194,7 @@
</span><span class="cx"> static HTMLFormElement *formElementFromDOMElement(IDOMElement *element)
</span><span class="cx"> {
</span><span class="cx">     if (!element)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     IDOMElementPrivate* elePriv;
</span><span class="cx">     HRESULT hr = element-&gt;QueryInterface(IID_IDOMElementPrivate, (void**) &amp;elePriv);
</span><span class="lines">@@ -203,15 +203,15 @@
</span><span class="cx">         hr = elePriv-&gt;coreElement((void**)&amp;ele);
</span><span class="cx">         elePriv-&gt;Release();
</span><span class="cx">         if (SUCCEEDED(hr) &amp;&amp; ele &amp;&amp; isHTMLFormElement(ele))
</span><del>-            return toHTMLFormElement(ele);
</del><ins>+            return downcast&lt;HTMLFormElement&gt;(ele);
</ins><span class="cx">     }
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static HTMLInputElement* inputElementFromDOMElement(IDOMElement* element)
</span><span class="cx"> {
</span><span class="cx">     if (!element)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     IDOMElementPrivate* elePriv;
</span><span class="cx">     HRESULT hr = element-&gt;QueryInterface(IID_IDOMElementPrivate, (void**) &amp;elePriv);
</span><span class="lines">@@ -220,9 +220,9 @@
</span><span class="cx">         hr = elePriv-&gt;coreElement((void**)&amp;ele);
</span><span class="cx">         elePriv-&gt;Release();
</span><span class="cx">         if (SUCCEEDED(hr) &amp;&amp; ele &amp;&amp; isHTMLInputElement(ele))
</span><del>-            return toHTMLInputElement(ele);
</del><ins>+            return downcast&lt;HTMLInputElement&gt;(ele);
</ins><span class="cx">     }
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // WebFramePrivate ------------------------------------------------------------
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit2/ChangeLog        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -1,3 +1,48 @@
</span><ins>+2014-09-23  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element()
+        https://bugs.webkit.org/show_bug.cgi?id=137007
+
+        Reviewed by Benjamin Poulain.
+
+        Use downcast&lt;HTML*Element&gt;() instead of toHTML*Element().
+
+        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
+        (WebKit::InjectedBundleNodeHandle::setHTMLInputElementValueForUser):
+        (WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutofilled):
+        (WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutofilled):
+        (WebKit::InjectedBundleNodeHandle::htmlInputElementLastChangeWasUserEdit):
+        (WebKit::InjectedBundleNodeHandle::htmlTextAreaElementLastChangeWasUserEdit):
+        (WebKit::InjectedBundleNodeHandle::isTextField):
+        (WebKit::InjectedBundleNodeHandle::htmlTableCellElementCellAbove):
+        (WebKit::InjectedBundleNodeHandle::htmlIFrameElementContentFrame):
+        * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
+        (WebKit::PDFPluginChoiceAnnotation::commit):
+        * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
+        (WebKit::PDFPluginTextAnnotation::createAnnotationElement):
+        (WebKit::PDFPluginTextAnnotation::value):
+        * WebProcess/Plugins/PluginView.cpp:
+        (WebKit::PluginView::initializePlugin):
+        (WebKit::PluginView::pluginSnapshotTimerFired):
+        (WebKit::PluginView::pluginDidReceiveUserInteraction):
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::focusedElementChanged):
+        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+        (WebKit::WebEditorClient::textFieldDidBeginEditing):
+        (WebKit::WebEditorClient::textFieldDidEndEditing):
+        (WebKit::WebEditorClient::textDidChangeInTextField):
+        (WebKit::WebEditorClient::textDidChangeInTextArea):
+        (WebKit::WebEditorClient::doTextFieldCommandFromEvent):
+        (WebKit::WebEditorClient::textWillBeDeletedInTextField):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::createPlugin):
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::setAssistedNodeValue):
+        (WebKit::WebPage::setAssistedNodeValueAsNumber):
+        (WebKit::WebPage::setAssistedNodeSelectedIndex):
+        (WebKit::isAssistableNode): Deleted.
+        (WebKit::WebPage::getAssistedNodeInformation): Deleted.
+
</ins><span class="cx"> 2014-09-23  Jer Noble  &lt;jer.noble@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         REGRESSION (r171197): Clip's content is drawn behind Safari window when entering Full Screen youtube html5 first time
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleDOMInjectedBundleNodeHandlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -199,55 +199,55 @@
</span><span class="cx"> 
</span><span class="cx"> void InjectedBundleNodeHandle::setHTMLInputElementValueForUser(const String&amp; value)
</span><span class="cx"> {
</span><del>-    if (!isHTMLInputElement(m_node.get()))
</del><ins>+    if (!isHTMLInputElement(*m_node))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    toHTMLInputElement(m_node.get())-&gt;setValueForUser(value);
</del><ins>+    downcast&lt;HTMLInputElement&gt;(*m_node).setValueForUser(value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool InjectedBundleNodeHandle::isHTMLInputElementAutofilled() const
</span><span class="cx"> {
</span><del>-    if (!isHTMLInputElement(m_node.get()))
</del><ins>+    if (!isHTMLInputElement(*m_node))
</ins><span class="cx">         return false;
</span><span class="cx">     
</span><del>-    return toHTMLInputElement(m_node.get())-&gt;isAutofilled();
</del><ins>+    return downcast&lt;HTMLInputElement&gt;(*m_node).isAutofilled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InjectedBundleNodeHandle::setHTMLInputElementAutofilled(bool filled)
</span><span class="cx"> {
</span><del>-    if (!isHTMLInputElement(m_node.get()))
</del><ins>+    if (!isHTMLInputElement(*m_node))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    toHTMLInputElement(m_node.get())-&gt;setAutofilled(filled);
</del><ins>+    downcast&lt;HTMLInputElement&gt;(*m_node).setAutofilled(filled);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool InjectedBundleNodeHandle::htmlInputElementLastChangeWasUserEdit()
</span><span class="cx"> {
</span><del>-    if (!isHTMLInputElement(m_node.get()))
</del><ins>+    if (!isHTMLInputElement(*m_node))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return toHTMLInputElement(m_node.get())-&gt;lastChangeWasUserEdit();
</del><ins>+    return downcast&lt;HTMLInputElement&gt;(*m_node).lastChangeWasUserEdit();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool InjectedBundleNodeHandle::htmlTextAreaElementLastChangeWasUserEdit()
</span><span class="cx"> {
</span><del>-    if (!isHTMLTextAreaElement(m_node.get()))
</del><ins>+    if (!isHTMLTextAreaElement(*m_node))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return toHTMLTextAreaElement(m_node.get())-&gt;lastChangeWasUserEdit();
</del><ins>+    return downcast&lt;HTMLTextAreaElement&gt;(*m_node).lastChangeWasUserEdit();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool InjectedBundleNodeHandle::isTextField() const
</span><span class="cx"> {
</span><del>-    return isHTMLInputElement(m_node.get()) &amp;&amp; toHTMLInputElement(m_node.get())-&gt;isText();
</del><ins>+    return isHTMLInputElement(*m_node) &amp;&amp; downcast&lt;HTMLInputElement&gt;(*m_node).isText();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;InjectedBundleNodeHandle&gt; InjectedBundleNodeHandle::htmlTableCellElementCellAbove()
</span><span class="cx"> {
</span><span class="cx">     if (!m_node-&gt;hasTagName(tdTag))
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><del>-    return getOrCreate(static_cast&lt;HTMLTableCellElement*&gt;(m_node.get())-&gt;cellAbove());
</del><ins>+    return getOrCreate(static_cast&lt;HTMLTableCellElement&amp;&gt;(*m_node).cellAbove());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;WebFrame&gt; InjectedBundleNodeHandle::documentFrame()
</span><span class="lines">@@ -276,10 +276,10 @@
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;WebFrame&gt; InjectedBundleNodeHandle::htmlIFrameElementContentFrame()
</span><span class="cx"> {
</span><del>-    if (!m_node-&gt;hasTagName(iframeTag))
</del><ins>+    if (!isHTMLIFrameElement(*m_node))
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    Frame* frame = toHTMLIFrameElement(m_node.get())-&gt;contentFrame();
</del><ins>+    Frame* frame = downcast&lt;HTMLIFrameElement&gt;(*m_node).contentFrame();
</ins><span class="cx">     if (!frame)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFPDFPluginChoiceAnnotationmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx"> 
</span><span class="cx"> void PDFPluginChoiceAnnotation::commit()
</span><span class="cx"> {
</span><del>-    choiceAnnotation().stringValue = toHTMLSelectElement(element())-&gt;value();
</del><ins>+    choiceAnnotation().stringValue = downcast&lt;HTMLSelectElement&gt;(element())-&gt;value();
</ins><span class="cx"> 
</span><span class="cx">     PDFPluginAnnotation::commit();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFPDFPluginTextAnnotationmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -105,9 +105,9 @@
</span><span class="cx">     styledElement-&gt;setInlineStyleProperty(CSSPropertyTextAlign, cssAlignmentValueForNSTextAlignment(textAnnotation.alignment));
</span><span class="cx"> 
</span><span class="cx">     if (isMultiline)
</span><del>-        toHTMLTextAreaElement(styledElement)-&gt;setValue(textAnnotation.stringValue);
</del><ins>+        downcast&lt;HTMLTextAreaElement&gt;(styledElement)-&gt;setValue(textAnnotation.stringValue);
</ins><span class="cx">     else
</span><del>-        toHTMLInputElement(styledElement)-&gt;setValue(textAnnotation.stringValue);
</del><ins>+        downcast&lt;HTMLInputElement&gt;(styledElement)-&gt;setValue(textAnnotation.stringValue);
</ins><span class="cx"> 
</span><span class="cx">     return element;
</span><span class="cx"> }
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx"> 
</span><span class="cx"> String PDFPluginTextAnnotation::value() const
</span><span class="cx"> {
</span><del>-    return toHTMLTextFormControlElement(element())-&gt;value();
</del><ins>+    return downcast&lt;HTMLTextFormControlElement&gt;(element())-&gt;value();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool PDFPluginTextAnnotation::handleEvent(Event* event)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -590,7 +590,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
</span><del>-    HTMLPlugInImageElement* plugInImageElement = toHTMLPlugInImageElement(m_pluginElement.get());
</del><ins>+    HTMLPlugInImageElement* plugInImageElement = downcast&lt;HTMLPlugInImageElement&gt;(m_pluginElement.get());
</ins><span class="cx">     m_didPlugInStartOffScreen = !m_webPage-&gt;plugInIntersectsSearchRect(*plugInImageElement);
</span><span class="cx"> #endif
</span><span class="cx">     m_plugin-&gt;initialize(this, m_parameters);
</span><span class="lines">@@ -1713,7 +1713,7 @@
</span><span class="cx">     ASSERT(m_plugin);
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
</span><del>-    HTMLPlugInImageElement* plugInImageElement = toHTMLPlugInImageElement(m_pluginElement.get());
</del><ins>+    HTMLPlugInImageElement* plugInImageElement = downcast&lt;HTMLPlugInImageElement&gt;(m_pluginElement.get());
</ins><span class="cx">     bool isPlugInOnScreen = m_webPage-&gt;plugInIntersectsSearchRect(*plugInImageElement);
</span><span class="cx">     bool plugInCameOnScreen = isPlugInOnScreen &amp;&amp; m_didPlugInStartOffScreen;
</span><span class="cx">     bool snapshotFound = false;
</span><span class="lines">@@ -1781,7 +1781,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_didReceiveUserInteraction = true;
</span><span class="cx"> 
</span><del>-    WebCore::HTMLPlugInImageElement* plugInImageElement = toHTMLPlugInImageElement(m_pluginElement.get());
</del><ins>+    WebCore::HTMLPlugInImageElement* plugInImageElement = downcast&lt;HTMLPlugInImageElement&gt;(m_pluginElement.get());
</ins><span class="cx">     String pageOrigin = plugInImageElement-&gt;document().page()-&gt;mainFrame().document()-&gt;baseURL().host();
</span><span class="cx">     String pluginOrigin = plugInImageElement-&gt;loadedUrl().host();
</span><span class="cx">     String mimeType = plugInImageElement-&gt;loadedMimeType();
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -181,13 +181,13 @@
</span><span class="cx">     if (!isHTMLInputElement(element))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    HTMLInputElement* inputElement = toHTMLInputElement(element);
-    if (!inputElement-&gt;isText())
</del><ins>+    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*element);
+    if (!inputElement.isText())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     WebFrame* webFrame = WebFrame::fromCoreFrame(*element-&gt;document().frame());
</span><span class="cx">     ASSERT(webFrame);
</span><del>-    m_page-&gt;injectedBundleFormClient().didFocusTextField(m_page, inputElement, webFrame);
</del><ins>+    m_page-&gt;injectedBundleFormClient().didFocusTextField(m_page, &amp;inputElement, webFrame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::focusedFrameChanged(Frame* frame)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebEditorClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -301,7 +301,7 @@
</span><span class="cx">     WebFrame* webFrame = WebFrame::fromCoreFrame(*element-&gt;document().frame());
</span><span class="cx">     ASSERT(webFrame);
</span><span class="cx"> 
</span><del>-    m_page-&gt;injectedBundleFormClient().textFieldDidBeginEditing(m_page, toHTMLInputElement(element), webFrame);
</del><ins>+    m_page-&gt;injectedBundleFormClient().textFieldDidBeginEditing(m_page, downcast&lt;HTMLInputElement&gt;(element), webFrame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebEditorClient::textFieldDidEndEditing(Element* element)
</span><span class="lines">@@ -312,7 +312,7 @@
</span><span class="cx">     WebFrame* webFrame = WebFrame::fromCoreFrame(*element-&gt;document().frame());
</span><span class="cx">     ASSERT(webFrame);
</span><span class="cx"> 
</span><del>-    m_page-&gt;injectedBundleFormClient().textFieldDidEndEditing(m_page, toHTMLInputElement(element), webFrame);
</del><ins>+    m_page-&gt;injectedBundleFormClient().textFieldDidEndEditing(m_page, downcast&lt;HTMLInputElement&gt;(element), webFrame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebEditorClient::textDidChangeInTextField(Element* element)
</span><span class="lines">@@ -325,7 +325,7 @@
</span><span class="cx">     WebFrame* webFrame = WebFrame::fromCoreFrame(*element-&gt;document().frame());
</span><span class="cx">     ASSERT(webFrame);
</span><span class="cx"> 
</span><del>-    m_page-&gt;injectedBundleFormClient().textDidChangeInTextField(m_page, toHTMLInputElement(element), webFrame, initiatedByUserTyping);
</del><ins>+    m_page-&gt;injectedBundleFormClient().textDidChangeInTextField(m_page, downcast&lt;HTMLInputElement&gt;(element), webFrame, initiatedByUserTyping);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebEditorClient::textDidChangeInTextArea(Element* element)
</span><span class="lines">@@ -336,7 +336,7 @@
</span><span class="cx">     WebFrame* webFrame = WebFrame::fromCoreFrame(*element-&gt;document().frame());
</span><span class="cx">     ASSERT(webFrame);
</span><span class="cx"> 
</span><del>-    m_page-&gt;injectedBundleFormClient().textDidChangeInTextArea(m_page, toHTMLTextAreaElement(element), webFrame);
</del><ins>+    m_page-&gt;injectedBundleFormClient().textDidChangeInTextArea(m_page, downcast&lt;HTMLTextAreaElement&gt;(element), webFrame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="lines">@@ -403,7 +403,7 @@
</span><span class="cx">     WebFrame* webFrame = WebFrame::fromCoreFrame(*element-&gt;document().frame());
</span><span class="cx">     ASSERT(webFrame);
</span><span class="cx"> 
</span><del>-    return m_page-&gt;injectedBundleFormClient().shouldPerformActionInTextField(m_page, toHTMLInputElement(element), toInputFieldAction(actionType), webFrame);
</del><ins>+    return m_page-&gt;injectedBundleFormClient().shouldPerformActionInTextField(m_page, downcast&lt;HTMLInputElement&gt;(element), toInputFieldAction(actionType), webFrame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebEditorClient::textWillBeDeletedInTextField(Element* element)
</span><span class="lines">@@ -414,7 +414,7 @@
</span><span class="cx">     WebFrame* webFrame = WebFrame::fromCoreFrame(*element-&gt;document().frame());
</span><span class="cx">     ASSERT(webFrame);
</span><span class="cx"> 
</span><del>-    m_page-&gt;injectedBundleFormClient().shouldPerformActionInTextField(m_page, toHTMLInputElement(element), toInputFieldAction(WKInputFieldActionTypeInsertDelete), webFrame);
</del><ins>+    m_page-&gt;injectedBundleFormClient().shouldPerformActionInTextField(m_page, downcast&lt;HTMLInputElement&gt;(element), toInputFieldAction(WKInputFieldActionTypeInsertDelete), webFrame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebEditorClient::shouldEraseMarkersAfterChangeSelection(WebCore::TextCheckingType type) const
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -624,7 +624,7 @@
</span><span class="cx">     String pageURLString = m_page-&gt;mainFrame().loader().documentLoader()-&gt;responseURL().string();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
</span><del>-    HTMLPlugInImageElement&amp; pluginImageElement = toHTMLPlugInImageElement(*pluginElement);
</del><ins>+    HTMLPlugInImageElement&amp; pluginImageElement = downcast&lt;HTMLPlugInImageElement&gt;(*pluginElement);
</ins><span class="cx">     unsigned pluginArea = 0;
</span><span class="cx">     PluginProcessType processType = pluginElement-&gt;displayState() == HTMLPlugInElement::WaitingForSnapshot &amp;&amp; !(plugInIsPrimarySize(pluginImageElement, pluginArea) &amp;&amp; !plugInIntersectsSearchRect(pluginImageElement)) ? PluginProcessTypeSnapshot : PluginProcessTypeNormal;
</span><span class="cx"> #else
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageiosWebPageIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm (173892 => 173893)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm        2014-09-23 21:24:01 UTC (rev 173892)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm        2014-09-23 22:03:15 UTC (rev 173893)
</span><span class="lines">@@ -612,9 +612,9 @@
</span><span class="cx"> {
</span><span class="cx">     if (!m_assistedNode)
</span><span class="cx">         return;
</span><del>-    if (isHTMLInputElement(m_assistedNode.get())) {
-        HTMLInputElement *element = toHTMLInputElement(m_assistedNode.get());
-        element-&gt;setValue(value, DispatchInputAndChangeEvent);
</del><ins>+    if (isHTMLInputElement(*m_assistedNode)) {
+        HTMLInputElement&amp; element = downcast&lt;HTMLInputElement&gt;(*m_assistedNode);
+        element.setValue(value, DispatchInputAndChangeEvent);
</ins><span class="cx">     }
</span><span class="cx">     // FIXME: should also handle the case of HTMLSelectElement.
</span><span class="cx"> }
</span><span class="lines">@@ -623,18 +623,18 @@
</span><span class="cx"> {
</span><span class="cx">     if (!m_assistedNode)
</span><span class="cx">         return;
</span><del>-    if (isHTMLInputElement(m_assistedNode.get())) {
-        HTMLInputElement *element = toHTMLInputElement(m_assistedNode.get());
-        element-&gt;setValueAsNumber(value, ASSERT_NO_EXCEPTION, DispatchInputAndChangeEvent);
</del><ins>+    if (isHTMLInputElement(*m_assistedNode)) {
+        HTMLInputElement&amp; element = downcast&lt;HTMLInputElement&gt;(*m_assistedNode);
+        element.setValueAsNumber(value, ASSERT_NO_EXCEPTION, DispatchInputAndChangeEvent);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPage::setAssistedNodeSelectedIndex(uint32_t index, bool allowMultipleSelection)
</span><span class="cx"> {
</span><del>-    if (!m_assistedNode || !isHTMLSelectElement(m_assistedNode.get()))
</del><ins>+    if (!m_assistedNode || !isHTMLSelectElement(*m_assistedNode)
</ins><span class="cx">         return;
</span><del>-    HTMLSelectElement* select = toHTMLSelectElement(m_assistedNode.get());
-    select-&gt;optionSelectedByUser(index, true, allowMultipleSelection);
</del><ins>+    HTMLSelectElement&amp; select = downcast&lt;HTMLSelectElement&gt;(*m_assistedNode);
+    select.optionSelectedByUser(index, true, allowMultipleSelection);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="lines">@@ -1993,10 +1993,10 @@
</span><span class="cx">     if (isHTMLSelectElement(node))
</span><span class="cx">         return true;
</span><span class="cx">     if (isHTMLTextAreaElement(node))
</span><del>-        return !toHTMLTextAreaElement(node)-&gt;isReadOnlyNode();
</del><ins>+        return !downcast&lt;HTMLTextAreaElement&gt;(*node).isReadOnlyNode();
</ins><span class="cx">     if (isHTMLInputElement(node)) {
</span><del>-        HTMLInputElement* element = toHTMLInputElement(node);
-        return !element-&gt;isReadOnlyNode() &amp;&amp; (element-&gt;isTextField() || element-&gt;isDateField() || element-&gt;isDateTimeLocalField() || element-&gt;isMonthField() || element-&gt;isTimeField());
</del><ins>+        HTMLInputElement&amp; element = downcast&lt;HTMLInputElement&gt;(*node);
+        return !element.isReadOnlyNode() &amp;&amp; (element.isTextField() || element.isDateField() || element.isDateTimeLocalField() || element.isMonthField() || element.isTimeField());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return node-&gt;isContentEditable();
</span><span class="lines">@@ -2066,81 +2066,82 @@
</span><span class="cx">     information.hasNextNode = hasFocusableElement(m_assistedNode.get(), m_page.get(), true);
</span><span class="cx">     information.hasPreviousNode = hasFocusableElement(m_assistedNode.get(), m_page.get(), false);
</span><span class="cx"> 
</span><del>-    if (isHTMLSelectElement(m_assistedNode.get())) {
-        HTMLSelectElement* element = toHTMLSelectElement(m_assistedNode.get());
</del><ins>+    if (isHTMLSelectElement(*m_assistedNode) {
+        HTMLSelectElement&amp; element = downcast&lt;HTMLSelectElement&gt;(*m_assistedNode);
</ins><span class="cx">         information.elementType = InputType::Select;
</span><del>-        size_t count = element-&gt;listItems().size();
</del><ins>+        const Vector&lt;HTMLElement*&gt;&amp; items = element.listItems();
+        size_t count = items.size();
</ins><span class="cx">         int parentGroupID = 0;
</span><span class="cx">         // The parent group ID indicates the group the option belongs to and is 0 for group elements.
</span><span class="cx">         // If there are option elements in between groups, they are given it's own group identifier.
</span><span class="cx">         // If a select does not have groups, all the option elements have group ID 0.
</span><span class="cx">         for (size_t i = 0; i &lt; count; ++i) {
</span><del>-            HTMLElement* item = element-&gt;listItems()[i];
</del><ins>+            HTMLElement* item = items[i];
</ins><span class="cx">             if (isHTMLOptionElement(item)) {
</span><del>-                HTMLOptionElement* option = toHTMLOptionElement(item);
-                information.selectOptions.append(OptionItem(option-&gt;text(), false, parentGroupID, option-&gt;selected(), option-&gt;fastHasAttribute(WebCore::HTMLNames::disabledAttr)));
</del><ins>+                HTMLOptionElement&amp; option = downcast&lt;HTMLOptionElement&gt;(*item);
+                information.selectOptions.append(OptionItem(option.text(), false, parentGroupID, option.selected(), option.fastHasAttribute(WebCore::HTMLNames::disabledAttr)));
</ins><span class="cx">             } else if (isHTMLOptGroupElement(item)) {
</span><del>-                HTMLOptGroupElement* group = toHTMLOptGroupElement(item);
</del><ins>+                HTMLOptGroupElement&amp; group = downcast&lt;HTMLOptGroupElement&gt;(*item);
</ins><span class="cx">                 parentGroupID++;
</span><del>-                information.selectOptions.append(OptionItem(group-&gt;groupLabelText(), true, 0, false, group-&gt;fastHasAttribute(WebCore::HTMLNames::disabledAttr)));
</del><ins>+                information.selectOptions.append(OptionItem(group.groupLabelText(), true, 0, false, group.fastHasAttribute(WebCore::HTMLNames::disabledAttr)));
</ins><span class="cx">             }
</span><span class="cx">         }
</span><del>-        information.selectedIndex = element-&gt;selectedIndex();
-        information.isMultiSelect = element-&gt;multiple();
-    } else if (isHTMLTextAreaElement(m_assistedNode.get())) {
-        HTMLTextAreaElement* element = toHTMLTextAreaElement(m_assistedNode.get());
-        information.autocapitalizeType = static_cast&lt;WebAutocapitalizeType&gt;(element-&gt;autocapitalizeType());
-        information.isAutocorrect = element-&gt;autocorrect();
</del><ins>+        information.selectedIndex = element.selectedIndex();
+        information.isMultiSelect = element.multiple();
+    } else if (isHTMLTextAreaElement(*m_assistedNode)) {
+        HTMLTextAreaElement&amp; element = downcast&lt;HTMLTextAreaElement&gt;(*m_assistedNode);
+        information.autocapitalizeType = static_cast&lt;WebAutocapitalizeType&gt;(element.autocapitalizeType());
+        information.isAutocorrect = element.autocorrect();
</ins><span class="cx">         information.elementType = InputType::TextArea;
</span><del>-        information.isReadOnly = element-&gt;isReadOnly();
-        information.value = element-&gt;value();
-    } else if (isHTMLInputElement(m_assistedNode.get())) {
-        HTMLInputElement* element = toHTMLInputElement(m_assistedNode.get());
-        HTMLFormElement* form = element-&gt;form();
</del><ins>+        information.isReadOnly = element.isReadOnly();
+        information.value = element.value();
+    } else if (isHTMLInputElement(*m_assistedNode)) {
+        HTMLInputElement&amp; element = downcast&lt;HTMLInputElement&gt;(*m_assistedNode);
+        HTMLFormElement* form = element.form();
</ins><span class="cx">         if (form)
</span><span class="cx">             information.formAction = form-&gt;getURLAttribute(WebCore::HTMLNames::actionAttr);
</span><del>-        information.autocapitalizeType = static_cast&lt;WebAutocapitalizeType&gt;(element-&gt;autocapitalizeType());
-        information.isAutocorrect = element-&gt;autocorrect();
-        if (element-&gt;isPasswordField())
</del><ins>+        information.autocapitalizeType = static_cast&lt;WebAutocapitalizeType&gt;(element.autocapitalizeType());
+        information.isAutocorrect = element.autocorrect();
+        if (element.isPasswordField())
</ins><span class="cx">             information.elementType = InputType::Password;
</span><del>-        else if (element-&gt;isSearchField())
</del><ins>+        else if (element.isSearchField())
</ins><span class="cx">             information.elementType = InputType::Search;
</span><del>-        else if (element-&gt;isEmailField())
</del><ins>+        else if (element.isEmailField())
</ins><span class="cx">             information.elementType = InputType::Email;
</span><del>-        else if (element-&gt;isTelephoneField())
</del><ins>+        else if (element.isTelephoneField())
</ins><span class="cx">             information.elementType = InputType::Phone;
</span><del>-        else if (element-&gt;isNumberField())
-            information.elementType = element-&gt;getAttribute(&quot;pattern&quot;) == &quot;\\d*&quot; || element-&gt;getAttribute(&quot;pattern&quot;) == &quot;[0-9]*&quot; ? InputType::NumberPad : InputType::Number;
-        else if (element-&gt;isDateTimeLocalField())
</del><ins>+        else if (element.isNumberField())
+            information.elementType = element.getAttribute(&quot;pattern&quot;) == &quot;\\d*&quot; || element.getAttribute(&quot;pattern&quot;) == &quot;[0-9]*&quot; ? InputType::NumberPad : InputType::Number;
+        else if (element.isDateTimeLocalField())
</ins><span class="cx">             information.elementType = InputType::DateTimeLocal;
</span><del>-        else if (element-&gt;isDateField())
</del><ins>+        else if (element.isDateField())
</ins><span class="cx">             information.elementType = InputType::Date;
</span><del>-        else if (element-&gt;isDateTimeField())
</del><ins>+        else if (element.isDateTimeField())
</ins><span class="cx">             information.elementType = InputType::DateTime;
</span><del>-        else if (element-&gt;isTimeField())
</del><ins>+        else if (element.isTimeField())
</ins><span class="cx">             information.elementType = InputType::Time;
</span><del>-        else if (element-&gt;isWeekField())
</del><ins>+        else if (element.isWeekField())
</ins><span class="cx">             information.elementType = InputType::Week;
</span><del>-        else if (element-&gt;isMonthField())
</del><ins>+        else if (element.isMonthField())
</ins><span class="cx">             information.elementType = InputType::Month;
</span><del>-        else if (element-&gt;isURLField())
</del><ins>+        else if (element.isURLField())
</ins><span class="cx">             information.elementType = InputType::URL;
</span><del>-        else if (element-&gt;isText()) {
-            const AtomicString&amp; pattern = element-&gt;fastGetAttribute(HTMLNames::patternAttr);
</del><ins>+        else if (element.isText()) {
+            const AtomicString&amp; pattern = element.fastGetAttribute(HTMLNames::patternAttr);
</ins><span class="cx">             if (pattern == &quot;\\d*&quot; || pattern == &quot;[0-9]*&quot;)
</span><span class="cx">                 information.elementType = InputType::NumberPad;
</span><span class="cx">             else {
</span><span class="cx">                 information.elementType = InputType::Text;
</span><span class="cx">                 if (!information.formAction.isEmpty()
</span><del>-                    &amp;&amp; (element-&gt;getNameAttribute().contains(&quot;search&quot;) || element-&gt;getIdAttribute().contains(&quot;search&quot;) || element-&gt;fastGetAttribute(HTMLNames::titleAttr).contains(&quot;search&quot;)))
</del><ins>+                    &amp;&amp; (element.getNameAttribute().contains(&quot;search&quot;) || element.getIdAttribute().contains(&quot;search&quot;) || element.fastGetAttribute(HTMLNames::titleAttr).contains(&quot;search&quot;)))
</ins><span class="cx">                     information.elementType = InputType::Search;
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        information.isReadOnly = element-&gt;isReadOnly();
-        information.value = element-&gt;value();
-        information.valueAsNumber = element-&gt;valueAsNumber();
-        information.title = element-&gt;title();
</del><ins>+        information.isReadOnly = element.isReadOnly();
+        information.value = element.value();
+        information.valueAsNumber = element.valueAsNumber();
+        information.title = element.title();
</ins><span class="cx">     } else if (m_assistedNode-&gt;hasEditableStyle()) {
</span><span class="cx">         information.elementType = InputType::ContentEditable;
</span><span class="cx">         information.isAutocorrect = true;   // FIXME: Should we look at the attribute?
</span></span></pre>
</div>
</div>

</body>
</html>