<!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<HTML*Element>() instead of toHTML*Element()
https://bugs.webkit.org/show_bug.cgi?id=137007
Reviewed by Benjamin Poulain.
Source/WebCore:
Use downcast<HTML*Element>() 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<HTML*Element>() instead of toHTML*Element().
* WebCoreSupport/WebChromeClientIOS.mm:
(WebChromeClientIOS::focusedElementChanged):
Source/WebKit/mac:
Use downcast<HTML*Element>() 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<HTML*Element>() 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<HTML*Element>() 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 <cdumez@apple.com>
</span><span class="cx">
</span><ins>+ Use downcast<HTML*Element>() instead of toHTML*Element()
+ https://bugs.webkit.org/show_bug.cgi?id=137007
+
+ Reviewed by Benjamin Poulain.
+
+ Use downcast<HTML*Element>() 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 <cdumez@apple.com>
+
</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->focusController().focusedOrMainFrame().document();
</span><span class="cx"> Element* focusedElement = focusedDocument->focusedElement();
</span><span class="cx"> if (focusedElement && isHTMLAreaElement(focusedElement))
</span><del>- return focusedImageMapUIElement(toHTMLAreaElement(focusedElement));
</del><ins>+ return focusedImageMapUIElement(downcast<HTMLAreaElement>(focusedElement));
</ins><span class="cx">
</span><span class="cx"> AccessibilityObject* obj = focusedDocument->axObjectCache()->getOrCreate(focusedElement ? static_cast<Node*>(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)->control();
</del><ins>+ HTMLElement* correspondingControl = downcast<HTMLLabelElement>(element)->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)->isDisabledFormControl();
</del><ins>+ return !downcast<HTMLSelectElement>(*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& listItem : toHTMLSelectElement(selectNode)->listItems()) {
</del><ins>+ for (const auto& listItem : downcast<HTMLSelectElement>(*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)->selected();
</del><ins>+ return downcast<HTMLOptionElement>(*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)->text();
</del><ins>+ return downcast<HTMLOptionElement>(*m_optionElement).text();
</ins><span class="cx">
</span><span class="cx"> if (isHTMLOptGroupElement(m_optionElement))
</span><del>- return toHTMLOptGroupElement(m_optionElement)->groupLabelText();
</del><ins>+ return downcast<HTMLOptGroupElement>(*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)->ownerSelectElement();
</del><ins>+ return downcast<HTMLOptionElement>(*m_optionElement).ownerSelectElement();
</ins><span class="cx">
</span><span class="cx"> if (isHTMLOptGroupElement(m_optionElement))
</span><del>- return toHTMLOptGroupElement(m_optionElement)->ownerSelectElement();
</del><ins>+ return downcast<HTMLOptGroupElement>(*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)->value().toFloat();
</del><ins>+ float time = downcast<HTMLInputElement>(*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 <select> element is disabled,
</span><span class="cx"> // which we don't want.
</span><del>- return !toHTMLOptionElement(m_element.get())->ownElementDisabled();
</del><ins>+ return !downcast<HTMLOptionElement>(*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())->selected();
</del><ins>+ return downcast<HTMLOptionElement>(*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())->setSelected(b);
</del><ins>+ downcast<HTMLOptionElement>(*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())->text();
</del><ins>+ return downcast<HTMLOptionElement>(*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& listItem : toHTMLSelectElement(selectNode)->listItems()) {
</del><ins>+ for (const auto& listItem : downcast<HTMLSelectElement>(*selectNode).listItems()) {
</ins><span class="cx"> AccessibilityMenuListOption* option = menuListOptionAccessibilityObject(listItem);
</span><span class="cx"> if (option) {
</span><span class="cx"> option->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()->hasTagName(buttonTag))
</span><span class="cx"> return buttonRoleType();
</span><span class="cx"> if (isHTMLInputElement(node())) {
</span><del>- HTMLInputElement* input = toHTMLInputElement(node());
- if (input->isCheckbox())
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*node());
+ if (input.isCheckbox())
</ins><span class="cx"> return CheckBoxRole;
</span><del>- if (input->isRadioButton())
</del><ins>+ if (input.isRadioButton())
</ins><span class="cx"> return RadioButtonRole;
</span><del>- if (input->isTextButton())
</del><ins>+ if (input.isTextButton())
</ins><span class="cx"> return buttonRoleType();
</span><del>- if (input->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& type = input->getAttribute(typeAttr);
</del><ins>+ const AtomicString& type = input.getAttribute(typeAttr);
</ins><span class="cx"> if (equalIgnoringCase(type, "color"))
</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()->hasTagName(selectTag)) {
</span><del>- HTMLSelectElement* selectElement = toHTMLSelectElement(node());
- return selectElement->multiple() ? ListBoxRole : PopUpButtonRole;
</del><ins>+ HTMLSelectElement& selectElement = downcast<HTMLSelectElement>(*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->isText() || input->isNumberField();
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*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->isImageButton();
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*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 && isHTMLInputElement(node)) {
</span><del>- HTMLInputElement* input = toHTMLInputElement(node);
- return input->isImageButton();
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*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, "false"))
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- return node() && node()->hasTagName(selectTag) && toHTMLSelectElement(node())->multiple();
</del><ins>+ return node() && node()->hasTagName(selectTag) && downcast<HTMLSelectElement>(*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)->isReadOnly();
</span><span class="cx">
</span><span class="cx"> if (isHTMLInputElement(node)) {
</span><del>- HTMLInputElement* input = toHTMLInputElement(node);
- if (input->isTextField())
- return input->isReadOnly();
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*node);
+ if (input.isTextField())
+ return input.isReadOnly();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> return !node->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() && isHTMLInputElement(node())) {
</span><del>- HTMLInputElement* input = toHTMLInputElement(node());
- if (input->isRangeControl())
- return input->valueAsNumber();
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*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() && isHTMLInputElement(node())) {
</span><del>- HTMLInputElement* input = toHTMLInputElement(node());
- if (input->isRangeControl())
- return input->maximum();
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*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() && isHTMLInputElement(node())) {
</span><del>- HTMLInputElement* input = toHTMLInputElement(node());
- if (input->isRangeControl())
- return input->minimum();
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*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->isDisabledFormControl() && (input->isRadioButton() || input->isCheckbox() || input->isTextButton() || input->isFileUpload() || input->isImageButton()))
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*node);
+ if (!input.isDisabledFormControl() && (input.isRadioButton() || input.isCheckbox() || input.isTextButton() || input.isFileUpload() || input.isImageButton()))
</ins><span class="cx"> return true;
</span><span class="cx"> } else if (node->hasTagName(buttonTag) || node->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()->getOrCreate(toHTMLFieldSetElement(node)->legend());
</del><ins>+ AccessibilityObject* object = axObjectCache()->getOrCreate(downcast<HTMLFieldSetElement>(*node).legend());
</ins><span class="cx"> if (object && !object->isHidden())
</span><span class="cx"> textOrder.append(AccessibilityText(accessibleNameForNode(object->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->isTextButton()) {
- textOrder.append(AccessibilityText(input->valueWithDefault(), VisibleText));
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*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->isTextButton())
- return input->valueWithDefault();
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*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() && (isHTMLTextAreaElement(node) || isHTMLInputElement(node)))
- return toHTMLTextFormControlElement(node)->value();
</del><ins>+ if (isNativeTextControl() && isHTMLTextFormControlElement(*node))
+ return downcast<HTMLTextFormControlElement>(*node).value();
</ins><span class="cx">
</span><span class="cx"> if (!node->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->hasTagName(selectTag)) {
</span><del>- HTMLSelectElement* selectElement = toHTMLSelectElement(node);
- int selectedIndex = selectElement->selectedIndex();
- const Vector<HTMLElement*>& listItems = selectElement->listItems();
</del><ins>+ HTMLSelectElement& selectElement = downcast<HTMLSelectElement>(*node);
+ int selectedIndex = selectElement.selectedIndex();
+ const Vector<HTMLElement*>& listItems = selectElement.listItems();
</ins><span class="cx"> if (selectedIndex >= 0 && static_cast<size_t>(selectedIndex) < listItems.size()) {
</span><span class="cx"> const AtomicString& overriddenDescription = listItems[selectedIndex]->fastGetAttribute(aria_labelAttr);
</span><span class="cx"> if (!overriddenDescription.isNull())
</span><span class="cx"> return overriddenDescription;
</span><span class="cx"> }
</span><del>- if (!selectElement->multiple())
- return selectElement->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& type = input->getAttribute(typeAttr);
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*node());
+ const AtomicString& type = input.getAttribute(typeAttr);
</ins><span class="cx"> if (!equalIgnoringCase(type, "color"))
</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->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)->value();
</del><ins>+ return downcast<HTMLInputElement>(*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 && m_renderer->node() && isHTMLInputElement(m_renderer->node())) {
</span><del>- HTMLInputElement* input = toHTMLInputElement(m_renderer->node());
- return input->isFileUpload();
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*m_renderer->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 && cssBox->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->node());
- int selectedIndex = selectElement->selectedIndex();
- const Vector<HTMLElement*>& listItems = selectElement->listItems();
</del><ins>+ HTMLSelectElement& selectElement = downcast<HTMLSelectElement>(*m_renderer->node());
+ int selectedIndex = selectElement.selectedIndex();
+ const Vector<HTMLElement*>& listItems = selectElement.listItems();
</ins><span class="cx"> if (selectedIndex >= 0 && static_cast<size_t>(selectedIndex) < listItems.size()) {
</span><span class="cx"> const AtomicString& overriddenDescription = listItems[selectedIndex]->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->node(); parentNode; parentNode = parentNode->parentNode()) {
</span><span class="cx"> if (isHTMLLabelElement(parentNode))
</span><del>- return toHTMLLabelElement(parentNode);
</del><ins>+ return downcast<HTMLLabelElement>(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& anchor = downcast<HTMLAnchorElement>(*element);
</ins><span class="cx">
</span><del>- URL linkURL = anchor->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& input = downcast<HTMLInputElement>(*node);
</ins><span class="cx"> // if there's a form, then this is easy
</span><del>- if (input->form()) {
</del><ins>+ if (input.form()) {
</ins><span class="cx"> Vector<Ref<Element>> formElements;
</span><del>- input->form()->getNamedElements(input->name(), formElements);
</del><ins>+ input.form()->getNamedElements(input.name(), formElements);
</ins><span class="cx">
</span><span class="cx"> for (auto& associateElement : formElements) {
</span><span class="cx"> if (AccessibilityObject* object = axObjectCache()->getOrCreate(&associateElement.get()))
</span><span class="cx"> linkedUIElements.append(object);
</span><span class="cx"> }
</span><span class="cx"> } else {
</span><del>- RefPtr<NodeList> list = node->document().getElementsByTagName("input");
- unsigned len = list->length();
- for (unsigned i = 0; i < len; ++i) {
- if (isHTMLInputElement(list->item(i))) {
- HTMLInputElement* associateElement = toHTMLInputElement(list->item(i));
- if (associateElement->isRadioButton() && associateElement->name() == input->name()) {
- if (AccessibilityObject* object = axObjectCache()->getOrCreate(associateElement))
</del><ins>+ RefPtr<NodeList> list = node->document().getElementsByTagName(inputTag.localName());
+ unsigned length = list->length();
+ for (unsigned i = 0; i < length; ++i) {
+ Node* item = list->item(i);
+ if (isHTMLInputElement(item)) {
+ HTMLInputElement& associateElement = downcast<HTMLInputElement>(*item);
+ if (associateElement.isRadioButton() && associateElement.name() == input.name()) {
+ if (AccessibilityObject* object = axObjectCache()->getOrCreate(&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() && isHTMLAnchorElement(m_renderer->node())) {
</span><del>- if (HTMLAnchorElement* anchor = toHTMLAnchorElement(anchorElement()))
</del><ins>+ if (HTMLAnchorElement* anchor = downcast<HTMLAnchorElement>(anchorElement()))
</ins><span class="cx"> return anchor->href();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1515,10 +1516,10 @@
</span><span class="cx"> return m_renderer->document().url();
</span><span class="cx">
</span><span class="cx"> if (isImage() && m_renderer->node() && isHTMLImageElement(m_renderer->node()))
</span><del>- return toHTMLImageElement(m_renderer->node())->src();
</del><ins>+ return downcast<HTMLImageElement>(*m_renderer->node()).src();
</ins><span class="cx">
</span><span class="cx"> if (isInputImage())
</span><del>- return toHTMLInputElement(m_renderer->node())->src();
</del><ins>+ return downcast<HTMLInputElement>(*m_renderer->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->node() || !m_renderer->node()->isElementNode())
</span><span class="cx"> return;
</span><del>- Element* element = toElement(m_renderer->node());
</del><ins>+ Element& element = toElement(*m_renderer->node());
</ins><span class="cx">
</span><span class="cx"> if (!m_renderer->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->isTextField()) {
- // FIXME: This is not safe! Other elements could have a TextField renderer.
- toHTMLInputElement(element)->setValue(string);
- } else if (renderer->isTextArea()) {
- // FIXME: This is not safe! Other elements could have a TextArea renderer.
- toHTMLTextAreaElement(element)->setValue(string);
- }
</del><ins>+ if (renderer->isTextField() && isHTMLInputElement(element))
+ downcast<HTMLInputElement>(element).setValue(string);
+ else if (renderer->isTextArea() && isHTMLTextAreaElement(element))
+ downcast<HTMLTextAreaElement>(element).setValue(string);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void AccessibilityRenderObject::ariaOwnsElements(AccessibilityChildrenVector& axObjects) const
</span><span class="lines">@@ -1763,10 +1761,10 @@
</span><span class="cx"> Node* parent = curr->parentNode();
</span><span class="cx"> if (parent && isHTMLAreaElement(curr) && isHTMLMapElement(parent)) {
</span><span class="cx"> AccessibilityImageMapLink* areaObject = toAccessibilityImageMapLink(axObjectCache()->getOrCreate(ImageMapLinkRole));
</span><del>- HTMLMapElement* map = toHTMLMapElement(parent);
- areaObject->setHTMLAreaElement(toHTMLAreaElement(curr));
- areaObject->setHTMLMapElement(map);
- areaObject->setParent(accessibilityParentForImageMap(map));
</del><ins>+ HTMLMapElement& map = downcast<HTMLMapElement>(*parent);
+ areaObject->setHTMLAreaElement(downcast<HTMLAreaElement>(curr));
+ areaObject->setHTMLMapElement(&map);
+ areaObject->setParent(accessibilityParentForImageMap(&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->parentElement(); mapParent; mapParent = mapParent->parentElement()) {
</span><span class="cx"> if (isHTMLMapElement(mapParent)) {
</span><del>- parent = accessibilityParentForImageMap(toHTMLMapElement(mapParent));
</del><ins>+ parent = accessibilityParentForImageMap(downcast<HTMLMapElement>(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()->deprecatedShadowAncestorNode();
</span><span class="cx">
</span><span class="cx"> if (isHTMLAreaElement(node))
</span><del>- return accessibilityImageMapHitTest(toHTMLAreaElement(node), point);
</del><ins>+ return accessibilityImageMapHitTest(downcast<HTMLAreaElement>(node), point);
</ins><span class="cx">
</span><span class="cx"> if (isHTMLOptionElement(node))
</span><del>- node = toHTMLOptionElement(node)->ownerSelectElement();
</del><ins>+ node = downcast<HTMLOptionElement>(*node).ownerSelectElement();
</ins><span class="cx">
</span><span class="cx"> RenderObject* obj = node->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 && isHTMLInputElement(node)) {
</span><del>- HTMLInputElement* input = toHTMLInputElement(node);
- if (input->isCheckbox())
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*node);
+ if (input.isCheckbox())
</ins><span class="cx"> return CheckBoxRole;
</span><del>- if (input->isRadioButton())
</del><ins>+ if (input.isRadioButton())
</ins><span class="cx"> return RadioButtonRole;
</span><del>- if (input->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->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& type = input->getAttribute(typeAttr);
</del><ins>+ // FIXME: Shouldn't this use input.isColorControl()?
+ const AtomicString& type = input.getAttribute(typeAttr);
</ins><span class="cx"> if (equalIgnoringCase(type, "color"))
</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->innerSpinButtonElement();
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*node);
+ HTMLElement* spinButtonElement = input.innerSpinButtonElement();
</ins><span class="cx"> if (!spinButtonElement || !spinButtonElement->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 && isHTMLAnchorElement(anchor))
</span><del>- return toHTMLAnchorElement(anchor)->href();
</del><ins>+ return downcast<HTMLAnchorElement>(*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)->href().isEmpty();
</del><ins>+ return !downcast<HTMLAnchorElement>(*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->node());
</del><ins>+ return downcast<HTMLInputElement>(m_renderer->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->renderer();
</span><span class="cx"> if (!sliderRenderer || !sliderRenderer->isSlider())
</span><span class="cx"> return LayoutRect();
</span><del>- return toHTMLInputElement(sliderRenderer->node())->sliderThumbElement()->boundingBox();
</del><ins>+ return downcast<HTMLInputElement>(sliderRenderer->node())->sliderThumbElement()->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->element() && isHTMLTableElement(table->element()))
</span><del>- return toHTMLTableElement(table->element());
</del><ins>+ return downcast<HTMLTableElement>(table->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<HTMLTableElement>(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->node();
</span><span class="cx"> if (tableElement && isHTMLTableElement(tableElement)) {
</span><del>- HTMLTableCaptionElement* caption = toHTMLTableElement(tableElement)->caption();
- if (caption)
</del><ins>+ if (HTMLTableCaptionElement* caption = downcast<HTMLTableElement>(*tableElement).caption())
</ins><span class="cx"> title = caption->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->wrapper(), "selection-changed");
</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->activeSelectionStartListIndex();
</del><ins>+ HTMLSelectElement& select = downcast<HTMLSelectElement>(*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->node());
</del><ins>+ HTMLSelectElement* selectNode = downcast<HTMLSelectElement>(renderer->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->node())->selectedIndex();
- return selectedIndex >= 0 && selectedIndex < static_cast<int>(toHTMLSelectElement(renderer->node())->listItems().size());
</del><ins>+ int selectedIndex = downcast<HTMLSelectElement>(renderer->node())->selectedIndex();
+ return selectedIndex >= 0 && selectedIndex < static_cast<int>(downcast<HTMLSelectElement>(renderer->node())->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->isAccessibilityRenderObject()) {
</span><span class="cx"> Node* node = accTable->node();
</span><span class="cx"> if (node && isHTMLTableElement(node)) {
</span><del>- HTMLTableCaptionElement* caption = toHTMLTableElement(node)->caption();
</del><ins>+ HTMLTableCaptionElement* caption = downcast<HTMLTableElement>(*node).caption();
</ins><span class="cx"> if (caption)
</span><span class="cx"> return AccessibilityObject::firstAccessibleObjectFromNode(caption->renderer()->element())->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->isAccessibilityRenderObject())
</span><span class="cx"> node = coreObject->node();
</span><span class="cx"> if (!node || !node->isHTMLElement() || coreObject->ariaRoleAttribute() != UnknownRole || coreObject->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->roleValue() == TableRole) {
</span><del>- String summary = toHTMLTableElement(node)->summary();
</del><ins>+ const AtomicString& summary = downcast<HTMLTableElement>(*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->node() || !renderObject->node()->isHTMLElement())
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- HTMLInputElement* inputElement = toHTMLInputElement(renderObject->node());
- if (!inputElement)
- return false;
-
- return inputElement->value().length();
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*renderObject->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->isHTMLDocument());
</span><span class="cx">
</span><span class="cx"> AtomicStringImpl* atomicPropertyName = propertyName.publicName();
</span><del>- if (!atomicPropertyName || !toHTMLDocument(document)->hasWindowNamedItem(*atomicPropertyName))
</del><ins>+ if (!atomicPropertyName || !downcast<HTMLDocument>(*document).hasWindowNamedItem(*atomicPropertyName))
</ins><span class="cx"> return JSValue::encode(jsUndefined());
</span><span class="cx">
</span><del>- if (UNLIKELY(toHTMLDocument(document)->windowNamedItemContainsMultipleElements(*atomicPropertyName))) {
</del><ins>+ if (UNLIKELY(downcast<HTMLDocument>(*document).windowNamedItemContainsMultipleElements(*atomicPropertyName))) {
</ins><span class="cx"> RefPtr<HTMLCollection> collection = document->windowNamedItems(atomicPropertyName);
</span><span class="cx"> ASSERT(collection->length() > 1);
</span><span class="cx"> return JSValue::encode(toJS(exec, thisObj->globalObject(), WTF::getPtr(collection)));
</span><span class="cx"> }
</span><span class="cx">
</span><del>- return JSValue::encode(toJS(exec, thisObj->globalObject(), toHTMLDocument(document)->windowNamedItem(*atomicPropertyName)));
</del><ins>+ return JSValue::encode(toJS(exec, thisObj->globalObject(), downcast<HTMLDocument>(*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->impl().frame()->document();
</span><span class="cx"> if (document->isHTMLDocument()) {
</span><span class="cx"> AtomicStringImpl* atomicPropertyName = propertyName.publicName();
</span><del>- if (atomicPropertyName && toHTMLDocument(document)->hasWindowNamedItem(*atomicPropertyName)) {
</del><ins>+ if (atomicPropertyName && downcast<HTMLDocument>(*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->impl().frame()->document();
</span><span class="cx"> if (document->isHTMLDocument()) {
</span><span class="cx"> AtomicStringImpl* atomicPropertyName = propertyName.publicName();
</span><del>- if (atomicPropertyName && toHTMLDocument(document)->hasWindowNamedItem(*atomicPropertyName)) {
</del><ins>+ if (atomicPropertyName && downcast<HTMLDocument>(*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->hasTagName(iframeTag))) {
- if (Frame* frame = toHTMLIFrameElement(element)->contentFrame())
</del><ins>+ if (UNLIKELY(isHTMLIFrameElement(element))) {
+ if (Frame* frame = downcast<HTMLIFrameElement>(*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& element = jsCast<JSHTMLElement*>(slotBase)->impl();
</span><span class="cx"> Node* frameElement = element.children()->namedItem(propertyNameToAtomicString(propertyName));
</span><del>- if (Document* document = toHTMLFrameElement(frameElement)->contentDocument()) {
</del><ins>+ if (Document* document = downcast<HTMLFrameElement>(frameElement)->contentDocument()) {
</ins><span class="cx"> if (JSDOMWindowShell* window = toJSDOMWindowShell(document->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<HTMLImageElement>(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<HTMLAudioElement>(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->renderStyle())
</span><span class="cx"> style->setUnique();
</span><span class="cx"> }
</span><del>- return toHTMLTextFormControlElement(*element).isPlaceholderVisible();
</del><ins>+ return downcast<HTMLTextFormControlElement>(*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->toInputElement();
</span><span class="cx"> if (inputElement && inputElement->shouldAppearChecked() && !inputElement->shouldAppearIndeterminate())
</span><span class="cx"> return true;
</span><del>- if (isHTMLOptionElement(element) && toHTMLOptionElement(element)->selected())
</del><ins>+ if (isHTMLOptionElement(element) && downcast<HTMLOptionElement>(*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 && e->isFormControlElement() && style.fontSize() >= 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)->isImageButton())
</del><ins>+ if (!isHTMLInputElement(e) || !downcast<HTMLInputElement>(*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& 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 <style> 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->getElementById(name);
</span><span class="cx"> if (element && isHTMLStyleElement(element))
</span><del>- return toHTMLStyleElement(element);
- return 0;
</del><ins>+ return downcast<HTMLStyleElement>(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->resolvingMode == SelectorChecker::Mode::ResolvingStyle)
</span><span class="cx"> checkingContext->elementStyle->setUnique();
</span><del>- return toHTMLTextFormControlElement(*element).isPlaceholderVisible();
</del><ins>+ return downcast<HTMLTextFormControlElement>(*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->renderStyle())
</span><span class="cx"> style->setUnique();
</span><span class="cx"> }
</span><del>- return toHTMLTextFormControlElement(*element).isPlaceholderVisible();
</del><ins>+ return downcast<HTMLTextFormControlElement>(*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) && toHTMLTextFormControlElement(*element).isPlaceholderVisible();
</del><ins>+ return isHTMLTextFormControlElement(*element) && downcast<HTMLTextFormControlElement>(*element).isPlaceholderVisible();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void SelectorCodeGenerator::generateElementHasPlaceholderShown(Assembler::JumpList& failureCases, const SelectorFragment& 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->pushCurrentScript(toHTMLScriptElement(element));
</del><ins>+ m_document->pushCurrentScript(downcast<HTMLScriptElement>(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 && isHTMLImageElement(element) && !element->inDocument())
</span><del>- image = toHTMLImageElement(element)->cachedImage();
- else
- image = 0;
</del><ins>+ image = downcast<HTMLImageElement>(*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->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 && isHTMLTitleElement(m_titleElement.get()))
- toHTMLTitleElement(m_titleElement.get())->setText(title);
</del><ins>+ if (m_titleElement && isHTMLTitleElement(*m_titleElement))
+ downcast<HTMLTitleElement>(*m_titleElement).setText(title);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Document::setTitleElement(const StringWithDirection& 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 <html:meta .....>
</span><span class="cx"> if (isHTMLDocument()) {
</span><span class="cx"> // Exception (for sandboxed documents) ignored.
</span><del>- toHTMLDocument(this)->setCookie(content, IGNORE_EXCEPTION);
</del><ins>+ downcast<HTMLDocument>(*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->item(i);
</span><span class="cx"> if (!child->hasTagName(linkTag))
</span><span class="cx"> continue;
</span><del>- HTMLLinkElement* linkElement = toHTMLLinkElement(child);
- if (!(linkElement->iconType() & iconTypesMask))
</del><ins>+ HTMLLinkElement& linkElement = downcast<HTMLLinkElement>(*child);
+ if (!(linkElement.iconType() & iconTypesMask))
</ins><span class="cx"> continue;
</span><del>- if (linkElement->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->href(), linkElement->iconSizes(), linkElement->type(), linkElement->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& key, const Element& element)
</span><span class="cx"> {
</span><del>- return isHTMLMapElement(element) && toHTMLMapElement(element).getName().impl() == &key;
</del><ins>+ return isHTMLMapElement(element) && downcast<HTMLMapElement>(element).getName().impl() == &key;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline bool keyMatchesLowercasedMapName(const AtomicStringImpl& key, const Element& element)
</span><span class="cx"> {
</span><del>- return isHTMLMapElement(element) && toHTMLMapElement(element).getName().lower().impl() == &key;
</del><ins>+ return isHTMLMapElement(element) && downcast<HTMLMapElement>(element).getName().lower().impl() == &key;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline bool keyMatchesLowercasedUsemap(const AtomicStringImpl& key, const Element& 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) && toHTMLImageElement(element).matchesLowercasedUsemap(key);
</del><ins>+ return isHTMLImageElement(element) && downcast<HTMLImageElement>(element).matchesLowercasedUsemap(key);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline bool keyMatchesLabelForAttribute(const AtomicStringImpl& key, const Element& element)
</span><span class="lines">@@ -168,22 +168,22 @@
</span><span class="cx">
</span><span class="cx"> HTMLMapElement* DocumentOrderedMap::getElementByMapName(const AtomicStringImpl& key, const TreeScope& scope) const
</span><span class="cx"> {
</span><del>- return toHTMLMapElement(get<keyMatchesMapName>(key, scope));
</del><ins>+ return downcast<HTMLMapElement>(get<keyMatchesMapName>(key, scope));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLMapElement* DocumentOrderedMap::getElementByLowercasedMapName(const AtomicStringImpl& key, const TreeScope& scope) const
</span><span class="cx"> {
</span><del>- return toHTMLMapElement(get<keyMatchesLowercasedMapName>(key, scope));
</del><ins>+ return downcast<HTMLMapElement>(get<keyMatchesLowercasedMapName>(key, scope));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLImageElement* DocumentOrderedMap::getElementByLowercasedUsemap(const AtomicStringImpl& key, const TreeScope& scope) const
</span><span class="cx"> {
</span><del>- return toHTMLImageElement(get<keyMatchesLowercasedUsemap>(key, scope));
</del><ins>+ return downcast<HTMLImageElement>(get<keyMatchesLowercasedUsemap>(key, scope));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLLabelElement* DocumentOrderedMap::getElementByLabelForAttribute(const AtomicStringImpl& key, const TreeScope& scope) const
</span><span class="cx"> {
</span><del>- return toHTMLLabelElement(get<keyMatchesLabelForAttribute>(key, scope));
</del><ins>+ return downcast<HTMLLabelElement>(get<keyMatchesLabelForAttribute>(key, scope));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Element* DocumentOrderedMap::getElementByWindowNamedItem(const AtomicStringImpl& key, const TreeScope& 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"> // <LINK> element
</span><del>- HTMLLinkElement& linkElement = toHTMLLinkElement(element);
</del><ins>+ HTMLLinkElement& linkElement = downcast<HTMLLinkElement>(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<SVGStyleElement>(element).sheet();
</span><span class="cx"> else if (isHTMLLinkElement(element))
</span><del>- sheet = toHTMLLinkElement(element).sheet();
</del><ins>+ sheet = downcast<HTMLLinkElement>(element).sheet();
</ins><span class="cx"> else
</span><del>- sheet = toHTMLStyleElement(element).sheet();
</del><ins>+ sheet = downcast<HTMLStyleElement>(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()->clearClassListValueForQuirksMode();
</span><span class="cx">
</span><span class="cx"> TreeScope* newScope = &insertionPoint.treeScope();
</span><del>- HTMLDocument* newDocument = !wasInDocument && inDocument() && newScope->documentScope().isHTMLDocument() ? toHTMLDocument(&newScope->documentScope()) : nullptr;
</del><ins>+ HTMLDocument* newDocument = !wasInDocument && inDocument() && newScope->documentScope().isHTMLDocument() ? downcast<HTMLDocument>(&newScope->documentScope()) : nullptr;
</ins><span class="cx"> if (newScope != &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 = &insertionPoint.treeScope();
</span><del>- HTMLDocument* oldDocument = inDocument() && oldScope->documentScope().isHTMLDocument() ? toHTMLDocument(&oldScope->documentScope()) : nullptr;
</del><ins>+ HTMLDocument* oldDocument = inDocument() && oldScope->documentScope().isHTMLDocument() ? downcast<HTMLDocument>(&oldScope->documentScope()) : nullptr;
</ins><span class="cx"> if (oldScope != &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<HTMLDocument>(document()), oldName, newName);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Element::updateNameForTreeScope(TreeScope& scope, const AtomicString& oldName, const AtomicString& 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<HTMLDocument>(document()), oldId, newId, UpdateHTMLDocumentNamedItemMapsOnlyIfDiffersFromNameAttribute);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Element::updateIdForTreeScope(TreeScope& scope, const AtomicString& oldId, const AtomicString& 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<HTMLLabelElement>(*this));
</ins><span class="cx"> if (!newForAttributeValue.isEmpty())
</span><del>- scope.addLabel(*newForAttributeValue.impl(), *toHTMLLabelElement(this));
</del><ins>+ scope.addLabel(*newForAttributeValue.impl(), downcast<HTMLLabelElement>(*this));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Element::willModifyAttribute(const QualifiedName& name, const AtomicString& oldValue, const AtomicString& 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<HTMLCollection> collection;
</del><span class="cx"> if (type == TableRows) {
</span><del>- return ensureRareData().ensureNodeLists().addCachedCollection<HTMLTableRowsCollection>(toHTMLTableElement(*this), type);
</del><ins>+ return ensureRareData().ensureNodeLists().addCachedCollection<HTMLTableRowsCollection>(downcast<HTMLTableElement>(*this), type);
</ins><span class="cx"> } else if (type == SelectOptions) {
</span><del>- return ensureRareData().ensureNodeLists().addCachedCollection<HTMLOptionsCollection>(toHTMLSelectElement(*this), type);
</del><ins>+ return ensureRareData().ensureNodeLists().addCachedCollection<HTMLOptionsCollection>(downcast<HTMLSelectElement>(*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<HTMLFormControlsCollection>(*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<HTMLInputElement>(*node).willDispatchEvent(*event, clickHandlingState);
</ins><span class="cx">
</span><span class="cx"> if (!event->propagationStopped() && !eventPath.isEmpty())
</span><span class="cx"> dispatchEventInDOM(*event, eventPath, windowEventContext);
</span><span class="cx">
</span><span class="cx"> event->setTarget(&eventTargetRespectingTargetRules(*node));
</span><del>- event->setCurrentTarget(0);
</del><ins>+ event->setCurrentTarget(nullptr);
</ins><span class="cx"> event->setEventPhase(0);
</span><span class="cx">
</span><span class="cx"> if (clickHandlingState.stateful)
</span><del>- toHTMLInputElement(*node).didDispatchClickEvent(*event, clickHandlingState);
</del><ins>+ downcast<HTMLInputElement>(*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<HTMLScriptElement>(element);
</ins><span class="cx">
</span><span class="cx"> if (isSVGScriptElement(element))
</span><span class="cx"> return downcast<SVGScriptElement>(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& document, Element& element)
</span><span class="cx"> {
</span><span class="cx"> if (isHTMLAnchorElement(element))
</span><del>- return toHTMLAnchorElement(element).visitedLinkHash();
</del><ins>+ return downcast<HTMLAnchorElement>(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<HTMLAnchorElement>(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 "HTML") {
- print F <<END
-// FIXME: Remove these macros once the code has been ported to using
-// downcast<*Element>().
-#define to$class(x) WebCore::downcast<WebCore::$class>(x)
-END
- ;
- }
</del><span class="cx"> print F "\n";
</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->target()->toNode()) ? toHTMLTextFormControlElement(event->target()->toNode()) : nullptr;
</del><ins>+ HTMLTextFormControlElement* textFromControlOfTarget = isHTMLTextFormControlElement(*event->target()->toNode()) ? downcast<HTMLTextFormControlElement>(event->target()->toNode()) : nullptr;
</ins><span class="cx"> if (textFromControlOfTarget && (selection.start().isNull() || textFromControlOfTarget != textFormControlOfSelectionStart)) {
</span><span class="cx"> if (RefPtr<Range> range = textFromControlOfTarget->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& 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->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<HTMLImageElement>(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->renderer())
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> if (node->renderer()->isTextOrLineBreak())
</span><span class="cx"> return node;
</span><span class="cx"> if (isHTMLTextFormControlElement(*node))
</span><del>- node = toHTMLTextFormControlElement(node)->visiblePositionForIndex(1).deepEquivalent().deprecatedNode();
</del><ins>+ node = downcast<HTMLTextFormControlElement>(*node).visiblePositionForIndex(1).deepEquivalent().deprecatedNode();
</ins><span class="cx"> else if (node->firstChild())
</span><span class="cx"> node = node->firstChild();
</span><span class="cx"> else
</span><span class="cx"> node = node->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->document();
</span><span class="cx">
</span><span class="cx"> Element* focusedElement = document->focusedElement();
</span><del>- if (focusedElement && focusedElement->hasTagName(selectTag)) {
- HTMLSelectElement* selectElement = toHTMLSelectElement(document->focusedElement());
- if (selectElement->canSelectAll()) {
- selectElement->selectAll();
</del><ins>+ if (focusedElement && isHTMLSelectElement(focusedElement)) {
+ HTMLSelectElement& selectElement = downcast<HTMLSelectElement>(*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<Node> root = 0;
- Node* selectStartTarget = 0;
</del><ins>+ RefPtr<Node> 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() && focusedElement) {
</span><span class="cx"> if (focusedElement->isTextFormControl()) {
</span><del>- toHTMLTextFormControlElement(focusedElement)->select();
</del><ins>+ downcast<HTMLTextFormControlElement>(*focusedElement).select();
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> root = focusedElement->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& element = *it;
</span><span class="cx"> if (isHTMLFormElement(&element))
</span><del>- return toHTMLFormElement(&element);
</del><ins>+ return downcast<HTMLFormElement>(&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() && elementCannotHaveEndTag(targetNode))) {
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>- Node* current = targetNode.hasTagName(templateTag) ? toHTMLTemplateElement(targetNode).content()->firstChild() : targetNode.firstChild();
</del><ins>+ Node* current = targetNode.hasTagName(templateTag) ? downcast<HTMLTemplateElement>(targetNode).content()->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 && isHTMLInputElement(textControl) && toHTMLInputElement(textControl)->isPasswordField())
</del><ins>+ if (textControl && isHTMLInputElement(textControl) && downcast<HTMLInputElement>(*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()->nonBoundaryShadowTreeRootNode() : 0;
</del><ins>+ return start().deprecatedNode() ? start().deprecatedNode()->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 && isHTMLInputElement(textControl) && toHTMLInputElement(textControl)->isPasswordField();
</del><ins>+ return textControl && isHTMLInputElement(textControl) && downcast<HTMLInputElement>(*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 = "decimal";
</span><span class="cx"> list = adoptNS([[PlatformNSTextList alloc] initWithMarkerFormat:String("{" + listStyleType + "}") options:0]);
</span><span class="cx"> if (isHTMLOListElement(element)) {
</span><del>- NSInteger startingItemNumber = toHTMLOListElement(element).start();;
</del><ins>+ NSInteger startingItemNumber = downcast<HTMLOListElement>(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& inputElement = toHTMLInputElement(element);
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(element);
</ins><span class="cx"> if (inputElement.type() == "text") {
</span><span class="cx"> NSString *value = inputElement.value();
</span><span class="cx"> if (value && [value length] > 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& textAreaElement = toHTMLTextAreaElement(element);
</del><ins>+ HTMLTextAreaElement& textAreaElement = downcast<HTMLTextAreaElement>(element);
</ins><span class="cx"> NSString *value = textAreaElement.value();
</span><span class="cx"> if (value && [value length] > 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()->focusedElement();
</span><del>- if (focusedElement && (focusedElement->hasTagName(textareaTag) || (focusedElement->hasTagName(inputTag) &&
- (toHTMLInputElement(focusedElement)->isTextField() ||
- toHTMLInputElement(focusedElement)->isSearchField())))) {
</del><ins>+ if (focusedElement && (isHTMLTextAreaElement(focusedElement) || (isHTMLInputElement(focusedElement)
+ && (downcast<HTMLInputElement>(*focusedElement).isTextField()
+ || downcast<HTMLInputElement>(*focusedElement).isSearchField())))) {
</ins><span class="cx"> if (direction == NaturalWritingDirection)
</span><span class="cx"> return;
</span><del>- toHTMLElement(focusedElement)->setAttribute(alignAttr, newValue);
</del><ins>+ toHTMLElement(*focusedElement).setAttribute(alignAttr, newValue);
</ins><span class="cx"> m_frame.document()->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<HTMLCollection> options = dataList->options();
</span><del>- for (unsigned i = 0; HTMLOptionElement* option = toHTMLOptionElement(options->item(i)); i++) {
</del><ins>+ for (unsigned i = 0; HTMLOptionElement* option = downcast<HTMLOptionElement>(options->item(i)); ++i) {
</ins><span class="cx"> if (!element().isValidValue(option->value()))
</span><span class="cx"> continue;
</span><span class="cx"> Color color(option->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("Element of id \"ftpDirectoryTable\" is not a table element");
</span><span class="cx"> else
</span><del>- m_tableElement = toHTMLTableElement(tableElement.get());
</del><ins>+ m_tableElement = downcast<HTMLTableElement>(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()->createElement(tableTag, false);
</span><del>- m_tableElement = toHTMLTableElement(tableElement.get());
</del><ins>+ m_tableElement = downcast<HTMLTableElement>(tableElement.get());
</ins><span class="cx"> m_tableElement->setAttribute(HTMLNames::idAttr, "ftpDirectoryTable");
</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()->appendChild(bodyElement, IGNORE_EXCEPTION);
</span><span class="cx">
</span><span class="cx"> RefPtr<Element> tableElement = document()->createElement(tableTag, false);
</span><del>- m_tableElement = toHTMLTableElement(tableElement.get());
</del><ins>+ m_tableElement = downcast<HTMLTableElement>(tableElement.get());
</ins><span class="cx"> m_tableElement->setAttribute(HTMLNames::idAttr, "ftpDirectoryTable");
</span><span class="cx"> m_tableElement->setAttribute(HTMLNames::styleAttr, "width:100%");
</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->treeScope().getElementById(formId);
</span><span class="cx"> if (newFormCandidate && isHTMLFormElement(newFormCandidate))
</span><del>- newForm = toHTMLFormElement(newFormCandidate);
</del><ins>+ newForm = downcast<HTMLFormElement>(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->isServerMap())
</del><ins>+ HTMLImageElement& imageElement = downcast<HTMLImageElement>(*target);
+ if (!imageElement.isServerMap())
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- if (!imageElement->renderer() || !imageElement->renderer()->isRenderImage())
</del><ins>+ if (!imageElement.renderer() || !imageElement.renderer()->isRenderImage())
</ins><span class="cx"> return;
</span><del>- RenderImage* renderer = toRenderImage(imageElement->renderer());
</del><ins>+ RenderImage& 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->absoluteToLocal(FloatPoint(toMouseEvent(event)->pageX(), toMouseEvent(event)->pageY()));
</del><ins>+ FloatPoint absolutePosition = renderer.absoluteToLocal(FloatPoint(toMouseEvent(event)->pageX(), toMouseEvent(event)->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)->imageElement();
</del><ins>+ return downcast<HTMLMapElement>(*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) && toHTMLOptionElement(element).selected();
</del><ins>+ return isHTMLOptionElement(element) && downcast<HTMLOptionElement>(element).selected();
</ins><span class="cx"> case DataListOptions:
</span><del>- if (element.hasTagName(optionTag)) {
- HTMLOptionElement& option = toHTMLOptionElement(element);
</del><ins>+ if (isHTMLOptionElement(element)) {
+ HTMLOptionElement& option = downcast<HTMLOptionElement>(element);
</ins><span class="cx"> if (!option.isDisabledFormControl() && !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) && toHTMLObjectElement(element).containsJavaApplet());
</del><ins>+ return element.hasTagName(appletTag) || (isHTMLObjectElement(element) && downcast<HTMLObjectElement>(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& document = this->document();
</span><span class="cx"> if (document.isHTMLDocument()) {
</span><del>- const HTMLDocument& htmlDocument = toHTMLDocument(document);
</del><ins>+ const HTMLDocument& htmlDocument = downcast<HTMLDocument>(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<DocumentFragment> 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)->content();
</del><ins>+ if (isHTMLTemplateElement(*this))
+ container = downcast<HTMLTemplateElement>(*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<HTMLElement*>(this));
</del><ins>+ HTMLTextFormControlElement& textElement = downcast<HTMLTextFormControlElement>(const_cast<HTMLElement&>(*this));
</ins><span class="cx"> bool hasStrongDirectionality;
</span><del>- UCharDirection textDirection = textElement->value().defaultWritingDirection(&hasStrongDirectionality);
</del><ins>+ UCharDirection textDirection = textElement.value().defaultWritingDirection(&hasStrongDirectionality);
</ins><span class="cx"> if (strongDirectionalityTextNode)
</span><del>- *strongDirectionalityTextNode = hasStrongDirectionality ? textElement : nullptr;
</del><ins>+ *strongDirectionalityTextNode = hasStrongDirectionality ? &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 <object> 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 && p->hasTagName(objectTag)) {
- if (!p->renderer())
</del><ins>+ ContainerNode* parent = parentNode();
+ if (parent && isHTMLObjectElement(parent)) {
+ if (!parent->renderer())
</ins><span class="cx"> return false;
</span><del>- if (!toHTMLObjectElement(p)->useFallbackContent()) {
- ASSERT(!p->renderer()->isEmbeddedObject());
</del><ins>+ if (!downcast<HTMLObjectElement>(*parent).useFallbackContent()) {
+ ASSERT(!parent->renderer()->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& element : descendantsOfType<Element>(const_cast<HTMLFieldSetElement&>(*this))) {
</span><span class="cx"> if (element.hasTagName(objectTag))
</span><del>- m_associatedElements.append(&toHTMLObjectElement(element));
</del><ins>+ m_associatedElements.append(&downcast<HTMLObjectElement>(element));
</ins><span class="cx"> else if (element.isFormControlElement())
</span><span class="cx"> m_associatedElements.append(&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->parentElement()) {
</span><span class="cx"> if (isHTMLFieldSetElement(ancestor) && ancestor->fastHasAttribute(disabledAttr)) {
</span><del>- HTMLFieldSetElement& fieldSetAncestor = toHTMLFieldSetElement(*ancestor);
</del><ins>+ HTMLFieldSetElement& fieldSetAncestor = downcast<HTMLFieldSetElement>(*ancestor);
</ins><span class="cx"> bool isInFirstLegend = previousAncestor && isHTMLLegendElement(previousAncestor) && 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)->isInputTypeHidden();
</del><ins>+ return !downcast<HTMLInputElement>(*element).isInputTypeHidden();
</ins><span class="cx"> if (element->hasTagName(selectTag))
</span><span class="cx"> return true;
</span><span class="cx"> if (element->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<HTMLFormElement>(ownerNode()).associatedElements();
+ return downcast<HTMLFieldSetElement>(ownerNode()).associatedElements();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const Vector<HTMLImageElement*>& HTMLFormControlsCollection::formImageElements() const
</span><span class="cx"> {
</span><span class="cx"> ASSERT(isHTMLFormElement(ownerNode()));
</span><del>- return toHTMLFormElement(ownerNode()).imageElements();
</del><ins>+ return downcast<HTMLFormElement>(ownerNode()).imageElements();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static unsigned findFormAssociatedElement(const Vector<FormAssociatedElement*>& elements, const Element& 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& element = control.asHTMLElement();
</span><span class="cx"> if (!isHTMLInputElement(element))
</span><span class="cx"> continue;
</span><del>- HTMLInputElement& input = toHTMLInputElement(element);
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(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(&toHTMLImageElement(element)) != notFound);
</del><ins>+ ASSERT_WITH_SECURITY_IMPLICATION(m_imageElements.find(&downcast<HTMLImageElement>(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 && inDocument() && document().isHTMLDocument()) {
</span><del>- HTMLDocument* document = toHTMLDocument(&this->document());
</del><ins>+ HTMLDocument& document = downcast<HTMLDocument>(this->document());
</ins><span class="cx"> const AtomicString& id = getIdAttribute();
</span><span class="cx"> if (!id.isEmpty() && id != getNameAttribute()) {
</span><span class="cx"> if (willHaveName)
</span><del>- document->addDocumentNamedItem(*id.impl(), *this);
</del><ins>+ document.addDocumentNamedItem(*id.impl(), *this);
</ins><span class="cx"> else
</span><del>- document->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 && isHTMLObjectElement(element()))
</span><del>- toHTMLObjectElement(element()).renderFallbackContent();
</del><ins>+ downcast<HTMLObjectElement>(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->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->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<HTMLDataListElement>(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->dataList()) {
</span><span class="cx"> RefPtr<HTMLCollection> options = dataList->options();
</span><del>- for (unsigned i = 0; HTMLOptionElement* option = toHTMLOptionElement(options->item(i)); ++i) {
</del><ins>+ for (unsigned i = 0; HTMLOptionElement* option = downcast<HTMLOptionElement>(options->item(i)); ++i) {
</ins><span class="cx"> if (!isValidValue(option->value()))
</span><span class="cx"> continue;
</span><span class="cx"> parameters.suggestionValues.append(sanitizeValue(option->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->firstChild()) : 0;
</del><ins>+ return root ? downcast<HTMLSelectElement>(root->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->hasTagName(fieldsetTag))
- return 0;
</del><ins>+ if (!fieldset || !isHTMLFieldSetElement(fieldset))
+ return nullptr;
</ins><span class="cx">
</span><del>- return toHTMLFieldSetElement(fieldset)->form();
</del><ins>+ return downcast<HTMLFieldSetElement>(*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(&node);
</del><ins>+ source = downcast<HTMLSourceElement>(&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->getNonEmptyURLAttribute(srcAttr);
</span><span class="lines">@@ -4883,9 +4883,9 @@
</span><span class="cx"> if (hasMediaControls())
</span><span class="cx"> mediaControls()->enteredFullscreen();
</span><span class="cx"> if (document().page() && isHTMLVideoElement(this)) {
</span><del>- HTMLVideoElement* asVideo = toHTMLVideoElement(this);
</del><ins>+ HTMLVideoElement& asVideo = downcast<HTMLVideoElement>(*this);
</ins><span class="cx"> if (document().page()->chrome().client().supportsVideoFullscreen()) {
</span><del>- document().page()->chrome().client().enterVideoFullscreenForVideoElement(asVideo);
</del><ins>+ document().page()->chrome().client().enterVideoFullscreenForVideoElement(&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& 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) && toHTMLObjectElement(element).isDocNamedItem())
</del><ins>+ return element.hasTagName(appletTag) || (isHTMLObjectElement(element) && downcast<HTMLObjectElement>(element).isDocNamedItem())
</ins><span class="cx"> || (isHTMLImageElement(element) && element.hasName());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool DocumentNameCollection::elementMatchesIfNameAttributeMatch(const Element& 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) && toHTMLObjectElement(element).isDocNamedItem())
</del><ins>+ || element.hasTagName(appletTag) || (isHTMLObjectElement(element) && downcast<HTMLObjectElement>(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) && toHTMLObjectElement(element).isDocNamedItem();
</del><ins>+ if (isHTMLObjectElement(element))
+ return (element.getNameAttribute().impl() == name || element.getIdAttribute().impl() == name) && downcast<HTMLObjectElement>(element).isDocNamedItem();
</ins><span class="cx"> if (isHTMLImageElement(element))
</span><span class="cx"> return element.getNameAttribute().impl() == name || (element.getIdAttribute().impl() == name && 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->nextSibling();
</span><span class="cx"> }
</span><span class="cx"> if (isNamedItem != wasNamedItem && inDocument() && document().isHTMLDocument()) {
</span><del>- HTMLDocument* document = toHTMLDocument(&this->document());
</del><ins>+ HTMLDocument& document = downcast<HTMLDocument>(this->document());
</ins><span class="cx">
</span><span class="cx"> const AtomicString& id = getIdAttribute();
</span><span class="cx"> if (!id.isEmpty()) {
</span><span class="cx"> if (isNamedItem)
</span><del>- document->addDocumentNamedItem(*id.impl(), *this);
</del><ins>+ document.addDocumentNamedItem(*id.impl(), *this);
</ins><span class="cx"> else
</span><del>- document->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& name = getNameAttribute();
</span><span class="cx"> if (!name.isEmpty() && id != name) {
</span><span class="cx"> if (isNamedItem)
</span><del>- document->addDocumentNamedItem(*name.impl(), *this);
</del><ins>+ document.addDocumentNamedItem(*name.impl(), *this);
</ins><span class="cx"> else
</span><del>- document->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) && equalIgnoringCase(child.getNameAttribute(), "type")
</span><span class="cx"> && MIMETypeRegistry::isJavaAppletMIMEType(child.getAttribute(valueAttr).string()))
</span><span class="cx"> return true;
</span><del>- if (child.hasTagName(objectTag) && toHTMLObjectElement(child).containsJavaApplet())
</del><ins>+ if (child.hasTagName(objectTag) && downcast<HTMLObjectElement>(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 && !select->hasTagName(selectTag))
</del><ins>+ while (select && !isHTMLSelectElement(select))
</ins><span class="cx"> select = select->parentNode();
</span><span class="cx"> if (select)
</span><del>- toHTMLSelectElement(select)->setRecalcListItems();
</del><ins>+ downcast<HTMLSelectElement>(*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 && !select->hasTagName(selectTag))
</del><ins>+ while (select && !isHTMLSelectElement(select))
</ins><span class="cx"> select = select->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<HTMLSelectElement>(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->parentNode()) {
</span><del>- if (parent->hasTagName(datalistTag))
- return toHTMLDataListElement(parent);
</del><ins>+ if (isHTMLDataListElement(parent))
+ return downcast<HTMLDataListElement>(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 && !select->hasTagName(selectTag))
</del><ins>+ while (select && !isHTMLSelectElement(select))
</ins><span class="cx"> select = select->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<HTMLSelectElement>(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) >= 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<HTMLOptionElement>(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<HTMLOptionsCollection> create(HTMLSelectElement&, CollectionType);
</span><span class="cx">
</span><del>- HTMLSelectElement& selectElement() { return toHTMLSelectElement(ownerNode()); }
- const HTMLSelectElement& selectElement() const { return toHTMLSelectElement(ownerNode()); }
</del><ins>+ HTMLSelectElement& selectElement() { return downcast<HTMLSelectElement>(ownerNode()); }
+ const HTMLSelectElement& selectElement() const { return downcast<HTMLSelectElement>(ownerNode()); }
</ins><span class="cx">
</span><span class="cx"> void add(PassRefPtr<HTMLOptionElement>, ExceptionCode&);
</span><span class="cx"> void add(PassRefPtr<HTMLOptionElement>, int index, ExceptionCode&);
</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->isPluginElement()) {
</span><span class="cx"> HTMLPlugInElement* plugInElement = toHTMLPlugInElement(node);
</span><span class="cx"> if (plugInElement->isPlugInImageElement()) {
</span><del>- HTMLPlugInImageElement* plugInImageElement = toHTMLPlugInImageElement(node);
- const URL& loadedURL = plugInImageElement->loadedUrl();
- String otherMimeType = plugInImageElement->loadedMimeType();
</del><ins>+ HTMLPlugInImageElement& plugInImageElement = downcast<HTMLPlugInImageElement>(*node);
+ const URL& loadedURL = plugInImageElement.loadedUrl();
+ String otherMimeType = plugInImageElement.loadedMimeType();
</ins><span class="cx"> if (plugInOrigin == loadedURL.host() && mimeType == otherMimeType)
</span><del>- plugInList.append(plugInImageElement);
</del><ins>+ plugInList.append(&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 >= 0);
</span><span class="cx"> if (listIndex < 0)
</span><span class="cx"> return false;
</span><del>- HTMLOptionElement* option = toHTMLOptionElement(listItems()[listIndex]);
- return !listIndex && option->value().isEmpty();
</del><ins>+ HTMLOptionElement& option = downcast<HTMLOptionElement>(*listItems()[listIndex]);
+ return !listIndex && 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& option = toHTMLOptionElement(*item);
</del><ins>+ HTMLOptionElement& option = downcast<HTMLOptionElement>(*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<HTMLOptionElement>(*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<HTMLElement*>& items = listItems();
</span><span class="cx"> for (unsigned i = 0; i < items.size(); ++i) {
</span><span class="cx"> HTMLElement* element = items[i];
</span><del>- m_lastOnChangeSelection.append(isHTMLOptionElement(element) && toHTMLOptionElement(element)->selected());
</del><ins>+ m_lastOnChangeSelection.append(isHTMLOptionElement(element) && downcast<HTMLOptionElement>(element)->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<HTMLElement*>& items = listItems();
</span><span class="cx"> for (unsigned i = 0; i < items.size(); ++i) {
</span><span class="cx"> HTMLElement* element = items[i];
</span><del>- m_cachedStateForActiveSelection.append(isHTMLOptionElement(element) && toHTMLOptionElement(element)->selected());
</del><ins>+ m_cachedStateForActiveSelection.append(isHTMLOptionElement(element) && downcast<HTMLOptionElement>(element)->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<HTMLElement*>& items = listItems();
</span><span class="cx"> for (unsigned i = 0; i < items.size(); ++i) {
</span><span class="cx"> HTMLElement* element = items[i];
</span><del>- if (!isHTMLOptionElement(element) || toHTMLOptionElement(element)->isDisabledFormControl())
</del><ins>+ if (!isHTMLOptionElement(element) || downcast<HTMLOptionElement>(*element).isDisabledFormControl())
</ins><span class="cx"> continue;
</span><span class="cx">
</span><span class="cx"> if (i >= start && i <= end)
</span><del>- toHTMLOptionElement(element)->setSelectedState(m_activeSelectionState);
</del><ins>+ downcast<HTMLOptionElement>(*element).setSelectedState(m_activeSelectionState);
</ins><span class="cx"> else if (deselectOtherOptions || i >= m_cachedStateForActiveSelection.size())
</span><del>- toHTMLOptionElement(element)->setSelectedState(false);
</del><ins>+ downcast<HTMLOptionElement>(*element).setSelectedState(false);
</ins><span class="cx"> else
</span><del>- toHTMLOptionElement(element)->setSelectedState(m_cachedStateForActiveSelection[i]);
</del><ins>+ downcast<HTMLOptionElement>(*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 < items.size(); ++i) {
</span><span class="cx"> HTMLElement* element = items[i];
</span><del>- bool selected = isHTMLOptionElement(element) && toHTMLOptionElement(element)->selected();
</del><ins>+ bool selected = isHTMLOptionElement(element) && downcast<HTMLOptionElement>(*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 && !m_multiple) {
</span><del>- HTMLOptionElement* option = toHTMLOptionElement(current);
</del><ins>+ HTMLOptionElement& option = downcast<HTMLOptionElement>(*current);
</ins><span class="cx"> if (!firstOption)
</span><del>- firstOption = option;
- if (option->selected()) {
</del><ins>+ firstOption = &option;
+ if (option.selected()) {
</ins><span class="cx"> if (foundSelected)
</span><span class="cx"> foundSelected->setSelectedState(false);
</span><del>- foundSelected = option;
- } else if (m_size <= 1 && !foundSelected && !option->isDisabledFormControl()) {
- foundSelected = option;
</del><ins>+ foundSelected = &option;
+ } else if (m_size <= 1 && !foundSelected && !option.isDisabledFormControl()) {
+ foundSelected = &option;
</ins><span class="cx"> foundSelected->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 < items.size(); ++i) {
</span><span class="cx"> HTMLElement* element = items[i];
</span><span class="cx"> if (isHTMLOptionElement(element)) {
</span><del>- if (toHTMLOptionElement(element)->selected())
</del><ins>+ if (downcast<HTMLOptionElement>(*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<HTMLElement*>& 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 >= 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 < 0 || shouldDeselect)
</span><span class="cx"> setActiveSelectionEndIndex(listIndex);
</span><del>- toHTMLOptionElement(element)->setSelectedState(true);
</del><ins>+ downcast<HTMLOptionElement>(*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 < items.size(); ++i) {
</span><span class="cx"> HTMLElement* element = items[i];
</span><span class="cx"> if (element != excludeElement && isHTMLOptionElement(element))
</span><del>- toHTMLOptionElement(element)->setSelectedState(false);
</del><ins>+ downcast<HTMLOptionElement>(*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 < length; ++i) {
</span><span class="cx"> if (!isHTMLOptionElement(items[i]))
</span><span class="cx"> continue;
</span><del>- HTMLOptionElement* option = toHTMLOptionElement(items[i]);
- if (!option->selected())
</del><ins>+ HTMLOptionElement& option = downcast<HTMLOptionElement>(*items[i]);
+ if (!option.selected())
</ins><span class="cx"> continue;
</span><del>- state.append(option->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 < loopEndIndex; ++i) {
</span><span class="cx"> if (!isHTMLOptionElement(items[i]))
</span><span class="cx"> continue;
</span><del>- if (toHTMLOptionElement(items[i])->value() == value)
</del><ins>+ if (downcast<HTMLOptionElement>(*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 < itemsSize; ++i) {
</span><span class="cx"> if (!isHTMLOptionElement(items[i]))
</span><span class="cx"> continue;
</span><del>- toHTMLOptionElement(items[i])->setSelectedState(false);
</del><ins>+ downcast<HTMLOptionElement>(*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])->setSelectedState(true);
</del><ins>+ downcast<HTMLOptionElement>(*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 < 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])->setSelectedState(true);
</del><ins>+ downcast<HTMLOptionElement>(*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 < items.size(); ++i) {
</span><span class="cx"> HTMLElement* element = items[i];
</span><del>- if (isHTMLOptionElement(element) && toHTMLOptionElement(element)->selected() && !toHTMLOptionElement(element)->isDisabledFormControl()) {
- list.appendData(name, toHTMLOptionElement(element)->value());
</del><ins>+ if (isHTMLOptionElement(element) && downcast<HTMLOptionElement>(*element).selected() && !downcast<HTMLOptionElement>(*element).isDisabledFormControl()) {
+ list.appendData(name, downcast<HTMLOptionElement>(*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<HTMLElement*>& items = listItems();
</span><span class="cx"> for (unsigned i = 0; i < 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]->fastHasAttribute(selectedAttr)) {
</del><ins>+ HTMLOptionElement& option = downcast<HTMLOptionElement>(*element);
+ if (option.fastHasAttribute(selectedAttr)) {
</ins><span class="cx"> if (selectedOption && !m_multiple)
</span><span class="cx"> selectedOption->setSelectedState(false);
</span><del>- toHTMLOptionElement(element)->setSelectedState(true);
- selectedOption = toHTMLOptionElement(element);
</del><ins>+ option.setSelectedState(true);
+ selectedOption = &option;
</ins><span class="cx"> } else
</span><del>- toHTMLOptionElement(element)->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 = &option;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (!selectedOption && firstOption && !m_multiple && m_size <= 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)->selected() && multiSelect)
</del><ins>+ if (downcast<HTMLOptionElement>(*clickedElement).selected() && multiSelect)
</ins><span class="cx"> m_activeSelectionState = false;
</span><span class="cx"> if (!m_activeSelectionState)
</span><del>- toHTMLOptionElement(clickedElement)->setSelectedState(false);
</del><ins>+ downcast<HTMLOptionElement>(*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) && !toHTMLOptionElement(clickedElement)->isDisabledFormControl())
- toHTMLOptionElement(clickedElement)->setSelectedState(true);
</del><ins>+ if (isHTMLOptionElement(clickedElement) && !downcast<HTMLOptionElement>(*clickedElement).isDisabledFormControl())
+ downcast<HTMLOptionElement>(*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<HTMLElement*>& 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) && toHTMLOptionElement(element)->selected())
</del><ins>+ if (isHTMLOptionElement(element) && downcast<HTMLOptionElement>(*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<HTMLElement*>& items = listItems();
</span><span class="cx">
</span><span class="cx"> HTMLElement* element = items[index];
</span><del>- if (!isHTMLOptionElement(element) || toHTMLOptionElement(element)->isDisabledFormControl())
</del><ins>+ if (!isHTMLOptionElement(element) || downcast<HTMLOptionElement>(*element).isDisabledFormControl())
</ins><span class="cx"> return String();
</span><del>- return toHTMLOptionElement(element)->textIndentedToRespectGroupLabel();
</del><ins>+ return downcast<HTMLOptionElement>(*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 >= 0) {
</span><span class="cx"> HTMLElement* element = items[listIndex];
</span><span class="cx"> if (isHTMLOptionElement(element)) {
</span><del>- if (toHTMLOptionElement(element)->selected())
- toHTMLOptionElement(element)->setSelectedState(false);
</del><ins>+ if (downcast<HTMLOptionElement>(*element).selected())
+ downcast<HTMLOptionElement>(*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->hasTagName(detailsTag))
</span><del>- return 0;
- return toHTMLDetailsElement(mayDetails);
</del><ins>+ return nullptr;
+ return downcast<HTMLDetailsElement>(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->nextSibling()) {
</span><del>- if (child->hasTagName(captionTag))
- return toHTMLTableCaptionElement(child);
</del><ins>+ if (isHTMLTableCaptionElement(child))
+ return downcast<HTMLTableCaptionElement>(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<HTMLTableCaptionElement> newCaption, ExceptionCode& 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 && !isHTMLTableElement(parent))
</span><span class="cx"> parent = parent->parentNode();
</span><del>- return toHTMLTableElement(parent);
</del><ins>+ return downcast<HTMLTableElement>(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)->tHead()) {
</del><ins>+ if (HTMLTableSectionElement* head = downcast<HTMLTableElement>(*table).tHead()) {
</ins><span class="cx"> for (Node *row = head->firstChild(); row; row = row->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)->tFoot()) {
</del><ins>+ if (HTMLTableSectionElement* foot = downcast<HTMLTableElement>(*table).tFoot()) {
</ins><span class="cx"> for (Node *row = foot->firstChild(); row; row = row->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->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<HTMLTableRowElement>(child);
</ins><span class="cx"> if (child->hasTagName(tbodyTag)) {
</span><span class="cx"> if (auto row = childrenOfType<HTMLTableRowElement>(*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<HTMLTableRowElement>(child);
</ins><span class="cx"> if (child->hasTagName(tbodyTag)) {
</span><span class="cx"> if (auto* row = childrenOfType<HTMLTableRowElement>(*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<HTMLTableElement*>(&tableElement()), toHTMLTableRowElement(previous));
</del><ins>+ return rowAfter(const_cast<HTMLTableElement*>(&tableElement()), downcast<HTMLTableRowElement>(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<HTMLTableRowsCollection> create(HTMLTableElement&, CollectionType);
</span><span class="cx">
</span><del>- HTMLTableElement& tableElement() { return toHTMLTableElement(ownerNode()); }
- const HTMLTableElement& tableElement() const { return toHTMLTableElement(ownerNode()); }
</del><ins>+ HTMLTableElement& tableElement() { return downcast<HTMLTableElement>(ownerNode()); }
+ const HTMLTableElement& tableElement() const { return downcast<HTMLTableElement>(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<Node> clone = cloneElementWithChildren();
</span><span class="cx"> if (m_content)
</span><del>- content()->cloneChildNodes(toHTMLTemplateElement(clone.get())->content());
</del><ins>+ content()->cloneChildNodes(downcast<HTMLTemplateElement>(clone.get())->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->shadowHost();
</span><del>- return ancestor && isHTMLTextFormControlElement(*ancestor) ? toHTMLTextFormControlElement(ancestor) : nullptr;
</del><ins>+ return ancestor && isHTMLTextFormControlElement(*ancestor) ? downcast<HTMLTextFormControlElement>(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<Element> rootElement = Document::createElement(htmlTag, false);
</span><span class="cx"> appendChild(rootElement);
</span><del>- toHTMLHtmlElement(rootElement.get())->insertedByParser();
</del><ins>+ downcast<HTMLHtmlElement>(*rootElement).insertedByParser();
</ins><span class="cx">
</span><span class="cx"> frame()->injectUserScripts(InjectAtDocumentStart);
</span><span class="cx">
</span><span class="cx"> RefPtr<Element> body = Document::createElement(bodyTag, false);
</span><span class="cx"> body->setAttribute(styleAttr, "margin: 0px");
</span><span class="cx"> if (MIMETypeRegistry::isPDFMIMEType(document().loader()->responseMIMEType()))
</span><del>- toHTMLBodyElement(body.get())->setInlineStyleProperty(CSSPropertyBackgroundColor, "white", CSSPrimitiveValue::CSS_IDENT);
</del><ins>+ downcast<HTMLBodyElement>(*body).setInlineStyleProperty(CSSPropertyBackgroundColor, "white", CSSPrimitiveValue::CSS_IDENT);
</ins><span class="cx"> rootElement->appendChild(body);
</span><span class="cx">
</span><span class="cx"> RefPtr<ImageDocumentElement> 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& testNode) const
</span><span class="cx"> {
</span><del>- return isHTMLLabelElement(testNode) && toHTMLLabelElement(testNode).control() == &ownerNode();
</del><ins>+ return isHTMLLabelElement(testNode) && downcast<HTMLLabelElement>(testNode).control() == &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<Element> rootElement = document()->createElement(htmlTag, false);
</span><span class="cx"> document()->appendChild(rootElement, IGNORE_EXCEPTION);
</span><span class="cx"> document()->setCSSTarget(rootElement.get());
</span><del>- toHTMLHtmlElement(rootElement.get())->insertedByParser();
</del><ins>+ downcast<HTMLHtmlElement>(*rootElement).insertedByParser();
</ins><span class="cx">
</span><span class="cx"> if (document()->frame())
</span><span class="cx"> document()->frame()->injectUserScripts(InjectAtDocumentStart);
</span><span class="lines">@@ -98,9 +98,9 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<Element> mediaElement = document()->createElement(videoTag, false);
</span><span class="cx">
</span><del>- m_mediaElement = toHTMLVideoElement(mediaElement.get());
- m_mediaElement->setAttribute(controlsAttr, "");
- m_mediaElement->setAttribute(autoplayAttr, "");
</del><ins>+ m_mediaElement = downcast<HTMLVideoElement>(mediaElement.get());
+ m_mediaElement->setAttribute(controlsAttr, emptyAtom);
+ m_mediaElement->setAttribute(autoplayAttr, emptyAtom);
</ins><span class="cx">
</span><span class="cx"> m_mediaElement->setAttribute(nameAttr, "media");
</span><span class="cx">
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx"> m_mediaElement->setAttribute(styleAttr, elementStyle.toString());
</span><span class="cx">
</span><span class="cx"> RefPtr<Element> sourceElement = document()->createElement(sourceTag, false);
</span><del>- HTMLSourceElement& source = toHTMLSourceElement(*sourceElement);
</del><ins>+ HTMLSourceElement& source = downcast<HTMLSourceElement>(*sourceElement);
</ins><span class="cx"> source.setSrc(document()->url());
</span><span class="cx">
</span><span class="cx"> if (DocumentLoader* loader = document()->loader())
</span><span class="lines">@@ -161,22 +161,22 @@
</span><span class="cx"> static inline HTMLVideoElement* descendentVideoElement(ContainerNode& node)
</span><span class="cx"> {
</span><span class="cx"> if (isHTMLVideoElement(node))
</span><del>- return toHTMLVideoElement(&node);
</del><ins>+ return downcast<HTMLVideoElement>(&node);
</ins><span class="cx">
</span><span class="cx"> RefPtr<NodeList> nodeList = node.getElementsByTagNameNS(videoTag.namespaceURI(), videoTag.localName());
</span><span class="cx">
</span><del>- if (nodeList.get()->length() > 0)
- return toHTMLVideoElement(nodeList.get()->item(0));
</del><ins>+ if (nodeList->length() > 0)
+ return downcast<HTMLVideoElement>(nodeList->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 && !node->hasTagName(videoTag))
</del><ins>+ while (node && !isHTMLVideoElement(node))
</ins><span class="cx"> node = node->parentOrShadowHostNode();
</span><span class="cx">
</span><del>- return toHTMLVideoElement(node);
</del><ins>+ return downcast<HTMLVideoElement>(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<Element> element = Document::createElement(embedTag, false);
</span><del>- HTMLEmbedElement* embedElement = toHTMLEmbedElement(element.get());
</del><ins>+ HTMLEmbedElement& embedElement = downcast<HTMLEmbedElement>(*element);
</ins><span class="cx">
</span><del>- embedElement->setAttribute(widthAttr, "100%");
- embedElement->setAttribute(heightAttr, "100%");
- embedElement->setAttribute(nameAttr, "plugin");
- embedElement->setAttribute(srcAttr, url().string());
</del><ins>+ embedElement.setAttribute(widthAttr, "100%");
+ embedElement.setAttribute(heightAttr, "100%");
+ embedElement.setAttribute(nameAttr, "plugin");
+ 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->setAttribute(typeAttr, documentLoader->writer().mimeType());
</del><ins>+ embedElement.setAttribute(typeAttr, documentLoader->writer().mimeType());
</ins><span class="cx">
</span><del>- videoElement->parentNode()->replaceChild(embedElement, videoElement, IGNORE_EXCEPTION);
</del><ins>+ videoElement->parentNode()->replaceChild(&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<Element> rootElement = document()->createElement(htmlTag, false);
</span><span class="cx"> document()->appendChild(rootElement, IGNORE_EXCEPTION);
</span><del>- toHTMLHtmlElement(rootElement.get())->insertedByParser();
</del><ins>+ downcast<HTMLHtmlElement>(*rootElement).insertedByParser();
</ins><span class="cx">
</span><span class="cx"> if (document()->frame())
</span><span class="cx"> document()->frame()->injectUserScripts(InjectAtDocumentStart);
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<Element> embedElement = document()->createElement(embedTag, false);
</span><span class="cx">
</span><del>- m_embedElement = toHTMLEmbedElement(embedElement.get());
</del><ins>+ m_embedElement = downcast<HTMLEmbedElement>(embedElement.get());
</ins><span class="cx"> m_embedElement->setAttribute(widthAttr, "100%");
</span><span class="cx"> m_embedElement->setAttribute(heightAttr, "100%");
</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<HTMLInputElement> inputElement = toHTMLInputElement(node);
</del><ins>+ RefPtr<HTMLInputElement> inputElement = downcast<HTMLInputElement>(node);
</ins><span class="cx"> if (inputElement->form() != element().form())
</span><span class="cx"> break;
</span><span class="cx"> if (inputElement->isRadioButton() && inputElement->name() == element().name() && inputElement->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 && isHTMLInputElement(currentFocusedNode)) {
</span><del>- HTMLInputElement* focusedInput = toHTMLInputElement(currentFocusedNode);
- if (focusedInput->isRadioButton() && focusedInput->form() == element().form() && focusedInput->name() == element().name())
</del><ins>+ HTMLInputElement& focusedInput = downcast<HTMLInputElement>(*currentFocusedNode);
+ if (focusedInput.isRadioButton() && focusedInput.form() == element().form() && 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<HTMLObjectElement>(testElement).form();
</ins><span class="cx"> else
</span><span class="cx"> formElement = toHTMLFormControlElement(testElement).form();
</span><span class="cx"> if (!formElement || formElement != &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->length());
</span><span class="cx"> for (unsigned i = 0; i < options->length(); ++i) {
</span><span class="cx"> Node* node = options->item(i);
</span><del>- HTMLOptionElement* optionElement = toHTMLOptionElement(node);
- String optionValue = optionElement->value();
</del><ins>+ HTMLOptionElement& optionElement = downcast<HTMLOptionElement>(*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& task)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>- if (task.parent->hasTagName(templateTag))
- task.parent = toHTMLTemplateElement(task.parent.get())->content();
</del><ins>+ if (isHTMLTemplateElement(*task.parent))
+ task.parent = downcast<HTMLTemplateElement>(*task.parent).content();
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> if (ContainerNode* parent = task.child->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->hasTagName(templateTag))
- task.parent = toHTMLTemplateElement(task.parent.get())->content();
</del><ins>+ if (isHTMLTemplateElement(*task.parent))
+ task.parent = downcast<HTMLTemplateElement>(*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& HTMLConstructionSite::ownerDocumentForCurrentNode()
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>- if (currentNode()->hasTagName(templateTag))
- return toHTMLTemplateElement(currentElement())->content()->document();
</del><ins>+ if (isHTMLTemplateElement(currentNode()))
+ return downcast<HTMLTemplateElement>(*currentElement()).content()->document();
</ins><span class="cx"> #endif
</span><span class="cx"> return currentNode()->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<HTMLFormElement>(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& style)
</span><span class="cx"> {
</span><del>- return toHTMLSummaryElement(shadowHost())->isMainSummary() && HTMLDivElement::rendererIsNeeded(style);
</del><ins>+ return downcast<HTMLSummaryElement>(shadowHost())->isMainSummary() && 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& video = downcast<HTMLVideoElement>(*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<RefPtr<HTMLDivElement>> 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->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<HTMLMeterElement>(shadowHost());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool MeterShadowElement::rendererIsNeeded(const RenderStyle& 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<HTMLProgressElement>(shadowHost());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool ProgressShadowElement::rendererIsNeeded(const RenderStyle& 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<HTMLInputElement>(shadowHost());
</ins><span class="cx"> if (input && event->type() == eventNames().mousedownEvent && event->isMouseEvent() && toMouseEvent(event)->button() == LeftButton) {
</span><span class="cx"> input->focus();
</span><span class="cx"> input->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<HTMLInputElement> input(toHTMLInputElement(shadowHost()));
</del><ins>+ RefPtr<HTMLInputElement> input(downcast<HTMLInputElement>(shadowHost()));
</ins><span class="cx"> if (!input || input->isDisabledOrReadOnly()) {
</span><span class="cx"> if (!event->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<HTMLInputElement>(shadowHost());
</ins><span class="cx"> if (input && !input->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->isHTMLElement())
</span><del>- cssStyleSheet = toHTMLStyleElement(styleElement.get())->sheet();
</del><ins>+ cssStyleSheet = downcast<HTMLStyleElement>(*styleElement).sheet();
</ins><span class="cx"> else if (styleElement->isSVGElement())
</span><span class="cx"> cssStyleSheet = downcast<SVGStyleElement>(*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->hasTagName(HTMLNames::templateTag))
- value->setTemplateContent(buildObjectForNode(toHTMLTemplateElement(element)->content(), 0, nodesMap));
</del><ins>+ if (isHTMLTemplateElement(element))
+ value->setTemplateContent(buildObjectForNode(downcast<HTMLTemplateElement>(*element).content(), 0, nodesMap));
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> } else if (node->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& input = toHTMLInputElement(element);
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(element);
</ins><span class="cx"> if (input.isTextField()) {
</span><span class="cx"> formValues.append(std::pair<String, String>(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->hasTagName(objectTag))
</del><ins>+ if (!owner || !isHTMLObjectElement(owner))
</ins><span class="cx"> return;
</span><del>- toHTMLObjectElement(owner)->renderFallbackContent();
</del><ins>+ downcast<HTMLObjectElement>(*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->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<HTMLObjectElement>(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) && toHTMLObjectElement(ownerElement).hasFallbackContent();
</del><ins>+ bool hasFallbackContent = isHTMLObjectElement(ownerElement) && downcast<HTMLObjectElement>(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->isSubmitButton()) {
- if (HTMLFormElement* form = input->form()) {
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(*element);
+ if (input.isSubmitButton()) {
+ if (HTMLFormElement* form = input.form()) {
</ins><span class="cx"> toolTip = form->action();
</span><span class="cx"> if (form->renderer())
</span><span class="cx"> toolTipDirection = form->renderer()->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)->defaultToolTip();
</del><ins>+ toolTip = downcast<HTMLInputElement>(*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->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->renderer(); renderer; renderer = renderer->parent()) {
</span><span class="cx"> Element* element = renderer->nonPseudoElement();
</span><span class="lines">@@ -646,7 +646,7 @@
</span><span class="cx"> }
</span><span class="cx"> if ((m_dragSourceAction & DragSourceActionLink)
</span><span class="cx"> && isHTMLAnchorElement(element)
</span><del>- && toHTMLAnchorElement(element)->isLiveLink()) {
</del><ins>+ && downcast<HTMLAnchorElement>(*element).isLiveLink()) {
</ins><span class="cx"> state.type = static_cast<DragSourceAction>(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 & DragSourceActionSelection) ? startElement : 0;
</del><ins>+ return (state.type & DragSourceActionSelection) ? startElement : nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static CachedImage* getCachedImage(Element& 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 && isHTMLInputElement(node) && toHTMLInputElement(node)->isImageButton();
</del><ins>+ return node && isHTMLInputElement(node) && downcast<HTMLInputElement>(*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->imageElement());
- startingRect = virtualRectForAreaElementAndDirection(area, direction);
</del><ins>+ HTMLAreaElement& area = downcast<HTMLAreaElement>(*focusedElement);
+ container = scrollableEnclosingBoxOrParentFrameForNodeInDirection(direction, area.imageElement());
+ startingRect = virtualRectForAreaElementAndDirection(&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& 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& pluginElement = toHTMLPlugInImageElement(element);
</del><ins>+ HTMLPlugInImageElement& pluginElement = downcast<HTMLPlugInImageElement>(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& pluginElement = toHTMLPlugInImageElement(element);
</del><ins>+ HTMLPlugInImageElement& pluginElement = downcast<HTMLPlugInImageElement>(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& pluginElement = toHTMLPlugInImageElement(element);
</del><ins>+ HTMLPlugInImageElement& pluginElement = downcast<HTMLPlugInImageElement>(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)->inlineStyle(), document);
</span><span class="cx">
</span><span class="cx"> if (isHTMLImageElement(element)) {
</span><del>- HTMLImageElement* imageElement = toHTMLImageElement(element);
- URL url = document->completeURL(imageElement->fastGetAttribute(HTMLNames::srcAttr));
- CachedImage* cachedImage = imageElement->cachedImage();
- addImageToResources(cachedImage, imageElement->renderer(), url);
- } else if (element->hasTagName(HTMLNames::linkTag)) {
- HTMLLinkElement* linkElement = toHTMLLinkElement(element);
- if (CSSStyleSheet* sheet = linkElement->sheet()) {
- URL url = document->completeURL(linkElement->getAttribute(HTMLNames::hrefAttr));
</del><ins>+ HTMLImageElement& imageElement = downcast<HTMLImageElement>(*element);
+ URL url = document->completeURL(imageElement.fastGetAttribute(HTMLNames::srcAttr));
+ CachedImage* cachedImage = imageElement.cachedImage();
+ addImageToResources(cachedImage, imageElement.renderer(), url);
+ } else if (isHTMLLinkElement(element)) {
+ HTMLLinkElement& linkElement = downcast<HTMLLinkElement>(*element);
+ if (CSSStyleSheet* sheet = linkElement.sheet()) {
+ URL url = document->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)->sheet())
</del><ins>+ if (CSSStyleSheet* sheet = downcast<HTMLStyleElement>(*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->isElementNode());
</span><span class="cx">
</span><span class="cx"> if (isHTMLAreaElement(node)) {
</span><del>- HTMLAreaElement* area = toHTMLAreaElement(node);
- HTMLImageElement* image = area->imageElement();
</del><ins>+ HTMLAreaElement& area = downcast<HTMLAreaElement>(*node);
+ HTMLImageElement* image = area.imageElement();
</ins><span class="cx"> if (!image || !image->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(&area, direction);
</ins><span class="cx"> } else {
</span><span class="cx"> if (!node->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() && node != hitTestResult.innerNonSharedNode() && node->hasTagName(HTMLNames::areaTag))
- *nodeBounds = snappedIntRect(toHTMLAreaElement(node)->computeRect(hitTestResult.innerNonSharedNode()->renderer()));
</del><ins>+ if (node == hitTestResult.innerNode() && node != hitTestResult.innerNonSharedNode() && isHTMLAreaElement(node))
+ *nodeBounds = snappedIntRect(downcast<HTMLAreaElement>(*node).computeRect(hitTestResult.innerNonSharedNode()->renderer()));
</ins><span class="cx"> else if (node && node->renderer())
</span><span class="cx"> *nodeBounds = node->renderer()->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 "RenderBlockFlow.h"
</span><span class="cx"> #include "RenderImage.h"
</span><span class="cx"> #include "RenderInline.h"
</span><ins>+#include "SVGAElement.h"
+#include "SVGImageElement.h"
+#include "SVGNames.h"
</ins><span class="cx"> #include "Scrollbar.h"
</span><span class="cx"> #include "ShadowRoot.h"
</span><del>-#include "SVGImageElement.h"
-#include "SVGNames.h"
</del><span class="cx"> #include "UserGestureIndicator.h"
</span><span class="cx"> #include "XLinkNames.h"
</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->fastGetAttribute(altAttr), m_innerNonSharedNode.get());
</del><ins>+ if (isHTMLImageElement(*m_innerNonSharedNode)) {
+ HTMLImageElement& image = downcast<HTMLImageElement>(*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->alt(), m_innerNonSharedNode.get());
</del><ins>+ if (isHTMLInputElement(*m_innerNonSharedNode)) {
+ HTMLInputElement& input = downcast<HTMLInputElement>(*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->hasTagName(embedTag) && !m_innerNonSharedNode->hasTagName(objectTag))
</del><ins>+ if (!isHTMLEmbedElement(*m_innerNonSharedNode) && !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->document().completeURL(stripLeadingAndTrailingHTMLSpaces(element->url()));
</del><ins>+ HTMLPlugInImageElement& element = downcast<HTMLPlugInImageElement>(*m_innerNonSharedNode);
+ URL url = m_innerNonSharedNode->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->serviceType() == "application/pdf" || (element->serviceType().isEmpty() && url.path().lower().endsWith(".pdf")))
</del><ins>+ if (element.serviceType() == "application/pdf" || (element.serviceType().isEmpty() && url.path().endsWith(".pdf", 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 && isHTMLVideoElement(mediaElt)) {
- HTMLVideoElement* videoElt = toHTMLVideoElement(mediaElt);
- if (!videoElt->isFullscreen() && mediaElt->supportsFullscreen()) {
</del><ins>+ HTMLMediaElement* mediaElement(this->mediaElement());
+ if (mediaElement && isHTMLVideoElement(mediaElement)) {
+ HTMLVideoElement& videoElement = downcast<HTMLVideoElement>(*mediaElement);
+ if (!videoElement.isFullscreen() && mediaElement->supportsFullscreen()) {
</ins><span class="cx"> UserGestureIndicator indicator(DefinitelyProcessingUserGesture);
</span><del>- videoElt->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->controls();
</del><ins>+ if (HTMLMediaElement* mediaElement = this->mediaElement())
+ return mediaElement->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())->isLiveLink();
</del><ins>+ if (isHTMLAnchorElement(*m_innerURLElement))
+ return downcast<HTMLAnchorElement>(*m_innerURLElement).isLiveLink();
</ins><span class="cx">
</span><del>- if (m_innerURLElement->hasTagName(SVGNames::aTag))
</del><ins>+ if (isSVGAElement(*m_innerURLElement))
</ins><span class="cx"> return m_innerURLElement->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())->isTextField();
</del><ins>+ if (isHTMLInputElement(*m_innerNonSharedNode))
+ return downcast<HTMLInputElement>(*m_innerNonSharedNode).isTextField();
</ins><span class="cx">
</span><span class="cx"> return m_innerNonSharedNode->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& input = toHTMLInputElement(formControlElement());
</del><ins>+ HTMLInputElement& input = downcast<HTMLInputElement>(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->hasTagName(olTag)) {
- value = toHTMLOListElement(element)->start();
</del><ins>+ if (isHTMLOListElement(element)) {
+ value = downcast<HTMLOListElement>(*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<HTMLPlugInImageElement>(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 && newSize.width() >= oldSize.width() && newSize.height() >= oldSize.height()) {
</span><span class="cx"> HTMLFrameOwnerElement& element = frameOwnerElement();
</span><span class="cx"> if (element.isPluginElement() && toHTMLPlugInElement(element).isPlugInImageElement()) {
</span><del>- HTMLPlugInImageElement& plugInImageElement = toHTMLPlugInImageElement(element);
</del><ins>+ HTMLPlugInImageElement& plugInImageElement = downcast<HTMLPlugInImageElement>(element);
</ins><span class="cx"> if (plugInImageElement.displayState() > HTMLPlugInElement::DisplayingSnapshot && 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& fieldSetElement() const { return toHTMLFieldSetElement(nodeForNonAnonymous()); }
</del><ins>+ HTMLFieldSetElement& fieldSetElement() const { return downcast<HTMLFieldSetElement>(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& RenderFileUploadControl::inputElement() const
</span><span class="cx"> {
</span><del>- return toHTMLInputElement(nodeForNonAnonymous());
</del><ins>+ return downcast<HTMLInputElement>(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()->firstChild();
</span><del>- return buttonNode && buttonNode->isHTMLElement() && isHTMLInputElement(buttonNode) ? toHTMLInputElement(buttonNode) : 0;
</del><ins>+ return buttonNode && buttonNode->isHTMLElement() && isHTMLInputElement(buttonNode) ? downcast<HTMLInputElement>(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& RenderFrame::frameElement() const
</span><span class="cx"> {
</span><del>- return toHTMLFrameElement(RenderFrameBase::frameOwnerElement());
</del><ins>+ return downcast<HTMLFrameElement>(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& RenderFrameSet::frameSetElement() const
</span><span class="cx"> {
</span><del>- return toHTMLFrameSetElement(nodeForNonAnonymous());
</del><ins>+ return downcast<HTMLFrameSetElement>(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& RenderHTMLCanvas::canvasElement() const
</span><span class="cx"> {
</span><del>- return toHTMLCanvasElement(nodeForNonAnonymous());
</del><ins>+ return downcast<HTMLCanvasElement>(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& RenderIFrame::iframeElement() const
</span><span class="cx"> {
</span><del>- return toHTMLIFrameElement(RenderFrameBase::frameOwnerElement());
</del><ins>+ return downcast<HTMLIFrameElement>(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<HTMLImageElement>(element).hasShadowControls();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RenderImage::RenderImage(Document& document, PassRef<RenderStyle> 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->imageElement() != element())
</del><ins>+ HTMLAreaElement& areaElement = downcast<HTMLAreaElement>(*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->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->computedStyle();
</del><ins>+ RenderStyle* areaElementStyle = areaElement.computedStyle();
</ins><span class="cx"> unsigned short outlineWidth = areaElementStyle->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->isNull())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- HTMLImageElement* imageElt = (element() && isHTMLImageElement(element())) ? toHTMLImageElement(element()) : 0;
- CompositeOperator compositeOperator = imageElt ? imageElt->compositeOperator() : CompositeSourceOver;
</del><ins>+ HTMLImageElement* imageElement = (element() && isHTMLImageElement(element())) ? downcast<HTMLImageElement>(element()) : nullptr;
+ CompositeOperator compositeOperator = imageElement ? imageElement->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() && isHTMLImageElement(element()) ? toHTMLImageElement(element()) : 0;
- return i ? i->treeScope().getImageMap(i->fastGetAttribute(usemapAttr)) : 0;
</del><ins>+ HTMLImageElement* image = element() && isHTMLImageElement(element()) ? downcast<HTMLImageElement>(element()) : nullptr;
+ return image ? image->treeScope().getImageMap(image->fastGetAttribute(usemapAttr)) : nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool RenderImage::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& 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())->altText();
- else if (isHTMLImageElement(element()))
- m_altText = toHTMLImageElement(element())->altText();
</del><ins>+ if (isHTMLInputElement(*element()))
+ m_altText = downcast<HTMLInputElement>(*element()).altText();
+ else if (isHTMLImageElement(*element()))
+ m_altText = downcast<HTMLImageElement>(*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<HTMLCanvasElement>(renderer.node());
</ins><span class="cx"> CanvasRenderingContext* context = canvas->renderingContext();
</span><span class="cx"> if (!context || !context->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) && USE(CA)
</span><span class="cx"> if (!compositor().acceleratedDrawingEnabled() && renderer().isCanvas()) {
</span><del>- const HTMLCanvasElement* canvas = toHTMLCanvasElement(renderer().element());
</del><ins>+ const HTMLCanvasElement* canvas = downcast<HTMLCanvasElement>(renderer().element());
</ins><span class="cx"> if (canvas->shouldAccelerate(canvas->size()))
</span><span class="cx"> m_graphicsLayer->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() && canvasCompositingStrategy(renderer()) == CanvasAsLayerContents) {
</span><del>- const HTMLCanvasElement* canvas = toHTMLCanvasElement(renderer().element());
</del><ins>+ const HTMLCanvasElement* canvas = downcast<HTMLCanvasElement>(renderer().element());
</ins><span class="cx"> if (CanvasRenderingContext* context = canvas->renderingContext())
</span><span class="cx"> m_graphicsLayer->setContentsToPlatformLayer(context->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<HTMLCanvasElement>(renderer.element());
</ins><span class="cx"> bool isCanvasLargeEnoughToForceCompositing = canvas->size().area() >= 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& RenderListBox::selectElement() const
</span><span class="cx"> {
</span><del>- return toHTMLSelectElement(nodeForNonAnonymous());
</del><ins>+ return downcast<HTMLSelectElement>(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)->textIndentedToRespectGroupLabel();
</del><ins>+ text = downcast<HTMLOptionElement>(*element).textIndentedToRespectGroupLabel();
</ins><span class="cx"> else if (isHTMLOptGroupElement(element)) {
</span><del>- text = toHTMLOptGroupElement(element)->groupLabelText();
</del><ins>+ text = downcast<HTMLOptGroupElement>(*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)->textIndentedToRespectGroupLabel();
</del><ins>+ itemText = downcast<HTMLOptionElement>(*listItemElement).textIndentedToRespectGroupLabel();
</ins><span class="cx"> else if (isHTMLOptGroupElement(listItemElement))
</span><del>- itemText = toHTMLOptGroupElement(listItemElement)->groupLabelText();
</del><ins>+ itemText = downcast<HTMLOptGroupElement>(*listItemElement).groupLabelText();
</ins><span class="cx"> applyTextTransform(style(), itemText, ' ');
</span><span class="cx">
</span><span class="cx"> Color textColor = listItemElement->renderStyle() ? listItemElement->renderStyle()->visitedDependentColor(CSSPropertyColor) : style().visitedDependentColor(CSSPropertyColor);
</span><del>- if (isOptionElement && toHTMLOptionElement(listItemElement)->selected()) {
</del><ins>+ if (isOptionElement && downcast<HTMLOptionElement>(*listItemElement).selected()) {
</ins><span class="cx"> if (frame().selection().isFocusedAndActive() && document().focusedElement() == &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) && toHTMLOptionElement(listItemElement)->selected()) {
</del><ins>+ if (isHTMLOptionElement(listItemElement) && downcast<HTMLOptionElement>(*listItemElement).selected()) {
</ins><span class="cx"> if (frame().selection().isFocusedAndActive() && document().focusedElement() == &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 && list->hasTagName(olTag)) ? toHTMLOListElement(list) : nullptr;
</del><ins>+ HTMLOListElement* oListElement = (list && list->hasTagName(olTag)) ? downcast<HTMLOListElement>(list) : nullptr;
</ins><span class="cx"> int valueStep = 1;
</span><span class="cx"> if (oListElement && oListElement->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 && listNode->hasTagName(olTag)) ? toHTMLOListElement(listNode) : nullptr;
</del><ins>+ HTMLOListElement* oListElement = (listNode && listNode->hasTagName(olTag)) ? downcast<HTMLOListElement>(listNode) : nullptr;
</ins><span class="cx"> if (oListElement) {
</span><span class="cx"> oListElement->itemCountChanged();
</span><span class="cx"> isListReversed = oListElement->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->renderer().style().marqueeSpeed();
</span><span class="cx"> Element* element = m_layer->renderer().element();
</span><del>- if (element && element->hasTagName(marqueeTag))
- result = std::max(result, toHTMLMarqueeElement(element)->minimumDelay());
</del><ins>+ if (element && isHTMLMarqueeElement(element))
+ result = std::max(result, downcast<HTMLMarqueeElement>(*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 < numberOfItems; ++i) {
</span><del>- if (listItems[i]->hasTagName(optionTag) && toHTMLOptionElement(listItems[i])->selected())
</del><ins>+ if (isHTMLOptionElement(listItems[i]) && downcast<HTMLOptionElement>(*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& RenderMenuList::selectElement() const
</span><span class="cx"> {
</span><del>- return toHTMLSelectElement(nodeForNonAnonymous());
</del><ins>+ return downcast<HTMLSelectElement>(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)->textIndentedToRespectGroupLabel();
</del><ins>+ String text = downcast<HTMLOptionElement>(*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 >= 0 && i < size) {
</span><span class="cx"> Element* element = listItems[i];
</span><span class="cx"> if (isHTMLOptionElement(element)) {
</span><del>- text = toHTMLOptionElement(element)->textIndentedToRespectGroupLabel();
</del><ins>+ text = downcast<HTMLOptionElement>(*element).textIndentedToRespectGroupLabel();
</ins><span class="cx"> m_optionStyle = element->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)->groupLabelText();
</del><ins>+ itemString = downcast<HTMLOptGroupElement>(*element).groupLabelText();
</ins><span class="cx"> else if (isHTMLOptionElement(element))
</span><del>- itemString = toHTMLOptionElement(element)->textIndentedToRespectGroupLabel();
</del><ins>+ itemString = downcast<HTMLOptionElement>(*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 >= listItems.size())
</span><span class="cx"> return false;
</span><span class="cx"> HTMLElement* element = listItems[listIndex];
</span><del>- return isHTMLOptionElement(element) && toHTMLOptionElement(element)->selected();
</del><ins>+ return isHTMLOptionElement(element) && downcast<HTMLOptionElement>(*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<HTMLMeterElement>(element());
</ins><span class="cx">
</span><span class="cx"> ASSERT(element()->shadowHost());
</span><del>- return toHTMLMeterElement(element()->shadowHost());
</del><ins>+ return downcast<HTMLMeterElement>(element()->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<HTMLProgressElement>(element());
</ins><span class="cx">
</span><span class="cx"> ASSERT(element()->shadowHost());
</span><del>- return toHTMLProgressElement(element()->shadowHost());
</del><ins>+ return downcast<HTMLProgressElement>(element()->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& RenderSlider::element() const
</span><span class="cx"> {
</span><del>- return toHTMLInputElement(nodeForNonAnonymous());
</del><ins>+ return downcast<HTMLInputElement>(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& RenderSnapshottedPlugIn::plugInImageElement() const
</span><span class="cx"> {
</span><del>- return toHTMLPlugInImageElement(RenderEmbeddedObject::frameOwnerElement());
</del><ins>+ return downcast<HTMLPlugInImageElement>(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& RenderTextControl::textFormControlElement() const
</span><span class="cx"> {
</span><del>- return toHTMLTextFormControlElement(nodeForNonAnonymous());
</del><ins>+ return downcast<HTMLTextFormControlElement>(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& RenderTextControlMultiLine::textAreaElement() const
</span><span class="cx"> {
</span><del>- return toHTMLTextAreaElement(RenderTextControl::textFormControlElement());
</del><ins>+ return downcast<HTMLTextAreaElement>(RenderTextControl::textFormControlElement());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool RenderTextControlMultiLine::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& 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& RenderTextControlSingleLine::inputElement() const
</span><span class="cx"> {
</span><del>- return toHTMLInputElement(RenderTextControl::textFormControlElement());
</del><ins>+ return downcast<HTMLInputElement>(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->list());
</del><ins>+ HTMLDataListElement* dataList = downcast<HTMLDataListElement>(input->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->setFillColor(o.style().visitedDependentColor(CSSPropertyColor), ColorSpaceDeviceRGB);
</span><span class="cx"> for (unsigned i = 0; Node* node = options->item(i); i++) {
</span><span class="cx"> ASSERT(isHTMLOptionElement(node));
</span><del>- HTMLOptionElement* optionElement = toHTMLOptionElement(node);
- String value = optionElement->value();
</del><ins>+ HTMLOptionElement& optionElement = downcast<HTMLOptionElement>(*node);
+ String value = optionElement.value();
</ins><span class="cx"> if (!input->isValidValue(value))
</span><span class="cx"> continue;
</span><span class="cx"> double parsedValue = parseToDoubleForNumberType(input->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() && toHTMLSelectElement(box.node())->multiple()) {
</del><ins>+ if (box.isMenuList() && downcast<HTMLSelectElement>(box.node())->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->search();
</span><span class="cx">
</span><del>- if (!input->isDisabledFormControl() && (input->isTextFormControl() && !toHTMLTextFormControlElement(input)->isReadOnly()))
</del><ins>+ if (!input->isDisabledFormControl() && (input->isTextFormControl() && !downcast<HTMLTextFormControlElement>(*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->isPlugInImageElement())
</span><span class="cx"> return true;
</span><span class="cx">
</span><del>- HTMLPlugInImageElement* plugInImageElement = toHTMLPlugInImageElement(plugInElement);
</del><ins>+ HTMLPlugInImageElement& plugInImageElement = downcast<HTMLPlugInImageElement>(*plugInElement);
</ins><span class="cx">
</span><del>- Image* snapshot = plugInImageElement->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->renderer());
</del><ins>+ RenderSnapshottedPlugIn* plugInRenderer = toRenderSnapshottedPlugIn(plugInImageElement.renderer());
</ins><span class="cx"> FloatPoint snapshotAbsPos = plugInRenderer->localToAbsolute();
</span><span class="cx"> snapshotAbsPos.move(plugInRenderer->borderLeft() + plugInRenderer->paddingLeft(), plugInRenderer->borderTop() + plugInRenderer->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& RenderVideo::videoElement() const
</span><span class="cx"> {
</span><del>- return toHTMLVideoElement(RenderMedia::mediaElement());
</del><ins>+ return downcast<HTMLVideoElement>(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->node();
</span><span class="cx"> if (node && isHTMLImageElement(node)) {
</span><del>- const AtomicString& urlString = toHTMLImageElement(node)->imageSourceURL();
</del><ins>+ const AtomicString& urlString = downcast<HTMLImageElement>(*node).imageSourceURL();
</ins><span class="cx"> URL url = node->document().completeURL(urlString);
</span><span class="cx"> imageForContainer->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="SVGUnknownElement"
</span><span class="cx"> fallbackJSInterfaceName="SVGElement"
</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 && isHTMLTextFormControlElement(*element)) {
</span><del>- const HTMLTextFormControlElement& textFormControlElement = toHTMLTextFormControlElement(*element);
</del><ins>+ const HTMLTextFormControlElement& textFormControlElement = downcast<HTMLTextFormControlElement>(*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->toInputElement())
</span><span class="cx"> return inputElement->lastChangeWasUserEdit();
</span><span class="cx">
</span><del>- // FIXME: We should be using hasTagName instead but Windows port doesn't link QualifiedNames properly.
- if (textField->tagName() == "TEXTAREA")
- return toHTMLTextAreaElement(textField)->lastChangeWasUserEdit();
</del><ins>+ if (isHTMLTextAreaElement(textField))
+ return downcast<HTMLTextAreaElement>(*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->isDocumentNode())
</span><span class="cx"> document = toDocument(node);
</span><del>- else if (node->hasTagName(HTMLNames::iframeTag))
- document = toHTMLIFrameElement(node)->contentDocument();
</del><ins>+ else if (isHTMLIFrameElement(node))
+ document = downcast<HTMLIFrameElement>(*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& select = downcast<HTMLSelectElement>(*node);
</ins><span class="cx">
</span><del>- auto renderer = select->renderer();
</del><ins>+ auto renderer = select.renderer();
</ins><span class="cx"> if (!renderer->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->hasTagName(HTMLNames::templateTag))
- pushCurrentNode(toHTMLTemplateElement(newElement.get())->content());
</del><ins>+ if (isHTMLTemplateElement(*newElement))
+ pushCurrentNode(downcast<HTMLTemplateElement>(*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->hasTagName(HTMLNames::htmlTag))
- toHTMLHtmlElement(newElement.get())->insertedByParser();
</del><ins>+ if (isHTMLHtmlElement(*newElement))
+ downcast<HTMLHtmlElement>(*newElement).insertedByParser();
</ins><span class="cx">
</span><span class="cx"> if (!m_parsingFragment && isFirstElement && document()->frame())
</span><span class="cx"> document()->frame()->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 <cdumez@apple.com>
+
+ Use downcast<HTML*Element>() instead of toHTML*Element()
+ https://bugs.webkit.org/show_bug.cgi?id=137007
+
+ Reviewed by Benjamin Poulain.
+
+ Use downcast<HTML*Element>() instead of toHTML*Element().
+
+ * WebCoreSupport/WebChromeClientIOS.mm:
+ (WebChromeClientIOS::focusedElementChanged):
+
</ins><span class="cx"> 2014-09-17 Daniel Bates <dabates@apple.com>
</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->isText())
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*element);
+ if (!inputElement.isText())
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- CallFormDelegate(webView(), @selector(didFocusTextField:inFrame:), kit(inputElement), kit(inputElement->document().frame()));
</del><ins>+ CallFormDelegate(webView(), @selector(didFocusTextField:inFrame:), kit(&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 <cdumez@apple.com>
+
+ Use downcast<HTML*Element>() instead of toHTML*Element()
+ https://bugs.webkit.org/show_bug.cgi?id=137007
+
+ Reviewed by Benjamin Poulain.
+
+ Use downcast<HTML*Element>() 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 <cdumez@apple.com>
</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))->setAutofilled(autofilled);
</del><ins>+ downcast<HTMLInputElement>(core((DOMElement *)self))->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->isText())
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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->document().frame()));
</del><ins>+ CallFormDelegate(m_webView, @selector(didFocusTextField:inFrame:), kit(&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<HTMLInputElement>(element));
</ins><span class="cx"> FormDelegateLog(inputElement);
</span><span class="cx"> CallFormDelegate(m_webView, @selector(textFieldDidBeginEditing:inFrame:), inputElement, kit(element->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<HTMLInputElement>(element));
</ins><span class="cx"> FormDelegateLog(inputElement);
</span><span class="cx"> CallFormDelegate(m_webView, @selector(textFieldDidEndEditing:inFrame:), inputElement, kit(element->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<HTMLInputElement>(element));
</ins><span class="cx"> FormDelegateLog(inputElement);
</span><span class="cx"> CallFormDelegate(m_webView, @selector(textDidChangeInTextField:inFrame:), inputElement, kit(element->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<HTMLInputElement>(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->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<HTMLInputElement>(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->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<HTMLTextAreaElement>(element));
</ins><span class="cx"> FormDelegateLog(textAreaElement);
</span><span class="cx"> CallFormDelegate(m_webView, @selector(textDidChangeInTextArea:inFrame:), textAreaElement, kit(element->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 && isHTMLInputElement(node) ? toHTMLInputElement(node) : 0;
</del><ins>+ return node && isHTMLInputElement(node) ? downcast<HTMLInputElement>(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 <cdumez@apple.com>
+
+ Use downcast<HTML*Element>() instead of toHTML*Element()
+ https://bugs.webkit.org/show_bug.cgi?id=137007
+
+ Reviewed by Benjamin Poulain.
+
+ Use downcast<HTML*Element>() 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 <cdumez@apple.com>
</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)->url()).release();
</del><ins>+ *result = BString(downcast<HTMLDocument>(m_document)->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->isHTMLDocument())
</span><span class="cx"> return E_FAIL;
</span><span class="cx">
</span><del>- HTMLDocument* htmlDoc = toHTMLDocument(m_document);
</del><ins>+ HTMLDocument& htmlDoc = downcast<HTMLDocument>(*m_document);
</ins><span class="cx"> COMPtr<IDOMElement> domElement;
</span><del>- domElement.adoptRef(DOMHTMLElement::createInstance(htmlDoc->body()));
</del><ins>+ domElement.adoptRef(DOMHTMLElement::createInstance(htmlDoc.body()));
</ins><span class="cx"> if (domElement)
</span><span class="cx"> return domElement->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->isHTMLDocument())
</span><span class="cx"> return E_FAIL;
</span><span class="cx">
</span><del>- HTMLDocument* htmlDoc = toHTMLDocument(m_document);
- RefPtr<HTMLCollection> forms = htmlDoc->forms();
</del><ins>+ HTMLDocument& htmlDoc = downcast<HTMLDocument>(*m_document);
+ RefPtr<HTMLCollection> 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 && isHTMLFormElement(m_element));
</span><del>- WTF::String actionString = toHTMLFormElement(m_element)->action();
</del><ins>+ WTF::String actionString = downcast<HTMLFormElement>(*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 && isHTMLFormElement(m_element));
</span><del>- WTF::String methodString = toHTMLFormElement(m_element)->method();
</del><ins>+ WTF::String methodString = downcast<HTMLFormElement>(*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& selectElement = downcast<HTMLSelectElement>(*m_element);
</ins><span class="cx">
</span><del>- if (!selectElement->options())
</del><ins>+ if (!selectElement.options())
</ins><span class="cx"> return E_FAIL;
</span><span class="cx">
</span><del>- *result = 0;
- RefPtr<HTMLOptionsCollection> options = selectElement->options();
</del><ins>+ *result = nullptr;
+ RefPtr<HTMLOptionsCollection> 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& selectElement = downcast<HTMLSelectElement>(*m_element);
</ins><span class="cx">
</span><del>- if (index >= selectElement->length())
</del><ins>+ if (index >= selectElement.length())
</ins><span class="cx"> return E_FAIL;
</span><span class="cx">
</span><del>- selectElement->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& optionElement = downcast<HTMLOptionElement>(*m_element);
</ins><span class="cx">
</span><del>- *result = BString(optionElement->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& optionElement = downcast<HTMLOptionElement>(*m_element);
</ins><span class="cx">
</span><del>- *result = BString(optionElement->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 && isHTMLInputElement(m_element));
</span><del>- HTMLInputElement* inputElement = toHTMLInputElement(m_element);
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*m_element);
</ins><span class="cx"> COMPtr<IDOMElement> domElement;
</span><del>- domElement.adoptRef(DOMHTMLElement::createInstance(inputElement->form()));
</del><ins>+ domElement.adoptRef(DOMHTMLElement::createInstance(inputElement.form()));
</ins><span class="cx"> if (domElement)
</span><span class="cx"> return domElement->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 && isHTMLInputElement(m_element));
</span><del>- HTMLInputElement* inputElement = toHTMLInputElement(m_element);
- *result = inputElement->isDisabledFormControl() ? TRUE : FALSE;
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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 && isHTMLInputElement(m_element));
</span><del>- HTMLInputElement* inputElement = toHTMLInputElement(m_element);
- *result = inputElement->isReadOnly() ? TRUE : FALSE;
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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 && isHTMLInputElement(m_element));
</span><del>- HTMLInputElement* inputElement = toHTMLInputElement(m_element);
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*m_element);
</ins><span class="cx"> WTF::String typeString(type, SysStringLen(type));
</span><del>- inputElement->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 && isHTMLInputElement(m_element));
</span><del>- HTMLInputElement* inputElement = toHTMLInputElement(m_element);
- WTF::String valueString = inputElement->value();
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*m_element);
+ WTF::String valueString = inputElement.value();
</ins><span class="cx"> *result = BString(valueString).release();
</span><span class="cx"> if (valueString.length() && !*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 && isHTMLInputElement(m_element));
</span><del>- HTMLInputElement* inputElement = toHTMLInputElement(m_element);
- inputElement->setValue(String((UChar*) value, SysStringLen(value)));
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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->setValueForUser(String(static_cast<UChar*>(value), SysStringLen(value)));
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*m_element);
+ inputElement.setValueForUser(String(static_cast<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 DOMHTMLInputElement::select( void)
</span><span class="cx"> {
</span><span class="cx"> ASSERT(m_element && isHTMLInputElement(m_element));
</span><del>- HTMLInputElement* inputElement = toHTMLInputElement(m_element);
- inputElement->select();
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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 && isHTMLInputElement(m_element));
</span><del>- HTMLInputElement* inputElement = toHTMLInputElement(m_element);
- inputElement->setSelectionStart(start);
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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 && isHTMLInputElement(m_element));
</span><del>- HTMLInputElement* inputElement = toHTMLInputElement(m_element);
- *start = inputElement->selectionStart();
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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 && isHTMLInputElement(m_element));
</span><del>- HTMLInputElement* inputElement = toHTMLInputElement(m_element);
- inputElement->setSelectionEnd(end);
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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 && isHTMLInputElement(m_element));
</span><del>- HTMLInputElement* inputElement = toHTMLInputElement(m_element);
- *end = inputElement->selectionEnd();
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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->isTextField() ? TRUE : FALSE;
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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& inputElement = downcast<HTMLInputElement>(*m_element);
</ins><span class="cx">
</span><del>- String newValue = inputElement->value();
</del><ins>+ String newValue = inputElement.value();
</ins><span class="cx"> String webCoreReplacementString(static_cast<UChar*>(replacementString), SysStringLen(replacementString));
</span><span class="cx"> newValue.replace(startTarget, endTarget - startTarget, webCoreReplacementString);
</span><del>- inputElement->setValue(newValue);
- inputElement->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->selectionStart();
- *end = inputElement->selectionEnd();
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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->setAutofilled(!!filled);
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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->isAutofilled() ? TRUE : FALSE;
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*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(&textField)) || !textField)
</span><span class="cx"> return S_OK;
</span><del>- if (toHTMLInputElement(m_element)->lastChangeWasUserEdit())
</del><ins>+ if (downcast<HTMLInputElement>(*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 && isHTMLTextAreaElement(m_element));
</span><del>- HTMLTextAreaElement* textareaElement = toHTMLTextAreaElement(m_element);
</del><ins>+ HTMLTextAreaElement& textareaElement = downcast<HTMLTextAreaElement>(*m_element);
</ins><span class="cx"> COMPtr<IDOMElement> domElement;
</span><del>- domElement.adoptRef(DOMHTMLElement::createInstance(textareaElement->form()));
</del><ins>+ domElement.adoptRef(DOMHTMLElement::createInstance(textareaElement.form()));
</ins><span class="cx"> if (domElement)
</span><span class="cx"> return domElement->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 && isHTMLTextAreaElement(m_element));
</span><del>- HTMLTextAreaElement* textareaElement = toHTMLTextAreaElement(m_element);
- WTF::String valueString = textareaElement->value();
</del><ins>+ HTMLTextAreaElement& textareaElement = downcast<HTMLTextAreaElement>(*m_element);
+ WTF::String valueString = textareaElement.value();
</ins><span class="cx"> *result = BString(valueString).release();
</span><span class="cx"> if (valueString.length() && !*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 && isHTMLTextAreaElement(m_element));
</span><del>- HTMLTextAreaElement* textareaElement = toHTMLTextAreaElement(m_element);
- textareaElement->setValue(String((UChar*) value, SysStringLen(value)));
</del><ins>+ HTMLTextAreaElement& textareaElement = downcast<HTMLTextAreaElement>(*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 && isHTMLTextAreaElement(m_element));
</span><del>- HTMLTextAreaElement* textareaElement = toHTMLTextAreaElement(m_element);
- textareaElement->select();
</del><ins>+ HTMLTextAreaElement& textareaElement = downcast<HTMLTextAreaElement>(*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 && isHTMLTextAreaElement(m_element));
</span><del>- if (toHTMLTextAreaElement(m_element)->lastChangeWasUserEdit())
</del><ins>+ if (downcast<HTMLTextAreaElement>(*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<IWebFrame> webFrame = kit(iFrameElement->contentFrame());
</del><ins>+ HTMLIFrameElement& iFrameElement = downcast<HTMLIFrameElement>(*m_element);
+ COMPtr<IWebFrame> 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->QueryInterface(IID_IDOMElementPrivate, (void**) &elePriv);
</span><span class="lines">@@ -203,15 +203,15 @@
</span><span class="cx"> hr = elePriv->coreElement((void**)&ele);
</span><span class="cx"> elePriv->Release();
</span><span class="cx"> if (SUCCEEDED(hr) && ele && isHTMLFormElement(ele))
</span><del>- return toHTMLFormElement(ele);
</del><ins>+ return downcast<HTMLFormElement>(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->QueryInterface(IID_IDOMElementPrivate, (void**) &elePriv);
</span><span class="lines">@@ -220,9 +220,9 @@
</span><span class="cx"> hr = elePriv->coreElement((void**)&ele);
</span><span class="cx"> elePriv->Release();
</span><span class="cx"> if (SUCCEEDED(hr) && ele && isHTMLInputElement(ele))
</span><del>- return toHTMLInputElement(ele);
</del><ins>+ return downcast<HTMLInputElement>(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 <cdumez@apple.com>
+
+ Use downcast<HTML*Element>() instead of toHTML*Element()
+ https://bugs.webkit.org/show_bug.cgi?id=137007
+
+ Reviewed by Benjamin Poulain.
+
+ Use downcast<HTML*Element>() 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 <jer.noble@apple.com>
</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& 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())->setValueForUser(value);
</del><ins>+ downcast<HTMLInputElement>(*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())->isAutofilled();
</del><ins>+ return downcast<HTMLInputElement>(*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())->setAutofilled(filled);
</del><ins>+ downcast<HTMLInputElement>(*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())->lastChangeWasUserEdit();
</del><ins>+ return downcast<HTMLInputElement>(*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())->lastChangeWasUserEdit();
</del><ins>+ return downcast<HTMLTextAreaElement>(*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()) && toHTMLInputElement(m_node.get())->isText();
</del><ins>+ return isHTMLInputElement(*m_node) && downcast<HTMLInputElement>(*m_node).isText();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PassRefPtr<InjectedBundleNodeHandle> InjectedBundleNodeHandle::htmlTableCellElementCellAbove()
</span><span class="cx"> {
</span><span class="cx"> if (!m_node->hasTagName(tdTag))
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><del>- return getOrCreate(static_cast<HTMLTableCellElement*>(m_node.get())->cellAbove());
</del><ins>+ return getOrCreate(static_cast<HTMLTableCellElement&>(*m_node).cellAbove());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PassRefPtr<WebFrame> InjectedBundleNodeHandle::documentFrame()
</span><span class="lines">@@ -276,10 +276,10 @@
</span><span class="cx">
</span><span class="cx"> PassRefPtr<WebFrame> InjectedBundleNodeHandle::htmlIFrameElementContentFrame()
</span><span class="cx"> {
</span><del>- if (!m_node->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())->contentFrame();
</del><ins>+ Frame* frame = downcast<HTMLIFrameElement>(*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())->value();
</del><ins>+ choiceAnnotation().stringValue = downcast<HTMLSelectElement>(element())->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->setInlineStyleProperty(CSSPropertyTextAlign, cssAlignmentValueForNSTextAlignment(textAnnotation.alignment));
</span><span class="cx">
</span><span class="cx"> if (isMultiline)
</span><del>- toHTMLTextAreaElement(styledElement)->setValue(textAnnotation.stringValue);
</del><ins>+ downcast<HTMLTextAreaElement>(styledElement)->setValue(textAnnotation.stringValue);
</ins><span class="cx"> else
</span><del>- toHTMLInputElement(styledElement)->setValue(textAnnotation.stringValue);
</del><ins>+ downcast<HTMLInputElement>(styledElement)->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())->value();
</del><ins>+ return downcast<HTMLTextFormControlElement>(element())->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<HTMLPlugInImageElement>(m_pluginElement.get());
</ins><span class="cx"> m_didPlugInStartOffScreen = !m_webPage->plugInIntersectsSearchRect(*plugInImageElement);
</span><span class="cx"> #endif
</span><span class="cx"> m_plugin->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<HTMLPlugInImageElement>(m_pluginElement.get());
</ins><span class="cx"> bool isPlugInOnScreen = m_webPage->plugInIntersectsSearchRect(*plugInImageElement);
</span><span class="cx"> bool plugInCameOnScreen = isPlugInOnScreen && 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<HTMLPlugInImageElement>(m_pluginElement.get());
</ins><span class="cx"> String pageOrigin = plugInImageElement->document().page()->mainFrame().document()->baseURL().host();
</span><span class="cx"> String pluginOrigin = plugInImageElement->loadedUrl().host();
</span><span class="cx"> String mimeType = plugInImageElement->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->isText())
</del><ins>+ HTMLInputElement& inputElement = downcast<HTMLInputElement>(*element);
+ if (!inputElement.isText())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> WebFrame* webFrame = WebFrame::fromCoreFrame(*element->document().frame());
</span><span class="cx"> ASSERT(webFrame);
</span><del>- m_page->injectedBundleFormClient().didFocusTextField(m_page, inputElement, webFrame);
</del><ins>+ m_page->injectedBundleFormClient().didFocusTextField(m_page, &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->document().frame());
</span><span class="cx"> ASSERT(webFrame);
</span><span class="cx">
</span><del>- m_page->injectedBundleFormClient().textFieldDidBeginEditing(m_page, toHTMLInputElement(element), webFrame);
</del><ins>+ m_page->injectedBundleFormClient().textFieldDidBeginEditing(m_page, downcast<HTMLInputElement>(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->document().frame());
</span><span class="cx"> ASSERT(webFrame);
</span><span class="cx">
</span><del>- m_page->injectedBundleFormClient().textFieldDidEndEditing(m_page, toHTMLInputElement(element), webFrame);
</del><ins>+ m_page->injectedBundleFormClient().textFieldDidEndEditing(m_page, downcast<HTMLInputElement>(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->document().frame());
</span><span class="cx"> ASSERT(webFrame);
</span><span class="cx">
</span><del>- m_page->injectedBundleFormClient().textDidChangeInTextField(m_page, toHTMLInputElement(element), webFrame, initiatedByUserTyping);
</del><ins>+ m_page->injectedBundleFormClient().textDidChangeInTextField(m_page, downcast<HTMLInputElement>(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->document().frame());
</span><span class="cx"> ASSERT(webFrame);
</span><span class="cx">
</span><del>- m_page->injectedBundleFormClient().textDidChangeInTextArea(m_page, toHTMLTextAreaElement(element), webFrame);
</del><ins>+ m_page->injectedBundleFormClient().textDidChangeInTextArea(m_page, downcast<HTMLTextAreaElement>(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->document().frame());
</span><span class="cx"> ASSERT(webFrame);
</span><span class="cx">
</span><del>- return m_page->injectedBundleFormClient().shouldPerformActionInTextField(m_page, toHTMLInputElement(element), toInputFieldAction(actionType), webFrame);
</del><ins>+ return m_page->injectedBundleFormClient().shouldPerformActionInTextField(m_page, downcast<HTMLInputElement>(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->document().frame());
</span><span class="cx"> ASSERT(webFrame);
</span><span class="cx">
</span><del>- m_page->injectedBundleFormClient().shouldPerformActionInTextField(m_page, toHTMLInputElement(element), toInputFieldAction(WKInputFieldActionTypeInsertDelete), webFrame);
</del><ins>+ m_page->injectedBundleFormClient().shouldPerformActionInTextField(m_page, downcast<HTMLInputElement>(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->mainFrame().loader().documentLoader()->responseURL().string();
</span><span class="cx">
</span><span class="cx"> #if ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
</span><del>- HTMLPlugInImageElement& pluginImageElement = toHTMLPlugInImageElement(*pluginElement);
</del><ins>+ HTMLPlugInImageElement& pluginImageElement = downcast<HTMLPlugInImageElement>(*pluginElement);
</ins><span class="cx"> unsigned pluginArea = 0;
</span><span class="cx"> PluginProcessType processType = pluginElement->displayState() == HTMLPlugInElement::WaitingForSnapshot && !(plugInIsPrimarySize(pluginImageElement, pluginArea) && !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->setValue(value, DispatchInputAndChangeEvent);
</del><ins>+ if (isHTMLInputElement(*m_assistedNode)) {
+ HTMLInputElement& element = downcast<HTMLInputElement>(*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->setValueAsNumber(value, ASSERT_NO_EXCEPTION, DispatchInputAndChangeEvent);
</del><ins>+ if (isHTMLInputElement(*m_assistedNode)) {
+ HTMLInputElement& element = downcast<HTMLInputElement>(*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->optionSelectedByUser(index, true, allowMultipleSelection);
</del><ins>+ HTMLSelectElement& select = downcast<HTMLSelectElement>(*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)->isReadOnlyNode();
</del><ins>+ return !downcast<HTMLTextAreaElement>(*node).isReadOnlyNode();
</ins><span class="cx"> if (isHTMLInputElement(node)) {
</span><del>- HTMLInputElement* element = toHTMLInputElement(node);
- return !element->isReadOnlyNode() && (element->isTextField() || element->isDateField() || element->isDateTimeLocalField() || element->isMonthField() || element->isTimeField());
</del><ins>+ HTMLInputElement& element = downcast<HTMLInputElement>(*node);
+ return !element.isReadOnlyNode() && (element.isTextField() || element.isDateField() || element.isDateTimeLocalField() || element.isMonthField() || element.isTimeField());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> return node->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& element = downcast<HTMLSelectElement>(*m_assistedNode);
</ins><span class="cx"> information.elementType = InputType::Select;
</span><del>- size_t count = element->listItems().size();
</del><ins>+ const Vector<HTMLElement*>& 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 < count; ++i) {
</span><del>- HTMLElement* item = element->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->text(), false, parentGroupID, option->selected(), option->fastHasAttribute(WebCore::HTMLNames::disabledAttr)));
</del><ins>+ HTMLOptionElement& option = downcast<HTMLOptionElement>(*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& group = downcast<HTMLOptGroupElement>(*item);
</ins><span class="cx"> parentGroupID++;
</span><del>- information.selectOptions.append(OptionItem(group->groupLabelText(), true, 0, false, group->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->selectedIndex();
- information.isMultiSelect = element->multiple();
- } else if (isHTMLTextAreaElement(m_assistedNode.get())) {
- HTMLTextAreaElement* element = toHTMLTextAreaElement(m_assistedNode.get());
- information.autocapitalizeType = static_cast<WebAutocapitalizeType>(element->autocapitalizeType());
- information.isAutocorrect = element->autocorrect();
</del><ins>+ information.selectedIndex = element.selectedIndex();
+ information.isMultiSelect = element.multiple();
+ } else if (isHTMLTextAreaElement(*m_assistedNode)) {
+ HTMLTextAreaElement& element = downcast<HTMLTextAreaElement>(*m_assistedNode);
+ information.autocapitalizeType = static_cast<WebAutocapitalizeType>(element.autocapitalizeType());
+ information.isAutocorrect = element.autocorrect();
</ins><span class="cx"> information.elementType = InputType::TextArea;
</span><del>- information.isReadOnly = element->isReadOnly();
- information.value = element->value();
- } else if (isHTMLInputElement(m_assistedNode.get())) {
- HTMLInputElement* element = toHTMLInputElement(m_assistedNode.get());
- HTMLFormElement* form = element->form();
</del><ins>+ information.isReadOnly = element.isReadOnly();
+ information.value = element.value();
+ } else if (isHTMLInputElement(*m_assistedNode)) {
+ HTMLInputElement& element = downcast<HTMLInputElement>(*m_assistedNode);
+ HTMLFormElement* form = element.form();
</ins><span class="cx"> if (form)
</span><span class="cx"> information.formAction = form->getURLAttribute(WebCore::HTMLNames::actionAttr);
</span><del>- information.autocapitalizeType = static_cast<WebAutocapitalizeType>(element->autocapitalizeType());
- information.isAutocorrect = element->autocorrect();
- if (element->isPasswordField())
</del><ins>+ information.autocapitalizeType = static_cast<WebAutocapitalizeType>(element.autocapitalizeType());
+ information.isAutocorrect = element.autocorrect();
+ if (element.isPasswordField())
</ins><span class="cx"> information.elementType = InputType::Password;
</span><del>- else if (element->isSearchField())
</del><ins>+ else if (element.isSearchField())
</ins><span class="cx"> information.elementType = InputType::Search;
</span><del>- else if (element->isEmailField())
</del><ins>+ else if (element.isEmailField())
</ins><span class="cx"> information.elementType = InputType::Email;
</span><del>- else if (element->isTelephoneField())
</del><ins>+ else if (element.isTelephoneField())
</ins><span class="cx"> information.elementType = InputType::Phone;
</span><del>- else if (element->isNumberField())
- information.elementType = element->getAttribute("pattern") == "\\d*" || element->getAttribute("pattern") == "[0-9]*" ? InputType::NumberPad : InputType::Number;
- else if (element->isDateTimeLocalField())
</del><ins>+ else if (element.isNumberField())
+ information.elementType = element.getAttribute("pattern") == "\\d*" || element.getAttribute("pattern") == "[0-9]*" ? InputType::NumberPad : InputType::Number;
+ else if (element.isDateTimeLocalField())
</ins><span class="cx"> information.elementType = InputType::DateTimeLocal;
</span><del>- else if (element->isDateField())
</del><ins>+ else if (element.isDateField())
</ins><span class="cx"> information.elementType = InputType::Date;
</span><del>- else if (element->isDateTimeField())
</del><ins>+ else if (element.isDateTimeField())
</ins><span class="cx"> information.elementType = InputType::DateTime;
</span><del>- else if (element->isTimeField())
</del><ins>+ else if (element.isTimeField())
</ins><span class="cx"> information.elementType = InputType::Time;
</span><del>- else if (element->isWeekField())
</del><ins>+ else if (element.isWeekField())
</ins><span class="cx"> information.elementType = InputType::Week;
</span><del>- else if (element->isMonthField())
</del><ins>+ else if (element.isMonthField())
</ins><span class="cx"> information.elementType = InputType::Month;
</span><del>- else if (element->isURLField())
</del><ins>+ else if (element.isURLField())
</ins><span class="cx"> information.elementType = InputType::URL;
</span><del>- else if (element->isText()) {
- const AtomicString& pattern = element->fastGetAttribute(HTMLNames::patternAttr);
</del><ins>+ else if (element.isText()) {
+ const AtomicString& pattern = element.fastGetAttribute(HTMLNames::patternAttr);
</ins><span class="cx"> if (pattern == "\\d*" || pattern == "[0-9]*")
</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>- && (element->getNameAttribute().contains("search") || element->getIdAttribute().contains("search") || element->fastGetAttribute(HTMLNames::titleAttr).contains("search")))
</del><ins>+ && (element.getNameAttribute().contains("search") || element.getIdAttribute().contains("search") || element.fastGetAttribute(HTMLNames::titleAttr).contains("search")))
</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->isReadOnly();
- information.value = element->value();
- information.valueAsNumber = element->valueAsNumber();
- information.title = element->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->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>