<!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>[208145] 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/208145">208145</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2016-10-31 08:54:51 -0700 (Mon, 31 Oct 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Move ChildNode and ParentNode from ExceptionCode to Exception, add support for ExceptionOr<T&>
https://bugs.webkit.org/show_bug.cgi?id=164214
Reviewed by Alex Christensen.
Source/WebCore:
* Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::initializeOptions): Use FetchHeaders& instead of
Ref<FetchHeaders> for return value.
(WebCore::FetchRequest::initializeWith): Ditto.
* Modules/fetch/FetchRequest.h: Updated for above.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addSourceBuffer): Use SourceBuffer& instead of
SourceBuffer* for return value.
* Modules/mediasource/MediaSource.h: Updated for above.
* bindings/js/JSDOMBinding.h: Added overloads of checkSecurityForNode so
it works with a function returning a reference.
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::getCounterValue): Use Counter& instead of
Counter* for return value.
(WebCore::CSSPrimitiveValue::getRectValue): Use Rect& instead of
Rect* for return value.
* css/CSSPrimitiveValue.h: Updated for above.
* dom/ChildNode.idl: Use non-legacy exceptions.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::querySelector): Use ExceptionOr.
(WebCore::ContainerNode::querySelectorAll): Ditto.
(WebCore::ContainerNode::append): Ditto.
(WebCore::ContainerNode::prepend): Ditto.
* dom/ContainerNode.h: Updated for above.
* dom/Document.cpp:
(WebCore::Document::selectorQueryForString): Use ExceptionOr.
* dom/Document.h: Updated for above.
* dom/Element.cpp:
(WebCore::Element::attachShadow): Return ShadowRoot& instead of
Ref<ShadowRoot> since the shadow root is owned by the element, not
the caller.
(WebCore::Element::matches): Updated for change to make the
selectorQueryForString function use ExceptionOr.
(WebCore::Element::closest): Ditto.
(WebCore::contextNodeForInsertion): Return ContainerNode& instead of
ContainerNode*.
(WebCore::contextElementForInsertion): Updated for above.
* dom/Element.h: Updated for above.
* dom/Element.idl: Changed return type for closest and for
insertAdjacentElement to be nullable since both can return null.
* dom/ExceptionOr.h: Added a specialization for ExceptionOr<T&>.
* dom/Node.cpp:
(WebCore::Node::convertNodesOrStringsIntoNode): Use ExceptionOr.
(WebCore::Node::before): Ditto.
(WebCore::Node::after): Ditto.
(WebCore::Node::replaceWith): Ditto.
* dom/Node.h: Updated for above changes.
* dom/ParentNode.idl: Use non-legacy exceptions.
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::queryAll): Changed return type to Ref.
(WebCore::SelectorQueryCache::add): Use ExceptionOr.
* dom/SelectorQuery.h: Updated for above changes.
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::getSVGDocument): Return
Document& instead of Document*.
* html/HTMLFrameOwnerElement.h: Updated for above change.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::addTextTrack): Return TextTrack&
instead of Ref<TextTrack>.
* html/HTMLMediaElement.h: Updated for above.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::partOfSnapshotOverlay):
Updated for new exceptions.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::querySelector): Ditto.
(WebCore::InspectorDOMAgent::querySelectorAll): Ditto.
(WebCore::InspectorDOMAgent::performSearch): Ditto.
(WebCore::InspectorDOMAgent::highlightSelector): Ditto.
* inspector/InspectorNodeFinder.cpp:
(WebCore::InspectorNodeFinder::performSearch): Put a null check
here so callers don't have to do it. Pass references to the
individual functions since the pointer can't be null.
(WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
Updated to use reference and streamlined code a bit, using
containsIgnoringASCIICase instead of findIgnoringCase.
(WebCore::InspectorNodeFinder::matchesAttribute): Ditto.
(WebCore::InspectorNodeFinder::matchesElement): Ditto.
(WebCore::InspectorNodeFinder::searchUsingXPath): Ditto.
(WebCore::InspectorNodeFinder::searchUsingCSSSelectors): Ditto.
Also updated for new exceptions in querySelectorAll.
* inspector/InspectorNodeFinder.h: Updated for above.
* page/Crypto.cpp:
(WebCore::Crypto::webkitSubtle): Return WebKitSubtleCrypto&
insetad of WebKitSubtleCrypto*.
* page/Crypto.h: Updated for above.
* testing/Internals.h: Removed declarations for functions already
removed: ensureShadowRoot and createShadowRoot.
Source/WebKit/mac:
* DOM/DOMCSSPrimitiveValue.mm:
(-[DOMCSSPrimitiveValue getCounterValue]): Updated since return value
is a reference now.
(-[DOMCSSPrimitiveValue getRectValue]): Ditto.
* DOM/DOMDocument.mm:
(-[DOMDocument querySelector:]): Updated exception handling.
(-[DOMDocument querySelectorAll:]): Ditto.
* DOM/DOMDocumentFragment.mm:
(-[DOMDocumentFragment querySelector:]): Ditto.
(-[DOMDocumentFragment querySelectorAll:]): Ditto.
* DOM/DOMElement.mm:
(-[DOMElement querySelector:]): Ditto.
(-[DOMElement querySelectorAll:]): Ditto.
Source/WebKit2:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp:
(webkit_dom_document_query_selector): Updated exception handling.
(webkit_dom_document_query_selector_all): Ditto.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp:
(webkit_dom_document_fragment_query_selector): Ditto.
(webkit_dom_document_fragment_query_selector_all): Ditto.
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp:
(webkit_dom_element_query_selector): Ditto.
(webkit_dom_element_query_selector_all): Ditto.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchRequestcpp">trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchFetchRequesth">trunk/Source/WebCore/Modules/fetch/FetchRequest.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceMediaSourcecpp">trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceMediaSourceh">trunk/Source/WebCore/Modules/mediasource/MediaSource.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMBindingh">trunk/Source/WebCore/bindings/js/JSDOMBinding.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSPrimitiveValuecpp">trunk/Source/WebCore/css/CSSPrimitiveValue.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSPrimitiveValueh">trunk/Source/WebCore/css/CSSPrimitiveValue.h</a></li>
<li><a href="#trunkSourceWebCoredomChildNodeidl">trunk/Source/WebCore/dom/ChildNode.idl</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="#trunkSourceWebCoredomDocumenth">trunk/Source/WebCore/dom/Document.h</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="#trunkSourceWebCoredomElementidl">trunk/Source/WebCore/dom/Element.idl</a></li>
<li><a href="#trunkSourceWebCoredomExceptionOrh">trunk/Source/WebCore/dom/ExceptionOr.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="#trunkSourceWebCoredomParentNodeidl">trunk/Source/WebCore/dom/ParentNode.idl</a></li>
<li><a href="#trunkSourceWebCoredomSelectorQuerycpp">trunk/Source/WebCore/dom/SelectorQuery.cpp</a></li>
<li><a href="#trunkSourceWebCoredomSelectorQueryh">trunk/Source/WebCore/dom/SelectorQuery.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFrameOwnerElementcpp">trunk/Source/WebCore/html/HTMLFrameOwnerElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFrameOwnerElementh">trunk/Source/WebCore/html/HTMLFrameOwnerElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementh">trunk/Source/WebCore/html/HTMLMediaElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLPlugInImageElementcpp">trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMAgentcpp">trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorNodeFindercpp">trunk/Source/WebCore/inspector/InspectorNodeFinder.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorNodeFinderh">trunk/Source/WebCore/inspector/InspectorNodeFinder.h</a></li>
<li><a href="#trunkSourceWebCorepageCryptocpp">trunk/Source/WebCore/page/Crypto.cpp</a></li>
<li><a href="#trunkSourceWebCorepageCryptoh">trunk/Source/WebCore/page/Crypto.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsh">trunk/Source/WebCore/testing/Internals.h</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacDOMDOMCSSPrimitiveValuemm">trunk/Source/WebKit/mac/DOM/DOMCSSPrimitiveValue.mm</a></li>
<li><a href="#trunkSourceWebKitmacDOMDOMDocumentmm">trunk/Source/WebKit/mac/DOM/DOMDocument.mm</a></li>
<li><a href="#trunkSourceWebKitmacDOMDOMDocumentFragmentmm">trunk/Source/WebKit/mac/DOM/DOMDocumentFragment.mm</a></li>
<li><a href="#trunkSourceWebKitmacDOMDOMElementmm">trunk/Source/WebKit/mac/DOM/DOMElement.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPIgtkDOMWebKitDOMDocumentcpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPIgtkDOMWebKitDOMDocumentFragmentcpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPIgtkDOMWebKitDOMElementcpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/ChangeLog        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -1,5 +1,117 @@
</span><span class="cx"> 2016-10-31 Darin Adler <darin@apple.com>
</span><span class="cx">
</span><ins>+ Move ChildNode and ParentNode from ExceptionCode to Exception, add support for ExceptionOr<T&>
+ https://bugs.webkit.org/show_bug.cgi?id=164214
+
+ Reviewed by Alex Christensen.
+
+ * Modules/fetch/FetchRequest.cpp:
+ (WebCore::FetchRequest::initializeOptions): Use FetchHeaders& instead of
+ Ref<FetchHeaders> for return value.
+ (WebCore::FetchRequest::initializeWith): Ditto.
+ * Modules/fetch/FetchRequest.h: Updated for above.
+
+ * Modules/mediasource/MediaSource.cpp:
+ (WebCore::MediaSource::addSourceBuffer): Use SourceBuffer& instead of
+ SourceBuffer* for return value.
+ * Modules/mediasource/MediaSource.h: Updated for above.
+
+ * bindings/js/JSDOMBinding.h: Added overloads of checkSecurityForNode so
+ it works with a function returning a reference.
+
+ * css/CSSPrimitiveValue.cpp:
+ (WebCore::CSSPrimitiveValue::getCounterValue): Use Counter& instead of
+ Counter* for return value.
+ (WebCore::CSSPrimitiveValue::getRectValue): Use Rect& instead of
+ Rect* for return value.
+ * css/CSSPrimitiveValue.h: Updated for above.
+
+ * dom/ChildNode.idl: Use non-legacy exceptions.
+
+ * dom/ContainerNode.cpp:
+ (WebCore::ContainerNode::querySelector): Use ExceptionOr.
+ (WebCore::ContainerNode::querySelectorAll): Ditto.
+ (WebCore::ContainerNode::append): Ditto.
+ (WebCore::ContainerNode::prepend): Ditto.
+ * dom/ContainerNode.h: Updated for above.
+
+ * dom/Document.cpp:
+ (WebCore::Document::selectorQueryForString): Use ExceptionOr.
+ * dom/Document.h: Updated for above.
+
+ * dom/Element.cpp:
+ (WebCore::Element::attachShadow): Return ShadowRoot& instead of
+ Ref<ShadowRoot> since the shadow root is owned by the element, not
+ the caller.
+ (WebCore::Element::matches): Updated for change to make the
+ selectorQueryForString function use ExceptionOr.
+ (WebCore::Element::closest): Ditto.
+ (WebCore::contextNodeForInsertion): Return ContainerNode& instead of
+ ContainerNode*.
+ (WebCore::contextElementForInsertion): Updated for above.
+ * dom/Element.h: Updated for above.
+ * dom/Element.idl: Changed return type for closest and for
+ insertAdjacentElement to be nullable since both can return null.
+
+ * dom/ExceptionOr.h: Added a specialization for ExceptionOr<T&>.
+
+ * dom/Node.cpp:
+ (WebCore::Node::convertNodesOrStringsIntoNode): Use ExceptionOr.
+ (WebCore::Node::before): Ditto.
+ (WebCore::Node::after): Ditto.
+ (WebCore::Node::replaceWith): Ditto.
+ * dom/Node.h: Updated for above changes.
+
+ * dom/ParentNode.idl: Use non-legacy exceptions.
+
+ * dom/SelectorQuery.cpp:
+ (WebCore::SelectorDataList::queryAll): Changed return type to Ref.
+ (WebCore::SelectorQueryCache::add): Use ExceptionOr.
+ * dom/SelectorQuery.h: Updated for above changes.
+
+ * html/HTMLFrameOwnerElement.cpp:
+ (WebCore::HTMLFrameOwnerElement::getSVGDocument): Return
+ Document& instead of Document*.
+ * html/HTMLFrameOwnerElement.h: Updated for above change.
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::addTextTrack): Return TextTrack&
+ instead of Ref<TextTrack>.
+ * html/HTMLMediaElement.h: Updated for above.
+
+ * html/HTMLPlugInImageElement.cpp:
+ (WebCore::HTMLPlugInImageElement::partOfSnapshotOverlay):
+ Updated for new exceptions.
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::querySelector): Ditto.
+ (WebCore::InspectorDOMAgent::querySelectorAll): Ditto.
+ (WebCore::InspectorDOMAgent::performSearch): Ditto.
+ (WebCore::InspectorDOMAgent::highlightSelector): Ditto.
+
+ * inspector/InspectorNodeFinder.cpp:
+ (WebCore::InspectorNodeFinder::performSearch): Put a null check
+ here so callers don't have to do it. Pass references to the
+ individual functions since the pointer can't be null.
+ (WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
+ Updated to use reference and streamlined code a bit, using
+ containsIgnoringASCIICase instead of findIgnoringCase.
+ (WebCore::InspectorNodeFinder::matchesAttribute): Ditto.
+ (WebCore::InspectorNodeFinder::matchesElement): Ditto.
+ (WebCore::InspectorNodeFinder::searchUsingXPath): Ditto.
+ (WebCore::InspectorNodeFinder::searchUsingCSSSelectors): Ditto.
+ Also updated for new exceptions in querySelectorAll.
+ * inspector/InspectorNodeFinder.h: Updated for above.
+
+ * page/Crypto.cpp:
+ (WebCore::Crypto::webkitSubtle): Return WebKitSubtleCrypto&
+ insetad of WebKitSubtleCrypto*.
+ * page/Crypto.h: Updated for above.
+
+ * testing/Internals.h: Removed declarations for functions already
+ removed: ensureShadowRoot and createShadowRoot.
+
+2016-10-31 Darin Adler <darin@apple.com>
+
</ins><span class="cx"> Convert Document from ExceptionCode to Exception
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=164212
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -221,7 +221,7 @@
</span><span class="cx"> return internalRequest.request.httpMethod() != "GET" && internalRequest.request.httpMethod() != "HEAD";
</span><span class="cx"> }
</span><span class="cx">
</span><del>-ExceptionOr<Ref<FetchHeaders>> FetchRequest::initializeOptions(const Dictionary& init)
</del><ins>+ExceptionOr<FetchHeaders&> FetchRequest::initializeOptions(const Dictionary& init)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(scriptExecutionContext());
</span><span class="cx">
</span><span class="lines">@@ -237,10 +237,10 @@
</span><span class="cx"> return Exception { TypeError, ASCIILiteral("There cannot be an integrity in no-cors mode.") };
</span><span class="cx"> m_headers->setGuard(FetchHeaders::Guard::RequestNoCors);
</span><span class="cx"> }
</span><del>- return m_headers.copyRef();
</del><ins>+ return m_headers.get();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-ExceptionOr<Ref<FetchHeaders>> FetchRequest::initializeWith(const String& url, const Dictionary& init)
</del><ins>+ExceptionOr<FetchHeaders&> FetchRequest::initializeWith(const String& url, const Dictionary& init)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(scriptExecutionContext());
</span><span class="cx"> // FIXME: Tighten the URL parsing algorithm according https://url.spec.whatwg.org/#concept-url-parser.
</span><span class="lines">@@ -256,7 +256,7 @@
</span><span class="cx"> return initializeOptions(init);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-ExceptionOr<Ref<FetchHeaders>> FetchRequest::initializeWith(FetchRequest& input, const Dictionary& init)
</del><ins>+ExceptionOr<FetchHeaders&> FetchRequest::initializeWith(FetchRequest& input, const Dictionary& init)
</ins><span class="cx"> {
</span><span class="cx"> if (input.isDisturbedOrLocked())
</span><span class="cx"> return Exception {TypeError, ASCIILiteral("Request input is disturbed or locked.") };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchFetchRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/FetchRequest.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/FetchRequest.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/Modules/fetch/FetchRequest.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -45,8 +45,8 @@
</span><span class="cx"> public:
</span><span class="cx"> static Ref<FetchRequest> create(ScriptExecutionContext& context) { return adoptRef(*new FetchRequest(context, Nullopt, FetchHeaders::create(FetchHeaders::Guard::Request), { })); }
</span><span class="cx">
</span><del>- ExceptionOr<Ref<FetchHeaders>> initializeWith(FetchRequest&, const Dictionary&);
- ExceptionOr<Ref<FetchHeaders>> initializeWith(const String&, const Dictionary&);
</del><ins>+ ExceptionOr<FetchHeaders&> initializeWith(FetchRequest&, const Dictionary&);
+ ExceptionOr<FetchHeaders&> initializeWith(const String&, const Dictionary&);
</ins><span class="cx"> ExceptionOr<void> setBody(JSC::ExecState&, JSC::JSValue, FetchRequest*);
</span><span class="cx">
</span><span class="cx"> const String& method() const { return m_internalRequest.request.httpMethod(); }
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx"> private:
</span><span class="cx"> FetchRequest(ScriptExecutionContext&, Optional<FetchBody>&&, Ref<FetchHeaders>&&, InternalRequest&&);
</span><span class="cx">
</span><del>- ExceptionOr<Ref<FetchHeaders>> initializeOptions(const Dictionary&);
</del><ins>+ ExceptionOr<FetchHeaders&> initializeOptions(const Dictionary&);
</ins><span class="cx">
</span><span class="cx"> const char* activeDOMObjectName() const final;
</span><span class="cx"> bool canSuspendForDocumentSuspension() const final;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceMediaSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -622,7 +622,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-ExceptionOr<SourceBuffer*> MediaSource::addSourceBuffer(const String& type)
</del><ins>+ExceptionOr<SourceBuffer&> MediaSource::addSourceBuffer(const String& type)
</ins><span class="cx"> {
</span><span class="cx"> LOG(MediaSource, "MediaSource::addSourceBuffer(%s) %p", type.ascii().data(), this);
</span><span class="cx">
</span><span class="lines">@@ -668,7 +668,7 @@
</span><span class="cx"> // ↳ Set the mode attribute on the new object to "segments".
</span><span class="cx"> buffer->setMode(shouldGenerateTimestamps ? SourceBuffer::AppendMode::Sequence : SourceBuffer::AppendMode::Segments);
</span><span class="cx">
</span><del>- SourceBuffer* result = buffer.ptr();
</del><ins>+ auto& result = buffer.get();
</ins><span class="cx">
</span><span class="cx"> // 8. Add the new object to sourceBuffers and fire a addsourcebuffer on that object.
</span><span class="cx"> m_sourceBuffers->add(WTFMove(buffer));
</span><span class="lines">@@ -675,7 +675,7 @@
</span><span class="cx"> regenerateActiveSourceBuffers();
</span><span class="cx">
</span><span class="cx"> // 9. Return the new object to the caller.
</span><del>- return WTFMove(result);
</del><ins>+ return result;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ExceptionOr<void> MediaSource::removeSourceBuffer(SourceBuffer& buffer)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceMediaSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/MediaSource.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">
</span><span class="cx"> SourceBufferList* sourceBuffers() { return m_sourceBuffers.get(); }
</span><span class="cx"> SourceBufferList* activeSourceBuffers() { return m_activeSourceBuffers.get(); }
</span><del>- ExceptionOr<SourceBuffer*> addSourceBuffer(const String& type);
</del><ins>+ ExceptionOr<SourceBuffer&> addSourceBuffer(const String& type);
</ins><span class="cx"> ExceptionOr<void> removeSourceBuffer(SourceBuffer&);
</span><span class="cx"> static bool isTypeSupported(const String& type);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMBindingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMBinding.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -285,8 +285,10 @@
</span><span class="cx">
</span><span class="cx"> enum SecurityReportingOption { DoNotReportSecurityError, LogSecurityError, ThrowSecurityError };
</span><span class="cx"> namespace BindingSecurity {
</span><ins>+ template<typename T> T* checkSecurityForNode(JSC::ExecState&, T&);
</ins><span class="cx"> template<typename T> T* checkSecurityForNode(JSC::ExecState&, T*);
</span><span class="cx"> template<typename T> ExceptionOr<T*> checkSecurityForNode(JSC::ExecState&, ExceptionOr<T*>&&);
</span><ins>+ template<typename T> ExceptionOr<T*> checkSecurityForNode(JSC::ExecState&, ExceptionOr<T&>&&);
</ins><span class="cx"> bool shouldAllowAccessToDOMWindow(JSC::ExecState*, DOMWindow&, SecurityReportingOption = LogSecurityError);
</span><span class="cx"> bool shouldAllowAccessToDOMWindow(JSC::ExecState&, DOMWindow&, String& message);
</span><span class="cx"> bool shouldAllowAccessToFrame(JSC::ExecState*, Frame*, SecurityReportingOption = LogSecurityError);
</span><span class="lines">@@ -774,6 +776,11 @@
</span><span class="cx"> return toJSNewlyCreated(&state, &globalObject, value.releaseReturnValue());
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+template<typename T> inline T* BindingSecurity::checkSecurityForNode(JSC::ExecState& state, T& node)
+{
+ return shouldAllowAccessToNode(state, &node) ? &node : nullptr;
+}
+
</ins><span class="cx"> template<typename T> inline T* BindingSecurity::checkSecurityForNode(JSC::ExecState& state, T* node)
</span><span class="cx"> {
</span><span class="cx"> return shouldAllowAccessToNode(state, node) ? node : nullptr;
</span><span class="lines">@@ -782,8 +789,15 @@
</span><span class="cx"> template<typename T> inline ExceptionOr<T*> BindingSecurity::checkSecurityForNode(JSC::ExecState& state, ExceptionOr<T*>&& value)
</span><span class="cx"> {
</span><span class="cx"> if (value.hasException())
</span><del>- return WTFMove(value);
</del><ins>+ return value.releaseException();
</ins><span class="cx"> return checkSecurityForNode(state, value.releaseReturnValue());
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+template<typename T> inline ExceptionOr<T*> BindingSecurity::checkSecurityForNode(JSC::ExecState& state, ExceptionOr<T&>&& value)
+{
+ if (value.hasException())
+ return value.releaseException();
+ return checkSecurityForNode(state, value.releaseReturnValue());
+}
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPrimitiveValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPrimitiveValue.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPrimitiveValue.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/css/CSSPrimitiveValue.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -962,18 +962,18 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-ExceptionOr<Counter*> CSSPrimitiveValue::getCounterValue() const
</del><ins>+ExceptionOr<Counter&> CSSPrimitiveValue::getCounterValue() const
</ins><span class="cx"> {
</span><span class="cx"> if (m_primitiveUnitType != CSS_COUNTER)
</span><span class="cx"> return Exception { INVALID_ACCESS_ERR };
</span><del>- return m_value.counter;
</del><ins>+ return *m_value.counter;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-ExceptionOr<Rect*> CSSPrimitiveValue::getRectValue() const
</del><ins>+ExceptionOr<Rect&> CSSPrimitiveValue::getRectValue() const
</ins><span class="cx"> {
</span><span class="cx"> if (m_primitiveUnitType != CSS_RECT)
</span><span class="cx"> return Exception { INVALID_ACCESS_ERR };
</span><del>- return m_value.rect;
</del><ins>+ return *m_value.rect;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ExceptionOr<Ref<RGBColor>> CSSPrimitiveValue::getRGBColorValue() const
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPrimitiveValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPrimitiveValue.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPrimitiveValue.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/css/CSSPrimitiveValue.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -251,8 +251,8 @@
</span><span class="cx"> WEBCORE_EXPORT ExceptionOr<float> getFloatValue(unsigned short unitType) const;
</span><span class="cx"> WEBCORE_EXPORT ExceptionOr<void> setStringValue(unsigned short stringType, const String& stringValue);
</span><span class="cx"> WEBCORE_EXPORT ExceptionOr<String> getStringValue() const;
</span><del>- WEBCORE_EXPORT ExceptionOr<Counter*> getCounterValue() const;
- WEBCORE_EXPORT ExceptionOr<Rect*> getRectValue() const;
</del><ins>+ WEBCORE_EXPORT ExceptionOr<Counter&> getCounterValue() const;
+ WEBCORE_EXPORT ExceptionOr<Rect&> getRectValue() const;
</ins><span class="cx"> WEBCORE_EXPORT ExceptionOr<Ref<RGBColor>> getRGBColorValue() const;
</span><span class="cx">
</span><span class="cx"> double computeDegrees() const;
</span></span></pre></div>
<a id="trunkSourceWebCoredomChildNodeidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ChildNode.idl (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ChildNode.idl        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/ChildNode.idl        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -22,8 +22,8 @@
</span><span class="cx"> [
</span><span class="cx"> NoInterfaceObject,
</span><span class="cx"> ] interface ChildNode {
</span><del>- [CEReactions, Unscopable, MayThrowLegacyException] void before((Node or DOMString)... nodes);
- [CEReactions, Unscopable, MayThrowLegacyException] void after((Node or DOMString)... nodes);
- [CEReactions, Unscopable, MayThrowLegacyException] void replaceWith((Node or DOMString)... nodes);
</del><ins>+ [CEReactions, Unscopable, MayThrowException] void before((Node or DOMString)... nodes);
+ [CEReactions, Unscopable, MayThrowException] void after((Node or DOMString)... nodes);
+ [CEReactions, Unscopable, MayThrowException] void replaceWith((Node or DOMString)... nodes);
</ins><span class="cx"> [CEReactions, Unscopable, MayThrowException] void remove();
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/ContainerNode.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -809,18 +809,20 @@
</span><span class="cx"> dispatchChildInsertionEvents(child);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-Element* ContainerNode::querySelector(const String& selectors, ExceptionCode& ec)
</del><ins>+ExceptionOr<Element*> ContainerNode::querySelector(const String& selectors)
</ins><span class="cx"> {
</span><del>- if (SelectorQuery* selectorQuery = document().selectorQueryForString(selectors, ec))
- return selectorQuery->queryFirst(*this);
- return nullptr;
</del><ins>+ auto query = document().selectorQueryForString(selectors);
+ if (query.hasException())
+ return query.releaseException();
+ return query.releaseReturnValue().queryFirst(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-RefPtr<NodeList> ContainerNode::querySelectorAll(const String& selectors, ExceptionCode& ec)
</del><ins>+ExceptionOr<Ref<NodeList>> ContainerNode::querySelectorAll(const String& selectors)
</ins><span class="cx"> {
</span><del>- if (SelectorQuery* selectorQuery = document().selectorQueryForString(selectors, ec))
- return selectorQuery->queryAll(*this);
- return nullptr;
</del><ins>+ auto query = document().selectorQueryForString(selectors);
+ if (query.hasException())
+ return query.releaseException();
+ return query.releaseReturnValue().queryAll(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Ref<HTMLCollection> ContainerNode::getElementsByTagName(const AtomicString& qualifiedName)
</span><span class="lines">@@ -878,22 +880,38 @@
</span><span class="cx"> return std::distance(children.begin(), children.end());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void ContainerNode::append(Vector<NodeOrString>&& nodeOrStringVector, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> ContainerNode::append(Vector<NodeOrString>&& vector)
</ins><span class="cx"> {
</span><del>- RefPtr<Node> node = convertNodesOrStringsIntoNode(WTFMove(nodeOrStringVector), ec);
- if (ec || !node)
- return;
</del><ins>+ auto result = convertNodesOrStringsIntoNode(WTFMove(vector));
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx">
</span><ins>+ auto node = result.releaseReturnValue();
+ if (!node)
+ return { };
+
+ ExceptionCode ec = 0;
</ins><span class="cx"> appendChild(*node, ec);
</span><ins>+ if (ec)
+ return Exception { ec };
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void ContainerNode::prepend(Vector<NodeOrString>&& nodeOrStringVector, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> ContainerNode::prepend(Vector<NodeOrString>&& vector)
</ins><span class="cx"> {
</span><del>- RefPtr<Node> node = convertNodesOrStringsIntoNode(WTFMove(nodeOrStringVector), ec);
- if (ec || !node)
- return;
</del><ins>+ auto result = convertNodesOrStringsIntoNode(WTFMove(vector));
+ if (result.hasException())
+ return result.releaseException();
</ins><span class="cx">
</span><ins>+ auto node = result.releaseReturnValue();
+ if (!node)
+ return { };
+
+ ExceptionCode ec = 0;
</ins><span class="cx"> insertBefore(*node, firstChild(), ec);
</span><ins>+ if (ec)
+ return Exception { ec };
+ return { };
</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 (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/ContainerNode.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -86,8 +86,8 @@
</span><span class="cx"> // This gives the area within which events may get handled by a hander registered on this node.
</span><span class="cx"> virtual LayoutRect absoluteEventHandlerBounds(bool& /* includesFixedPositionElements */) { return LayoutRect(); }
</span><span class="cx">
</span><del>- WEBCORE_EXPORT Element* querySelector(const String& selectors, ExceptionCode&);
- WEBCORE_EXPORT RefPtr<NodeList> querySelectorAll(const String& selectors, ExceptionCode&);
</del><ins>+ WEBCORE_EXPORT ExceptionOr<Element*> querySelector(const String& selectors);
+ WEBCORE_EXPORT ExceptionOr<Ref<NodeList>> querySelectorAll(const String& selectors);
</ins><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT Ref<HTMLCollection> getElementsByTagName(const AtomicString&);
</span><span class="cx"> WEBCORE_EXPORT Ref<HTMLCollection> getElementsByTagNameNS(const AtomicString& namespaceURI, const AtomicString& localName);
</span><span class="lines">@@ -100,8 +100,8 @@
</span><span class="cx"> WEBCORE_EXPORT Element* firstElementChild() const;
</span><span class="cx"> WEBCORE_EXPORT Element* lastElementChild() const;
</span><span class="cx"> WEBCORE_EXPORT unsigned childElementCount() const;
</span><del>- void append(Vector<NodeOrString>&&, ExceptionCode&);
- void prepend(Vector<NodeOrString>&&, ExceptionCode&);
</del><ins>+ ExceptionOr<void> append(Vector<NodeOrString>&&);
+ ExceptionOr<void> prepend(Vector<NodeOrString>&&);
</ins><span class="cx">
</span><span class="cx"> bool ensurePreInsertionValidity(Node& newChild, Node* refChild, ExceptionCode&);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/Document.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -762,16 +762,13 @@
</span><span class="cx"> return m_imagesByUsemap.getElementByCaseFoldedUsemap(name, *this);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-SelectorQuery* Document::selectorQueryForString(const String& selectorString, ExceptionCode& ec)
</del><ins>+ExceptionOr<SelectorQuery&> Document::selectorQueryForString(const String& selectorString)
</ins><span class="cx"> {
</span><del>- if (selectorString.isEmpty()) {
- ec = SYNTAX_ERR;
- return nullptr;
- }
-
</del><ins>+ if (selectorString.isEmpty())
+ return Exception { SYNTAX_ERR };
</ins><span class="cx"> if (!m_selectorQueryCache)
</span><span class="cx"> m_selectorQueryCache = std::make_unique<SelectorQueryCache>();
</span><del>- return m_selectorQueryCache->add(selectorString, *this, ec);
</del><ins>+ return m_selectorQueryCache->add(selectorString, *this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Document::clearSelectorQueryCache()
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/Document.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -347,7 +347,7 @@
</span><span class="cx"> void removeImageElementByCaseFoldedUsemap(const AtomicStringImpl&, HTMLImageElement&);
</span><span class="cx"> HTMLImageElement* imageElementByCaseFoldedUsemap(const AtomicStringImpl&) const;
</span><span class="cx">
</span><del>- SelectorQuery* selectorQueryForString(const String&, ExceptionCode&);
</del><ins>+ ExceptionOr<SelectorQuery&> selectorQueryForString(const String&);
</ins><span class="cx"> void clearSelectorQueryCache();
</span><span class="cx">
</span><span class="cx"> // DOM methods & attributes for Document
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/Element.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -1832,7 +1832,7 @@
</span><span class="cx"> return tagNames.get().contains(localName) || Document::validateCustomElementName(localName) == CustomElementNameValidationStatus::Valid;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-ExceptionOr<Ref<ShadowRoot>> Element::attachShadow(const ShadowRootInit& init)
</del><ins>+ExceptionOr<ShadowRoot&> Element::attachShadow(const ShadowRootInit& init)
</ins><span class="cx"> {
</span><span class="cx"> if (!canAttachAuthorShadowRoot(*this))
</span><span class="cx"> return Exception { NOT_SUPPORTED_ERR };
</span><span class="lines">@@ -1841,8 +1841,9 @@
</span><span class="cx"> if (init.mode == ShadowRootMode::UserAgent)
</span><span class="cx"> return Exception { TypeError };
</span><span class="cx"> auto shadow = ShadowRoot::create(document(), init.mode);
</span><del>- addShadowRoot(shadow.copyRef());
- return WTFMove(shadow);
</del><ins>+ auto& result = shadow.get();
+ addShadowRoot(WTFMove(shadow));
+ return result;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ShadowRoot* Element::shadowRootForBindings(JSC::ExecState& state) const
</span><span class="lines">@@ -2952,22 +2953,18 @@
</span><span class="cx">
</span><span class="cx"> ExceptionOr<bool> Element::matches(const String& selector)
</span><span class="cx"> {
</span><del>- ExceptionCode ec = 0;
- auto* query = document().selectorQueryForString(selector, ec);
- if (ec)
- return Exception { ec };
- return query && query->matches(*this);
</del><ins>+ auto query = document().selectorQueryForString(selector);
+ if (query.hasException())
+ return query.releaseException();
+ return query.releaseReturnValue().matches(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ExceptionOr<Element*> Element::closest(const String& selector)
</span><span class="cx"> {
</span><del>- ExceptionCode ec = 0;
- auto* query = document().selectorQueryForString(selector, ec);
- if (ec)
- return Exception { ec };
- if (!query)
- return nullptr;
- return query->closest(*this);
</del><ins>+ auto query = document().selectorQueryForString(selector);
+ if (query.hasException())
+ return query.releaseException();
+ return query.releaseReturnValue().closest(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool Element::shouldAppearIndeterminate() const
</span><span class="lines">@@ -3707,16 +3704,16 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Step 1 of https://w3c.github.io/DOM-Parsing/#dom-element-insertadjacenthtml.
</span><del>-static ExceptionOr<ContainerNode*> contextNodeForInsertion(const String& where, Element& element)
</del><ins>+static ExceptionOr<ContainerNode&> contextNodeForInsertion(const String& where, Element& element)
</ins><span class="cx"> {
</span><span class="cx"> if (equalLettersIgnoringASCIICase(where, "beforebegin") || equalLettersIgnoringASCIICase(where, "afterend")) {
</span><span class="cx"> auto* parent = element.parentNode();
</span><span class="cx"> if (!parent || is<Document>(*parent))
</span><span class="cx"> return Exception { NO_MODIFICATION_ALLOWED_ERR };
</span><del>- return parent;
</del><ins>+ return *parent;
</ins><span class="cx"> }
</span><span class="cx"> if (equalLettersIgnoringASCIICase(where, "afterbegin") || equalLettersIgnoringASCIICase(where, "beforeend"))
</span><del>- return &element;
</del><ins>+ return element;
</ins><span class="cx"> return Exception { SYNTAX_ERR };
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -3726,7 +3723,7 @@
</span><span class="cx"> auto contextNodeResult = contextNodeForInsertion(where, element);
</span><span class="cx"> if (contextNodeResult.hasException())
</span><span class="cx"> return contextNodeResult.releaseException();
</span><del>- auto& contextNode = *contextNodeResult.releaseReturnValue();
</del><ins>+ auto& contextNode = contextNodeResult.releaseReturnValue();
</ins><span class="cx"> if (!is<Element>(contextNode) || (contextNode.document().isHTMLDocument() && is<HTMLHtmlElement>(contextNode)))
</span><span class="cx"> return Ref<Element> { HTMLBodyElement::create(contextNode.document()) };
</span><span class="cx"> return Ref<Element> { downcast<Element>(contextNode) };
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/Element.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -273,7 +273,7 @@
</span><span class="cx"> struct ShadowRootInit {
</span><span class="cx"> ShadowRootMode mode;
</span><span class="cx"> };
</span><del>- ExceptionOr<Ref<ShadowRoot>> attachShadow(const ShadowRootInit&);
</del><ins>+ ExceptionOr<ShadowRoot&> attachShadow(const ShadowRootInit&);
</ins><span class="cx">
</span><span class="cx"> ShadowRoot* userAgentShadowRoot() const;
</span><span class="cx"> WEBCORE_EXPORT ShadowRoot& ensureUserAgentShadowRoot();
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.idl (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.idl        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/Element.idl        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx"> [PutForwards=value] readonly attribute DOMTokenList classList;
</span><span class="cx">
</span><span class="cx"> [MayThrowException] boolean matches(DOMString selectors);
</span><del>- [MayThrowException] Element closest(DOMString selectors);
</del><ins>+ [MayThrowException] Element? closest(DOMString selectors);
</ins><span class="cx"> [ImplementedAs=matches, MayThrowException] boolean webkitMatchesSelector(DOMString selectors);
</span><span class="cx">
</span><span class="cx"> // CSSOM View Module API
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx"> [CEReactions, Reflect] attribute DOMString uiactions;
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- [CEReactions, MayThrowException] Element insertAdjacentElement(DOMString where, Element element);
</del><ins>+ [CEReactions, MayThrowException] Element? insertAdjacentElement(DOMString where, Element element);
</ins><span class="cx"> [CEReactions, MayThrowException] void insertAdjacentHTML(DOMString where, DOMString html);
</span><span class="cx"> [MayThrowException] void insertAdjacentText(DOMString where, DOMString text);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomExceptionOrh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ExceptionOr.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ExceptionOr.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/ExceptionOr.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -46,6 +46,19 @@
</span><span class="cx"> Variant<Exception, ReturnType> m_value;
</span><span class="cx"> };
</span><span class="cx">
</span><ins>+template<typename ReturnReferenceType> class ExceptionOr<ReturnReferenceType&> {
+public:
+ ExceptionOr(Exception&&);
+ ExceptionOr(ReturnReferenceType&);
+
+ bool hasException() const;
+ Exception&& releaseException();
+ ReturnReferenceType& releaseReturnValue();
+
+private:
+ ExceptionOr<ReturnReferenceType*> m_value;
+};
+
</ins><span class="cx"> template<> class ExceptionOr<void> {
</span><span class="cx"> public:
</span><span class="cx"> ExceptionOr(Exception&&);
</span><span class="lines">@@ -88,6 +101,31 @@
</span><span class="cx"> return WTF::get<ReturnType>(WTFMove(m_value));
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+template<typename ReturnReferenceType> inline ExceptionOr<ReturnReferenceType&>::ExceptionOr(Exception&& exception)
+ : m_value(WTFMove(exception))
+{
+}
+
+template<typename ReturnReferenceType> inline ExceptionOr<ReturnReferenceType&>::ExceptionOr(ReturnReferenceType& returnValue)
+ : m_value(&returnValue)
+{
+}
+
+template<typename ReturnReferenceType> inline bool ExceptionOr<ReturnReferenceType&>::hasException() const
+{
+ return m_value.hasException();
+}
+
+template<typename ReturnReferenceType> inline Exception&& ExceptionOr<ReturnReferenceType&>::releaseException()
+{
+ return m_value.releaseException();
+}
+
+template<typename ReturnReferenceType> inline ReturnReferenceType& ExceptionOr<ReturnReferenceType&>::releaseReturnValue()
+{
+ return *m_value.releaseReturnValue();
+}
+
</ins><span class="cx"> inline ExceptionOr<void>::ExceptionOr(Exception&& exception)
</span><span class="cx"> : m_exception(WTFMove(exception))
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/Node.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -466,7 +466,7 @@
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-RefPtr<Node> Node::convertNodesOrStringsIntoNode(Vector<NodeOrString>&& nodeOrStringVector, ExceptionCode& ec)
</del><ins>+ExceptionOr<RefPtr<Node>> Node::convertNodesOrStringsIntoNode(Vector<NodeOrString>&& nodeOrStringVector)
</ins><span class="cx"> {
</span><span class="cx"> if (nodeOrStringVector.isEmpty())
</span><span class="cx"> return nullptr;
</span><span class="lines">@@ -481,28 +481,33 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (nodes.size() == 1)
</span><del>- return WTFMove(nodes.first());
</del><ins>+ return RefPtr<Node> { WTFMove(nodes.first()) };
</ins><span class="cx">
</span><span class="cx"> auto nodeToReturn = DocumentFragment::create(document());
</span><span class="cx"> for (auto& node : nodes) {
</span><del>- if (!nodeToReturn->appendChild(node, ec))
- return nullptr;
</del><ins>+ ExceptionCode ec = 0;
+ nodeToReturn->appendChild(node, ec);
+ if (ec)
+ return Exception { ec };
</ins><span class="cx"> }
</span><del>- return WTFMove(nodeToReturn);
</del><ins>+ return RefPtr<Node> { WTFMove(nodeToReturn) };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void Node::before(Vector<NodeOrString>&& nodeOrStringVector, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> Node::before(Vector<NodeOrString>&& nodeOrStringVector)
</ins><span class="cx"> {
</span><span class="cx"> RefPtr<ContainerNode> parent = parentNode();
</span><span class="cx"> if (!parent)
</span><del>- return;
</del><ins>+ return { };
</ins><span class="cx">
</span><span class="cx"> auto nodeSet = nodeSetPreTransformedFromNodeOrStringVector(nodeOrStringVector);
</span><span class="cx"> auto viablePreviousSibling = firstPrecedingSiblingNotInNodeSet(*this, nodeSet);
</span><span class="cx">
</span><del>- auto node = convertNodesOrStringsIntoNode(WTFMove(nodeOrStringVector), ec);
- if (ec || !node)
- return;
</del><ins>+ auto result = convertNodesOrStringsIntoNode(WTFMove(nodeOrStringVector));
+ if (result.hasException())
+ return result.releaseException();
+ auto node = result.releaseReturnValue();
+ if (!node)
+ return { };
</ins><span class="cx">
</span><span class="cx"> if (viablePreviousSibling)
</span><span class="cx"> viablePreviousSibling = viablePreviousSibling->nextSibling();
</span><span class="lines">@@ -509,45 +514,65 @@
</span><span class="cx"> else
</span><span class="cx"> viablePreviousSibling = parent->firstChild();
</span><span class="cx">
</span><ins>+ ExceptionCode ec = 0;
</ins><span class="cx"> parent->insertBefore(*node, viablePreviousSibling.get(), ec);
</span><ins>+ if (ec)
+ return Exception { ec };
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void Node::after(Vector<NodeOrString>&& nodeOrStringVector, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> Node::after(Vector<NodeOrString>&& nodeOrStringVector)
</ins><span class="cx"> {
</span><span class="cx"> RefPtr<ContainerNode> parent = parentNode();
</span><span class="cx"> if (!parent)
</span><del>- return;
</del><ins>+ return { };
</ins><span class="cx">
</span><span class="cx"> auto nodeSet = nodeSetPreTransformedFromNodeOrStringVector(nodeOrStringVector);
</span><span class="cx"> auto viableNextSibling = firstFollowingSiblingNotInNodeSet(*this, nodeSet);
</span><span class="cx">
</span><del>- auto node = convertNodesOrStringsIntoNode(WTFMove(nodeOrStringVector), ec);
- if (ec || !node)
- return;
</del><ins>+ auto result = convertNodesOrStringsIntoNode(WTFMove(nodeOrStringVector));
+ if (result.hasException())
+ return result.releaseException();
+ auto node = result.releaseReturnValue();
+ if (!node)
+ return { };
</ins><span class="cx">
</span><ins>+ ExceptionCode ec = 0;
</ins><span class="cx"> parent->insertBefore(*node, viableNextSibling.get(), ec);
</span><ins>+ if (ec)
+ return Exception { ec };
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void Node::replaceWith(Vector<NodeOrString>&& nodeOrStringVector, ExceptionCode& ec)
</del><ins>+ExceptionOr<void> Node::replaceWith(Vector<NodeOrString>&& nodeOrStringVector)
</ins><span class="cx"> {
</span><span class="cx"> RefPtr<ContainerNode> parent = parentNode();
</span><span class="cx"> if (!parent)
</span><del>- return;
</del><ins>+ return { };
</ins><span class="cx">
</span><span class="cx"> auto nodeSet = nodeSetPreTransformedFromNodeOrStringVector(nodeOrStringVector);
</span><span class="cx"> auto viableNextSibling = firstFollowingSiblingNotInNodeSet(*this, nodeSet);
</span><span class="cx">
</span><del>- auto node = convertNodesOrStringsIntoNode(WTFMove(nodeOrStringVector), ec);
- if (ec)
- return;
</del><ins>+ auto result = convertNodesOrStringsIntoNode(WTFMove(nodeOrStringVector));
+ if (result.hasException())
+ return result.releaseException();
+ auto node = result.releaseReturnValue();
</ins><span class="cx">
</span><span class="cx"> if (parentNode() == parent) {
</span><del>- if (node)
</del><ins>+ if (node) {
+ ExceptionCode ec = 0;
</ins><span class="cx"> parent->replaceChild(*node, *this, ec);
</span><del>- else
</del><ins>+ if (ec)
+ return Exception { ec };
+ } else
</ins><span class="cx"> parent->removeChild(*this);
</span><del>- } else if (node)
</del><ins>+ } else if (node) {
+ ExceptionCode ec = 0;
</ins><span class="cx"> parent->insertBefore(*node, viableNextSibling.get(), ec);
</span><ins>+ if (ec)
+ return Exception { ec };
+ }
+ return { };
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ExceptionOr<void> Node::remove()
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/Node.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -193,9 +193,9 @@
</span><span class="cx"> WEBCORE_EXPORT Element* nextElementSibling() const;
</span><span class="cx">
</span><span class="cx"> // From the ChildNode - https://dom.spec.whatwg.org/#childnode
</span><del>- void before(Vector<NodeOrString>&&, ExceptionCode&);
- void after(Vector<NodeOrString>&&, ExceptionCode&);
- void replaceWith(Vector<NodeOrString>&&, ExceptionCode&);
</del><ins>+ ExceptionOr<void> before(Vector<NodeOrString>&&);
+ ExceptionOr<void> after(Vector<NodeOrString>&&);
+ ExceptionOr<void> replaceWith(Vector<NodeOrString>&&);
</ins><span class="cx"> WEBCORE_EXPORT ExceptionOr<void> remove();
</span><span class="cx">
</span><span class="cx"> // Other methods (not part of DOM)
</span><span class="lines">@@ -652,7 +652,7 @@
</span><span class="cx"> void invalidateStyle(Style::Validity, Style::InvalidationMode = Style::InvalidationMode::Normal);
</span><span class="cx"> void updateAncestorsForStyleRecalc();
</span><span class="cx">
</span><del>- RefPtr<Node> convertNodesOrStringsIntoNode(Vector<NodeOrString>&&, ExceptionCode&);
</del><ins>+ ExceptionOr<RefPtr<Node>> convertNodesOrStringsIntoNode(Vector<NodeOrString>&&);
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> virtual PseudoId customPseudoId() const
</span></span></pre></div>
<a id="trunkSourceWebCoredomParentNodeidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ParentNode.idl (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ParentNode.idl        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/ParentNode.idl        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -33,11 +33,11 @@
</span><span class="cx"> readonly attribute Element lastElementChild;
</span><span class="cx"> readonly attribute unsigned long childElementCount;
</span><span class="cx">
</span><del>- [CEReactions, Unscopable, MayThrowLegacyException] void prepend((Node or DOMString)... nodes);
- [CEReactions, Unscopable, MayThrowLegacyException] void append((Node or DOMString)... nodes);
</del><ins>+ [CEReactions, Unscopable, MayThrowException] void prepend((Node or DOMString)... nodes);
+ [CEReactions, Unscopable, MayThrowException] void append((Node or DOMString)... nodes);
</ins><span class="cx">
</span><span class="cx"> // [Unscopable] Element? query(DOMString relativeSelectors);
</span><span class="cx"> // [NewObject, Unscopable] Elements queryAll(DOMString relativeSelectors);
</span><del>- [MayThrowLegacyException] Element querySelector(DOMString selectors);
- [MayThrowLegacyException, NewObject] NodeList querySelectorAll(DOMString selectors);
</del><ins>+ [MayThrowException] Element querySelector(DOMString selectors);
+ [MayThrowException, NewObject] NodeList querySelectorAll(DOMString selectors);
</ins><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoredomSelectorQuerycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/SelectorQuery.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/SelectorQuery.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/SelectorQuery.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -169,7 +169,7 @@
</span><span class="cx"> ALWAYS_INLINE static void appendOutputForElement(OutputType& output, Element* element) { ASSERT(element); output.append(*element); }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-RefPtr<NodeList> SelectorDataList::queryAll(ContainerNode& rootNode) const
</del><ins>+Ref<NodeList> SelectorDataList::queryAll(ContainerNode& rootNode) const
</ins><span class="cx"> {
</span><span class="cx"> Vector<Ref<Element>> result;
</span><span class="cx"> execute<AllElementExtractorSelectorQueryTrait>(rootNode, result);
</span><span class="lines">@@ -616,31 +616,27 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-SelectorQuery* SelectorQueryCache::add(const String& selectors, Document& document, ExceptionCode& ec)
</del><ins>+ExceptionOr<SelectorQuery&> SelectorQueryCache::add(const String& selectors, Document& document)
</ins><span class="cx"> {
</span><span class="cx"> auto it = m_entries.find(selectors);
</span><span class="cx"> if (it != m_entries.end())
</span><del>- return it->value.get();
</del><ins>+ return *it->value;
</ins><span class="cx">
</span><span class="cx"> CSSParser parser(document);
</span><span class="cx"> CSSSelectorList selectorList;
</span><span class="cx"> parser.parseSelector(selectors, selectorList);
</span><span class="cx">
</span><del>- if (!selectorList.first() || selectorList.hasInvalidSelector()) {
- ec = SYNTAX_ERR;
- return nullptr;
- }
</del><ins>+ if (!selectorList.first() || selectorList.hasInvalidSelector())
+ return Exception { SYNTAX_ERR };
</ins><span class="cx">
</span><del>- if (selectorList.selectorsNeedNamespaceResolution()) {
- ec = SYNTAX_ERR;
- return nullptr;
- }
</del><ins>+ if (selectorList.selectorsNeedNamespaceResolution())
+ return Exception { SYNTAX_ERR };
</ins><span class="cx">
</span><span class="cx"> const int maximumSelectorQueryCacheSize = 256;
</span><span class="cx"> if (m_entries.size() == maximumSelectorQueryCacheSize)
</span><span class="cx"> m_entries.remove(m_entries.begin());
</span><span class="cx">
</span><del>- return m_entries.add(selectors, std::make_unique<SelectorQuery>(WTFMove(selectorList))).iterator->value.get();
</del><ins>+ return *m_entries.add(selectors, std::make_unique<SelectorQuery>(WTFMove(selectorList))).iterator->value;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomSelectorQueryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/SelectorQuery.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/SelectorQuery.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/dom/SelectorQuery.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -23,10 +23,10 @@
</span><span class="cx"> * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx"> */
</span><span class="cx">
</span><del>-#ifndef SelectorQuery_h
-#define SelectorQuery_h
</del><ins>+#pragma once
</ins><span class="cx">
</span><span class="cx"> #include "CSSSelectorList.h"
</span><ins>+#include "ExceptionOr.h"
</ins><span class="cx"> #include "NodeList.h"
</span><span class="cx"> #include "SelectorCompiler.h"
</span><span class="cx"> #include <wtf/HashMap.h>
</span><span class="lines">@@ -36,14 +36,10 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><del>-typedef int ExceptionCode;
-
</del><span class="cx"> class CSSSelector;
</span><span class="cx"> class ContainerNode;
</span><span class="cx"> class Document;
</span><span class="cx"> class Element;
</span><del>-class Node;
-class NodeList;
</del><span class="cx">
</span><span class="cx"> class SelectorDataList {
</span><span class="cx"> public:
</span><span class="lines">@@ -50,7 +46,7 @@
</span><span class="cx"> explicit SelectorDataList(const CSSSelectorList&);
</span><span class="cx"> bool matches(Element&) const;
</span><span class="cx"> Element* closest(Element&) const;
</span><del>- RefPtr<NodeList> queryAll(ContainerNode& rootNode) const;
</del><ins>+ Ref<NodeList> queryAll(ContainerNode& rootNode) const;
</ins><span class="cx"> Element* queryFirst(ContainerNode& rootNode) const;
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="lines">@@ -120,7 +116,7 @@
</span><span class="cx"> explicit SelectorQuery(CSSSelectorList&&);
</span><span class="cx"> bool matches(Element&) const;
</span><span class="cx"> Element* closest(Element&) const;
</span><del>- RefPtr<NodeList> queryAll(ContainerNode& rootNode) const;
</del><ins>+ Ref<NodeList> queryAll(ContainerNode& rootNode) const;
</ins><span class="cx"> Element* queryFirst(ContainerNode& rootNode) const;
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="lines">@@ -130,10 +126,8 @@
</span><span class="cx">
</span><span class="cx"> class SelectorQueryCache {
</span><span class="cx"> WTF_MAKE_FAST_ALLOCATED;
</span><del>-
</del><span class="cx"> public:
</span><del>- SelectorQuery* add(const String&, Document&, ExceptionCode&);
-
</del><ins>+ ExceptionOr<SelectorQuery&> add(const String&, Document&);
</ins><span class="cx"> private:
</span><span class="cx"> HashMap<String, std::unique_ptr<SelectorQuery>> m_entries;
</span><span class="cx"> };
</span><span class="lines">@@ -148,7 +142,7 @@
</span><span class="cx"> return m_selectors.closest(element);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-inline RefPtr<NodeList> SelectorQuery::queryAll(ContainerNode& rootNode) const
</del><ins>+inline Ref<NodeList> SelectorQuery::queryAll(ContainerNode& rootNode) const
</ins><span class="cx"> {
</span><span class="cx"> return m_selectors.queryAll(rootNode);
</span><span class="cx"> }
</span><span class="lines">@@ -159,5 +153,3 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span><del>-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFrameOwnerElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFrameOwnerElement.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFrameOwnerElement.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/html/HTMLFrameOwnerElement.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -112,11 +112,11 @@
</span><span class="cx"> return m_contentFrame && HTMLElement::isKeyboardFocusable(event);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-ExceptionOr<Document*> HTMLFrameOwnerElement::getSVGDocument() const
</del><ins>+ExceptionOr<Document&> HTMLFrameOwnerElement::getSVGDocument() const
</ins><span class="cx"> {
</span><span class="cx"> auto* document = contentDocument();
</span><span class="cx"> if (is<SVGDocument>(document))
</span><del>- return document;
</del><ins>+ return *document;
</ins><span class="cx"> // Spec: http://www.w3.org/TR/SVG/struct.html#InterfaceGetSVGDocument
</span><span class="cx"> return Exception { NOT_SUPPORTED_ERR };
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFrameOwnerElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFrameOwnerElement.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFrameOwnerElement.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/html/HTMLFrameOwnerElement.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> // RenderElement when using fallback content.
</span><span class="cx"> RenderWidget* renderWidget() const;
</span><span class="cx">
</span><del>- ExceptionOr<Document*> getSVGDocument() const;
</del><ins>+ ExceptionOr<Document&> getSVGDocument() const;
</ins><span class="cx">
</span><span class="cx"> virtual ScrollbarMode scrollingMode() const { return ScrollbarAuto; }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -3594,7 +3594,7 @@
</span><span class="cx"> removeVideoTrack(*m_videoTracks->lastItem());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-ExceptionOr<Ref<TextTrack>> HTMLMediaElement::addTextTrack(const String& kind, const String& label, const String& language)
</del><ins>+ExceptionOr<TextTrack&> HTMLMediaElement::addTextTrack(const String& kind, const String& label, const String& language)
</ins><span class="cx"> {
</span><span class="cx"> // 4.8.10.12.4 Text track API
</span><span class="cx"> // The addTextTrack(kind, label, language) method of media elements, when invoked, must run the following steps:
</span><span class="lines">@@ -3609,21 +3609,22 @@
</span><span class="cx">
</span><span class="cx"> // 5. Create a new text track corresponding to the new object, and set its text track kind to kind, its text
</span><span class="cx"> // track label to label, its text track language to language...
</span><del>- auto textTrack = TextTrack::create(ActiveDOMObject::scriptExecutionContext(), this, kind, emptyString(), label, language);
</del><ins>+ auto track = TextTrack::create(ActiveDOMObject::scriptExecutionContext(), this, kind, emptyString(), label, language);
+ auto& trackReference = track.get();
</ins><span class="cx">
</span><span class="cx"> // Note, due to side effects when changing track parameters, we have to
</span><span class="cx"> // first append the track to the text track list.
</span><span class="cx">
</span><span class="cx"> // 6. Add the new text track to the media element's list of text tracks.
</span><del>- addTextTrack(textTrack.copyRef());
</del><ins>+ addTextTrack(WTFMove(track));
</ins><span class="cx">
</span><span class="cx"> // ... its text track readiness state to the text track loaded state ...
</span><del>- textTrack->setReadinessState(TextTrack::Loaded);
</del><ins>+ trackReference.setReadinessState(TextTrack::Loaded);
</ins><span class="cx">
</span><span class="cx"> // ... its text track mode to the text track hidden mode, and its text track list of cues to an empty list ...
</span><del>- textTrack->setMode(TextTrack::Mode::Hidden);
</del><ins>+ trackReference.setMode(TextTrack::Mode::Hidden);
</ins><span class="cx">
</span><del>- return WTFMove(textTrack);
</del><ins>+ return trackReference;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> AudioTrackList& HTMLMediaElement::audioTracks()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -277,7 +277,7 @@
</span><span class="cx"> double percentLoaded() const;
</span><span class="cx">
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><del>- ExceptionOr<Ref<TextTrack>> addTextTrack(const String& kind, const String& label, const String& language);
</del><ins>+ ExceptionOr<TextTrack&> addTextTrack(const String& kind, const String& label, const String& language);
</ins><span class="cx">
</span><span class="cx"> AudioTrackList& audioTracks();
</span><span class="cx"> TextTrackList& textTracks();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLPlugInImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -429,8 +429,13 @@
</span><span class="cx"> ShadowRoot* shadow = userAgentShadowRoot();
</span><span class="cx"> if (!shadow)
</span><span class="cx"> return false;
</span><del>- RefPtr<Element> snapshotLabel = shadow->querySelector(selector.get(), ASSERT_NO_EXCEPTION);
- return node && snapshotLabel && (node == snapshotLabel.get() || node->isDescendantOf(snapshotLabel.get()));
</del><ins>+ if (!node)
+ return false;
+ auto queryResult = shadow->querySelector(selector.get());
+ if (queryResult.hasException())
+ return false;
+ auto* snapshotLabel = queryResult.releaseReturnValue();
+ return snapshotLabel && snapshotLabel->contains(node);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLPlugInImageElement::removeSnapshotTimerFired()
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -533,15 +533,14 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- RefPtr<Element> element = downcast<ContainerNode>(*node).querySelector(selectors, ec);
- if (ec) {
</del><ins>+ auto queryResult = downcast<ContainerNode>(*node).querySelector(selectors);
+ if (queryResult.hasException()) {
</ins><span class="cx"> errorString = ASCIILiteral("DOM Error while querying");
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (element)
- *elementId = pushNodePathToFrontend(element.get());
</del><ins>+ if (auto* element = queryResult.releaseReturnValue())
+ *elementId = pushNodePathToFrontend(element);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorDOMAgent::querySelectorAll(ErrorString& errorString, int nodeId, const String& selectors, RefPtr<Inspector::Protocol::Array<int>>& result)
</span><span class="lines">@@ -554,15 +553,14 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- RefPtr<NodeList> nodes = downcast<ContainerNode>(*node).querySelectorAll(selectors, ec);
- if (ec) {
</del><ins>+ auto queryResult = downcast<ContainerNode>(*node).querySelectorAll(selectors);
+ if (queryResult.hasException()) {
</ins><span class="cx"> errorString = ASCIILiteral("DOM Error while querying");
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ auto nodes = queryResult.releaseReturnValue();
</ins><span class="cx"> result = Inspector::Protocol::Array<int>::create();
</span><del>-
</del><span class="cx"> for (unsigned i = 0; i < nodes->length(); ++i)
</span><span class="cx"> result->addItem(pushNodePathToFrontend(nodes->item(i)));
</span><span class="cx"> }
</span><span class="lines">@@ -905,7 +903,7 @@
</span><span class="cx"> }
</span><span class="cx"> finder.performSearch(node);
</span><span class="cx"> }
</span><del>- } else if (m_document) {
</del><ins>+ } else {
</ins><span class="cx"> // There's no need to iterate the frames tree because
</span><span class="cx"> // the search helper will go inside the frame owner elements.
</span><span class="cx"> finder.performSearch(m_document.get());
</span><span class="lines">@@ -1115,19 +1113,18 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- RefPtr<NodeList> nodes = document->querySelectorAll(selectorString, ec);
</del><ins>+ auto queryResult = document->querySelectorAll(selectorString);
</ins><span class="cx"> // FIXME: <https://webkit.org/b/146161> Web Inspector: DOM.highlightSelector should work for "a:visited"
</span><del>- if (ec) {
</del><ins>+ if (queryResult.hasException()) {
</ins><span class="cx"> errorString = ASCIILiteral("DOM Error while querying");
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- std::unique_ptr<HighlightConfig> highlightConfig = highlightConfigFromInspectorObject(errorString, &highlightInspectorObject);
</del><ins>+ auto highlightConfig = highlightConfigFromInspectorObject(errorString, &highlightInspectorObject);
</ins><span class="cx"> if (!highlightConfig)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_overlay->highlightNodeList(WTFMove(nodes), *highlightConfig);
</del><ins>+ m_overlay->highlightNodeList(queryResult.releaseReturnValue(), *highlightConfig);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorDOMAgent::highlightNode(ErrorString& errorString, const InspectorObject& highlightInspectorObject, const int* nodeId, const String* objectId)
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorNodeFindercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorNodeFinder.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorNodeFinder.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/inspector/InspectorNodeFinder.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -65,38 +65,33 @@
</span><span class="cx">
</span><span class="cx"> void InspectorNodeFinder::performSearch(Node* parentNode)
</span><span class="cx"> {
</span><del>- searchUsingXPath(parentNode);
- searchUsingCSSSelectors(parentNode);
</del><ins>+ if (!parentNode)
+ return;
</ins><span class="cx">
</span><ins>+ searchUsingXPath(*parentNode);
+ searchUsingCSSSelectors(*parentNode);
+
</ins><span class="cx"> // Keep the DOM tree traversal last. This way iframe content will come after their parents.
</span><del>- searchUsingDOMTreeTraversal(parentNode);
</del><ins>+ searchUsingDOMTreeTraversal(*parentNode);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void InspectorNodeFinder::searchUsingDOMTreeTraversal(Node* parentNode)
</del><ins>+void InspectorNodeFinder::searchUsingDOMTreeTraversal(Node& parentNode)
</ins><span class="cx"> {
</span><span class="cx"> // Manual plain text search.
</span><del>- for (auto* node = parentNode; node; node = NodeTraversal::next(*node, parentNode)) {
</del><ins>+ for (auto* node = &parentNode; node; node = NodeTraversal::next(*node, &parentNode)) {
</ins><span class="cx"> switch (node->nodeType()) {
</span><span class="cx"> case Node::TEXT_NODE:
</span><span class="cx"> case Node::COMMENT_NODE:
</span><del>- case Node::CDATA_SECTION_NODE: {
- if (node->nodeValue().findIgnoringCase(m_whitespaceTrimmedQuery) != notFound)
</del><ins>+ case Node::CDATA_SECTION_NODE:
+ if (node->nodeValue().containsIgnoringASCIICase(m_whitespaceTrimmedQuery))
</ins><span class="cx"> m_results.add(node);
</span><span class="cx"> break;
</span><del>- }
- case Node::ELEMENT_NODE: {
</del><ins>+ case Node::ELEMENT_NODE:
</ins><span class="cx"> if (matchesElement(downcast<Element>(*node)))
</span><span class="cx"> m_results.add(node);
</span><del>-
- // Search inside frame elements.
- if (is<HTMLFrameOwnerElement>(*node)) {
- HTMLFrameOwnerElement& frameOwner = downcast<HTMLFrameOwnerElement>(*node);
- if (Document* document = frameOwner.contentDocument())
- performSearch(document);
- }
-
</del><ins>+ if (is<HTMLFrameOwnerElement>(downcast<Element>(*node)))
+ performSearch(downcast<HTMLFrameOwnerElement>(*node).contentDocument());
</ins><span class="cx"> break;
</span><del>- }
</del><span class="cx"> default:
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="lines">@@ -105,15 +100,15 @@
</span><span class="cx">
</span><span class="cx"> bool InspectorNodeFinder::matchesAttribute(const Attribute& attribute)
</span><span class="cx"> {
</span><del>- if (attribute.localName().string().findIgnoringCase(m_whitespaceTrimmedQuery) != notFound)
</del><ins>+ if (attribute.localName().string().containsIgnoringASCIICase(m_whitespaceTrimmedQuery))
</ins><span class="cx"> return true;
</span><del>- return m_exactAttributeMatch ? attribute.value() == m_attributeQuery : attribute.value().string().findIgnoringCase(m_attributeQuery) != notFound;
</del><ins>+ return m_exactAttributeMatch ? attribute.value() == m_attributeQuery : attribute.value().string().containsIgnoringASCIICase(m_attributeQuery);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool InspectorNodeFinder::matchesElement(const Element& element)
</span><span class="cx"> {
</span><span class="cx"> String nodeName = element.nodeName();
</span><del>- if ((!m_startTagFound && !m_endTagFound && (nodeName.findIgnoringCase(m_tagNameQuery) != notFound))
</del><ins>+ if ((!m_startTagFound && !m_endTagFound && nodeName.containsIgnoringASCIICase(m_tagNameQuery))
</ins><span class="cx"> || (m_startTagFound && m_endTagFound && equalIgnoringASCIICase(nodeName, m_tagNameQuery))
</span><span class="cx"> || (m_startTagFound && !m_endTagFound && nodeName.startsWith(m_tagNameQuery, false))
</span><span class="cx"> || (!m_startTagFound && m_endTagFound && nodeName.endsWith(m_tagNameQuery, false)))
</span><span class="lines">@@ -130,9 +125,9 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void InspectorNodeFinder::searchUsingXPath(Node* parentNode)
</del><ins>+void InspectorNodeFinder::searchUsingXPath(Node& parentNode)
</ins><span class="cx"> {
</span><del>- auto evaluateResult = parentNode->document().evaluate(m_whitespaceTrimmedQuery, parentNode, nullptr, XPathResult::ORDERED_NODE_SNAPSHOT_TYPE, nullptr);
</del><ins>+ auto evaluateResult = parentNode.document().evaluate(m_whitespaceTrimmedQuery, &parentNode, nullptr, XPathResult::ORDERED_NODE_SNAPSHOT_TYPE, nullptr);
</ins><span class="cx"> if (evaluateResult.hasException())
</span><span class="cx"> return;
</span><span class="cx"> auto result = evaluateResult.releaseReturnValue();
</span><span class="lines">@@ -152,22 +147,21 @@
</span><span class="cx"> node = downcast<Attr>(*node).ownerElement();
</span><span class="cx">
</span><span class="cx"> // XPath can get out of the context node that we pass as the starting point to evaluate, so we need to filter for just the nodes we care about.
</span><del>- if (node == parentNode || node->isDescendantOf(parentNode))
</del><ins>+ if (parentNode.contains(node))
</ins><span class="cx"> m_results.add(node);
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void InspectorNodeFinder::searchUsingCSSSelectors(Node* parentNode)
</del><ins>+void InspectorNodeFinder::searchUsingCSSSelectors(Node& parentNode)
</ins><span class="cx"> {
</span><del>- ASSERT(parentNode);
- if (!is<ContainerNode>(*parentNode))
</del><ins>+ if (!is<ContainerNode>(parentNode))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- ExceptionCode ec = 0;
- RefPtr<NodeList> nodeList = downcast<ContainerNode>(*parentNode).querySelectorAll(m_whitespaceTrimmedQuery, ec);
- if (ec || !nodeList)
</del><ins>+ auto queryResult = downcast<ContainerNode>(parentNode).querySelectorAll(m_whitespaceTrimmedQuery);
+ if (queryResult.hasException())
</ins><span class="cx"> return;
</span><span class="cx">
</span><ins>+ auto nodeList = queryResult.releaseReturnValue();
</ins><span class="cx"> unsigned size = nodeList->length();
</span><span class="cx"> for (unsigned i = 0; i < size; ++i)
</span><span class="cx"> m_results.add(nodeList->item(i));
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorNodeFinderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorNodeFinder.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorNodeFinder.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/inspector/InspectorNodeFinder.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -49,9 +49,9 @@
</span><span class="cx"> bool matchesAttribute(const Attribute&);
</span><span class="cx"> bool matchesElement(const Element&);
</span><span class="cx">
</span><del>- void searchUsingDOMTreeTraversal(Node*);
- void searchUsingXPath(Node*);
- void searchUsingCSSSelectors(Node*);
</del><ins>+ void searchUsingDOMTreeTraversal(Node&);
+ void searchUsingXPath(Node&);
+ void searchUsingCSSSelectors(Node&);
</ins><span class="cx">
</span><span class="cx"> bool m_startTagFound;
</span><span class="cx"> bool m_endTagFound;
</span></span></pre></div>
<a id="trunkSourceWebCorepageCryptocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Crypto.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Crypto.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/page/Crypto.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> return m_subtle;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-ExceptionOr<WebKitSubtleCrypto*> Crypto::webkitSubtle()
</del><ins>+ExceptionOr<WebKitSubtleCrypto&> Crypto::webkitSubtle()
</ins><span class="cx"> {
</span><span class="cx"> if (!isMainThread())
</span><span class="cx"> return Exception { NOT_SUPPORTED_ERR };
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> if (!m_webkitSubtle)
</span><span class="cx"> m_webkitSubtle = WebKitSubtleCrypto::create(*downcast<Document>(scriptExecutionContext()));
</span><span class="cx">
</span><del>- return m_webkitSubtle.get();
</del><ins>+ return *m_webkitSubtle;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorepageCryptoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Crypto.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Crypto.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/page/Crypto.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx"> SubtleCrypto& subtle();
</span><span class="cx">
</span><span class="cx"> // Will be deprecated.
</span><del>- ExceptionOr<WebKitSubtleCrypto*> webkitSubtle();
</del><ins>+ ExceptionOr<WebKitSubtleCrypto&> webkitSubtle();
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.h (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.h        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebCore/testing/Internals.h        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -109,9 +109,7 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<CSSComputedStyleDeclaration> computedStyleIncludingVisitedInfo(Element&) const;
</span><span class="cx">
</span><del>- ExceptionOr<Node*> ensureShadowRoot(Element& host);
</del><span class="cx"> Node* ensureUserAgentShadowRoot(Element& host);
</span><del>- ExceptionOr<Node*> createShadowRoot(Element& host);
</del><span class="cx"> Node* shadowRoot(Element& host);
</span><span class="cx"> ExceptionOr<String> shadowRootType(const Node&) const;
</span><span class="cx"> String shadowPseudoId(Element&);
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebKit/mac/ChangeLog        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -1,5 +1,27 @@
</span><span class="cx"> 2016-10-31 Darin Adler <darin@apple.com>
</span><span class="cx">
</span><ins>+ Move ChildNode and ParentNode from ExceptionCode to Exception, add support for ExceptionOr<T&>
+ https://bugs.webkit.org/show_bug.cgi?id=164214
+
+ Reviewed by Alex Christensen.
+
+ * DOM/DOMCSSPrimitiveValue.mm:
+ (-[DOMCSSPrimitiveValue getCounterValue]): Updated since return value
+ is a reference now.
+ (-[DOMCSSPrimitiveValue getRectValue]): Ditto.
+
+ * DOM/DOMDocument.mm:
+ (-[DOMDocument querySelector:]): Updated exception handling.
+ (-[DOMDocument querySelectorAll:]): Ditto.
+ * DOM/DOMDocumentFragment.mm:
+ (-[DOMDocumentFragment querySelector:]): Ditto.
+ (-[DOMDocumentFragment querySelectorAll:]): Ditto.
+ * DOM/DOMElement.mm:
+ (-[DOMElement querySelector:]): Ditto.
+ (-[DOMElement querySelectorAll:]): Ditto.
+
+2016-10-31 Darin Adler <darin@apple.com>
+
</ins><span class="cx"> Convert Document from ExceptionCode to Exception
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=164212
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKitmacDOMDOMCSSPrimitiveValuemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/DOM/DOMCSSPrimitiveValue.mm (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/DOM/DOMCSSPrimitiveValue.mm        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebKit/mac/DOM/DOMCSSPrimitiveValue.mm        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -78,13 +78,13 @@
</span><span class="cx"> - (DOMCounter *)getCounterValue
</span><span class="cx"> {
</span><span class="cx"> WebCore::JSMainThreadNullState state;
</span><del>- return kit(raiseOnDOMError(IMPL->getCounterValue()));
</del><ins>+ return kit(&raiseOnDOMError(IMPL->getCounterValue()));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (DOMRect *)getRectValue
</span><span class="cx"> {
</span><span class="cx"> WebCore::JSMainThreadNullState state;
</span><del>- return kit(raiseOnDOMError(IMPL->getRectValue()));
</del><ins>+ return kit(&raiseOnDOMError(IMPL->getRectValue()));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (DOMRGBColor *)getRGBColorValue
</span></span></pre></div>
<a id="trunkSourceWebKitmacDOMDOMDocumentmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/DOM/DOMDocument.mm (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/DOM/DOMDocument.mm        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebKit/mac/DOM/DOMDocument.mm        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -744,19 +744,13 @@
</span><span class="cx"> - (DOMElement *)querySelector:(NSString *)selectors
</span><span class="cx"> {
</span><span class="cx"> WebCore::JSMainThreadNullState state;
</span><del>- WebCore::ExceptionCode ec = 0;
- DOMElement *result = kit(WTF::getPtr(IMPL->querySelector(selectors, ec)));
- raiseOnDOMError(ec);
- return result;
</del><ins>+ return kit(raiseOnDOMError(IMPL->querySelector(selectors)));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (DOMNodeList *)querySelectorAll:(NSString *)selectors
</span><span class="cx"> {
</span><span class="cx"> WebCore::JSMainThreadNullState state;
</span><del>- WebCore::ExceptionCode ec = 0;
- DOMNodeList *result = kit(WTF::getPtr(IMPL->querySelectorAll(selectors, ec)));
- raiseOnDOMError(ec);
- return result;
</del><ins>+ return kit(raiseOnDOMError(IMPL->querySelectorAll(selectors)).ptr());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKitmacDOMDOMDocumentFragmentmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/DOM/DOMDocumentFragment.mm (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/DOM/DOMDocumentFragment.mm        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebKit/mac/DOM/DOMDocumentFragment.mm        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -78,19 +78,13 @@
</span><span class="cx"> - (DOMElement *)querySelector:(NSString *)selectors
</span><span class="cx"> {
</span><span class="cx"> WebCore::JSMainThreadNullState state;
</span><del>- WebCore::ExceptionCode ec = 0;
- DOMElement *result = kit(WTF::getPtr(IMPL->querySelector(selectors, ec)));
- raiseOnDOMError(ec);
- return result;
</del><ins>+ return kit(raiseOnDOMError(IMPL->querySelector(selectors)));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (DOMNodeList *)querySelectorAll:(NSString *)selectors
</span><span class="cx"> {
</span><span class="cx"> WebCore::JSMainThreadNullState state;
</span><del>- WebCore::ExceptionCode ec = 0;
- DOMNodeList *result = kit(WTF::getPtr(IMPL->querySelectorAll(selectors, ec)));
- raiseOnDOMError(ec);
- return result;
</del><ins>+ return kit(raiseOnDOMError(IMPL->querySelectorAll(selectors)).ptr());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKitmacDOMDOMElementmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/DOM/DOMElement.mm (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/DOM/DOMElement.mm        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebKit/mac/DOM/DOMElement.mm        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -472,19 +472,13 @@
</span><span class="cx"> - (DOMElement *)querySelector:(NSString *)selectors
</span><span class="cx"> {
</span><span class="cx"> JSMainThreadNullState state;
</span><del>- ExceptionCode ec = 0;
- DOMElement *result = kit(unwrap(*self).querySelector(selectors, ec));
- raiseOnDOMError(ec);
- return result;
</del><ins>+ return kit(raiseOnDOMError(unwrap(*self).querySelector(selectors)));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (DOMNodeList *)querySelectorAll:(NSString *)selectors
</span><span class="cx"> {
</span><span class="cx"> JSMainThreadNullState state;
</span><del>- ExceptionCode ec = 0;
- DOMNodeList *result = kit(unwrap(*self).querySelectorAll(selectors, ec).get());
- raiseOnDOMError(ec);
- return result;
</del><ins>+ return kit(raiseOnDOMError(unwrap(*self).querySelectorAll(selectors)).ptr());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebKit2/ChangeLog        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -1,5 +1,22 @@
</span><span class="cx"> 2016-10-31 Darin Adler <darin@apple.com>
</span><span class="cx">
</span><ins>+ Move ChildNode and ParentNode from ExceptionCode to Exception, add support for ExceptionOr<T&>
+ https://bugs.webkit.org/show_bug.cgi?id=164214
+
+ Reviewed by Alex Christensen.
+
+ * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp:
+ (webkit_dom_document_query_selector): Updated exception handling.
+ (webkit_dom_document_query_selector_all): Ditto.
+ * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp:
+ (webkit_dom_document_fragment_query_selector): Ditto.
+ (webkit_dom_document_fragment_query_selector_all): Ditto.
+ * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp:
+ (webkit_dom_element_query_selector): Ditto.
+ (webkit_dom_element_query_selector_all): Ditto.
+
+2016-10-31 Darin Adler <darin@apple.com>
+
</ins><span class="cx"> Convert Document from ExceptionCode to Exception
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=164212
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPIgtkDOMWebKitDOMDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -1386,13 +1386,13 @@
</span><span class="cx"> g_return_val_if_fail(!error || !*error, 0);
</span><span class="cx"> WebCore::Document* item = WebKit::core(self);
</span><span class="cx"> WTF::String convertedSelectors = WTF::String::fromUTF8(selectors);
</span><del>- WebCore::ExceptionCode ec = 0;
- RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->querySelector(convertedSelectors, ec));
- if (ec) {
- WebCore::ExceptionCodeDescription ecdesc(ec);
</del><ins>+ auto result = item->querySelector(convertedSelectors);
+ 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());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WebKitDOMNodeList* webkit_dom_document_query_selector_all(WebKitDOMDocument* self, const gchar* selectors, GError** error)
</span><span class="lines">@@ -1403,13 +1403,13 @@
</span><span class="cx"> g_return_val_if_fail(!error || !*error, 0);
</span><span class="cx"> WebCore::Document* item = WebKit::core(self);
</span><span class="cx"> WTF::String convertedSelectors = WTF::String::fromUTF8(selectors);
</span><del>- WebCore::ExceptionCode ec = 0;
- RefPtr<WebCore::NodeList> gobjectResult = WTF::getPtr(item->querySelectorAll(convertedSelectors, ec));
- if (ec) {
- WebCore::ExceptionCodeDescription ecdesc(ec);
</del><ins>+ auto result = item->querySelectorAll(convertedSelectors);
+ 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"> WebKitDOMDocumentType* webkit_dom_document_get_doctype(WebKitDOMDocument* self)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPIgtkDOMWebKitDOMDocumentFragmentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -199,13 +199,13 @@
</span><span class="cx"> g_return_val_if_fail(!error || !*error, 0);
</span><span class="cx"> WebCore::DocumentFragment* item = WebKit::core(self);
</span><span class="cx"> WTF::String convertedSelectors = WTF::String::fromUTF8(selectors);
</span><del>- WebCore::ExceptionCode ec = 0;
- RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->querySelector(convertedSelectors, ec));
- if (ec) {
- WebCore::ExceptionCodeDescription ecdesc(ec);
</del><ins>+ auto result = item->querySelector(convertedSelectors);
+ 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());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WebKitDOMNodeList* webkit_dom_document_fragment_query_selector_all(WebKitDOMDocumentFragment* self, const gchar* selectors, GError** error)
</span><span class="lines">@@ -216,13 +216,13 @@
</span><span class="cx"> g_return_val_if_fail(!error || !*error, 0);
</span><span class="cx"> WebCore::DocumentFragment* item = WebKit::core(self);
</span><span class="cx"> WTF::String convertedSelectors = WTF::String::fromUTF8(selectors);
</span><del>- WebCore::ExceptionCode ec = 0;
- RefPtr<WebCore::NodeList> gobjectResult = WTF::getPtr(item->querySelectorAll(convertedSelectors, ec));
- if (ec) {
- WebCore::ExceptionCodeDescription ecdesc(ec);
</del><ins>+ auto result = item->querySelectorAll(convertedSelectors);
+ 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"> WebKitDOMHTMLCollection* webkit_dom_document_fragment_get_children(WebKitDOMDocumentFragment* self)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPIgtkDOMWebKitDOMElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp (208144 => 208145)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp        2016-10-31 15:49:34 UTC (rev 208144)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp        2016-10-31 15:54:51 UTC (rev 208145)
</span><span class="lines">@@ -998,13 +998,13 @@
</span><span class="cx"> g_return_val_if_fail(!error || !*error, 0);
</span><span class="cx"> WebCore::Element* item = WebKit::core(self);
</span><span class="cx"> WTF::String convertedSelectors = WTF::String::fromUTF8(selectors);
</span><del>- WebCore::ExceptionCode ec = 0;
- RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->querySelector(convertedSelectors, ec));
- if (ec) {
- WebCore::ExceptionCodeDescription ecdesc(ec);
</del><ins>+ auto result = item->querySelector(convertedSelectors);
+ 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());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WebKitDOMNodeList* webkit_dom_element_query_selector_all(WebKitDOMElement* self, const gchar* selectors, GError** error)
</span><span class="lines">@@ -1015,13 +1015,13 @@
</span><span class="cx"> g_return_val_if_fail(!error || !*error, 0);
</span><span class="cx"> WebCore::Element* item = WebKit::core(self);
</span><span class="cx"> WTF::String convertedSelectors = WTF::String::fromUTF8(selectors);
</span><del>- WebCore::ExceptionCode ec = 0;
- RefPtr<WebCore::NodeList> gobjectResult = WTF::getPtr(item->querySelectorAll(convertedSelectors, ec));
- if (ec) {
- WebCore::ExceptionCodeDescription ecdesc(ec);
</del><ins>+ auto result = item->querySelectorAll(convertedSelectors);
+ 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"> gchar* webkit_dom_element_get_tag_name(WebKitDOMElement* self)
</span></span></pre>
</div>
</div>
</body>
</html>