<!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>[208603] 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/208603">208603</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2016-11-11 12:16:03 -0800 (Fri, 11 Nov 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Move Node from ExceptionCode to ExceptionOr
https://bugs.webkit.org/show_bug.cgi?id=164515
Reviewed by Sam Weinig.
Source/WebCore:
* bindings/js/JSHTMLSelectElementCustom.cpp:
(WebCore::selectElementIndexSetter): Call remove instead of removeByIndex.
Was renamed now that there is no conflict.
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::insertBefore): Use ExceptionOr.
(WebCore::JSNode::replaceChild): Ditto.
(WebCore::JSNode::removeChild): Ditto.
(WebCore::JSNode::appendChild): Ditto.
* dom/Attr.cpp:
(WebCore::Attr::Attr): Take a reference.
(WebCore::Attr::create): Ditto.
(WebCore::Attr::createTextChild): Use a Ref.
(WebCore::Attr::setPrefix): Use ExceptionOr.
(WebCore::Attr::setNodeValue): Ditto.
(WebCore::Attr::attachToElement): Take a reference.
* dom/Attr.h: Updated for above. Also made setPrefix private.
* dom/CharacterData.cpp:
(WebCore::CharacterData::setNodeValue): Use ExceptionOr.
* dom/CharacterData.h: Updated for the above.
* dom/ContainerNode.cpp:
(WebCore::collectChildrenAndRemoveFromOldParent): Use ExceptionOr.
(WebCore::checkAcceptChild): Ditto.
(WebCore::checkAcceptChildGuaranteedNodeTypes): Ditto.
(WebCore::ContainerNode::ensurePreInsertionValidity): Ditto.
(WebCore::checkPreReplacementValidity): Ditto.
(WebCore::ContainerNode::insertBefore): Ditto.
(WebCore::ContainerNode::replaceChild): Ditto.
(WebCore::ContainerNode::removeChild): Ditto.
(WebCore::ContainerNode::appendChild): Ditto.
(WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck): Ditto.
(WebCore::ContainerNode::cloneChildNodes): Ditto.
(WebCore::ContainerNode::append): Ditto.
(WebCore::ContainerNode::prepend): Ditto.
* dom/ContainerNode.h: Updated for above changes.
* dom/Document.cpp:
(WebCore::Document::setTitle): Removed unneeded ASSERT_NO_EXCEPTION.
(WebCore::Document::setBodyOrFrameset): Removed unneeded ignored
exception code.
* dom/Element.cpp:
(WebCore::Element::setPrefix): Use ExceptionOr.
(WebCore::Element::setAttributeNode): Updated for changes to Attr.
(WebCore::Element::setAttributeNodeNS): Ditto.
(WebCore::Element::setOuterHTML): Use ExceptionOr.
(WebCore::Element::ensureAttr): Updated for changes to Attr.
(WebCore::Element::insertAdjacent): Use ExceptionOr.
* dom/Element.h: Updated for above.
* dom/Node.cpp:
(WebCore::Node::setNodeValue): Use ExceptionOr.
(WebCore::Node::insertBefore): Ditto.
(WebCore::Node::replaceChild): Ditto.
(WebCore::Node::removeChild): Ditto.
(WebCore::Node::appendChild): Ditto.
(WebCore::Node::convertNodesOrStringsIntoNode): Ditto.
(WebCore::Node::before): Ditto.
(WebCore::Node::after): Ditto.
(WebCore::Node::replaceWith): Ditto.
(WebCore::Node::remove): Ditto.
(WebCore::Node::cloneNodeForBindings): Ditto.
(WebCore::Node::setPrefix): Ditto.
(WebCore::Node::checkSetPrefix): Ditto.
(WebCore::Node::setTextContent): Ditto.
* dom/Node.h: Updated for above.
* dom/Node.idl: Use non-legacy exceptions.
* dom/Range.cpp:
(WebCore::Range::processContents): Use ExceptionOr.
(WebCore::processContentsBetweenOffsets): Ditto.
(WebCore::processNodes): Ditto.
(WebCore::processAncestorsAndTheirSiblings): Ditto.
(WebCore::Range::insertNode): Ditto.
(WebCore::Range::surroundContents): Ditto.
* dom/Text.cpp:
(WebCore::Text::splitText): Use ExceptionOr.
(WebCore::Text::replaceWholeText): Removed unneeded IGNORE_EXCEPTION.
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply): Removed unneeded IGNORE_EXCEPTION.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt): Ditto.
* editing/EditorCommand.cpp:
(WebCore::executeInsertNode): Use ExceptionOr.
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply): Removed unneeded IGNORE_EXCEPTION.
* editing/MergeIdenticalElementsCommand.cpp:
(WebCore::MergeIdenticalElementsCommand::doApply): Ditto.
(WebCore::MergeIdenticalElementsCommand::doUnapply): Use ExceptionOr.
* editing/RemoveNodeCommand.cpp:
(WebCore::RemoveNodeCommand::doUnapply): Removed unneeded IGNORE_EXCEPTION.
* editing/ReplaceNodeWithSpanCommand.cpp:
(WebCore::swapInNodePreservingAttributesAndChildren): Removed unneeded
ASSERT_NO_EXCEPTION.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::removeNode): Ditto.
(WebCore::ReplacementFragment::insertNodeBefore): Ditto.
(WebCore::ReplacementFragment::insertFragmentForTestRendering): Ditto.
(WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment): Ditto.
(WebCore::ReplaceSelectionCommand::insertAsListItems): Ditto.
* editing/SplitElementCommand.cpp:
(WebCore::SplitElementCommand::executeApply): Use ExceptionOr.
(WebCore::SplitElementCommand::doUnapply): Removed unneeded IGNORE_EXCEPTION.
* editing/SplitTextNodeCommand.cpp:
(WebCore::SplitTextNodeCommand::insertText1AndTrimText2): Use ExceptionOr.
* editing/WrapContentsInDummySpanCommand.cpp:
(WebCore::WrapContentsInDummySpanCommand::executeApply): Removed unneeded
IGNORE_EXCEPTION.
(WebCore::WrapContentsInDummySpanCommand::doUnapply): Ditto.
* editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::styleForSelectionStart): Removed unneeded ASSERT_NO_EXCEPTION
and IGNORE_EXCEPTION.
* editing/htmlediting.cpp:
(WebCore::createTabSpanElement): Ditto.
* editing/markup.cpp:
(WebCore::fillContainerFromString): Ditto.
(WebCore::createFragmentFromText): Ditto.
(WebCore::removeElementFromFragmentPreservingChildren): Ditto.
(WebCore::replaceChildrenWithFragment): Use ExceptionOr.
(WebCore::replaceChildrenWithText): Ditto.
* editing/ios/EditorIOS.mm:
(WebCore::Editor::WebContentReader::addFragment): Removed unneeded exception
ignoring code.
(WebCore::Editor::setDictationPhrasesAsChildOfElement): Ditto.
(WebCore::Editor::setTextAsChildOfElement): Ditto.
* html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree): Removed unneeded
ASSERT_NO_EXCEPTION.
* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::appendEntry): Removed unneeded
IGNORE_EXCEPTION.
(WebCore::FTPDirectoryDocumentParser::createTDForFilename): Ditto.
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate): Ditto.
(WebCore::FTPDirectoryDocumentParser::createBasicDocument): Ditto.
* html/FileInputType.cpp:
(WebCore::FileInputType::createShadowSubtree): Ditto.
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::setText): Removed unneeded ASSERT_NO_EXCEPTION.
* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot): Ditto.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::textToFragment): Use ExceptionOr.
(WebCore::HTMLElement::setOuterText): Ditto.
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed unneeded
ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::createMediaControls): Ditto.
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::didAddUserAgentShadowRoot): Ditto.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::createForJSConstructor): Use ExceptionOr.
(WebCore::HTMLOptionElement::setText): Removed unneeded
ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::remove): Call remove, not removeByIndex,
since we were able to change the name.
* html/HTMLOutputElement.cpp:
(WebCore::HTMLOutputElement::setTextContentInternal): Removed unneeded
ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::didAddUserAgentShadowRoot): Ditto.
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::setText): Ditto.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::add): Use ExceptionOr.
(WebCore::HTMLSelectElement::remove): Renamed from removeByIndex since
there is no conflict with remove any more.
(WebCore::HTMLSelectElement::setOption): Call remove.
* html/HTMLSelectElement.h: Updated for above.
* html/HTMLSelectElement.idl: Got rid of ImplementedAs=removeByIndex.
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::didAddUserAgentShadowRoot): Removed unneeded
ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::HTMLTableElement): Initialize data members in
class definition instead of here.
(WebCore::HTMLTableElement::caption): Simplified using childrenOfType.
(WebCore::HTMLTableElement::setCaption): Use ExceptionOr.
(WebCore::HTMLTableElement::setTHead): Ditto.
(WebCore::HTMLTableElement::setTFoot): Ditto.
(WebCore::HTMLTableElement::deleteTFoot): Removed unneeded ASSERT_NO_EXCEPTION
and IGNORE_EXCEPTION.
(WebCore::HTMLTableElement::createTBody): Ditto.
(WebCore::HTMLTableElement::deleteCaption): Ditto.
(WebCore::HTMLTableElement::insertRow): Use ExceptionOr.
* html/HTMLTableElement.h: Updated for above.
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::insertCell): Use ExceptionOr.
(WebCore::HTMLTableRowElement::deleteCell): Ditto.
* html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::insertRow): Ditto.
(WebCore::HTMLTableSectionElement::deleteRow): Ditto.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot): Removed unneeded
ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
(WebCore::HTMLTextAreaElement::setDefaultValue): Ditto.
(WebCore::HTMLTextAreaElement::updatePlaceholderText): Ditto.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setInnerTextValue): Ditto.
* html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::setText): Ditto.
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure): Ditto.
(WebCore::MediaDocument::replaceMediaElementTimerFired): Ditto.
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure): Ditto.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree): Ditto.
* html/SearchInputType.cpp:
(WebCore::SearchInputType::createShadowSubtree): Ditto.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createShadowSubtree): Ditto.
(WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
(WebCore::TextFieldInputType::createContainer): Ditto.
(WebCore::TextFieldInputType::createAutoFillButton): Ditto.
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::setMessageDOMAndStartTimer): Ditto.
(WebCore::ValidationMessage::buildBubbleTree): Ditto.
(WebCore::ValidationMessage::deleteBubbleTree): Ditto.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Ditto.
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::createTextTrackDisplay): Ditto.
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::MediaControlsApple): Initialize data members
in class definition instead of here.
(WebCore::MediaControlsApple::tryCreateControls): Use ExceptionOr.
* html/shadow/MediaControlsApple.h: Updated for above.
* html/track/VTTCue.cpp:
(WebCore::VTTCue::copyWebVTTNodeToDOMTree): Removed unneeded ASSERT_NO_EXCEPTION
and IGNORE_EXCEPTION.
(WebCore::VTTCue::getDisplayTree): Ditto.
* html/track/VTTRegion.cpp:
(WebCore::VTTRegion::appendTextTrackCueBox): Ditto.
* inspector/DOMEditor.cpp: Use ExceptionOr in action classes.
(WebCore::DOMEditor::DOMEditor): Take a reference.
(WebCore::DOMEditor::insertBefore): Use ExceptionOr.
(WebCore::DOMEditor::removeChild): Ditto.
(WebCore::DOMEditor::setAttribute): Ditto.
(WebCore::DOMEditor::removeAttribute): Ditto.
(WebCore::DOMEditor::setOuterHTML): Ditto.
(WebCore::DOMEditor::replaceWholeText): Ditto.
(WebCore::DOMEditor::replaceChild): Ditto.
(WebCore::DOMEditor::setNodeValue): Ditto.
(WebCore::populateErrorString): Ditto.
* inspector/DOMEditor.h: Updated for above changes.
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchDocument): Updated to use references,
to use ExceptionOr, and to use a struct without a constructor for Digest.
(WebCore::DOMPatchSupport::DOMPatchSupport): Ditto.
(WebCore::DOMPatchSupport::patchNode): Ditto.
(WebCore::DOMPatchSupport::innerPatchNode): Ditto.
(WebCore::DOMPatchSupport::diff): Ditto.
(WebCore::DOMPatchSupport::innerPatchChildren): Ditto.
(WebCore::DOMPatchSupport::createDigest): Ditto.
(WebCore::DOMPatchSupport::insertBeforeAndMarkAsUsed): Ditto.
(WebCore::DOMPatchSupport::removeChildAndMoveToNew): Ditto.
(WebCore::DOMPatchSupport::markNodeAsUsed): Ditto.
* inspector/DOMPatchSupport.h: Updated for above.
* inspector/InspectorCSSAgent.cpp: Use ExceptionOr in the action classes.
(WebCore::InspectorCSSAgent::getStyleSheetText): Use ExceptionOr.
(WebCore::InspectorCSSAgent::setStyleSheetText): Ditto.
(WebCore::InspectorCSSAgent::setStyleText): Ditto.
(WebCore::InspectorCSSAgent::setRuleSelector): Ditto.
(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument): Ditto.
(WebCore::InspectorCSSAgent::addRule): Ditto.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::didCreateFrontendAndBackend): Ditto.
(WebCore::InspectorDOMAgent::setAttributeValue): Ditto.
(WebCore::InspectorDOMAgent::setAttributesAsText): Ditto.
(WebCore::InspectorDOMAgent::removeAttribute): Ditto.
(WebCore::InspectorDOMAgent::setOuterHTML): Ditto.
(WebCore::InspectorDOMAgent::setNodeValue): Ditto.
(WebCore::InspectorDOMAgent::undo): Ditto.
(WebCore::InspectorDOMAgent::redo): Ditto.
* inspector/InspectorHistory.cpp:
(WebCore::InspectorHistory::Action::Action): Moved to header.
(WebCore::InspectorHistory::Action::~Action): Ditto.
(WebCore::InspectorHistory::Action::toString): Ditto.
(WebCore::InspectorHistory::Action::isUndoableStateMark): Ditto.
(WebCore::InspectorHistory::Action::mergeId): Ditto.
(WebCore::InspectorHistory::Action::merge): Ditto.
(WebCore::InspectorHistory::InspectorHistory): Deleted.
(WebCore::InspectorHistory::~InspectorHistory): Deleted.
(WebCore::InspectorHistory::perform): Updated exception handling.
(WebCore::InspectorHistory::markUndoableState): Ditto.
(WebCore::InspectorHistory::undo): Ditto.
(WebCore::InspectorHistory::redo): Ditto.
* inspector/InspectorHistory.h: Updated for above.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::setDocumentContent): Use reference.
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::text): Use ExceptionOr and renamed from
getText since this now has a return value.
(WebCore::InspectorStyle::populateAllProperties): Updated for above.
(WebCore::InspectorStyle::setText): Use ExceptionOr.
(WebCore::InspectorStyleSheet::setText): Ditto.
(WebCore::InspectorStyleSheet::ruleSelector): Ditto.
(WebCore::InspectorStyleSheet::setRuleSelector): Ditto.
(WebCore::InspectorStyleSheet::addRule): Ditto.
(WebCore::InspectorStyleSheet::deleteRule): Ditto.
(WebCore::InspectorStyleSheet::buildObjectForStyleSheet): Ditto.
(WebCore::InspectorStyleSheet::buildObjectForStyle): Ditto.
(WebCore::InspectorStyleSheet::setStyleText): Ditto.
(WebCore::InspectorStyleSheet::text): Use ExceptionOr and renamed.
(WebCore::InspectorStyleSheet::checkPageStyleSheet): Deleted.
Just wrote this code inline in each place this was called since it's
just a single null check.
(WebCore::InspectorStyleSheetForInlineStyle::text): Use ExceptionOr
and renamed.
(WebCore::InspectorStyleSheetForInlineStyle::setStyleText): Ditto.
(WebCore::InspectorStyle::getText): Deleted.
* inspector/InspectorStyleSheet.h: Updated for above changes.
* page/DragController.cpp:
(WebCore::documentFragmentFromDragData): Removed unneeded
ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
* page/ios/FrameIOS.mm:
(WebCore::Frame::initWithSimpleHTMLDocument): Ditto.
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::updateReferencedText): Ditto.
(WebCore::SVGTRefElement::detachTarget): Ditto.
* xml/XMLTreeViewer.cpp:
(WebCore::XMLTreeViewer::transformDocumentToTreeView): Ditto.
Source/WebKit/mac:
* DOM/DOMHTMLSelectElement.mm:
(-[DOMHTMLSelectElement remove:]): Call remove instead of removeByIndex
now that it was renamed.
* DOM/DOMNode.mm:
(-[DOMNode setNodeValue:]): Updated exception handling.
(-[DOMNode setPrefix:]): Ditto.
(-[DOMNode setTextContent:]): Ditto.
(-[DOMNode insertBefore:refChild:]): Ditto.
(-[DOMNode replaceChild:oldChild:]): Ditto.
(-[DOMNode removeChild:]): Ditto.
(-[DOMNode appendChild:]): Ditto.
(-[DOMNode cloneNode:]): Ditto.
Source/WebKit/win:
* DOMCoreClasses.cpp:
(DOMNode::insertBefore): Update exception handling.
(DOMNode::removeChild): Ditto.
Source/WebKit2:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp:
(webkit_dom_html_select_element_remove): Updated exception handling.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp:
(webkit_dom_node_insert_before): Ditto.
(webkit_dom_node_replace_child): Ditto.
(webkit_dom_node_remove_child): Ditto.
(webkit_dom_node_append_child): Ditto.
(webkit_dom_node_clone_node_with_error): Ditto.
(webkit_dom_node_set_node_value): Ditto.
(webkit_dom_node_set_text_content): Ditto.
* WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
(-[WKDOMNode insertNode:before:]): Ditto.
(-[WKDOMNode appendChild:]): Ditto.
(-[WKDOMNode removeChild:]): Ditto.
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin): Removed unneeded ASSERT_NO_EXCEPTION.
* WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement): Ditto.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSHTMLSelectElementCustomcpp">trunk/Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSNodeCustomcpp">trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp</a></li>
<li><a href="#trunkSourceWebCoredomAttrcpp">trunk/Source/WebCore/dom/Attr.cpp</a></li>
<li><a href="#trunkSourceWebCoredomAttrh">trunk/Source/WebCore/dom/Attr.h</a></li>
<li><a href="#trunkSourceWebCoredomCharacterDatacpp">trunk/Source/WebCore/dom/CharacterData.cpp</a></li>
<li><a href="#trunkSourceWebCoredomCharacterDatah">trunk/Source/WebCore/dom/CharacterData.h</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodecpp">trunk/Source/WebCore/dom/ContainerNode.cpp</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodeh">trunk/Source/WebCore/dom/ContainerNode.h</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementh">trunk/Source/WebCore/dom/Element.h</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodeh">trunk/Source/WebCore/dom/Node.h</a></li>
<li><a href="#trunkSourceWebCoredomNodeidl">trunk/Source/WebCore/dom/Node.idl</a></li>
<li><a href="#trunkSourceWebCoredomRangecpp">trunk/Source/WebCore/dom/Range.cpp</a></li>
<li><a href="#trunkSourceWebCoredomTextcpp">trunk/Source/WebCore/dom/Text.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingAppendNodeCommandcpp">trunk/Source/WebCore/editing/AppendNodeCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingCompositeEditCommandcpp">trunk/Source/WebCore/editing/CompositeEditCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorCommandcpp">trunk/Source/WebCore/editing/EditorCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingInsertNodeBeforeCommandcpp">trunk/Source/WebCore/editing/InsertNodeBeforeCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingMergeIdenticalElementsCommandcpp">trunk/Source/WebCore/editing/MergeIdenticalElementsCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingRemoveNodeCommandcpp">trunk/Source/WebCore/editing/RemoveNodeCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingReplaceNodeWithSpanCommandcpp">trunk/Source/WebCore/editing/ReplaceNodeWithSpanCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingReplaceSelectionCommandcpp">trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingSplitElementCommandcpp">trunk/Source/WebCore/editing/SplitElementCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingSplitTextNodeCommandcpp">trunk/Source/WebCore/editing/SplitTextNodeCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingWrapContentsInDummySpanCommandcpp">trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingcocoaEditorCocoamm">trunk/Source/WebCore/editing/cocoa/EditorCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreeditinghtmleditingcpp">trunk/Source/WebCore/editing/htmlediting.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingiosEditorIOSmm">trunk/Source/WebCore/editing/ios/EditorIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingmarkupcpp">trunk/Source/WebCore/editing/markup.cpp</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="#trunkSourceWebCorehtmlFileInputTypecpp">trunk/Source/WebCore/html/FileInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAnchorElementcpp">trunk/Source/WebCore/html/HTMLAnchorElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLDetailsElementcpp">trunk/Source/WebCore/html/HTMLDetailsElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLElementcpp">trunk/Source/WebCore/html/HTMLElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLKeygenElementcpp">trunk/Source/WebCore/html/HTMLKeygenElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMeterElementcpp">trunk/Source/WebCore/html/HTMLMeterElement.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="#trunkSourceWebCorehtmlHTMLOutputElementcpp">trunk/Source/WebCore/html/HTMLOutputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLProgressElementcpp">trunk/Source/WebCore/html/HTMLProgressElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLScriptElementcpp">trunk/Source/WebCore/html/HTMLScriptElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementcpp">trunk/Source/WebCore/html/HTMLSelectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementh">trunk/Source/WebCore/html/HTMLSelectElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementidl">trunk/Source/WebCore/html/HTMLSelectElement.idl</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="#trunkSourceWebCorehtmlHTMLTableElementh">trunk/Source/WebCore/html/HTMLTableElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableRowElementcpp">trunk/Source/WebCore/html/HTMLTableRowElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableSectionElementcpp">trunk/Source/WebCore/html/HTMLTableSectionElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTextAreaElementcpp">trunk/Source/WebCore/html/HTMLTextAreaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTextFormControlElementcpp">trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTitleElementcpp">trunk/Source/WebCore/html/HTMLTitleElement.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="#trunkSourceWebCorehtmlRangeInputTypecpp">trunk/Source/WebCore/html/RangeInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlSearchInputTypecpp">trunk/Source/WebCore/html/SearchInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlTextFieldInputTypecpp">trunk/Source/WebCore/html/TextFieldInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlValidationMessagecpp">trunk/Source/WebCore/html/ValidationMessage.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlElementscpp">trunk/Source/WebCore/html/shadow/MediaControlElements.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlscpp">trunk/Source/WebCore/html/shadow/MediaControls.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlsApplecpp">trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlsAppleh">trunk/Source/WebCore/html/shadow/MediaControlsApple.h</a></li>
<li><a href="#trunkSourceWebCorehtmltrackVTTCuecpp">trunk/Source/WebCore/html/track/VTTCue.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackVTTRegioncpp">trunk/Source/WebCore/html/track/VTTRegion.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorDOMEditorcpp">trunk/Source/WebCore/inspector/DOMEditor.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorDOMEditorh">trunk/Source/WebCore/inspector/DOMEditor.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorDOMPatchSupportcpp">trunk/Source/WebCore/inspector/DOMPatchSupport.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorDOMPatchSupporth">trunk/Source/WebCore/inspector/DOMPatchSupport.h</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="#trunkSourceWebCoreinspectorInspectorHistorycpp">trunk/Source/WebCore/inspector/InspectorHistory.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorHistoryh">trunk/Source/WebCore/inspector/InspectorHistory.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorPageAgentcpp">trunk/Source/WebCore/inspector/InspectorPageAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorStyleSheetcpp">trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorStyleSheeth">trunk/Source/WebCore/inspector/InspectorStyleSheet.h</a></li>
<li><a href="#trunkSourceWebCorepageDragControllercpp">trunk/Source/WebCore/page/DragController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageiosFrameIOSmm">trunk/Source/WebCore/page/ios/FrameIOS.mm</a></li>
<li><a href="#trunkSourceWebCoresvgSVGTRefElementcpp">trunk/Source/WebCore/svg/SVGTRefElement.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLTreeViewercpp">trunk/Source/WebCore/xml/XMLTreeViewer.cpp</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacDOMDOMHTMLSelectElementmm">trunk/Source/WebKit/mac/DOM/DOMHTMLSelectElement.mm</a></li>
<li><a href="#trunkSourceWebKitmacDOMDOMNodemm">trunk/Source/WebKit/mac/DOM/DOMNode.mm</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinDOMCoreClassescpp">trunk/Source/WebKit/win/DOMCoreClasses.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPIgtkDOMWebKitDOMDeprecatedcpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPIgtkDOMWebKitDOMHTMLSelectElementcpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPIgtkDOMWebKitDOMNodecpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPImacWKDOMNodemm">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFDeprecatedPDFPluginmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFPDFPluginChoiceAnnotationmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/ChangeLog        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -1,3 +1,368 @@
</span><ins>+2016-11-11 Darin Adler <darin@apple.com>
+
+ Move Node from ExceptionCode to ExceptionOr
+ https://bugs.webkit.org/show_bug.cgi?id=164515
+
+ Reviewed by Sam Weinig.
+
+ * bindings/js/JSHTMLSelectElementCustom.cpp:
+ (WebCore::selectElementIndexSetter): Call remove instead of removeByIndex.
+ Was renamed now that there is no conflict.
+
+ * bindings/js/JSNodeCustom.cpp:
+ (WebCore::JSNode::insertBefore): Use ExceptionOr.
+ (WebCore::JSNode::replaceChild): Ditto.
+ (WebCore::JSNode::removeChild): Ditto.
+ (WebCore::JSNode::appendChild): Ditto.
+
+ * dom/Attr.cpp:
+ (WebCore::Attr::Attr): Take a reference.
+ (WebCore::Attr::create): Ditto.
+ (WebCore::Attr::createTextChild): Use a Ref.
+ (WebCore::Attr::setPrefix): Use ExceptionOr.
+ (WebCore::Attr::setNodeValue): Ditto.
+ (WebCore::Attr::attachToElement): Take a reference.
+ * dom/Attr.h: Updated for above. Also made setPrefix private.
+
+ * dom/CharacterData.cpp:
+ (WebCore::CharacterData::setNodeValue): Use ExceptionOr.
+ * dom/CharacterData.h: Updated for the above.
+
+ * dom/ContainerNode.cpp:
+ (WebCore::collectChildrenAndRemoveFromOldParent): Use ExceptionOr.
+ (WebCore::checkAcceptChild): Ditto.
+ (WebCore::checkAcceptChildGuaranteedNodeTypes): Ditto.
+ (WebCore::ContainerNode::ensurePreInsertionValidity): Ditto.
+ (WebCore::checkPreReplacementValidity): Ditto.
+ (WebCore::ContainerNode::insertBefore): Ditto.
+ (WebCore::ContainerNode::replaceChild): Ditto.
+ (WebCore::ContainerNode::removeChild): Ditto.
+ (WebCore::ContainerNode::appendChild): Ditto.
+ (WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck): Ditto.
+ (WebCore::ContainerNode::cloneChildNodes): Ditto.
+ (WebCore::ContainerNode::append): Ditto.
+ (WebCore::ContainerNode::prepend): Ditto.
+ * dom/ContainerNode.h: Updated for above changes.
+
+ * dom/Document.cpp:
+ (WebCore::Document::setTitle): Removed unneeded ASSERT_NO_EXCEPTION.
+ (WebCore::Document::setBodyOrFrameset): Removed unneeded ignored
+ exception code.
+
+ * dom/Element.cpp:
+ (WebCore::Element::setPrefix): Use ExceptionOr.
+ (WebCore::Element::setAttributeNode): Updated for changes to Attr.
+ (WebCore::Element::setAttributeNodeNS): Ditto.
+ (WebCore::Element::setOuterHTML): Use ExceptionOr.
+ (WebCore::Element::ensureAttr): Updated for changes to Attr.
+ (WebCore::Element::insertAdjacent): Use ExceptionOr.
+ * dom/Element.h: Updated for above.
+
+ * dom/Node.cpp:
+ (WebCore::Node::setNodeValue): Use ExceptionOr.
+ (WebCore::Node::insertBefore): Ditto.
+ (WebCore::Node::replaceChild): Ditto.
+ (WebCore::Node::removeChild): Ditto.
+ (WebCore::Node::appendChild): Ditto.
+ (WebCore::Node::convertNodesOrStringsIntoNode): Ditto.
+ (WebCore::Node::before): Ditto.
+ (WebCore::Node::after): Ditto.
+ (WebCore::Node::replaceWith): Ditto.
+ (WebCore::Node::remove): Ditto.
+ (WebCore::Node::cloneNodeForBindings): Ditto.
+ (WebCore::Node::setPrefix): Ditto.
+ (WebCore::Node::checkSetPrefix): Ditto.
+ (WebCore::Node::setTextContent): Ditto.
+ * dom/Node.h: Updated for above.
+ * dom/Node.idl: Use non-legacy exceptions.
+
+ * dom/Range.cpp:
+ (WebCore::Range::processContents): Use ExceptionOr.
+ (WebCore::processContentsBetweenOffsets): Ditto.
+ (WebCore::processNodes): Ditto.
+ (WebCore::processAncestorsAndTheirSiblings): Ditto.
+ (WebCore::Range::insertNode): Ditto.
+ (WebCore::Range::surroundContents): Ditto.
+
+ * dom/Text.cpp:
+ (WebCore::Text::splitText): Use ExceptionOr.
+ (WebCore::Text::replaceWholeText): Removed unneeded IGNORE_EXCEPTION.
+
+ * editing/AppendNodeCommand.cpp:
+ (WebCore::AppendNodeCommand::doApply): Removed unneeded IGNORE_EXCEPTION.
+ * editing/CompositeEditCommand.cpp:
+ (WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt): Ditto.
+
+ * editing/EditorCommand.cpp:
+ (WebCore::executeInsertNode): Use ExceptionOr.
+
+ * editing/InsertNodeBeforeCommand.cpp:
+ (WebCore::InsertNodeBeforeCommand::doApply): Removed unneeded IGNORE_EXCEPTION.
+ * editing/MergeIdenticalElementsCommand.cpp:
+ (WebCore::MergeIdenticalElementsCommand::doApply): Ditto.
+ (WebCore::MergeIdenticalElementsCommand::doUnapply): Use ExceptionOr.
+
+ * editing/RemoveNodeCommand.cpp:
+ (WebCore::RemoveNodeCommand::doUnapply): Removed unneeded IGNORE_EXCEPTION.
+ * editing/ReplaceNodeWithSpanCommand.cpp:
+ (WebCore::swapInNodePreservingAttributesAndChildren): Removed unneeded
+ ASSERT_NO_EXCEPTION.
+ * editing/ReplaceSelectionCommand.cpp:
+ (WebCore::ReplacementFragment::removeNode): Ditto.
+ (WebCore::ReplacementFragment::insertNodeBefore): Ditto.
+ (WebCore::ReplacementFragment::insertFragmentForTestRendering): Ditto.
+ (WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment): Ditto.
+ (WebCore::ReplaceSelectionCommand::insertAsListItems): Ditto.
+
+ * editing/SplitElementCommand.cpp:
+ (WebCore::SplitElementCommand::executeApply): Use ExceptionOr.
+ (WebCore::SplitElementCommand::doUnapply): Removed unneeded IGNORE_EXCEPTION.
+
+ * editing/SplitTextNodeCommand.cpp:
+ (WebCore::SplitTextNodeCommand::insertText1AndTrimText2): Use ExceptionOr.
+
+ * editing/WrapContentsInDummySpanCommand.cpp:
+ (WebCore::WrapContentsInDummySpanCommand::executeApply): Removed unneeded
+ IGNORE_EXCEPTION.
+ (WebCore::WrapContentsInDummySpanCommand::doUnapply): Ditto.
+
+ * editing/cocoa/EditorCocoa.mm:
+ (WebCore::Editor::styleForSelectionStart): Removed unneeded ASSERT_NO_EXCEPTION
+ and IGNORE_EXCEPTION.
+ * editing/htmlediting.cpp:
+ (WebCore::createTabSpanElement): Ditto.
+ * editing/markup.cpp:
+ (WebCore::fillContainerFromString): Ditto.
+ (WebCore::createFragmentFromText): Ditto.
+ (WebCore::removeElementFromFragmentPreservingChildren): Ditto.
+ (WebCore::replaceChildrenWithFragment): Use ExceptionOr.
+ (WebCore::replaceChildrenWithText): Ditto.
+
+ * editing/ios/EditorIOS.mm:
+ (WebCore::Editor::WebContentReader::addFragment): Removed unneeded exception
+ ignoring code.
+ (WebCore::Editor::setDictationPhrasesAsChildOfElement): Ditto.
+ (WebCore::Editor::setTextAsChildOfElement): Ditto.
+
+ * html/ColorInputType.cpp:
+ (WebCore::ColorInputType::createShadowSubtree): Removed unneeded
+ ASSERT_NO_EXCEPTION.
+
+ * html/FTPDirectoryDocument.cpp:
+ (WebCore::FTPDirectoryDocumentParser::appendEntry): Removed unneeded
+ IGNORE_EXCEPTION.
+ (WebCore::FTPDirectoryDocumentParser::createTDForFilename): Ditto.
+ (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate): Ditto.
+ (WebCore::FTPDirectoryDocumentParser::createBasicDocument): Ditto.
+ * html/FileInputType.cpp:
+ (WebCore::FileInputType::createShadowSubtree): Ditto.
+
+ * html/HTMLAnchorElement.cpp:
+ (WebCore::HTMLAnchorElement::setText): Removed unneeded ASSERT_NO_EXCEPTION.
+ * html/HTMLDetailsElement.cpp:
+ (WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot): Ditto.
+
+ * html/HTMLElement.cpp:
+ (WebCore::HTMLElement::textToFragment): Use ExceptionOr.
+ (WebCore::HTMLElement::setOuterText): Ditto.
+
+ * html/HTMLKeygenElement.cpp:
+ (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed unneeded
+ ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::createMediaControls): Ditto.
+ * html/HTMLMeterElement.cpp:
+ (WebCore::HTMLMeterElement::didAddUserAgentShadowRoot): Ditto.
+ * html/HTMLOptionElement.cpp:
+ (WebCore::HTMLOptionElement::createForJSConstructor): Use ExceptionOr.
+ (WebCore::HTMLOptionElement::setText): Removed unneeded
+ ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
+
+ * html/HTMLOptionsCollection.cpp:
+ (WebCore::HTMLOptionsCollection::remove): Call remove, not removeByIndex,
+ since we were able to change the name.
+
+ * html/HTMLOutputElement.cpp:
+ (WebCore::HTMLOutputElement::setTextContentInternal): Removed unneeded
+ ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
+ * html/HTMLProgressElement.cpp:
+ (WebCore::HTMLProgressElement::didAddUserAgentShadowRoot): Ditto.
+ * html/HTMLScriptElement.cpp:
+ (WebCore::HTMLScriptElement::setText): Ditto.
+
+ * html/HTMLSelectElement.cpp:
+ (WebCore::HTMLSelectElement::add): Use ExceptionOr.
+ (WebCore::HTMLSelectElement::remove): Renamed from removeByIndex since
+ there is no conflict with remove any more.
+ (WebCore::HTMLSelectElement::setOption): Call remove.
+ * html/HTMLSelectElement.h: Updated for above.
+ * html/HTMLSelectElement.idl: Got rid of ImplementedAs=removeByIndex.
+
+ * html/HTMLSummaryElement.cpp:
+ (WebCore::HTMLSummaryElement::didAddUserAgentShadowRoot): Removed unneeded
+ ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
+ * html/HTMLTableElement.cpp:
+ (WebCore::HTMLTableElement::HTMLTableElement): Initialize data members in
+ class definition instead of here.
+ (WebCore::HTMLTableElement::caption): Simplified using childrenOfType.
+ (WebCore::HTMLTableElement::setCaption): Use ExceptionOr.
+ (WebCore::HTMLTableElement::setTHead): Ditto.
+ (WebCore::HTMLTableElement::setTFoot): Ditto.
+ (WebCore::HTMLTableElement::deleteTFoot): Removed unneeded ASSERT_NO_EXCEPTION
+ and IGNORE_EXCEPTION.
+ (WebCore::HTMLTableElement::createTBody): Ditto.
+ (WebCore::HTMLTableElement::deleteCaption): Ditto.
+ (WebCore::HTMLTableElement::insertRow): Use ExceptionOr.
+ * html/HTMLTableElement.h: Updated for above.
+
+ * html/HTMLTableRowElement.cpp:
+ (WebCore::HTMLTableRowElement::insertCell): Use ExceptionOr.
+ (WebCore::HTMLTableRowElement::deleteCell): Ditto.
+ * html/HTMLTableSectionElement.cpp:
+ (WebCore::HTMLTableSectionElement::insertRow): Ditto.
+ (WebCore::HTMLTableSectionElement::deleteRow): Ditto.
+
+ * html/HTMLTextAreaElement.cpp:
+ (WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot): Removed unneeded
+ ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
+ (WebCore::HTMLTextAreaElement::setDefaultValue): Ditto.
+ (WebCore::HTMLTextAreaElement::updatePlaceholderText): Ditto.
+ * html/HTMLTextFormControlElement.cpp:
+ (WebCore::HTMLTextFormControlElement::setInnerTextValue): Ditto.
+ * html/HTMLTitleElement.cpp:
+ (WebCore::HTMLTitleElement::setText): Ditto.
+ * html/MediaDocument.cpp:
+ (WebCore::MediaDocumentParser::createDocumentStructure): Ditto.
+ (WebCore::MediaDocument::replaceMediaElementTimerFired): Ditto.
+ * html/PluginDocument.cpp:
+ (WebCore::PluginDocumentParser::createDocumentStructure): Ditto.
+ * html/RangeInputType.cpp:
+ (WebCore::RangeInputType::createShadowSubtree): Ditto.
+ * html/SearchInputType.cpp:
+ (WebCore::SearchInputType::createShadowSubtree): Ditto.
+ * html/TextFieldInputType.cpp:
+ (WebCore::TextFieldInputType::createShadowSubtree): Ditto.
+ (WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
+ (WebCore::TextFieldInputType::createContainer): Ditto.
+ (WebCore::TextFieldInputType::createAutoFillButton): Ditto.
+ * html/ValidationMessage.cpp:
+ (WebCore::ValidationMessage::setMessageDOMAndStartTimer): Ditto.
+ (WebCore::ValidationMessage::buildBubbleTree): Ditto.
+ (WebCore::ValidationMessage::deleteBubbleTree): Ditto.
+ * html/shadow/MediaControlElements.cpp:
+ (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Ditto.
+ * html/shadow/MediaControls.cpp:
+ (WebCore::MediaControls::createTextTrackDisplay): Ditto.
+
+ * html/shadow/MediaControlsApple.cpp:
+ (WebCore::MediaControlsApple::MediaControlsApple): Initialize data members
+ in class definition instead of here.
+ (WebCore::MediaControlsApple::tryCreateControls): Use ExceptionOr.
+ * html/shadow/MediaControlsApple.h: Updated for above.
+
+ * html/track/VTTCue.cpp:
+ (WebCore::VTTCue::copyWebVTTNodeToDOMTree): Removed unneeded ASSERT_NO_EXCEPTION
+ and IGNORE_EXCEPTION.
+ (WebCore::VTTCue::getDisplayTree): Ditto.
+ * html/track/VTTRegion.cpp:
+ (WebCore::VTTRegion::appendTextTrackCueBox): Ditto.
+
+ * inspector/DOMEditor.cpp: Use ExceptionOr in action classes.
+ (WebCore::DOMEditor::DOMEditor): Take a reference.
+ (WebCore::DOMEditor::insertBefore): Use ExceptionOr.
+ (WebCore::DOMEditor::removeChild): Ditto.
+ (WebCore::DOMEditor::setAttribute): Ditto.
+ (WebCore::DOMEditor::removeAttribute): Ditto.
+ (WebCore::DOMEditor::setOuterHTML): Ditto.
+ (WebCore::DOMEditor::replaceWholeText): Ditto.
+ (WebCore::DOMEditor::replaceChild): Ditto.
+ (WebCore::DOMEditor::setNodeValue): Ditto.
+ (WebCore::populateErrorString): Ditto.
+ * inspector/DOMEditor.h: Updated for above changes.
+
+ * inspector/DOMPatchSupport.cpp:
+ (WebCore::DOMPatchSupport::patchDocument): Updated to use references,
+ to use ExceptionOr, and to use a struct without a constructor for Digest.
+ (WebCore::DOMPatchSupport::DOMPatchSupport): Ditto.
+ (WebCore::DOMPatchSupport::patchNode): Ditto.
+ (WebCore::DOMPatchSupport::innerPatchNode): Ditto.
+ (WebCore::DOMPatchSupport::diff): Ditto.
+ (WebCore::DOMPatchSupport::innerPatchChildren): Ditto.
+ (WebCore::DOMPatchSupport::createDigest): Ditto.
+ (WebCore::DOMPatchSupport::insertBeforeAndMarkAsUsed): Ditto.
+ (WebCore::DOMPatchSupport::removeChildAndMoveToNew): Ditto.
+ (WebCore::DOMPatchSupport::markNodeAsUsed): Ditto.
+ * inspector/DOMPatchSupport.h: Updated for above.
+
+ * inspector/InspectorCSSAgent.cpp: Use ExceptionOr in the action classes.
+ (WebCore::InspectorCSSAgent::getStyleSheetText): Use ExceptionOr.
+ (WebCore::InspectorCSSAgent::setStyleSheetText): Ditto.
+ (WebCore::InspectorCSSAgent::setStyleText): Ditto.
+ (WebCore::InspectorCSSAgent::setRuleSelector): Ditto.
+ (WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument): Ditto.
+ (WebCore::InspectorCSSAgent::addRule): Ditto.
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::didCreateFrontendAndBackend): Ditto.
+ (WebCore::InspectorDOMAgent::setAttributeValue): Ditto.
+ (WebCore::InspectorDOMAgent::setAttributesAsText): Ditto.
+ (WebCore::InspectorDOMAgent::removeAttribute): Ditto.
+ (WebCore::InspectorDOMAgent::setOuterHTML): Ditto.
+ (WebCore::InspectorDOMAgent::setNodeValue): Ditto.
+ (WebCore::InspectorDOMAgent::undo): Ditto.
+ (WebCore::InspectorDOMAgent::redo): Ditto.
+
+ * inspector/InspectorHistory.cpp:
+ (WebCore::InspectorHistory::Action::Action): Moved to header.
+ (WebCore::InspectorHistory::Action::~Action): Ditto.
+ (WebCore::InspectorHistory::Action::toString): Ditto.
+ (WebCore::InspectorHistory::Action::isUndoableStateMark): Ditto.
+ (WebCore::InspectorHistory::Action::mergeId): Ditto.
+ (WebCore::InspectorHistory::Action::merge): Ditto.
+ (WebCore::InspectorHistory::InspectorHistory): Deleted.
+ (WebCore::InspectorHistory::~InspectorHistory): Deleted.
+ (WebCore::InspectorHistory::perform): Updated exception handling.
+ (WebCore::InspectorHistory::markUndoableState): Ditto.
+ (WebCore::InspectorHistory::undo): Ditto.
+ (WebCore::InspectorHistory::redo): Ditto.
+ * inspector/InspectorHistory.h: Updated for above.
+
+ * inspector/InspectorPageAgent.cpp:
+ (WebCore::InspectorPageAgent::setDocumentContent): Use reference.
+
+ * inspector/InspectorStyleSheet.cpp:
+ (WebCore::InspectorStyle::text): Use ExceptionOr and renamed from
+ getText since this now has a return value.
+ (WebCore::InspectorStyle::populateAllProperties): Updated for above.
+ (WebCore::InspectorStyle::setText): Use ExceptionOr.
+ (WebCore::InspectorStyleSheet::setText): Ditto.
+ (WebCore::InspectorStyleSheet::ruleSelector): Ditto.
+ (WebCore::InspectorStyleSheet::setRuleSelector): Ditto.
+ (WebCore::InspectorStyleSheet::addRule): Ditto.
+ (WebCore::InspectorStyleSheet::deleteRule): Ditto.
+ (WebCore::InspectorStyleSheet::buildObjectForStyleSheet): Ditto.
+ (WebCore::InspectorStyleSheet::buildObjectForStyle): Ditto.
+ (WebCore::InspectorStyleSheet::setStyleText): Ditto.
+ (WebCore::InspectorStyleSheet::text): Use ExceptionOr and renamed.
+ (WebCore::InspectorStyleSheet::checkPageStyleSheet): Deleted.
+ Just wrote this code inline in each place this was called since it's
+ just a single null check.
+ (WebCore::InspectorStyleSheetForInlineStyle::text): Use ExceptionOr
+ and renamed.
+ (WebCore::InspectorStyleSheetForInlineStyle::setStyleText): Ditto.
+ (WebCore::InspectorStyle::getText): Deleted.
+ * inspector/InspectorStyleSheet.h: Updated for above changes.
+
+ * page/DragController.cpp:
+ (WebCore::documentFragmentFromDragData): Removed unneeded
+ ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
+ * page/ios/FrameIOS.mm:
+ (WebCore::Frame::initWithSimpleHTMLDocument): Ditto.
+ * svg/SVGTRefElement.cpp:
+ (WebCore::SVGTRefElement::updateReferencedText): Ditto.
+ (WebCore::SVGTRefElement::detachTarget): Ditto.
+ * xml/XMLTreeViewer.cpp:
+ (WebCore::XMLTreeViewer::transformDocumentToTreeView): Ditto.
+
</ins><span class="cx"> 2016-11-10 Jiewen Tan <jiewen_tan@apple.com>
</span><span class="cx">
</span><span class="cx"> Rename CryptoKeyUsage to CryptoKeyUsageBitmap and CryptoKey::Usage to CryptoKeyUsage
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSHTMLSelectElementCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> auto throwScope = DECLARE_THROW_SCOPE(vm);
</span><span class="cx">
</span><span class="cx"> if (value.isUndefinedOrNull()) {
</span><del>- element.removeByIndex(index);
</del><ins>+ element.remove(index);
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSNodeCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -123,13 +123,7 @@
</span><span class="cx"> if (UNLIKELY(!newChild))
</span><span class="cx"> return JSValue::decode(throwArgumentTypeError(state, scope, 0, "node", "Node", "insertBefore", "Node"));
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- if (UNLIKELY(!wrapped().insertBefore(*newChild, JSNode::toWrapped(state.uncheckedArgument(1)), ec))) {
- setDOMException(&state, ec);
- return jsUndefined();
- }
-
- ASSERT(!ec);
</del><ins>+ propagateException(state, scope, wrapped().insertBefore(*newChild, JSNode::toWrapped(state.uncheckedArgument(1))));
</ins><span class="cx"> return newChildValue;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -150,13 +144,7 @@
</span><span class="cx"> return JSValue::decode(throwArgumentTypeError(state, scope, 1, "child", "Node", "replaceChild", "Node"));
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- if (UNLIKELY(!wrapped().replaceChild(*newChild, *oldChild, ec))) {
- setDOMException(&state, ec);
- return jsUndefined();
- }
-
- ASSERT(!ec);
</del><ins>+ propagateException(state, scope, wrapped().replaceChild(*newChild, *oldChild));
</ins><span class="cx"> return oldChildValue;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -170,13 +158,7 @@
</span><span class="cx"> if (UNLIKELY(!child))
</span><span class="cx"> return JSValue::decode(throwArgumentTypeError(state, scope, 0, "child", "Node", "removeChild", "Node"));
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- if (UNLIKELY(!wrapped().removeChild(*child, ec))) {
- setDOMException(&state, ec);
- return jsUndefined();
- }
-
- ASSERT(!ec);
</del><ins>+ propagateException(state, scope, wrapped().removeChild(*child));
</ins><span class="cx"> return childValue;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -190,13 +172,7 @@
</span><span class="cx"> if (UNLIKELY(!newChild))
</span><span class="cx"> return JSValue::decode(throwArgumentTypeError(state, scope, 0, "node", "Node", "appendChild", "Node"));
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- if (UNLIKELY(!wrapped().appendChild(*newChild, ec))) {
- setDOMException(&state, ec);
- return jsUndefined();
- }
-
- ASSERT(!ec);
</del><ins>+ propagateException(state, scope, wrapped().appendChild(*newChild));
</ins><span class="cx"> return newChildValue;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomAttrcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Attr.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Attr.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/Attr.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -38,9 +38,9 @@
</span><span class="cx">
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx">
</span><del>-Attr::Attr(Element* element, const QualifiedName& name)
- : ContainerNode(element->document())
- , m_element(element)
</del><ins>+Attr::Attr(Element& element, const QualifiedName& name)
+ : ContainerNode(element.document())
+ , m_element(&element)
</ins><span class="cx"> , m_name(name)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-Ref<Attr> Attr::create(Element* element, const QualifiedName& name)
</del><ins>+Ref<Attr> Attr::create(Element& element, const QualifiedName& name)
</ins><span class="cx"> {
</span><span class="cx"> Ref<Attr> attr = adoptRef(*new Attr(element, name));
</span><span class="cx"> attr->createTextChild();
</span><span class="lines">@@ -74,34 +74,31 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT(refCount());
</span><span class="cx"> if (!value().isEmpty()) {
</span><del>- RefPtr<Text> textNode = document().createTextNode(value().string());
</del><ins>+ auto textNode = document().createTextNode(value().string());
</ins><span class="cx">
</span><span class="cx"> // This does everything appendChild() would do in this situation (assuming m_ignoreChildrenChanged was set),
</span><span class="cx"> // but much more efficiently.
</span><span class="cx"> textNode->setParentNode(this);
</span><del>- setFirstChild(textNode.get());
- setLastChild(textNode.get());
</del><ins>+ setFirstChild(textNode.ptr());
+ setLastChild(textNode.ptr());
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Attr::setPrefix(const AtomicString& prefix, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> Attr::setPrefix(const AtomicString& prefix)
</ins><span class="cx"> {
</span><del>- ec = 0;
- checkSetPrefix(prefix, ec);
- if (ec)
- return;
</del><ins>+ auto result = checkSetPrefix(prefix);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx">
</span><del>- if ((prefix == xmlnsAtom && namespaceURI() != XMLNSNames::xmlnsNamespaceURI)
- || static_cast<Attr*>(this)->qualifiedName() == xmlnsAtom) {
- ec = NAMESPACE_ERR;
- return;
- }
</del><ins>+ if ((prefix == xmlnsAtom && namespaceURI() != XMLNSNames::xmlnsNamespaceURI) || qualifiedName() == xmlnsAtom)
+ return Exception { NAMESPACE_ERR };
</ins><span class="cx">
</span><span class="cx"> const AtomicString& newPrefix = prefix.isEmpty() ? nullAtom : prefix;
</span><del>-
</del><span class="cx"> if (m_element)
</span><span class="cx"> elementAttribute().setPrefix(newPrefix);
</span><span class="cx"> m_name.setPrefix(newPrefix);
</span><ins>+
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Attr::setValue(const AtomicString& value)
</span><span class="lines">@@ -125,16 +122,15 @@
</span><span class="cx"> AtomicString oldValue = this->value();
</span><span class="cx"> if (m_element)
</span><span class="cx"> m_element->willModifyAttribute(qualifiedName(), oldValue, value);
</span><del>-
</del><span class="cx"> setValue(value);
</span><del>-
</del><span class="cx"> if (m_element)
</span><span class="cx"> m_element->didModifyAttribute(qualifiedName(), oldValue, value);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Attr::setNodeValue(const String& v, ExceptionCode&)
</del><ins>+ExceptionOr<void> Attr::setNodeValue(const String& value)
</ins><span class="cx"> {
</span><del>- setValueForBindings(v);
</del><ins>+ setValueForBindings(value);
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Ref<Node> Attr::cloneNodeInternal(Document& targetDocument, CloningOperation)
</span><span class="lines">@@ -212,10 +208,10 @@
</span><span class="cx"> m_element = nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Attr::attachToElement(Element* element)
</del><ins>+void Attr::attachToElement(Element& element)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(!m_element);
</span><del>- m_element = element;
</del><ins>+ m_element = &element;
</ins><span class="cx"> m_standaloneValue = nullAtom;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomAttrh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Attr.h (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Attr.h        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/Attr.h        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx">
</span><span class="cx"> class Attr final : public ContainerNode {
</span><span class="cx"> public:
</span><del>- static Ref<Attr> create(Element*, const QualifiedName&);
</del><ins>+ static Ref<Attr> create(Element&, const QualifiedName&);
</ins><span class="cx"> static Ref<Attr> create(Document&, const QualifiedName&, const AtomicString& value);
</span><span class="cx"> virtual ~Attr();
</span><span class="cx">
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT CSSStyleDeclaration* style();
</span><span class="cx">
</span><del>- void attachToElement(Element*);
</del><ins>+ void attachToElement(Element&);
</ins><span class="cx"> void detachFromElementWithValue(const AtomicString&);
</span><span class="cx">
</span><span class="cx"> const AtomicString& namespaceURI() const final { return m_name.namespaceURI(); }
</span><span class="lines">@@ -67,26 +67,27 @@
</span><span class="cx"> const AtomicString& localName() const final { return m_name.localName(); }
</span><span class="cx"> const AtomicString& prefix() const final { return m_name.prefix(); }
</span><span class="cx">
</span><del>- void setPrefix(const AtomicString&, ExceptionCode&) final;
-
</del><span class="cx"> private:
</span><del>- Attr(Element*, const QualifiedName&);
</del><ins>+ Attr(Element&, const QualifiedName&);
</ins><span class="cx"> Attr(Document&, const QualifiedName&, const AtomicString& value);
</span><span class="cx">
</span><span class="cx"> void createTextChild();
</span><span class="cx">
</span><del>- String nodeName() const override { return name(); }
- NodeType nodeType() const override { return ATTRIBUTE_NODE; }
</del><ins>+ String nodeName() const final { return name(); }
+ NodeType nodeType() const final { return ATTRIBUTE_NODE; }
</ins><span class="cx">
</span><del>- String nodeValue() const override { return value(); }
- void setNodeValue(const String&, ExceptionCode&) override;
- Ref<Node> cloneNodeInternal(Document&, CloningOperation) override;
</del><ins>+ String nodeValue() const final { return value(); }
+ ExceptionOr<void> setNodeValue(const String&) final;
</ins><span class="cx">
</span><del>- bool isAttributeNode() const override { return true; }
- bool childTypeAllowed(NodeType) const override;
</del><ins>+ ExceptionOr<void> setPrefix(const AtomicString&) final;
</ins><span class="cx">
</span><del>- void childrenChanged(const ChildChange&) override;
</del><ins>+ Ref<Node> cloneNodeInternal(Document&, CloningOperation) final;
</ins><span class="cx">
</span><ins>+ bool isAttributeNode() const final { return true; }
+ bool childTypeAllowed(NodeType) const final;
+
+ void childrenChanged(const ChildChange&) final;
+
</ins><span class="cx"> Attribute& elementAttribute();
</span><span class="cx">
</span><span class="cx"> // Attr wraps either an element/name, or a name/value pair (when it's a standalone Node.)
</span></span></pre></div>
<a id="trunkSourceWebCoredomCharacterDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/CharacterData.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/CharacterData.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/CharacterData.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -179,9 +179,10 @@
</span><span class="cx"> return m_data.containsOnlyWhitespace();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void CharacterData::setNodeValue(const String& nodeValue, ExceptionCode&)
</del><ins>+ExceptionOr<void> CharacterData::setNodeValue(const String& nodeValue)
</ins><span class="cx"> {
</span><span class="cx"> setData(nodeValue);
</span><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void CharacterData::setDataAndUpdate(const String& newData, unsigned offsetOfReplacedData, unsigned oldLength, unsigned newLength)
</span></span></pre></div>
<a id="trunkSourceWebCoredomCharacterDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/CharacterData.h (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/CharacterData.h        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/CharacterData.h        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> String nodeValue() const final;
</span><del>- void setNodeValue(const String&, ExceptionCode&) final;
</del><ins>+ ExceptionOr<void> setNodeValue(const String&) final;
</ins><span class="cx"> bool isCharacterDataNode() const final { return true; }
</span><span class="cx"> int maxCharacterOffset() const final;
</span><span class="cx"> bool offsetInCharacters() const final;
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/ContainerNode.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -74,17 +74,19 @@
</span><span class="cx"> unsigned NoEventDispatchAssertion::s_count = 0;
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-static void collectChildrenAndRemoveFromOldParent(Node& node, NodeVector& nodes, ExceptionCode& ec)
</del><ins>+static ExceptionOr<void> collectChildrenAndRemoveFromOldParent(Node& node, NodeVector& nodes)
</ins><span class="cx"> {
</span><span class="cx"> if (!is<DocumentFragment>(node)) {
</span><span class="cx"> nodes.append(node);
</span><del>- if (ContainerNode* oldParent = node.parentNode())
- oldParent->removeChild(node, ec);
- return;
</del><ins>+ auto* oldParent = node.parentNode();
+ if (!oldParent)
+ return { };
+ return oldParent->removeChild(node);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> getChildNodes(node, nodes);
</span><span class="cx"> downcast<DocumentFragment>(node).removeChildren();
</span><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // FIXME: This function must get a new name.
</span><span class="lines">@@ -178,7 +180,7 @@
</span><span class="cx"> : newChild.contains(&newParent);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static inline ExceptionCode checkAcceptChild(ContainerNode& newParent, Node& newChild, const Node* refChild, Document::AcceptChildOperation operation)
</del><ins>+static inline ExceptionOr<void> checkAcceptChild(ContainerNode& newParent, Node& newChild, const Node* refChild, Document::AcceptChildOperation operation)
</ins><span class="cx"> {
</span><span class="cx"> // Use common case fast path if possible.
</span><span class="cx"> if ((newChild.isElementNode() || newChild.isTextNode()) && newParent.isElementNode()) {
</span><span class="lines">@@ -185,69 +187,63 @@
</span><span class="cx"> ASSERT(!newParent.isDocumentTypeNode());
</span><span class="cx"> ASSERT(isChildTypeAllowed(newParent, newChild));
</span><span class="cx"> if (containsConsideringHostElements(newChild, newParent))
</span><del>- return HIERARCHY_REQUEST_ERR;
</del><ins>+ return Exception { HIERARCHY_REQUEST_ERR };
</ins><span class="cx"> if (operation == Document::AcceptChildOperation::InsertOrAdd && refChild && refChild->parentNode() != &newParent)
</span><del>- return NOT_FOUND_ERR;
- return 0;
</del><ins>+ return Exception { NOT_FOUND_ERR };
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // This should never happen, but also protect release builds from tree corruption.
</span><span class="cx"> ASSERT(!newChild.isPseudoElement());
</span><span class="cx"> if (newChild.isPseudoElement())
</span><del>- return HIERARCHY_REQUEST_ERR;
</del><ins>+ return Exception { HIERARCHY_REQUEST_ERR };
</ins><span class="cx">
</span><span class="cx"> if (containsConsideringHostElements(newChild, newParent))
</span><del>- return HIERARCHY_REQUEST_ERR;
</del><ins>+ return Exception { HIERARCHY_REQUEST_ERR };
</ins><span class="cx">
</span><span class="cx"> if (operation == Document::AcceptChildOperation::InsertOrAdd && refChild && refChild->parentNode() != &newParent)
</span><del>- return NOT_FOUND_ERR;
</del><ins>+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><span class="cx"> if (is<Document>(newParent)) {
</span><span class="cx"> if (!downcast<Document>(newParent).canAcceptChild(newChild, refChild, operation))
</span><del>- return HIERARCHY_REQUEST_ERR;
</del><ins>+ return Exception { HIERARCHY_REQUEST_ERR };
</ins><span class="cx"> } else if (!isChildTypeAllowed(newParent, newChild))
</span><del>- return HIERARCHY_REQUEST_ERR;
</del><ins>+ return Exception { HIERARCHY_REQUEST_ERR };
</ins><span class="cx">
</span><del>- return 0;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-static inline bool checkAcceptChildGuaranteedNodeTypes(ContainerNode& newParent, Node& newChild, ExceptionCode& ec)
</del><ins>+static inline ExceptionOr<void> checkAcceptChildGuaranteedNodeTypes(ContainerNode& newParent, Node& newChild)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(!newParent.isDocumentTypeNode());
</span><span class="cx"> ASSERT(isChildTypeAllowed(newParent, newChild));
</span><del>- if (newChild.contains(&newParent)) {
- ec = HIERARCHY_REQUEST_ERR;
- return false;
- }
-
- return true;
</del><ins>+ if (newChild.contains(&newParent))
+ return Exception { HIERARCHY_REQUEST_ERR };
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity
</span><del>-bool ContainerNode::ensurePreInsertionValidity(Node& newChild, Node* refChild, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> ContainerNode::ensurePreInsertionValidity(Node& newChild, Node* refChild)
</ins><span class="cx"> {
</span><del>- ec = checkAcceptChild(*this, newChild, refChild, Document::AcceptChildOperation::InsertOrAdd);
- return !ec;
</del><ins>+ return checkAcceptChild(*this, newChild, refChild, Document::AcceptChildOperation::InsertOrAdd);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // https://dom.spec.whatwg.org/#concept-node-replace
</span><del>-static inline bool checkPreReplacementValidity(ContainerNode& newParent, Node& newChild, Node& oldChild, ExceptionCode& ec)
</del><ins>+static inline ExceptionOr<void> checkPreReplacementValidity(ContainerNode& newParent, Node& newChild, Node& oldChild)
</ins><span class="cx"> {
</span><del>- ec = checkAcceptChild(newParent, newChild, &oldChild, Document::AcceptChildOperation::Replace);
- return !ec;
</del><ins>+ return checkAcceptChild(newParent, newChild, &oldChild, Document::AcceptChildOperation::Replace);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool ContainerNode::insertBefore(Node& newChild, Node* refChild, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> ContainerNode::insertBefore(Node& newChild, Node* refChild)
</ins><span class="cx"> {
</span><span class="cx"> // Check that this node is not "floating".
</span><span class="cx"> // If it is, it can be deleted as a side effect of sending mutation events.
</span><span class="cx"> ASSERT(refCount() || parentOrShadowHostNode());
</span><span class="cx">
</span><del>- ec = 0;
-
</del><span class="cx"> // Make sure adding the new child is OK.
</span><del>- if (!ensurePreInsertionValidity(newChild, refChild, ec))
- return false;
</del><ins>+ auto validityCheckResult = ensurePreInsertionValidity(newChild, refChild);
+ if (validityCheckResult.hasException())
+ return validityCheckResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> if (refChild == &newChild)
</span><span class="cx"> refChild = newChild.nextSibling();
</span><span class="lines">@@ -254,21 +250,22 @@
</span><span class="cx">
</span><span class="cx"> // insertBefore(node, null) is equivalent to appendChild(node)
</span><span class="cx"> if (!refChild)
</span><del>- return appendChildWithoutPreInsertionValidityCheck(newChild, ec);
</del><ins>+ return appendChildWithoutPreInsertionValidityCheck(newChild);
</ins><span class="cx">
</span><span class="cx"> Ref<ContainerNode> protectedThis(*this);
</span><span class="cx"> Ref<Node> next(*refChild);
</span><span class="cx">
</span><span class="cx"> NodeVector targets;
</span><del>- collectChildrenAndRemoveFromOldParent(newChild, targets, ec);
- if (ec)
- return false;
</del><ins>+ auto removeResult = collectChildrenAndRemoveFromOldParent(newChild, targets);
+ if (removeResult.hasException())
+ return removeResult.releaseException();
</ins><span class="cx"> if (targets.isEmpty())
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx">
</span><span class="cx"> // We need this extra check because collectChildrenAndRemoveFromOldParent() can fire mutation events.
</span><del>- if (!checkAcceptChildGuaranteedNodeTypes(*this, newChild, ec))
- return false;
</del><ins>+ auto checkAcceptResult = checkAcceptChildGuaranteedNodeTypes(*this, newChild);
+ if (checkAcceptResult.hasException())
+ return checkAcceptResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> InspectorInstrumentation::willInsertDOMNode(document(), *this);
</span><span class="cx">
</span><span class="lines">@@ -291,7 +288,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> dispatchSubtreeModifiedEvent();
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void ContainerNode::insertBeforeCommon(Node& nextChild, Node& newChild)
</span><span class="lines">@@ -383,7 +380,7 @@
</span><span class="cx"> notifyChildInserted(newChild, ChildChangeSourceParser);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool ContainerNode::replaceChild(Node& newChild, Node& oldChild, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> ContainerNode::replaceChild(Node& newChild, Node& oldChild)
</ins><span class="cx"> {
</span><span class="cx"> // Check that this node is not "floating".
</span><span class="cx"> // If it is, it can be deleted as a side effect of sending mutation events.
</span><span class="lines">@@ -391,17 +388,14 @@
</span><span class="cx">
</span><span class="cx"> Ref<ContainerNode> protectedThis(*this);
</span><span class="cx">
</span><del>- ec = 0;
-
</del><span class="cx"> // Make sure replacing the old child with the new is ok
</span><del>- if (!checkPreReplacementValidity(*this, newChild, oldChild, ec))
- return false;
</del><ins>+ auto validityResult = checkPreReplacementValidity(*this, newChild, oldChild);
+ if (validityResult.hasException())
+ return validityResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> // NOT_FOUND_ERR: Raised if oldChild is not a child of this node.
</span><del>- if (oldChild.parentNode() != this) {
- ec = NOT_FOUND_ERR;
- return false;
- }
</del><ins>+ if (oldChild.parentNode() != this)
+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><span class="cx"> RefPtr<Node> refChild = oldChild.nextSibling();
</span><span class="cx"> if (refChild.get() == &newChild)
</span><span class="lines">@@ -410,14 +404,15 @@
</span><span class="cx"> NodeVector targets;
</span><span class="cx"> {
</span><span class="cx"> ChildListMutationScope mutation(*this);
</span><del>- collectChildrenAndRemoveFromOldParent(newChild, targets, ec);
- if (ec)
- return false;
</del><ins>+ auto collectResult = collectChildrenAndRemoveFromOldParent(newChild, targets);
+ if (collectResult.hasException())
+ return collectResult.releaseException();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- // Does this one more time because collectChildrenAndRemoveFromOldParent() fires a MutationEvent.
- if (!checkPreReplacementValidity(*this, newChild, oldChild, ec))
- return false;
</del><ins>+ // Do this one more time because collectChildrenAndRemoveFromOldParent() fires a MutationEvent.
+ validityResult = checkPreReplacementValidity(*this, newChild, oldChild);
+ if (validityResult.hasException())
+ return validityResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> // Remove the node we're replacing.
</span><span class="cx"> Ref<Node> protectOldChild(oldChild);
</span><span class="lines">@@ -426,13 +421,14 @@
</span><span class="cx">
</span><span class="cx"> // If oldChild == newChild then oldChild no longer has a parent at this point.
</span><span class="cx"> if (oldChild.parentNode()) {
</span><del>- removeChild(oldChild, ec);
- if (ec)
- return false;
</del><ins>+ auto removeResult = removeChild(oldChild);
+ if (removeResult.hasException())
+ return removeResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> // Does this one more time because removeChild() fires a MutationEvent.
</span><del>- if (!checkPreReplacementValidity(*this, newChild, oldChild, ec))
- return false;
</del><ins>+ validityResult = checkPreReplacementValidity(*this, newChild, oldChild);
+ if (validityResult.hasException())
+ return validityResult.releaseException();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> InspectorInstrumentation::willInsertDOMNode(document(), *this);
</span><span class="lines">@@ -462,7 +458,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> dispatchSubtreeModifiedEvent();
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static void willRemoveChild(ContainerNode& container, Node& child)
</span><span class="lines">@@ -510,7 +506,7 @@
</span><span class="cx"> disconnectSubframesIfNeeded(*this, RootAndDescendants);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool ContainerNode::removeChild(Node& oldChild, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> ContainerNode::removeChild(Node& oldChild)
</ins><span class="cx"> {
</span><span class="cx"> // Check that this node is not "floating".
</span><span class="cx"> // If it is, it can be deleted as a side effect of sending mutation events.
</span><span class="lines">@@ -518,13 +514,9 @@
</span><span class="cx">
</span><span class="cx"> Ref<ContainerNode> protectedThis(*this);
</span><span class="cx">
</span><del>- ec = 0;
-
</del><span class="cx"> // NOT_FOUND_ERR: Raised if oldChild is not a child of this node.
</span><del>- if (oldChild.parentNode() != this) {
- ec = NOT_FOUND_ERR;
- return false;
- }
</del><ins>+ if (oldChild.parentNode() != this)
+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><span class="cx"> Ref<Node> child(oldChild);
</span><span class="cx">
</span><span class="lines">@@ -531,10 +523,8 @@
</span><span class="cx"> willRemoveChild(*this, child);
</span><span class="cx">
</span><span class="cx"> // Mutation events might have moved this child into a different parent.
</span><del>- if (child->parentNode() != this) {
- ec = NOT_FOUND_ERR;
- return false;
- }
</del><ins>+ if (child->parentNode() != this)
+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><span class="cx"> {
</span><span class="cx"> WidgetHierarchyUpdatesSuspensionScope suspendWidgetHierarchyUpdates;
</span><span class="lines">@@ -555,7 +545,7 @@
</span><span class="cx">
</span><span class="cx"> dispatchSubtreeModifiedEvent();
</span><span class="cx">
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void ContainerNode::removeBetween(Node* previousChild, Node* nextChild, Node& oldChild)
</span><span class="lines">@@ -639,36 +629,36 @@
</span><span class="cx"> dispatchSubtreeModifiedEvent();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool ContainerNode::appendChild(Node& newChild, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> ContainerNode::appendChild(Node& newChild)
</ins><span class="cx"> {
</span><span class="cx"> // Check that this node is not "floating".
</span><span class="cx"> // If it is, it can be deleted as a side effect of sending mutation events.
</span><span class="cx"> ASSERT(refCount() || parentOrShadowHostNode());
</span><span class="cx">
</span><del>- ec = 0;
-
</del><span class="cx"> // Make sure adding the new child is ok
</span><del>- if (!ensurePreInsertionValidity(newChild, nullptr, ec))
- return false;
</del><ins>+ auto validityCheckResult = ensurePreInsertionValidity(newChild, nullptr);
+ if (validityCheckResult.hasException())
+ return validityCheckResult.releaseException();
</ins><span class="cx">
</span><del>- return appendChildWithoutPreInsertionValidityCheck(newChild, ec);
</del><ins>+ return appendChildWithoutPreInsertionValidityCheck(newChild);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool ContainerNode::appendChildWithoutPreInsertionValidityCheck(Node& newChild, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> ContainerNode::appendChildWithoutPreInsertionValidityCheck(Node& newChild)
</ins><span class="cx"> {
</span><span class="cx"> Ref<ContainerNode> protectedThis(*this);
</span><span class="cx">
</span><span class="cx"> NodeVector targets;
</span><del>- collectChildrenAndRemoveFromOldParent(newChild, targets, ec);
- if (ec)
- return false;
</del><ins>+ auto removeResult = collectChildrenAndRemoveFromOldParent(newChild, targets);
+ if (removeResult.hasException())
+ return removeResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> if (targets.isEmpty())
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx">
</span><span class="cx"> // We need this extra check because collectChildrenAndRemoveFromOldParent() can fire mutation events.
</span><del>- if (!checkAcceptChildGuaranteedNodeTypes(*this, newChild, ec))
- return false;
</del><ins>+ auto nodeTypeResult = checkAcceptChildGuaranteedNodeTypes(*this, newChild);
+ if (nodeTypeResult.hasException())
+ return nodeTypeResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> InspectorInstrumentation::willInsertDOMNode(document(), *this);
</span><span class="cx">
</span><span class="lines">@@ -693,7 +683,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> dispatchSubtreeModifiedEvent();
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void ContainerNode::parserAppendChild(Node& newChild)
</span><span class="lines">@@ -731,9 +721,7 @@
</span><span class="cx"> Document& targetDocument = clone.document();
</span><span class="cx"> for (Node* child = firstChild(); child && !ec; child = child->nextSibling()) {
</span><span class="cx"> Ref<Node> clonedChild = child->cloneNodeInternal(targetDocument, CloningOperation::SelfWithTemplateContent);
</span><del>- clone.appendChild(clonedChild, ec);
-
- if (!ec && is<ContainerNode>(*child))
</del><ins>+ if (!clone.appendChild(clonedChild).hasException() && is<ContainerNode>(*child))
</ins><span class="cx"> downcast<ContainerNode>(*child).cloneChildNodes(downcast<ContainerNode>(clonedChild.get()));
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="lines">@@ -890,11 +878,7 @@
</span><span class="cx"> if (!node)
</span><span class="cx"> return { };
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- appendChild(*node, ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return appendChild(*node);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ExceptionOr<void> ContainerNode::prepend(Vector<NodeOrString>&& vector)
</span><span class="lines">@@ -907,11 +891,7 @@
</span><span class="cx"> if (!node)
</span><span class="cx"> return { };
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- insertBefore(*node, firstChild(), ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return insertBefore(*node, firstChild());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLCollection* ContainerNode::cachedHTMLCollection(CollectionType type)
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.h (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.h        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/ContainerNode.h        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -50,10 +50,10 @@
</span><span class="cx"> WEBCORE_EXPORT unsigned countChildNodes() const;
</span><span class="cx"> WEBCORE_EXPORT Node* traverseToChildAt(unsigned) const;
</span><span class="cx">
</span><del>- bool insertBefore(Node& newChild, Node* refChild, ExceptionCode& = ASSERT_NO_EXCEPTION);
- bool replaceChild(Node& newChild, Node& oldChild, ExceptionCode& = ASSERT_NO_EXCEPTION);
- WEBCORE_EXPORT bool removeChild(Node& child, ExceptionCode& = ASSERT_NO_EXCEPTION);
- WEBCORE_EXPORT bool appendChild(Node& newChild, ExceptionCode& = ASSERT_NO_EXCEPTION);
</del><ins>+ ExceptionOr<void> insertBefore(Node& newChild, Node* refChild);
+ ExceptionOr<void> replaceChild(Node& newChild, Node& oldChild);
+ WEBCORE_EXPORT ExceptionOr<void> removeChild(Node& child);
+ WEBCORE_EXPORT ExceptionOr<void> appendChild(Node& newChild);
</ins><span class="cx">
</span><span class="cx"> // These methods are only used during parsing.
</span><span class="cx"> // They don't send DOM mutation events or handle reparenting.
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> ExceptionOr<void> append(Vector<NodeOrString>&&);
</span><span class="cx"> ExceptionOr<void> prepend(Vector<NodeOrString>&&);
</span><span class="cx">
</span><del>- bool ensurePreInsertionValidity(Node& newChild, Node* refChild, ExceptionCode&);
</del><ins>+ ExceptionOr<void> ensurePreInsertionValidity(Node& newChild, Node* refChild);
</ins><span class="cx">
</span><span class="cx"> protected:
</span><span class="cx"> explicit ContainerNode(Document&, ConstructionType = CreateContainer);
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> void removeBetween(Node* previousChild, Node* nextChild, Node& oldChild);
</span><del>- bool appendChildWithoutPreInsertionValidityCheck(Node&, ExceptionCode&);
</del><ins>+ ExceptionOr<void> appendChildWithoutPreInsertionValidityCheck(Node&);
</ins><span class="cx"> void insertBeforeCommon(Node& nextChild, Node& oldChild);
</span><span class="cx"> void appendChildCommon(Node&);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/Document.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -1552,9 +1552,9 @@
</span><span class="cx"> updateTitle(StringWithDirection(title, LTR));
</span><span class="cx">
</span><span class="cx"> if (is<HTMLTitleElement>(m_titleElement.get()))
</span><del>- downcast<HTMLTitleElement>(*m_titleElement).setTextContent(title, ASSERT_NO_EXCEPTION);
</del><ins>+ downcast<HTMLTitleElement>(*m_titleElement).setTextContent(title);
</ins><span class="cx"> else if (is<SVGTitleElement>(m_titleElement.get()))
</span><del>- downcast<SVGTitleElement>(*m_titleElement).setTextContent(title, ASSERT_NO_EXCEPTION);
</del><ins>+ downcast<SVGTitleElement>(*m_titleElement).setTextContent(title);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Document::updateTitleElement(Element* newTitleElement)
</span><span class="lines">@@ -2561,14 +2561,9 @@
</span><span class="cx"> if (!m_documentElement)
</span><span class="cx"> return Exception { HIERARCHY_REQUEST_ERR };
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
</del><span class="cx"> if (currentBody)
</span><del>- m_documentElement->replaceChild(*newBody, *currentBody, ec);
- else
- m_documentElement->appendChild(*newBody, ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return m_documentElement->replaceChild(*newBody, *currentBody);
+ return m_documentElement->appendChild(*newBody);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Location* Document::location() const
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/Element.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -1584,14 +1584,14 @@
</span><span class="cx"> return m_tagName.toString();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Element::setPrefix(const AtomicString& prefix, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> Element::setPrefix(const AtomicString& prefix)
</ins><span class="cx"> {
</span><del>- ec = 0;
- checkSetPrefix(prefix, ec);
- if (ec)
- return;
</del><ins>+ auto result = checkSetPrefix(prefix);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx">
</span><span class="cx"> m_tagName.setPrefix(prefix.isEmpty() ? nullAtom : prefix);
</span><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const AtomicString& Element::imageSourceURL() const
</span><span class="lines">@@ -2124,7 +2124,7 @@
</span><span class="cx">
</span><span class="cx"> ExceptionOr<RefPtr<Attr>> Element::setAttributeNode(Attr& attrNode)
</span><span class="cx"> {
</span><del>- RefPtr<Attr> oldAttrNode = attrIfExists(attrNode.qualifiedName().localName(), shouldIgnoreAttributeCase(*this));
</del><ins>+ RefPtr<Attr> oldAttrNode = attrIfExists(attrNode.localName(), shouldIgnoreAttributeCase(*this));
</ins><span class="cx"> if (oldAttrNode.get() == &attrNode)
</span><span class="cx"> return WTFMove(oldAttrNode);
</span><span class="cx">
</span><span class="lines">@@ -2136,7 +2136,7 @@
</span><span class="cx"> synchronizeAllAttributes();
</span><span class="cx"> auto& elementData = ensureUniqueElementData();
</span><span class="cx">
</span><del>- auto existingAttributeIndex = elementData.findAttributeIndexByName(attrNode.qualifiedName().localName(), shouldIgnoreAttributeCase(*this));
</del><ins>+ auto existingAttributeIndex = elementData.findAttributeIndexByName(attrNode.localName(), shouldIgnoreAttributeCase(*this));
</ins><span class="cx"> if (existingAttributeIndex == ElementData::attributeNotFound)
</span><span class="cx"> setAttributeInternal(elementData.findAttributeIndexByName(attrNode.qualifiedName()), attrNode.qualifiedName(), attrNode.value(), NotInSynchronizationOfLazyAttribute);
</span><span class="cx"> else {
</span><span class="lines">@@ -2154,7 +2154,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> if (attrNode.ownerElement() != this) {
</span><del>- attrNode.attachToElement(this);
</del><ins>+ attrNode.attachToElement(*this);
</ins><span class="cx"> treeScope().adoptIfNeeded(&attrNode);
</span><span class="cx"> ensureAttrNodeListForElement(*this).append(&attrNode);
</span><span class="cx"> }
</span><span class="lines">@@ -2185,7 +2185,7 @@
</span><span class="cx">
</span><span class="cx"> setAttributeInternal(index, attrNode.qualifiedName(), attrNode.value(), NotInSynchronizationOfLazyAttribute);
</span><span class="cx">
</span><del>- attrNode.attachToElement(this);
</del><ins>+ attrNode.attachToElement(*this);
</ins><span class="cx"> treeScope().adoptIfNeeded(&attrNode);
</span><span class="cx"> ensureAttrNodeListForElement(*this).append(&attrNode);
</span><span class="cx">
</span><span class="lines">@@ -2535,10 +2535,9 @@
</span><span class="cx"> if (fragment.hasException())
</span><span class="cx"> return fragment.releaseException();
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- parent->replaceChild(fragment.releaseReturnValue().get(), *this, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto replaceResult = parent->replaceChild(fragment.releaseReturnValue().get(), *this);
+ if (replaceResult.hasException())
+ return replaceResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> RefPtr<Node> node = next ? next->previousSibling() : nullptr;
</span><span class="cx"> if (is<Text>(node.get())) {
</span><span class="lines">@@ -3397,7 +3396,7 @@
</span><span class="cx"> auto& attrNodeList = ensureAttrNodeListForElement(*this);
</span><span class="cx"> RefPtr<Attr> attrNode = findAttrNodeInList(attrNodeList, name);
</span><span class="cx"> if (!attrNode) {
</span><del>- attrNode = Attr::create(this, name);
</del><ins>+ attrNode = Attr::create(*this, name);
</ins><span class="cx"> treeScope().adoptIfNeeded(attrNode.get());
</span><span class="cx"> attrNodeList.append(attrNode);
</span><span class="cx"> }
</span><span class="lines">@@ -3647,27 +3646,24 @@
</span><span class="cx"> auto* parent = this->parentNode();
</span><span class="cx"> if (!parent)
</span><span class="cx"> return nullptr;
</span><del>- ExceptionCode ec = 0;
- bool success = parent->insertBefore(newChild, this, ec);
- if (ec)
- return Exception { ec };
- return success ? newChild.ptr() : nullptr;
</del><ins>+ auto result = parent->insertBefore(newChild, this);
+ if (result.hasException())
+ return result.releaseException();
+ return newChild.ptr();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (equalLettersIgnoringASCIICase(where, "afterbegin")) {
</span><del>- ExceptionCode ec = 0;
- bool success = insertBefore(newChild, firstChild(), ec);
- if (ec)
- return Exception { ec };
- return success ? newChild.ptr() : nullptr;
</del><ins>+ auto result = insertBefore(newChild, firstChild());
+ if (result.hasException())
+ return result.releaseException();
+ return newChild.ptr();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (equalLettersIgnoringASCIICase(where, "beforeend")) {
</span><del>- ExceptionCode ec = 0;
- bool success = appendChild(newChild, ec);
- if (ec)
- return Exception { ec };
- return success ? newChild.ptr() : nullptr;
</del><ins>+ auto result = appendChild(newChild);
+ if (result.hasException())
+ return result.releaseException();
+ return newChild.ptr();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (equalLettersIgnoringASCIICase(where, "afterend")) {
</span><span class="lines">@@ -3674,11 +3670,10 @@
</span><span class="cx"> auto* parent = this->parentNode();
</span><span class="cx"> if (!parent)
</span><span class="cx"> return nullptr;
</span><del>- ExceptionCode ec = 0;
- bool success = parent->insertBefore(newChild, nextSibling(), ec);
- if (ec)
- return Exception { ec };
- return success ? newChild.ptr() : nullptr;
</del><ins>+ auto result = parent->insertBefore(newChild, nextSibling());
+ if (result.hasException())
+ return result.releaseException();
+ return newChild.ptr();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> return Exception { SYNTAX_ERR };
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.h (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.h        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/Element.h        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -218,7 +218,7 @@
</span><span class="cx"> const AtomicString& prefix() const final { return m_tagName.prefix(); }
</span><span class="cx"> const AtomicString& namespaceURI() const final { return m_tagName.namespaceURI(); }
</span><span class="cx">
</span><del>- void setPrefix(const AtomicString&, ExceptionCode&) final;
</del><ins>+ ExceptionOr<void> setPrefix(const AtomicString&) final;
</ins><span class="cx">
</span><span class="cx"> String nodeName() const override;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/Node.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -361,9 +361,10 @@
</span><span class="cx"> return String();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Node::setNodeValue(const String& /*nodeValue*/, ExceptionCode&)
</del><ins>+ExceptionOr<void> Node::setNodeValue(const String&)
</ins><span class="cx"> {
</span><span class="cx"> // By default, setting nodeValue has no effect.
</span><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RefPtr<NodeList> Node::childNodes()
</span><span class="lines">@@ -399,40 +400,32 @@
</span><span class="cx"> return ElementTraversal::nextSibling(*this);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool Node::insertBefore(Node& newChild, Node* refChild, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> Node::insertBefore(Node& newChild, Node* refChild)
</ins><span class="cx"> {
</span><del>- if (!is<ContainerNode>(*this)) {
- ec = HIERARCHY_REQUEST_ERR;
- return false;
- }
- return downcast<ContainerNode>(*this).insertBefore(newChild, refChild, ec);
</del><ins>+ if (!is<ContainerNode>(*this))
+ return Exception { HIERARCHY_REQUEST_ERR };
+ return downcast<ContainerNode>(*this).insertBefore(newChild, refChild);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool Node::replaceChild(Node& newChild, Node& oldChild, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> Node::replaceChild(Node& newChild, Node& oldChild)
</ins><span class="cx"> {
</span><del>- if (!is<ContainerNode>(*this)) {
- ec = HIERARCHY_REQUEST_ERR;
- return false;
- }
- return downcast<ContainerNode>(*this).replaceChild(newChild, oldChild, ec);
</del><ins>+ if (!is<ContainerNode>(*this))
+ return Exception { HIERARCHY_REQUEST_ERR };
+ return downcast<ContainerNode>(*this).replaceChild(newChild, oldChild);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool Node::removeChild(Node& oldChild, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> Node::removeChild(Node& oldChild)
</ins><span class="cx"> {
</span><del>- if (!is<ContainerNode>(*this)) {
- ec = NOT_FOUND_ERR;
- return false;
- }
- return downcast<ContainerNode>(*this).removeChild(oldChild, ec);
</del><ins>+ if (!is<ContainerNode>(*this))
+ return Exception { NOT_FOUND_ERR };
+ return downcast<ContainerNode>(*this).removeChild(oldChild);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool Node::appendChild(Node& newChild, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> Node::appendChild(Node& newChild)
</ins><span class="cx"> {
</span><del>- if (!is<ContainerNode>(*this)) {
- ec = HIERARCHY_REQUEST_ERR;
- return false;
- }
- return downcast<ContainerNode>(*this).appendChild(newChild, ec);
</del><ins>+ if (!is<ContainerNode>(*this))
+ return Exception { HIERARCHY_REQUEST_ERR };
+ return downcast<ContainerNode>(*this).appendChild(newChild);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static HashSet<RefPtr<Node>> nodeSetPreTransformedFromNodeOrStringVector(const Vector<NodeOrString>& vector)
</span><span class="lines">@@ -485,10 +478,9 @@
</span><span class="cx">
</span><span class="cx"> auto nodeToReturn = DocumentFragment::create(document());
</span><span class="cx"> for (auto& node : nodes) {
</span><del>- ExceptionCode ec = 0;
- nodeToReturn->appendChild(node, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto appendResult = nodeToReturn->appendChild(node);
+ if (appendResult.hasException())
+ return appendResult.releaseException();
</ins><span class="cx"> }
</span><span class="cx"> return RefPtr<Node> { WTFMove(nodeToReturn) };
</span><span class="cx"> }
</span><span class="lines">@@ -514,11 +506,7 @@
</span><span class="cx"> else
</span><span class="cx"> viablePreviousSibling = parent->firstChild();
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- parent->insertBefore(*node, viablePreviousSibling.get(), ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return parent->insertBefore(*node, viablePreviousSibling.get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ExceptionOr<void> Node::after(Vector<NodeOrString>&& nodeOrStringVector)
</span><span class="lines">@@ -537,11 +525,7 @@
</span><span class="cx"> if (!node)
</span><span class="cx"> return { };
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- parent->insertBefore(*node, viableNextSibling.get(), ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return parent->insertBefore(*node, viableNextSibling.get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ExceptionOr<void> Node::replaceWith(Vector<NodeOrString>&& nodeOrStringVector)
</span><span class="lines">@@ -556,22 +540,15 @@
</span><span class="cx"> auto result = convertNodesOrStringsIntoNode(WTFMove(nodeOrStringVector));
</span><span class="cx"> if (result.hasException())
</span><span class="cx"> return result.releaseException();
</span><del>- auto node = result.releaseReturnValue();
</del><span class="cx">
</span><span class="cx"> if (parentNode() == parent) {
</span><del>- if (node) {
- ExceptionCode ec = 0;
- parent->replaceChild(*node, *this, ec);
- if (ec)
- return Exception { ec };
- } else
- parent->removeChild(*this);
- } else if (node) {
- ExceptionCode ec = 0;
- parent->insertBefore(*node, viableNextSibling.get(), ec);
- if (ec)
- return Exception { ec };
</del><ins>+ if (auto node = result.releaseReturnValue())
+ return parent->replaceChild(*node, *this);
+ return parent->removeChild(*this);
</ins><span class="cx"> }
</span><ins>+
+ if (auto node = result.releaseReturnValue())
+ return parent->insertBefore(*node, viableNextSibling.get());
</ins><span class="cx"> return { };
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -580,11 +557,7 @@
</span><span class="cx"> auto* parent = parentNode();
</span><span class="cx"> if (!parent)
</span><span class="cx"> return { };
</span><del>- ExceptionCode ec = 0;
- parent->removeChild(*this, ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return parent->removeChild(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Node::normalize()
</span><span class="lines">@@ -641,12 +614,10 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-RefPtr<Node> Node::cloneNodeForBindings(bool deep, ExceptionCode& ec)
</del><ins>+ExceptionOr<Ref<Node>> Node::cloneNodeForBindings(bool deep)
</ins><span class="cx"> {
</span><del>- if (UNLIKELY(isShadowRoot())) {
- ec = NOT_SUPPORTED_ERR;
- return nullptr;
- }
</del><ins>+ if (UNLIKELY(isShadowRoot()))
+ return Exception { NOT_SUPPORTED_ERR };
</ins><span class="cx"> return cloneNode(deep);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -656,12 +627,12 @@
</span><span class="cx"> return nullAtom;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Node::setPrefix(const AtomicString& /*prefix*/, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> Node::setPrefix(const AtomicString&)
</ins><span class="cx"> {
</span><span class="cx"> // The spec says that for nodes other than elements and attributes, prefix is always null.
</span><span class="cx"> // It does not say what to do when the user tries to set the prefix on another type of
</span><span class="cx"> // node, however Mozilla throws a NAMESPACE_ERR exception.
</span><del>- ec = NAMESPACE_ERR;
</del><ins>+ return Exception { NAMESPACE_ERR };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const AtomicString& Node::localName() const
</span><span class="lines">@@ -919,25 +890,25 @@
</span><span class="cx"> rareData()->clearNodeLists();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Node::checkSetPrefix(const AtomicString& prefix, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> Node::checkSetPrefix(const AtomicString& prefix)
</ins><span class="cx"> {
</span><span class="cx"> // Perform error checking as required by spec for setting Node.prefix. Used by
</span><span class="cx"> // Element::setPrefix() and Attr::setPrefix()
</span><span class="cx">
</span><del>- if (!prefix.isEmpty() && !Document::isValidName(prefix)) {
- ec = INVALID_CHARACTER_ERR;
- return;
- }
</del><ins>+ if (!prefix.isEmpty() && !Document::isValidName(prefix))
+ return Exception { INVALID_CHARACTER_ERR };
</ins><span class="cx">
</span><span class="cx"> // FIXME: Raise NAMESPACE_ERR if prefix is malformed per the Namespaces in XML specification.
</span><span class="cx">
</span><del>- const AtomicString& nodeNamespaceURI = namespaceURI();
- if ((nodeNamespaceURI.isEmpty() && !prefix.isEmpty())
- || (prefix == xmlAtom && nodeNamespaceURI != XMLNames::xmlNamespaceURI)) {
- ec = NAMESPACE_ERR;
- return;
- }
</del><ins>+ auto& namespaceURI = this->namespaceURI();
+ if (namespaceURI.isEmpty() && !prefix.isEmpty())
+ return Exception { NAMESPACE_ERR };
+ if (prefix == xmlAtom && namespaceURI != XMLNames::xmlNamespaceURI)
+ return Exception { NAMESPACE_ERR };
+
</ins><span class="cx"> // Attribute-specific checks are in Attr::setPrefix().
</span><ins>+
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool Node::isDescendantOf(const Node* other) const
</span><span class="lines">@@ -1502,7 +1473,7 @@
</span><span class="cx"> return isNullString ? String() : content.toString();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Node::setTextContent(const String& text, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> Node::setTextContent(const String& text)
</ins><span class="cx"> {
</span><span class="cx"> switch (nodeType()) {
</span><span class="cx"> case ATTRIBUTE_NODE:
</span><span class="lines">@@ -1510,23 +1481,23 @@
</span><span class="cx"> case CDATA_SECTION_NODE:
</span><span class="cx"> case COMMENT_NODE:
</span><span class="cx"> case PROCESSING_INSTRUCTION_NODE:
</span><del>- setNodeValue(text, ec);
- return;
</del><ins>+ return setNodeValue(text);
</ins><span class="cx"> case ELEMENT_NODE:
</span><span class="cx"> case DOCUMENT_FRAGMENT_NODE: {
</span><span class="cx"> auto container = makeRef(downcast<ContainerNode>(*this));
</span><span class="cx"> ChildListMutationScope mutation(container);
</span><span class="cx"> container->removeChildren();
</span><del>- if (!text.isEmpty())
- container->appendChild(document().createTextNode(text), ec);
- return;
</del><ins>+ if (text.isEmpty())
+ return { };
+ return container->appendChild(document().createTextNode(text));
</ins><span class="cx"> }
</span><span class="cx"> case DOCUMENT_NODE:
</span><span class="cx"> case DOCUMENT_TYPE_NODE:
</span><span class="cx"> // Do nothing.
</span><del>- return;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx"> ASSERT_NOT_REACHED();
</span><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool Node::offsetInCharacters() const
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.h (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.h        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/Node.h        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx"> bool hasTagName(const SVGQualifiedName&) const;
</span><span class="cx"> virtual String nodeName() const = 0;
</span><span class="cx"> virtual String nodeValue() const;
</span><del>- virtual void setNodeValue(const String&, ExceptionCode&);
</del><ins>+ virtual ExceptionOr<void> setNodeValue(const String&);
</ins><span class="cx"> virtual NodeType nodeType() const = 0;
</span><span class="cx"> virtual size_t approximateMemoryCost() const { return sizeof(*this); }
</span><span class="cx"> ContainerNode* parentNode() const;
</span><span class="lines">@@ -151,13 +151,10 @@
</span><span class="cx">
</span><span class="cx"> void getSubresourceURLs(ListHashSet<URL>&) const;
</span><span class="cx">
</span><del>- // These should all actually return a node, but this is only important for language bindings,
- // which will already know and hold a ref on the right node to return. Returning bool allows
- // these methods to be more efficient since they don't need to return a ref
- WEBCORE_EXPORT bool insertBefore(Node& newChild, Node* refChild, ExceptionCode&);
- WEBCORE_EXPORT bool replaceChild(Node& newChild, Node& oldChild, ExceptionCode&);
- WEBCORE_EXPORT bool removeChild(Node& child, ExceptionCode&);
- WEBCORE_EXPORT bool appendChild(Node& newChild, ExceptionCode&);
</del><ins>+ WEBCORE_EXPORT ExceptionOr<void> insertBefore(Node& newChild, Node* refChild);
+ WEBCORE_EXPORT ExceptionOr<void> replaceChild(Node& newChild, Node& oldChild);
+ WEBCORE_EXPORT ExceptionOr<void> removeChild(Node& child);
+ WEBCORE_EXPORT ExceptionOr<void> appendChild(Node& newChild);
</ins><span class="cx">
</span><span class="cx"> bool hasChildNodes() const { return firstChild(); }
</span><span class="cx">
</span><span class="lines">@@ -168,12 +165,12 @@
</span><span class="cx"> };
</span><span class="cx"> virtual Ref<Node> cloneNodeInternal(Document&, CloningOperation) = 0;
</span><span class="cx"> Ref<Node> cloneNode(bool deep) { return cloneNodeInternal(document(), deep ? CloningOperation::Everything : CloningOperation::OnlySelf); }
</span><del>- WEBCORE_EXPORT RefPtr<Node> cloneNodeForBindings(bool deep, ExceptionCode&);
</del><ins>+ WEBCORE_EXPORT ExceptionOr<Ref<Node>> cloneNodeForBindings(bool deep);
</ins><span class="cx">
</span><span class="cx"> virtual const AtomicString& localName() const;
</span><span class="cx"> virtual const AtomicString& namespaceURI() const;
</span><span class="cx"> virtual const AtomicString& prefix() const;
</span><del>- virtual void setPrefix(const AtomicString&, ExceptionCode&);
</del><ins>+ virtual ExceptionOr<void> setPrefix(const AtomicString&);
</ins><span class="cx"> WEBCORE_EXPORT void normalize();
</span><span class="cx">
</span><span class="cx"> bool isSameNode(Node* other) const { return this == other; }
</span><span class="lines">@@ -183,7 +180,7 @@
</span><span class="cx"> WEBCORE_EXPORT const AtomicString& lookupNamespaceURI(const AtomicString& prefix) const;
</span><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT String textContent(bool convertBRsToNewlines = false) const;
</span><del>- WEBCORE_EXPORT void setTextContent(const String&, ExceptionCode&);
</del><ins>+ WEBCORE_EXPORT ExceptionOr<void> setTextContent(const String&);
</ins><span class="cx">
</span><span class="cx"> Node* lastDescendant() const;
</span><span class="cx"> Node* firstDescendant() const;
</span><span class="lines">@@ -387,7 +384,7 @@
</span><span class="cx"> unsigned countChildNodes() const;
</span><span class="cx"> Node* traverseToChildAt(unsigned) const;
</span><span class="cx">
</span><del>- void checkSetPrefix(const AtomicString& prefix, ExceptionCode&);
</del><ins>+ ExceptionOr<void> checkSetPrefix(const AtomicString& prefix);
</ins><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT bool isDescendantOf(const Node*) const;
</span><span class="cx"> bool isDescendantOrShadowDescendantOf(const Node*) const;
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.idl (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.idl        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/Node.idl        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -25,8 +25,7 @@
</span><span class="cx"> JSCustomHeader,
</span><span class="cx"> JSCustomMarkFunction,
</span><span class="cx"> JSCustomPushEventHandlerScope,
</span><del>-] interface Node : EventTarget
- {
</del><ins>+] interface Node : EventTarget {
</ins><span class="cx"> // NodeType
</span><span class="cx"> const unsigned short ELEMENT_NODE = 1;
</span><span class="cx"> const unsigned short ATTRIBUTE_NODE = 2;
</span><span class="lines">@@ -43,8 +42,7 @@
</span><span class="cx">
</span><span class="cx"> readonly attribute DOMString nodeName;
</span><span class="cx">
</span><del>- // FIXME: the spec says this can also raise on retrieval.
- [CEReactions, SetterMayThrowLegacyException] attribute DOMString? nodeValue;
</del><ins>+ [CEReactions, SetterMayThrowException] attribute DOMString? nodeValue;
</ins><span class="cx">
</span><span class="cx"> [DOMJIT=Getter, CustomGetter] readonly attribute unsigned short nodeType;
</span><span class="cx"> [DOMJIT=Getter] readonly attribute Node? parentNode;
</span><span class="lines">@@ -55,21 +53,20 @@
</span><span class="cx"> [DOMJIT=Getter] readonly attribute Node? nextSibling;
</span><span class="cx"> [DOMJIT=Getter] readonly attribute Document? ownerDocument;
</span><span class="cx">
</span><del>- [CEReactions, Custom, MayThrowLegacyException] Node insertBefore(Node newChild, Node? refChild);
- [CEReactions, Custom, MayThrowLegacyException] Node replaceChild(Node newChild, Node oldChild);
- [CEReactions, Custom, MayThrowLegacyException] Node removeChild(Node oldChild);
- [CEReactions, Custom, MayThrowLegacyException] Node appendChild(Node newChild);
</del><ins>+ [CEReactions, Custom, MayThrowException] Node insertBefore(Node newChild, Node? refChild);
+ [CEReactions, Custom, MayThrowException] Node replaceChild(Node newChild, Node oldChild);
+ [CEReactions, Custom, MayThrowException] Node removeChild(Node oldChild);
+ [CEReactions, Custom, MayThrowException] Node appendChild(Node newChild);
</ins><span class="cx">
</span><span class="cx"> boolean hasChildNodes();
</span><span class="cx">
</span><del>- [CEReactions, ImplementedAs=cloneNodeForBindings, MayThrowLegacyException, NewObject] Node cloneNode(optional boolean deep = false);
</del><ins>+ [CEReactions, ImplementedAs=cloneNodeForBindings, MayThrowException, NewObject] Node cloneNode(optional boolean deep = false);
</ins><span class="cx">
</span><span class="cx"> void normalize();
</span><span class="cx">
</span><span class="cx"> readonly attribute USVString baseURI;
</span><span class="cx">
</span><del>- // FIXME: the spec says this can also raise on retrieval.
- [CEReactions, SetterMayThrowLegacyException] attribute DOMString? textContent;
</del><ins>+ [CEReactions, SetterMayThrowException] attribute DOMString? textContent;
</ins><span class="cx">
</span><span class="cx"> boolean isSameNode(Node? other);
</span><span class="cx"> boolean isEqualNode(Node? other);
</span><span class="lines">@@ -97,5 +94,5 @@
</span><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> dictionary GetRootNodeOptions {
</span><del>- boolean composed = false;
</del><ins>+ boolean composed = false;
</ins><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoredomRangecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Range.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Range.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/Range.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -644,10 +644,9 @@
</span><span class="cx"> // (or just delete the stuff in between)
</span><span class="cx">
</span><span class="cx"> if ((action == Extract || action == Clone) && leftContents) {
</span><del>- ExceptionCode ec = 0;
- fragment->appendChild(*leftContents, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = fragment->appendChild(*leftContents);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (processStart) {
</span><span class="lines">@@ -660,10 +659,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if ((action == Extract || action == Clone) && rightContents) {
</span><del>- ExceptionCode ec = 0;
- fragment->appendChild(*rightContents, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = fragment->appendChild(*rightContents);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> return WTFMove(fragment);
</span><span class="lines">@@ -705,10 +703,9 @@
</span><span class="cx"> return deleteResult.releaseException();
</span><span class="cx"> if (fragment) {
</span><span class="cx"> result = fragment;
</span><del>- ExceptionCode ec = 0;
- result->appendChild(characters, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto appendResult = result->appendChild(characters);
+ if (appendResult.hasException())
+ return appendResult.releaseException();
</ins><span class="cx"> } else
</span><span class="cx"> result = WTFMove(characters);
</span><span class="cx"> }
</span><span class="lines">@@ -727,10 +724,9 @@
</span><span class="cx"> processingInstruction->setData(processingInstruction->data().substring(startOffset, endOffset - startOffset));
</span><span class="cx"> if (fragment) {
</span><span class="cx"> result = fragment;
</span><del>- ExceptionCode ec = 0;
- result->appendChild(processingInstruction, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto appendResult = result->appendChild(processingInstruction);
+ if (appendResult.hasException())
+ return appendResult.releaseException();
</ins><span class="cx"> } else
</span><span class="cx"> result = WTFMove(processingInstruction);
</span><span class="cx"> }
</span><span class="lines">@@ -777,24 +773,21 @@
</span><span class="cx"> for (auto& node : nodes) {
</span><span class="cx"> switch (action) {
</span><span class="cx"> case Range::Delete: {
</span><del>- ExceptionCode ec = 0;
- oldContainer->removeChild(node, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = oldContainer->removeChild(node);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx"> case Range::Extract: {
</span><del>- ExceptionCode ec = 0;
- newContainer->appendChild(node, ec); // will remove n from its parent
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = newContainer->appendChild(node); // will remove node from its parent
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx"> case Range::Clone: {
</span><del>- ExceptionCode ec = 0;
- newContainer->appendChild(node->cloneNode(true), ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = newContainer->appendChild(node->cloneNode(true));
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="lines">@@ -818,10 +811,9 @@
</span><span class="cx"> if (action == Range::Extract || action == Range::Clone) {
</span><span class="cx"> auto clonedAncestor = ancestor->cloneNode(false); // Might have been removed already during mutation event.
</span><span class="cx"> if (clonedContainer) {
</span><del>- ExceptionCode ec = 0;
- clonedAncestor->appendChild(*clonedContainer, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = clonedAncestor->appendChild(*clonedContainer);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx"> clonedContainer = WTFMove(clonedAncestor);
</span><span class="cx"> }
</span><span class="lines">@@ -839,36 +831,31 @@
</span><span class="cx"> for (auto& child : nodes) {
</span><span class="cx"> switch (action) {
</span><span class="cx"> case Range::Delete: {
</span><del>- ExceptionCode ec = 0;
- ancestor->removeChild(child, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = ancestor->removeChild(child);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx"> case Range::Extract: // will remove child from ancestor
</span><span class="cx"> if (direction == ProcessContentsForward) {
</span><del>- ExceptionCode ec = 0;
- clonedContainer->appendChild(child, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = clonedContainer->appendChild(child);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> } else {
</span><del>- ExceptionCode ec = 0;
- clonedContainer->insertBefore(child, clonedContainer->firstChild(), ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = clonedContainer->insertBefore(child, clonedContainer->firstChild());
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx"> break;
</span><span class="cx"> case Range::Clone:
</span><span class="cx"> if (direction == ProcessContentsForward) {
</span><del>- ExceptionCode ec = 0;
- clonedContainer->appendChild(child->cloneNode(true), ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = clonedContainer->appendChild(child->cloneNode(true));
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> } else {
</span><del>- ExceptionCode ec = 0;
- clonedContainer->insertBefore(child->cloneNode(true), clonedContainer->firstChild(), ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = clonedContainer->insertBefore(child->cloneNode(true), clonedContainer->firstChild());
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="lines">@@ -914,9 +901,9 @@
</span><span class="cx">
</span><span class="cx"> Ref<ContainerNode> parent = downcast<ContainerNode>(*parentNode);
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- if (!parent->ensurePreInsertionValidity(node, referenceNode.get(), ec))
- return Exception { ec };
</del><ins>+ auto result = parent->ensurePreInsertionValidity(node, referenceNode.get());
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx">
</span><span class="cx"> EventQueueScope scope;
</span><span class="cx"> if (startIsText) {
</span><span class="lines">@@ -939,9 +926,9 @@
</span><span class="cx"> else
</span><span class="cx"> ++newOffset;
</span><span class="cx">
</span><del>- parent->insertBefore(node, referenceNode.get(), ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto insertResult = parent->insertBefore(node, referenceNode.get());
+ if (insertResult.hasException())
+ return insertResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> if (collapsed())
</span><span class="cx"> return setEnd(WTFMove(parent), newOffset);
</span><span class="lines">@@ -1123,10 +1110,9 @@
</span><span class="cx">
</span><span class="cx"> // Step 4: If newParent has children, replace all with null within newParent.
</span><span class="cx"> while (auto* child = newParent.firstChild()) {
</span><del>- ExceptionCode ec = 0;
- downcast<ContainerNode>(newParent).removeChild(*child, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = downcast<ContainerNode>(newParent).removeChild(*child);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Step 5: Insert newParent into context object.
</span><span class="lines">@@ -1135,10 +1121,9 @@
</span><span class="cx"> return insertResult.releaseException();
</span><span class="cx">
</span><span class="cx"> // Step 6: Append fragment to newParent.
</span><del>- ExceptionCode ec = 0;
- newParent.appendChild(fragment.releaseReturnValue(), ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto appendResult = newParent.appendChild(fragment.releaseReturnValue());
+ if (appendResult.hasException())
+ return appendResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> // Step 7: Select newParent within context object.
</span><span class="cx"> return selectNode(newParent);
</span></span></pre></div>
<a id="trunkSourceWebCoredomTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Text.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Text.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/dom/Text.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -68,11 +68,10 @@
</span><span class="cx">
</span><span class="cx"> dispatchModifiedEvent(oldData);
</span><span class="cx">
</span><del>- if (parentNode()) {
- ExceptionCode ec = 0;
- parentNode()->insertBefore(newText, nextSibling(), ec);
- if (ec)
- return Exception { ec };
</del><ins>+ if (auto* parent = parentNode()) {
+ auto insertResult = parent->insertBefore(newText, nextSibling());
+ if (insertResult.hasException())
+ return insertResult.releaseException();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> document().textNodeSplit(this);
</span><span class="lines">@@ -131,7 +130,7 @@
</span><span class="cx"> for (RefPtr<Node> n = startText; n && n != this && n->isTextNode() && n->parentNode() == parent;) {
</span><span class="cx"> Ref<Node> nodeToRemove(n.releaseNonNull());
</span><span class="cx"> n = nodeToRemove->nextSibling();
</span><del>- parent->removeChild(WTFMove(nodeToRemove), IGNORE_EXCEPTION);
</del><ins>+ parent->removeChild(nodeToRemove);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (this != endText) {
</span><span class="lines">@@ -139,13 +138,13 @@
</span><span class="cx"> for (RefPtr<Node> n = nextSibling(); n && n != onePastEndText && n->isTextNode() && n->parentNode() == parent;) {
</span><span class="cx"> Ref<Node> nodeToRemove(n.releaseNonNull());
</span><span class="cx"> n = nodeToRemove->nextSibling();
</span><del>- parent->removeChild(WTFMove(nodeToRemove), IGNORE_EXCEPTION);
</del><ins>+ parent->removeChild(nodeToRemove);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (newText.isEmpty()) {
</span><span class="cx"> if (parent && parentNode() == parent)
</span><del>- parent->removeChild(*this, IGNORE_EXCEPTION);
</del><ins>+ parent->removeChild(*this);
</ins><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingAppendNodeCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/AppendNodeCommand.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/AppendNodeCommand.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/AppendNodeCommand.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> if (!m_parent->hasEditableStyle() && m_parent->renderer())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_parent->appendChild(m_node, IGNORE_EXCEPTION);
</del><ins>+ m_parent->appendChild(m_node);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void AppendNodeCommand::doUnapply()
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingCompositeEditCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/CompositeEditCommand.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/CompositeEditCommand.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -1161,7 +1161,7 @@
</span><span class="cx"> Ref<HTMLElement> CompositeEditCommand::insertNewDefaultParagraphElementAt(const Position& position)
</span><span class="cx"> {
</span><span class="cx"> auto paragraphElement = createDefaultParagraphElement(document());
</span><del>- paragraphElement->appendChild(HTMLBRElement::create(document()), IGNORE_EXCEPTION);
</del><ins>+ paragraphElement->appendChild(HTMLBRElement::create(document()));
</ins><span class="cx"> insertNodeAt(paragraphElement.ptr(), position);
</span><span class="cx"> return paragraphElement;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/EditorCommand.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/EditorCommand.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/EditorCommand.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -166,9 +166,7 @@
</span><span class="cx"> static bool executeInsertNode(Frame& frame, Ref<Node>&& content)
</span><span class="cx"> {
</span><span class="cx"> auto fragment = DocumentFragment::create(*frame.document());
</span><del>- ExceptionCode ec = 0;
- fragment->appendChild(content, ec);
- if (ec)
</del><ins>+ if (fragment->appendChild(content).hasException())
</ins><span class="cx"> return false;
</span><span class="cx"> return executeInsertFragment(frame, WTFMove(fragment));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingInsertNodeBeforeCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/InsertNodeBeforeCommand.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/InsertNodeBeforeCommand.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/InsertNodeBeforeCommand.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> return;
</span><span class="cx"> ASSERT(isEditableNode(*parent));
</span><span class="cx">
</span><del>- parent->insertBefore(*m_insertChild, m_refChild.get(), IGNORE_EXCEPTION);
</del><ins>+ parent->insertBefore(*m_insertChild, m_refChild.get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InsertNodeBeforeCommand::doUnapply()
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingMergeIdenticalElementsCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/MergeIdenticalElementsCommand.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/MergeIdenticalElementsCommand.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/MergeIdenticalElementsCommand.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx"> children.append(*child);
</span><span class="cx">
</span><span class="cx"> for (auto& child : children)
</span><del>- m_element2->insertBefore(child, m_atChild.get(), IGNORE_EXCEPTION);
</del><ins>+ m_element2->insertBefore(child, m_atChild.get());
</ins><span class="cx">
</span><span class="cx"> m_element1->remove();
</span><span class="cx"> }
</span><span class="lines">@@ -64,14 +64,11 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<Node> atChild = WTFMove(m_atChild);
</span><span class="cx">
</span><del>- ContainerNode* parent = m_element2->parentNode();
</del><ins>+ auto* parent = m_element2->parentNode();
</ins><span class="cx"> if (!parent || !parent->hasEditableStyle())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
-
- parent->insertBefore(*m_element1, m_element2.get(), ec);
- if (ec)
</del><ins>+ if (parent->insertBefore(*m_element1, m_element2.get()).hasException())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> Vector<Ref<Node>> children;
</span><span class="lines">@@ -79,7 +76,7 @@
</span><span class="cx"> children.append(*child);
</span><span class="cx">
</span><span class="cx"> for (auto& child : children)
</span><del>- m_element1->appendChild(child, ec);
</del><ins>+ m_element1->appendChild(child);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #ifndef NDEBUG
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingRemoveNodeCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/RemoveNodeCommand.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/RemoveNodeCommand.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/RemoveNodeCommand.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> if (!parent || !parent->hasEditableStyle())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- parent->insertBefore(m_node, refChild.get(), IGNORE_EXCEPTION);
</del><ins>+ parent->insertBefore(m_node, refChild.get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #ifndef NDEBUG
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingReplaceNodeWithSpanCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ReplaceNodeWithSpanCommand.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ReplaceNodeWithSpanCommand.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/ReplaceNodeWithSpanCommand.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -53,10 +53,10 @@
</span><span class="cx"> NodeVector children;
</span><span class="cx"> getChildNodes(nodeToReplace, children);
</span><span class="cx"> for (auto& child : children)
</span><del>- newNode.appendChild(child, ASSERT_NO_EXCEPTION);
</del><ins>+ newNode.appendChild(child);
</ins><span class="cx">
</span><del>- parentNode->insertBefore(newNode, &nodeToReplace, ASSERT_NO_EXCEPTION);
- parentNode->removeChild(nodeToReplace, ASSERT_NO_EXCEPTION);
</del><ins>+ parentNode->insertBefore(newNode, &nodeToReplace);
+ parentNode->removeChild(nodeToReplace);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void ReplaceNodeWithSpanCommand::doApply()
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingReplaceSelectionCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -245,7 +245,7 @@
</span><span class="cx"> if (!parent)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- parent->removeChild(*node, ASSERT_NO_EXCEPTION);
</del><ins>+ parent->removeChild(*node);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void ReplacementFragment::insertNodeBefore(PassRefPtr<Node> node, Node* refNode)
</span><span class="lines">@@ -257,7 +257,7 @@
</span><span class="cx"> if (!parent)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- parent->insertBefore(*node, refNode, ASSERT_NO_EXCEPTION);
</del><ins>+ parent->insertBefore(*node, refNode);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Ref<HTMLElement> ReplacementFragment::insertFragmentForTestRendering(Node* rootEditableElement)
</span><span class="lines">@@ -264,8 +264,8 @@
</span><span class="cx"> {
</span><span class="cx"> auto holder = createDefaultParagraphElement(document());
</span><span class="cx">
</span><del>- holder->appendChild(*m_fragment, ASSERT_NO_EXCEPTION);
- rootEditableElement->appendChild(holder, ASSERT_NO_EXCEPTION);
</del><ins>+ holder->appendChild(*m_fragment);
+ rootEditableElement->appendChild(holder);
</ins><span class="cx"> document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx">
</span><span class="cx"> return holder;
</span><span class="lines">@@ -277,8 +277,8 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> while (RefPtr<Node> node = holder->firstChild()) {
</span><del>- holder->removeChild(*node, ASSERT_NO_EXCEPTION);
- m_fragment->appendChild(*node, ASSERT_NO_EXCEPTION);
</del><ins>+ holder->removeChild(*node);
+ m_fragment->appendChild(*node);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> removeNode(holder);
</span><span class="lines">@@ -1484,7 +1484,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> while (RefPtr<Node> listItem = listElement->firstChild()) {
</span><del>- listElement->removeChild(*listItem, ASSERT_NO_EXCEPTION);
</del><ins>+ listElement->removeChild(*listItem);
</ins><span class="cx"> if (isStart || isMiddle) {
</span><span class="cx"> insertNodeBefore(listItem, lastNode);
</span><span class="cx"> insertedNodes.respondToNodeInsertion(listItem.get());
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingSplitElementCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/SplitElementCommand.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/SplitElementCommand.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/SplitElementCommand.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -50,14 +50,11 @@
</span><span class="cx"> Vector<Ref<Node>> children;
</span><span class="cx"> for (Node* node = m_element2->firstChild(); node != m_atChild; node = node->nextSibling())
</span><span class="cx"> children.append(*node);
</span><del>-
- ExceptionCode ec = 0;
-
- ContainerNode* parent = m_element2->parentNode();
</del><ins>+
+ auto* parent = m_element2->parentNode();
</ins><span class="cx"> if (!parent || !parent->hasEditableStyle())
</span><span class="cx"> return;
</span><del>- parent->insertBefore(*m_element1, m_element2.get(), ec);
- if (ec)
</del><ins>+ if (parent->insertBefore(*m_element1, m_element2.get()).hasException())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> // Delete id attribute from the second element because the same id cannot be used for more than one element
</span><span class="lines">@@ -64,7 +61,7 @@
</span><span class="cx"> m_element2->removeAttribute(HTMLNames::idAttr);
</span><span class="cx">
</span><span class="cx"> for (auto& child : children)
</span><del>- m_element1->appendChild(child, ec);
</del><ins>+ m_element1->appendChild(child);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void SplitElementCommand::doApply()
</span><span class="lines">@@ -86,7 +83,7 @@
</span><span class="cx"> RefPtr<Node> refChild = m_element2->firstChild();
</span><span class="cx">
</span><span class="cx"> for (auto& child : children)
</span><del>- m_element2->insertBefore(child, refChild.get(), IGNORE_EXCEPTION);
</del><ins>+ m_element2->insertBefore(child, refChild.get());
</ins><span class="cx">
</span><span class="cx"> // Recover the id attribute of the original element.
</span><span class="cx"> const AtomicString& id = m_element1->getIdAttribute();
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingSplitTextNodeCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/SplitTextNodeCommand.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/SplitTextNodeCommand.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/SplitTextNodeCommand.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -97,9 +97,7 @@
</span><span class="cx">
</span><span class="cx"> void SplitTextNodeCommand::insertText1AndTrimText2()
</span><span class="cx"> {
</span><del>- ExceptionCode ec = 0;
- m_text2->parentNode()->insertBefore(*m_text1, m_text2.get(), ec);
- if (ec)
</del><ins>+ if (m_text2->parentNode()->insertBefore(*m_text1, m_text2.get()).hasException())
</ins><span class="cx"> return;
</span><span class="cx"> m_text2->deleteData(0, m_offset);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingWrapContentsInDummySpanCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -44,9 +44,9 @@
</span><span class="cx"> children.append(*child);
</span><span class="cx">
</span><span class="cx"> for (auto& child : children)
</span><del>- m_dummySpan->appendChild(child, IGNORE_EXCEPTION);
</del><ins>+ m_dummySpan->appendChild(child);
</ins><span class="cx">
</span><del>- m_element->appendChild(*m_dummySpan, IGNORE_EXCEPTION);
</del><ins>+ m_element->appendChild(*m_dummySpan);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WrapContentsInDummySpanCommand::doApply()
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> children.append(*child);
</span><span class="cx">
</span><span class="cx"> for (auto& child : children)
</span><del>- m_element->appendChild(child, IGNORE_EXCEPTION);
</del><ins>+ m_element->appendChild(child);
</ins><span class="cx">
</span><span class="cx"> m_dummySpan->remove();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingcocoaEditorCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/cocoa/EditorCocoa.mm (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/cocoa/EditorCocoa.mm        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/cocoa/EditorCocoa.mm        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -73,15 +73,11 @@
</span><span class="cx"> String styleText = typingStyle->style()->asText() + " display: inline";
</span><span class="cx"> styleElement->setAttribute(HTMLNames::styleAttr, styleText);
</span><span class="cx">
</span><del>- styleElement->appendChild(frame->document()->createEditingTextNode(emptyString()), ASSERT_NO_EXCEPTION);
</del><ins>+ styleElement->appendChild(frame->document()->createEditingTextNode(emptyString()));
</ins><span class="cx">
</span><del>- ContainerNode* parentNode = position.deprecatedNode()->parentNode();
-
- if (!parentNode->ensurePreInsertionValidity(styleElement.copyRef(), nullptr, IGNORE_EXCEPTION))
</del><ins>+ if (position.deprecatedNode()->parentNode()->appendChild(styleElement).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><del>- parentNode->appendChild(styleElement, ASSERT_NO_EXCEPTION);
-
</del><span class="cx"> nodeToRemove = styleElement.ptr();
</span><span class="cx">
</span><span class="cx"> frame->document()->updateStyleIfNeeded();
</span></span></pre></div>
<a id="trunkSourceWebCoreeditinghtmleditingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/htmlediting.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/htmlediting.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/htmlediting.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -935,7 +935,7 @@
</span><span class="cx"> spanElement->setAttributeWithoutSynchronization(classAttr, AppleTabSpanClass);
</span><span class="cx"> spanElement->setAttribute(styleAttr, "white-space:pre");
</span><span class="cx">
</span><del>- spanElement->appendChild(tabTextNode, ASSERT_NO_EXCEPTION);
</del><ins>+ spanElement->appendChild(tabTextNode);
</ins><span class="cx">
</span><span class="cx"> return spanElement;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingiosEditorIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ios/EditorIOS.mm (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ios/EditorIOS.mm        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/ios/EditorIOS.mm        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -375,10 +375,8 @@
</span><span class="cx"> void Editor::WebContentReader::addFragment(RefPtr<DocumentFragment>&& newFragment)
</span><span class="cx"> {
</span><span class="cx"> if (fragment) {
</span><del>- if (newFragment && newFragment->firstChild()) {
- ExceptionCode ec;
- fragment->appendChild(*newFragment->firstChild(), ec);
- }
</del><ins>+ if (newFragment && newFragment->firstChild())
+ fragment->appendChild(*newFragment->firstChild());
</ins><span class="cx"> } else
</span><span class="cx"> fragment = WTFMove(newFragment);
</span><span class="cx"> }
</span><span class="lines">@@ -635,7 +633,6 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ExceptionCode ec;
</del><span class="cx"> RefPtr<Range> context = document().createRange();
</span><span class="cx"> context->selectNodeContents(element);
</span><span class="cx">
</span><span class="lines">@@ -643,7 +640,7 @@
</span><span class="cx"> for (auto& interpretations : dictationPhrases)
</span><span class="cx"> dictationPhrasesBuilder.append(interpretations[0]);
</span><span class="cx">
</span><del>- element.appendChild(createFragmentFromText(*context, dictationPhrasesBuilder.toString()), ec);
</del><ins>+ element.appendChild(createFragmentFromText(*context, dictationPhrasesBuilder.toString()));
</ins><span class="cx">
</span><span class="cx"> // We need a layout in order to add markers below.
</span><span class="cx"> document().updateLayout();
</span><span class="lines">@@ -712,7 +709,6 @@
</span><span class="cx"> // FIXME: The element we're inserting into is often the body element. It seems strange to be removing it
</span><span class="cx"> // (even if it is only temporary). ReplaceSelectionCommand doesn't bother doing this when it inserts
</span><span class="cx"> // content, why should we here?
</span><del>- ExceptionCode ec;
</del><span class="cx"> RefPtr<Node> parent = element.parentNode();
</span><span class="cx"> RefPtr<Node> siblingAfter = element.nextSibling();
</span><span class="cx"> if (parent)
</span><span class="lines">@@ -720,14 +716,14 @@
</span><span class="cx">
</span><span class="cx"> auto context = document().createRange();
</span><span class="cx"> context->selectNodeContents(element);
</span><del>- element.appendChild(createFragmentFromText(context, text), ec);
</del><ins>+ element.appendChild(createFragmentFromText(context, text));
</ins><span class="cx">
</span><span class="cx"> // restore element to document
</span><span class="cx"> if (parent) {
</span><span class="cx"> if (siblingAfter)
</span><del>- parent->insertBefore(element, siblingAfter.get(), ec);
</del><ins>+ parent->insertBefore(element, siblingAfter.get());
</ins><span class="cx"> else
</span><del>- parent->appendChild(element, ec);
</del><ins>+ parent->appendChild(element);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmarkupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/markup.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/markup.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/editing/markup.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -710,7 +710,7 @@
</span><span class="cx"> Document& document = paragraph.document();
</span><span class="cx">
</span><span class="cx"> if (string.isEmpty()) {
</span><del>- paragraph.appendChild(createBlockPlaceholderElement(document), ASSERT_NO_EXCEPTION);
</del><ins>+ paragraph.appendChild(createBlockPlaceholderElement(document));
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -727,11 +727,11 @@
</span><span class="cx"> // append the non-tab textual part
</span><span class="cx"> if (!s.isEmpty()) {
</span><span class="cx"> if (!tabText.isEmpty()) {
</span><del>- paragraph.appendChild(createTabSpanElement(document, tabText), ASSERT_NO_EXCEPTION);
</del><ins>+ paragraph.appendChild(createTabSpanElement(document, tabText));
</ins><span class="cx"> tabText = emptyString();
</span><span class="cx"> }
</span><span class="cx"> Ref<Node> textNode = document.createTextNode(stringWithRebalancedWhitespace(s, first, i + 1 == numEntries));
</span><del>- paragraph.appendChild(textNode, ASSERT_NO_EXCEPTION);
</del><ins>+ paragraph.appendChild(textNode);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // there is a tab after every entry, except the last entry
</span><span class="lines">@@ -739,7 +739,7 @@
</span><span class="cx"> if (i + 1 != numEntries)
</span><span class="cx"> tabText.append('\t');
</span><span class="cx"> else if (!tabText.isEmpty())
</span><del>- paragraph.appendChild(createTabSpanElement(document, tabText), ASSERT_NO_EXCEPTION);
</del><ins>+ paragraph.appendChild(createTabSpanElement(document, tabText));
</ins><span class="cx">
</span><span class="cx"> first = false;
</span><span class="cx"> }
</span><span class="lines">@@ -792,11 +792,11 @@
</span><span class="cx"> string.replace('\r', '\n');
</span><span class="cx">
</span><span class="cx"> if (contextPreservesNewline(context)) {
</span><del>- fragment->appendChild(document.createTextNode(string), ASSERT_NO_EXCEPTION);
</del><ins>+ fragment->appendChild(document.createTextNode(string));
</ins><span class="cx"> if (string.endsWith('\n')) {
</span><span class="cx"> auto element = HTMLBRElement::create(document);
</span><span class="cx"> element->setAttributeWithoutSynchronization(classAttr, AppleInterchangeNewline);
</span><del>- fragment->appendChild(element, ASSERT_NO_EXCEPTION);
</del><ins>+ fragment->appendChild(element);
</ins><span class="cx"> }
</span><span class="cx"> return fragment;
</span><span class="cx"> }
</span><span class="lines">@@ -838,7 +838,7 @@
</span><span class="cx"> element = createDefaultParagraphElement(document);
</span><span class="cx"> fillContainerFromString(*element, s);
</span><span class="cx"> }
</span><del>- fragment->appendChild(*element, ASSERT_NO_EXCEPTION);
</del><ins>+ fragment->appendChild(*element);
</ins><span class="cx"> }
</span><span class="cx"> return fragment;
</span><span class="cx"> }
</span><span class="lines">@@ -942,10 +942,10 @@
</span><span class="cx"> RefPtr<Node> nextChild;
</span><span class="cx"> for (RefPtr<Node> child = element.firstChild(); child; child = nextChild) {
</span><span class="cx"> nextChild = child->nextSibling();
</span><del>- element.removeChild(*child, ASSERT_NO_EXCEPTION);
- fragment.insertBefore(*child, &element, ASSERT_NO_EXCEPTION);
</del><ins>+ element.removeChild(*child);
+ fragment.insertBefore(*child, &element);
</ins><span class="cx"> }
</span><del>- fragment.removeChild(element, ASSERT_NO_EXCEPTION);
</del><ins>+ fragment.removeChild(element);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ExceptionOr<Ref<DocumentFragment>> createContextualFragment(Element& element, const String& markup, ParserContentPolicy parserContentPolicy)
</span><span class="lines">@@ -1018,19 +1018,11 @@
</span><span class="cx"> return { };
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- containerNode->replaceChild(fragment, *containerChild, ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return containerNode->replaceChild(fragment, *containerChild);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> containerNode->removeChildren();
</span><del>- ExceptionCode ec = 0;
- containerNode->appendChild(fragment, ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return containerNode->appendChild(fragment);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ExceptionOr<void> replaceChildrenWithText(ContainerNode& container, const String& text)
</span><span class="lines">@@ -1045,20 +1037,11 @@
</span><span class="cx">
</span><span class="cx"> auto textNode = Text::create(containerNode->document(), text);
</span><span class="cx">
</span><del>- if (hasOneChild(containerNode)) {
- ExceptionCode ec = 0;
- containerNode->replaceChild(textNode, *containerNode->firstChild(), ec);
- if (ec)
- return Exception { ec };
- return { };
- }
</del><ins>+ if (hasOneChild(containerNode))
+ return containerNode->replaceChild(textNode, *containerNode->firstChild());
</ins><span class="cx">
</span><span class="cx"> containerNode->removeChildren();
</span><del>- ExceptionCode ec = 0;
- containerNode->appendChild(textNode, ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return containerNode->appendChild(textNode);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlColorInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ColorInputType.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ColorInputType.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/ColorInputType.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -127,8 +127,8 @@
</span><span class="cx"> wrapperElement->setPseudo(AtomicString("-webkit-color-swatch-wrapper", AtomicString::ConstructFromLiteral));
</span><span class="cx"> auto colorSwatch = HTMLDivElement::create(document);
</span><span class="cx"> colorSwatch->setPseudo(AtomicString("-webkit-color-swatch", AtomicString::ConstructFromLiteral));
</span><del>- wrapperElement->appendChild(colorSwatch, ASSERT_NO_EXCEPTION);
- element().userAgentShadowRoot()->appendChild(wrapperElement, ASSERT_NO_EXCEPTION);
</del><ins>+ wrapperElement->appendChild(colorSwatch);
+ element().userAgentShadowRoot()->appendChild(wrapperElement);
</ins><span class="cx">
</span><span class="cx"> updateColorSwatch();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlFTPDirectoryDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/FTPDirectoryDocument.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/FTPDirectoryDocument.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/FTPDirectoryDocument.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -105,26 +105,26 @@
</span><span class="cx"> rowElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("ftpDirectoryEntryRow", AtomicString::ConstructFromLiteral));
</span><span class="cx">
</span><span class="cx"> auto typeElement = document()->createElement(tdTag, false);
</span><del>- typeElement->appendChild(Text::create(*document(), String(&noBreakSpace, 1)), IGNORE_EXCEPTION);
</del><ins>+ typeElement->appendChild(Text::create(*document(), String(&noBreakSpace, 1)));
</ins><span class="cx"> if (isDirectory)
</span><span class="cx"> typeElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("ftpDirectoryIcon ftpDirectoryTypeDirectory", AtomicString::ConstructFromLiteral));
</span><span class="cx"> else
</span><span class="cx"> typeElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("ftpDirectoryIcon ftpDirectoryTypeFile", AtomicString::ConstructFromLiteral));
</span><del>- rowElement->appendChild(typeElement, IGNORE_EXCEPTION);
</del><ins>+ rowElement->appendChild(typeElement);
</ins><span class="cx">
</span><span class="cx"> auto nameElement = createTDForFilename(filename);
</span><span class="cx"> nameElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("ftpDirectoryFileName", AtomicString::ConstructFromLiteral));
</span><del>- rowElement->appendChild(nameElement, IGNORE_EXCEPTION);
</del><ins>+ rowElement->appendChild(nameElement);
</ins><span class="cx">
</span><span class="cx"> auto dateElement = document()->createElement(tdTag, false);
</span><del>- dateElement->appendChild(Text::create(*document(), date), IGNORE_EXCEPTION);
</del><ins>+ dateElement->appendChild(Text::create(*document(), date));
</ins><span class="cx"> dateElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("ftpDirectoryFileDate", AtomicString::ConstructFromLiteral));
</span><del>- rowElement->appendChild(dateElement, IGNORE_EXCEPTION);
</del><ins>+ rowElement->appendChild(dateElement);
</ins><span class="cx">
</span><span class="cx"> auto sizeElement = document()->createElement(tdTag, false);
</span><del>- sizeElement->appendChild(Text::create(*document(), size), IGNORE_EXCEPTION);
</del><ins>+ sizeElement->appendChild(Text::create(*document(), size));
</ins><span class="cx"> sizeElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("ftpDirectoryFileSize", AtomicString::ConstructFromLiteral));
</span><del>- rowElement->appendChild(sizeElement, IGNORE_EXCEPTION);
</del><ins>+ rowElement->appendChild(sizeElement);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Ref<Element> FTPDirectoryDocumentParser::createTDForFilename(const String& filename)
</span><span class="lines">@@ -137,10 +137,10 @@
</span><span class="cx">
</span><span class="cx"> auto anchorElement = document()->createElement(aTag, false);
</span><span class="cx"> anchorElement->setAttributeWithoutSynchronization(HTMLNames::hrefAttr, fullURL);
</span><del>- anchorElement->appendChild(Text::create(*document(), filename), IGNORE_EXCEPTION);
</del><ins>+ anchorElement->appendChild(Text::create(*document(), filename));
</ins><span class="cx">
</span><span class="cx"> Ref<Element> tdElement = document()->createElement(tdTag, false);
</span><del>- tdElement->appendChild(anchorElement, IGNORE_EXCEPTION);
</del><ins>+ tdElement->appendChild(anchorElement);
</ins><span class="cx">
</span><span class="cx"> return tdElement;
</span><span class="cx"> }
</span><span class="lines">@@ -312,9 +312,9 @@
</span><span class="cx"> // If that fails for some reason, cram it on the end of the document as a last
</span><span class="cx"> // ditch effort
</span><span class="cx"> if (auto* body = document()->bodyOrFrameset())
</span><del>- body->appendChild(*m_tableElement, IGNORE_EXCEPTION);
</del><ins>+ body->appendChild(*m_tableElement);
</ins><span class="cx"> else
</span><del>- document()->appendChild(*m_tableElement, IGNORE_EXCEPTION);
</del><ins>+ document()->appendChild(*m_tableElement);
</ins><span class="cx">
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="lines">@@ -327,7 +327,7 @@
</span><span class="cx">
</span><span class="cx"> Ref<Element> bodyElement = document()->createElement(bodyTag, false);
</span><span class="cx">
</span><del>- document()->appendChild(bodyElement, IGNORE_EXCEPTION);
</del><ins>+ document()->appendChild(bodyElement);
</ins><span class="cx">
</span><span class="cx"> auto tableElement = document()->createElement(tableTag, false);
</span><span class="cx"> m_tableElement = downcast<HTMLTableElement>(tableElement.ptr());
</span><span class="lines">@@ -334,7 +334,7 @@
</span><span class="cx"> m_tableElement->setAttributeWithoutSynchronization(HTMLNames::idAttr, AtomicString("ftpDirectoryTable", AtomicString::ConstructFromLiteral));
</span><span class="cx"> m_tableElement->setAttribute(HTMLNames::styleAttr, AtomicString("width:100%", AtomicString::ConstructFromLiteral));
</span><span class="cx">
</span><del>- bodyElement->appendChild(tableElement, IGNORE_EXCEPTION);
</del><ins>+ bodyElement->appendChild(tableElement);
</ins><span class="cx">
</span><span class="cx"> document()->processViewport("width=device-width", ViewportArguments::ViewportMeta);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlFileInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/FileInputType.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/FileInputType.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/FileInputType.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -261,7 +261,7 @@
</span><span class="cx"> void FileInputType::createShadowSubtree()
</span><span class="cx"> {
</span><span class="cx"> ASSERT(element().shadowRoot());
</span><del>- element().userAgentShadowRoot()->appendChild(element().multiple() ? UploadButtonElement::createForMultiple(element().document()): UploadButtonElement::create(element().document()), IGNORE_EXCEPTION);
</del><ins>+ element().userAgentShadowRoot()->appendChild(element().multiple() ? UploadButtonElement::createForMultiple(element().document()): UploadButtonElement::create(element().document()));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void FileInputType::disabledAttributeChanged()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAnchorElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -343,7 +343,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLAnchorElement::setText(const String& text)
</span><span class="cx"> {
</span><del>- setTextContent(text, ASSERT_NO_EXCEPTION);
</del><ins>+ setTextContent(text);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLAnchorElement::isLiveLink() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLDetailsElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLDetailsElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLDetailsElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLDetailsElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx"> m_summarySlot = summarySlot.ptr();
</span><span class="cx">
</span><span class="cx"> auto defaultSummary = HTMLSummaryElement::create(summaryTag, document());
</span><del>- defaultSummary->appendChild(Text::create(document(), defaultDetailsSummaryText()), ASSERT_NO_EXCEPTION);
</del><ins>+ defaultSummary->appendChild(Text::create(document(), defaultDetailsSummaryText()));
</ins><span class="cx"> m_defaultSummary = defaultSummary.ptr();
</span><span class="cx">
</span><span class="cx"> summarySlot->appendChild(defaultSummary);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -449,17 +449,16 @@
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- fragment->appendChild(Text::create(document(), text.substring(start, i - start)), ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto appendResult = fragment->appendChild(Text::create(document(), text.substring(start, i - start)));
+ if (appendResult.hasException())
+ return appendResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> if (i == length)
</span><span class="cx"> break;
</span><span class="cx">
</span><del>- fragment->appendChild(HTMLBRElement::create(document()), ec);
- if (ec)
- return Exception { ec };
</del><ins>+ appendResult = fragment->appendChild(HTMLBRElement::create(document()));
+ if (appendResult.hasException())
+ return appendResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> // Make sure \r\n doesn't result in two line breaks.
</span><span class="cx"> if (c == '\r' && i + 1 < length && text[i + 1] == '\n')
</span><span class="lines">@@ -577,10 +576,9 @@
</span><span class="cx"> if (!parentNode())
</span><span class="cx"> return Exception { HIERARCHY_REQUEST_ERR };
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- parent->replaceChild(*newChild, *this, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto replaceResult = parent->replaceChild(*newChild, *this);
+ if (replaceResult.hasException())
+ return replaceResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> RefPtr<Node> node = next ? next->previousSibling() : nullptr;
</span><span class="cx"> if (is<Text>(node.get())) {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLKeygenElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLKeygenElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLKeygenElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLKeygenElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -77,11 +77,11 @@
</span><span class="cx"> auto select = KeygenSelectElement::create(document);
</span><span class="cx"> for (auto& key : keys) {
</span><span class="cx"> auto option = HTMLOptionElement::create(document);
</span><del>- select->appendChild(option, IGNORE_EXCEPTION);
- option->appendChild(Text::create(document, key), IGNORE_EXCEPTION);
</del><ins>+ select->appendChild(option);
+ option->appendChild(Text::create(document, key));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- ensureUserAgentShadowRoot().appendChild(select, IGNORE_EXCEPTION);
</del><ins>+ ensureUserAgentShadowRoot().appendChild(select);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Ref<HTMLKeygenElement> HTMLKeygenElement::create(const QualifiedName& tagName, Document& document, HTMLFormElement* form)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -5786,7 +5786,7 @@
</span><span class="cx"> if (isFullscreen())
</span><span class="cx"> mediaControls->enteredFullscreen();
</span><span class="cx">
</span><del>- ensureUserAgentShadowRoot().appendChild(mediaControls, ASSERT_NO_EXCEPTION);
</del><ins>+ ensureUserAgentShadowRoot().appendChild(mediaControls);
</ins><span class="cx">
</span><span class="cx"> if (!controls() || !inDocument())
</span><span class="cx"> mediaControls->hide();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMeterElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMeterElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMeterElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLMeterElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -231,7 +231,7 @@
</span><span class="cx"> static NeverDestroyed<String> shadowStyle(meterElementShadowUserAgentStyleSheet, String::ConstructFromLiteral);
</span><span class="cx">
</span><span class="cx"> auto style = HTMLStyleElement::create(HTMLNames::styleTag, document(), false);
</span><del>- style->setTextContent(shadowStyle, IGNORE_EXCEPTION);
</del><ins>+ style->setTextContent(shadowStyle);
</ins><span class="cx"> root->appendChild(style);
</span><span class="cx">
</span><span class="cx"> // Pseudos are set to allow author styling.
</span><span class="lines">@@ -243,11 +243,11 @@
</span><span class="cx"> auto bar = HTMLDivElement::create(document());
</span><span class="cx"> bar->setIdAttribute("bar");
</span><span class="cx"> bar->setPseudo("-webkit-meter-bar");
</span><del>- inner->appendChild(bar, ASSERT_NO_EXCEPTION);
</del><ins>+ inner->appendChild(bar);
</ins><span class="cx">
</span><span class="cx"> m_value = HTMLDivElement::create(document());
</span><span class="cx"> m_value->setIdAttribute("value");
</span><del>- bar->appendChild(*m_value, ASSERT_NO_EXCEPTION);
</del><ins>+ bar->appendChild(*m_value);
</ins><span class="cx">
</span><span class="cx"> didElementStateChange();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptionElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptionElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptionElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLOptionElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -73,10 +73,9 @@
</span><span class="cx">
</span><span class="cx"> auto text = Text::create(document, data.isNull() ? emptyString() : data);
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- element->appendChild(text, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto appendResult = element->appendChild(text);
+ if (appendResult.hasException())
+ return appendResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> if (!value.isNull())
</span><span class="cx"> element->setValue(value);
</span><span class="lines">@@ -127,7 +126,7 @@
</span><span class="cx"> downcast<Text>(*child).setData(text);
</span><span class="cx"> else {
</span><span class="cx"> removeChildren();
</span><del>- appendChild(Text::create(document(), text), ASSERT_NO_EXCEPTION);
</del><ins>+ appendChild(Text::create(document(), text));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (selectIsMenuList && select->selectedIndex() != oldSelectedIndex)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptionsCollectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptionsCollection.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptionsCollection.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLOptionsCollection.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLOptionsCollection::remove(int index)
</span><span class="cx"> {
</span><del>- selectElement().removeByIndex(index);
</del><ins>+ selectElement().remove(index);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLOptionsCollection::remove(HTMLOptionElement& option)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOutputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOutputElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOutputElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLOutputElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT(!m_isSetTextContentInProgress);
</span><span class="cx"> m_isSetTextContentInProgress = true;
</span><del>- setTextContent(value, IGNORE_EXCEPTION);
</del><ins>+ setTextContent(value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLProgressElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLProgressElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLProgressElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLProgressElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -148,9 +148,9 @@
</span><span class="cx"> auto value = ProgressValueElement::create(document());
</span><span class="cx"> m_value = value.ptr();
</span><span class="cx"> m_value->setWidthPercentage(HTMLProgressElement::IndeterminatePosition * 100);
</span><del>- bar->appendChild(value, ASSERT_NO_EXCEPTION);
</del><ins>+ bar->appendChild(value);
</ins><span class="cx">
</span><del>- inner->appendChild(bar, ASSERT_NO_EXCEPTION);
</del><ins>+ inner->appendChild(bar);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLProgressElement::shouldAppearIndeterminate() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLScriptElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLScriptElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLScriptElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLScriptElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx"> // https://html.spec.whatwg.org/multipage/scripting.html#dom-script-text
</span><span class="cx"> void HTMLScriptElement::setText(const String& value)
</span><span class="cx"> {
</span><del>- setTextContent(value, ASSERT_NO_EXCEPTION);
</del><ins>+ setTextContent(value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLScriptElement::setAsync(bool async)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLSelectElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -233,14 +233,10 @@
</span><span class="cx"> );
</span><span class="cx">
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- insertBefore(toInsert, beforeElement, ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return insertBefore(toInsert, beforeElement);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLSelectElement::removeByIndex(int optionIndex)
</del><ins>+void HTMLSelectElement::remove(int optionIndex)
</ins><span class="cx"> {
</span><span class="cx"> int listIndex = optionToListIndex(optionIndex);
</span><span class="cx"> if (listIndex < 0)
</span><span class="lines">@@ -444,7 +440,7 @@
</span><span class="cx"> // Replace an existing entry?
</span><span class="cx"> } else if (diff < 0) {
</span><span class="cx"> before = item(index + 1);
</span><del>- removeByIndex(index);
</del><ins>+ remove(index);
</ins><span class="cx"> }
</span><span class="cx"> // Finally add the new element.
</span><span class="cx"> auto result = add(&option, HTMLElementOrInt { before.get() });
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.h (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.h        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLSelectElement.h        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">
</span><span class="cx"> using Node::remove;
</span><span class="cx"> ExceptionOr<void> remove(HTMLOptionElement&);
</span><del>- WEBCORE_EXPORT void removeByIndex(int); // Should be remove(int) but that conflicts with Node::remove(ExceptionCode&).
</del><ins>+ WEBCORE_EXPORT void remove(int);
</ins><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT String value() const;
</span><span class="cx"> WEBCORE_EXPORT void setValue(const String&);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.idl (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.idl        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLSelectElement.idl        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -43,9 +43,8 @@
</span><span class="cx"> [CEReactions, MayThrowException] void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
</span><span class="cx">
</span><span class="cx"> [MayThrowException] void remove(); // ChildNode overload
</span><del>- // FIXME: This overload is not in the specification and was dropped in Blink.
- [CEReactions] void remove(HTMLOptionElement option);
- [CEReactions, ImplementedAs=removeByIndex] void remove(long index);
</del><ins>+ [CEReactions] void remove(HTMLOptionElement option); // FIXME: This overload is not in the specification and was dropped in Blink
+ [CEReactions] void remove(long index);
</ins><span class="cx">
</span><span class="cx"> readonly attribute HTMLCollection selectedOptions;
</span><span class="cx"> attribute long selectedIndex;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSummaryElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSummaryElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSummaryElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLSummaryElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLSummaryElement::didAddUserAgentShadowRoot(ShadowRoot* root)
</span><span class="cx"> {
</span><del>- root->appendChild(DetailsMarkerControl::create(document()), ASSERT_NO_EXCEPTION);
</del><ins>+ root->appendChild(DetailsMarkerControl::create(document()));
</ins><span class="cx"> root->appendChild(HTMLSlotElement::create(slotTag, document()));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLTableElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -50,11 +50,6 @@
</span><span class="cx">
</span><span class="cx"> HTMLTableElement::HTMLTableElement(const QualifiedName& tagName, Document& document)
</span><span class="cx"> : HTMLElement(tagName, document)
</span><del>- , m_borderAttr(false)
- , m_borderColorAttr(false)
- , m_frameAttr(false)
- , m_rulesAttr(UnsetRules)
- , m_padding(1)
</del><span class="cx"> {
</span><span class="cx"> ASSERT(hasTagName(tableTag));
</span><span class="cx"> }
</span><span class="lines">@@ -71,23 +66,15 @@
</span><span class="cx">
</span><span class="cx"> HTMLTableCaptionElement* HTMLTableElement::caption() const
</span><span class="cx"> {
</span><del>- for (Node* child = firstChild(); child; child = child->nextSibling()) {
- if (is<HTMLTableCaptionElement>(*child))
- return downcast<HTMLTableCaptionElement>(child);
- }
- return nullptr;
</del><ins>+ return childrenOfType<HTMLTableCaptionElement>(const_cast<HTMLTableElement&>(*this)).first();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ExceptionOr<void> HTMLTableElement::setCaption(RefPtr<HTMLTableCaptionElement>&& newCaption)
</span><span class="cx"> {
</span><span class="cx"> deleteCaption();
</span><del>- if (newCaption) {
- ExceptionCode ec = 0;
- insertBefore(*newCaption, firstChild(), ec);
- if (ec)
- return Exception { ec };
- }
- return { };
</del><ins>+ if (!newCaption)
+ return { };
+ return insertBefore(*newCaption, firstChild());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLTableSectionElement* HTMLTableElement::tHead() const
</span><span class="lines">@@ -105,7 +92,6 @@
</span><span class="cx"> return Exception { HIERARCHY_REQUEST_ERR };
</span><span class="cx">
</span><span class="cx"> deleteTHead();
</span><del>-
</del><span class="cx"> if (!newHead)
</span><span class="cx"> return { };
</span><span class="cx">
</span><span class="lines">@@ -115,11 +101,7 @@
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- insertBefore(*newHead, child, ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return insertBefore(*newHead, child);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLTableSectionElement* HTMLTableElement::tFoot() const
</span><span class="lines">@@ -135,17 +117,10 @@
</span><span class="cx"> {
</span><span class="cx"> if (UNLIKELY(newFoot && !newFoot->hasTagName(tfootTag)))
</span><span class="cx"> return Exception { HIERARCHY_REQUEST_ERR };
</span><del>-
</del><span class="cx"> deleteTFoot();
</span><del>-
</del><span class="cx"> if (!newFoot)
</span><span class="cx"> return { };
</span><del>-
- ExceptionCode ec = 0;
- appendChild(*newFoot, ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return appendChild(*newFoot);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Ref<HTMLTableSectionElement> HTMLTableElement::createTHead()
</span><span class="lines">@@ -175,7 +150,7 @@
</span><span class="cx"> void HTMLTableElement::deleteTFoot()
</span><span class="cx"> {
</span><span class="cx"> if (auto* foot = tFoot())
</span><del>- removeChild(*foot, IGNORE_EXCEPTION);
</del><ins>+ removeChild(*foot);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Ref<HTMLTableSectionElement> HTMLTableElement::createTBody()
</span><span class="lines">@@ -182,7 +157,7 @@
</span><span class="cx"> {
</span><span class="cx"> auto body = HTMLTableSectionElement::create(tbodyTag, document());
</span><span class="cx"> Node* referenceElement = lastBody() ? lastBody()->nextSibling() : nullptr;
</span><del>- insertBefore(body, referenceElement, ASSERT_NO_EXCEPTION);
</del><ins>+ insertBefore(body, referenceElement);
</ins><span class="cx"> return body;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -198,7 +173,7 @@
</span><span class="cx"> void HTMLTableElement::deleteCaption()
</span><span class="cx"> {
</span><span class="cx"> if (auto* caption = this->caption())
</span><del>- removeChild(*caption, IGNORE_EXCEPTION);
</del><ins>+ removeChild(*caption);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLTableSectionElement* HTMLTableElement::lastBody() const
</span><span class="lines">@@ -241,21 +216,19 @@
</span><span class="cx"> if (!parent) {
</span><span class="cx"> auto newBody = HTMLTableSectionElement::create(tbodyTag, document());
</span><span class="cx"> auto newRow = HTMLTableRowElement::create(document());
</span><del>- ExceptionCode ec = 0;
- newBody->appendChild(newRow, ec);
</del><ins>+ newBody->appendChild(newRow);
</ins><span class="cx"> // FIXME: Why ignore the exception if the first appendChild failed?
</span><del>- appendChild(newBody, ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = appendChild(newBody);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> return Ref<HTMLElement> { WTFMove(newRow) };
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> auto newRow = HTMLTableRowElement::create(document());
</span><del>- ExceptionCode ec = 0;
- parent->insertBefore(newRow, row.get(), ec);
- if (ec)
- return Exception { ec };
</del><ins>+ auto result = parent->insertBefore(newRow, row.get());
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> return Ref<HTMLElement> { WTFMove(newRow) };
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableElement.h (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableElement.h        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLTableElement.h        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -89,13 +89,11 @@
</span><span class="cx">
</span><span class="cx"> HTMLTableSectionElement* lastBody() const;
</span><span class="cx">
</span><del>- bool m_borderAttr; // Sets a precise border width and creates an outset border for the table and for its cells.
- bool m_borderColorAttr; // Overrides the outset border and makes it solid for the table and cells instead.
- bool m_frameAttr; // Implies a thin border width if no border is set and then a certain set of solid/hidden borders based off the value.
- TableRules m_rulesAttr; // Implies a thin border width, a collapsing border model, and all borders on the table becoming set to hidden (if frame/border
- // are present, to none otherwise).
-
- unsigned short m_padding;
</del><ins>+ bool m_borderAttr { false }; // Sets a precise border width and creates an outset border for the table and for its cells.
+ bool m_borderColorAttr { false }; // Overrides the outset border and makes it solid for the table and cells instead.
+ bool m_frameAttr { false }; // Implies a thin border width if no border is set and then a certain set of solid/hidden borders based off the value.
+ TableRules m_rulesAttr { UnsetRules }; // Implies a thin border width, a collapsing border model, and all borders on the table becoming set to hidden (if frame/border are present, to none otherwise).
+ unsigned short m_padding { 1 };
</ins><span class="cx"> RefPtr<StyleProperties> m_sharedCellStyle;
</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 (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableRowElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLTableRowElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -118,19 +118,13 @@
</span><span class="cx"> if (index > numCells)
</span><span class="cx"> return Exception { INDEX_SIZE_ERR };
</span><span class="cx"> auto cell = HTMLTableCellElement::create(tdTag, document());
</span><del>- ExceptionCode ec = 0;
</del><ins>+ ExceptionOr<void> result;
</ins><span class="cx"> if (index < 0 || index >= numCells)
</span><del>- appendChild(cell, ec);
- else {
- Node* n;
- if (index < 1)
- n = firstChild();
- else
- n = children->item(index);
- insertBefore(cell, n, ec);
- }
- if (ec)
- return Exception { ec };
</del><ins>+ result = appendChild(cell);
+ else
+ result = insertBefore(cell, index < 1 ? firstChild() : children->item(index));
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> return WTFMove(cell);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -145,11 +139,7 @@
</span><span class="cx"> }
</span><span class="cx"> if (index < 0 || index >= numCells)
</span><span class="cx"> return Exception { INDEX_SIZE_ERR };
</span><del>- ExceptionCode ec = 0;
- removeChild(*children->item(index), ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return removeChild(*children->item(index));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Ref<HTMLCollection> HTMLTableRowElement::cells()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableSectionElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableSectionElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableSectionElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLTableSectionElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -66,19 +66,13 @@
</span><span class="cx"> if (index > numRows)
</span><span class="cx"> return Exception { INDEX_SIZE_ERR };
</span><span class="cx"> auto row = HTMLTableRowElement::create(trTag, document());
</span><del>- ExceptionCode ec = 0;
</del><ins>+ ExceptionOr<void> result;
</ins><span class="cx"> if (numRows == index || index == -1)
</span><del>- appendChild(row, ec);
- else {
- Node* n;
- if (index < 1)
- n = firstChild();
- else
- n = children->item(index);
- insertBefore(row, n, ec);
- }
- if (ec)
- return Exception { ec };
</del><ins>+ result = appendChild(row);
+ else
+ result = insertBefore(row, index < 1 ? firstChild() : children->item(index));
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> return Ref<HTMLElement> { WTFMove(row) };
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -93,11 +87,7 @@
</span><span class="cx"> }
</span><span class="cx"> if (index < 0 || index >= numRows)
</span><span class="cx"> return Exception { INDEX_SIZE_ERR };
</span><del>- ExceptionCode ec = 0;
- removeChild(*children->item(index), ec);
- if (ec)
- return Exception { ec };
- return { };
</del><ins>+ return removeChild(*children->item(index));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> int HTMLTableSectionElement::numRows() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextAreaElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLTextAreaElement::didAddUserAgentShadowRoot(ShadowRoot* root)
</span><span class="cx"> {
</span><del>- root->appendChild(TextControlInnerTextElement::create(document()), ASSERT_NO_EXCEPTION);
</del><ins>+ root->appendChild(TextControlInnerTextElement::create(document()));
</ins><span class="cx"> updateInnerTextElementEditability();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -416,7 +416,7 @@
</span><span class="cx"> textNodes.append(*textNode);
</span><span class="cx">
</span><span class="cx"> for (auto& textNode : textNodes)
</span><del>- removeChild(textNode.get(), IGNORE_EXCEPTION);
</del><ins>+ removeChild(textNode.get());
</ins><span class="cx">
</span><span class="cx"> // Normalize line endings.
</span><span class="cx"> String value = defaultValue;
</span><span class="lines">@@ -423,7 +423,7 @@
</span><span class="cx"> value.replace("\r\n", "\n");
</span><span class="cx"> value.replace('\r', '\n');
</span><span class="cx">
</span><del>- insertBefore(document().createTextNode(value), firstChild(), IGNORE_EXCEPTION);
</del><ins>+ insertBefore(document().createTextNode(value), firstChild());
</ins><span class="cx">
</span><span class="cx"> if (!m_isDirty)
</span><span class="cx"> setNonDirtyValue(value);
</span><span class="lines">@@ -546,7 +546,7 @@
</span><span class="cx"> String placeholderText = strippedPlaceholder();
</span><span class="cx"> if (placeholderText.isEmpty()) {
</span><span class="cx"> if (m_placeholder) {
</span><del>- userAgentShadowRoot()->removeChild(*m_placeholder, ASSERT_NO_EXCEPTION);
</del><ins>+ userAgentShadowRoot()->removeChild(*m_placeholder);
</ins><span class="cx"> m_placeholder = nullptr;
</span><span class="cx"> }
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextFormControlElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -560,7 +560,7 @@
</span><span class="cx"> innerText->setInnerText(value);
</span><span class="cx">
</span><span class="cx"> if (value.endsWith('\n') || value.endsWith('\r'))
</span><del>- innerText->appendChild(HTMLBRElement::create(document()), ASSERT_NO_EXCEPTION);
</del><ins>+ innerText->appendChild(HTMLBRElement::create(document()));
</ins><span class="cx">
</span><span class="cx"> #if HAVE(ACCESSIBILITY) && PLATFORM(COCOA)
</span><span class="cx"> if (textIsChanged && renderer()) {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTitleElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTitleElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTitleElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/HTMLTitleElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLTitleElement::setText(const String& value)
</span><span class="cx"> {
</span><del>- setTextContent(value, ASSERT_NO_EXCEPTION);
</del><ins>+ setTextContent(value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaDocument.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaDocument.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/MediaDocument.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx"> void MediaDocumentParser::createDocumentStructure()
</span><span class="cx"> {
</span><span class="cx"> auto rootElement = document()->createElement(htmlTag, false);
</span><del>- document()->appendChild(rootElement, IGNORE_EXCEPTION);
</del><ins>+ document()->appendChild(rootElement);
</ins><span class="cx"> document()->setCSSTarget(rootElement.ptr());
</span><span class="cx"> downcast<HTMLHtmlElement>(rootElement.get()).insertedByParser();
</span><span class="cx">
</span><span class="lines">@@ -90,16 +90,16 @@
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> auto headElement = document()->createElement(headTag, false);
</span><del>- rootElement->appendChild(headElement, IGNORE_EXCEPTION);
</del><ins>+ rootElement->appendChild(headElement);
</ins><span class="cx">
</span><span class="cx"> auto metaElement = document()->createElement(metaTag, false);
</span><span class="cx"> metaElement->setAttributeWithoutSynchronization(nameAttr, AtomicString("viewport", AtomicString::ConstructFromLiteral));
</span><span class="cx"> metaElement->setAttributeWithoutSynchronization(contentAttr, AtomicString("width=device-width,initial-scale=1,user-scalable=no", AtomicString::ConstructFromLiteral));
</span><del>- headElement->appendChild(metaElement, IGNORE_EXCEPTION);
</del><ins>+ headElement->appendChild(metaElement);
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> auto body = document()->createElement(bodyTag, false);
</span><del>- rootElement->appendChild(body, IGNORE_EXCEPTION);
</del><ins>+ rootElement->appendChild(body);
</ins><span class="cx">
</span><span class="cx"> auto mediaElement = document()->createElement(videoTag, false);
</span><span class="cx">
</span><span class="lines">@@ -123,8 +123,8 @@
</span><span class="cx"> if (DocumentLoader* loader = document()->loader())
</span><span class="cx"> source.setType(loader->responseMIMEType());
</span><span class="cx">
</span><del>- m_mediaElement->appendChild(sourceElement, IGNORE_EXCEPTION);
- body->appendChild(mediaElement, IGNORE_EXCEPTION);
</del><ins>+ m_mediaElement->appendChild(sourceElement);
+ body->appendChild(mediaElement);
</ins><span class="cx">
</span><span class="cx"> Frame* frame = document()->frame();
</span><span class="cx"> if (!frame)
</span><span class="lines">@@ -255,7 +255,7 @@
</span><span class="cx"> if (documentLoader)
</span><span class="cx"> embedElement.setAttributeWithoutSynchronization(typeAttr, documentLoader->writer().mimeType());
</span><span class="cx">
</span><del>- videoElement->parentNode()->replaceChild(embedElement, *videoElement, IGNORE_EXCEPTION);
</del><ins>+ videoElement->parentNode()->replaceChild(embedElement, *videoElement);
</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 (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/PluginDocument.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/PluginDocument.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx"> void PluginDocumentParser::createDocumentStructure()
</span><span class="cx"> {
</span><span class="cx"> auto rootElement = document()->createElement(htmlTag, false);
</span><del>- document()->appendChild(rootElement, IGNORE_EXCEPTION);
</del><ins>+ document()->appendChild(rootElement);
</ins><span class="cx"> downcast<HTMLHtmlElement>(rootElement.get()).insertedByParser();
</span><span class="cx">
</span><span class="cx"> if (document()->frame())
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx"> body->setAttribute(styleAttr, AtomicString("background-color: rgb(38,38,38)", AtomicString::ConstructFromLiteral));
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- rootElement->appendChild(body, IGNORE_EXCEPTION);
</del><ins>+ rootElement->appendChild(body);
</ins><span class="cx">
</span><span class="cx"> auto embedElement = document()->createElement(embedTag, false);
</span><span class="cx">
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx">
</span><span class="cx"> downcast<PluginDocument>(*document()).setPluginElement(m_embedElement);
</span><span class="cx">
</span><del>- body->appendChild(embedElement, IGNORE_EXCEPTION);
</del><ins>+ body->appendChild(embedElement);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void PluginDocumentParser::appendBytes(DocumentWriter&, const char*, size_t)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlRangeInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/RangeInputType.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/RangeInputType.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/RangeInputType.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -255,10 +255,10 @@
</span><span class="cx"> Document& document = element().document();
</span><span class="cx"> auto track = HTMLDivElement::create(document);
</span><span class="cx"> track->setPseudo(AtomicString("-webkit-slider-runnable-track", AtomicString::ConstructFromLiteral));
</span><del>- track->appendChild(SliderThumbElement::create(document), IGNORE_EXCEPTION);
</del><ins>+ track->appendChild(SliderThumbElement::create(document));
</ins><span class="cx"> auto container = SliderContainerElement::create(document);
</span><del>- container->appendChild(track, IGNORE_EXCEPTION);
- element().userAgentShadowRoot()->appendChild(container, IGNORE_EXCEPTION);
</del><ins>+ container->appendChild(track);
+ element().userAgentShadowRoot()->appendChild(container);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLElement* RangeInputType::sliderTrackElement() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlSearchInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/SearchInputType.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/SearchInputType.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/SearchInputType.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -110,11 +110,11 @@
</span><span class="cx"> auto resultsButton = SearchFieldResultsButtonElement::create(element().document());
</span><span class="cx"> m_resultsButton = resultsButton.ptr();
</span><span class="cx"> updateResultButtonPseudoType(resultsButton.get(), element().maxResults());
</span><del>- container->insertBefore(resultsButton, textWrapper, IGNORE_EXCEPTION);
</del><ins>+ container->insertBefore(resultsButton, textWrapper);
</ins><span class="cx">
</span><span class="cx"> auto cancelButton = SearchFieldCancelButtonElement::create(element().document());
</span><span class="cx"> m_cancelButton = cancelButton.ptr();
</span><del>- container->insertBefore(cancelButton, textWrapper->nextSibling(), IGNORE_EXCEPTION);
</del><ins>+ container->insertBefore(cancelButton, textWrapper->nextSibling());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLElement* SearchInputType::resultsButtonElement() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlTextFieldInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/TextFieldInputType.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/TextFieldInputType.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/TextFieldInputType.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -270,7 +270,7 @@
</span><span class="cx"> m_innerText = TextControlInnerTextElement::create(document);
</span><span class="cx">
</span><span class="cx"> if (!createsContainer) {
</span><del>- element().userAgentShadowRoot()->appendChild(*m_innerText, IGNORE_EXCEPTION);
</del><ins>+ element().userAgentShadowRoot()->appendChild(*m_innerText);
</ins><span class="cx"> updatePlaceholderText();
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -280,7 +280,7 @@
</span><span class="cx">
</span><span class="cx"> if (shouldHaveSpinButton) {
</span><span class="cx"> m_innerSpinButton = SpinButtonElement::create(document, *this);
</span><del>- m_container->appendChild(*m_innerSpinButton, IGNORE_EXCEPTION);
</del><ins>+ m_container->appendChild(*m_innerSpinButton);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (shouldHaveCapsLockIndicator) {
</span><span class="lines">@@ -290,7 +290,7 @@
</span><span class="cx"> bool shouldDrawCapsLockIndicator = this->shouldDrawCapsLockIndicator();
</span><span class="cx"> m_capsLockIndicator->setInlineStyleProperty(CSSPropertyDisplay, shouldDrawCapsLockIndicator ? CSSValueBlock : CSSValueNone, true);
</span><span class="cx">
</span><del>- m_container->appendChild(*m_capsLockIndicator, IGNORE_EXCEPTION);
</del><ins>+ m_container->appendChild(*m_capsLockIndicator);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> updateAutoFillButton();
</span><span class="lines">@@ -500,7 +500,7 @@
</span><span class="cx"> String placeholderText = element().strippedPlaceholder();
</span><span class="cx"> if (placeholderText.isEmpty()) {
</span><span class="cx"> if (m_placeholder) {
</span><del>- m_placeholder->parentNode()->removeChild(*m_placeholder, ASSERT_NO_EXCEPTION);
</del><ins>+ m_placeholder->parentNode()->removeChild(*m_placeholder);
</ins><span class="cx"> m_placeholder = nullptr;
</span><span class="cx"> }
</span><span class="cx"> return;
</span><span class="lines">@@ -507,7 +507,7 @@
</span><span class="cx"> }
</span><span class="cx"> if (!m_placeholder) {
</span><span class="cx"> m_placeholder = TextControlPlaceholderElement::create(element().document());
</span><del>- element().userAgentShadowRoot()->insertBefore(*m_placeholder, m_container ? m_container.get() : innerTextElement(), ASSERT_NO_EXCEPTION);
</del><ins>+ element().userAgentShadowRoot()->insertBefore(*m_placeholder, m_container ? m_container.get() : innerTextElement());
</ins><span class="cx"> }
</span><span class="cx"> m_placeholder->setInnerText(placeholderText);
</span><span class="cx"> }
</span><span class="lines">@@ -645,10 +645,10 @@
</span><span class="cx"> m_container->setPseudo(AtomicString("-webkit-textfield-decoration-container", AtomicString::ConstructFromLiteral));
</span><span class="cx">
</span><span class="cx"> m_innerBlock = TextControlInnerElement::create(element().document());
</span><del>- m_innerBlock->appendChild(*m_innerText, IGNORE_EXCEPTION);
- m_container->appendChild(*m_innerBlock, IGNORE_EXCEPTION);
</del><ins>+ m_innerBlock->appendChild(*m_innerText);
+ m_container->appendChild(*m_innerBlock);
</ins><span class="cx">
</span><del>- element().userAgentShadowRoot()->appendChild(*m_container, IGNORE_EXCEPTION);
</del><ins>+ element().userAgentShadowRoot()->appendChild(*m_container);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void TextFieldInputType::createAutoFillButton(AutoFillButtonType autoFillButtonType)
</span><span class="lines">@@ -662,7 +662,7 @@
</span><span class="cx"> m_autoFillButton->setPseudo(autoFillButtonTypeToAutoFillButtonPseudoClassName(autoFillButtonType));
</span><span class="cx"> m_autoFillButton->setAttributeWithoutSynchronization(roleAttr, AtomicString("button", AtomicString::ConstructFromLiteral));
</span><span class="cx"> m_autoFillButton->setAttributeWithoutSynchronization(aria_labelAttr, autoFillButtonTypeToAccessibilityLabel(autoFillButtonType));
</span><del>- m_container->appendChild(*m_autoFillButton, IGNORE_EXCEPTION);
</del><ins>+ m_container->appendChild(*m_autoFillButton);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void TextFieldInputType::updateAutoFillButton()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlValidationMessagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ValidationMessage.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ValidationMessage.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/ValidationMessage.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -133,9 +133,9 @@
</span><span class="cx"> Document& document = m_messageHeading->document();
</span><span class="cx"> for (unsigned i = 0; i < lines.size(); ++i) {
</span><span class="cx"> if (i) {
</span><del>- m_messageBody->appendChild(Text::create(document, lines[i]), ASSERT_NO_EXCEPTION);
</del><ins>+ m_messageBody->appendChild(Text::create(document, lines[i]));
</ins><span class="cx"> if (i < lines.size() - 1)
</span><del>- m_messageBody->appendChild(HTMLBRElement::create(document), ASSERT_NO_EXCEPTION);
</del><ins>+ m_messageBody->appendChild(HTMLBRElement::create(document));
</ins><span class="cx"> } else
</span><span class="cx"> m_messageHeading->setInnerText(lines[i]);
</span><span class="cx"> }
</span><span class="lines">@@ -188,7 +188,7 @@
</span><span class="cx"> // Need to force position:absolute because RenderMenuList doesn't assume it
</span><span class="cx"> // contains non-absolute or non-fixed renderers as children.
</span><span class="cx"> m_bubble->setInlineStyleProperty(CSSPropertyPosition, CSSValueAbsolute);
</span><del>- shadowRoot.appendChild(*m_bubble, ASSERT_NO_EXCEPTION);
</del><ins>+ shadowRoot.appendChild(*m_bubble);
</ins><span class="cx"> document.updateLayout();
</span><span class="cx"> adjustBubblePosition(m_element->renderer()->absoluteBoundingBoxRect(), m_bubble.get());
</span><span class="cx">
</span><span class="lines">@@ -196,24 +196,24 @@
</span><span class="cx"> clipper->setPseudo(AtomicString("-webkit-validation-bubble-arrow-clipper", AtomicString::ConstructFromLiteral));
</span><span class="cx"> auto bubbleArrow = HTMLDivElement::create(document);
</span><span class="cx"> bubbleArrow->setPseudo(AtomicString("-webkit-validation-bubble-arrow", AtomicString::ConstructFromLiteral));
</span><del>- clipper->appendChild(bubbleArrow, ASSERT_NO_EXCEPTION);
- m_bubble->appendChild(clipper, ASSERT_NO_EXCEPTION);
</del><ins>+ clipper->appendChild(bubbleArrow);
+ m_bubble->appendChild(clipper);
</ins><span class="cx">
</span><span class="cx"> auto message = HTMLDivElement::create(document);
</span><span class="cx"> message->setPseudo(AtomicString("-webkit-validation-bubble-message", AtomicString::ConstructFromLiteral));
</span><span class="cx"> auto icon = HTMLDivElement::create(document);
</span><span class="cx"> icon->setPseudo(AtomicString("-webkit-validation-bubble-icon", AtomicString::ConstructFromLiteral));
</span><del>- message->appendChild(icon, ASSERT_NO_EXCEPTION);
</del><ins>+ message->appendChild(icon);
</ins><span class="cx"> auto textBlock = HTMLDivElement::create(document);
</span><span class="cx"> textBlock->setPseudo(AtomicString("-webkit-validation-bubble-text-block", AtomicString::ConstructFromLiteral));
</span><span class="cx"> m_messageHeading = HTMLDivElement::create(document);
</span><span class="cx"> m_messageHeading->setPseudo(AtomicString("-webkit-validation-bubble-heading", AtomicString::ConstructFromLiteral));
</span><del>- textBlock->appendChild(*m_messageHeading, ASSERT_NO_EXCEPTION);
</del><ins>+ textBlock->appendChild(*m_messageHeading);
</ins><span class="cx"> m_messageBody = HTMLDivElement::create(document);
</span><span class="cx"> m_messageBody->setPseudo(AtomicString("-webkit-validation-bubble-body", AtomicString::ConstructFromLiteral));
</span><del>- textBlock->appendChild(*m_messageBody, ASSERT_NO_EXCEPTION);
- message->appendChild(textBlock, ASSERT_NO_EXCEPTION);
- m_bubble->appendChild(message, ASSERT_NO_EXCEPTION);
</del><ins>+ textBlock->appendChild(*m_messageBody);
+ message->appendChild(textBlock);
+ m_bubble->appendChild(message);
</ins><span class="cx">
</span><span class="cx"> setMessageDOMAndStartTimer();
</span><span class="cx">
</span><span class="lines">@@ -245,7 +245,7 @@
</span><span class="cx"> if (m_bubble) {
</span><span class="cx"> m_messageHeading = nullptr;
</span><span class="cx"> m_messageBody = nullptr;
</span><del>- m_element->userAgentShadowRoot()->removeChild(*m_bubble, ASSERT_NO_EXCEPTION);
</del><ins>+ m_element->userAgentShadowRoot()->removeChild(*m_bubble);
</ins><span class="cx"> m_bubble = nullptr;
</span><span class="cx"> }
</span><span class="cx"> m_message = String();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlElementscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -1181,7 +1181,7 @@
</span><span class="cx"> // track cue region identifier, run the following substeps:
</span><span class="cx"> if (displayBox->hasChildNodes() && !contains(displayBox.ptr())) {
</span><span class="cx"> // Note: the display tree of a cue is removed when the active flag of the cue is unset.
</span><del>- appendChild(displayBox, ASSERT_NO_EXCEPTION);
</del><ins>+ appendChild(displayBox);
</ins><span class="cx"> cue->setFontSize(m_fontSize, m_videoDisplaySize.size(), m_fontSizeIsImportant);
</span><span class="cx"> }
</span><span class="cx"> } else {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControls.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControls.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/shadow/MediaControls.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -378,6 +378,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><ins>+
</ins><span class="cx"> void MediaControls::createTextTrackDisplay()
</span><span class="cx"> {
</span><span class="cx"> if (m_textDisplayContainer)
</span><span class="lines">@@ -390,7 +391,7 @@
</span><span class="cx"> m_textDisplayContainer->setMediaController(m_mediaController);
</span><span class="cx">
</span><span class="cx"> // Insert it before the first controller element so it always displays behind the controls.
</span><del>- insertBefore(textDisplayContainer, m_panel, IGNORE_EXCEPTION);
</del><ins>+ insertBefore(textDisplayContainer, m_panel);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void MediaControls::showTextTrackDisplay()
</span><span class="lines">@@ -421,6 +422,7 @@
</span><span class="cx"> if (m_textDisplayContainer)
</span><span class="cx"> m_textDisplayContainer->updateSizes(true);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> void MediaControls::setSliderVolume()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlsApplecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -40,20 +40,6 @@
</span><span class="cx">
</span><span class="cx"> MediaControlsApple::MediaControlsApple(Document& document)
</span><span class="cx"> : MediaControls(document)
</span><del>- , m_rewindButton(0)
- , m_returnToRealTimeButton(0)
- , m_statusDisplay(0)
- , m_timeRemainingDisplay(0)
- , m_timelineContainer(0)
- , m_seekBackButton(0)
- , m_seekForwardButton(0)
- , m_closedCaptionsTrackList(0)
- , m_closedCaptionsContainer(0)
- , m_volumeSliderMuteButton(0)
- , m_volumeSliderContainer(0)
- , m_fullScreenMinVolumeButton(0)
- , m_fullScreenVolumeSlider(0)
- , m_fullScreenMaxVolumeButton(0)
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -71,31 +57,25 @@
</span><span class="cx">
</span><span class="cx"> auto panel = MediaControlPanelElement::create(document);
</span><span class="cx">
</span><del>- ExceptionCode ec;
-
</del><span class="cx"> auto rewindButton = MediaControlRewindButtonElement::create(document);
</span><span class="cx"> controls->m_rewindButton = rewindButton.ptr();
</span><del>- panel->appendChild(rewindButton, ec);
- if (ec)
</del><ins>+ if (panel->appendChild(rewindButton).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> auto playButton = MediaControlPlayButtonElement::create(document);
</span><span class="cx"> controls->m_playButton = playButton.ptr();
</span><del>- panel->appendChild(playButton, ec);
- if (ec)
</del><ins>+ if (panel->appendChild(playButton).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> auto returnToRealtimeButton = MediaControlReturnToRealtimeButtonElement::create(document);
</span><span class="cx"> controls->m_returnToRealTimeButton = returnToRealtimeButton.ptr();
</span><del>- panel->appendChild(returnToRealtimeButton, ec);
- if (ec)
</del><ins>+ if (panel->appendChild(returnToRealtimeButton).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> if (document.page()->theme().usesMediaControlStatusDisplay()) {
</span><span class="cx"> auto statusDisplay = MediaControlStatusDisplayElement::create(document);
</span><span class="cx"> controls->m_statusDisplay = statusDisplay.ptr();
</span><del>- panel->appendChild(statusDisplay, ec);
- if (ec)
</del><ins>+ if (panel->appendChild(statusDisplay).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -103,39 +83,33 @@
</span><span class="cx">
</span><span class="cx"> auto currentTimeDisplay = MediaControlCurrentTimeDisplayElement::create(document);
</span><span class="cx"> controls->m_currentTimeDisplay = currentTimeDisplay.ptr();
</span><del>- timelineContainer->appendChild(currentTimeDisplay, ec);
- if (ec)
</del><ins>+ if (timelineContainer->appendChild(currentTimeDisplay).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> auto timeline = MediaControlTimelineElement::create(document, controls.ptr());
</span><span class="cx"> controls->m_timeline = timeline.ptr();
</span><del>- timelineContainer->appendChild(timeline, ec);
- if (ec)
</del><ins>+ if (timelineContainer->appendChild(timeline).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> auto timeRemainingDisplay = MediaControlTimeRemainingDisplayElement::create(document);
</span><span class="cx"> controls->m_timeRemainingDisplay = timeRemainingDisplay.ptr();
</span><del>- timelineContainer->appendChild(timeRemainingDisplay, ec);
- if (ec)
</del><ins>+ if (timelineContainer->appendChild(timeRemainingDisplay).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> controls->m_timelineContainer = timelineContainer.ptr();
</span><del>- panel->appendChild(timelineContainer, ec);
- if (ec)
</del><ins>+ if (panel->appendChild(timelineContainer).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> // FIXME: Only create when needed <http://webkit.org/b/57163>
</span><span class="cx"> auto seekBackButton = MediaControlSeekBackButtonElement::create(document);
</span><span class="cx"> controls->m_seekBackButton = seekBackButton.ptr();
</span><del>- panel->appendChild(seekBackButton, ec);
- if (ec)
</del><ins>+ if (panel->appendChild(seekBackButton).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> // FIXME: Only create when needed <http://webkit.org/b/57163>
</span><span class="cx"> auto seekForwardButton = MediaControlSeekForwardButtonElement::create(document);
</span><span class="cx"> controls->m_seekForwardButton = seekForwardButton.ptr();
</span><del>- panel->appendChild(seekForwardButton, ec);
- if (ec)
</del><ins>+ if (panel->appendChild(seekForwardButton).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> if (document.page()->theme().supportsClosedCaptioning()) {
</span><span class="lines">@@ -143,19 +117,16 @@
</span><span class="cx">
</span><span class="cx"> auto closedCaptionsTrackList = MediaControlClosedCaptionsTrackListElement::create(document, controls.ptr());
</span><span class="cx"> controls->m_closedCaptionsTrackList = closedCaptionsTrackList.ptr();
</span><del>- closedCaptionsContainer->appendChild(closedCaptionsTrackList, ec);
- if (ec)
</del><ins>+ if (closedCaptionsContainer->appendChild(closedCaptionsTrackList).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> auto toggleClosedCaptionsButton = MediaControlToggleClosedCaptionsButtonElement::create(document, controls.ptr());
</span><span class="cx"> controls->m_toggleClosedCaptionsButton = toggleClosedCaptionsButton.ptr();
</span><del>- panel->appendChild(toggleClosedCaptionsButton, ec);
- if (ec)
</del><ins>+ if (panel->appendChild(toggleClosedCaptionsButton).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> controls->m_closedCaptionsContainer = closedCaptionsContainer.ptr();
</span><del>- controls->appendChild(closedCaptionsContainer, ec);
- if (ec)
</del><ins>+ if (controls->appendChild(closedCaptionsContainer).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -162,7 +133,7 @@
</span><span class="cx"> // FIXME: Only create when needed <http://webkit.org/b/57163>
</span><span class="cx"> auto fullScreenButton = MediaControlFullscreenButtonElement::create(document);
</span><span class="cx"> controls->m_fullScreenButton = fullScreenButton.ptr();
</span><del>- panel->appendChild(fullScreenButton, ec);
</del><ins>+ panel->appendChild(fullScreenButton);
</ins><span class="cx">
</span><span class="cx"> // The mute button and the slider element should be in the same div.
</span><span class="cx"> auto panelVolumeControlContainer = HTMLDivElement::create(document);
</span><span class="lines">@@ -172,8 +143,7 @@
</span><span class="cx">
</span><span class="cx"> auto slider = MediaControlPanelVolumeSliderElement::create(document);
</span><span class="cx"> controls->m_volumeSlider = slider.ptr();
</span><del>- volumeSliderContainer->appendChild(slider, ec);
- if (ec)
</del><ins>+ if (volumeSliderContainer->appendChild(slider).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> // This is a duplicate mute button, which is visible in some ports at the bottom of the volume bar.
</span><span class="lines">@@ -180,49 +150,40 @@
</span><span class="cx"> // It's important only when the volume bar is displayed below the controls.
</span><span class="cx"> auto volumeSliderMuteButton = MediaControlVolumeSliderMuteButtonElement::create(document);
</span><span class="cx"> controls->m_volumeSliderMuteButton = volumeSliderMuteButton.ptr();
</span><del>- volumeSliderContainer->appendChild(volumeSliderMuteButton, ec);
-
- if (ec)
</del><ins>+ if (volumeSliderContainer->appendChild(volumeSliderMuteButton).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> controls->m_volumeSliderContainer = volumeSliderContainer.ptr();
</span><del>- panelVolumeControlContainer->appendChild(volumeSliderContainer, ec);
- if (ec)
</del><ins>+ if (panelVolumeControlContainer->appendChild(volumeSliderContainer).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> auto panelMuteButton = MediaControlPanelMuteButtonElement::create(document, controls.ptr());
</span><span class="cx"> controls->m_panelMuteButton = panelMuteButton.ptr();
</span><del>- panelVolumeControlContainer->appendChild(panelMuteButton, ec);
- if (ec)
</del><ins>+ if (panelVolumeControlContainer->appendChild(panelMuteButton).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><del>- panel->appendChild(panelVolumeControlContainer, ec);
- if (ec)
</del><ins>+ if (panel->appendChild(panelVolumeControlContainer).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> // FIXME: Only create when needed <http://webkit.org/b/57163>
</span><span class="cx"> auto fullScreenMinVolumeButton = MediaControlFullscreenVolumeMinButtonElement::create(document);
</span><span class="cx"> controls->m_fullScreenMinVolumeButton = fullScreenMinVolumeButton.ptr();
</span><del>- panel->appendChild(fullScreenMinVolumeButton, ec);
- if (ec)
</del><ins>+ if (panel->appendChild(fullScreenMinVolumeButton).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> auto fullScreenVolumeSlider = MediaControlFullscreenVolumeSliderElement::create(document);
</span><span class="cx"> controls->m_fullScreenVolumeSlider = fullScreenVolumeSlider.ptr();
</span><del>- panel->appendChild(fullScreenVolumeSlider, ec);
- if (ec)
</del><ins>+ if (panel->appendChild(fullScreenVolumeSlider).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> auto fullScreenMaxVolumeButton = MediaControlFullscreenVolumeMaxButtonElement::create(document);
</span><span class="cx"> controls->m_fullScreenMaxVolumeButton = fullScreenMaxVolumeButton.ptr();
</span><del>- panel->appendChild(fullScreenMaxVolumeButton, ec);
- if (ec)
</del><ins>+ if (panel->appendChild(fullScreenMaxVolumeButton).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> controls->m_panel = panel.ptr();
</span><del>- controls->appendChild(panel, ec);
- if (ec)
</del><ins>+ if (controls->appendChild(panel).hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> return WTFMove(controls);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlsAppleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlsApple.h (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlsApple.h        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/shadow/MediaControlsApple.h        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -100,20 +100,20 @@
</span><span class="cx"> void hideClosedCaptionTrackList();
</span><span class="cx"> void setFullscreenSliderVolume();
</span><span class="cx">
</span><del>- MediaControlRewindButtonElement* m_rewindButton;
- MediaControlReturnToRealtimeButtonElement* m_returnToRealTimeButton;
- MediaControlStatusDisplayElement* m_statusDisplay;
- MediaControlTimeRemainingDisplayElement* m_timeRemainingDisplay;
- MediaControlTimelineContainerElement* m_timelineContainer;
- MediaControlSeekBackButtonElement* m_seekBackButton;
- MediaControlSeekForwardButtonElement* m_seekForwardButton;
- MediaControlClosedCaptionsTrackListElement* m_closedCaptionsTrackList;
- MediaControlClosedCaptionsContainerElement* m_closedCaptionsContainer;
- MediaControlVolumeSliderMuteButtonElement* m_volumeSliderMuteButton;
- MediaControlVolumeSliderContainerElement* m_volumeSliderContainer;
- MediaControlFullscreenVolumeMinButtonElement* m_fullScreenMinVolumeButton;
- MediaControlFullscreenVolumeSliderElement* m_fullScreenVolumeSlider;
- MediaControlFullscreenVolumeMaxButtonElement* m_fullScreenMaxVolumeButton;
</del><ins>+ MediaControlRewindButtonElement* m_rewindButton { nullptr };
+ MediaControlReturnToRealtimeButtonElement* m_returnToRealTimeButton { nullptr };
+ MediaControlStatusDisplayElement* m_statusDisplay { nullptr };
+ MediaControlTimeRemainingDisplayElement* m_timeRemainingDisplay { nullptr };
+ MediaControlTimelineContainerElement* m_timelineContainer { nullptr };
+ MediaControlSeekBackButtonElement* m_seekBackButton { nullptr };
+ MediaControlSeekForwardButtonElement* m_seekForwardButton { nullptr };
+ MediaControlClosedCaptionsTrackListElement* m_closedCaptionsTrackList { nullptr };
+ MediaControlClosedCaptionsContainerElement* m_closedCaptionsContainer { nullptr };
+ MediaControlVolumeSliderMuteButtonElement* m_volumeSliderMuteButton { nullptr };
+ MediaControlVolumeSliderContainerElement* m_volumeSliderContainer { nullptr };
+ MediaControlFullscreenVolumeMinButtonElement* m_fullScreenMinVolumeButton { nullptr };
+ MediaControlFullscreenVolumeSliderElement* m_fullScreenVolumeSlider { nullptr };
+ MediaControlFullscreenVolumeMaxButtonElement* m_fullScreenMaxVolumeButton { nullptr };
</ins><span class="cx"> RefPtr<MediaControlsAppleEventListener> m_eventListener;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackVTTCuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/VTTCue.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/VTTCue.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/track/VTTCue.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -499,7 +499,7 @@
</span><span class="cx"> clonedNode = downcast<WebVTTElement>(*node).createEquivalentHTMLElement(ownerDocument());
</span><span class="cx"> else
</span><span class="cx"> clonedNode = node->cloneNode(false);
</span><del>- parent->appendChild(*clonedNode, ASSERT_NO_EXCEPTION);
</del><ins>+ parent->appendChild(*clonedNode);
</ins><span class="cx"> if (is<ContainerNode>(*node))
</span><span class="cx"> copyWebVTTNodeToDOMTree(downcast<ContainerNode>(node), downcast<ContainerNode>(clonedNode.get()));
</span><span class="cx"> }
</span><span class="lines">@@ -814,8 +814,8 @@
</span><span class="cx"> m_cueHighlightBox->setPseudo(cueShadowPseudoId());
</span><span class="cx">
</span><span class="cx"> m_cueBackdropBox->setPseudo(cueBackdropShadowPseudoId());
</span><del>- m_cueBackdropBox->appendChild(*m_cueHighlightBox, ASSERT_NO_EXCEPTION);
- displayTree->appendChild(*m_cueBackdropBox, ASSERT_NO_EXCEPTION);
</del><ins>+ m_cueBackdropBox->appendChild(*m_cueHighlightBox);
+ displayTree->appendChild(*m_cueBackdropBox);
</ins><span class="cx">
</span><span class="cx"> // FIXME(BUG 79916): Runs of children of WebVTT Ruby Objects that are not
</span><span class="cx"> // WebVTT Ruby Text Objects must be wrapped in anonymous boxes whose
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackVTTRegioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/VTTRegion.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/VTTRegion.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/html/track/VTTRegion.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -291,7 +291,7 @@
</span><span class="cx"> if (m_cueContainer->contains(displayBox.ptr()))
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_cueContainer->appendChild(displayBox, ASSERT_NO_EXCEPTION);
</del><ins>+ m_cueContainer->appendChild(displayBox);
</ins><span class="cx"> displayLastTextTrackCueBox();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorDOMEditorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/DOMEditor.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/DOMEditor.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/inspector/DOMEditor.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -44,30 +44,30 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><del>-class DOMEditor::RemoveChildAction : public InspectorHistory::Action {
</del><ins>+class DOMEditor::RemoveChildAction final : public InspectorHistory::Action {
</ins><span class="cx"> WTF_MAKE_NONCOPYABLE(RemoveChildAction);
</span><span class="cx"> public:
</span><span class="cx"> RemoveChildAction(Node& parentNode, Node& node)
</span><del>- : InspectorHistory::Action("RemoveChild")
</del><ins>+ : Action("RemoveChild")
</ins><span class="cx"> , m_parentNode(parentNode)
</span><span class="cx"> , m_node(node)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool perform(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> perform() final
</ins><span class="cx"> {
</span><span class="cx"> m_anchorNode = m_node->nextSibling();
</span><del>- return redo(ec);
</del><ins>+ return redo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool undo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> undo() final
</ins><span class="cx"> {
</span><del>- return m_parentNode->insertBefore(m_node, m_anchorNode.get(), ec);
</del><ins>+ return m_parentNode->insertBefore(m_node, m_anchorNode.get());
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool redo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> redo() final
</ins><span class="cx"> {
</span><del>- return m_parentNode->removeChild(m_node, ec);
</del><ins>+ return m_parentNode->removeChild(m_node);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="lines">@@ -76,11 +76,10 @@
</span><span class="cx"> RefPtr<Node> m_anchorNode;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-class DOMEditor::InsertBeforeAction : public InspectorHistory::Action {
- WTF_MAKE_NONCOPYABLE(InsertBeforeAction);
</del><ins>+class DOMEditor::InsertBeforeAction final : public InspectorHistory::Action {
</ins><span class="cx"> public:
</span><span class="cx"> InsertBeforeAction(Node& parentNode, Ref<Node>&& node, Node* anchorNode)
</span><del>- : InspectorHistory::Action("InsertBefore")
</del><ins>+ : Action("InsertBefore")
</ins><span class="cx"> , m_parentNode(parentNode)
</span><span class="cx"> , m_node(WTFMove(node))
</span><span class="cx"> , m_anchorNode(anchorNode)
</span><span class="lines">@@ -87,33 +86,38 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool perform(ExceptionCode& ec) override
</del><ins>+private:
+ ExceptionOr<void> perform() final
</ins><span class="cx"> {
</span><span class="cx"> if (m_node->parentNode()) {
</span><span class="cx"> m_removeChildAction = std::make_unique<RemoveChildAction>(*m_node->parentNode(), m_node);
</span><del>- if (!m_removeChildAction->perform(ec))
- return false;
</del><ins>+ auto result = m_removeChildAction->perform();
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><del>- return m_parentNode->insertBefore(m_node, m_anchorNode.get(), ec);
</del><ins>+ return m_parentNode->insertBefore(m_node, m_anchorNode.get());
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool undo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> undo() final
</ins><span class="cx"> {
</span><del>- if (!m_parentNode->removeChild(m_node, ec))
- return false;
- if (m_removeChildAction)
- return m_removeChildAction->undo(ec);
- return true;
</del><ins>+ auto result = m_parentNode->removeChild(m_node);
+ if (result.hasException())
+ return result.releaseException();
+ if (!m_removeChildAction)
+ return { };
+ return m_removeChildAction->undo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool redo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> redo() final
</ins><span class="cx"> {
</span><del>- if (m_removeChildAction && !m_removeChildAction->redo(ec))
- return false;
- return m_parentNode->insertBefore(m_node, m_anchorNode.get(), ec);
</del><ins>+ if (m_removeChildAction) {
+ auto result = m_removeChildAction->redo();
+ if (result.hasException())
+ return result.releaseException();
+ }
+ return m_parentNode->insertBefore(m_node, m_anchorNode.get());
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-private:
</del><span class="cx"> Ref<Node> m_parentNode;
</span><span class="cx"> Ref<Node> m_node;
</span><span class="cx"> RefPtr<Node> m_anchorNode;
</span><span class="lines">@@ -120,175 +124,161 @@
</span><span class="cx"> std::unique_ptr<RemoveChildAction> m_removeChildAction;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-class DOMEditor::RemoveAttributeAction : public InspectorHistory::Action {
</del><ins>+class DOMEditor::RemoveAttributeAction final : public InspectorHistory::Action {
</ins><span class="cx"> WTF_MAKE_NONCOPYABLE(RemoveAttributeAction);
</span><span class="cx"> public:
</span><del>- RemoveAttributeAction(Element* element, const String& name)
- : InspectorHistory::Action("RemoveAttribute")
</del><ins>+ RemoveAttributeAction(Element& element, const String& name)
+ : Action("RemoveAttribute")
</ins><span class="cx"> , m_element(element)
</span><span class="cx"> , m_name(name)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool perform(ExceptionCode& ec) override
</del><ins>+private:
+ ExceptionOr<void> perform() final
</ins><span class="cx"> {
</span><span class="cx"> m_value = m_element->getAttribute(m_name);
</span><del>- return redo(ec);
</del><ins>+ return redo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool undo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> undo() final
</ins><span class="cx"> {
</span><del>- auto result = m_element->setAttribute(m_name, m_value);
- if (result.hasException())
- ec = result.releaseException().code();
- return true;
</del><ins>+ return m_element->setAttribute(m_name, m_value);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool redo(ExceptionCode&) override
</del><ins>+ ExceptionOr<void> redo() final
</ins><span class="cx"> {
</span><span class="cx"> m_element->removeAttribute(m_name);
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-private:
- RefPtr<Element> m_element;
</del><ins>+ Ref<Element> m_element;
</ins><span class="cx"> String m_name;
</span><span class="cx"> String m_value;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-class DOMEditor::SetAttributeAction : public InspectorHistory::Action {
</del><ins>+class DOMEditor::SetAttributeAction final : public InspectorHistory::Action {
</ins><span class="cx"> WTF_MAKE_NONCOPYABLE(SetAttributeAction);
</span><span class="cx"> public:
</span><del>- SetAttributeAction(Element* element, const String& name, const String& value)
- : InspectorHistory::Action("SetAttribute")
</del><ins>+ SetAttributeAction(Element& element, const AtomicString& name, const AtomicString& value)
+ : Action("SetAttribute")
</ins><span class="cx"> , m_element(element)
</span><span class="cx"> , m_name(name)
</span><span class="cx"> , m_value(value)
</span><del>- , m_hadAttribute(false)
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool perform(ExceptionCode& ec) override
</del><ins>+private:
+ ExceptionOr<void> perform() final
</ins><span class="cx"> {
</span><del>- m_hadAttribute = m_element->hasAttribute(m_name);
- if (m_hadAttribute)
- m_oldValue = m_element->getAttribute(m_name);
- return redo(ec);
</del><ins>+ m_oldValue = m_element->getAttribute(m_name);
+ return redo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool undo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> undo() final
</ins><span class="cx"> {
</span><del>- if (m_hadAttribute) {
- auto result = m_element->setAttribute(m_name, m_oldValue);
- if (result.hasException())
- ec = result.releaseException().code();
- } else
</del><ins>+ if (m_oldValue.isNull()) {
</ins><span class="cx"> m_element->removeAttribute(m_name);
</span><del>- return true;
</del><ins>+ return { };
+ }
+ return m_element->setAttribute(m_name, m_oldValue);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool redo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> redo() final
</ins><span class="cx"> {
</span><del>- auto result = m_element->setAttribute(m_name, m_value);
- if (result.hasException())
- ec = result.releaseException().code();
- return true;
</del><ins>+ return m_element->setAttribute(m_name, m_value);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-private:
- RefPtr<Element> m_element;
- String m_name;
- String m_value;
- bool m_hadAttribute;
- String m_oldValue;
</del><ins>+ Ref<Element> m_element;
+ AtomicString m_name;
+ AtomicString m_value;
+ AtomicString m_oldValue;
</ins><span class="cx"> };
</span><span class="cx">
</span><del>-class DOMEditor::SetOuterHTMLAction : public InspectorHistory::Action {
- WTF_MAKE_NONCOPYABLE(SetOuterHTMLAction);
</del><ins>+class DOMEditor::SetOuterHTMLAction final : public InspectorHistory::Action {
</ins><span class="cx"> public:
</span><span class="cx"> SetOuterHTMLAction(Node& node, const String& html)
</span><del>- : InspectorHistory::Action("SetOuterHTML")
</del><ins>+ : Action("SetOuterHTML")
</ins><span class="cx"> , m_node(node)
</span><span class="cx"> , m_nextSibling(node.nextSibling())
</span><span class="cx"> , m_html(html)
</span><del>- , m_newNode(nullptr)
- , m_history(std::make_unique<InspectorHistory>())
- , m_domEditor(std::make_unique<DOMEditor>(m_history.get()))
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool perform(ExceptionCode& ec) override
</del><ins>+ Node* newNode() const
</ins><span class="cx"> {
</span><del>- m_oldHTML = createMarkup(m_node.get());
- DOMPatchSupport domPatchSupport(m_domEditor.get(), &m_node->document());
- m_newNode = domPatchSupport.patchNode(m_node.get(), m_html, ec);
- return !ec;
</del><ins>+ return m_newNode.get();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool undo(ExceptionCode& ec) override
</del><ins>+private:
+ ExceptionOr<void> perform() final
</ins><span class="cx"> {
</span><del>- return m_history->undo(ec);
</del><ins>+ m_oldHTML = createMarkup(m_node.get());
+ auto result = DOMPatchSupport { m_domEditor, m_node->document() }.patchNode(m_node, m_html);
+ if (result.hasException())
+ return result.releaseException();
+ m_newNode = result.releaseReturnValue();
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool redo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> undo() final
</ins><span class="cx"> {
</span><del>- return m_history->redo(ec);
</del><ins>+ return m_history.undo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- Node* newNode()
</del><ins>+ ExceptionOr<void> redo() final
</ins><span class="cx"> {
</span><del>- return m_newNode;
</del><ins>+ return m_history.redo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-private:
</del><span class="cx"> Ref<Node> m_node;
</span><span class="cx"> RefPtr<Node> m_nextSibling;
</span><span class="cx"> String m_html;
</span><span class="cx"> String m_oldHTML;
</span><del>- Node* m_newNode;
- std::unique_ptr<InspectorHistory> m_history;
- std::unique_ptr<DOMEditor> m_domEditor;
</del><ins>+ RefPtr<Node> m_newNode { nullptr };
+ InspectorHistory m_history;
+ DOMEditor m_domEditor { m_history };
</ins><span class="cx"> };
</span><span class="cx">
</span><del>-class DOMEditor::ReplaceWholeTextAction : public InspectorHistory::Action {
</del><ins>+class DOMEditor::ReplaceWholeTextAction final : public InspectorHistory::Action {
</ins><span class="cx"> WTF_MAKE_NONCOPYABLE(ReplaceWholeTextAction);
</span><span class="cx"> public:
</span><del>- ReplaceWholeTextAction(Text* textNode, const String& text)
- : InspectorHistory::Action("ReplaceWholeText")
</del><ins>+ ReplaceWholeTextAction(Text& textNode, const String& text)
+ : Action("ReplaceWholeText")
</ins><span class="cx"> , m_textNode(textNode)
</span><span class="cx"> , m_text(text)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool perform(ExceptionCode& ec) override
</del><ins>+private:
+ ExceptionOr<void> perform() final
</ins><span class="cx"> {
</span><span class="cx"> m_oldText = m_textNode->wholeText();
</span><del>- return redo(ec);
</del><ins>+ return redo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool undo(ExceptionCode&) override
</del><ins>+ ExceptionOr<void> undo() final
</ins><span class="cx"> {
</span><span class="cx"> m_textNode->replaceWholeText(m_oldText);
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool redo(ExceptionCode&) override
</del><ins>+ ExceptionOr<void> redo() final
</ins><span class="cx"> {
</span><span class="cx"> m_textNode->replaceWholeText(m_text);
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-private:
- RefPtr<Text> m_textNode;
</del><ins>+ Ref<Text> m_textNode;
</ins><span class="cx"> String m_text;
</span><span class="cx"> String m_oldText;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-class DOMEditor::ReplaceChildNodeAction : public InspectorHistory::Action {
</del><ins>+class DOMEditor::ReplaceChildNodeAction final: public InspectorHistory::Action {
</ins><span class="cx"> WTF_MAKE_NONCOPYABLE(ReplaceChildNodeAction);
</span><span class="cx"> public:
</span><span class="cx"> ReplaceChildNodeAction(Node& parentNode, Ref<Node>&& newNode, Node& oldNode)
</span><del>- : InspectorHistory::Action("ReplaceChildNode")
</del><ins>+ : Action("ReplaceChildNode")
</ins><span class="cx"> , m_parentNode(parentNode)
</span><span class="cx"> , m_newNode(WTFMove(newNode))
</span><span class="cx"> , m_oldNode(oldNode)
</span><span class="lines">@@ -295,164 +285,149 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool perform(ExceptionCode& ec) override
</del><ins>+private:
+ ExceptionOr<void> perform() final
</ins><span class="cx"> {
</span><del>- return redo(ec);
</del><ins>+ return redo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool undo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> undo() final
</ins><span class="cx"> {
</span><del>- return m_parentNode->replaceChild(m_oldNode, m_newNode.get(), ec);
</del><ins>+ return m_parentNode->replaceChild(m_oldNode, m_newNode);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool redo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> redo() final
</ins><span class="cx"> {
</span><del>- return m_parentNode->replaceChild(m_newNode, m_oldNode, ec);
</del><ins>+ return m_parentNode->replaceChild(m_newNode, m_oldNode);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-private:
</del><span class="cx"> Ref<Node> m_parentNode;
</span><span class="cx"> Ref<Node> m_newNode;
</span><span class="cx"> Ref<Node> m_oldNode;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-class DOMEditor::SetNodeValueAction : public InspectorHistory::Action {
</del><ins>+class DOMEditor::SetNodeValueAction final : public InspectorHistory::Action {
</ins><span class="cx"> WTF_MAKE_NONCOPYABLE(SetNodeValueAction);
</span><span class="cx"> public:
</span><del>- SetNodeValueAction(Node* node, const String& value)
- : InspectorHistory::Action("SetNodeValue")
</del><ins>+ SetNodeValueAction(Node& node, const String& value)
+ : Action("SetNodeValue")
</ins><span class="cx"> , m_node(node)
</span><span class="cx"> , m_value(value)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool perform(ExceptionCode& ec) override
</del><ins>+private:
+ ExceptionOr<void> perform() final
</ins><span class="cx"> {
</span><span class="cx"> m_oldValue = m_node->nodeValue();
</span><del>- return redo(ec);
</del><ins>+ return redo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool undo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> undo() final
</ins><span class="cx"> {
</span><del>- m_node->setNodeValue(m_oldValue, ec);
- return !ec;
</del><ins>+ return m_node->setNodeValue(m_oldValue);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool redo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> redo() final
</ins><span class="cx"> {
</span><del>- m_node->setNodeValue(m_value, ec);
- return !ec;
</del><ins>+ return m_node->setNodeValue(m_value);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-private:
- RefPtr<Node> m_node;
</del><ins>+ Ref<Node> m_node;
</ins><span class="cx"> String m_value;
</span><span class="cx"> String m_oldValue;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-DOMEditor::DOMEditor(InspectorHistory* history) : m_history(history) { }
</del><ins>+DOMEditor::DOMEditor(InspectorHistory& history)
+ : m_history(history)
+{
+}
</ins><span class="cx">
</span><del>-DOMEditor::~DOMEditor() { }
</del><ins>+DOMEditor::~DOMEditor()
+{
+}
</ins><span class="cx">
</span><del>-bool DOMEditor::insertBefore(Node& parentNode, Ref<Node>&& node, Node* anchorNode, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> DOMEditor::insertBefore(Node& parentNode, Ref<Node>&& node, Node* anchorNode)
</ins><span class="cx"> {
</span><del>- return m_history->perform(std::make_unique<InsertBeforeAction>(parentNode, WTFMove(node), anchorNode), ec);
</del><ins>+ return m_history.perform(std::make_unique<InsertBeforeAction>(parentNode, WTFMove(node), anchorNode));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMEditor::removeChild(Node& parentNode, Node& node, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> DOMEditor::removeChild(Node& parentNode, Node& node)
</ins><span class="cx"> {
</span><del>- return m_history->perform(std::make_unique<RemoveChildAction>(parentNode, node), ec);
</del><ins>+ return m_history.perform(std::make_unique<RemoveChildAction>(parentNode, node));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMEditor::setAttribute(Element* element, const String& name, const String& value, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> DOMEditor::setAttribute(Element& element, const String& name, const String& value)
</ins><span class="cx"> {
</span><del>- return m_history->perform(std::make_unique<SetAttributeAction>(element, name, value), ec);
</del><ins>+ return m_history.perform(std::make_unique<SetAttributeAction>(element, name, value));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMEditor::removeAttribute(Element* element, const String& name, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> DOMEditor::removeAttribute(Element& element, const String& name)
</ins><span class="cx"> {
</span><del>- return m_history->perform(std::make_unique<RemoveAttributeAction>(element, name), ec);
</del><ins>+ return m_history.perform(std::make_unique<RemoveAttributeAction>(element, name));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMEditor::setOuterHTML(Node& node, const String& html, Node** newNode, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> DOMEditor::setOuterHTML(Node& node, const String& html, Node*& newNode)
</ins><span class="cx"> {
</span><span class="cx"> auto action = std::make_unique<SetOuterHTMLAction>(node, html);
</span><del>- SetOuterHTMLAction* rawAction = action.get();
- bool result = m_history->perform(WTFMove(action), ec);
- if (result)
- *newNode = rawAction->newNode();
</del><ins>+ auto& rawAction = *action;
+ auto result = m_history.perform(WTFMove(action));
+ if (!result.hasException())
+ newNode = rawAction.newNode();
</ins><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMEditor::replaceWholeText(Text* textNode, const String& text, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> DOMEditor::replaceWholeText(Text& textNode, const String& text)
</ins><span class="cx"> {
</span><del>- return m_history->perform(std::make_unique<ReplaceWholeTextAction>(textNode, text), ec);
</del><ins>+ return m_history.perform(std::make_unique<ReplaceWholeTextAction>(textNode, text));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMEditor::replaceChild(Node& parentNode, Ref<Node>&& newNode, Node& oldNode, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> DOMEditor::replaceChild(Node& parentNode, Ref<Node>&& newNode, Node& oldNode)
</ins><span class="cx"> {
</span><del>- return m_history->perform(std::make_unique<ReplaceChildNodeAction>(parentNode, WTFMove(newNode), oldNode), ec);
</del><ins>+ return m_history.perform(std::make_unique<ReplaceChildNodeAction>(parentNode, WTFMove(newNode), oldNode));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMEditor::setNodeValue(Node* node, const String& value, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> DOMEditor::setNodeValue(Node& node, const String& value)
</ins><span class="cx"> {
</span><del>- return m_history->perform(std::make_unique<SetNodeValueAction>(node, value), ec);
</del><ins>+ return m_history.perform(std::make_unique<SetNodeValueAction>(node, value));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-static void populateErrorString(const ExceptionCode& ec, ErrorString& errorString)
</del><ins>+static bool populateErrorString(ExceptionOr<void>&& result, ErrorString& errorString)
</ins><span class="cx"> {
</span><del>- if (ec) {
- ExceptionCodeDescription description(ec);
- errorString = description.name;
- }
</del><ins>+ if (!result.hasException())
+ return true;
+ errorString = ExceptionCodeDescription { result.releaseException().code() }.name;
+ return false;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool DOMEditor::insertBefore(Node& parentNode, Ref<Node>&& node, Node* anchorNode, ErrorString& errorString)
</span><span class="cx"> {
</span><del>- ExceptionCode ec = 0;
- bool result = insertBefore(parentNode, WTFMove(node), anchorNode, ec);
- populateErrorString(ec, errorString);
- return result;
</del><ins>+ return populateErrorString(insertBefore(parentNode, WTFMove(node), anchorNode), errorString);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool DOMEditor::removeChild(Node& parentNode, Node& node, ErrorString& errorString)
</span><span class="cx"> {
</span><del>- ExceptionCode ec = 0;
- bool result = removeChild(parentNode, node, ec);
- populateErrorString(ec, errorString);
- return result;
</del><ins>+ return populateErrorString(removeChild(parentNode, node), errorString);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMEditor::setAttribute(Element* element, const String& name, const String& value, ErrorString& errorString)
</del><ins>+bool DOMEditor::setAttribute(Element& element, const String& name, const String& value, ErrorString& errorString)
</ins><span class="cx"> {
</span><del>- ExceptionCode ec = 0;
- bool result = setAttribute(element, name, value, ec);
- populateErrorString(ec, errorString);
- return result;
</del><ins>+ return populateErrorString(setAttribute(element, name, value), errorString);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMEditor::removeAttribute(Element* element, const String& name, ErrorString& errorString)
</del><ins>+bool DOMEditor::removeAttribute(Element& element, const String& name, ErrorString& errorString)
</ins><span class="cx"> {
</span><del>- ExceptionCode ec = 0;
- bool result = removeAttribute(element, name, ec);
- populateErrorString(ec, errorString);
- return result;
</del><ins>+ return populateErrorString(removeAttribute(element, name), errorString);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMEditor::setOuterHTML(Node& node, const String& html, Node** newNode, ErrorString& errorString)
</del><ins>+bool DOMEditor::setOuterHTML(Node& node, const String& html, Node*& newNode, ErrorString& errorString)
</ins><span class="cx"> {
</span><del>- ExceptionCode ec = 0;
- bool result = setOuterHTML(node, html, newNode, ec);
- populateErrorString(ec, errorString);
- return result;
</del><ins>+ return populateErrorString(setOuterHTML(node, html, newNode), errorString);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMEditor::replaceWholeText(Text* textNode, const String& text, ErrorString& errorString)
</del><ins>+bool DOMEditor::replaceWholeText(Text& textNode, const String& text, ErrorString& errorString)
</ins><span class="cx"> {
</span><del>- ExceptionCode ec = 0;
- bool result = replaceWholeText(textNode, text, ec);
- populateErrorString(ec, errorString);
- return result;
</del><ins>+ return populateErrorString(replaceWholeText(textNode, text), errorString);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorDOMEditorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/DOMEditor.h (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/DOMEditor.h        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/inspector/DOMEditor.h        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -30,10 +30,8 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><del>-#include "ExceptionCode.h"
</del><ins>+#include "ExceptionOr.h"
</ins><span class="cx">
</span><del>-#include <wtf/text/WTFString.h>
-
</del><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> class Element;
</span><span class="lines">@@ -46,37 +44,37 @@
</span><span class="cx"> class DOMEditor {
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(DOMEditor); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>- explicit DOMEditor(InspectorHistory*);
</del><ins>+ explicit DOMEditor(InspectorHistory&);
</ins><span class="cx"> ~DOMEditor();
</span><span class="cx">
</span><del>- bool insertBefore(Node& parentNode, Ref<Node>&&, Node* anchorNode, ExceptionCode&);
- bool removeChild(Node& parentNode, Node&, ExceptionCode&);
- bool setAttribute(Element*, const String& name, const String& value, ExceptionCode&);
- bool removeAttribute(Element*, const String& name, ExceptionCode&);
- bool setOuterHTML(Node&, const String& html, Node** newNode, ExceptionCode&);
- bool replaceWholeText(Text*, const String& text, ExceptionCode&);
- bool replaceChild(Node& parentNode, Ref<Node>&& newNode, Node& oldNode, ExceptionCode&);
- bool setNodeValue(Node* parentNode, const String& value, ExceptionCode&);
</del><ins>+ ExceptionOr<void> insertBefore(Node& parentNode, Ref<Node>&&, Node* anchorNode);
+ ExceptionOr<void> removeChild(Node& parentNode, Node&);
+ ExceptionOr<void> setAttribute(Element&, const String& name, const String& value);
+ ExceptionOr<void> removeAttribute(Element&, const String& name);
+ ExceptionOr<void> setOuterHTML(Node&, const String& html, Node*& newNode);
+ ExceptionOr<void> replaceWholeText(Text&, const String& text);
+ ExceptionOr<void> replaceChild(Node& parentNode, Ref<Node>&& newNode, Node& oldNode);
+ ExceptionOr<void> setNodeValue(Node& parentNode, const String& value);
</ins><span class="cx">
</span><span class="cx"> bool insertBefore(Node& parentNode, Ref<Node>&&, Node* anchorNode, ErrorString&);
</span><span class="cx"> bool removeChild(Node& parentNode, Node&, ErrorString&);
</span><del>- bool setAttribute(Element*, const String& name, const String& value, ErrorString&);
- bool removeAttribute(Element*, const String& name, ErrorString&);
- bool setOuterHTML(Node&, const String& html, Node** newNode, ErrorString&);
- bool replaceWholeText(Text*, const String& text, ErrorString&);
</del><ins>+ bool setAttribute(Element&, const String& name, const String& value, ErrorString&);
+ bool removeAttribute(Element&, const String& name, ErrorString&);
+ bool setOuterHTML(Node&, const String& html, Node*& newNode, ErrorString&);
+ bool replaceWholeText(Text&, const String& text, ErrorString&);
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> class DOMAction;
</span><del>- class RemoveChildAction;
</del><span class="cx"> class InsertBeforeAction;
</span><span class="cx"> class RemoveAttributeAction;
</span><ins>+ class RemoveChildAction;
+ class ReplaceChildNodeAction;
+ class ReplaceWholeTextAction;
</ins><span class="cx"> class SetAttributeAction;
</span><ins>+ class SetNodeValueAction;
</ins><span class="cx"> class SetOuterHTMLAction;
</span><del>- class ReplaceWholeTextAction;
- class ReplaceChildNodeAction;
- class SetNodeValueAction;
</del><span class="cx">
</span><del>- InspectorHistory* m_history;
</del><ins>+ InspectorHistory& m_history;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorDOMPatchSupportcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/DOMPatchSupport.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/DOMPatchSupport.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/inspector/DOMPatchSupport.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -59,38 +59,34 @@
</span><span class="cx"> using HTMLNames::htmlTag;
</span><span class="cx">
</span><span class="cx"> struct DOMPatchSupport::Digest {
</span><del>- explicit Digest(Node* node) : m_node(node) { }
-
- String m_sha1;
- String m_attrsSHA1;
- Node* m_node;
- Vector<std::unique_ptr<Digest>> m_children;
</del><ins>+ String sha1;
+ String attrsSHA1;
+ Node* node;
+ Vector<std::unique_ptr<Digest>> children;
</ins><span class="cx"> };
</span><span class="cx">
</span><del>-void DOMPatchSupport::patchDocument(Document* document, const String& markup)
</del><ins>+void DOMPatchSupport::patchDocument(Document& document, const String& markup)
</ins><span class="cx"> {
</span><span class="cx"> InspectorHistory history;
</span><del>- DOMEditor domEditor(&history);
- DOMPatchSupport patchSupport(&domEditor, document);
</del><ins>+ DOMEditor domEditor { history };
+ DOMPatchSupport patchSupport(domEditor, document);
</ins><span class="cx"> patchSupport.patchDocument(markup);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-DOMPatchSupport::DOMPatchSupport(DOMEditor* domEditor, Document* document)
</del><ins>+DOMPatchSupport::DOMPatchSupport(DOMEditor& domEditor, Document& document)
</ins><span class="cx"> : m_domEditor(domEditor)
</span><span class="cx"> , m_document(document)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-DOMPatchSupport::~DOMPatchSupport() { }
-
</del><span class="cx"> void DOMPatchSupport::patchDocument(const String& markup)
</span><span class="cx"> {
</span><span class="cx"> RefPtr<Document> newDocument;
</span><del>- if (m_document->isHTMLDocument())
</del><ins>+ if (m_document.isHTMLDocument())
</ins><span class="cx"> newDocument = HTMLDocument::create(nullptr, URL());
</span><del>- else if (m_document->isXHTMLDocument())
</del><ins>+ else if (m_document.isXHTMLDocument())
</ins><span class="cx"> newDocument = XMLDocument::createXHTML(nullptr, URL());
</span><del>- else if (m_document->isSVGDocument())
</del><ins>+ else if (m_document.isSVGDocument())
</ins><span class="cx"> newDocument = XMLDocument::create(nullptr, URL());
</span><span class="cx">
</span><span class="cx"> ASSERT(newDocument);
</span><span class="lines">@@ -103,17 +99,17 @@
</span><span class="cx"> parser->finish();
</span><span class="cx"> parser->detach();
</span><span class="cx">
</span><del>- std::unique_ptr<Digest> oldInfo = createDigest(m_document->documentElement(), nullptr);
- std::unique_ptr<Digest> newInfo = createDigest(newDocument->documentElement(), &m_unusedNodesMap);
</del><ins>+ std::unique_ptr<Digest> oldInfo = createDigest(*m_document.documentElement(), nullptr);
+ std::unique_ptr<Digest> newInfo = createDigest(*newDocument->documentElement(), &m_unusedNodesMap);
</ins><span class="cx">
</span><del>- if (!innerPatchNode(oldInfo.get(), newInfo.get(), IGNORE_EXCEPTION)) {
</del><ins>+ if (innerPatchNode(*oldInfo, *newInfo).hasException()) {
</ins><span class="cx"> // Fall back to rewrite.
</span><del>- m_document->write(markup);
- m_document->close();
</del><ins>+ m_document.write(markup);
+ m_document.close();
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-Node* DOMPatchSupport::patchNode(Node& node, const String& markup, ExceptionCode& ec)
</del><ins>+ExceptionOr<Node*> DOMPatchSupport::patchNode(Node& node, const String& markup)
</ins><span class="cx"> {
</span><span class="cx"> // Don't parse <html> as a fragment.
</span><span class="cx"> if (node.isDocumentNode() || (node.parentNode() && node.parentNode()->isDocumentNode())) {
</span><span class="lines">@@ -123,84 +119,86 @@
</span><span class="cx">
</span><span class="cx"> Node* previousSibling = node.previousSibling();
</span><span class="cx"> // FIXME: This code should use one of createFragment* in markup.h
</span><del>- RefPtr<DocumentFragment> fragment = DocumentFragment::create(*m_document);
- if (m_document->isHTMLDocument())
- fragment->parseHTML(markup, node.parentElement() ? node.parentElement() : m_document->documentElement());
</del><ins>+ RefPtr<DocumentFragment> fragment = DocumentFragment::create(m_document);
+ if (m_document.isHTMLDocument())
+ fragment->parseHTML(markup, node.parentElement() ? node.parentElement() : m_document.documentElement());
</ins><span class="cx"> else
</span><del>- fragment->parseXML(markup, node.parentElement() ? node.parentElement() : m_document->documentElement());
</del><ins>+ fragment->parseXML(markup, node.parentElement() ? node.parentElement() : m_document.documentElement());
</ins><span class="cx">
</span><span class="cx"> // Compose the old list.
</span><del>- ContainerNode* parentNode = node.parentNode();
</del><ins>+ auto* parentNode = node.parentNode();
</ins><span class="cx"> Vector<std::unique_ptr<Digest>> oldList;
</span><span class="cx"> for (Node* child = parentNode->firstChild(); child; child = child->nextSibling())
</span><del>- oldList.append(createDigest(child, nullptr));
</del><ins>+ oldList.append(createDigest(*child, nullptr));
</ins><span class="cx">
</span><span class="cx"> // Compose the new list.
</span><span class="cx"> Vector<std::unique_ptr<Digest>> newList;
</span><span class="cx"> for (Node* child = parentNode->firstChild(); child != &node; child = child->nextSibling())
</span><del>- newList.append(createDigest(child, nullptr));
</del><ins>+ newList.append(createDigest(*child, nullptr));
</ins><span class="cx"> for (Node* child = fragment->firstChild(); child; child = child->nextSibling()) {
</span><span class="cx"> if (child->hasTagName(headTag) && !child->firstChild() && !markup.containsIgnoringASCIICase("</head>"))
</span><span class="cx"> continue; // HTML5 parser inserts empty <head> tag whenever it parses <body>
</span><span class="cx"> if (child->hasTagName(bodyTag) && !child->firstChild() && !markup.containsIgnoringASCIICase("</body>"))
</span><span class="cx"> continue; // HTML5 parser inserts empty <body> tag whenever it parses </head>
</span><del>- newList.append(createDigest(child, &m_unusedNodesMap));
</del><ins>+ newList.append(createDigest(*child, &m_unusedNodesMap));
</ins><span class="cx"> }
</span><span class="cx"> for (Node* child = node.nextSibling(); child; child = child->nextSibling())
</span><del>- newList.append(createDigest(child, nullptr));
</del><ins>+ newList.append(createDigest(*child, nullptr));
</ins><span class="cx">
</span><del>- if (!innerPatchChildren(parentNode, oldList, newList, ec)) {
</del><ins>+ if (innerPatchChildren(*parentNode, oldList, newList).hasException()) {
</ins><span class="cx"> // Fall back to total replace.
</span><del>- ec = 0;
- if (!m_domEditor->replaceChild(*parentNode, *fragment, node, ec))
- return nullptr;
</del><ins>+ auto result = m_domEditor.replaceChild(*parentNode, *fragment, node);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx"> return previousSibling ? previousSibling->nextSibling() : parentNode->firstChild();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMPatchSupport::innerPatchNode(Digest* oldDigest, Digest* newDigest, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> DOMPatchSupport::innerPatchNode(Digest& oldDigest, Digest& newDigest)
</ins><span class="cx"> {
</span><del>- if (oldDigest->m_sha1 == newDigest->m_sha1)
- return true;
</del><ins>+ if (oldDigest.sha1 == newDigest.sha1)
+ return { };
</ins><span class="cx">
</span><del>- Node* oldNode = oldDigest->m_node;
- Node* newNode = newDigest->m_node;
</del><ins>+ auto& oldNode = *oldDigest.node;
+ auto& newNode = *newDigest.node;
</ins><span class="cx">
</span><del>- if (newNode->nodeType() != oldNode->nodeType() || newNode->nodeName() != oldNode->nodeName())
- return m_domEditor->replaceChild(*oldNode->parentNode(), *newNode, *oldNode, ec);
</del><ins>+ if (newNode.nodeType() != oldNode.nodeType() || newNode.nodeName() != oldNode.nodeName())
+ return m_domEditor.replaceChild(*oldNode.parentNode(), newNode, oldNode);
</ins><span class="cx">
</span><del>- if (oldNode->nodeValue() != newNode->nodeValue()) {
- if (!m_domEditor->setNodeValue(oldNode, newNode->nodeValue(), ec))
- return false;
</del><ins>+ if (oldNode.nodeValue() != newNode.nodeValue()) {
+ auto result = m_domEditor.setNodeValue(oldNode, newNode.nodeValue());
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- if (oldNode->nodeType() != Node::ELEMENT_NODE)
- return true;
</del><ins>+ if (!is<Element>(oldNode))
+ return { };
</ins><span class="cx">
</span><span class="cx"> // Patch attributes
</span><del>- Element* oldElement = downcast<Element>(oldNode);
- Element* newElement = downcast<Element>(newNode);
- if (oldDigest->m_attrsSHA1 != newDigest->m_attrsSHA1) {
</del><ins>+ auto& oldElement = downcast<Element>(oldNode);
+ auto& newElement = downcast<Element>(newNode);
+ if (oldDigest.attrsSHA1 != newDigest.attrsSHA1) {
</ins><span class="cx"> // FIXME: Create a function in Element for removing all properties. Take in account whether did/willModifyAttribute are important.
</span><del>- if (oldElement->hasAttributesWithoutUpdate()) {
- while (oldElement->attributeCount()) {
- const Attribute& attribute = oldElement->attributeAt(0);
- if (!m_domEditor->removeAttribute(oldElement, attribute.localName(), ec))
- return false;
</del><ins>+ if (oldElement.hasAttributesWithoutUpdate()) {
+ while (oldElement.attributeCount()) {
+ auto result = m_domEditor.removeAttribute(oldElement, oldElement.attributeAt(0).localName());
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // FIXME: Create a function in Element for copying properties. cloneDataFromElement() is close but not enough for this case.
</span><del>- if (newElement->hasAttributesWithoutUpdate()) {
- for (const Attribute& attribute : newElement->attributesIterator()) {
- if (!m_domEditor->setAttribute(oldElement, attribute.name().localName(), attribute.value(), ec))
- return false;
</del><ins>+ if (newElement.hasAttributesWithoutUpdate()) {
+ for (auto& attribute : newElement.attributesIterator()) {
+ auto result = m_domEditor.setAttribute(oldElement, attribute.name().localName(), attribute.value());
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool result = innerPatchChildren(oldElement, oldDigest->m_children, newDigest->m_children, ec);
- m_unusedNodesMap.remove(newDigest->m_sha1);
</del><ins>+ auto result = innerPatchChildren(oldElement, oldDigest.children, newDigest.children);
+ m_unusedNodesMap.remove(newDigest.sha1);
</ins><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -221,13 +219,13 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Trim head and tail.
</span><del>- for (size_t i = 0; i < oldList.size() && i < newList.size() && oldList[i]->m_sha1 == newList[i]->m_sha1; ++i) {
</del><ins>+ for (size_t i = 0; i < oldList.size() && i < newList.size() && oldList[i]->sha1 == newList[i]->sha1; ++i) {
</ins><span class="cx"> oldMap[i].first = oldList[i].get();
</span><span class="cx"> oldMap[i].second = i;
</span><span class="cx"> newMap[i].first = newList[i].get();
</span><span class="cx"> newMap[i].second = i;
</span><span class="cx"> }
</span><del>- for (size_t i = 0; i < oldList.size() && i < newList.size() && oldList[oldList.size() - i - 1]->m_sha1 == newList[newList.size() - i - 1]->m_sha1; ++i) {
</del><ins>+ for (size_t i = 0; i < oldList.size() && i < newList.size() && oldList[oldList.size() - i - 1]->sha1 == newList[newList.size() - i - 1]->sha1; ++i) {
</ins><span class="cx"> size_t oldIndex = oldList.size() - i - 1;
</span><span class="cx"> size_t newIndex = newList.size() - i - 1;
</span><span class="cx"> oldMap[oldIndex].first = oldList[oldIndex].get();
</span><span class="lines">@@ -240,26 +238,22 @@
</span><span class="cx"> DiffTable newTable;
</span><span class="cx"> DiffTable oldTable;
</span><span class="cx">
</span><del>- for (size_t i = 0; i < newList.size(); ++i) {
- DiffTable::iterator it = newTable.add(newList[i]->m_sha1, Vector<size_t>()).iterator;
- it->value.append(i);
- }
</del><ins>+ for (size_t i = 0; i < newList.size(); ++i)
+ newTable.add(newList[i]->sha1, Vector<size_t>()).iterator->value.append(i);
</ins><span class="cx">
</span><del>- for (size_t i = 0; i < oldList.size(); ++i) {
- DiffTable::iterator it = oldTable.add(oldList[i]->m_sha1, Vector<size_t>()).iterator;
- it->value.append(i);
- }
</del><ins>+ for (size_t i = 0; i < oldList.size(); ++i)
+ oldTable.add(oldList[i]->sha1, Vector<size_t>()).iterator->value.append(i);
</ins><span class="cx">
</span><del>- for (DiffTable::iterator newIt = newTable.begin(); newIt != newTable.end(); ++newIt) {
- if (newIt->value.size() != 1)
</del><ins>+ for (auto& newEntry : newTable) {
+ if (newEntry.value.size() != 1)
</ins><span class="cx"> continue;
</span><span class="cx">
</span><del>- DiffTable::iterator oldIt = oldTable.find(newIt->key);
</del><ins>+ auto oldIt = oldTable.find(newEntry.key);
</ins><span class="cx"> if (oldIt == oldTable.end() || oldIt->value.size() != 1)
</span><span class="cx"> continue;
</span><span class="cx">
</span><del>- newMap[newIt->value[0]] = std::make_pair(newList[newIt->value[0]].get(), oldIt->value[0]);
- oldMap[oldIt->value[0]] = std::make_pair(oldList[oldIt->value[0]].get(), newIt->value[0]);
</del><ins>+ newMap[newEntry.value[0]] = std::make_pair(newList[newEntry.value[0]].get(), oldIt->value[0]);
+ oldMap[oldIt->value[0]] = std::make_pair(oldList[oldIt->value[0]].get(), newEntry.value[0]);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> for (size_t i = 0; newList.size() > 0 && i < newList.size() - 1; ++i) {
</span><span class="lines">@@ -267,7 +261,7 @@
</span><span class="cx"> continue;
</span><span class="cx">
</span><span class="cx"> size_t j = newMap[i].second + 1;
</span><del>- if (j < oldMap.size() && !oldMap[j].first && newList[i + 1]->m_sha1 == oldList[j]->m_sha1) {
</del><ins>+ if (j < oldMap.size() && !oldMap[j].first && newList[i + 1]->sha1 == oldList[j]->sha1) {
</ins><span class="cx"> newMap[i + 1] = std::make_pair(newList[i + 1].get(), j);
</span><span class="cx"> oldMap[j] = std::make_pair(oldList[j].get(), i + 1);
</span><span class="cx"> }
</span><span class="lines">@@ -278,7 +272,7 @@
</span><span class="cx"> continue;
</span><span class="cx">
</span><span class="cx"> size_t j = newMap[i].second - 1;
</span><del>- if (!oldMap[j].first && newList[i - 1]->m_sha1 == oldList[j]->m_sha1) {
</del><ins>+ if (!oldMap[j].first && newList[i - 1]->sha1 == oldList[j]->sha1) {
</ins><span class="cx"> newMap[i - 1] = std::make_pair(newList[i - 1].get(), j);
</span><span class="cx"> oldMap[j] = std::make_pair(oldList[j].get(), i - 1);
</span><span class="cx"> }
</span><span class="lines">@@ -292,9 +286,9 @@
</span><span class="cx"> return std::make_pair(oldMap, newMap);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMPatchSupport::innerPatchChildren(ContainerNode* parentNode, const Vector<std::unique_ptr<Digest>>& oldList, const Vector<std::unique_ptr<Digest>>& newList, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> DOMPatchSupport::innerPatchChildren(ContainerNode& parentNode, const Vector<std::unique_ptr<Digest>>& oldList, const Vector<std::unique_ptr<Digest>>& newList)
</ins><span class="cx"> {
</span><del>- std::pair<ResultMap, ResultMap> resultMaps = diff(oldList, newList);
</del><ins>+ auto resultMaps = diff(oldList, newList);
</ins><span class="cx"> ResultMap& oldMap = resultMaps.first;
</span><span class="cx"> ResultMap& newMap = resultMaps.second;
</span><span class="cx">
</span><span class="lines">@@ -316,28 +310,30 @@
</span><span class="cx">
</span><span class="cx"> // Always match <head> and <body> tags with each other - we can't remove them from the DOM
</span><span class="cx"> // upon patching.
</span><del>- if (oldList[i]->m_node->hasTagName(headTag)) {
</del><ins>+ if (oldList[i]->node->hasTagName(headTag)) {
</ins><span class="cx"> oldHead = oldList[i].get();
</span><span class="cx"> continue;
</span><span class="cx"> }
</span><del>- if (oldList[i]->m_node->hasTagName(bodyTag)) {
</del><ins>+ if (oldList[i]->node->hasTagName(bodyTag)) {
</ins><span class="cx"> oldBody = oldList[i].get();
</span><span class="cx"> continue;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Check if this change is between stable nodes. If it is, consider it as "modified".
</span><del>- if (!m_unusedNodesMap.contains(oldList[i]->m_sha1) && (!i || oldMap[i - 1].first) && (i == oldMap.size() - 1 || oldMap[i + 1].first)) {
</del><ins>+ if (!m_unusedNodesMap.contains(oldList[i]->sha1) && (!i || oldMap[i - 1].first) && (i == oldMap.size() - 1 || oldMap[i + 1].first)) {
</ins><span class="cx"> size_t anchorCandidate = i ? oldMap[i - 1].second + 1 : 0;
</span><span class="cx"> size_t anchorAfter = i == oldMap.size() - 1 ? anchorCandidate + 1 : oldMap[i + 1].second;
</span><span class="cx"> if (anchorAfter - anchorCandidate == 1 && anchorCandidate < newList.size())
</span><span class="cx"> merges.set(newList[anchorCandidate].get(), oldList[i].get());
</span><span class="cx"> else {
</span><del>- if (!removeChildAndMoveToNew(oldList[i].get(), ec))
- return false;
</del><ins>+ auto result = removeChildAndMoveToNew(*oldList[i]);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx"> } else {
</span><del>- if (!removeChildAndMoveToNew(oldList[i].get(), ec))
- return false;
</del><ins>+ auto result = removeChildAndMoveToNew(*oldList[i]);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -354,15 +350,15 @@
</span><span class="cx"> continue;
</span><span class="cx"> }
</span><span class="cx"> usedOldOrdinals.add(oldOrdinal);
</span><del>- markNodeAsUsed(newMap[i].first);
</del><ins>+ markNodeAsUsed(*newMap[i].first);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Mark <head> and <body> nodes for merge.
</span><span class="cx"> if (oldHead || oldBody) {
</span><span class="cx"> for (size_t i = 0; i < newList.size(); ++i) {
</span><del>- if (oldHead && newList[i]->m_node->hasTagName(headTag))
</del><ins>+ if (oldHead && newList[i]->node->hasTagName(headTag))
</ins><span class="cx"> merges.set(newList[i].get(), oldHead);
</span><del>- if (oldBody && newList[i]->m_node->hasTagName(bodyTag))
</del><ins>+ if (oldBody && newList[i]->node->hasTagName(bodyTag))
</ins><span class="cx"> merges.set(newList[i].get(), oldBody);
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="lines">@@ -369,8 +365,9 @@
</span><span class="cx">
</span><span class="cx"> // 2. Patch nodes marked for merge.
</span><span class="cx"> for (auto& merge : merges) {
</span><del>- if (!innerPatchNode(merge.value, merge.key, ec))
- return false;
</del><ins>+ auto result = innerPatchNode(*merge.value, *merge.key);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // 3. Insert missing nodes.
</span><span class="lines">@@ -377,8 +374,9 @@
</span><span class="cx"> for (size_t i = 0; i < newMap.size(); ++i) {
</span><span class="cx"> if (newMap[i].first || merges.contains(newList[i].get()))
</span><span class="cx"> continue;
</span><del>- if (!insertBeforeAndMarkAsUsed(*parentNode, *newList[i], parentNode->traverseToChildAt(i), ec))
- return false;
</del><ins>+ auto result = insertBeforeAndMarkAsUsed(parentNode, *newList[i], parentNode.traverseToChildAt(i));
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // 4. Then put all nodes that retained into their slots (sort by new index).
</span><span class="lines">@@ -385,17 +383,17 @@
</span><span class="cx"> for (size_t i = 0; i < oldMap.size(); ++i) {
</span><span class="cx"> if (!oldMap[i].first)
</span><span class="cx"> continue;
</span><del>- RefPtr<Node> node = oldMap[i].first->m_node;
- Node* anchorNode = parentNode->traverseToChildAt(oldMap[i].second);
- if (node.get() == anchorNode)
</del><ins>+ RefPtr<Node> node = oldMap[i].first->node;
+ auto* anchorNode = parentNode.traverseToChildAt(oldMap[i].second);
+ if (node == anchorNode)
</ins><span class="cx"> continue;
</span><span class="cx"> if (node->hasTagName(bodyTag) || node->hasTagName(headTag))
</span><span class="cx"> continue; // Never move head or body, move the rest of the nodes around them.
</span><del>-
- if (!m_domEditor->insertBefore(*parentNode, node.releaseNonNull(), anchorNode, ec))
- return false;
</del><ins>+ auto result = m_domEditor.insertBefore(parentNode, node.releaseNonNull(), anchorNode);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static void addStringToSHA1(SHA1& sha1, const String& string)
</span><span class="lines">@@ -404,62 +402,64 @@
</span><span class="cx"> sha1.addBytes(reinterpret_cast<const uint8_t*>(cString.data()), cString.length());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-std::unique_ptr<DOMPatchSupport::Digest> DOMPatchSupport::createDigest(Node* node, UnusedNodesMap* unusedNodesMap)
</del><ins>+std::unique_ptr<DOMPatchSupport::Digest> DOMPatchSupport::createDigest(Node& node, UnusedNodesMap* unusedNodesMap)
</ins><span class="cx"> {
</span><del>- auto digest = std::make_unique<Digest>(node);
</del><ins>+ auto digest = std::make_unique<Digest>();
+ digest->node = &node;
</ins><span class="cx"> SHA1 sha1;
</span><span class="cx">
</span><del>- Node::NodeType nodeType = node->nodeType();
</del><ins>+ auto nodeType = node.nodeType();
</ins><span class="cx"> sha1.addBytes(reinterpret_cast<const uint8_t*>(&nodeType), sizeof(nodeType));
</span><del>- addStringToSHA1(sha1, node->nodeName());
- addStringToSHA1(sha1, node->nodeValue());
</del><ins>+ addStringToSHA1(sha1, node.nodeName());
+ addStringToSHA1(sha1, node.nodeValue());
</ins><span class="cx">
</span><del>- if (node->nodeType() == Node::ELEMENT_NODE) {
- Node* child = node->firstChild();
</del><ins>+ if (node.nodeType() == Node::ELEMENT_NODE) {
+ Node* child = node.firstChild();
</ins><span class="cx"> while (child) {
</span><del>- std::unique_ptr<Digest> childInfo = createDigest(child, unusedNodesMap);
- addStringToSHA1(sha1, childInfo->m_sha1);
</del><ins>+ std::unique_ptr<Digest> childInfo = createDigest(*child, unusedNodesMap);
+ addStringToSHA1(sha1, childInfo->sha1);
</ins><span class="cx"> child = child->nextSibling();
</span><del>- digest->m_children.append(WTFMove(childInfo));
</del><ins>+ digest->children.append(WTFMove(childInfo));
</ins><span class="cx"> }
</span><del>- Element* element = downcast<Element>(node);
</del><ins>+ auto& element = downcast<Element>(node);
</ins><span class="cx">
</span><del>- if (element->hasAttributesWithoutUpdate()) {
</del><ins>+ if (element.hasAttributesWithoutUpdate()) {
</ins><span class="cx"> SHA1 attrsSHA1;
</span><del>- for (const Attribute& attribute : element->attributesIterator()) {
</del><ins>+ for (auto& attribute : element.attributesIterator()) {
</ins><span class="cx"> addStringToSHA1(attrsSHA1, attribute.name().toString());
</span><span class="cx"> addStringToSHA1(attrsSHA1, attribute.value());
</span><span class="cx"> }
</span><span class="cx"> SHA1::Digest attrsHash;
</span><span class="cx"> attrsSHA1.computeHash(attrsHash);
</span><del>- digest->m_attrsSHA1 = base64Encode(attrsHash.data(), 10);
- addStringToSHA1(sha1, digest->m_attrsSHA1);
</del><ins>+ digest->attrsSHA1 = base64Encode(attrsHash.data(), 10);
+ addStringToSHA1(sha1, digest->attrsSHA1);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> SHA1::Digest hash;
</span><span class="cx"> sha1.computeHash(hash);
</span><del>- digest->m_sha1 = base64Encode(hash.data(), 10);
</del><ins>+ digest->sha1 = base64Encode(hash.data(), 10);
</ins><span class="cx"> if (unusedNodesMap)
</span><del>- unusedNodesMap->add(digest->m_sha1, digest.get());
</del><ins>+ unusedNodesMap->add(digest->sha1, digest.get());
</ins><span class="cx">
</span><span class="cx"> return digest;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMPatchSupport::insertBeforeAndMarkAsUsed(ContainerNode& parentNode, Digest& digest, Node* anchor, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> DOMPatchSupport::insertBeforeAndMarkAsUsed(ContainerNode& parentNode, Digest& digest, Node* anchor)
</ins><span class="cx"> {
</span><del>- ASSERT(digest.m_node);
- bool result = m_domEditor->insertBefore(parentNode, *digest.m_node, anchor, ec);
- markNodeAsUsed(&digest);
</del><ins>+ ASSERT(digest.node);
+ auto result = m_domEditor.insertBefore(parentNode, *digest.node, anchor);
+ markNodeAsUsed(digest);
</ins><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool DOMPatchSupport::removeChildAndMoveToNew(Digest* oldDigest, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> DOMPatchSupport::removeChildAndMoveToNew(Digest& oldDigest)
</ins><span class="cx"> {
</span><del>- RefPtr<Node> oldNode = oldDigest->m_node;
</del><ins>+ Ref<Node> oldNode = *oldDigest.node;
</ins><span class="cx"> ASSERT(oldNode->parentNode());
</span><del>- if (!m_domEditor->removeChild(*oldNode->parentNode(), *oldNode, ec))
- return false;
</del><ins>+ auto result = m_domEditor.removeChild(*oldNode->parentNode(), oldNode);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx">
</span><span class="cx"> // Diff works within levels. In order not to lose the node identity when user
</span><span class="cx"> // prepends his HTML with "<div>" (i.e. all nodes are shifted to the next nested level),
</span><span class="lines">@@ -466,32 +466,34 @@
</span><span class="cx"> // prior to dropping the original node on the floor, check whether new DOM has a digest
</span><span class="cx"> // with matching sha1. If it does, replace it with the original DOM chunk. Chances are
</span><span class="cx"> // high that it will get merged back into the original DOM during the further patching.
</span><del>- UnusedNodesMap::iterator it = m_unusedNodesMap.find(oldDigest->m_sha1);
</del><ins>+ auto it = m_unusedNodesMap.find(oldDigest.sha1);
</ins><span class="cx"> if (it != m_unusedNodesMap.end()) {
</span><del>- Digest* newDigest = it->value;
- Node* newNode = newDigest->m_node;
- if (!m_domEditor->replaceChild(*newNode->parentNode(), *oldNode, *newNode, ec))
- return false;
- newDigest->m_node = oldNode.get();
</del><ins>+ auto& newDigest = *it->value;
+ auto& newNode = *newDigest.node;
+ auto result = m_domEditor.replaceChild(*newNode.parentNode(), oldNode.get(), newNode);
+ if (result.hasException())
+ return result.releaseException();
+ newDigest.node = oldNode.ptr();
</ins><span class="cx"> markNodeAsUsed(newDigest);
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- for (auto& child : oldDigest->m_children) {
- if (!removeChildAndMoveToNew(child.get(), ec))
- return false;
</del><ins>+ for (auto& child : oldDigest.children) {
+ auto result = removeChildAndMoveToNew(*child);
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx"> }
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void DOMPatchSupport::markNodeAsUsed(Digest* digest)
</del><ins>+void DOMPatchSupport::markNodeAsUsed(Digest& digest)
</ins><span class="cx"> {
</span><span class="cx"> Deque<Digest*> queue;
</span><del>- queue.append(digest);
</del><ins>+ queue.append(&digest);
</ins><span class="cx"> while (!queue.isEmpty()) {
</span><del>- Digest* first = queue.takeFirst();
- m_unusedNodesMap.remove(first->m_sha1);
- for (auto& child : first->m_children)
</del><ins>+ auto& first = *queue.takeFirst();
+ m_unusedNodesMap.remove(first.sha1);
+ for (auto& child : first.children)
</ins><span class="cx"> queue.append(child.get());
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorDOMPatchSupporth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/DOMPatchSupport.h (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/DOMPatchSupport.h        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/inspector/DOMPatchSupport.h        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -30,10 +30,9 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><del>-#include "ExceptionCode.h"
</del><ins>+#include "ExceptionOr.h"
</ins><span class="cx"> #include <wtf/HashMap.h>
</span><span class="cx"> #include <wtf/Vector.h>
</span><del>-#include <wtf/text/WTFString.h>
</del><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -43,34 +42,34 @@
</span><span class="cx"> class Node;
</span><span class="cx">
</span><span class="cx"> class DOMPatchSupport final {
</span><del>- WTF_MAKE_NONCOPYABLE(DOMPatchSupport);
</del><span class="cx"> public:
</span><del>- static void patchDocument(Document*, const String& markup);
</del><ins>+ static void patchDocument(Document&, const String& markup);
</ins><span class="cx">
</span><del>- DOMPatchSupport(DOMEditor*, Document*);
- ~DOMPatchSupport();
</del><ins>+ DOMPatchSupport(DOMEditor&, Document&);
</ins><span class="cx">
</span><span class="cx"> void patchDocument(const String& markup);
</span><del>- Node* patchNode(Node&, const String& markup, ExceptionCode&);
</del><ins>+ ExceptionOr<Node*> patchNode(Node&, const String& markup);
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> struct Digest;
</span><del>- typedef Vector<std::pair<Digest*, size_t>> ResultMap;
- typedef HashMap<String, Digest*> UnusedNodesMap;
</del><span class="cx">
</span><del>- bool innerPatchNode(Digest* oldNode, Digest* newNode, ExceptionCode&);
</del><ins>+ using ResultMap = Vector<std::pair<Digest*, size_t>>;
+ using UnusedNodesMap = HashMap<String, Digest*>;
+
+ ExceptionOr<void> innerPatchNode(Digest& oldNode, Digest& newNode);
</ins><span class="cx"> std::pair<ResultMap, ResultMap> diff(const Vector<std::unique_ptr<Digest>>& oldChildren, const Vector<std::unique_ptr<Digest>>& newChildren);
</span><del>- bool innerPatchChildren(ContainerNode*, const Vector<std::unique_ptr<Digest>>& oldChildren, const Vector<std::unique_ptr<Digest>>& newChildren, ExceptionCode&);
- std::unique_ptr<Digest> createDigest(Node*, UnusedNodesMap*);
- bool insertBeforeAndMarkAsUsed(ContainerNode&, Digest&, Node* anchor, ExceptionCode&);
- bool removeChildAndMoveToNew(Digest*, ExceptionCode&);
- void markNodeAsUsed(Digest*);
</del><ins>+ ExceptionOr<void> innerPatchChildren(ContainerNode&, const Vector<std::unique_ptr<Digest>>& oldChildren, const Vector<std::unique_ptr<Digest>>& newChildren);
+ std::unique_ptr<Digest> createDigest(Node&, UnusedNodesMap*);
+ ExceptionOr<void> insertBeforeAndMarkAsUsed(ContainerNode&, Digest&, Node* anchor);
+ ExceptionOr<void> removeChildAndMoveToNew(Digest&);
+ void markNodeAsUsed(Digest&);
+
</ins><span class="cx"> #ifdef DEBUG_DOM_PATCH_SUPPORT
</span><span class="cx"> void dumpMap(const ResultMap&, const String& name);
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- DOMEditor* m_domEditor;
- Document* m_document;
</del><ins>+ DOMEditor& m_domEditor;
+ Document& m_document;
</ins><span class="cx">
</span><span class="cx"> UnusedNodesMap m_unusedNodesMap;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorCSSAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -175,32 +175,35 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool perform(ExceptionCode& ec) override
</del><ins>+private:
+ ExceptionOr<void> perform() final
</ins><span class="cx"> {
</span><del>- if (!m_styleSheet->getText(&m_oldText))
- return false;
- return redo(ec);
</del><ins>+ auto result = m_styleSheet->text();
+ if (result.hasException())
+ return result.releaseException();
+ m_oldText = result.releaseReturnValue();
+ return redo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool undo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> undo() final
</ins><span class="cx"> {
</span><del>- if (m_styleSheet->setText(m_oldText, ec)) {
- m_styleSheet->reparseStyleSheet(m_oldText);
- return true;
- }
- return false;
</del><ins>+ auto result = m_styleSheet->setText(m_oldText);
+ if (result.hasException())
+ return result.releaseException();
+ m_styleSheet->reparseStyleSheet(m_oldText);
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool redo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> redo() final
</ins><span class="cx"> {
</span><del>- if (m_styleSheet->setText(m_text, ec)) {
- m_styleSheet->reparseStyleSheet(m_text);
- return true;
- }
- return false;
</del><ins>+ auto result = m_styleSheet->setText(m_text);
+ if (result.hasException())
+ return result.releaseException();
+ m_styleSheet->reparseStyleSheet(m_text);
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- String mergeId() override
</del><ins>+ String mergeId() final
</ins><span class="cx"> {
</span><span class="cx"> return String::format("SetStyleSheetText %s", m_styleSheet->id().utf8().data());
</span><span class="cx"> }
</span><span class="lines">@@ -208,12 +211,9 @@
</span><span class="cx"> void merge(std::unique_ptr<Action> action) override
</span><span class="cx"> {
</span><span class="cx"> ASSERT(action->mergeId() == mergeId());
</span><del>-
- SetStyleSheetTextAction* other = static_cast<SetStyleSheetTextAction*>(action.get());
- m_text = other->m_text;
</del><ins>+ m_text = static_cast<SetStyleSheetTextAction&>(*action).m_text;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-private:
</del><span class="cx"> String m_text;
</span><span class="cx"> String m_oldText;
</span><span class="cx"> };
</span><span class="lines">@@ -228,19 +228,19 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool perform(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> perform() override
</ins><span class="cx"> {
</span><del>- return redo(ec);
</del><ins>+ return redo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool undo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> undo() override
</ins><span class="cx"> {
</span><del>- return m_styleSheet->setStyleText(m_cssId, m_oldText, nullptr, ec);
</del><ins>+ return m_styleSheet->setStyleText(m_cssId, m_oldText, nullptr);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool redo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> redo() override
</ins><span class="cx"> {
</span><del>- return m_styleSheet->setStyleText(m_cssId, m_text, &m_oldText, ec);
</del><ins>+ return m_styleSheet->setStyleText(m_cssId, m_text, &m_oldText);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String mergeId() override
</span><span class="lines">@@ -273,25 +273,26 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool perform(ExceptionCode& ec) override
</del><ins>+private:
+ ExceptionOr<void> perform() final
</ins><span class="cx"> {
</span><del>- m_oldSelector = m_styleSheet->ruleSelector(m_cssId, ec);
- if (ec)
- return false;
- return redo(ec);
</del><ins>+ auto result = m_styleSheet->ruleSelector(m_cssId);
+ if (result.hasException())
+ return result.releaseException();
+ m_oldSelector = result.releaseReturnValue();
+ return redo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool undo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> undo() final
</ins><span class="cx"> {
</span><del>- return m_styleSheet->setRuleSelector(m_cssId, m_oldSelector, ec);
</del><ins>+ return m_styleSheet->setRuleSelector(m_cssId, m_oldSelector);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool redo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> redo() final
</ins><span class="cx"> {
</span><del>- return m_styleSheet->setRuleSelector(m_cssId, m_selector, ec);
</del><ins>+ return m_styleSheet->setRuleSelector(m_cssId, m_selector);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-private:
</del><span class="cx"> InspectorCSSId m_cssId;
</span><span class="cx"> String m_selector;
</span><span class="cx"> String m_oldSelector;
</span><span class="lines">@@ -306,34 +307,33 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool perform(ExceptionCode& ec) override
</del><ins>+ InspectorCSSId newRuleId() const { return m_newId; }
+
+private:
+ ExceptionOr<void> perform() final
</ins><span class="cx"> {
</span><del>- return redo(ec);
</del><ins>+ return redo();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool undo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> undo() final
</ins><span class="cx"> {
</span><del>- return m_styleSheet->deleteRule(m_newId, ec);
</del><ins>+ return m_styleSheet->deleteRule(m_newId);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- bool redo(ExceptionCode& ec) override
</del><ins>+ ExceptionOr<void> redo() final
</ins><span class="cx"> {
</span><del>- CSSStyleRule* cssStyleRule = m_styleSheet->addRule(m_selector, ec);
- if (ec)
- return false;
- m_newId = m_styleSheet->ruleId(cssStyleRule);
- return true;
</del><ins>+ auto result = m_styleSheet->addRule(m_selector);
+ if (result.hasException())
+ return result.releaseException();
+ m_newId = m_styleSheet->ruleId(result.releaseReturnValue());
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- InspectorCSSId newRuleId() { return m_newId; }
-
-private:
</del><span class="cx"> InspectorCSSId m_newId;
</span><span class="cx"> String m_selector;
</span><span class="cx"> String m_oldSelector;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-// static
</del><span class="cx"> CSSStyleRule* InspectorCSSAgent::asCSSStyleRule(CSSRule& rule)
</span><span class="cx"> {
</span><span class="cx"> if (!is<CSSStyleRule>(rule))
</span><span class="lines">@@ -703,7 +703,9 @@
</span><span class="cx"> if (!inspectorStyleSheet)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- inspectorStyleSheet->getText(result);
</del><ins>+ auto text = inspectorStyleSheet->text();
+ if (!text.hasException())
+ *result = text.releaseReturnValue();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorCSSAgent::setStyleSheetText(ErrorString& errorString, const String& styleSheetId, const String& text)
</span><span class="lines">@@ -712,9 +714,9 @@
</span><span class="cx"> if (!inspectorStyleSheet)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- m_domAgent->history()->perform(std::make_unique<SetStyleSheetTextAction>(inspectorStyleSheet, text), ec);
- errorString = InspectorDOMAgent::toErrorString(ec);
</del><ins>+ auto result = m_domAgent->history()->perform(std::make_unique<SetStyleSheetTextAction>(inspectorStyleSheet, text));
+ if (result.hasException())
+ errorString = InspectorDOMAgent::toErrorString(result.releaseException());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorCSSAgent::setStyleText(ErrorString& errorString, const InspectorObject& fullStyleId, const String& text, RefPtr<Inspector::Protocol::CSS::CSSStyle>& result)
</span><span class="lines">@@ -726,11 +728,13 @@
</span><span class="cx"> if (!inspectorStyleSheet)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- bool success = m_domAgent->history()->perform(std::make_unique<SetStyleTextAction>(inspectorStyleSheet, compoundId, text), ec);
- if (success)
- result = inspectorStyleSheet->buildObjectForStyle(inspectorStyleSheet->styleForId(compoundId));
- errorString = InspectorDOMAgent::toErrorString(ec);
</del><ins>+ auto performResult = m_domAgent->history()->perform(std::make_unique<SetStyleTextAction>(inspectorStyleSheet, compoundId, text));
+ if (performResult.hasException()) {
+ errorString = InspectorDOMAgent::toErrorString(performResult.releaseException());
+ return;
+ }
+
+ result = inspectorStyleSheet->buildObjectForStyle(inspectorStyleSheet->styleForId(compoundId));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorCSSAgent::setRuleSelector(ErrorString& errorString, const InspectorObject& fullRuleId, const String& selector, RefPtr<Inspector::Protocol::CSS::CSSRule>& result)
</span><span class="lines">@@ -742,12 +746,13 @@
</span><span class="cx"> if (!inspectorStyleSheet)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- bool success = m_domAgent->history()->perform(std::make_unique<SetRuleSelectorAction>(inspectorStyleSheet, compoundId, selector), ec);
</del><ins>+ auto performResult = m_domAgent->history()->perform(std::make_unique<SetRuleSelectorAction>(inspectorStyleSheet, compoundId, selector));
+ if (performResult.hasException()) {
+ errorString = InspectorDOMAgent::toErrorString(performResult.releaseException());
+ return;
+ }
</ins><span class="cx">
</span><del>- if (success)
- result = inspectorStyleSheet->buildObjectForRule(inspectorStyleSheet->ruleForId(compoundId), nullptr);
- errorString = InspectorDOMAgent::toErrorString(ec);
</del><ins>+ result = inspectorStyleSheet->buildObjectForRule(inspectorStyleSheet->ruleForId(compoundId), nullptr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorCSSAgent::createStyleSheet(ErrorString& errorString, const String& frameId, String* styleSheetId)
</span><span class="lines">@@ -795,11 +800,10 @@
</span><span class="cx"> // Set this flag, so when we create it, we put it into the via inspector map.
</span><span class="cx"> m_creatingViaInspectorStyleSheet = true;
</span><span class="cx"> InlineStyleOverrideScope overrideScope(document);
</span><del>- ExceptionCode ec = 0;
- targetNode->appendChild(styleElement, ec);
</del><ins>+ auto appendResult = targetNode->appendChild(styleElement);
</ins><span class="cx"> document.styleScope().flushPendingUpdate();
</span><span class="cx"> m_creatingViaInspectorStyleSheet = false;
</span><del>- if (ec)
</del><ins>+ if (appendResult.hasException())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> auto iterator = m_documentToInspectorStyleSheet.find(&document);
</span><span class="lines">@@ -823,16 +827,15 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
</del><span class="cx"> auto action = std::make_unique<AddRuleAction>(inspectorStyleSheet, selector);
</span><del>- AddRuleAction* rawAction = action.get();
- bool success = m_domAgent->history()->perform(WTFMove(action), ec);
- if (!success) {
- errorString = InspectorDOMAgent::toErrorString(ec);
</del><ins>+ auto& rawAction = *action;
+ auto performResult = m_domAgent->history()->perform(WTFMove(action));
+ if (performResult.hasException()) {
+ errorString = InspectorDOMAgent::toErrorString(performResult.releaseException());
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- InspectorCSSId ruleId = rawAction->newRuleId();
</del><ins>+ InspectorCSSId ruleId = rawAction.newRuleId();
</ins><span class="cx"> CSSStyleRule* rule = inspectorStyleSheet->ruleForId(ruleId);
</span><span class="cx"> result = inspectorStyleSheet->buildObjectForRule(rule, nullptr);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -231,7 +231,7 @@
</span><span class="cx"> void InspectorDOMAgent::didCreateFrontendAndBackend(Inspector::FrontendRouter*, Inspector::BackendDispatcher*)
</span><span class="cx"> {
</span><span class="cx"> m_history = std::make_unique<InspectorHistory>();
</span><del>- m_domEditor = std::make_unique<DOMEditor>(m_history.get());
</del><ins>+ m_domEditor = std::make_unique<DOMEditor>(*m_history);
</ins><span class="cx">
</span><span class="cx"> m_instrumentingAgents.setInspectorDOMAgent(this);
</span><span class="cx"> m_document = m_pageAgent->mainFrame().document();
</span><span class="lines">@@ -654,7 +654,7 @@
</span><span class="cx"> if (!element)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_domEditor->setAttribute(element, name, value, errorString);
</del><ins>+ m_domEditor->setAttribute(*element, name, value, errorString);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorDOMAgent::setAttributesAsText(ErrorString& errorString, int elementId, const String& text, const String* const name)
</span><span class="lines">@@ -678,7 +678,7 @@
</span><span class="cx">
</span><span class="cx"> Element* childElement = downcast<Element>(child);
</span><span class="cx"> if (!childElement->hasAttributes() && name) {
</span><del>- m_domEditor->removeAttribute(element, *name, errorString);
</del><ins>+ m_domEditor->removeAttribute(*element, *name, errorString);
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -686,12 +686,12 @@
</span><span class="cx"> for (const Attribute& attribute : childElement->attributesIterator()) {
</span><span class="cx"> // Add attribute pair
</span><span class="cx"> foundOriginalAttribute = foundOriginalAttribute || (name && attribute.name().toString() == *name);
</span><del>- if (!m_domEditor->setAttribute(element, attribute.name().toString(), attribute.value(), errorString))
</del><ins>+ if (!m_domEditor->setAttribute(*element, attribute.name().toString(), attribute.value(), errorString))
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (!foundOriginalAttribute && name && !name->stripWhiteSpace().isEmpty())
</span><del>- m_domEditor->removeAttribute(element, *name, errorString);
</del><ins>+ m_domEditor->removeAttribute(*element, *name, errorString);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorDOMAgent::removeAttribute(ErrorString& errorString, int elementId, const String& name)
</span><span class="lines">@@ -700,7 +700,7 @@
</span><span class="cx"> if (!element)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_domEditor->removeAttribute(element, name, errorString);
</del><ins>+ m_domEditor->removeAttribute(*element, name, errorString);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorDOMAgent::removeNode(ErrorString& errorString, int nodeId)
</span><span class="lines">@@ -765,8 +765,7 @@
</span><span class="cx"> void InspectorDOMAgent::setOuterHTML(ErrorString& errorString, int nodeId, const String& outerHTML)
</span><span class="cx"> {
</span><span class="cx"> if (!nodeId) {
</span><del>- DOMPatchSupport domPatchSupport(m_domEditor.get(), m_document.get());
- domPatchSupport.patchDocument(outerHTML);
</del><ins>+ DOMPatchSupport { *m_domEditor, *m_document }.patchDocument(outerHTML);
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -780,8 +779,8 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- Node* newNode = 0;
- if (!m_domEditor->setOuterHTML(*node, outerHTML, &newNode, errorString))
</del><ins>+ Node* newNode = nullptr;
+ if (!m_domEditor->setOuterHTML(*node, outerHTML, newNode, errorString))
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (!newNode) {
</span><span class="lines">@@ -802,12 +801,12 @@
</span><span class="cx"> if (!node)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- if (node->nodeType() != Node::TEXT_NODE) {
</del><ins>+ if (!is<Text>(*node)) {
</ins><span class="cx"> errorString = ASCIILiteral("Can only set value of text nodes");
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- m_domEditor->replaceWholeText(downcast<Text>(node), value, errorString);
</del><ins>+ m_domEditor->replaceWholeText(downcast<Text>(*node), value, errorString);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorDOMAgent::getEventListenersForNode(ErrorString& errorString, int nodeId, const String* objectGroup, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::DOM::EventListener>>& listenersArray)
</span><span class="lines">@@ -1198,16 +1197,16 @@
</span><span class="cx">
</span><span class="cx"> void InspectorDOMAgent::undo(ErrorString& errorString)
</span><span class="cx"> {
</span><del>- ExceptionCode ec = 0;
- m_history->undo(ec);
- errorString = toErrorString(ec);
</del><ins>+ auto result = m_history->undo();
+ if (result.hasException())
+ errorString = toErrorString(result.releaseException());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorDOMAgent::redo(ErrorString& errorString)
</span><span class="cx"> {
</span><del>- ExceptionCode ec = 0;
- m_history->redo(ec);
- errorString = toErrorString(ec);
</del><ins>+ auto result = m_history->redo();
+ if (result.hasException())
+ errorString = toErrorString(result.releaseException());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorDOMAgent::markUndoableState(ErrorString&)
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorHistorycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorHistory.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorHistory.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/inspector/InspectorHistory.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -31,64 +31,30 @@
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "InspectorHistory.h"
</span><span class="cx">
</span><del>-#include "ExceptionCodePlaceholder.h"
</del><span class="cx"> #include "Node.h"
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><del>-namespace {
-
</del><span class="cx"> class UndoableStateMark : public InspectorHistory::Action {
</span><span class="cx"> public:
</span><del>- UndoableStateMark() : InspectorHistory::Action("[UndoableState]") { }
</del><ins>+ UndoableStateMark()
+ : Action("[UndoableState]")
+ {
+ }
</ins><span class="cx">
</span><del>- bool perform(ExceptionCode&) override { return true; }
-
- bool undo(ExceptionCode&) override { return true; }
-
- bool redo(ExceptionCode&) override { return true; }
-
- bool isUndoableStateMark() override { return true; }
</del><ins>+private:
+ ExceptionOr<void> perform() final { return { }; }
+ ExceptionOr<void> undo() final { return { }; }
+ ExceptionOr<void> redo() final { return { }; }
+ bool isUndoableStateMark() final { return true; }
</ins><span class="cx"> };
</span><span class="cx">
</span><del>-}
-
-InspectorHistory::Action::Action(const String& name) : m_name(name)
</del><ins>+ExceptionOr<void> InspectorHistory::perform(std::unique_ptr<Action> action)
</ins><span class="cx"> {
</span><del>-}
</del><ins>+ auto performResult = action->perform();
+ if (performResult.hasException())
+ return performResult.releaseException();
</ins><span class="cx">
</span><del>-InspectorHistory::Action::~Action()
-{
-}
-
-String InspectorHistory::Action::toString()
-{
- return m_name;
-}
-
-bool InspectorHistory::Action::isUndoableStateMark()
-{
- return false;
-}
-
-String InspectorHistory::Action::mergeId()
-{
- return emptyString();
-}
-
-void InspectorHistory::Action::merge(std::unique_ptr<Action>)
-{
-}
-
-InspectorHistory::InspectorHistory() : m_afterLastActionIndex(0) { }
-
-InspectorHistory::~InspectorHistory() { }
-
-bool InspectorHistory::perform(std::unique_ptr<Action> action, ExceptionCode& ec)
-{
- if (!action->perform(ec))
- return false;
-
</del><span class="cx"> if (!action->mergeId().isEmpty() && m_afterLastActionIndex > 0 && action->mergeId() == m_history[m_afterLastActionIndex - 1]->mergeId())
</span><span class="cx"> m_history[m_afterLastActionIndex - 1]->merge(WTFMove(action));
</span><span class="cx"> else {
</span><span class="lines">@@ -96,15 +62,15 @@
</span><span class="cx"> m_history.append(WTFMove(action));
</span><span class="cx"> ++m_afterLastActionIndex;
</span><span class="cx"> }
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorHistory::markUndoableState()
</span><span class="cx"> {
</span><del>- perform(std::make_unique<UndoableStateMark>(), IGNORE_EXCEPTION);
</del><ins>+ perform(std::make_unique<UndoableStateMark>());
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorHistory::undo(ExceptionCode& ec)
</del><ins>+ExceptionOr<void> InspectorHistory::undo()
</ins><span class="cx"> {
</span><span class="cx"> while (m_afterLastActionIndex > 0 && m_history[m_afterLastActionIndex - 1]->isUndoableStateMark())
</span><span class="cx"> --m_afterLastActionIndex;
</span><span class="lines">@@ -111,9 +77,10 @@
</span><span class="cx">
</span><span class="cx"> while (m_afterLastActionIndex > 0) {
</span><span class="cx"> Action* action = m_history[m_afterLastActionIndex - 1].get();
</span><del>- if (!action->undo(ec)) {
</del><ins>+ auto undoResult = action->undo();
+ if (undoResult.hasException()) {
</ins><span class="cx"> reset();
</span><del>- return false;
</del><ins>+ return undoResult.releaseException();
</ins><span class="cx"> }
</span><span class="cx"> --m_afterLastActionIndex;
</span><span class="cx"> if (action->isUndoableStateMark())
</span><span class="lines">@@ -120,10 +87,10 @@
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorHistory::redo(ExceptionCode& ec)
</del><ins>+ExceptionOr<void> InspectorHistory::redo()
</ins><span class="cx"> {
</span><span class="cx"> while (m_afterLastActionIndex < m_history.size() && m_history[m_afterLastActionIndex]->isUndoableStateMark())
</span><span class="cx"> ++m_afterLastActionIndex;
</span><span class="lines">@@ -130,15 +97,16 @@
</span><span class="cx">
</span><span class="cx"> while (m_afterLastActionIndex < m_history.size()) {
</span><span class="cx"> Action* action = m_history[m_afterLastActionIndex].get();
</span><del>- if (!action->redo(ec)) {
</del><ins>+ auto redoResult = action->redo();
+ if (redoResult.hasException()) {
</ins><span class="cx"> reset();
</span><del>- return false;
</del><ins>+ return redoResult.releaseException();
</ins><span class="cx"> }
</span><span class="cx"> ++m_afterLastActionIndex;
</span><span class="cx"> if (action->isUndoableStateMark())
</span><span class="cx"> break;
</span><span class="cx"> }
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorHistory::reset()
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorHistoryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorHistory.h (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorHistory.h        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/inspector/InspectorHistory.h        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -30,9 +30,8 @@
</span><span class="cx">
</span><span class="cx"> #pragma once
</span><span class="cx">
</span><del>-#include "ExceptionCode.h"
</del><ins>+#include "ExceptionOr.h"
</ins><span class="cx"> #include <wtf/Vector.h>
</span><del>-#include <wtf/text/WTFString.h>
</del><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -42,36 +41,40 @@
</span><span class="cx"> class Action {
</span><span class="cx"> WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>- Action(const String& name);
- virtual ~Action();
- virtual String toString();
</del><ins>+ explicit Action(const String& name)
+ : m_name { name }
+ {
+ }
</ins><span class="cx">
</span><del>- virtual String mergeId();
- virtual void merge(std::unique_ptr<Action>);
</del><ins>+ virtual ~Action() = default;
+ virtual String toString() { return m_name; }
</ins><span class="cx">
</span><del>- virtual bool perform(ExceptionCode&) = 0;
</del><ins>+ virtual String mergeId() { return emptyString(); }
+ virtual void merge(std::unique_ptr<Action>) { };
</ins><span class="cx">
</span><del>- virtual bool undo(ExceptionCode&) = 0;
- virtual bool redo(ExceptionCode&) = 0;
</del><ins>+ virtual ExceptionOr<void> perform() = 0;
</ins><span class="cx">
</span><del>- virtual bool isUndoableStateMark();
</del><ins>+ virtual ExceptionOr<void> undo() = 0;
+ virtual ExceptionOr<void> redo() = 0;
+
+ virtual bool isUndoableStateMark() { return false; }
+
</ins><span class="cx"> private:
</span><span class="cx"> String m_name;
</span><span class="cx"> };
</span><span class="cx">
</span><del>- InspectorHistory();
- ~InspectorHistory();
</del><ins>+ InspectorHistory() = default;
</ins><span class="cx">
</span><del>- bool perform(std::unique_ptr<Action>, ExceptionCode&);
</del><ins>+ ExceptionOr<void> perform(std::unique_ptr<Action>);
</ins><span class="cx"> void markUndoableState();
</span><span class="cx">
</span><del>- bool undo(ExceptionCode&);
- bool redo(ExceptionCode&);
</del><ins>+ ExceptionOr<void> undo();
+ ExceptionOr<void> redo();
</ins><span class="cx"> void reset();
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> Vector<std::unique_ptr<Action>> m_history;
</span><del>- size_t m_afterLastActionIndex;
</del><ins>+ size_t m_afterLastActionIndex { 0 };
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorPageAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorPageAgent.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorPageAgent.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/inspector/InspectorPageAgent.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -671,7 +671,7 @@
</span><span class="cx"> errorString = ASCIILiteral("No Document instance to set HTML for");
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- DOMPatchSupport::patchDocument(document, html);
</del><ins>+ DOMPatchSupport::patchDocument(*document, html);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorPageAgent::setShowPaintRects(ErrorString&, bool show)
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorStyleSheetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -328,21 +328,19 @@
</span><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorStyle::getText(String* result) const
</del><ins>+ExceptionOr<String> InspectorStyle::text() const
</ins><span class="cx"> {
</span><span class="cx"> // Precondition: m_parentStyleSheet->ensureParsedDataReady() has been called successfully.
</span><del>- RefPtr<CSSRuleSourceData> sourceData = extractSourceData();
</del><ins>+ auto sourceData = extractSourceData();
</ins><span class="cx"> if (!sourceData)
</span><del>- return false;
</del><ins>+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><del>- String styleSheetText;
- bool success = m_parentStyleSheet->getText(&styleSheetText);
- if (!success)
- return false;
</del><ins>+ auto result = m_parentStyleSheet->text();
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx">
</span><del>- SourceRange& bodyRange = sourceData->ruleBodyRange;
- *result = styleSheetText.substring(bodyRange.start, bodyRange.end - bodyRange.start);
- return true;
</del><ins>+ auto& bodyRange = sourceData->ruleBodyRange;
+ return result.releaseReturnValue().substring(bodyRange.start, bodyRange.end - bodyRange.start);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static String lowercasePropertyName(const String& name)
</span><span class="lines">@@ -357,12 +355,12 @@
</span><span class="cx"> {
</span><span class="cx"> HashSet<String> sourcePropertyNames;
</span><span class="cx">
</span><del>- RefPtr<CSSRuleSourceData> sourceData = extractSourceData();
- Vector<CSSPropertySourceData>* sourcePropertyData = sourceData ? &(sourceData->styleSourceData->propertyData) : nullptr;
</del><ins>+ auto sourceData = extractSourceData();
+ auto* sourcePropertyData = sourceData ? &sourceData->styleSourceData->propertyData : nullptr;
</ins><span class="cx"> if (sourcePropertyData) {
</span><del>- String styleDeclaration;
- bool isStyleTextKnown = getText(&styleDeclaration);
- ASSERT_UNUSED(isStyleTextKnown, isStyleTextKnown);
</del><ins>+ auto styleDeclarationOrException = text();
+ ASSERT(!styleDeclarationOrException.hasException());
+ String styleDeclaration = styleDeclarationOrException.hasException() ? emptyString() : styleDeclarationOrException.releaseReturnValue();
</ins><span class="cx"> for (auto& sourceData : *sourcePropertyData) {
</span><span class="cx"> InspectorStyleProperty p(sourceData, true, false);
</span><span class="cx"> p.setRawTextFromStyleDeclaration(styleDeclaration);
</span><span class="lines">@@ -390,7 +388,7 @@
</span><span class="cx"> String previousPriority;
</span><span class="cx"> String previousStatus;
</span><span class="cx"> std::unique_ptr<Vector<size_t>> lineEndings(m_parentStyleSheet ? m_parentStyleSheet->lineEndings() : nullptr);
</span><del>- RefPtr<CSSRuleSourceData> sourceData = extractSourceData();
</del><ins>+ auto sourceData = extractSourceData();
</ins><span class="cx"> unsigned ruleBodyRangeStart = sourceData ? sourceData->ruleBodyRange.start : 0;
</span><span class="cx">
</span><span class="cx"> for (Vector<InspectorStyleProperty>::iterator it = properties.begin(), itEnd = properties.end(); it != itEnd; ++it) {
</span><span class="lines">@@ -504,9 +502,9 @@
</span><span class="cx"> return m_parentStyleSheet->ruleSourceDataFor(m_style.get());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorStyle::setText(const String& text, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> InspectorStyle::setText(const String& text)
</ins><span class="cx"> {
</span><del>- return m_parentStyleSheet->setStyleText(m_style.get(), text, ec);
</del><ins>+ return m_parentStyleSheet->setStyleText(m_style.get(), text);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String InspectorStyle::shorthandValue(const String& shorthandProperty) const
</span><span class="lines">@@ -614,26 +612,22 @@
</span><span class="cx"> m_pageStyleSheet->clearHadRulesMutation();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorStyleSheet::setText(const String& text, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> InspectorStyleSheet::setText(const String& text)
</ins><span class="cx"> {
</span><del>- if (!checkPageStyleSheet(ec))
- return false;
- if (!m_parsedStyleSheet)
- return false;
</del><ins>+ if (!m_pageStyleSheet)
+ return Exception { NOT_SUPPORTED_ERR };
</ins><span class="cx">
</span><span class="cx"> m_parsedStyleSheet->setText(text);
</span><span class="cx"> m_flatRules.clear();
</span><span class="cx">
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-String InspectorStyleSheet::ruleSelector(const InspectorCSSId& id, ExceptionCode& ec)
</del><ins>+ExceptionOr<String> InspectorStyleSheet::ruleSelector(const InspectorCSSId& id)
</ins><span class="cx"> {
</span><span class="cx"> CSSStyleRule* rule = ruleForId(id);
</span><del>- if (!rule) {
- ec = NOT_FOUND_ERR;
- return emptyString();
- }
</del><ins>+ if (!rule)
+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx"> return rule->selectorText();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -644,28 +638,22 @@
</span><span class="cx"> return selectorList.isValid();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorStyleSheet::setRuleSelector(const InspectorCSSId& id, const String& selector, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> InspectorStyleSheet::setRuleSelector(const InspectorCSSId& id, const String& selector)
</ins><span class="cx"> {
</span><del>- if (!checkPageStyleSheet(ec))
- return false;
</del><ins>+ if (!m_pageStyleSheet)
+ return Exception { NOT_SUPPORTED_ERR };
</ins><span class="cx">
</span><span class="cx"> // If the selector is invalid, do not proceed any further.
</span><del>- if (!isValidSelectorListString(selector, m_pageStyleSheet->ownerDocument())) {
- ec = SYNTAX_ERR;
- return false;
- }
</del><ins>+ if (!isValidSelectorListString(selector, m_pageStyleSheet->ownerDocument()))
+ return Exception { SYNTAX_ERR };
</ins><span class="cx">
</span><span class="cx"> CSSStyleRule* rule = ruleForId(id);
</span><del>- if (!rule) {
- ec = NOT_FOUND_ERR;
- return false;
- }
</del><ins>+ if (!rule)
+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><span class="cx"> CSSStyleSheet* styleSheet = rule->parentStyleSheet();
</span><del>- if (!styleSheet || !ensureParsedDataReady()) {
- ec = NOT_FOUND_ERR;
- return false;
- }
</del><ins>+ if (!styleSheet || !ensureParsedDataReady())
+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><span class="cx"> // If the stylesheet is already mutated at this point, that must mean that our data has been modified
</span><span class="cx"> // elsewhere. This should never happen as ensureParsedDataReady would return false in that case.
</span><span class="lines">@@ -672,11 +660,9 @@
</span><span class="cx"> ASSERT(!styleSheetMutated());
</span><span class="cx">
</span><span class="cx"> rule->setSelectorText(selector);
</span><del>- RefPtr<CSSRuleSourceData> sourceData = ruleSourceDataFor(&rule->style());
- if (!sourceData) {
- ec = NOT_FOUND_ERR;
- return false;
- }
</del><ins>+ auto sourceData = ruleSourceDataFor(&rule->style());
+ if (!sourceData)
+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><span class="cx"> String sheetText = m_parsedStyleSheet->text();
</span><span class="cx"> sheetText.replace(sourceData->ruleHeaderRange.start, sourceData->ruleHeaderRange.length(), selector);
</span><span class="lines">@@ -683,32 +669,27 @@
</span><span class="cx"> m_parsedStyleSheet->setText(sheetText);
</span><span class="cx"> m_pageStyleSheet->clearHadRulesMutation();
</span><span class="cx"> fireStyleSheetChanged();
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-CSSStyleRule* InspectorStyleSheet::addRule(const String& selector, ExceptionCode& ec)
</del><ins>+ExceptionOr<CSSStyleRule*> InspectorStyleSheet::addRule(const String& selector)
</ins><span class="cx"> {
</span><del>- if (!checkPageStyleSheet(ec))
- return nullptr;
- if (!isValidSelectorListString(selector, m_pageStyleSheet->ownerDocument())) {
- ec = SYNTAX_ERR;
- return nullptr;
- }
</del><ins>+ if (!m_pageStyleSheet)
+ return Exception { NOT_SUPPORTED_ERR };
</ins><span class="cx">
</span><del>- String text;
- bool success = getText(&text);
- if (!success) {
- ec = NOT_FOUND_ERR;
- return nullptr;
- }
</del><ins>+ if (!isValidSelectorListString(selector, m_pageStyleSheet->ownerDocument()))
+ return Exception { SYNTAX_ERR };
+
+ auto text = this->text();
+ if (text.hasException())
+ return text.releaseException();
+
</ins><span class="cx"> StringBuilder styleSheetText;
</span><del>- styleSheetText.append(text);
</del><ins>+ styleSheetText.append(text.releaseReturnValue());
</ins><span class="cx">
</span><span class="cx"> auto addRuleResult = m_pageStyleSheet->addRule(selector, emptyString(), Nullopt);
</span><del>- if (addRuleResult.hasException()) {
- ec = addRuleResult.releaseException().code();
- return nullptr;
- }
</del><ins>+ if (addRuleResult.hasException())
+ return addRuleResult.releaseException();
</ins><span class="cx"> ASSERT(m_pageStyleSheet->length());
</span><span class="cx"> unsigned lastRuleIndex = m_pageStyleSheet->length() - 1;
</span><span class="cx"> CSSRule* rule = m_pageStyleSheet->item(lastRuleIndex);
</span><span class="lines">@@ -719,8 +700,7 @@
</span><span class="cx"> // What we just added has to be a CSSStyleRule - we cannot handle other types of rules yet.
</span><span class="cx"> // If it is not a style rule, pretend we never touched the stylesheet.
</span><span class="cx"> m_pageStyleSheet->deleteRule(lastRuleIndex);
</span><del>- ec = SYNTAX_ERR;
- return nullptr;
</del><ins>+ return Exception { SYNTAX_ERR };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (!styleSheetText.isEmpty())
</span><span class="lines">@@ -729,7 +709,7 @@
</span><span class="cx"> styleSheetText.append(selector);
</span><span class="cx"> styleSheetText.appendLiteral(" {}");
</span><span class="cx"> // Using setText() as this operation changes the stylesheet rule set.
</span><del>- setText(styleSheetText.toString(), ASSERT_NO_EXCEPTION);
</del><ins>+ setText(styleSheetText.toString());
</ins><span class="cx">
</span><span class="cx"> fireStyleSheetChanged();
</span><span class="cx">
</span><span class="lines">@@ -736,40 +716,33 @@
</span><span class="cx"> return styleRule;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorStyleSheet::deleteRule(const InspectorCSSId& id, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> InspectorStyleSheet::deleteRule(const InspectorCSSId& id)
</ins><span class="cx"> {
</span><del>- if (!checkPageStyleSheet(ec))
- return false;
</del><ins>+ if (!m_pageStyleSheet)
+ return Exception { NOT_SUPPORTED_ERR };
+
</ins><span class="cx"> RefPtr<CSSStyleRule> rule = ruleForId(id);
</span><del>- if (!rule) {
- ec = NOT_FOUND_ERR;
- return false;
- }
</del><ins>+ if (!rule)
+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx"> CSSStyleSheet* styleSheet = rule->parentStyleSheet();
</span><del>- if (!styleSheet || !ensureParsedDataReady()) {
- ec = NOT_FOUND_ERR;
- return false;
- }
</del><ins>+ if (!styleSheet || !ensureParsedDataReady())
+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><del>- RefPtr<CSSRuleSourceData> sourceData = ruleSourceDataFor(&rule->style());
- if (!sourceData) {
- ec = NOT_FOUND_ERR;
- return false;
- }
</del><ins>+ auto sourceData = ruleSourceDataFor(&rule->style());
+ if (!sourceData)
+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><span class="cx"> auto deleteRuleResult = styleSheet->deleteRule(id.ordinal());
</span><del>- // |rule| MAY NOT be addressed after this line!
</del><ins>+ if (deleteRuleResult.hasException())
+ return deleteRuleResult.releaseException();
</ins><span class="cx">
</span><del>- if (deleteRuleResult.hasException()) {
- ec = deleteRuleResult.releaseException().code();
- return false;
- }
</del><ins>+ // |rule| MAY NOT be addressed after this!
</ins><span class="cx">
</span><span class="cx"> String sheetText = m_parsedStyleSheet->text();
</span><span class="cx"> sheetText.remove(sourceData->ruleHeaderRange.start, sourceData->ruleBodyRange.end - sourceData->ruleHeaderRange.start + 1);
</span><del>- setText(sheetText, ASSERT_NO_EXCEPTION);
</del><ins>+ setText(sheetText);
</ins><span class="cx"> fireStyleSheetChanged();
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> CSSStyleRule* InspectorStyleSheet::ruleForId(const InspectorCSSId& id) const
</span><span class="lines">@@ -795,10 +768,9 @@
</span><span class="cx"> .setRules(buildArrayForRuleList(cssRuleList.get()))
</span><span class="cx"> .release();
</span><span class="cx">
</span><del>- String styleSheetText;
- bool success = getText(&styleSheetText);
- if (success)
- result->setText(styleSheetText);
</del><ins>+ auto styleSheetText = text();
+ if (!styleSheetText.hasException())
+ result->setText(styleSheetText.releaseReturnValue());
</ins><span class="cx">
</span><span class="cx"> return WTFMove(result);
</span><span class="cx"> }
</span><span class="lines">@@ -981,11 +953,10 @@
</span><span class="cx">
</span><span class="cx"> // Style text cannot be retrieved without stylesheet, so set cssText here.
</span><span class="cx"> if (sourceData) {
</span><del>- String sheetText;
- bool success = getText(&sheetText);
- if (success) {
- const SourceRange& bodyRange = sourceData->ruleBodyRange;
- result->setCssText(sheetText.substring(bodyRange.start, bodyRange.end - bodyRange.start));
</del><ins>+ auto sheetText = text();
+ if (!sheetText.hasException()) {
+ auto& bodyRange = sourceData->ruleBodyRange;
+ result->setCssText(sheetText.releaseReturnValue().substring(bodyRange.start, bodyRange.end - bodyRange.start));
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -992,29 +963,30 @@
</span><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorStyleSheet::setStyleText(const InspectorCSSId& id, const String& text, String* oldText, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> InspectorStyleSheet::setStyleText(const InspectorCSSId& id, const String& text, String* oldText)
</ins><span class="cx"> {
</span><del>- RefPtr<InspectorStyle> inspectorStyle = inspectorStyleForId(id);
- if (!inspectorStyle) {
- ec = NOT_FOUND_ERR;
- return false;
</del><ins>+ auto inspectorStyle = inspectorStyleForId(id);
+ if (!inspectorStyle)
+ return Exception { NOT_FOUND_ERR };
+
+ if (oldText) {
+ auto result = inspectorStyle->text();
+ if (result.hasException())
+ return result.releaseException();
+ *oldText = result.releaseReturnValue();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- if (oldText && !inspectorStyle->getText(oldText))
- return false;
-
- bool success = inspectorStyle->setText(text, ec);
- if (success)
</del><ins>+ auto result = inspectorStyle->setText(text);
+ if (!result.hasException())
</ins><span class="cx"> fireStyleSheetChanged();
</span><del>- return success;
</del><ins>+ return result;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorStyleSheet::getText(String* result) const
</del><ins>+ExceptionOr<String> InspectorStyleSheet::text() const
</ins><span class="cx"> {
</span><span class="cx"> if (!ensureText())
</span><del>- return false;
- *result = m_parsedStyleSheet->text();
- return true;
</del><ins>+ return Exception { NOT_FOUND_ERR };
+ return String { m_parsedStyleSheet->text() };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> CSSStyleDeclaration* InspectorStyleSheet::styleForId(const InspectorCSSId& id) const
</span><span class="lines">@@ -1079,15 +1051,6 @@
</span><span class="cx"> return UINT_MAX;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorStyleSheet::checkPageStyleSheet(ExceptionCode& ec) const
-{
- if (!m_pageStyleSheet) {
- ec = NOT_SUPPORTED_ERR;
- return false;
- }
- return true;
-}
-
</del><span class="cx"> bool InspectorStyleSheet::styleSheetMutated() const
</span><span class="cx"> {
</span><span class="cx"> return m_pageStyleSheet && m_pageStyleSheet->hadRulesMutation();
</span><span class="lines">@@ -1137,30 +1100,28 @@
</span><span class="cx"> collectFlatRules(asCSSRuleList(pageStyleSheet()), &m_flatRules);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorStyleSheet::setStyleText(CSSStyleDeclaration* style, const String& text, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> InspectorStyleSheet::setStyleText(CSSStyleDeclaration* style, const String& text)
</ins><span class="cx"> {
</span><span class="cx"> if (!m_pageStyleSheet)
</span><del>- return false;
</del><ins>+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx"> if (!ensureParsedDataReady())
</span><del>- return false;
</del><ins>+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><span class="cx"> String patchedStyleSheetText;
</span><span class="cx"> bool success = styleSheetTextWithChangedStyle(style, text, &patchedStyleSheetText);
</span><span class="cx"> if (!success)
</span><del>- return false;
</del><ins>+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><span class="cx"> InspectorCSSId id = ruleOrStyleId(style);
</span><span class="cx"> if (id.isEmpty())
</span><del>- return false;
</del><ins>+ return Exception { NOT_FOUND_ERR };
</ins><span class="cx">
</span><span class="cx"> auto setCssTextResult = style->setCssText(text);
</span><del>- if (setCssTextResult.hasException()) {
- ec = setCssTextResult.releaseException().code();
- return false;
- }
</del><ins>+ if (setCssTextResult.hasException())
+ return setCssTextResult.releaseException();
</ins><span class="cx">
</span><span class="cx"> m_parsedStyleSheet->setText(patchedStyleSheetText);
</span><del>- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool InspectorStyleSheet::styleSheetTextWithChangedStyle(CSSStyleDeclaration* style, const String& newStyleText, String* result)
</span><span class="lines">@@ -1285,17 +1246,16 @@
</span><span class="cx"> m_ruleSourceData = nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorStyleSheetForInlineStyle::getText(String* result) const
</del><ins>+ExceptionOr<String> InspectorStyleSheetForInlineStyle::text() const
</ins><span class="cx"> {
</span><span class="cx"> if (!m_isStyleTextValid) {
</span><span class="cx"> m_styleText = elementStyleText();
</span><span class="cx"> m_isStyleTextValid = true;
</span><span class="cx"> }
</span><del>- *result = m_styleText;
- return true;
</del><ins>+ return String { m_styleText };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-bool InspectorStyleSheetForInlineStyle::setStyleText(CSSStyleDeclaration* style, const String& text, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> InspectorStyleSheetForInlineStyle::setStyleText(CSSStyleDeclaration* style, const String& text)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT_UNUSED(style, style == inlineStyle());
</span><span class="cx">
</span><span class="lines">@@ -1308,8 +1268,7 @@
</span><span class="cx"> m_isStyleTextValid = true;
</span><span class="cx"> m_ruleSourceData = nullptr;
</span><span class="cx">
</span><del>- ec = 0;
- return true;
</del><ins>+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> std::unique_ptr<Vector<size_t>> InspectorStyleSheetForInlineStyle::lineEndings() const
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorStyleSheeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorStyleSheet.h (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorStyleSheet.h        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/inspector/InspectorStyleSheet.h        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -26,13 +26,10 @@
</span><span class="cx">
</span><span class="cx"> #include "CSSPropertySourceData.h"
</span><span class="cx"> #include "CSSStyleDeclaration.h"
</span><del>-#include "ExceptionCode.h"
</del><span class="cx"> #include <inspector/InspectorProtocolObjects.h>
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/HashMap.h>
</span><del>-#include <wtf/RefPtr.h>
</del><span class="cx"> #include <wtf/Vector.h>
</span><del>-#include <wtf/text/WTFString.h>
</del><span class="cx">
</span><span class="cx"> class ParsedStyleSheet;
</span><span class="cx">
</span><span class="lines">@@ -132,8 +129,8 @@
</span><span class="cx"> RefPtr<Inspector::Protocol::CSS::CSSStyle> buildObjectForStyle() const;
</span><span class="cx"> Ref<Inspector::Protocol::Array<Inspector::Protocol::CSS::CSSComputedStyleProperty>> buildArrayForComputedStyle() const;
</span><span class="cx">
</span><del>- bool getText(String* result) const;
- bool setText(const String&, ExceptionCode&);
</del><ins>+ ExceptionOr<String> text() const;
+ ExceptionOr<void> setText(const String&);
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> InspectorStyle(const InspectorCSSId& styleId, RefPtr<CSSStyleDeclaration>&&, InspectorStyleSheet* parentStyleSheet);
</span><span class="lines">@@ -169,19 +166,19 @@
</span><span class="cx"> String finalURL() const;
</span><span class="cx"> CSSStyleSheet* pageStyleSheet() const { return m_pageStyleSheet.get(); }
</span><span class="cx"> void reparseStyleSheet(const String&);
</span><del>- bool setText(const String&, ExceptionCode&);
- String ruleSelector(const InspectorCSSId&, ExceptionCode&);
- bool setRuleSelector(const InspectorCSSId&, const String& selector, ExceptionCode&);
- CSSStyleRule* addRule(const String& selector, ExceptionCode&);
- bool deleteRule(const InspectorCSSId&, ExceptionCode&);
</del><ins>+ ExceptionOr<void> setText(const String&);
+ ExceptionOr<String> ruleSelector(const InspectorCSSId&);
+ ExceptionOr<void> setRuleSelector(const InspectorCSSId&, const String& selector);
+ ExceptionOr<CSSStyleRule*> addRule(const String& selector);
+ ExceptionOr<void> deleteRule(const InspectorCSSId&);
</ins><span class="cx"> CSSStyleRule* ruleForId(const InspectorCSSId&) const;
</span><span class="cx"> RefPtr<Inspector::Protocol::CSS::CSSStyleSheetBody> buildObjectForStyleSheet();
</span><span class="cx"> RefPtr<Inspector::Protocol::CSS::CSSStyleSheetHeader> buildObjectForStyleSheetInfo();
</span><span class="cx"> RefPtr<Inspector::Protocol::CSS::CSSRule> buildObjectForRule(CSSStyleRule*, Element*);
</span><span class="cx"> RefPtr<Inspector::Protocol::CSS::CSSStyle> buildObjectForStyle(CSSStyleDeclaration*);
</span><del>- bool setStyleText(const InspectorCSSId&, const String& text, String* oldText, ExceptionCode&);
</del><ins>+ ExceptionOr<void> setStyleText(const InspectorCSSId&, const String& text, String* oldText);
</ins><span class="cx">
</span><del>- virtual bool getText(String* result) const;
</del><ins>+ virtual ExceptionOr<String> text() const;
</ins><span class="cx"> virtual CSSStyleDeclaration* styleForId(const InspectorCSSId&) const;
</span><span class="cx"> void fireStyleSheetChanged();
</span><span class="cx">
</span><span class="lines">@@ -200,7 +197,7 @@
</span><span class="cx"> virtual RefPtr<InspectorStyle> inspectorStyleForId(const InspectorCSSId&);
</span><span class="cx">
</span><span class="cx"> // Also accessed by friend class InspectorStyle.
</span><del>- virtual bool setStyleText(CSSStyleDeclaration*, const String&, ExceptionCode&);
</del><ins>+ virtual ExceptionOr<void> setStyleText(CSSStyleDeclaration*, const String&);
</ins><span class="cx"> virtual std::unique_ptr<Vector<size_t>> lineEndings() const;
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="lines">@@ -208,7 +205,6 @@
</span><span class="cx"> friend class InspectorStyle;
</span><span class="cx">
</span><span class="cx"> static void collectFlatRules(RefPtr<CSSRuleList>&&, CSSStyleRuleVector* result);
</span><del>- bool checkPageStyleSheet(ExceptionCode&) const;
</del><span class="cx"> bool styleSheetMutated() const;
</span><span class="cx"> bool ensureText() const;
</span><span class="cx"> bool ensureSourceData();
</span><span class="lines">@@ -236,21 +232,21 @@
</span><span class="cx"> static Ref<InspectorStyleSheetForInlineStyle> create(InspectorPageAgent*, const String& id, RefPtr<Element>&&, Inspector::Protocol::CSS::StyleSheetOrigin, Listener*);
</span><span class="cx">
</span><span class="cx"> void didModifyElementAttribute();
</span><del>- bool getText(String* result) const override;
- CSSStyleDeclaration* styleForId(const InspectorCSSId& id) const override { ASSERT_UNUSED(id, !id.ordinal()); return inlineStyle(); }
</del><ins>+ ExceptionOr<String> text() const final;
+ CSSStyleDeclaration* styleForId(const InspectorCSSId& id) const final { ASSERT_UNUSED(id, !id.ordinal()); return inlineStyle(); }
</ins><span class="cx">
</span><span class="cx"> protected:
</span><span class="cx"> InspectorStyleSheetForInlineStyle(InspectorPageAgent*, const String& id, RefPtr<Element>&&, Inspector::Protocol::CSS::StyleSheetOrigin, Listener*);
</span><span class="cx">
</span><del>- Document* ownerDocument() const override;
- RefPtr<CSSRuleSourceData> ruleSourceDataFor(CSSStyleDeclaration* style) const override { ASSERT_UNUSED(style, style == inlineStyle()); return m_ruleSourceData; }
- unsigned ruleIndexByStyle(CSSStyleDeclaration*) const override { return 0; }
- bool ensureParsedDataReady() override;
- RefPtr<InspectorStyle> inspectorStyleForId(const InspectorCSSId&) override;
</del><ins>+ Document* ownerDocument() const final;
+ RefPtr<CSSRuleSourceData> ruleSourceDataFor(CSSStyleDeclaration* style) const final { ASSERT_UNUSED(style, style == inlineStyle()); return m_ruleSourceData; }
+ unsigned ruleIndexByStyle(CSSStyleDeclaration*) const final { return 0; }
+ bool ensureParsedDataReady() final;
+ RefPtr<InspectorStyle> inspectorStyleForId(const InspectorCSSId&) final;
</ins><span class="cx">
</span><span class="cx"> // Also accessed by friend class InspectorStyle.
</span><del>- bool setStyleText(CSSStyleDeclaration*, const String&, ExceptionCode&) override;
- std::unique_ptr<Vector<size_t>> lineEndings() const override;
</del><ins>+ ExceptionOr<void> setStyleText(CSSStyleDeclaration*, const String&) final;
+ std::unique_ptr<Vector<size_t>> lineEndings() const final;
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> CSSStyleDeclaration* inlineStyle() const;
</span></span></pre></div>
<a id="trunkSourceWebCorepageDragControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DragController.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DragController.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/page/DragController.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -148,9 +148,9 @@
</span><span class="cx"> if (title.isEmpty())
</span><span class="cx"> title = url;
</span><span class="cx"> }
</span><del>- anchor->appendChild(document.createTextNode(title), IGNORE_EXCEPTION);
</del><ins>+ anchor->appendChild(document.createTextNode(title));
</ins><span class="cx"> auto fragment = document.createDocumentFragment();
</span><del>- fragment->appendChild(anchor, IGNORE_EXCEPTION);
</del><ins>+ fragment->appendChild(anchor);
</ins><span class="cx"> return WTFMove(fragment);
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepageiosFrameIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ios/FrameIOS.mm (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ios/FrameIOS.mm        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/page/ios/FrameIOS.mm        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -91,9 +91,8 @@
</span><span class="cx"> if (!style.isEmpty())
</span><span class="cx"> body->setAttribute(HTMLNames::styleAttr, style);
</span><span class="cx">
</span><del>- ExceptionCode ec;
- rootElement->appendChild(body, ec);
- document->appendChild(rootElement, ec);
</del><ins>+ rootElement->appendChild(body);
+ document->appendChild(rootElement);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const ViewportArguments& Frame::viewportArguments() const
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGTRefElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGTRefElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGTRefElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/svg/SVGTRefElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -146,10 +146,10 @@
</span><span class="cx"> ASSERT(shadowRoot());
</span><span class="cx"> ShadowRoot* root = shadowRoot();
</span><span class="cx"> if (!root->firstChild())
</span><del>- root->appendChild(Text::create(document(), textContent), ASSERT_NO_EXCEPTION);
</del><ins>+ root->appendChild(Text::create(document(), textContent));
</ins><span class="cx"> else {
</span><span class="cx"> ASSERT(root->firstChild()->isTextNode());
</span><del>- root->firstChild()->setTextContent(textContent, ASSERT_NO_EXCEPTION);
</del><ins>+ root->firstChild()->setTextContent(textContent);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx"> ASSERT(shadowRoot());
</span><span class="cx"> Node* container = shadowRoot()->firstChild();
</span><span class="cx"> if (container)
</span><del>- container->setTextContent(emptyContent, IGNORE_EXCEPTION);
</del><ins>+ container->setTextContent(emptyContent);
</ins><span class="cx">
</span><span class="cx"> if (!inDocument())
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLTreeViewercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLTreeViewer.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLTreeViewer.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebCore/xml/XMLTreeViewer.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx">
</span><span class="cx"> String cssString = StringImpl::createWithoutCopying(XMLViewer_css, sizeof(XMLViewer_css));
</span><span class="cx"> auto text = m_document.createTextNode(cssString);
</span><del>- m_document.getElementById(String(ASCIILiteral("xml-viewer-style")))->appendChild(text, IGNORE_EXCEPTION);
</del><ins>+ m_document.getElementById(String(ASCIILiteral("xml-viewer-style")))->appendChild(text);
</ins><span class="cx"> m_document.styleScope().didChangeActiveStyleSheetCandidates();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebKit/mac/ChangeLog        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2016-11-11 Darin Adler <darin@apple.com>
+
+ Move Node from ExceptionCode to ExceptionOr
+ https://bugs.webkit.org/show_bug.cgi?id=164515
+
+ Reviewed by Sam Weinig.
+
+ * DOM/DOMHTMLSelectElement.mm:
+ (-[DOMHTMLSelectElement remove:]): Call remove instead of removeByIndex
+ now that it was renamed.
+ * DOM/DOMNode.mm:
+ (-[DOMNode setNodeValue:]): Updated exception handling.
+ (-[DOMNode setPrefix:]): Ditto.
+ (-[DOMNode setTextContent:]): Ditto.
+ (-[DOMNode insertBefore:refChild:]): Ditto.
+ (-[DOMNode replaceChild:oldChild:]): Ditto.
+ (-[DOMNode removeChild:]): Ditto.
+ (-[DOMNode appendChild:]): Ditto.
+ (-[DOMNode cloneNode:]): Ditto.
+
</ins><span class="cx"> 2016-11-11 Beth Dakin <bdakin@apple.com>
</span><span class="cx">
</span><span class="cx"> Get touch bar code building for open source builds
</span></span></pre></div>
<a id="trunkSourceWebKitmacDOMDOMHTMLSelectElementmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/DOM/DOMHTMLSelectElement.mm (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/DOM/DOMHTMLSelectElement.mm        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebKit/mac/DOM/DOMHTMLSelectElement.mm        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -202,7 +202,7 @@
</span><span class="cx"> - (void)remove:(int)index
</span><span class="cx"> {
</span><span class="cx"> WebCore::JSMainThreadNullState state;
</span><del>- IMPL->removeByIndex(index);
</del><ins>+ IMPL->remove(index);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKitmacDOMDOMNodemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/DOM/DOMNode.mm (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/DOM/DOMNode.mm        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebKit/mac/DOM/DOMNode.mm        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -97,9 +97,7 @@
</span><span class="cx"> - (void)setNodeValue:(NSString *)newNodeValue
</span><span class="cx"> {
</span><span class="cx"> JSMainThreadNullState state;
</span><del>- ExceptionCode ec = 0;
- unwrap(*self).setNodeValue(newNodeValue, ec);
- raiseOnDOMError(ec);
</del><ins>+ raiseOnDOMError(unwrap(*self).setNodeValue(newNodeValue));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (unsigned short)nodeType
</span><span class="lines">@@ -165,9 +163,7 @@
</span><span class="cx"> - (void)setPrefix:(NSString *)newPrefix
</span><span class="cx"> {
</span><span class="cx"> JSMainThreadNullState state;
</span><del>- ExceptionCode ec = 0;
- unwrap(*self).setPrefix(newPrefix, ec);
- raiseOnDOMError(ec);
</del><ins>+ raiseOnDOMError(unwrap(*self).setPrefix(newPrefix));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (NSString *)localName
</span><span class="lines">@@ -197,9 +193,7 @@
</span><span class="cx"> - (void)setTextContent:(NSString *)newTextContent
</span><span class="cx"> {
</span><span class="cx"> JSMainThreadNullState state;
</span><del>- ExceptionCode ec = 0;
- unwrap(*self).setTextContent(newTextContent, ec);
- raiseOnDOMError(ec);
</del><ins>+ raiseOnDOMError(unwrap(*self).setTextContent(newTextContent));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (BOOL)isConnected
</span><span class="lines">@@ -225,11 +219,8 @@
</span><span class="cx"> JSMainThreadNullState state;
</span><span class="cx"> if (!newChild)
</span><span class="cx"> raiseTypeErrorException();
</span><del>- ExceptionCode ec = 0;
- if (unwrap(*self).insertBefore(*core(newChild), core(refChild), ec))
- return newChild;
- raiseOnDOMError(ec);
- return nil;
</del><ins>+ raiseOnDOMError(unwrap(*self).insertBefore(*core(newChild), core(refChild)));
+ return newChild;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (DOMNode *)replaceChild:(DOMNode *)newChild oldChild:(DOMNode *)oldChild
</span><span class="lines">@@ -239,11 +230,8 @@
</span><span class="cx"> raiseTypeErrorException();
</span><span class="cx"> if (!oldChild)
</span><span class="cx"> raiseTypeErrorException();
</span><del>- ExceptionCode ec = 0;
- if (unwrap(*self).replaceChild(*core(newChild), *core(oldChild), ec))
- return oldChild;
- raiseOnDOMError(ec);
- return nil;
</del><ins>+ raiseOnDOMError(unwrap(*self).replaceChild(*core(newChild), *core(oldChild)));
+ return oldChild;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (DOMNode *)removeChild:(DOMNode *)oldChild
</span><span class="lines">@@ -251,11 +239,8 @@
</span><span class="cx"> JSMainThreadNullState state;
</span><span class="cx"> if (!oldChild)
</span><span class="cx"> raiseTypeErrorException();
</span><del>- ExceptionCode ec = 0;
- if (unwrap(*self).removeChild(*core(oldChild), ec))
- return oldChild;
- raiseOnDOMError(ec);
- return nil;
</del><ins>+ raiseOnDOMError(unwrap(*self).removeChild(*core(oldChild)));
+ return oldChild;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (DOMNode *)appendChild:(DOMNode *)newChild
</span><span class="lines">@@ -263,11 +248,8 @@
</span><span class="cx"> JSMainThreadNullState state;
</span><span class="cx"> if (!newChild)
</span><span class="cx"> raiseTypeErrorException();
</span><del>- ExceptionCode ec = 0;
- if (unwrap(*self).appendChild(*core(newChild), ec))
- return newChild;
- raiseOnDOMError(ec);
- return nil;
</del><ins>+ raiseOnDOMError(unwrap(*self).appendChild(*core(newChild)));
+ return newChild;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (BOOL)hasChildNodes
</span><span class="lines">@@ -279,10 +261,7 @@
</span><span class="cx"> - (DOMNode *)cloneNode:(BOOL)deep
</span><span class="cx"> {
</span><span class="cx"> JSMainThreadNullState state;
</span><del>- ExceptionCode ec = 0;
- DOMNode *result = kit(unwrap(*self).cloneNodeForBindings(deep, ec).get());
- raiseOnDOMError(ec);
- return result;
</del><ins>+ return kit(raiseOnDOMError(unwrap(*self).cloneNodeForBindings(deep)).ptr());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (void)normalize
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebKit/win/ChangeLog        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2016-11-11 Darin Adler <darin@apple.com>
+
+ Move Node from ExceptionCode to ExceptionOr
+ https://bugs.webkit.org/show_bug.cgi?id=164515
+
+ Reviewed by Sam Weinig.
+
+ * DOMCoreClasses.cpp:
+ (DOMNode::insertBefore): Update exception handling.
+ (DOMNode::removeChild): Ditto.
+
</ins><span class="cx"> 2016-10-14 Carlos Garcia Campos <cgarcia@igalia.com>
</span><span class="cx">
</span><span class="cx"> MemoryPressureHandler shouldn't know how to release WebCore memory
</span></span></pre></div>
<a id="trunkSourceWebKitwinDOMCoreClassescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/DOMCoreClasses.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/DOMCoreClasses.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebKit/win/DOMCoreClasses.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -250,8 +250,7 @@
</span><span class="cx">
</span><span class="cx"> COMPtr<DOMNode> refChildNode(Query, refChild);
</span><span class="cx">
</span><del>- ExceptionCode ec;
- if (!m_node->insertBefore(*newChildNode->node(), refChildNode ? refChildNode->node() : nullptr, ec))
</del><ins>+ if (m_node->insertBefore(*newChildNode->node(), refChildNode ? refChildNode->node() : nullptr).hasException())
</ins><span class="cx"> return E_FAIL;
</span><span class="cx">
</span><span class="cx"> *result = newChild;
</span><span class="lines">@@ -282,8 +281,7 @@
</span><span class="cx"> if (!oldChildNode)
</span><span class="cx"> return E_FAIL;
</span><span class="cx">
</span><del>- ExceptionCode ec;
- if (!m_node->removeChild(*oldChildNode->node(), ec))
</del><ins>+ if (m_node->removeChild(*oldChildNode->node()).hasException())
</ins><span class="cx"> return E_FAIL;
</span><span class="cx">
</span><span class="cx"> *result = oldChild;
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebKit2/ChangeLog        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -1,3 +1,30 @@
</span><ins>+2016-11-11 Darin Adler <darin@apple.com>
+
+ Move Node from ExceptionCode to ExceptionOr
+ https://bugs.webkit.org/show_bug.cgi?id=164515
+
+ Reviewed by Sam Weinig.
+
+ * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp:
+ (webkit_dom_html_select_element_remove): Updated exception handling.
+ * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp:
+ (webkit_dom_node_insert_before): Ditto.
+ (webkit_dom_node_replace_child): Ditto.
+ (webkit_dom_node_remove_child): Ditto.
+ (webkit_dom_node_append_child): Ditto.
+ (webkit_dom_node_clone_node_with_error): Ditto.
+ (webkit_dom_node_set_node_value): Ditto.
+ (webkit_dom_node_set_text_content): Ditto.
+ * WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
+ (-[WKDOMNode insertNode:before:]): Ditto.
+ (-[WKDOMNode appendChild:]): Ditto.
+ (-[WKDOMNode removeChild:]): Ditto.
+
+ * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
+ (WebKit::PDFPlugin::PDFPlugin): Removed unneeded ASSERT_NO_EXCEPTION.
+ * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
+ (WebKit::PDFPluginChoiceAnnotation::createAnnotationElement): Ditto.
+
</ins><span class="cx"> 2016-11-11 Megan Gardner <megan_gardner@apple.com>
</span><span class="cx">
</span><span class="cx"> [Cocoa] Support wide gamut for Drag Image UI
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPIgtkDOMWebKitDOMDeprecatedcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -236,10 +236,9 @@
</span><span class="cx"> WebCore::JSMainThreadNullState state;
</span><span class="cx"> WebCore::Node* item = WebKit::core(self);
</span><span class="cx"> WTF::String convertedValue = WTF::String::fromUTF8(value);
</span><del>- WebCore::ExceptionCode ec = 0;
- item->setPrefix(convertedValue, ec);
- if (ec) {
- WebCore::ExceptionCodeDescription ecdesc(ec);
</del><ins>+ auto result = item->setPrefix(convertedValue);
+ if (result.hasException()) {
+ WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code());
</ins><span class="cx"> g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPIgtkDOMWebKitDOMHTMLSelectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -383,7 +383,7 @@
</span><span class="cx"> WebCore::JSMainThreadNullState state;
</span><span class="cx"> g_return_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self));
</span><span class="cx"> WebCore::HTMLSelectElement* item = WebKit::core(self);
</span><del>- item->removeByIndex(index);
</del><ins>+ item->remove(index);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> gboolean webkit_dom_html_select_element_get_autofocus(WebKitDOMHTMLSelectElement* self)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPIgtkDOMWebKitDOMNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -370,14 +370,13 @@
</span><span class="cx"> WebCore::Node* item = WebKit::core(self);
</span><span class="cx"> WebCore::Node* convertedNewChild = WebKit::core(newChild);
</span><span class="cx"> WebCore::Node* convertedRefChild = WebKit::core(refChild);
</span><del>- WebCore::ExceptionCode ec = 0;
- bool ok = item->insertBefore(*convertedNewChild, convertedRefChild, ec);
- if (ok)
- return WebKit::kit(convertedNewChild);
-
- WebCore::ExceptionCodeDescription ecdesc(ec);
- g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
- return 0;
</del><ins>+ auto result = item->insertBefore(*convertedNewChild, convertedRefChild);
+ if (result.hasException()) {
+ WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code());
+ g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
+ return nullptr;
+ }
+ return newChild;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WebKitDOMNode* webkit_dom_node_replace_child(WebKitDOMNode* self, WebKitDOMNode* newChild, WebKitDOMNode* oldChild, GError** error)
</span><span class="lines">@@ -390,14 +389,13 @@
</span><span class="cx"> WebCore::Node* item = WebKit::core(self);
</span><span class="cx"> WebCore::Node* convertedNewChild = WebKit::core(newChild);
</span><span class="cx"> WebCore::Node* convertedOldChild = WebKit::core(oldChild);
</span><del>- WebCore::ExceptionCode ec = 0;
- bool ok = item->replaceChild(*convertedNewChild, *convertedOldChild, ec);
- if (ok)
- return WebKit::kit(convertedOldChild);
-
- WebCore::ExceptionCodeDescription ecdesc(ec);
- g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
- return 0;
</del><ins>+ auto result = item->replaceChild(*convertedNewChild, *convertedOldChild);
+ if (result.hasException()) {
+ WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code());
+ g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
+ return nullptr;
+ }
+ return oldChild;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WebKitDOMNode* webkit_dom_node_remove_child(WebKitDOMNode* self, WebKitDOMNode* oldChild, GError** error)
</span><span class="lines">@@ -408,14 +406,13 @@
</span><span class="cx"> g_return_val_if_fail(!error || !*error, 0);
</span><span class="cx"> WebCore::Node* item = WebKit::core(self);
</span><span class="cx"> WebCore::Node* convertedOldChild = WebKit::core(oldChild);
</span><del>- WebCore::ExceptionCode ec = 0;
- bool ok = item->removeChild(*convertedOldChild, ec);
- if (ok)
- return WebKit::kit(convertedOldChild);
-
- WebCore::ExceptionCodeDescription ecdesc(ec);
- g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
- return 0;
</del><ins>+ auto result = item->removeChild(*convertedOldChild);
+ if (result.hasException()) {
+ WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code());
+ g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
+ return nullptr;
+ }
+ return oldChild;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WebKitDOMNode* webkit_dom_node_append_child(WebKitDOMNode* self, WebKitDOMNode* newChild, GError** error)
</span><span class="lines">@@ -426,14 +423,13 @@
</span><span class="cx"> g_return_val_if_fail(!error || !*error, 0);
</span><span class="cx"> WebCore::Node* item = WebKit::core(self);
</span><span class="cx"> WebCore::Node* convertedNewChild = WebKit::core(newChild);
</span><del>- WebCore::ExceptionCode ec = 0;
- bool ok = item->appendChild(*convertedNewChild, ec);
- if (ok)
- return WebKit::kit(convertedNewChild);
-
- WebCore::ExceptionCodeDescription ecdesc(ec);
- g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
- return 0;
</del><ins>+ auto result = item->appendChild(*convertedNewChild);
+ if (result.hasException()) {
+ WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code());
+ g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
+ return nullptr;
+ }
+ return newChild;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> gboolean webkit_dom_node_has_child_nodes(WebKitDOMNode* self)
</span><span class="lines">@@ -451,13 +447,13 @@
</span><span class="cx"> g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0);
</span><span class="cx"> g_return_val_if_fail(!error || !*error, 0);
</span><span class="cx"> WebCore::Node* item = WebKit::core(self);
</span><del>- WebCore::ExceptionCode ec = 0;
- RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->cloneNodeForBindings(deep, ec));
- if (ec) {
- WebCore::ExceptionCodeDescription ecdesc(ec);
</del><ins>+ auto result = item->cloneNodeForBindings(deep);
+ if (result.hasException()) {
+ WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code());
</ins><span class="cx"> g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
</span><ins>+ return nullptr;
</ins><span class="cx"> }
</span><del>- return WebKit::kit(gobjectResult.get());
</del><ins>+ return WebKit::kit(result.releaseReturnValue().ptr());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void webkit_dom_node_normalize(WebKitDOMNode* self)
</span><span class="lines">@@ -581,10 +577,9 @@
</span><span class="cx"> g_return_if_fail(!error || !*error);
</span><span class="cx"> WebCore::Node* item = WebKit::core(self);
</span><span class="cx"> WTF::String convertedValue = WTF::String::fromUTF8(value);
</span><del>- WebCore::ExceptionCode ec = 0;
- item->setNodeValue(convertedValue, ec);
- if (ec) {
- WebCore::ExceptionCodeDescription ecdesc(ec);
</del><ins>+ auto result = item->setNodeValue(convertedValue);
+ if (result.hasException()) {
+ WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code());
</ins><span class="cx"> g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="lines">@@ -687,10 +682,9 @@
</span><span class="cx"> g_return_if_fail(!error || !*error);
</span><span class="cx"> WebCore::Node* item = WebKit::core(self);
</span><span class="cx"> WTF::String convertedValue = WTF::String::fromUTF8(value);
</span><del>- WebCore::ExceptionCode ec = 0;
- item->setTextContent(convertedValue, ec);
- if (ec) {
- WebCore::ExceptionCodeDescription ecdesc(ec);
</del><ins>+ auto result = item->setTextContent(convertedValue);
+ if (result.hasException()) {
+ WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code());
</ins><span class="cx"> g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPImacWKDOMNodemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -58,9 +58,7 @@
</span><span class="cx"> if (!node)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- // FIXME: Do something about the exception.
- WebCore::ExceptionCode ec;
- _impl->insertBefore(*WebKit::toWebCoreNode(node), WebKit::toWebCoreNode(refNode), ec);
</del><ins>+ _impl->insertBefore(*WebKit::toWebCoreNode(node), WebKit::toWebCoreNode(refNode));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (void)appendChild:(WKDOMNode *)node
</span><span class="lines">@@ -68,9 +66,7 @@
</span><span class="cx"> if (!node)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- // FIXME: Do something about the exception.
- WebCore::ExceptionCode ec;
- _impl->appendChild(*WebKit::toWebCoreNode(node), ec);
</del><ins>+ _impl->appendChild(*WebKit::toWebCoreNode(node));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (void)removeChild:(WKDOMNode *)node
</span><span class="lines">@@ -78,9 +74,7 @@
</span><span class="cx"> if (!node)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- // FIXME: Do something about the exception.
- WebCore::ExceptionCode ec;
- _impl->removeChild(*WebKit::toWebCoreNode(node), ec);
</del><ins>+ _impl->removeChild(*WebKit::toWebCoreNode(node));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (WKDOMDocument *)document
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFDeprecatedPDFPluginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -526,7 +526,7 @@
</span><span class="cx"> m_annotationContainer->setAttributeWithoutSynchronization(idAttr, AtomicString("annotationContainer", AtomicString::ConstructFromLiteral));
</span><span class="cx">
</span><span class="cx"> auto annotationStyleElement = document->createElement(styleTag, false);
</span><del>- annotationStyleElement->setTextContent(annotationStyle, ASSERT_NO_EXCEPTION);
</del><ins>+ annotationStyleElement->setTextContent(annotationStyle);
</ins><span class="cx">
</span><span class="cx"> m_annotationContainer->appendChild(annotationStyleElement);
</span><span class="cx"> document->bodyOrFrameset()->appendChild(*m_annotationContainer);
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFPDFPluginChoiceAnnotationmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm (208602 => 208603)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm        2016-11-11 20:12:00 UTC (rev 208602)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm        2016-11-11 20:16:03 UTC (rev 208603)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx"> for (NSString *choice in choices) {
</span><span class="cx"> auto choiceOption = document.createElement(optionTag, false);
</span><span class="cx"> choiceOption->setAttributeWithoutSynchronization(valueAttr, choice);
</span><del>- choiceOption->setTextContent(choice, ASSERT_NO_EXCEPTION);
</del><ins>+ choiceOption->setTextContent(choice);
</ins><span class="cx">
</span><span class="cx"> if (choice == selectedChoice)
</span><span class="cx"> choiceOption->setAttributeWithoutSynchronization(selectedAttr, AtomicString("selected", AtomicString::ConstructFromLiteral));
</span></span></pre>
</div>
</div>
</body>
</html>